Execute make init
on an empty repository instead of git init
. The initialization of the repository is done by Makefile task.
$ git clone github.com/yuta-masano/mktpl.git ... # Get Repository.
$ cd .../mktpl # Go to Repository Directory.
$ make init # First commit.
This is not necessary if you have done make init
.
$ make setup
Versioning follows Semantic Versioning.
The name of the branch must contain the version number to be released (e.g. local-0.1.1
), so that subsequent works automatically get the release version number from the local branch name.
Part of the commit log is used for CHANGELOG.
If you start the commit log with "prefix:" in the subject, such as fix: Display explicitly help message (#2)
, the subject is used in CHANGELOG.
Valid prefixes are:
- change (Changes that are not backward compatible)
- feature (Add New Features)
- fix (Bug fixes)
Don't forget to update the documents before releaseing.
Perform the following sequence of tasks semi-automatically. Requires vi operation. Not fully automatic.
- Update and commit CHANGELOG.
Execute_tool/commit_changelog.sh
to do the following.- Check the commit message from the last release to this point and extract the subject to be used in CHANGELOG.
- Write commit log to beginning of CHANGELOG.
- Open CHANGELOG in
vi
. - Developers manually edit CHANGELOG.
- If the contents of CHANGELOG have been changed before and after editing, the CHANGELOG is commited.
Again, developers manually edit commit message. When committing, the issue numbers listed in CHANGELOG are written in the commit log and those issue numbers are closed.
- Merge them into the local master branch and push to the remote master branch.
- Create the release tag and push.
Execute_tool/push_release_tag.sh
to create a history of changes in the releasing version from CHANGELOG as an annotated tag and push it to remote repository.
Automatically:
- Build the binaries.
- Create binary archive files.
- Releasing archive files to GitHub using the latest remote tags.