Closed caldwellst closed 5 months ago
So, been thinking more on this, and what about the following proposal?
main
for all runs, keeping dev workflows simple.Thoughts @hannahker @zackarno?
Thinking about this more... IMO only documenting and versioning against a subset of changes could be dangerous, or at least confusing. Firstly because I could imagine it getting ambiguous whether or not a certain change impacts the emails or not. Secondly, I worry it could be confusing to potential contributors (or even ourselves) when a changelog/versions don't reflect the full scope of changes in the repo.
In light of this, I would advocate for going all or nothing with versioning. We either decide on the contribution/release structure to version against every change (potentially requiring some kind of pre-release staging), or we drop the versioning altogether. Going for the former seems more appropriate, but my thinking on how exactly that should be implemented is still incomplete...
What you're saying makes sense. I think what we do is simply require that the version is always incremented in every PR. Shouldn't be hard to have a check on merging PRs to main
that requires the .signals_version
file to be changed. I don't know about the pre-release staging, because all I've ever really seen for that is something like a dev
branch which doesn't seem we want.
Shall we just add a fourth level to versioning 1.1.1.X
that is simply there when we don't think changes reflect the need for a patch. For instance, changes to documentation in Gitbook, improvement in documenting functions, that sort of thing. And if we aren't super consistent there, I don't think we need to be that worried as long as we have incrementation with every change and that is reflected in the dataset.
To make it more concrete, have tried to reflect this in the complex boundaries PR (also adding a few other changes that we haven't logged from other PRs):
https://github.com/OCHA-DAP/hdx-signals/pull/178
# Changes
## 0.1.2.0 (20 June 2024)
### Maps
- New country boundaries spatial data used for locations that do not
have COD boundaries, replacing the simplified boundaries used previously
### System
- ISO3 codes added to the location boundary GeoJSON files
- Added additional level to semantic versioning, `0.0.0.X`, to be used
for patch changes that do not impact the signals, such as changes to documentation
or changes like the above (adding ISO3 codes to internal files for our convenience)
- Pass `HS_HDX_BEARER` env var to `update_assets.yaml` action
Yeah, I think that's fair! Looking at some GitHub actions which might help us automate things further and address the problem of conflicting version increments across multiple PRs open at the same time:
I can play around with some of them if you also think they'll help
Yeah that would be great! Do you think the above makes sense for now and I can merge that PR?
Yes!
We should finalise the approach for versioning, document it in
CONTRIBUTING.md
, and follow it. Here are some snippets of the discussion on Slack!What we need
@hannahker:
Dev branch
I'm also pretty against a dev branch, since it'll add lots of complexity and I don't really see a reason why we wouldn't want to immediately release changes to the main branch
@caldwellst
@hannahker
Release tags
@hannahker
@caldwellst
Semantic versioning
@caldwellst