- Please see GOVERNANCE.md for high-level information.
- This library is meant to do 1 thing only (and must to it well), so we should not introduce too many logic beyond 'interactions with Meta Threads API'
- There is no direct pushing to
mainbranch. Any change must go through a Pull Request. This applies to all contributor roles. This includes typo updates and other such one-liner fixes. - After
v1.0.0, Code Coverage on the default branch (main) must always be 100%.
- Publishing into Crates.io may only happen via git tags. Ideally, a GitHub Action should be set up to automate publishing when a new tag is created on (or pushed to) remote.
- Only tag official releases on
mainbranch. In other words: the tagged commit must exist on themainbranch. - Our git tags must always have the format
vX.Y.Z: starting with the lettervin lowercase, followed byX.Y.Zwhich conforms to the SemVer standard where X = major, Y = minor, and Z = patch. - Don't forget to update the library version in the
Cargo.tomlfile before tagging your commit for release, otherwise the release won't happen. Heads up: the value inCargo.tomlfile starts with the major version directly (without the letterv)- In the future, a tool such as semantic-release might be used to automate version bumps.
- Before publishing an "official release", it's always advisable to publish an
"alpha release" first. For example, if you're working on the feature "foo",
for which you branched off from
mainat the most recent git tagv1.5.1, then tagging your commitv1.5.1-foo-alpha.1would be an appropriate choice.