We strive for stability and security.
Pull Requests and contributions in general are welcome as long as they don't compromise those goals and follow the Node aesthetic.
This repository is a monorepo for multiple packages.
At the moment this repository is managed through Lerna with the following strategy below. This strategy is not perfect, as Lerna is not (at least at time of writing) a tool perfectly fit for all npm current uses and best practices cf. lerna/lerna#1663, lerna/lerna#1462. And Lerna is missing best practices for different use cases (at least at time of writing). So this strategy is subject to change as we get more knowledge of Lerna and as new releases will be done. Don't hesitate to propose better strategies, PR are welcomed!
- "Fixed/Locked" mode (Lerna default mode) for now
- All
devDependencies
in the root-levelpackage.json
. This is the sanest thing to do since all the packages are very very similar. - Only one
package-lock.json
file at the root
cd node-convict
npm run setup
npm test
Coding style is described through the EditorConfig .editorconfig file and enforced by ESLint through the .eslintrc file.
Running the following command line will help you to conform your newly written code:
cd node-convict
npm run setup
npm run lint:fix
-
Modify the versions of the
dependencies
by editing thepackages/*/package.json
files -
Modify the versions the
devDependencies
in the root-levelpackage.json
file -
Fetch the packages and update the
package-lock.json
cd node-convict
npm install
npm install packages/*
npx lerna link
Never run lerna bootstrap
, cf. lerna/lerna#1462 (comment)
This section is especially intended for the maintainers of the project.
Before any new release the CHANGELOG must be updated.
Everything tagging and publishing should be done throug Lerna.
Tagging should not be done manually, nor through the npm version
command.
Tagging should be done through lerna
.
cd node-convict
npm run setup
npx lerna version 6.0.0
Publishing should not be done through the npm publish
command.
Publishing should be done through lerna
.
This action can only be performed by a Mozilla employee with enough accesses.
cd node-convict
npm run setup
npx lerna publish from-git