Fossil
Anselm is developed with the Fossil source code management system. Fossil not only takes care of version control, but also serves as a VCS UI, wiki, forum, and bug tracker. This page collects general best practices for using Fossil.
Forum
Fossil's forum functionality is used in place of a mailing list. Mailing lists are difficult to view, moderate, and maintain.
Monorepo
All projects related to Anselm are stored in a monorepo. The way this works is that each individual
project is given its own directory at the top level. When creating a new project, the first commit should
be a branch of the initial commit which adds a readme.md
file in a new top-level directory
explaining a bit about what the project is. If the project depends on other projects in some way, you may
branch from a later commit, but the branch should always be from trunk.
Each project should have a main branch called [project]-trunk
where [project]
is the name of the project
and should be the same as the top level directory in which the project is stored. For instance, the Gaunilo
interpreter is stored in the gaunilo
directory and developed in the gaunilo-trunk
branch. Never commit to trunk
directly, instead merge the project's own trunk branch
into trunk
on e.g. releases.