From ad4aea3ac1415d840256115b45c0b00b83a03505 Mon Sep 17 00:00:00 2001 From: steiner Date: Thu, 18 Jun 2026 01:45:11 +0100 Subject: [PATCH] chore: drop version from package.json, make git tag the source of truth The release workflow was the only enforced consumer of the require(\"./package.json\").version check, and it only existed to guard against tag/package.json drift. Docker image tags and gh release create already derive from GITHUB_REF_NAME, so the guard rail was the only thing the field enabled. Changes: - package.json: remove the version field; regenerate package-lock.json - src/server.js: drop the require and the v\${version} from the boot log - .github/workflows/release.yaml: drop the PACKAGE_VERSION comparison - README.md, AGENTS.md, charts/.../README.md: rewrite the prose that claimed package.json was the single source of truth --- .github/workflows/release.yaml | 6 ------ AGENTS.md | 2 +- README.md | 4 ++-- charts/readability-js-server/README.md | 2 +- package-lock.json | 1 - package.json | 1 - src/server.js | 3 +-- 7 files changed, 5 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1082731..c7f6954 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -45,12 +45,6 @@ jobs: exit 1 fi - PACKAGE_VERSION="$(node -p "require('./package.json').version")" - if [ "${PACKAGE_VERSION}" != "${VERSION}" ]; then - echo "Tag version ${VERSION} does not match package.json version ${PACKAGE_VERSION}" >&2 - exit 1 - fi - { echo "version=${VERSION}" echo "major=${MAJOR}" diff --git a/AGENTS.md b/AGENTS.md index 0c44c40..e3eb890 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,7 +22,7 @@ The Makefile mirrors those workflows with `make install`, `make start`, `make lint`, `make lint-fix`, `make helm-lint`, `make helm-template`, `make helm-verify`, `make build-container`, `make run-container`, `make release-tag`, and `make example-request`. -`package.json` is the single source of truth for the service version. Release publishing is tag-driven: bump `package.json`'s `version`, commit it, create a matching `vX.Y.Z` tag, and push the tag to trigger Docker publish plus GitHub Release creation. +Release publishing is tag-driven: create a matching `vX.Y.Z` git tag and push it to trigger Docker publish plus GitHub Release creation. The service version is no longer stored in `package.json`. ## Testing expectations diff --git a/README.md b/README.md index a7f9468..d5dcf93 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ make install make start ``` -Release versions come from [`package.json`](package.json). To publish a release, bump `version`, commit the change, create a `vX.Y.Z` tag, and push that tag. The release workflow publishes Docker images for `X.Y.Z`, `X.Y`, `X`, and `latest`, and creates the matching GitHub Release with generated notes. +Release versions come from the git tag (`vX.Y.Z`). To publish a release, create a `vX.Y.Z` tag and push it. The release workflow publishes Docker images for `X.Y.Z`, `X.Y`, `X`, and `latest`, and creates the matching GitHub Release with generated notes. ## Helm chart @@ -149,7 +149,7 @@ Artifact Hub should reference the external Helm repository URL `https://phpdocke ## Release and versioning -Docker image publishing remains tag-driven. Bump [`package.json`](package.json), commit it, create the matching `vX.Y.Z` tag, and push the tag to publish the container image and GitHub Release. +Docker image publishing remains tag-driven. Create the matching `vX.Y.Z` tag and push it to publish the container image and GitHub Release. Helm chart publishing is separate and runs from chart changes on `master` or an explicit manual trigger. It packages changed charts from `charts/`, updates the GitHub Pages repository on `gh-pages`, and publishes `artifacthub-repo.yml` next to `index.yaml` for Artifact Hub. diff --git a/charts/readability-js-server/README.md b/charts/readability-js-server/README.md index b43bd0e..2beeaaf 100644 --- a/charts/readability-js-server/README.md +++ b/charts/readability-js-server/README.md @@ -80,7 +80,7 @@ Chart and application versions are intentionally separate: When the chart changes without a new application release, only the chart `version` should move. When the default image tag changes, bump both the chart `version` and `appVersion`. -Docker image publishing remains tag-driven from the root release workflow and follows `package.json`. Helm chart publishing is separate: pushes to `master` that change `charts/**`, plus explicit manual workflow runs, publish the chart repository to GitHub Pages. +Docker image publishing remains tag-driven from the root release workflow and follows the git tag. Helm chart publishing is separate: pushes to `master` that change `charts/**`, plus explicit manual workflow runs, publish the chart repository to GitHub Pages. ## Hosted repository and Artifact Hub diff --git a/package-lock.json b/package-lock.json index 86d671a..5d68e29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,6 @@ "packages": { "": { "name": "readability-js-server", - "version": "1.8.0", "license": "Apache-2.0", "dependencies": { "@mozilla/readability": "^0.6.0", diff --git a/package.json b/package.json index 0d265cc..77b559d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "readability-js-server", - "version": "1.8.0", "description": "Mozilla's Readability.js as a service", "author": "Luis Pabon @ phpdocker.io", "homepage": "https://github.com/phpdocker-io/readability-js-server", diff --git a/src/server.js b/src/server.js index 1410c7c..5daf982 100644 --- a/src/server.js +++ b/src/server.js @@ -1,6 +1,5 @@ const { loadConfig } = require("./config"); const app = require("./app"); -const { version } = require("../package.json"); const config = loadConfig(); @@ -18,7 +17,7 @@ function logError(message, error) { const shutdownTimeoutMs = 10_000; const server = app.listen(config.port, () => { - log(`Readability.js server v${version} listening on port ${config.port}!`); + log(`Readability.js server listening on port ${config.port}!`); }); let isShuttingDown = false;