- Documentation
- For integrating in malibu, refer this doc
- Track lighthouse metrics here
It's important to follow these guidelines, as versions (major/minor/patch) are released based on commit messages
<type>[optional scope]: <description>
- example:
docs: add tutorial for amp-subscriptions
- example:
refactor(story-elements): move all story elements to new directory
build
: Changes that affect the build system or external dependenciesci
: Changes to our CI configuration files and scriptsdocs
: Documentation only changesBREAKING CHANGE
: introduces a breaking API change - major version releasefeat
: A new feature - minor releasefix
: A bug fix - patch releaseperf
: A code change that improves performancerefactor
: A code change that neither fixes a bug nor adds a featurestyle
: Changes that do not affect the meaning of the codetest
: Adding missing tests or correcting existing tests
This repo uses standard-version that takes care of updating changelog, bumping version as per semver, creating tags To work on a feature
- Pull latest master, create a feature branch
- Make your changes. If you need to publish a beta version for testing, run npm publish --tag beta
- Once done, open a PR. Get changes reviewed & approved
- Once approved, squash and merge feature branch into master
- From master, run
npm publish
. If you don't have admin access to directly push to master, you will need help of someone who does.
- sync builds amplib and copies the contents of the dist directory to the path you've specified. Useful for local development
- storybook starts storybook
- docs:build compiles jsDoc documentation and serves it on port 3001. Note that there's no hot reloading for docs. This is like running https://developers.quintype.com/quintype-amp on local
- docs:deploy compiles & deploys docs to https://developers.quintype.com/quintype-amp
- build bundles code by running webpack in development mode. Useful for debugging
- test runs jest in watch mode
- the component plugin of better-docs uses parcel as a bundler, you have to install it globally
- You can't directly copy and paste scripts for amp components in the library. Because
<script async custom-element="amp-access" src="https://cdn.ampproject.org/v0/amp-access-0.1.js"></script>
has boolean attributeasync
. React changesasync
(any boolean attr) toasync="true"
, which fails amp validation (see issue facebook/react#9230). The workaround is to giveasync=""
for JS andasync={undefined}
for TS - you might get warning
Warning: componentWillMount has been renamed, and is not recommended for use.
. This is an issue with react-helmet (See issue nfl/react-helmet#499)