Repository Conventions - Simsso/NIPS-2018-Adversarial-Vision-Challenge GitHub Wiki
Commits
Commits should be atomic, i.e. incorporate a single change (semantically). Create multiple commits rather than committing "Add CNN and update README.md" is desired.
The first letter of commit names is uppercase and verbs are in present tense.
Good: "Create input adapter", "Add boilerplate", "Remove .idea folder"
Bad: "Create Input Adapter", "Removed old code"
Commit names such as "Small changes" or "Fixes" are considered bad. If there are small changes, simply name them.
Branches
master is write protected.
Branch out for every single work-item / feature.
Naming convention: Descriptive name, all lowercase, dashes to separate words.
Example: terraform-config
Branches are kept as an archive (no deletion), unless the commits have become entirely irrelevant.
Testing branches must have a branch name according to following rule:
<branch_name> ::= 'testing-'<name>
Testing branches have a lifetime of max. one week. The first commit in the branch reflects the creation time of the branch. If a testing branch is older than one week, it can be deleted by everyone without any warning.
Pull Requests
Should be named like book chapters.
Good: "Input Adapter", "Boilerplate Code"
Bad: "Added input adapter"
Should be merged, rather than squashed or rebased. That way the entire version history is preserved.
Use labels.
Request reviews.
Add a description that summarizes the changes.
Only the person who has opened a PR is allowed to merge it.
Issues
Naming convention: like book chapters (see PRs).
Use labels.
Used not only for code issues but also for work item tracking, meetings, ...
May have a conversational style.
Wiki
Knowledge base, i.e. formal content.
Should be updated to reflect the latest state.
Labels
Lowercase, dash-separated name.
Description as a sentence without full stop.
Colors of labels that are related to existing labels should have a similar color.