Background (What, Why, Value) RackHD is developed or running based on several tool chain, like NodeJS, RabbitMQ, MongoDB and even operating system like Ubuntu. As a part of long term production release, we need to keep whole tool chain upgraded in a regular basis.
Proposal of Strategy - Will upgrade RackHD tool chain every 6 month (April => Oct => April …)
Tool chain upgrade policy - We'll introduce tool chain compatibility testing pipelines to validate RackHD will work normally with different version of tool chain in the scope.
- 201804 Tool Chain Upgrade Work Plan (EPIC: RAC-6719)
Notes: Based on above strategy, we’ll conduct first tool chain upgrade release in April (aka 201804 release). Next upgrade release will be 201810.
- Upgrade RackHD tool chain with matrix below in each flavor of release
- Introduce RackHD NPM package revision lock down feature in the release
- Optimize weekly RackHD Release version bump scheme
- Problem now: RackHD release version always gets bumped as +0.1.0 regardless API contract changes or not, small or big change
2.50.0 => 2.51.0 => 2.52.0 => Will soon become 2.99.0 … - Plan -- still use semantic versioning
API change by Swagger differ => +0.1.0, otherwise, +0.0.1 - Fix issue that sprint release note will still be send out when CI/CD pipeline failed
- Is the 201804 release a separate release from the weekly sprint releases?
Leo: I look “201804 release” like a “release code name” which will be actually delivered by several weekly sprint releases. So, no separate release for it. - Do you have more info on the plan to “Introduce RackHD NPM package revision lock down feature in the release” Is this being done with a package like yarn?
Leo: We are planning to leverage package-lock feature introduced in NPM 5. (see attached) - Also, can you help clarify the rollout strategy of the features? For example, will the 201804 Tool Chain Upgrade (and subsequent upgrades) features all be rolled out at the same time on one day or phased in as the features become available during the month they are targeted for (either April or October)?
Leo: Great question on rollout model – I think it as “phase in” model like your statement “phased in as the features become available during the month they are targeted for (either April or October)”. |