Skip to content

Git Flow

An Entirius repository has two long-lived branches, develop and master. Work happens on short branches cut from develop and returns to it through a pull request.

BranchPurpose
developintegration and the default branch: the base of every working branch and the target of every pull request
masterthe last release: it moves when a release is merged, and every tag points at it. A repository with no release yet has only develop
feature/<name>new functionality
fix/<name>a bug fix

Branch names are lowercase, words separated by -:

feature/required-per-feature-set
fix/thumb-picture-accessor

Other prefixes appear for work that is neither, such as docs/ and chore/. The release branch is named master, never main. A new repository is switched before its first commit: git branch -m master.

A contribution reaches develop through a pull request. A pull request needs:

  • one approving review, from a code owner of the repository;
  • the required checks green: lint, test and secret-scan in the Python repositories (CI/CD);
  • a branch that is up to date with its target.

Force pushes to develop and master and deleting them are blocked. Only maintainers can update master, and they do it at a release (Releases). Repository admins are exempt from the pull request rules; where they use that: Security.

Pull requests are merged with a merge commit, so the commits of a branch stay in the history of develop. Write them as Conventional Commits: feat(api): ..., fix(thumbs): ..., docs: ....

Commit under your own identity, with a real name and an address that stays the same across your commits. Co-authored-by trailers of the people who worked on a change are welcome.

An AI agent never adds itself as an author: no Co-Authored-By trailer for an agent and no “Generated with” footer, in commits and in pull request descriptions. The line a repository’s AGENTS.md carries for it: AGENTS.md Convention.

  • Releases: how develop reaches master and PyPI
  • CI/CD: the checks a pull request has to pass