Skip to content

fix(aztec-up): fall back to no timeout when /usr/bin/timeout absent (macOS)#23310

Merged
nchamo merged 4 commits into
merge-train/fairiesfrom
nchamo/fix-aztec-up-timeout-macos
May 15, 2026
Merged

fix(aztec-up): fall back to no timeout when /usr/bin/timeout absent (macOS)#23310
nchamo merged 4 commits into
merge-train/fairiesfrom
nchamo/fix-aztec-up-timeout-macos

Conversation

@nchamo

@nchamo nchamo commented May 15, 2026

Copy link
Copy Markdown
Contributor

Problem

The aztec-up installer wraps foundryup in a timeout shell function. The previous implementation only worked on Linux: it gated the call on CI=true and invoked /usr/bin/timeout directly. /usr/bin/timeout ships with GNU coreutils and is absent on stock macOS, so on a macOS GitHub Actions runner (CI=true is auto-set) the installer aborted in install_foundry with:

bash: line 59: /usr/bin/timeout: No such file or directory

Fix

Rework the timeout function so it picks a working backend at runtime. The CI gate is preserved — non-CI runs continue to execute unguarded, matching prior behavior:

  • Prefer /usr/bin/timeout when present (Linux via coreutils).
  • Fall back to perl -e 'alarm ...; exec ...' when /usr/bin/timeout is missing. Perl ships preinstalled on macOS and GitHub's Ubuntu runners, so the guard remains effective there.
  • If neither backend is available, run the command unguarded rather than fail the install — the timeout exists to bound a `foundryup` hang in CI, not to gate the install itself.

Verified the three branches in containers (coreutils path, perl path, neither): timeouts fire at the expected duration, exit codes propagate, and the unguarded branch passes through completion.

@nchamo nchamo requested a review from charlielye as a code owner May 15, 2026 11:43
@nchamo nchamo self-assigned this May 15, 2026
@nchamo nchamo changed the base branch from next to merge-train/fairies May 15, 2026 11:43
@nchamo nchamo force-pushed the nchamo/fix-aztec-up-timeout-macos branch from 4a95f44 to 11e1b78 Compare May 15, 2026 11:44
@nchamo nchamo requested a review from vezenovm May 15, 2026 12:03
Comment thread aztec-up/bin/0.0.1/install Outdated
@nchamo nchamo enabled auto-merge (squash) May 15, 2026 14:59
@nchamo nchamo merged commit 288cba7 into merge-train/fairies May 15, 2026
17 checks passed
@nchamo nchamo deleted the nchamo/fix-aztec-up-timeout-macos branch May 15, 2026 15:13
rangozd pushed a commit to rangozd/aztec-packages that referenced this pull request May 16, 2026
BEGIN_COMMIT_OVERRIDE
fix(aztec-up): fall back to no timeout when /usr/bin/timeout absent
(macOS) (AztecProtocol#23310)
chore: reduce compat e2e timeout (AztecProtocol#23318)
feat(aztec-nr): V2 handshake registry for non interactive constrained
delivery (AztecProtocol#23278)
chore(aztec-nr): Public internal/utility methods self constructor
(AztecProtocol#23115)
END_COMMIT_OVERRIDE
@AztecBot

Copy link
Copy Markdown
Collaborator

✅ Successfully backported to backport-to-v4-next-staging #23386.

nchamo added a commit that referenced this pull request May 19, 2026
BEGIN_COMMIT_OVERRIDE
fix(aztec-up): fall back to no timeout when /usr/bin/timeout absent
(macOS) (#23310)
fix(aztec): use perl -i for portable in-place edit in add_crate.sh
(#23335)
END_COMMIT_OVERRIDE
alexghr added a commit that referenced this pull request May 19, 2026
## Summary

Brings the accumulated v4-next fixes onto v4 ahead of the next 4.3.0
stable release. Sibling pattern to #23306 (which merged v4-next into v4
for 4.3.0-rc.1).

### Commits coming in from v4-next

- `5b61b2d5d3` chore: Accumulated backports to v4-next (#23386)
- `38ae87a965` fix(aztec): use perl -i for portable in-place edit in
add_crate.sh (#23335)
- `f463d6a3cb` fix(aztec-up): fall back to no timeout when
/usr/bin/timeout absent (macOS) (#23310)
- `1a40b92d98` chore: Accumulated backports to v4-next (#23321)
- `84e5bce90c` chore: reduce compat e2e timeout (#23318)
@aminsammara aminsammara mentioned this pull request May 19, 2026
2 tasks
aminsammara added a commit that referenced this pull request May 20, 2026
Promote v4.3.0-rc.1 to stable. Single commit prepending a `## [4.3.0]`
entry to `CHANGELOG.md`; no other files touched.

## What's in this PR

The 4.3.0 changelog entry is a superset of the existing `4.3.0-rc.1`
entry plus four lines for the commits added between rc.1 and now:

- **Bug Fixes**
- `aztec:` use perl -i for portable in-place edit in add_crate.sh
(#23335)
- `aztec-up:` fall back to no timeout when /usr/bin/timeout absent on
macOS (#23310)
- `release-image:` stamp stdlib/package.json with release version
(#23393)
- **Miscellaneous**
  - reduce compat e2e timeout (#23318)

The `## [4.3.0-rc.1]` section is preserved below the new entry for
historical continuity.

## Filtered from the changelog

Eight commits in `v4.3.0-rc.1..HEAD` are dropped as noise: the two
`chore: merge v4-next into v4` merge commits, the pre-PR dupe
`75fd494a43` of #23393, the two umbrella `chore: Accumulated backports`
PRs (#23386, #23321 — their contents are #23310/#23335/#23318 listed
above), the internal `Merge branch 'v4-next' into
backport-to-v4-next-staging` commit, and the v4-next manifest bump to
4.4.0 (release machinery, doesn't apply to v4).

## After merging

1. Tag `v4.3.0` on the merge commit and push the tag — that kicks off
the release pipeline.
2. The manifest stays at `4.3.0` for the 4.3.X patch cycle; bump only if
you're cutting 4.4.0 from this branch.

## Test plan

- [ ] CI green
- [ ] Visual check that the 4.3.0 section reads correctly in
`CHANGELOG.md`
critesjosh added a commit that referenced this pull request May 20, 2026
…or items

Backfills v4.3.0 docs with items from the official release notes that
weren't carried into the migration notes, framework docs, tutorials, or
operator changelog:

- migration_notes: add '[CLI] aztec init now scaffolds a Counter example
  template' under v4.3.0 (#22751). aztec new continues to scaffold blank.
- contract_structure: rewrite Directory structure for the 2-crate
  workspace; drop the stale --name reference removed in v4.3.0.
- token_contract tutorial: fix 'aztec init created...' wording to
  'aztec new' (the command shown is aztec new bob_token); update live
  copy from single-crate to 2-crate layout.
- recursive_verification tutorial: replace removed 'aztec new --name X Y'
  with 'aztec new ValueNotEqual'; fix the workspace layout, package name
  (ValueNotEqual_contract), ccc script, and artifact paths.
- v4.3 operator changelog: add 'Other notable changes' for the three
  non-breaking release-notes items (sequencer last-block signing #22117,
  stdlib package.json stamping #23393, macOS aztec-up install fixes
  #23310 / #23335).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants