@twyr/announce v0.11.2
Category | Status |
---|---|
Conventions | |
Code Stats | |
Security | |
Development | |
Issues | |
Pull Requests | |
Release Status | |
Publish Status |
TABLE OF CONTENTS
WHY ANNOUNCE
Most node.js projects follow a fairly simple set of steps during development - bump the (semantic) version for the next release, commit code, author a changelog, tag/release on Github/Gitlab (with release notes), and publish to the NPM Registry.
While there are several tools that help with each of these steps, they fall into one of two categories - they either perform only one of the steps, or they try to do everything and end up being extremely complex. A good example of the first category of tool is npm-version, which takes responsibility only for bumping up the versions, and nothing else. On the other hand, tools such as semantic-release provide functionality (via plugins) to push not only to NPM, but also several other registries/endpoints - see semantic-release plugins for example.
For the Twy'r Project, neither of these categories of tools is "exactly right" - they provide either too little, or too much, functionality. The Announce CLI/Module tries to fill in that "sweet spot" - providing exactly the functionality required.
WORKFLOW
The Twy'r Project development/release workflow consists of the following steps: 1. Bump version as required 1. Create a changelog automatically before tagging 1. Generate release notes and create a Github/Gitlab release using the tag created in Step #2 1. Publish the release to NPM 1. Repeat for the next development/release cycle
Every repository in the project, including this CLI/Module, will adhere to this workflow going forward. The Announce module will be used extensively to maintain the versioning, changelog, and release notes - as well as acting as a helper tool to publish to NPM as required.
USING THE CLI
CLI Installation
Assuming that node.js and npm have already been installed on the system, Announce can be installed via the following commands:
Install Type | Command |
---|---|
Local | npm install @twyr/announce --save-dev |
Global | npm install @twyr/announce --global |
CLI Commands
The list of commands, and the options each command supports, can be accessed from the terminal by:
Install Type | Command |
---|---|
Local | npx announce -h |
Global | announce -h |
The Announce CLI list of commands, and a brief description of each, is given below:
Announce Command | Usage | Description |
---|---|---|
Prepare | announce prepare | Increments the version as necessary. See Prepare Command for details |
Release | announce release | Generate CHANGELOG, tag the code, and release to Github. See Release Command for details |
Publish | announce publish | Publish a Github Release to npm. See Publish Command for details |
See command specific documentation for further information on how to execute each command, the command-line, options relevant to that command, etc.
INTEGRATING ANNOUNCE CLI INTO ANOTHER MODULE
Module Installation
Assuming that node.js and npm have already been installed on the system, Announce can be installed
via the following command: npm install @twyr/announce --save-dev
Module API
Once installed, the module may be loaded using:
const announce = require('@twyr/announce);
See command specific documentation for information regarding each command, the options it takes, etc.
CONTRIBUTING
Code of Conduct
All contributors to this project are expected to adhere to the Code of Conduct specified.
Developing
Details on getting the code, setting up the development environment, and instructions on how to extend/build/test the code are detailed in the Contribution Guide
Contributors
This project owes its existence to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind are welcome!
LICENSE
This project is licensed under the MIT +no-false-attribs license. You may get a copy of the license by following the link, or at LICENSE.md
SEE ALSO
Command | Category | Alternatives on NPM |
---|---|---|
Prepare | Semantic Versioning | npm-version |
Release | Changelog Management | changelog |
Release | Tagging & Releasing | release |
Publish | Registry (NPM, et al) Publishing | publish |