GOV.UK Notify frontend for downloading documents uploaded via Document Download API.
Check the version in runtime.txt.
If you don't have NodeJS on your system, install it with homebrew.
brew install node
nvm
is a tool for managing different versions of NodeJS. Follow the guidance on nvm's github repository to install it.
Once installed, run the following to switch to the version of NodeJS for this project. If you don't have that version, it should tell you how to install it.
nvm use
We use pre-commit to ensure that committed code meets basic standards for formatting, and will make basic fixes for you to save time and aggravation.
Install pre-commit system-wide with, eg brew install pre-commit
. Then, install the hooks in this repository with pre-commit install --install-hooks
.
# install dependencies, etc.
make bootstrap
make run-flask
# install dependencies, etc.
make bootstrap
make test
If you want the front end assets to re-compile on changes, leave this running in a separate terminal from the app
npm run watch
Edit the respective node
version specified in the .nvmrc
file.
Run nvm install
to install the new Node version.
The version specified in the .nvmrc
file is also used to select the Node version used in CI builds:
- Creating a PR with an updated version will build the PR using that version
- Merging a version change will build and deploy the frontend assets using the new version
Ensure that an LTS Node version is specified. This will also ensure the corresponding LTS NPM version is also installed.
We have GOV.UK Frontend as a dependency in two places:
- In python, our requirements.in specifies a version of govuk-frontend-jinja for our jinja templates
- In node, our package.json specifies a version of govuk-frontend for our fonts, images and sass files
We need to ensure that the version of govuk-frontend that the python library relies on always matches the version of govuk-frontend in our package.json exactly.
If you're bumping either library, make sure the version of the python library supports the same version of govuk-frontend defined in our package.json, as referred to in the govuk-frontend-jinja compatibility table.
We override the govuk-frontend footer. If you bump the version of govuk-frontend-jinja, you should ensure that the footer HTML stays up to date with the version of govuk-frontend-jinja. See the comment in that file for more details.