Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
"$schema": "https://unpkg.com/@changesets/config@4.0.0/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "Neexjs/neex" }
Expand Down
25 changes: 17 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0

- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6

- uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
cache: pnpm

- name: Install
Expand All @@ -72,6 +74,13 @@ jobs:
- name: Build
run: pnpm run build

- name: Validate release tooling
run: |
if ! git show-ref --verify --quiet refs/heads/main; then
git branch main origin/main
fi
pnpm exec changeset status --output /tmp/neex-release-plan.json

- name: Typecheck scaffolder
run: pnpm --filter create-neex typecheck

Expand All @@ -89,10 +98,10 @@ jobs:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm run build
Expand All @@ -111,10 +120,10 @@ jobs:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
cache: pnpm
- uses: oven-sh/setup-bun@v2
- run: pnpm install --frozen-lockfile
Expand All @@ -137,10 +146,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
cache: pnpm
- uses: oven-sh/setup-bun@v2
- run: pnpm install --frozen-lockfile
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ jobs:
ref: ${{ github.event.workflow_run.head_sha }}
fetch-depth: 0

- name: Setup Node.js 20
- name: Setup Node.js 22
uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
registry-url: 'https://registry.npmjs.org'

- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6

- name: Install Dependencies
run: pnpm install --frozen-lockfile
Expand All @@ -41,7 +41,8 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
publish-script: pnpm run build && pnpm release
version-script: pnpm version
version-script: pnpm run version
pr-base-branch: main
commit-message: "chore: update versions"
pr-title: "chore: update versions"
env:
Expand Down
10 changes: 8 additions & 2 deletions CODE_REVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
- سه تست HTTP محلی سازگار با مسیرهای S3، آپلود/دانلود امضاشده، ترتیب blob/record، رکورد یا blob مفقود، blob خراب، منع نوشتن و جلوگیری از گسترش مالکیت outputs را بررسی کردند.
- کد runner برای هدف Windows MSVC به‌صورت جداگانه typecheck شد. cross-build کل workspace روی macOS به‌علت نبود SDK بومی Windows برای tree-sitter ممکن نبود.

تست‌های اجرایی این جلسه روی macOS اجرا شدند. اجرای واقعی ماتریس Linux/Windows به CI پس از ارسال تغییرات نیاز دارد؛ workflow آماده است ولی در این جلسه اجرا نشده است. تست remote از سرویس HTTP محلی با اعتبارنامهٔ ساختگی استفاده می‌کند؛ اتصال به bucket واقعی S3/R2 و انتشار npm انجام نشده‌اند.
تست‌های محلی روی macOS اجرا شدند. پس از ارسال PR #69، هر ۱۲ job CI روی head نهایی و سپس روی main موفق بودند؛ این شامل اجرای واقعی Rust و مصرف‌کنندهٔ npm روی Linux/macOS/Windows و build و اجرای production هر دو قالب روی Linux است. تست remote از سرویس HTTP محلی با اعتبارنامهٔ ساختگی استفاده می‌کند؛ اتصال به bucket واقعی S3/R2 انجام نشده است. موفقیت CI به‌تنهایی تأیید انتشار نسخهٔ جدید npm نیست.

## وضعیت چهار پیشنهاد قبلی

Expand All @@ -50,7 +50,7 @@
3. **برابری cold build و cache restore: انجام شد.** تست‌های خروجی اضافی، خروجی مفقود، executable bit، blob خراب و فایل مستثنا اضافه شدند. پاک‌سازی فقط در محدودهٔ outputs متعلق به تسک است؛ مسیرهای .git/.neex/node_modules محافظت می‌شوند.
4. **جداسازی ماژول آزمایشی از انتشار: انجام شد.** P2P به feature اختیاری منتقل شد، NAPI با publish=false از انتشار کنار گذاشته شد، و مرز sled/ArtifactStore در مستندات روشن شد. پیاده‌سازی API عمومی NAPI یا ادغام P2P با کش تسک، قابلیت جدید است و در این اصلاح ادعا نمی‌شود.

پیشنهاد بعدی: نتیجهٔ ماتریس جدید CI را پیش از انتشار نسخه بررسی کنید و برای remote cache یک تست روی سرویس واقعی با bucket آزمایشی و اعتبارنامهٔ محدود تنظیم کنید. این مرحله به محیط و دسترسی واقعی نیاز دارد.
پیشنهاد بعدی: برای remote cache یک تست روی سرویس واقعی با bucket آزمایشی و اعتبارنامهٔ محدود تنظیم کنید. این مرحله به محیط و دسترسی واقعی نیاز دارد.

## تغییر رفتار و مهاجرت کش

Expand All @@ -75,3 +75,9 @@
| #68 | Changesets v2.1.2 معتبر به‌جای ref شناور v2، نام ورودی‌های جدید، token صحیح و انتشار فقط پس از CI موفق main |

تست demo با نصب فقط dependencies تولیدی، بدون pino-pretty، در staging و production پاسخ health موفق داد و query حساس در لاگ دیده نشد. این تست به CI نیز اضافه شد. همهٔ ۹۷ تست Rust با all-features پس از به‌روزرسانی وابستگی‌ها پاس شدند؛ Clippy نیز بدون warning بود.

PR #69 و همهٔ ۹ PR اصلی با merge commit ادغام شدند. هر دو thread بازبینی #67 پس از اصلاح و پاسخ مستند resolved شدند. در شروع و پایان آن دسته issue بازی وجود نداشت.

پس از merge، Dependabot شش PR تازه ساخت: #70 Tokio 1.50، #71 UUID 1.26، #72 pnpm/action-setup v6، #73 dirs 7، #74 mdns-sd 0.21 و #75 dialoguer 0.12. commitهای اصلی آن‌ها در شاخهٔ codex/dependency-backlog حفظ شدند؛ ۹۷ تست all-features و Clippy برای این ترکیب نیز محلی پاس شدند.

workflow انتشار روی main ناسازگاری Changesets action v2 با CLI v2 را آشکار کرد. CLI به v3 و changelog-github به v1 ارتقا یافتند؛ Node محیط توسعهٔ CI و انتشار به 22 رسید و اعتبارسنجی release plan به CI اضافه شد. این تغییر نیاز Node مصرف‌کنندهٔ منتشرشدهٔ neex را تغییر نمی‌دهد.
91 changes: 43 additions & 48 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ tracing-subscriber = "0.3"

# P2P Networking
axum = "0.7"
mdns-sd = "0.20"
mdns-sd = "0.21"
reqwest = { version = "0.12", features = ["json"] }
uuid = { version = "1.0", features = ["v4"] }
gethostname = "0.5"
Expand All @@ -79,5 +79,5 @@ gethostname = "0.5"
rusty-s3 = "0.10"

# Interactive CLI
dialoguer = "0.11"
dirs = "6.0"
dialoguer = "0.12"
dirs = "7.0"
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"test:templates": "node scripts/template-smoke.cjs"
},
"devDependencies": {
"@changesets/cli": "^2.27.1",
"@changesets/changelog-github": "^0.5.0"
"@changesets/changelog-github": "^1.0.1",
"@changesets/cli": "^3.0.3"
}
}
Loading
Loading