Skip to main content

Build Environment

Pinned Versions

All tool versions are pinned to ensure reproducible builds across local development and CI.

ToolVersionSource of truth
Node.js20.19.0.nvmrc
Python3.12.python-version
npmlockfileVersion 3website/package-lock.json

npm Dependencies

All npm dependencies in website/package.json use exact version specifiers (no ^ or ~ ranges). The lockfile pins the full dependency tree.

To update a dependency, change the version in package.json and run npm install to regenerate the lockfile. Submit both files in a PR.

Python Dependencies

Python dev dependencies are listed in requirements-dev.txt with range specifiers for flexibility. The CI environment installs these fresh on each run.

CI Workflows

All GitHub Actions workflows reference:

  • node-version-file: ".nvmrc" (not a hardcoded version)
  • python-version: "3.12" (standardized across all workflows)

Updating Versions

When updating a pinned version:

  1. Update the source of truth file (.nvmrc, .python-version, or package.json)
  2. Update all workflows if the version file name changes
  3. Test locally before pushing
  4. Submit as a dedicated version-bump PR