-
Notifications
You must be signed in to change notification settings - Fork 0
Release Process
Voice API servers comprise:
- server software from the api_sc-voice_net Github repository
- server content from the SuttaCentral bilara-data repository
Content and software coexist on the same server and are currently delivered as a single release unit, mainly because the content needs to be compiled to improve performance.
Since server content changes frequently, it makes sense to update both staging and production Voice API servers automatically and frequently. However, since content and software are comingled, we do run into a tricky issue with software updates.
The server software is stable and only requires maintenance updates for operating system changes, etc. Unfortunately, software requires testing and during the testing phase, we need to halt content releases so that we can test the software.
During a software release cycle, we need to halt content releases. This means that software releases need to be coordinated with all content producers. During a software release cycle, new software and content will show up on staging.api.sc-voice.net but will NOT show up on www.api.sc-voice.net. In other words, production servers are frozen during a software release cycle.
In detail:
- Coordinate release schedule with content producers
- Make changes to content
- Update patch version (robot)
- Content changes show up in staging.api.sc-voice.net
- Make changes to software (developer)
- Change minor version
- Software changes show up in staging.api.sc-voice.net
- Test content and software thoroughly on staging
- Change major version (anybody who can edit api_sc-voice_net)
- Content and software changes show up in www.api.sc-voice.net
Once the software release cycle is complete, the major/minor versions will not change. Only the patch version will change.
In the following, "version numbers" refers to the version property of api_sc-voice_net/package.json
- As long as the major/minor version numbers stay the same, content will be released automatically.
- Software releases must be coordinated with content producers before any software change is made in Github for api_sc-voice_net.
- When the minor version number changes, production content releases are frozen until the major version number changes.
- Content changes are always continuously pushed to staging.api.sc-voice.net