Skip to content

Mono repo automatic support, and prerelease fixes#1930

Open
ryanobjc wants to merge 9 commits into
knope-dev:mainfrom
ryanobjc:feat/prerelease-changelog
Open

Mono repo automatic support, and prerelease fixes#1930
ryanobjc wants to merge 9 commits into
knope-dev:mainfrom
ryanobjc:feat/prerelease-changelog

Conversation

@ryanobjc

Copy link
Copy Markdown
Contributor

There are 3/4 distinct fixes in this branch/PR:

  • Automatically bumping dependencies in monorepo, with policy control over patch/minor semantics for dependents
  • Derive the internal dependencies from manifests (subfeature of the above)
  • Determine scope from paths touched in commit
  • Pre-releases are made based on the last pre-release, so the changelogs are incremental in the pre-release branch

ryanobjc and others added 8 commits June 12, 2026 12:31
Defaulting to "patch" changed behavior for existing configs: any
package with {path, dependency} versioned_files entries would start
receiving automatic releases on upgrade. Propagation is now opt-in.

- internal_dependency_updates test now verifies the default does NOT
  propagate (dep strings still sync)
- transitive test gets explicit config with "patch" policies, since
  auto-detected packages can't set one
- with_changelog test sets "patch" explicitly, covering that value
Knope already parses every versioned file at release time, so the
dependency graph for propagation can be read straight from manifests:
if an opted-in package's Cargo.toml or package.json declares a
dependency matching another package's manifest name, the relationship
is detected with no configuration beyond update_internal_dependencies.

This is the same information the workspace auto-detection uses at
config-load time, applied to explicit [packages] configs. Dependency
strings inside manifests are still only updated through explicit
{path, dependency} versioned_files entries; internal_dependencies
remains the override for relationships neither mechanism can see.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
I like having computers do work I will inevitably forget to do.

Tests added:

- track_paths_basic: commits route to packages via versioned-file dirs
- track_paths_explicit: explicit paths override the fallback
- track_paths_multi: one commit can apply to multiple packages
- track_paths_orphan: commits outside every territory are dropped
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
In prerelease mode, conventional commits are gathered since the most
recent tag of any kind, not just the last stable. Iterative prerelease
workflows (alpha.1 -> alpha.2) then only summarize the commits added
since the previous prerelease, and packages with no new commits don't
get re-released on every run.

Because the delta may imply a lower stable target than an existing
prerelease line (a fix following a feature that already shipped in
rc.0), calculate_pre now continues the nearest existing prerelease
line above the rule-derived version instead of regressing below a
version that has already been pre-released. Rule-derived versions
matching an existing line keep it, so deliberately-newer hand-tagged
lines still don't take over.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Vale CI check lints the docs tree through reviewdog and annotates
every finding on a PR's added lines. Once those exceed reviewdog's
annotation cap it fails the job with "Too many results (annotations) in
diff", which is what the new docs sections triggered (mostly passive
voice and long-sentence suggestions, plus a few error-level findings).

Rewrite the added prose to be fully Vale-clean: active voice, shorter
sentences, no spaced em-dashes / "e.g." / uncontracted negatives, no
"multiple"/"silently"/semicolons, and the accepted "Changeset" term.
Verified locally with Vale 3.15.1 and the repo's config: zero findings
of any severity on the added lines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ryanobjc ryanobjc force-pushed the feat/prerelease-changelog branch from fbbccac to bc3f244 Compare June 17, 2026 22:50
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