Recent version of Next.js specify 18.17.0 as the minimum version,
as indicated when running `npm install`:
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'next@14.0.2',
> npm WARN EBADENGINE required: { node: '>=18.17.0' },
> npm WARN EBADENGINE current: { node: 'v18.12.1', npm: '8.19.2' }
> npm WARN EBADENGINE }
This upgrade should be relatively safe, since Node is only used in
the build process.
I also pinned npm to the version bundled with this version of Node,
as suggested by Volta after pinning the Node version:
> note: this version of Node includes npm@9.8.1, which is higher than your pinned version (8.19.2).
> To use the version included with Node, run `volta pin npm@bundled`
Run commands with "--workspace frontend" instead of setting app-dir to
frontend, so that the CircleCI node orb will see package-lock.json in
the root folder when caching dependencies.
When switching to the version of the code that's currently in
production, make sure to also switch to the version of the l10n
repository that's currently in production. Otherwise, if strings
have been removed from the l10n repository that are still being
referenced in production, the tests would start failing despite
nothing being broken.
The CircleCI job that tests migrations would try to compare against
the branch that CircleCI was running against. However, when pushing
a tag, there is no known branch (i.e. $CIRCLE_BRANCH is unset,
whereas $CIRCLE_TAG is). To check out the actual relevant commit
regardless of whether we're running for a branch of a tag, checking
$CIRCLE_SHA1 should work.
Add a generic python_job that checks out the project, runs a command
that may fail, and upload results if it generates them. This can be used
for formatting and linting checks later.
Use the python_job for a mypy test that is allowed to fail for now.
Add a generic python_job that checks out the project, runs a command
that may fail, and upload results if it generates them. This can be used
for other formatting and linting checks later.
Use the python_job for a black formatting check that is allowed to fail for now.
Add a command that combines the commands to checkout fx-private-relay
with updated submodules.
Remove submodule checkout from coverage upload, where it is unneeded.