Platform Continuous Delivery Process
This page describes how development teams collaborate on code of Promethist Platform components using Git SCM and YouTrack issue tracker.
Such issues can be created by any user of the Flowstorm platform and can have any of the following non-delivery states, which can be changed only by representatives of the Platform team:
- Submitted (initial state of created issue)
- Won't fix (terminal state of issue)
- Duplicate (terminal state of issue)
- To be discussed (needs more information/specification)
- Can't reproduce (temporary state - needs more information, otherwise we won't fix it)
Relevant issues are moved into Backlog as the initial stage before delivery and change its state to Open automatically. The platform team prioritizes issues when it's moving them forward from stage to stage and giving them work precedence inside every delivery stage applying the following set of rules:
- 1.Bugs first.
- 2.Issues with more votes first (except bugs having priority Critical or Show-stopper).
- 3.Higher priority takes precedence (priority value is always confirmed by Team, not issue Reporter).
In general, only bugs can have priority Critical or Show-stopper. Other types of issues should use only priorities Major, Normal (default), Minor.
Issues can be staged into delivery only by members of the Platform team ([email protected] currently does that for issues created by non-members of the Platform team). They can have one of the following delivery states:
- In Progress
- On Hold
- Fixed (terminal state of issue)
related to predefined following delivery stages:
Work on the issue
Code review and user testing performed upon Merge Request
Code automatically deployed into the preview environment after change request merged
Code deployed into the production environment
Tech Reviewer UX Reviewer
Senior member of TECH squad
Merge request from branch
If platform change request (APP-X issue) requires to make any changes in Core project then it will go following way
- 1.Developer will create branch
APP-X-descriptionon core project to make request changes
- 2.Developer will make these changes available as
X-SNAPSHOTversion by creating Pull Request (PR) in Github core project which will be then processed by Gitlab CI pipeline as changes will be mirrored to Flowstorm Gitlab repository Note: this PR should contain comment informing that this PR was requested by flowstorm project, to prevent it's merge before flowstorm MR was tested
- 3.Developer will set X-SNAPSHOT as
- 4.Developer will create platform merge request to make issue ready for testing on domain
- 5.If testing identifies any problem, developer will push update commits to core and/or platform APP-X-description branch (when there was only update of core X-SNAPSHOT, he can re-run flowstorm MR pipeline to update app-X.flowstorm.ai)
- 6.If core PR and flowstorm MR are both okay from reviewer + tester's point of view then
- 1.Core PR will be merged and new Core version will be released by tagging master branch to
- 2.Developer or Flowstorm reviewer will change
- 3.Flowstorm MR will be merged
When platform change is requesting update of NLP backend services (illusionist, duckling, triton), such update can be currently done by pushing update to
masterbranch of particular NLP service project which will result into preview deployment on URL
https://<nlp-service>.preview.flowstorm.ai. Flowstorm change request deployment should be updated to reference preview instance of NLP service(s) by adding
deploy/admin/templates/configmap.yamlfile. As soon as updated versions of NLP services are tested and released to production, specific
<nlp-service>.urlproperties should be removed from associated PR.