Conversation
Complete rebrand from darwin-timeout to procguard: Core Changes: - Rename package to procguard in Cargo.toml - Add dual-binary support: procguard (primary) + timeout (alias) - Add argv[0] detection for timeout backward compatibility - Timeout alias defaults to --confine active (GNU compatibility) - Bump JSON schema to v8 (adds clock field) Files Modified (~40 files): - src/*.rs: Update crate name references - tests/: Add 6 new dual-binary tests (185 total) - docs/: Update all documentation - completions/: Rename to procguard.* - fuzz/: Update crate references - scripts/: Update binary names - workflows/: Update binary references JSON Schema v8: - Added clock field showing wall or active - Allows users to verify which time mode was used Verification: - 154 unit tests passing - 185 integration tests passing - 10 library API tests passing - 30 proptest properties passing - Binary size: 119KB (under 150KB limit)
- Bump version to 1.5.0 - Rename tarballs: timeout-macos-* → procguard-macos-* - Release now includes both procguard binary and timeout symlink - Update homebrew.yml to download procguard-macos-universal.tar.gz - Update build-universal.sh to build procguard with timeout symlink
- Build only `procguard` binary, create `timeout` symlink at runtime
- Update test helpers to create symlink dynamically
- Update CI to test both binaries via symlink
- Fixes cargo warning: file found in multiple build targets
This removes the warning while maintaining dual-binary functionality
through argv[0] detection. The `timeout` symlink is created during:
- Release packaging (release.yml, build-universal.sh)
- Integration tests (tests/{integration,benchmarks}.rs)
- CI verification (.github/workflows/ci.yml)
- Add back `timeout` binary target to Cargo.toml - `cargo install procguard` now installs both procguard and timeout - Fix README test count: 184 → 185 The cargo warning about shared main.rs is intentional and harmless. This ensures users get both binaries without manual symlink creation: cargo install procguard # installs both procguard and timeout
- Remove symlink creation from test helpers (cargo builds both binaries)
- Use Command::cargo_bin("timeout") directly with #[allow(deprecated)]
- Restructure README: procguard as unique process supervisor, not just timeout
- Lead with resource limits, lifecycle control, formal verification
- Move GNU timeout compatibility to secondary feature
- Lead with 'Linux has cgroups. macOS has nothing—until now.' - Add 'Built with Rust' section: no_std, 100KB, formal verification - Position timeout as bonus feature, not comparison battle - 'Exact GNU behavior' without defensive comparison tables - Clean problem/solution table without 'impossible' language - Add architecture highlights for Rust developers
67c1c03 to
f77328a
Compare
- Position as process supervisor, not timeout replacement - Lead with resource limits (memory, CPU) - unique on macOS - Clean examples section organized by use case - 'For Rust Developers' section with architecture highlights - GNU timeout as compatible bonus, not comparison battle - Concise reference section
f77328a to
2299f22
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Rebrand darwin-timeout to procguard with dual-binary support and updated release infrastructure
Why
Strategic repositioning from "timeout replacement" to "formally verified process supervisor for macOS" with professional branding and v1.5.0 release preparation
Changes
Branding & Core (~40 files):
procguardin Cargo.tomlprocguard(wall-clock default) +timeout(active-time default for GNU compatibility)procguard.*clockfield showingwalloractive)Release Infrastructure (v1.5.0):
1.4.0→1.5.0timeout-macos-*→procguard-macos-*procguardbinary andtimeoutsymlinkprocguard-macos-universal.tar.gzprocguardwithtimeoutsymlinkTesting:
Verification