Getting started¶
The goal of m
is to help maintain Github projects. This usually involves
keeping a CHANGELOG, building, publishing and releasing packages.
To achieve this, m
comes with several utilities that can be used in the Github
pipelines and on the developer's local environment.
This process makes m
to be opinionated. If the following points are acceptable
by the project's maintainers then m
may be a nice integration.
Caveats¶
Github repositories¶
All communication with repositories is done strictly with Github. git
is used
locally via ssh
but any other user and pull request information is obtained
via Github's APIs.
Warning
The git configuration should use ssh
instead of http
. This is done to avoid
issues with the developers prefered git tool and/or user interface.
Changelog¶
All projects are required to have a CHANGELOG.md
file that follows the keep a
changelog format. All a developer is required to do is to
write/verify that a changelog entry.
Versioning¶
A lot of projects in Github use tags of the form v1.2.3
. Here we drop the v
and simply use the semantic version when creating releases.
Development flows¶
m
currently supports three development flows: free-flow
,
git-flow
and the m-flow
. Depending on the flow chosen for the
project a few extra setup is required on the Github repository's settings.