Add a changelog and prepare to release 0.1
It would be good to put Spade on https://zenodo.org/ (which gives a DOI, and allows direct citation of the software). To do so, we need to have explicit versions. It would also be nice to have regular releases to say "we just released version X, it has new features A and B which we're excited about". Then we can put something on blog.spade-lang.org, make announcements etc.
As usual, stealing ideas from rust, it seems like a fixed release cycle is nice for a language as it does not put any pressure on getting releases out there, or crunching on features to get them out there for that "big" release.
Being unstable software, I think we should not prevent ourselves from doing breaking changes at all, so I think the best course of action is to just do 0.x.0 releases, and assume that all of them are breaking. I anticipate that at least for a while longer, 6 weeks will be long enough that all versions will be breaking. If that changes, perhaps we can consider doing 0.x.y
releases
In order to keep track of changes, I'm adding a CHANGELOG.md. The idea here is to add notes of ""significant"" changes to [Unreleased]
, and then change it to `[] on release. "Significant" here probably means visible to the user. An internal refactor like !159 (merged) doesn't show up there, but most other MRs do.
From experience, remembering to bump a CHANGELOG.md
is hard, so let's try to conciously make that part of the normal MR flow (or perhaps we can automate it to warn us in CI if the changelog isn't touched by an MR). Here it might make sense to have an "invisible changes" section for !159 (merged) too.
I'm also wondering how we should handle other tools, primarily swim and lsp. My first thought is to release them at the same time, and have separate changelogs there which we link from this master changelog. This might mean we do empty releases in them if nothing changes, which I think is fine.
@sornas I think you should be a co-author on the zenodo thing. It might be useful if you create a https://orcid.org/, especially if you want to go into research down the line.
Some todods for me
-
Write a checklist for doing releases
CC: @oscargus perhaps this is interesting to you too