Platform Continuous Delivery Process
This page describes how development teams collaborate on code of Promethist Platform components using Git SCM and YouTrack issue tracker.
YouTrack links
Unstaged unresolved issues - unfurl:Issues: Stage: {No stage} organization: Platform #Unresolved
The most voted list - unfurl:Issues: order by: votes desc
Platform issues and their stages
A) Out of delivery
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:
Bugs first.
Issues with more votes first (except bugs having priority Critical or Show-stopper).
Higher priority takes precedence (priority value is always confirmed by Team, not issue Reporter).
Issue priority
In general, only bugs can have priority Critical or Show-stopper. Other types of issues should use only priorities Major, Normal (default), Minor.
B) Staged into delivery
Issues can be staged into delivery only by members of the Platform team (pavel.ducho@promethist.ai currently does that for issues created by non-members of the Platform team). They can have one of the following delivery states:
Open
In Progress
On Hold
Fixed (terminal state of issue)
related to predefined following delivery stages:
Development | Review | Done | Done | |
Description | 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 |
Responsible role | Developer | Tech Reviewer UX Reviewer | - | Senior member of TECH squad |
Relevant state(s) |
|
|
|
|
Git reference |
| Merge request from branch |
|
|
Endpoint | Developer's |
|
|
|
Database | develop | develop | production | production |
Namespace | - | X | preview | default |
Changes related to Core project
If platform change request (APP-X issue) requires to make any changes in Core project then it will go following way
Developer will create branch
APP-X-description
on core project to make request changesDeveloper will make these changes available as
X-SNAPSHOT
version 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 testedDeveloper will set X-SNAPSHOT as
flowstorm.core.version
in platformsettings.xml
fileDeveloper will create platform merge request to make issue ready for testing on domain
app-X.flowstorm.ai
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)
If core PR and flowstorm MR are both okay from reviewer + tester's point of view then
Core PR will be merged and new Core version will be released by tagging master branch to
X.Y
Developer or Flowstorm reviewer will change
flowstorm.core.version
in platformsettings.xml
file toX.Y
Flowstorm MR will be merged
Changes related to NLP backend services
When platform change is requesting update of NLP backend services (illusionist, duckling, triton), such update can be currently done by pushing update to master
branch 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 <nlp-service>.url
properties to app.properties
configuration in deploy/admin/templates/configmap.yaml
file. As soon as updated versions of NLP services are tested and released to production, specific <nlp-service>.url
properties should be removed from associated PR.
Last updated