To test the CLI application, run the dev script:
npm run dev -- [cli arguments can be passed after the double-dash]
resume-cli uses semantic-release to automate version management and package publishing. semantic-release determines the next version number and release notes based on the commit messages, meaning a convention must be followed.
resume-cli uses the Conventional Commits specification to describe features, fixes, and breaking changes in commit messages. A typical commit title is structured as follows:
<type>[optional scope]: <description>
Must be one of the following:
fix:
for a bug fix (corresponds to aPATCH
release);feat:
for a new feature (corresponds to aMINOR
release);- other non-release types such as
build:
,docs:
,refactor:
,test:
and others (see recommended).
Appending a !
after the type/scope indicates a breaking change (corresponds to a MAJOR
release). A breaking change can be part of commits of any type.
A scope may be provided to a commit’s type, to provide additional contextual information and is contained within parenthesis, e.g. feat(theme): add ability to specify theme
.
The description contains a concise explanation of the changes:
- use the imperative, present tense, e.g. "change", not "changed" nor "changes";
- don't capitalize the first letter;
- no period (
.
) at the end.
The pull request title should follow the same commit title conventions, as it will become the merge commit title, and thus be used to determine the type of changes in the codebase.
Because pull request commits are squashed on merge, you don't need to follow this convention on every feature branch commit, but certainly do for the merge commit.
Before merging a pull request:
- make sure the pull request branch is synced with the target branch;
- make sure all pull request checks are passing;
- merge using the squash and merge option;
- assuming the pull request title is following the title conventions:
- do not modify the merge commit title field, keeping the pull request ID reference;
- empty the merge commit message field, only adding content if relevant (e.g. breaking changes).