mirror of
https://github.com/nocobase/nocobase.git
synced 2026-10-16 15:07:08 +08:00
* feat(db): simplify collection physical naming * docs(db): document underscored naming * feat(db): apply connection naming to queries * feat(db): add Oracle database support * feat(db): add Microsoft SQL Server support * refactor(db): tighten metadata and schema ownership boundaries * feat(db): add Collection Metadata V1 contract * feat(db): define Collection Resolver contract * feat(db): implement Collection Resolver * feat(db): add revisioned Metadata document Store * feat(db): add Collection Metadata Service * feat(db): add Collection Registry and Connection APIs * feat(db): add persistent Metadata document backends * feat(db): integrate Builder with Metadata documents * feat(db): invalidate Collections after transactions and migrations * refactor(db): finalize Collection Metadata Store architecture * docs(db): record Collection Metadata implementation status * test(db): add managed Collection resolution scenarios * test(db): cover external Module Metadata workflows * test(db): cover Database Metadata Store integration * feat(db): add executable Collection lifecycle examples * chore(db): keep example databases in local tmp * feat(db): retain example databases by default * feat(db): add Hono commerce playground API * feat(db): add playground web interface * fix(db): initialize example temp directory in tests * ci(db): test supported database matrix * fix(db): scope collection discovery by table prefixes * feat(db): add manager-bound migration runners * feat(db): create related collections atomically * feat(db): support targeted migration execution * test(notification): verify resolved migration schemas * feat(db): inspect physical schemas by logical name * docs(db): clarify migrations seeds and collection renames * docs(db): reorganize guides for agent workflows * docs(db): normalize overview frontmatter * fix(db): reject unsupported collection renames * docs(db): classify internal proposals and archived guides * docs(db): streamline core concepts for agents * docs(db): finish historical documentation cleanup * docs(db): add complete documentation map * refactor(db): clarify public API boundaries * refactor(db): align API docs and internal boundaries * docs(db): reorganize builder and mutation design guides * docs(db): finalize repository v1 proposal * feat(db): define repository v1 contracts * feat(db): add scalar repository runtime * feat(db): add repository relation reads * feat(db): add repository relation mutations * fix(db): align repository database dialects * docs(db): propose model-shaped repository mutations * feat(db): accept model-shaped repository mutations * feat(db): support strict filters for single mutations * feat(db): add scoped relation target mutations * docs(db): align form mutations with model-shaped values * feat(db): finalize repository mutation inputs * docs(db): add repository mutation examples * docs(db): propose concise repository filters * feat(db): support repository filter shorthand * chore(db): sync repository public API baseline * docs(db): document repository filter shorthand * docs(db): define repository select and sort builders * feat(db): add repository select builder * feat(db): add repository sort builder * docs(db): document repository select and sort builders * docs(db): define repository capability roadmap * feat(db): infer repository scalar selections * feat(db): return selected records from deleteOne * feat(db): add repository upsertOne * feat(db): return selected records from bulk mutations * feat(db): add repository aggregate queries * feat(db): add repository group by queries * feat(db): add repository distinct queries * feat(db): add repository cursor pagination * feat(db): paginate repository relation selections * feat(db): stream repository records * docs(db): mark repository roadmap complete * feat(db): add atomic repository scalar updates * feat(db): paginate repository cursors backward * feat(db): add case-insensitive repository filters * feat(db): add JSON repository filter predicates * feat(db): combine batched relation selections and aggregates * feat(db): support explicit junction mutation payloads * fix(db): align direct JSON array membership across dialects * docs(db): add agent-friendly repository usage guides * fix(db): resolve record identities from explicit constraints * refactor(db): require explicit relation keys and foreign key types * test(db): cover explicit relation contracts and mutation rollback * test(db): cover key types composite pagination and returning * feat(db): support context in repository create operations * feat(db): add variable expressions and callbacks to mutation values * feat(db): resolve mutation variables across nested relations * docs(db): organize repository guides by method and shared capability * docs(db): record precise numeric value handling proposal * docs(db): clarify repository method selection and identity boundaries * docs(db): add query scenarios for repository regression coverage * test(db): organize repository suites and map coverage gaps * test(db): cover repository query contracts and mutation safety * test(db): expand relation filter sort and batching coverage * test(db): cover relation mutation cardinality isolation and limits * fix(db): await repository stream cleanup before returning * test(db): expand repository builders and isolate type contracts * test(db): cover read-only non-null and relation transaction safety * fix(db): validate repository select structures before execution * test(db): cover select limits branch isolation and output types * fix(db): reject malformed relation select result branches * test(db): cover shared-target select graphs and local pagination * test(db): cover cumulative nested combine validation budgets * test(db): expand scalar filter operator and null coverage * fix(db): reject malformed filter nodes and relation quantifiers * test(db): cover filter relation scope and variable isolation * fix(db): validate nested filter callbacks and variable paths * fix(db): recognize float columns for repository numeric filters * test(db): expand filter json patterns paths and type contracts * test(db): cover filter context ownership and concurrent reuse * fix(db): scope float alias inference to sqlite * fix(db): recognize mysql float storage for numeric filters * test(db): validate filter contracts across postgres and mysql * test(db): cover values reuse and unused upsert branch validation * fix(db): reject malformed repository sort inputs consistently * test(db): cover root and relation pagination distinct boundaries * test(db): cover null aggregates grouping scope and malformed selections * test(db): install postgres streaming dependency for integration coverage * test(db): complete parameter wiring validation and concurrent write coverage * docs(db): reconcile repository parameter coverage and remaining contracts * feat(db): introduce lazy dual-consumption repository queries * feat(db): unify findMany iteration with relation and pagination semantics * docs(db): document unified query consumption and verify late failures * fix(db): preserve logical field types across database dialects * fix(db): align repository reads and writes across five databases * fix(db): preserve transaction failures during SQL Server inspection * docs(db): record complete five-database acceptance results * docs(db): finalize temporal field implementation baseline * fix(db): distinguish temporal schema types and precision * feat(db): persist declared field types and map temporal schemas * feat(db): normalize repository temporal values across databases * feat(db): expose physical scalar capabilities and preserve char semantics * feat(db): enforce strict boolean repository codecs * feat(db): support logical char collection fields * feat(db): support strict string enum fields and metadata * feat(api-client): add HTTP repository client * refactor(db): prepare scalar decoders and reuse boolean codecs * refactor(realtime): extract shared package * refactor(app-client): integrate API and realtime services * feat(app-server): add opt-in repository API routes * docs(db): add enum, set, and JSON field type proposals * feat(repository-example): add complete repository showcase * feat(app-server): stream repository queries over HTTP * feat(api-client): stream repository findMany queries * test(repository-api): cover streamed client queries * feat(repository-example): demonstrate streamed findMany * feat(repository): expose aggregates and expand grouping examples * docs(db): add relation example schema and fixtures * fix(repository-example): align query AST input types * feat(repository-example): add relation schema and seed data * feat(repository-example): demonstrate relationship writes over HTTP * feat(api-client): support builders for remote repository options * feat(repository): add server-owned field and relation write policies * test(db): normalize bigint foreign keys in write policy assertions * fix(db): correct Oracle default inserts and optimize view inspection
86 lines
2.0 KiB
Bash
Executable File
86 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# 限制并发数的并行构建脚本
|
|
|
|
# 设置最大并发数(可根据 CPU 核心数调整)
|
|
MAX_JOBS=${MAX_JOBS:-4}
|
|
|
|
# 先校对 _meta.json 侧边栏链接:自动修 missingSlash / explicitIndex 等
|
|
# 可纠正项;如有真死链(unresolved)则在此处提前失败,避免后续 build 浪费时间。
|
|
echo "Normalizing _meta.json sidebar links..."
|
|
node scripts/normalize-doc-links.mjs --write
|
|
if [ $? -ne 0 ]; then
|
|
echo "✗ Sidebar link check failed (dead sidebar links remain)"
|
|
exit 1
|
|
fi
|
|
|
|
# 构建英文版本
|
|
echo "Building en (default)..."
|
|
pnpm build
|
|
|
|
# 收集所有需要构建的语言
|
|
langs=()
|
|
for dir in ./docs/*; do
|
|
if [ -d "$dir" ]; then
|
|
lang=$(basename "$dir")
|
|
if [ "$lang" != "en" ]; then
|
|
langs+=("$lang")
|
|
fi
|
|
fi
|
|
done
|
|
|
|
total=${#langs[@]}
|
|
echo "Total languages to build: $total"
|
|
echo "Max concurrent jobs: $MAX_JOBS"
|
|
|
|
# 使用 xargs 控制并发数
|
|
printf "%s\n" "${langs[@]}" | xargs -P $MAX_JOBS -I {} bash -c '
|
|
lang="{}"
|
|
echo "[$(date +%H:%M:%S)] Building $lang..."
|
|
if pnpm build --lang=$lang; then
|
|
echo "[$(date +%H:%M:%S)] ✓ $lang completed"
|
|
else
|
|
echo "[$(date +%H:%M:%S)] ✗ $lang failed"
|
|
exit 1
|
|
fi
|
|
'
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "All builds completed successfully!"
|
|
else
|
|
echo "Some builds failed!"
|
|
exit 1
|
|
fi
|
|
|
|
# dist 生成 tgz 压缩包
|
|
echo ""
|
|
echo "Creating dist archive..."
|
|
|
|
DIST_DIR="./dist"
|
|
if [ ! -d "$DIST_DIR" ]; then
|
|
echo "Error: dist directory not found!"
|
|
exit 1
|
|
fi
|
|
|
|
ARCHIVE_NAME="dist.tar.gz"
|
|
|
|
echo "Compressing dist to $ARCHIVE_NAME..."
|
|
tar -czf "$ARCHIVE_NAME" -C "$DIST_DIR" .
|
|
|
|
if [ $? -eq 0 ]; then
|
|
# 获取文件大小
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
SIZE=$(stat -f%z "$ARCHIVE_NAME" | awk '{print int($1/1024/1024)}')
|
|
else
|
|
SIZE=$(stat -c%s "$ARCHIVE_NAME" | awk '{print int($1/1024/1024)}')
|
|
fi
|
|
|
|
echo ""
|
|
echo "✓ Archive created successfully!"
|
|
echo " File: $ARCHIVE_NAME"
|
|
echo " Size: ${SIZE}MB"
|
|
echo " Location: $(pwd)/$ARCHIVE_NAME"
|
|
else
|
|
echo "✗ Failed to create archive!"
|
|
exit 1
|
|
fi
|