OpenWaterFoundation / owf-app-infomapper-ng

Open Water Foundation InfoMapper web application for menu-driven maps and visualizations, using Angular
GNU General Public License v3.0
1 stars 2 forks source link

build - add repository tag for stable release to use with implementations #422

Closed smalers closed 2 years ago

smalers commented 2 years ago

To date, implementation of the InfoMapper, such as for the Poudre Basin Information website, has involved cloning the InfoMapper repository parallel to the implementation repository and using InfoMapper environment to render the website locally while developing datasets.

The above has used the latest repository contents after a pull. This has a risk that if the new InfoMapper is unstable, then production systems can break. One option would be to go to a development branch and only periodically merge to the master. This would ensure that master was always the latest stable. However, this complicates integration testing in different ways.

A different solution is to define a moving tag on the repository, such as "latest-stable" or similar. Then, work on implementation such as the Poudre Basin Information website could pull from master but always checkout the "latest-stable" tag to deploy. It would be up to the InfoMapper developer to confirm that the commit for "latest-stable" had been tested and was indeed stable. The "latest-stable" tag could be moved forward over time. Other tags marking milestone releases, such as when the version changes, should also continue be defined and release notes should correspond to the semantic versions.

This approach allows the master branch to continue to be a working branch. Ideally, with automated tests and care, the master branch should always be a fully-functional version, but the approach above builds in a safety factor to ensure that implementations use working software.

In addition to adopting the concept, the build process could be enhanced, for example to help automate defining and pushing the "latest-stable" tag to GitHub.

Nightsphere commented 2 years ago

The latest-stable tag has been created and will continue to be updated in the future. I might create a script to replace the tag in the future. This tag has unit and end-to-end tests for some of the code, but covering all of the code will take longer, and I'll add in tests incrementally as I move forward. Closing this issue.