Skip to content

Pin dev-trunk to SVN revision and remove unpinnable dist#69

Merged
retlehs merged 7 commits intomainfrom
dev-trunk-svn-revision
Mar 26, 2026
Merged

Pin dev-trunk to SVN revision and remove unpinnable dist#69
retlehs merged 7 commits intomainfrom
dev-trunk-svn-revision

Conversation

@swalkinshaw
Copy link
Copy Markdown
Member

@swalkinshaw swalkinshaw commented Mar 26, 2026

Closes #68
Ref #15

Extract per-slug revision numbers from SVN changelog (already available in the DAV log response) and store as trunk_revision on each package. The build step now emits "reference": "trunk@<rev>" in ~dev.json, making composer.lock reproducible for dev-trunk installs. The unversioned dist URL is removed since it always points to latest trunk.

Extract per-slug revision numbers from SVN changelog (already available
in the DAV log response) and store as trunk_revision on each package.
The build step now emits `"reference": "trunk@<rev>"` in ~dev.json,
making composer.lock reproducible for dev-trunk installs. The
unversioned dist URL is removed since it always points to latest trunk.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@retlehs retlehs changed the title Pin dev-trunk to SVN revision and remove unpinnable dist (#68) Pin dev-trunk to SVN revision and remove unpinnable dist Mar 26, 2026
retlehs and others added 2 commits March 26, 2026 11:56
New `backfill-revisions` command scans SVN changelog backwards in
chunks to populate trunk_revision for plugins that don't have one
yet. Retries failed chunks up to 3 times and skips on persistent
failure. Also sanitize illegal XML characters from SVN log responses
to handle malformed commit messages in older revisions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
With trunk_revision support, Composer now pins dev-trunk installs
to a specific SVN revision in composer.lock. Replace mutability
warnings with messaging about revision pinning.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@retlehs retlehs force-pushed the dev-trunk-svn-revision branch from 4c2090f to 8174daf Compare March 26, 2026 16:57
@retlehs
Copy link
Copy Markdown
Member

retlehs commented Mar 26, 2026

Two additional changes added:

  1. Backfill command (backfill-revisions) — scans SVN changelog backwards in chunks to populate trunk_revision for all existing plugins. Includes retry logic and XML sanitization for malformed SVN commit messages.

  2. Updated frontend notices — detail and untagged pages now say "Composer will pin to a specific SVN revision in your lock file" instead of the old mutability warnings.

On merge:

  1. Deploy
  2. Run ./wppackages backfill-revisions to populate trunk_revision for existing plugins
  3. Run ./wppackages build --force && ./wppackages deploy to regenerate ~dev.json files with revision-pinned references

Going forward, the normal pipeline keeps trunk_revision up to date automatically via FetchSVNChangedSlugs — no additional commands needed.

Highlight that WP Packages pins dev-trunk to SVN revisions for
reproducible installs, while WPackagist uses mutable trunk zips.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@retlehs retlehs merged commit 82974e3 into main Mar 26, 2026
5 checks passed
@retlehs retlehs deleted the dev-trunk-svn-revision branch March 26, 2026 17:10
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.

Proposal: Remove dist from dev-trunk & Append revision numbers to reference

2 participants