Collaborative Development Mechanisms (TECH)
Description: How to define coding standards (documentation, tests, style); Pull request process
Leads: Ashraf, Darius
Rapporteur/Notetaker: Rich
Audio recording: Collaborative Mechanisms d2s3.mp3
Notes from Session:
Coding Standards, Pulls, etc.
- Once the branch is ready for a 2.0 tag, how do we continue with work?
- Idea #1: Use Gitflow
- Discussion on branch management.
- After tag master branch as 2.0, new projects start from here and merge back frequently.
- Who reviews the pull request? This comes with overhead
- Consider shared "develop" branch, esp. for short term.
- What happens if technical WG decides a pull request should not be merged back?
- If code/feature is not core/global, then the implementing team needs to create an extension point or some other mitigation
- Could have a "code review window", scheduled times when others are available as reviews
- In OpenMRS, three people are dedicated as full time reviewers, etc. for a period
- VR could have more active pull request review roll, as VR has some level of community funding
- Could merge, say weekly. Accept or reject (with comments back to owners),
- Also review ad hoc pull requests
- Decide release tags. Master is not strived to be stable 100% of the time
- Concern of overhead, esp. if rejections are involved. This is part of the open source tax.
- A technical working group ("security council") resolves disputes. Needs an escalation process
- Good practice is to avoid long running feature branches
- What are the standards for merging into master?
- Feature alignment - is the feature applicable to global/core?
- Code quality check(coverage, tests pass, code style standards, etc.). This can be automated.
- It is not checking low-level stuff, e.g. code formatting.
- Need CI, Sonar server, etc. to help with automation
- Concern about who is watching out for the integrity of OpenLMIS, e.g. technical guidance, high-level feature review.
- OpenLMIS needs a Technical Leadership Working Group to help guide OpenLMIS tech and feature roadmap
- Darius: This is good for short term. Also need a single person to act as "chief architect" for the product (and also a "chief product manager")
OpenLMIS: the global initiative for powerful LMIS software