Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ The package has no runtime code and no dependencies. It ships the config files,

## ✨ What's New

### Latest: v1.2.3 (October 2026)
### Latest: v1.2.4 (October 2026)

- **Headers restamped under fix-headers 2.1.4** β€” the repository's own header pass now runs on `@cldmv/fix-headers` 2.1.4 and restamped 37 internal files: dates are written in ISO 8601 form, 23 `@Date` timestamps that did not match their written date (the Dependabot config and 22 workflows copied from the `CLDMV/.github` templates) were corrected, and each header gained the empty frame line inside its opening and closing. The published `fix-headers.json` and every shipped setting are unchanged (#12).
- [View full v1.2.3 Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.3.md)
- **`@Last modified by` follows real edits** β€” the shared `fix-headers.json` sets `forceLastModifiedAuthorUpdate` to `false`. With fix-headers 2.2.0, a run that only rewrites a header (date format, spacing, a corrected `@Date`) updates `@Last modified time` but keeps `@Last modified by`, which now changes only when a file's content was edited. Together with v1.2.3's `forceAuthorUpdate: false`, no fix-headers run rewrites anyone's authorship. Upgrade extending repositories to fix-headers 2.2.0 or later (#20).
- [View full v1.2.4 Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.4.md)

### Recent Releases

- **v1.2.3** (October 2026) β€” the shared `fix-headers.json` keeps an existing `@Author` (`forceAuthorUpdate: false`, #16), and the repository's own headers are restamped under fix-headers 2.1.4 (#12) ([Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.3.md))
- **v1.2.2** (October 2026) β€” the CI `βœ… Required PR Check` mirror job runs on every path instead of being skipped on in-repo PRs (#10) ([Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.2.md))
- **v1.2.1** (October 2026) β€” a skipped PR run no longer satisfies the `βœ… Required PR Check` ruleset (#8) ([Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.1.md))
- **v1.2.0** (October 2026) β€” the shared `fix-headers.json` sets `margin: 1`, so fix-headers and Prettier agree on one blank line after a header; this changes fix-headers 2.1+ output for extending repositories (#7) ([Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.2.0.md))
- **v1.1.1** (September 2026) β€” the README is rewritten in the CLDMV package style (#3) ([Changelog](https://github.com/CLDMV/configs/blob/master/docs/changelog/v1/v1.1.1.md))

πŸ“š **For complete version history, see [docs/changelog/](https://github.com/CLDMV/configs/tree/master/docs/changelog/) and the [GitHub Releases](https://github.com/CLDMV/configs/releases).**

Expand Down
12 changes: 10 additions & 2 deletions docs/changelog/v1/v1.2.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

## Overview

`@cldmv/fix-headers` moves to 2.1.4, and re-running the header pass with the repository's own `fix-headers.json` restamped the headers of 37 files β€” the first full pass under fix-headers 2.x since the repository moved to it in [v1.2.0](./v1.2.0.md). Only header comments in repository-internal files changed (the ESLint and vitest configs, the pre-commit installer, Dependabot config, every workflow and the tests). The published files β€” `fix-headers.json`, `README.md` and `LICENSE` β€” and every shipped setting are unchanged.
`@cldmv/fix-headers` moves to 2.1.4, and re-running the header pass with the repository's own `fix-headers.json` restamped the headers of 37 files β€” the first full pass under fix-headers 2.x since the repository moved to it in [v1.2.0](./v1.2.0.md). Only header comments in repository-internal files changed (the ESLint and vitest configs, the pre-commit installer, Dependabot config, every workflow and the tests). Only those internal headers came from the restamp.

> **Correction:** this release also changed a published setting. [#16](https://github.com/CLDMV/configs/pull/16) merged into `next` before the release and shipped with it: `fix-headers.json` now sets `forceAuthorUpdate` to `false`, so fix-headers keeps an existing `@Author` instead of rewriting it to whoever runs the tool ([#15](https://github.com/CLDMV/configs/issues/15)). These notes originally said `fix-headers.json` was unchanged.

---

Expand All @@ -24,6 +26,12 @@ The 37 restamped headers changed in three ways:

`@Last modified time` was updated on every restamped file, as `forceLastModifiedAuthorUpdate` asks.

## πŸ› Bug Fixes

### Existing `@Author` is never rewritten ([#16](https://github.com/CLDMV/configs/pull/16))

`forceAuthorUpdate` was `true`, so together with `useGpgSignerAuthor` every fix-headers run in an extending repository replaced every file's `@Author` with the name of whoever ran it. `@Author` records who created a file, so the shared config now sets the option to `false` explicitly; a repository can still turn it on in its own config for a one-off migration.

## πŸ“š Documentation

- **NEW:** [docs/changelog/v1/v1.2.3.md](./v1.2.3.md) β€” this changelog, plus backfilled changelog files for [v1.1.0](./v1.1.0.md), [v1.1.1](./v1.1.1.md), [v1.2.0](./v1.2.0.md), [v1.2.1](./v1.2.1.md) and [v1.2.2](./v1.2.2.md).
Expand All @@ -37,4 +45,4 @@ The 37 restamped headers changed in three ways:

## Upgrade notes

- No changes to `fix-headers.json` or any other published file β€” drop-in for v1.2.2.
- `fix-headers.json` sets `forceAuthorUpdate: false` ([#16](https://github.com/CLDMV/configs/pull/16)): an existing `@Author` is kept rather than rewritten to the person running fix-headers. Repositories that relied on the force to migrate old author names can set it to `true` in their own config for that run. Otherwise drop-in for v1.2.2.
49 changes: 49 additions & 0 deletions docs/changelog/v1/v1.2.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# @cldmv/configs v1.2.4 Changelog

**Release Date**: October 2026
**Release Type**: Patch
**Branch**: `release/1.2.4`

---

## Overview

The shared `fix-headers.json` stops forcing `@Last modified by`. Until now every fix-headers run in an extending repository stamped whoever ran it as the last modifier of every file it touched, even when the only change was a header rewrite such as a new date format. With `forceLastModifiedAuthorUpdate` set to `false` and fix-headers 2.2.0, `@Last modified by` now records the last person who actually edited a file's content, while `@Last modified time` still moves whenever fix-headers rewrites a header.

Together with `forceAuthorUpdate: false`, which shipped in v1.2.3, the shared config no longer rewrites anyone's authorship: `@Author` keeps the file's creator, and `@Last modified by` follows real edits. Extending repositories should upgrade to `@cldmv/fix-headers` 2.2.0 or later alongside this release.

---

## πŸ› Bug Fixes

### `@Last modified by` follows real edits ([#20](https://github.com/CLDMV/configs/pull/20))

`forceLastModifiedAuthorUpdate` was `true`, so every run rewrote `@Last modified by` to the identity running fix-headers (the name on their signing key, or `git config user.name` without one) on every file it changed. A contributor who ran `npm run fix:headers` therefore became the last modifier of every restamped file, even files they never opened ([#15](https://github.com/CLDMV/configs/issues/15)).

The option is now `false`. From fix-headers 2.2.0 ([CLDMV/fix-headers#128](https://github.com/CLDMV/fix-headers/pull/128)) the field changes only when a file's content, everything outside the header, differs from the last commit, or when the file is new:

| What changed in a file | `@Last modified time` | `@Last modified by` | `@Author` |
| ------------------------------------------------------------------- | --------------------- | ------------------------------ | --------- |
| Nothing | unchanged | unchanged | unchanged |
| Only the header (date format, epoch, `@Date`, spacing, filename, …) | updated | unchanged | unchanged |
| Content edited, or a new file | updated | the person running fix-headers | unchanged |

On fix-headers releases before 2.2.0 the same setting keeps the existing `@Last modified by` on every run, real edits included, so the upgrade matters.

## πŸ”§ Dependencies

- `@cldmv/fix-headers` `^2.1.4` β†’ `^2.2.0` ([#20](https://github.com/CLDMV/configs/pull/20)), dev-only. The repository's own header pass ran under 2.2.0 and changed no files.
- `vitest` and `@vitest/coverage-v8` `^5.0.2` β†’ `^5.0.3`, and `globals` `^17.12.0` β†’ `^17.13.0` ([#21](https://github.com/CLDMV/configs/pull/21)), dev-only. The coverage and globals bumps first merged as [#18](https://github.com/CLDMV/configs/pull/18) and [#19](https://github.com/CLDMV/configs/pull/19), two minutes after the v1.2.3 release, and were lost when `next` was reset after that release ([CLDMV/.github#360](https://github.com/CLDMV/.github/issues/360)). #21 re-applies them, together with the vitest bump from [#17](https://github.com/CLDMV/configs/pull/17).

## πŸ“š Documentation

- **NEW:** [docs/changelog/v1/v1.2.4.md](./v1.2.4.md) β€” this changelog.
- README: the `fix-headers.json` table and notes explain both author settings, and the requirements now name fix-headers 2.2.0 as the version the author rules need.
- [v1.2.3](./v1.2.3.md) changelog corrected: that release also shipped `forceAuthorUpdate: false`, which its notes left out.

---

## Upgrade notes

- **Upgrade `@cldmv/fix-headers` to 2.2.0 or later** in every repository that extends this config. On older fix-headers, `@Last modified by` would no longer update even when a file is edited.
- The first fix-headers run after upgrading leaves existing `@Last modified by` values alone and only changes them on files whose content was edited since the last commit. No repository-wide restamp of authors.
Loading