-
Notifications
You must be signed in to change notification settings - Fork 1
Working Process
zero edited this page Feb 12, 2019
·
2 revisions
To ensure a high quality of code in official NubeIO
repositories
We currently use pull requests to manage all code that gets pushed to the main repositories. In order to make the management of all pull requests I would like to suggest the usage of git-flow.
-
If you've done any work, push your work branch at least once a day. It doesn't matter if it's not finished. It doesn't matter if it doesn't compile. Pushing your work serves two main purposes:
- It provides visibility to the other developers, and to the wider community about the approach you are taking.
- Other developers can make comments on commits and discuss progress. It avoids situations where a developer has spent 2 months working on something behind closed doors before presenting it, only to find out it's taken a completely wrong approach. If you don't push the assumption will be no coding is going on.
- It provides a backup.
-
After working on your work branch, when you think your code is ready to be merged to master, you need to make sure it meets the following criteria:
- It must adhere to the project code style guidelines.
- There must be very good test coverage that covers all functionality.
- The public interface(s) of the component must have
JavaDoc
that can be used by the docgen tool to generate manual documentation [This requirement won't come into action until docgen is complete] - New projects must provide a
README.md
which, at the least, gives an overview of the component. - You would be happy to personally use your work in an application upon which your livelihood depended.
- Make sure CI build
green
- Open new
pull request
and assign reviewer. - Always drop me @zero-88 in
PR
at early project phase, at least until releasev1.0.0
.
- The PR must be reviewed by at least one other developer. Other developers are welcome to make comments on the PR too. The review should be carried out by placing comments on the PR in GitHub, not by sending private emails or other means. This provides visibility and provides a public record.
- Review comments will probably require further changes to the code before the PR is accepted. This is
completely normal
. Do not expect PRs to be accepted without further changes. Make those changes and tell the reviewer by adding a comment on the PR that you have made them and are ready for the changes to be reviewed. - Repeat the above to and fro until there is concensus the work is ready to be merged into master. Once that point is reached, it can be merged.
- Concensus is always preferable, but if concensus on an approach cannot be reached, the
Project Lead
should decide on which approach to take. - The process is fair and is applied to every developer, without exception.
- After closed
PR
, remember closing and appending appropriate labels (S:
orR: Fixed
)
- Feature/Enhancement/Improvement branch start with
feature/<issue_name>
- Bug fix branch start with
bugfix/<issue_name>
- Master branch is
master
- Release branch is
release/<version>
- Release tag is
v<version>
In which:
-
issue_name
must be created at issues -
version
must be created at milestones. Version format must be followed https://semver.org/.
- Must include labels
- Notice when creating new issue:
- Ensure it is not already existed (by reviewing label or
GitHub
suggestion) - Reference to other
closed/wip
issues if it is relating to or regression problem. Otherwise, make update to existed issue - Follow issue template of
feature/enhancement/improvement
orbug
- Ensure it is not already existed (by reviewing label or
Must be adhere to one standard code-style to make reviewer easier. The templates must be downloaded from here then apply it in your IDE