2.7.0
Profiles, a lint pass and the ability to apply one patch without rebuilding the series. This is the release that made the tool comfortable to use every day rather than once per fork.
Added
- Configuration profiles: named override blocks in
bep.toml, selected with--profileorBEP_PROFILE. A profile sets jobs, target and apply flags for a machine or a CI runner. bep series lintchecks every header, reports overlappingtouchesprefixes and refuses duplicate ids.bep apply --patch IDapplies one patch and its dependencies. With--from-scratchit rebuilds the tree first, which is the only honest way to test a patch that deletes lines.bep config showprints each resolved value with its source.
Changed
- The lockfile moved to version 2 and stores a hash per patch. A series whose patch changed after the last apply now fails the stale-lock check before touching the tree.
- The minimum Rust version is 1.79.
bep apply --dry-runresolves dependencies before printing the plan, so the plan matches the real run.
Fixed
- A
series.tomlsaved with CRLF was parsed as one long line. bep config checkpanicked when a profile named in the file did not exist, instead of listing the names that do.- Applying a series with a single patch printed a dependency summary with an empty list.
Known issues
- Lockfiles written by 2.6 are read once and upgraded; the upgrade warning cannot be suppressed.
- Profiles do not merge nested keys. Setting
buildin a profile replaces the whole block; use flat keys as in the examples.
Upgrade notes
No migration command is needed. Run bep apply once after replacing the binary to rewrite the lockfile with per-patch hashes, and commit the change. If you keep scripts that parse apply --dry-run output, check the plan line: it now lists dependencies above the patches that requested them, so the ordering of lines changed, though the format did not.