We keep a CHANGELOG.md. It is good practice for PRs to contain a changelog
entry for whatever they are updating. This is often forgotten and so in
practice, we often update CHANGELOG.md in batches. When making a release,
carefully inspect the git log and update CHANGELOG.md accordingly. Match the
style and tone in CHANGELOG.md. For long descriptive git commit messages or
whole branches with multiple commits, write a shorter summary. If the git commit
messages are very brief, inspect the code and attempt to sum it up.
- authoritative git repository is https://github.com/actonlang/acton
- git clone git@github.com:actonlang/acton.git
mainis the main branch- the
mainbranch is protected, meaning no one can directly push commits to it - commits should happen on a branch, from which a Pull Request (PR) is created
- the PR can then be merged to
mainvia GitHub - all PRs should contain a changelog entry in
CHANGELOG.mdunder theUnreleasedheading- this is later used as the body of the release
There are two types of releases, "version releases" and the tip release.
- this is like version
1.2.3 - create a new branch called
release-vfollowed by the version number, likerelease-v1.2.3 - prepare
CHANGELOG.mdby placing the content currently under theUnreleasedheading under a version number, like version1.2.3instead - push branch to GitHub and open PR
- once the PR is merged, a GitHub Action workflow will take over, create a tag
and proceed to build the final release build and upload as an artifact
- it will take the content from
CHANGELOG.mdand use as the GitHub Release notes - artifacts from the CI test jobs will be included in the Release as assets
- the Release is published at https://github.com/actonlang/acton/releases
- it will take the content from
- this is the binary output from the last successful CI job on the
mainbranch- somewhat like a nightly, just more frequent or less - depends on if there is
new content on the
mainbranch or not tipwill identify themselves with the base version number and the date and time when it was built- for example, if v0.4.0 was the last versioned release and a nightly is built, it would be called 0.4.0.2021.08.05.09.27.14, i.e. it was built at 09:27:14 on the 5th of August 2021
- this is automatically built for every merge on
main, no extra action is required - the output is stored as a pre-release in Github called
tip- new releases will overwrite older ones, i.e. only the latest build will be available
- the release has a stable URL: https://github.com/actonlang/acton/releases/tag/tip
- somewhat like a nightly, just more frequent or less - depends on if there is
new content on the