Review component version and release process from last meeting
Briefly look at next big areas of development:
Stock Management
Reporting
Program Data
Discussion items
Time
Item
Who
Notes
5m
Start
Josh
Review agenda
40m
v3.0.1 Release
Josh
Look at v3.0.1 release
Review prev meetings component release steps
15m
Brief look at next big areas of dev
Josh
Notes
Malawi impl discovered a flyway migration issue in Ref Data. There is a ticket for testable db migration that might help: OLMIS-2236. However most teams rely on diligence rather than automated tests. This hasn't been made a priority yet.
From our last meeting, we reviewed the component lead steps we created:
Component release steps revision:
All tests pass
Features should be checked that they work - manual regression testing
note to check that data migrated from previous version to current release candidate
modify your local ref distro to include your new component release (RC)
would be faster to have a DB dump from each component release (needs a ticket for having Jenkins create and keep that artifact)
Create / Review CHANGELOG for component (write down in style guide the standard)
Bugs addressed
Look at JIRA tickets AND look at all the commits.
Component lead directs developers to update the CHANGELOG as they work on a ticket
Demo data
it should be appropriate for a release
review changelog for tickets that might change/add demo data - if something doesn't look right, then raise it in the technical forum and hold the release.
anything else we can do - more inline with development?
so demo data is created as part of tickets (not a final step for the component lead)
Bump the version (serviceVersion) -
change the version in the file version.properties (UI components) or gradle.properties (Java/Service components) - in a single commit and push to MASTER
tag that commit as a release (this can be done on GitHub through drafting a new release)
Jenkins detects the change in MASTER, takes that version in gradle.properties or version.properties and uses that when publishing
manually check that version is released to docker hub and/or maven central
Components that are deployed in the Reference Distro are published to docker hub
Components that are consumed in Java services are published to Maven central repo
separate commit to bump to the version that comes after the just released version (as SNAPSHOT)
Updating deployments
contract tests updated to next SNAPSHOT version (consumer of docker hub)
deployments updated to either released (UAT, demo) version, or SNAPSHOT (test) (consumer of docker hub)
Announce it
emails, notify the larger group, etc in the dev forum
telling any dependents so they can start building against the new stuff
We don't have a programmatic way to check dependencies version.
Be really clear in release notes? E.g. the ref UI has lots of components, each should document what Service it works for.
Dependents should break in a nice way - log it, show a nice error to the user (UI), etc. Be polite to each other
We could build this (Services do report publicly what their version is) - when will we need it? We haven't had a problem yet, so perhaps wait until we do to get clear requirements before building.
Perhaps a build time check
Do we need it? ROI seems a bit low and so that's why we haven't done it yet
We're pretty happy with these bullet points, though it needs some cleanup. We identified that demo-data and regression testing were still pretty manual and a not so easy area for component leads to manage.
Action items
Josh Zamor propose how demo data can be more reliably pulled into development cycle
Josh Zamor clean these notes up and publish (contribution guide/rolling a release)