Skip to content

Resolve shared catalogue conflicts with one command - #609

Closed
repeat98 wants to merge 1 commit into
mainfrom
claude/catalog-refresh
Closed

repeat98 wants to merge 1 commit into
mainfrom
claude/catalog-refresh

Conversation

@repeat98

Copy link
Copy Markdown
Owner

Every Digitakt/Digitone module PR appends to the same four files:

  • src/catalog/machine-modules.json
  • src/community/module-changelogs.json
  • vendor/elekloader/catalog/catalog.json
  • vendor/elekloader/elekloader.lock.json

So when one of these PRs merges, every other open one conflicts with main and has to be repaired and regenerated by hand. That happened with #572, #574, #576 and #577.

What this adds

After a git merge main stops on those files, run npm run catalog:resolve. It:

  • merges the generated module list by module, the changelog by module key, and the catalog pins by file;
  • keeps main's order and appends the PR's new entries;
  • recomputes the catalogue revision and the lock's catalogue hash and counts.

It runs no module code. It refuses, and leaves to a person:

  • an entry both sides changed,
  • any conflict in another file,
  • a file whose layout on main it would reformat.

The Octatrack catalogue is left out on purpose. Its sourceRevision binds every compiled package, so two Octatrack PRs need a rebuild, not a merge.

docs/DEVELOPER_WORKFLOW.md names the command in the existing "main moved" step.

Tested

Not included

No automatic refresh of open PRs. Pushing merge commits to authors' fork branches needs a push token stored as a secret, and that needs the owner's decision first.

🤖 Generated with Claude Code

Every Digitakt/Digitone module PR appends to the same four files, so each
merge left the other open module PRs conflicted until someone repaired and
regenerated them by hand. `npm run catalog:resolve`, run after a conflicted
`git merge main`, merges machine-modules.json, module-changelogs.json and
the Elekloader catalog entry by entry, recomputes the catalogue revision
and lock hashes, and refuses entries both sides changed or any other
conflict.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@repeat98

Copy link
Copy Markdown
Owner Author

Closing without merging. #611 gave each module its own changelog file (src/community/module-changelogs/.json) and stopped committing the generated module list and the Elekloader catalogue, so three of the four files this script resolves no longer conflict between module PRs. Only vendor/elekloader/elekloader.lock.json is still shared. The branch also conflicts with main in package.json. Nothing is lost: the branch stays on origin if the lock-file case ever needs it.

@repeat98 repeat98 closed this Oct 15, 2026
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