-
Notifications
You must be signed in to change notification settings - Fork 57
aube: sync upstream v1.35.0 #621
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
3d430a0
fbd40ff
bedde94
b832ce5
1f23a7a
63232cb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -43,6 +43,9 @@ install.bats|aube run auto-installs when installed package metadata is missing|' | |
| install.bats|aube install ignores --network-concurrency=0 and falls back to default|test invokes 'aube -v' — nub's -v is --version (reserved); re-evaluate when the flag wiring lands | ||
| add.bats|aube add: refuses to add to workspace root with aube-workspace.yaml|nub-divergence: aube-workspace.yaml is not consulted (workspace-yaml toggle restricts discovery to pnpm-workspace.yaml), so it cannot define a workspace root — the pnpm-workspace.yaml variant asserts the guard | ||
| add.bats|aube add -w: errors outside a workspace|engine emits pnpm-workspace.yaml (brand-clean via workspace_markers(), PR #77); upstream test asserts aube-workspace.yaml | ||
| update.bats|aube update -r --latest updates a shared catalog entry|catalog fixture declares its workspace in aube-workspace.yaml, which workspace_markers() does not consult, so -r has no workspace root to filter against | ||
| update.bats|aube update -r --latest --no-save leaves the catalog range unchanged|catalog fixture declares its workspace in aube-workspace.yaml, which workspace_markers() does not consult, so -r has no workspace root to filter against | ||
| update.bats|aube update -r --latest updates a named catalog and preserves its prefix|catalog fixture declares its workspace in aube-workspace.yaml, which workspace_markers() does not consult, so -r has no workspace root to filter against | ||
|
Comment on lines
+46
to
+48
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These three fixtures differ from nub only in the workspace file's name, so skipping them is right — but they were the only coverage Technical details# Workspace-YAML catalog rewrite loses its only test
## Affected sites
- `tests/aube-bats/skips.txt:46-48` — the three new skips.
- `vendor/aube/test/update.bats:164-219` — the skipped tests: default-catalog rewrite plus comment preservation, `--no-save` leaving the range untouched, and named-catalog prefix preservation (`^0.1.2` → `^3.0.1`).
- `vendor/aube/crates/aube/src/commands/catalogs.rs:265-296` — `update_workspace_yaml_catalog_entries`, reached from `update.rs:793`. Handles the `catalog` vs `catalogs.<name>` submap split and range-only replacement through `edit_workspace_yaml`.
- `vendor/aube/crates/aube/src/commands/catalogs.rs:566+` — the `tests` module covers `decide_add_rewrite`, `prune_unused_catalog_entries`, and the manifest upserts. Nothing calls either `update_*_catalog_entries`.
- `vendor/aube/crates/aube-manifest/src/workspace/config.rs:21-30` — `workspace_yaml_names()` appends `pnpm-workspace.yaml` whenever `engine_context().read_branded_pnpm_config` is set, which is what makes the YAML branch reachable under nub.
- `vendor/aube/test/update.bats:221-246` — `aube update -r --latest updates a package.json catalog source`, correctly left unskipped; it covers `update_manifest_catalog_entries` only.
## Required outcome
- nub CI exercises the workspace-YAML catalog rewrite — default catalog, named catalog with a preserved range prefix, and `--no-save` — against a workspace filename nub actually reads.
## Open questions for the human
- Is this path pnpm-compat-only in practice? If a nub-identity project can never reach `update_workspace_yaml_catalog_entries`, the natural home for the replacement is the compat harness rather than `tests/aube-bats/`.
- If neither home is worth the fixture, is a `known-gaps.txt` entry the honest record, given `skips.txt` self-describes as permanent *intended divergences*? |
||
|
|
||
| # ── pnpm-parity divergences (decision C: nub extends aube's behavior to match pnpm) ── | ||
| add.bats|aube add --save-peer writes only peerDependencies and does not install|nub dual-writes --save-peer to devDependencies+peerDependencies for pnpm parity (decision C); aube asserts peerDependencies-only | ||
|
|
@@ -80,6 +83,7 @@ update.bats|aube update --lockfile-only: refreshes lockfile without populating n | |
| update.bats|aube update --lockfile-only --latest: bumps direct deps without linking|fixture's committed aube-lock.yaml is invisible: nub's canonical lockfile name is nub.lock | ||
| update.bats|aube update preserves time: entries for direct deps (time-based mode)|fixture's committed aube-lock.yaml is invisible: nub's canonical lockfile name is nub.lock | ||
| update.bats|aube update drops a stray time: block under default resolution (pnpm parity)|fixture's committed aube-lock.yaml is invisible: nub's canonical lockfile name is nub.lock | ||
| update.bats|aube update: workspace update.ignoreDeps takes precedence|update itself succeeds; the assertions grep aube-lock.yaml, and nub's canonical lockfile name is nub.lock | ||
|
|
||
| # ── virgin projects self-pin nub via devEngines.packageManager ────────────── | ||
| # On the FIRST package.json-modifying verb in a project nub is first to touch, | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pub(crate)visibility is not the blocker. aube v1.35.0 already writes.modules.yamlitself with the settings-resolved store (install/gvs.rs::write_modules_metadata, called frominstall/finalize.rs:235whenever!virtual_store_only), and when the file is absent it writes a single-key pretty-printed JSON object — whichis_nub_modules_yamlaccepts as nub's own stub. Sincevite_compat::applyruns after the engine returns, nub does not merely fail to consult the resolver: it overwrites a correct value with the default one.Technical details