-
Notifications
You must be signed in to change notification settings - Fork 0
Home
c8y3 edited this page Mar 20, 2021
·
27 revisions
Welcome to the aum wiki!
All commits should be signed and will be rejected otherwise. See https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification to set up signing. Quickly, this amounts to:
- generate a key: gpg --full-generate-key --allow-freeform-uid (see https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key)
- add the public key (gpg --armor --export ) to your account (see https://docs.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account)
- configure your key in the git repository: git config user.signingkey (see https://docs.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key)
- set up automatic commit sign in the git repository: git config commit.gpgsign true
We follow a simple branch model:
master
- one branch per feature ongoing development
Branch master should be linear.
A feature branch should be named issueXXX
where XXX is the number of the issue being resolved.
When a feature is complete, the branch is rebased with master
and then linearly merged into master
.
- create branch
issueXXX
frommaster
.
git checkout -b issueXXX
git push --set-upstream origin issueXXX
- Before merging back to
master
:- do not forget to fill the change log (CHANGELOG.md)
- rebase the branch, if necessary
git rebase master
- merge back to
master
. Once feature XXX is complete its branch is merged inmaster
and deleted.
git checkout master
git merge issueXXX
git push
git push -d origin issueXXX
git branch -d issueXXX
- publish a version with a tag. Once a release is complete on
master
, it is published by the creation of a tag. The version number M.m.p should match variable VERSION in the Makefile. Do not forget to bump if necessary.
git tag -s M.m.p -m "Release M.m.p"
git push origin --tags
In order to perform a draft release, have these lines in the .travis.yml
file:
draft: true
on:
branch: issueXXX
repo: airbus-cyber/aum
File layout:
- includes
- external includes (standard library, external dependencies)
- internal includes
- public interfaces includes
- type definitions
- private methods (static)
- public methods
See https://gist.github.com/chalasr/fd195d83a0a01e4291a8, for a similar yet slightly different model.