Adds get-shit-done/bin/lib/package-identity.cjs as the single source of truth for PACKAGE_NAME, derived from package.json `name` via require. Refactors all runtime code-line occurrences in bin/install.js, get-shit-done/bin/check-latest-version.cjs, get-shit-done/bin/lib/shell-command-projection.cjs, get-shit-done/bin/lib/verify.cjs, scripts/changeset/cli.cjs, scripts/changeset/github-release-notes.cjs, and scripts/release-tarball-smoke.cjs to import PACKAGE_NAME from the identity module instead of hardcoding the literal. The package name is unchanged (@opengsd/get-shit-done-redux). Behaviour is byte-identical: all --help, hint, and release-notes strings render exactly as before. Golden-literal tests (bug-2992, bug-378) keep their hardcoded expected values and remain GREEN. Adds tests/package-name-single-source.test.cjs lint guard: fails CI if @opengsd/get-shit-done-redux appears as a code-line literal in runtime .cjs/.js outside the identity module, enforcing a one-file rename path. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ const {
|
||||
compareSemverCore,
|
||||
isStableTripletSemver,
|
||||
} = require('../../get-shit-done/bin/lib/semver-compare.cjs');
|
||||
const { PACKAGE_NAME } = require('../../get-shit-done/bin/lib/package-identity.cjs');
|
||||
|
||||
function parseArgs(argv) {
|
||||
const opts = {
|
||||
@@ -37,7 +38,7 @@ function parseArgs(argv) {
|
||||
changelog: null,
|
||||
output: null,
|
||||
repoSlug: 'open-gsd/get-shit-done-redux',
|
||||
installCommand: 'npx @opengsd/get-shit-done-redux@latest',
|
||||
installCommand: `npx ${PACKAGE_NAME}@latest`,
|
||||
json: false,
|
||||
};
|
||||
if (argv.length === 0) return { ok: true, opts };
|
||||
|
||||
@@ -4,6 +4,7 @@ const cp = require('node:child_process');
|
||||
const path = require('node:path');
|
||||
|
||||
const { parseFragment } = require('./parse.cjs');
|
||||
const { PACKAGE_NAME } = require('../../get-shit-done/bin/lib/package-identity.cjs');
|
||||
|
||||
const SECTION_ORDER = ['Fixed', 'Added', 'Changed', 'Deprecated', 'Removed', 'Security'];
|
||||
|
||||
@@ -146,7 +147,7 @@ function serializeGithubReleaseNotes({
|
||||
fromRef,
|
||||
toRef,
|
||||
repoSlug = 'open-gsd/get-shit-done-redux',
|
||||
installCommand = 'npx @opengsd/get-shit-done-redux@latest',
|
||||
installCommand = `npx ${PACKAGE_NAME}@latest`,
|
||||
}) {
|
||||
if (installCommand.includes('`')) {
|
||||
throw new Error('installCommand cannot contain backtick characters');
|
||||
|
||||
Reference in New Issue
Block a user