Skip to content

lots of small test improvements and speedups#23

Merged
pirate merged 4 commits into
mainfrom
test-speedups
Apr 12, 2026
Merged

lots of small test improvements and speedups#23
pirate merged 4 commits into
mainfrom
test-speedups

Conversation

@pirate
Copy link
Copy Markdown
Member

@pirate pirate commented Apr 12, 2026


Open with Devin

Summary by cubic

Speeds up the test suite and makes provider behavior more predictable. CI now installs Yarn classic and a yarn-berry alias, fixes PATH setup, and verifies both versions.

  • Test Suite

    • Seed Playwright once and reuse via hard links; relink symlinks to new roots; prefer load over reinstall.
    • Cover Yarn classic and Berry via global yarn-berry; add no_cache tests that replace broken cached packages when scripts are re‑enabled; verify classic fallback warnings.
    • Drop slow feature-detection helpers; use direct supports_* asserts. Slim CLI tests by stubbing run_binary_command.
    • Fewer temp installs and subprocess calls overall.
  • Providers and CI

    • YarnProvider: on Berry, no_cache runs yarn cache clean --all; prepend PATH correctly; simplify add/up command building with --mode skip-build.
    • PlaywrightProvider: respect ABX_PKG_LIB_DIR and share the npm root; better CLI bootstrap/cache detection; ensure dirs exist; seed installer cache after npm install.
    • GoGetProvider: preserve existing PATH when merging (remove dead branch) and correctly resolve installer version via go version during dry runs.
    • Core BinProvider: real pwd.struct_passwd fallback; allow --version probes even in dry_run; construct dry-run binaries via model_construct; hide is_valid in repr.
    • Logging: defer formatting until needed and support callables to cut overhead and noise.
    • CI: install Yarn classic (yarn@1.22.22) and Yarn Berry via @yarnpkg/cli-dist@4.13.0 as yarn-berry; add alias to PATH; verify yarn is 1.x and yarn-berry is 4.x; pin pnpm@10.19.0; drop corepack.
    • Docs: default roots now use $ABX_PKG_LIB_DIR/* and clarify Yarn workspace behavior.

Written for commit 5cf87ee. Summary will update on new commits.

cubic-dev-ai[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 8 additional findings.

Open in Devin Review

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 10 additional findings in Devin Review.

Open in Devin Review

Comment thread abx_pkg/binprovider.py
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Dry-run logs "DRY RUN" for version probes that actually execute

The new is_version_probe bypass at abx_pkg/binprovider.py:1041 lets version-probe commands (--version, -version, -v) run even during dry_run. However, the logging block at abx_pkg/binprovider.py:997-1002 still prints "DRY RUN ({class}): {cmd}" for these commands because it only checks self.dry_run, not is_version_probe. Users reading logs will see a command labeled "DRY RUN" that was actually executed, which is misleading.

Code flow showing the inconsistency

The log at line 997-1002 fires when self.dry_run is true and no exec_log_prefix is set (which is the case for version probes during load() / INSTALLER_BINARY()). Then at line 1041, the version probe bypasses the dry_run short-circuit and actually runs. The log said "DRY RUN" but the subprocess ran for real.

(Refers to lines 997-1002)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 13 additional findings in Devin Review.

Open in Devin Review

Comment thread abx_pkg/binprovider_goget.py Outdated
@pirate pirate merged commit 9cc3590 into main Apr 12, 2026
94 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant