Skip to content

Release v0.2.2: Improve release artifacts and naming#37

Merged
technicalpickles merged 6 commits intomainfrom
release/improve-release-detection
Sep 4, 2025
Merged

Release v0.2.2: Improve release artifacts and naming#37
technicalpickles merged 6 commits intomainfrom
release/improve-release-detection

Conversation

@technicalpickles
Copy link
Copy Markdown
Owner

Summary

This PR prepares version 0.2.2 with improvements to release artifact naming and macOS binary distribution.

Changes

🔧 Release Process Improvements

  • Clean up old artifacts: Removed outdated architecture-specific macOS binaries from dist/
  • Updated naming convention: Changed from `envsense-v{version}-{target}` to `envsense-{version}-{target}` (following ripgrep conventions)
  • Universal macOS only: Release workflow already correctly builds only universal macOS binaries

📦 Version Bump to 0.2.2

  • Updated main crate: `envsense` → 0.2.2
  • Updated macro crates: `envsense-macros` → 0.2.2
  • Updated macro impl: `envsense-macros-impl` → 0.2.2
  • Updated `Cargo.lock` with all version changes

📚 Documentation Updates

  • Updated `docs/development.md` with current release process
  • Documented universal macOS binary approach and rationale
  • Updated artifact naming examples and testing instructions
  • Added explanation of why universal binaries are preferred

Artifacts After This Release

Future releases will include only:

  • `envsense-0.2.2-x86_64-unknown-linux-gnu` (Linux x64)
  • `envsense-0.2.2-universal-apple-darwin` (macOS Universal - Intel + Apple Silicon)

Benefits

  • Better UX: Users don't need to choose between Intel/ARM64 macOS binaries
  • Industry alignment: Naming matches popular CLI tools like ripgrep
  • Simplified CI: Fewer artifacts to build and manage
  • Clear documentation: Updated docs reflect current processes

Testing

  • ✅ Updated naming convention tested locally
  • ✅ All workspace crates updated consistently
  • ✅ Documentation reviewed and updated
  • ✅ Scripts updated to match new naming

Ready for merge and release!

- Fix dual Release workflow triggers by depending only on CI workflow
- Replace commit-based version checking with tag-based approach
- check-version-change.sh now compares Cargo.toml version against existing git tags
- Add proper tag fetching in release workflow to ensure current tag info
- Add semver validation to prevent releasing invalid versions
- Remove brittle Cargo.toml diff checking that failed on merge commits

This fixes the issue where releases would fail with 'Cargo.toml was not changed'
even when a version bump was needed, and eliminates duplicate Release workflow runs.
Only universal macOS binaries are needed for releases. The release workflow
is already correctly configured to build only universal-apple-darwin for
macOS, but these old files would have been incorrectly included in releases.

Removed:
- envsense-v0.1.0-aarch64-apple-darwin*
- envsense-v0.1.0-x86_64-apple-darwin*

Kept:
- envsense-v0.1.0-universal-apple-darwin* (contains both architectures)
Remove 'v' prefix from version numbers in artifact names to align with
common conventions used by projects like ripgrep.

Changes:
- envsense-v0.2.1-universal-apple-darwin → envsense-0.2.1-universal-apple-darwin
- envsense-v0.2.1-x86_64-unknown-linux-gnu → envsense-0.2.1-x86_64-unknown-linux-gnu

Updated scripts:
- scripts/prepare-binary.sh: Updated binary naming logic
- scripts/validate-binary.sh: Updated to match new naming
- scripts/test-release-scripts-locally.sh: Updated test expectations

The new naming convention follows the pattern used by ripgrep and other
popular CLI tools for better consistency and user expectations.
Version bump for release with improved artifact naming and universal macOS binary cleanup.
Update versions in workspace crates:
- envsense-macros: 0.2.1 → 0.2.2
- envsense-macros-impl: 0.2.1 → 0.2.2

All workspace crates now use consistent version 0.2.2.
Update docs/development.md to reflect:

- New artifact naming convention (remove 'v' prefix)
- Universal macOS binary approach (single binary instead of separate Intel/ARM64)
- Updated platform support (Linux x64 + macOS Universal only)
- Rationale for universal binary approach
- Updated testing instructions for current build process

The documentation now accurately reflects the streamlined release process
and follows conventions used by popular CLI tools like ripgrep.
Copilot AI review requested due to automatic review settings September 4, 2025 18:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR prepares version 0.2.2 with improvements to release artifact naming and distribution strategy. The changes align the project with common CLI tool conventions by removing the "v" prefix from binary names and simplifying the macOS distribution to use only universal binaries.

  • Updated artifact naming from envsense-v{version}-{target} to envsense-{version}-{target}
  • Simplified release logic to check for existing tags instead of comparing commit-to-commit changes
  • Bumped all workspace crates to version 0.2.2

Reviewed Changes

Copilot reviewed 9 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
scripts/validate-binary.sh Updated binary naming pattern to remove "v" prefix
scripts/test-release-scripts-locally.sh Updated binary naming pattern for local testing
scripts/prepare-binary.sh Updated binary naming pattern for artifact preparation
scripts/check-version-change.sh Refactored to check for existing git tags instead of commit differences
envsense-macros/envsense-macros-impl/Cargo.toml Version bump to 0.2.2
envsense-macros/Cargo.toml Version bump to 0.2.2
docs/development.md Updated documentation with new naming conventions and universal binary approach
Cargo.toml Version bump to 0.2.2
.github/workflows/release.yml Updated workflow to use tag-based release checking

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@technicalpickles technicalpickles merged commit 30c4cca into main Sep 4, 2025
10 checks passed
@technicalpickles technicalpickles deleted the release/improve-release-detection branch September 4, 2025 19:13
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.

2 participants