From 5d52852c20e65bcb01a9c82c2fd37eb965c7142a Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sat, 3 Oct 2026 20:09:48 -0700 Subject: [PATCH 1/7] deps: bump @cldmv/fix-headers to 2.1.4 and restamp file headers Bumps @cldmv/fix-headers to 2.1.4 and re-runs npm run fix:headers. 0 files' headers were restamped. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0714d2e..08cff76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@cldmv/configs": "^1.2.0", - "@cldmv/fix-headers": "^2.1.1", + "@cldmv/fix-headers": "^2.1.4", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", "vitest": "^5.0.1" @@ -91,9 +91,9 @@ } }, "node_modules/@cldmv/fix-headers": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cldmv/fix-headers/-/fix-headers-2.1.1.tgz", - "integrity": "sha512-08xW44RvtrKUCTOjUFKHyrDvx6rT70zGqgRR+tdW0R9ElZrHwSg25xCRrZD+U7Dmj5fK9KmtuOWPjZtJYSfzYA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@cldmv/fix-headers/-/fix-headers-2.1.4.tgz", + "integrity": "sha512-PvCKMztN9k+jOjEpMCANMaDIkNW7cs2qp5P73JVzResk1+DfqhoZVqT9jpTT8cUu+6OGszsNqj8/X0Q9IhfNtg==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 60c859f..ea56d2a 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "@cldmv/configs": "^1.2.0", - "@cldmv/fix-headers": "^2.1.1", + "@cldmv/fix-headers": "^2.1.4", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", "vitest": "^5.0.1" From 92e70f50167a490d9100b808a8d80eee133810e4 Mon Sep 17 00:00:00 2001 From: "cldmv-bot[bot]" <230771808+cldmv-bot[bot]@users.noreply.github.com> Date: Sun, 4 Oct 2026 03:25:28 +0000 Subject: [PATCH 2/7] chore: bump version to 0.0.12 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08cff76..cd553cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gitmulti", - "version": "0.0.11", + "version": "0.0.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gitmulti", - "version": "0.0.11", + "version": "0.0.12", "license": "GPL-3.0", "dependencies": { "commander": "^2.19.0" diff --git a/package.json b/package.json index ea56d2a..3f1602c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gitmulti", - "version": "0.0.11", + "version": "0.0.12", "description": "Simple Node system to manage multiple Repositories into the same repo", "main": "gitmulti.js", "scripts": { From 0908be44a8e435cc0cf04d99851d7e1120111d1b Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sat, 3 Oct 2026 20:44:57 -0700 Subject: [PATCH 3/7] docs: backfill changelogs for releases that shipped without one --- docs/changelog/v0/v0.0.10.md | 32 +++++++++++++++++++++++++++++ docs/changelog/v0/v0.0.11.md | 28 +++++++++++++++++++++++++ docs/changelog/v0/v0.0.2.md | 38 ++++++++++++++++++++++++++++++++++ docs/changelog/v0/v0.0.3.md | 29 ++++++++++++++++++++++++++ docs/changelog/v0/v0.0.4.md | 29 ++++++++++++++++++++++++++ docs/changelog/v0/v0.0.5.md | 34 ++++++++++++++++++++++++++++++ docs/changelog/v0/v0.0.6.md | 28 +++++++++++++++++++++++++ docs/changelog/v0/v0.0.7.md | 35 +++++++++++++++++++++++++++++++ docs/changelog/v0/v0.0.8.md | 28 +++++++++++++++++++++++++ docs/changelog/v0/v0.0.9.md | 40 ++++++++++++++++++++++++++++++++++++ 10 files changed, 321 insertions(+) create mode 100644 docs/changelog/v0/v0.0.10.md create mode 100644 docs/changelog/v0/v0.0.11.md create mode 100644 docs/changelog/v0/v0.0.2.md create mode 100644 docs/changelog/v0/v0.0.3.md create mode 100644 docs/changelog/v0/v0.0.4.md create mode 100644 docs/changelog/v0/v0.0.5.md create mode 100644 docs/changelog/v0/v0.0.6.md create mode 100644 docs/changelog/v0/v0.0.7.md create mode 100644 docs/changelog/v0/v0.0.8.md create mode 100644 docs/changelog/v0/v0.0.9.md diff --git a/docs/changelog/v0/v0.0.10.md b/docs/changelog/v0/v0.0.10.md new file mode 100644 index 0000000..927caa0 --- /dev/null +++ b/docs/changelog/v0/v0.0.10.md @@ -0,0 +1,32 @@ +# gitmulti v0.0.10 Changelog + +**Release Date**: October 2026 +**Release Type**: Patch + +--- + +## Overview + +The release title names a coverage-v8 bump, but the release also carries a vitest-runner bump and a fix to the `ci.yml` Required PR Check job. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Stop the skipped PR-run mirror from satisfying Required PR Check ([#36](https://github.com/CLDMV/gitmulti/pull/36)) + +- On an in-repo feature PR the `pull_request` run skipped the `✅ Required PR Check` mirror job, and GitHub treats a skipped required check as passing, so a PR could become mergeable before the push run's tests finished. The job name in `ci.yml` became an expression so the skipped job no longer posts under the required name (see [CLDMV/slothlet#553](https://github.com/CLDMV/slothlet/issues/553) for the original incident). + +## 🔧 Dependencies + +- `@vitest/coverage-v8` 5.0.1 → 5.0.2 ([#33](https://github.com/CLDMV/gitmulti/pull/33)) and `@cldmv/vitest-runner` 1.2.0 → 1.5.1 ([#34](https://github.com/CLDMV/gitmulti/pull/34)). Both are dev dependencies and only affect the test/CI toolchain. `package.json` ranges moved to `^5.0.2` and `^1.5.1`; the lockfile also resolves `vitest` to 5.0.2. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.10.md](./v0.0.10.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.9. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.11.md b/docs/changelog/v0/v0.0.11.md new file mode 100644 index 0000000..1eeb4e7 --- /dev/null +++ b/docs/changelog/v0/v0.0.11.md @@ -0,0 +1,28 @@ +# gitmulti v0.0.11 Changelog + +**Release Date**: October 2026 +**Release Type**: Patch + +--- + +## Overview + +A follow-up CI fix to v0.0.10. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Run the in-repo PR mirror job instead of skipping it ([#37](https://github.com/CLDMV/gitmulti/pull/37)) + +- GitHub does not evaluate the `name:` of a skipped job, so the previous fix showed raw expression text for the skipped job. The mirror job in `ci.yml` now always runs. On the in-repo PR path it reports under `⏭️ Required PR Check (reported by the push run)` and exits as a no-op; every status-owning path (push, fork PR, release PR) reports `✅ Required PR Check`. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.11.md](./v0.0.11.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.10. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.2.md b/docs/changelog/v0/v0.0.2.md new file mode 100644 index 0000000..bbe3a33 --- /dev/null +++ b/docs/changelog/v0/v0.0.2.md @@ -0,0 +1,38 @@ +# gitmulti v0.0.2 Changelog + +**Release Date**: August 2026 +**Release Type**: Patch + +--- + +## Overview + +gitmulti is a small Node command-line tool for managing several repositories inside one working tree. It is meant to scan a repo for `.gitmulti` JSON files, which map files and paths to the git URL of the repository they belong to, and then commit, push and pull each underlying repo individually; it deliberately does nothing else from the git toolset. The entry point, `gitmulti.js`, is a thin [commander](https://www.npmjs.com/package/commander) program that declares `--version` and a default `list` subcommand. Versions before this one were never released (the 0.0.1 in `package.json` is the 2019 initial import). + +This is the first release, and it is a repository modernization: gitmulti adopts the CLDMV `@v4` staging-branch workflow set and a `@cldmv/vitest-runner` test setup, and drops an unused dependency. No runtime code changed — `gitmulti.js` is byte-for-byte what it was in the 2019 import. + +--- + +## 🔧 CI & tooling + +### Adopt CLDMV @v4 workflows + vitest-runner tests ([#6](https://github.com/CLDMV/gitmulti/pull/6)) + +- Adds the v4 staging-branch workflow set under `.github/workflows/` (ci, publish, feature-pr, next-release, hotfixes-release, next-reset, hotfix-redirector, labeler, pr-title-normalizer, master-commit-audit, release-notify, tag-health, update-major-version-tags, v4-bootstrap, cla, codeql, scorecard, dependency-review, dependabot-auto-merge, branch-retention, stale, welcome), all thin callers of `CLDMV/.github` reusable workflows pinned `@v4`, plus `.github/dependabot.yml`. +- Adds the `@cldmv/vitest-runner` test setup: `.configs/vitest.config.mjs`, `tests/run-vitest.mjs` and two test files (`tests/gitmulti.test.mjs`, `tests/gitmulti.cli.test.mjs`) that characterize the CLI's observable behaviour. They replace the `echo "Error: no test specified"` stub. +- `package.json` scripts `test`, `test:watch`, `coverage` and `ci:coverage` are added, along with placeholder `build` / `build:ci` scripts that only echo, because the coverage job runs `npm run build`. +- Releases now go through the `next` → `master` release PR. + +## 🔧 Dependencies + +- **Removed unused `lodash`** from runtime `dependencies` ([#9](https://github.com/CLDMV/gitmulti/pull/9)). `git grep` at this release finds no `lodash` reference outside the lockfile — `gitmulti.js` only requires `commander` — so removing it is not a breaking change. `commander` stays at `^2.19.0`. +- **New dev dependencies** `@cldmv/vitest-runner` ^1.2.0, `@vitest/coverage-v8` ^4.1.10 and `vitest` ^4.1.10. They only affect the test and CI toolchain. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.2.md](./v0.0.2.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes. Nothing in `gitmulti.js` changed, and the only runtime dependency removed was never used. diff --git a/docs/changelog/v0/v0.0.3.md b/docs/changelog/v0/v0.0.3.md new file mode 100644 index 0000000..8698b15 --- /dev/null +++ b/docs/changelog/v0/v0.0.3.md @@ -0,0 +1,29 @@ +# gitmulti v0.0.3 Changelog + +**Release Date**: August 2026 +**Release Type**: Patch + +--- + +## Overview + +A test-file naming change only. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Rename test files to `*.test.vitest.mjs` ([#10](https://github.com/CLDMV/gitmulti/pull/10)) + +- `tests/gitmulti.test.mjs` → `tests/gitmulti.test.vitest.mjs` and `tests/gitmulti.cli.test.mjs` → `tests/gitmulti.cli.test.vitest.mjs`, following the CLDMV fleet naming convention. +- The `include` glob in `.configs/vitest.config.mjs` and the `testFilePattern` in `tests/run-vitest.mjs` are updated to match, and file-name references in test comments are adjusted. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.3.md](./v0.0.3.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.2. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.4.md b/docs/changelog/v0/v0.0.4.md new file mode 100644 index 0000000..44aafbf --- /dev/null +++ b/docs/changelog/v0/v0.0.4.md @@ -0,0 +1,29 @@ +# gitmulti v0.0.4 Changelog + +**Release Date**: August 2026 +**Release Type**: Patch + +--- + +## Overview + +A CI-only release: the `ci.yml` concurrency policy no longer lets release-relevant runs be cancelled. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Never supersede release-relevant CI runs ([#12](https://github.com/CLDMV/gitmulti/pull/12)) + +- `ci.yml` concurrency now gives pushes to the release base branch (from `CLDMV_RELEASE_BASE`, falling back to the default branch), pushes to `next` / `hotfixes`, and the `next` / `hotfixes` release PRs a unique concurrency group per run. Feature branches still cancel superseded runs. +- Previously a burst of pushes during a release could cancel a pending run and leave a red cancelled check on the release PR. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.4.md](./v0.0.4.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.3. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.5.md b/docs/changelog/v0/v0.0.5.md new file mode 100644 index 0000000..2bb218b --- /dev/null +++ b/docs/changelog/v0/v0.0.5.md @@ -0,0 +1,34 @@ +# gitmulti v0.0.5 Changelog + +**Release Date**: August 2026 +**Release Type**: Patch + +--- + +## Overview + +Bot-identity wiring in three workflow callers plus a patch-level bump of the test toolchain. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Wire bot identity into release workflows ([#16](https://github.com/CLDMV/gitmulti/pull/16)) + +- `feature-pr.yml`, `next-release.yml` and `hotfixes-release.yml` now pass `BOT_NAME` / `BOT_EMAIL` (from `CLDMV_BOT_NAME` / `CLDMV_BOT_EMAIL`) so bot-authored commits and PRs use the real bot identity. + +## 🔧 Dependencies + +### Patch group bump ([#15](https://github.com/CLDMV/gitmulti/pull/15)) + +- `vitest` and `@vitest/coverage-v8` 4.1.10 → 4.1.11. Both are dev dependencies and only affect the test/CI toolchain; the `package.json` range for `@vitest/coverage-v8` moved to `^4.1.11` and the lockfile resolves both to 4.1.11. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.5.md](./v0.0.5.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.4. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.6.md b/docs/changelog/v0/v0.0.6.md new file mode 100644 index 0000000..568c748 --- /dev/null +++ b/docs/changelog/v0/v0.0.6.md @@ -0,0 +1,28 @@ +# gitmulti v0.0.6 Changelog + +**Release Date**: September 2026 +**Release Type**: Patch + +--- + +## Overview + +A single CI change: `hotfix-redirector.yml` now passes the bot GPG secrets. No runtime code changed. + +--- + +## 🔧 CI & tooling + +### Sign redirected security PRs ([#18](https://github.com/CLDMV/gitmulti/pull/18)) + +- `hotfix-redirector.yml` maps `BOT_NAME`, `BOT_EMAIL`, `BOT_GPG_PRIVATE_KEY` and `BOT_GPG_PASSPHRASE` so Dependabot security PRs redirected away from `master` are cherry-picked as signed commits; unsigned ones were blocked by the signature rule. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.6.md](./v0.0.6.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.5. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.7.md b/docs/changelog/v0/v0.0.7.md new file mode 100644 index 0000000..6d947a7 --- /dev/null +++ b/docs/changelog/v0/v0.0.7.md @@ -0,0 +1,35 @@ +# gitmulti v0.0.7 Changelog + +**Release Date**: September 2026 +**Release Type**: Patch + +--- + +## Overview + +The Node CI matrix and the test toolchain move to vitest 5. Only workflow files, `dependabot.yml` and dev dependencies changed; no runtime code changed. + +--- + +## 🔧 CI & tooling + +### Node CI matrix for vitest 5 ([#22](https://github.com/CLDMV/gitmulti/pull/22)) + +- `ci.yml` and `publish.yml` default `min_node_version` moves from `20` to `22.12.0` (the floor vitest 5 runs on) and `max_node_major` from `22` to `26`. +- `.github/dependabot.yml` gains `vitest`, `eslint` and `prettier` groups so packages that peer each other exactly are bumped together. + +## 🔧 Dependencies + +### vitest 5 ([#20](https://github.com/CLDMV/gitmulti/pull/20)) + +- `vitest` and `@vitest/coverage-v8` 4.1.11 → 5.0.0, both dev dependencies that only affect the test/CI toolchain. The `package.json` ranges and lockfile both moved to 5.0.0. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.7.md](./v0.0.7.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.6. No runtime code changed. Running the repository's own tests now needs Node 22.12.0 or newer. diff --git a/docs/changelog/v0/v0.0.8.md b/docs/changelog/v0/v0.0.8.md new file mode 100644 index 0000000..c7756b4 --- /dev/null +++ b/docs/changelog/v0/v0.0.8.md @@ -0,0 +1,28 @@ +# gitmulti v0.0.8 Changelog + +**Release Date**: September 2026 +**Release Type**: Patch + +--- + +## Overview + +A dev-dependency patch bump. Nothing outside `package.json` and the lockfile changed, and no runtime code changed. + +--- + +## 🔧 Dependencies + +### vitest group bump ([#24](https://github.com/CLDMV/gitmulti/pull/24)) + +- `vitest` and `@vitest/coverage-v8` 5.0.0 → 5.0.1. Both are dev dependencies and only affect the test/CI toolchain. `package.json` moves `vitest` to `^5.0.1`; the lockfile resolves both packages to 5.0.1. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.8.md](./v0.0.8.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.7. No runtime code changed. diff --git a/docs/changelog/v0/v0.0.9.md b/docs/changelog/v0/v0.0.9.md new file mode 100644 index 0000000..73c69f4 --- /dev/null +++ b/docs/changelog/v0/v0.0.9.md @@ -0,0 +1,40 @@ +# gitmulti v0.0.9 Changelog + +**Release Date**: October 2026 +**Release Type**: Patch + +--- + +## Overview + +Despite its title, this release is a broad CI refresh: workflows are synced with the CLDMV/.github v4.29.2 templates, the bundle-size workflow is added, and the shared CLDMV file-header config stamps uniform comment headers across the repo. The only change to `gitmulti.js` is a comment header; no runtime code changed. + +--- + +## 🔧 CI & tooling + +### Sync with CLDMV/.github v4.29.2 templates ([#27](https://github.com/CLDMV/gitmulti/pull/27)) + +- Refreshes every workflow caller and `dependabot.yml`, and adds `member-auto-merge.yml` (auto-enables auto-merge on org members' PRs into `next` / `hotfixes`), `pr-notify.yml`, `provenance.yml` (SLSA provenance on release), `release-merge.yml` and `dependabot-recreate.yml`. + +### Bundle-size workflow ([#29](https://github.com/CLDMV/gitmulti/pull/29)) + +- Adds `bundle-size.yml` and restores the full workflow list in `release-merge.yml`. + +### Shared fix-headers config ([#31](https://github.com/CLDMV/gitmulti/pull/31)) + +- Adds `.configs/fix-headers.json` (extends `@cldmv/configs/fix-headers.json`) and a `fix:headers` script, and stamps a uniform comment header into source, test, config and workflow files. In `gitmulti.js` this is a comment block only — the code below it is unchanged. + +## 🔧 Dependencies + +- New dev dependencies `@cldmv/fix-headers` ^2.1.1 and `@cldmv/configs` ^1.2.0. They only affect repository tooling. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.9.md](./v0.0.9.md) — this changelog (added retroactively). + +--- + +## Upgrade notes + +- No breaking changes — drop-in for v0.0.8. No runtime code changed; `gitmulti.js` and the tests only gained comment headers. From c4d809e02a110ed1a5eed5bb2ae82c845c9585dc Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sat, 3 Oct 2026 20:44:57 -0700 Subject: [PATCH 4/7] docs: add v0.0.12 changelog and README What's New --- README.md | 16 ++++++++++++++++ docs/changelog/v0/v0.0.12.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 docs/changelog/v0/v0.0.12.md diff --git a/README.md b/README.md index 18352fa..5e794f4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,22 @@ # gitmulti Simple Node system to manage multiple Repositories into the same repo +## ✨ What's New + +### Latest: v0.0.12 (October 2026) + +- **Dev-tooling dependency bump ([#39](https://github.com/CLDMV/gitmulti/pull/39))** — `@cldmv/fix-headers` moves from 2.1.1 to 2.1.4, the tool that maintains the repository's file headers. It produced no header changes here, so only `package.json` and the lockfile changed. The CLI is unchanged; it's a drop-in replacement for the previous version. +- [View full v0.0.12 Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.12.md) + +### Recent Releases + +- **v0.0.11** (October 2026) — CI only: the in-repo PR mirror job now always runs and reports under a non-required name instead of being skipped ([Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.11.md)) +- **v0.0.10** (October 2026) — CI only: a skipped PR-run mirror job no longer satisfies the `✅ Required PR Check` ruleset gate; `@cldmv/vitest-runner` 1.5.1 ([Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.10.md)) +- **v0.0.9** (October 2026) — workflows synced to the CLDMV/.github v4.29.2 templates, bundle-size workflow, shared fix-headers config (comment-only header in `gitmulti.js`); no runtime change ([Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.9.md)) +- **v0.0.8** (September 2026) — vitest and `@vitest/coverage-v8` 5.0.1 (dev dependencies only) ([Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.8.md)) + +📚 **For complete version history and detailed release notes, see the [docs/changelog/](https://github.com/CLDMV/gitmulti/tree/master/docs/changelog/) folder.** + # Preface I have a habit of creating tools which are already available but are not simple. I've done research on this issue multiple times and maybe I just didn't find the solution that is already out there. But basically I want to edit a folder of code and have a program update the individual repos which that code belongs to. My first attempt required listing all the files which belonged to each repo. This was alright but required me to either spend hours making this list or write some gui for it. The GUI never happened and months later I abandonned the idea. diff --git a/docs/changelog/v0/v0.0.12.md b/docs/changelog/v0/v0.0.12.md new file mode 100644 index 0000000..73a2ac7 --- /dev/null +++ b/docs/changelog/v0/v0.0.12.md @@ -0,0 +1,30 @@ +# gitmulti v0.0.12 Changelog + +**Release Date**: October 2026 +**Release Type**: Patch +**Branch**: `next` → `master` + +--- + +## Overview + +A single dev-tooling dependency patch. `@cldmv/fix-headers`, which maintains the comment headers at the top of the repository's source, test, config and workflow files, moves from 2.1.1 to 2.1.4. No runtime code changed: `gitmulti.js` is exactly as in v0.0.11, and the runtime dependency (`commander` ^2.19.0) and its lockfile entry are unchanged. + +The bump was made with a header restamp in mind, but fix-headers 2.1.4 produced no header changes in this repository, so the only files touched are `package.json` and `package-lock.json`. + +--- + +## 🔧 Dependencies + +- **`@cldmv/fix-headers` `2.1.1` → `2.1.4`** ([#39](https://github.com/CLDMV/gitmulti/pull/39)), dev dependency. The 2.1.x line no longer stamps a header into files that have no usable comment syntax (strict JSON such as `package.json`, and Markdown unless explicitly forced), never walks into `node_modules` or other dependency folders, and processes every repeated `--input` value instead of only the last. It only runs through the `fix:headers` script; nothing that ships depends on it. + +## 📚 Documentation + +- **NEW:** [docs/changelog/v0/v0.0.12.md](./v0.0.12.md) — this changelog. +- Changelogs for earlier releases that shipped without one were added in the same pass (see the [docs/changelog/](https://github.com/CLDMV/gitmulti/tree/master/docs/changelog/) folder). + +--- + +## Upgrade notes + +- No breaking changes, and no runtime code changed. It's a drop-in replacement for v0.0.11. From f315d740d0fb38160dc7a72b96dc68aa1f0a7f71 Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sun, 4 Oct 2026 16:38:20 -0700 Subject: [PATCH 5/7] deps: bump @cldmv/fix-headers to 2.2.0 Bumps @cldmv/fix-headers from 2.1.4 to 2.2.0. No file headers changed. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd553cc..82ef485 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@cldmv/configs": "^1.2.0", - "@cldmv/fix-headers": "^2.1.4", + "@cldmv/fix-headers": "^2.2.0", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", "vitest": "^5.0.1" @@ -91,9 +91,9 @@ } }, "node_modules/@cldmv/fix-headers": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@cldmv/fix-headers/-/fix-headers-2.1.4.tgz", - "integrity": "sha512-PvCKMztN9k+jOjEpMCANMaDIkNW7cs2qp5P73JVzResk1+DfqhoZVqT9jpTT8cUu+6OGszsNqj8/X0Q9IhfNtg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cldmv/fix-headers/-/fix-headers-2.2.0.tgz", + "integrity": "sha512-EQTAKCo0B639q2bde+vO5ciYbtvNgAJFm0DBthIJQnmTFJmQDUlObp5EsTRgg5CUlFoUnGMX+q35LC02QvYU4w==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 3f1602c..167047e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "@cldmv/configs": "^1.2.0", - "@cldmv/fix-headers": "^2.1.4", + "@cldmv/fix-headers": "^2.2.0", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", "vitest": "^5.0.1" From 98852730c8fd9d40d430aaec51ae02f66661c3fc Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sun, 4 Oct 2026 19:05:29 -0700 Subject: [PATCH 6/7] deps: bump @cldmv/configs to 1.2.4 Range ^1.2.0 -> ^1.2.4. The shared fix-headers.json in 1.2.4 sets forceAuthorUpdate and forceLastModifiedAuthorUpdate to false, so with @cldmv/fix-headers 2.2.0 @Author is never rewritten and @Last modified by changes only on real content edits. Restamped 0 files; fix:headers made no changes. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82ef485..9e4d55f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "commander": "^2.19.0" }, "devDependencies": { - "@cldmv/configs": "^1.2.0", + "@cldmv/configs": "^1.2.4", "@cldmv/fix-headers": "^2.2.0", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", @@ -80,9 +80,9 @@ } }, "node_modules/@cldmv/configs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@cldmv/configs/-/configs-1.2.0.tgz", - "integrity": "sha512-FDmlxOx6ceKuD5zTamUy9XOfAC4opeOaLxWqZz9okKxj8TsTZP6dN7W0VccRYRdw4606NvXjhdZqOPibcNpXmQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cldmv/configs/-/configs-1.2.4.tgz", + "integrity": "sha512-7HPqAgCKqol3fHpawEsXJ5ZqHxlDPZk1puoFu43f/gaNfhWwufDTzjkvLk90yVEumyz4N3pUwIxfbHUkUTpDEg==", "dev": true, "license": "Apache-2.0", "funding": { diff --git a/package.json b/package.json index 167047e..9b52d4a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "commander": "^2.19.0" }, "devDependencies": { - "@cldmv/configs": "^1.2.0", + "@cldmv/configs": "^1.2.4", "@cldmv/fix-headers": "^2.2.0", "@cldmv/vitest-runner": "^1.5.1", "@vitest/coverage-v8": "^5.0.2", From 784277cacee4906a55b4299dca9e1d713e9ebd14 Mon Sep 17 00:00:00 2001 From: Shinrai Date: Sun, 4 Oct 2026 20:10:52 -0700 Subject: [PATCH 7/7] docs: update the v0.0.12 release notes --- README.md | 2 +- docs/changelog/v0/v0.0.12.md | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5e794f4..cbe0c4e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Simple Node system to manage multiple Repositories into the same repo ### Latest: v0.0.12 (October 2026) -- **Dev-tooling dependency bump ([#39](https://github.com/CLDMV/gitmulti/pull/39))** — `@cldmv/fix-headers` moves from 2.1.1 to 2.1.4, the tool that maintains the repository's file headers. It produced no header changes here, so only `package.json` and the lockfile changed. The CLI is unchanged; it's a drop-in replacement for the previous version. +- **Dev-tooling dependency bump ([#39](https://github.com/CLDMV/gitmulti/pull/39), [#42](https://github.com/CLDMV/gitmulti/pull/42))** — `@cldmv/fix-headers` moves from 2.1.1 to 2.2.0, so `@Last modified by` now follows content edits only, and `@cldmv/configs` moves from 1.2.0 to 1.2.4, whose shared config no longer forces the author fields. Neither changed any file header here. The CLI is unchanged; it's a drop-in replacement for the previous version. - [View full v0.0.12 Changelog](https://github.com/CLDMV/gitmulti/blob/master/docs/changelog/v0/v0.0.12.md) ### Recent Releases diff --git a/docs/changelog/v0/v0.0.12.md b/docs/changelog/v0/v0.0.12.md index 73a2ac7..7ffc3a4 100644 --- a/docs/changelog/v0/v0.0.12.md +++ b/docs/changelog/v0/v0.0.12.md @@ -8,23 +8,28 @@ ## Overview -A single dev-tooling dependency patch. `@cldmv/fix-headers`, which maintains the comment headers at the top of the repository's source, test, config and workflow files, moves from 2.1.1 to 2.1.4. No runtime code changed: `gitmulti.js` is exactly as in v0.0.11, and the runtime dependency (`commander` ^2.19.0) and its lockfile entry are unchanged. +A dev-tooling dependency patch. The tools that maintain the comment headers at the top of the repository's source, test, config and workflow files move to their current releases: `@cldmv/fix-headers` from 2.1.1 to 2.2.0, and `@cldmv/configs`, the package that supplies the shared fix-headers configuration, from 1.2.0 to 1.2.4. No runtime code changed: `gitmulti.js` is exactly as in v0.0.11, and the runtime dependency (`commander` ^2.19.0) and its lockfile entry are unchanged. -The bump was made with a header restamp in mind, but fix-headers 2.1.4 produced no header changes in this repository, so the only files touched are `package.json` and `package-lock.json`. +The bumps were made with a header restamp in mind, but neither produced any header change in this repository: running `npm run fix:headers` against this release rewrites 0 files, so the only files touched are `package.json` and `package-lock.json`, plus the documentation described below. --- ## 🔧 Dependencies -- **`@cldmv/fix-headers` `2.1.1` → `2.1.4`** ([#39](https://github.com/CLDMV/gitmulti/pull/39)), dev dependency. The 2.1.x line no longer stamps a header into files that have no usable comment syntax (strict JSON such as `package.json`, and Markdown unless explicitly forced), never walks into `node_modules` or other dependency folders, and processes every repeated `--input` value instead of only the last. It only runs through the `fix:headers` script; nothing that ships depends on it. +Both are dev dependencies. The lockfile changes are limited to these two packages and the package's own version. + +- **`@cldmv/fix-headers` `^2.1.1` → `^2.2.0`** (resolved 2.1.1 → 2.2.0; [#39](https://github.com/CLDMV/gitmulti/pull/39) moved it to 2.1.4 and [#42](https://github.com/CLDMV/gitmulti/pull/42) to 2.2.0). The 2.1.4 release no longer stamps a header into files that have no usable comment syntax (strict JSON such as `package.json`, and Markdown unless explicitly forced), never walks into `node_modules` or other dependency folders, and processes every repeated `--input` value instead of only the last. The 2.2.0 release changes what `@Last modified by` means: it now names whoever last edited a file's content, so a run that only rewrites a header (a date format conversion, a corrected `@Project`, new spacing) keeps the recorded editor instead of claiming the file for whoever ran the tool. The 2.1.2 and 2.1.3 releases in between were repository-maintenance releases with no change to the tool. It only runs through the `fix:headers` script; nothing that ships depends on it. +- **`@cldmv/configs` `^1.2.0` → `^1.2.4`** ([#42](https://github.com/CLDMV/gitmulti/pull/42)). `.configs/fix-headers.json` extends `@cldmv/configs/fix-headers.json`, and from 1.2.4 that shared config sets `forceAuthorUpdate` and `forceLastModifiedAuthorUpdate` to `false` (both were `true` in 1.2.0). Together with fix-headers 2.2.0, a `fix:headers` run no longer overwrites `@Author` or `@Last modified by` on every file. ## 📚 Documentation -- **NEW:** [docs/changelog/v0/v0.0.12.md](./v0.0.12.md) — this changelog. -- Changelogs for earlier releases that shipped without one were added in the same pass (see the [docs/changelog/](https://github.com/CLDMV/gitmulti/tree/master/docs/changelog/) folder). +- **NEW:** [docs/changelog/v0/v0.0.12.md](./v0.0.12.md): this changelog. +- Changelogs for earlier releases that shipped without one (v0.0.2 through v0.0.11) were added in the same pass (see the [docs/changelog/](https://github.com/CLDMV/gitmulti/tree/master/docs/changelog/) folder). +- README: a new **What's New** section with the Latest release and the four before it. --- ## Upgrade notes - No breaking changes, and no runtime code changed. It's a drop-in replacement for v0.0.11. +- For contributors: fix-headers 2.2.0 decides whether a file's content was edited by comparing the working tree with git `HEAD`, so run `npm run fix:headers` before committing, not after.