Builder Docs Archetype
A Builder archetype for Formidable static React landers.
Landers
Integration
- In the root, you need to create a
./static-routes.js
file that exports an array
of all the routes your heart desires.
module.exports = [
"/",
"/about",
"/pineapples"
];
Lander Release
To release a project controlled by this archetype (e.g., victory-docs
),
use the following guide:
IMPORTANT - NPM: To correctly run preversion
your first step is to make
sure that you have a very modern npm
binary:
$ npm install -g npm
Built files in build/
should not be committed during development or PRs.
Instead we only build and commit them for published, tagged releases. So
the basic workflow is:
$ git pull
$ git status
$ npm version major|minor|patch -m "Version %s - INSERT_REASONS"
$ git push --follow-tags
$ npm publish
And you've published!
For a reliable systems of releases, the landers should aim for versioning along these lines:
- Patch: Typos, missing assets, broken styles, very minor copyedits.
- Minor: Add a new blog post, change styles.
- Major: Rearchitect how the lander works, remove pages, or something else huge.
For additional information on the underlying NPM technologies and approaches,
please review:
Archetype
This section applies to the archetype itself (builder-docs-archetype
).
Builder Dependencies
You can read the Builder docs for the full story. Here is an overview of the
Builder three-way dependency scheme:
package.json:dependencies
: Production dependencies for the archetype
installed in a project.dev/package.json:dependencies
: Development dependencies for the archetype
installed in a project.package.json:devDependencies
: The development dependencies used internally
for the this archetype during development (self tests, checks, etc.) that
are not part of the overall archetype outside workflow.
Checks, Tests
Run npm run builder:check
Archetype Release
For tagged official releases only of the archetype, make sure to:
- Bump
package.json
version - Generate a new
ARCHETYPE-dev
package.json
- Add to git, tag, and publish
$ vim package.json
$ vim CHANGELOG.md
$ builder-support gen-dev
$ npm run builder:check
$ git add package.json dev
$ git commit -m "Version bump"
$ git tag -a "vNUMBER" -m "vNUMBER - INSERT_REASONS"
$ git push --follow-tags
$ npm publish
$ cd dev && npm publish