- Maintainability guidelines of Open-Source Software development
- Guidelines aplicable for newly started software projects
- Any pieces of advice for the improvement of the guideline is warmly accepted.
- The first step should always be the issue/ticket
- If there isn't an issue template try to provide as many additional details as possible, like main issue, how to replicate, version(s) of software(s) used when the issue occured
- After the discussion and having the possible solution clarified go to the implementation following the basic guidelines
- Follow trunk based development
Development flow
- Pull the master branch to get the most up-to-date version of the system/application/service
- Create a feature branch following the branch naming conventions,
git branch I332-short-name - Push frequently based on the smaller parts of the sections, follow the push guidelines
- Create Pull Request once the development reaches a state where the solution is considered to be done based on the requirements, follow the guidelines of pull request
- Accept the reviews and do the change requests
Maintainer flow
- Accept pull request on master
- Based on the size of the team responsible for the codebase add half of the team as reviewer
- Setup additional content for the pull request, in case of Github
-
- If half of the reviewers (so 1/4 of the team) approve the changes
- and all of the change requests get done
- and the newly added code has at least 80% of code coverage
- and the automated test system or CI tool runs successfully then merge it following the merge guidelines
- When the develop reaches the goals of the next version, release a new version based on the release-guidelines
Third-party developer flow
- Fork the original repository
- Clone it and the remote origin points to the forked version
- Set the remote upstream to the original repository
- Frequently do pulls on upstream's master and merge it into the origin's working branch to keep the development up-to-date
- Do the steps of the Development flow
- Create pull request between forks against the master branch
- First letter must be
Iif issue, orTif board ticket, strongly platform restricted - After the first letter, add the number of the ticket, ex.:
432 - After that add the short name of the ticket with dashes in kebab-case, ex.:
short-name - ex.:
I432-short-nameorT432-payment-bug-fix
- Never use
*or.ingit add, it helps to overview the files and avoid the pushes of unecessary files (ex.: binaries) - Never use
-mingit commit, it helps to have an additional overview of the files and makes it possible to format the commit message properly - Use
git push --set-upstream origin I12-branch-nameat the first time - Never push changes on the master
- Add well-meaning title so that the maintainer can quickly recognize the purpose of the pull request.
- Write detailed description in the body, what main issue this PR solves and how is it testable to prove the validity of the solution.
- Create pull request against master.
- Use
Squashto keep the commit line clean from the thousands of commits
- In special cases let's handle it in an automated way or go with the following steps by hand
- Use Semver 2 or language-specific best practices
- Create annotated tag with
git tag -a v1.2.3 - Push the new changes
git push --tags
Assignes, yourself or an other team member who should deal with the PRLabels, determine the kind of the PR and provide more information aboutProjects, determine the project where the PR belongs toMilestones, determine the version number where the PR will be released