A starter to bootstrap your next Gatsby Plugin
β automatic release to npm with semantic-release out of the box
Β
Β
Heads up: This package is NOT to be used as a Gatsby Plugin; it's a template for you to bootstrap your own plugin.
Β
Are you stuck on a reef in the sharky waters around the Gatsby islands? Check out 1-on-1 Emergency Gatsby Call with Queen Raae to get friendly advice you can put into action immediately from a seasoned Gatsby developer.
Learn how to get the most out of Gatsby and stay updated on the template by subscribing to daily emails from Queen Raae and Cap'n Ola.
Watch Queen Raae use this starter to create a new Gatsby plugin in a unauthorized and rum-fueled treasure hunt in the sharky waters around the Gatsby islands on YouTube.
Β
- Use this template to create a new repository based on the code in this repository, but with a clean history. There is no need to drag all the commits of this repository by forking.
- Select the correct owner and give it a name according to the Gatsby Plugin naming standard.
Note: You will get a message about failing releases, this is expected and will sort itself out when you are ready for your first release.
- Clone your new repository onto your machine
- Make the readme template the root template (
mv README_TEMPLATE.md README.md
) - Delete the changelog (
rm CHANGELOG.md
) - Search and replace
@raae/gatsby-plugin-starter
with the name of your plugin - Search and replace
github.com/queen-raae/gatsby-plugin-starter
with the link to your repository - Search and replace
[email protected]
with your email address - Search and replace
@raae
with your GitHub username - Change the description in
plugin/package.json
- Change the tag line in
README.md
- Run
yarn install
- Commit changes
git commit -a -m "chore: rename all the things"
- Create an initial tag (
git tag v0.0.0 -a -m "Initial tag"
) and push it (git push origin --tags
)
Check the CONTRIBUTING.md
file.
The project uses conventional commits and semantic versioning to automate releases by utalizing the semantic-release project and GitHub Actions.
As the project owner, you need to add an NPM token to your repository secrets so that Semantic Release can do its thing πͺ
- Create an automation access token on npmjs.com/ (Avatar -> Access Token).
- Add
NPM_TOKEN
to your repository secrets (Settings -> Secret -> Action) with the value from above.
Commits to the main branch will result in a new release while committing to a next branch will result in a pre-release. The releases follow Semantic Versioning, and your commit messages will decide the following version number.
- Commits message titles prefixed by
fix:
,fix(<scope>):
anddocs(README):
will result in a patch version update - Commits message titles prefixed by
feat:
,feat(<scope>):
will result in a minor version update - Commits message footers containing
BREAKING CHANGE:
orBREAKING CHANGES:
will result in a major version update
In addition to automating releases, Semantic Release creates and updates a CHANGELOG.md
based on the above commit rules.
Check the .releaserc
file, the .github/workflows/release.yml
and the Semantic Release documentation for more details.
Β
If you have any questions, feedback, or suggestions, head on over to discussions.
If you find a bug, please open an issue and create a pull request to fix it if you are able.