Skip to content

chore(release): add local macOS arm64 release flow#4

Open
maksimzayats wants to merge 5 commits into
o3/mainfrom
chore/local-macos-arm64-release-flow
Open

chore(release): add local macOS arm64 release flow#4
maksimzayats wants to merge 5 commits into
o3/mainfrom
chore/local-macos-arm64-release-flow

Conversation

@maksimzayats
Copy link
Copy Markdown

Summary

  • add a local macOS arm64 release runner for building, signing, notarizing, packaging, tagging, and creating GitHub Release assets
  • add .codex-release/ as an ignored local home for signing material and release config
  • document that this arm64-only local flow is separate from the existing multi-platform CI release workflow

Verification

  • python3 -m unittest scripts/test_release_macos_arm64.py
  • python3 -m py_compile scripts/release_macos_arm64.py scripts/test_release_macos_arm64.py
  • python3 scripts/release_macos_arm64.py --version 0.0.0-o3.0 --dry-run
  • just fmt
  • just test -p codex-cli

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f4723b0b22

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +781 to +784
if source is not None:
if source != notes_file:
notes_file.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(source, notes_file)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Normalize the notes path before comparing

When --notes-file is passed as a relative path, release_paths() stores the destination as an absolute notes_file.resolve(), but this block compares it with the original relative source. For a common invocation like --notes-file release-notes.md, the paths refer to the same file but compare unequal, so shutil.copy2(source, notes_file) attempts to copy the file onto itself and raises SameFileError late in the release after the build/signing work has already completed.

Useful? React with 👍 / 👎.

Comment on lines +199 to +200
validate_host(dry_run=args.dry_run)
validate_required_tools(REQUIRED_TOOLS)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep dry-run from requiring macOS signing tools

In a dry run on Linux/non-arm64, validate_host() explicitly allows the run to continue, but the next unconditional tool check still requires macOS-only tools such as codesign, security, ditto, and xcrun. That makes --dry-run fail before it can print the planned commands on the non-Mac hosts that the preceding branch permits, so the validation path is effectively unusable outside macOS unless those unavailable tools somehow exist.

Useful? React with 👍 / 👎.

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