Skip to content

Minor Release ID issue #60

Description

@pruuk

npm test cannot pass on main at 19213e1. The second gate fails before any test runs:

$ cd archify && npm ci && npm test

> archify@2.13.0 check:validators
> node scripts/generate-validators.mjs --check
                                              # ok

> archify@2.13.0 check:release-identity
> node ../scripts/check-release-identity.mjs
release identity: README_EN.md must remain byte-identical to README.md.

npm test is check:validators && check:release-identity && node test/golden.mjs && node ../scripts/run-tests.mjs, so this halts the whole suite at step two.

Cause

Commit 19213e1 ("docs: remove attribution section") removed the 4-line Attribution section from README.md and README_ZH.md, but not from README_EN.md:

$ git show --stat 19213e1
 README.md    | 4 ----
 README_ZH.md | 4 ----
 2 files changed, 8 deletions(-)

$ diff README.md README_EN.md
275a276,279
> ## Attribution
>
> Archify is a fork and rewrite of [Cocoon-AI/architecture-diagram-generator](https://github.com/Cocoon-AI/architecture-diagram-generator) v1.0. The original visual language remains credited to Cocoon AI; Archify 2.x adds themes, exports, typed renderers, validation, accessibility, interaction, and a unified CLI. Both projects use the MIT License.
>

Expected vs actual

  • Expected: npm test runs the suite on a clean checkout of main.
  • Actual: it exits at check:release-identity.

Fix

Remove the same four lines from README_EN.md.

Environment

  • Archify main at 19213e1, version 2.13.0
  • Node.js v24.13.0
  • Reproduced on a clean LF clone, so this is not a line-endings artifact.

Unrelated but adjacent: LF assumptions break the suite on Windows checkouts

Mentioning here rather than opening a second issue — say the word and I'll split it out.

On a Windows checkout with core.autocrlf=true (git's default there), 5 further tests fail on unmodified main that pass on an LF checkout, because they assert against LF directly. For example test/skill-metadata.test.mjs:10:

const frontmatter = skill.match(/^---\n([\s\S]*?)\n---/);

That cannot match ---\r\n, so the test reports "SKILL.md must start with YAML frontmatter" against a file whose frontmatter is fine.

A .gitattributes containing * text=auto eol=lf would pin the working tree to LF and make the suite behave identically on every platform. CI covers Node 18/20/22/24, but presumably only on Linux, so this is invisible there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions