WasatchPhotonics / ENLIGHTEN

Open-source spectroscopy application for controlling and taking measurements from Wasatch Photonics spectrometers.
https://wasatchphotonics.com/product-category/software/
MIT License
3 stars 6 forks source link

Release issues #340

Closed samiebee43 closed 8 months ago

samiebee43 commented 9 months ago

I've updated our github releases page to have most of the new versions, but there remains a couple of release-related issues:

Normally the enlighten-x.y.z tag should appear in the Wasatch.PY repo. (There is already one there too)

samiebee43 commented 9 months ago

I believe the best way to address (1) is to remove enlighten-4.0.22 tag and move 4.0.22 tag to 09e167b. It's a change in a dependency file, which seems important for the release.

(Done.)

samiebee43 commented 9 months ago

@mzieg I'm pretty sure you can fix (6) with git push --tag. Since the tag must exist somewhere for the installer to be built.

mzieg commented 9 months ago

the tag must exist somewhere for the installer to be built

Actually no. The tag must exist for the installer to be deployed...which it wasn't (deliberately).

mzieg commented 9 months ago

I've updated our github releases page to have most of the new versions

I'm not sure any of those were actually release candidates. 4.1.0 was expected to be the next release, and it was known that there were many features which would have to be added before that was ready. We were never going to release most of these incremental steps...that's why they were never merged to main, or even had a pull request to do so.

samiebee43 commented 9 months ago

I think we need a more formal build process.

I was under the impression that (1) all builds should appear in Github Releases (2) all builds increment at least the minor version number (3) almost all builds should come from a commit on main (with the exception of downstream patches like py37-ubu).

I will draft a Github Wiki page consisting of what I think the rules should be when it comes to building and releasing. It will be similar to the Beta-release page from our internal wiki, but it won't contain instructions for deploying to our website. It will contain some updates regarding RC vs beta and the use of staging semi-major branches. The document is open for collaboration, and can be found here: https://github.com/WasatchPhotonics/ENLIGHTEN/wiki/Build-and-Release-protocol

mzieg commented 9 months ago

almost all builds should come from a commit on main (with the exception of downstream patches like py37-ubu).

Then what's the point of a dev branch like 4.1.0-dev?

To me, the point of a dev branch is so we can make many "internal, test" builds, which aren't from main, and which most customers would never see or be aware of (since they're presumably tracking the "stable" main).

samiebee43 commented 9 months ago

My purpose for the dev branch is that we can work on an arbitrary amount of changes for a new semi-major version--and while we work on it, if we receive a support request (such as making the data save directory persistent) then we can roll out a 4.0.25 from main without including all the arbitrary amount of changes we are queuing up for 4.1.0.

When 4.1.0-dev reaches maturity it will be merged into main, and all subsequent releases will be 4.1.x.

mzieg commented 9 months ago

an arbitrary amount of changes for a new semi-major version

But why would those be automatically considered release candidates? Who intended, or wanted, to release them? I didn't.

samiebee43 commented 9 months ago

Those arbitrary changes aren't release candidates, they are rolled into the 4.1.0-dev staging branch. I'm referring to this branch structure, where lots of bigger changes go into staging to be released in the future, but small changes can be made to the last release for customer support.

image

This is exactly the scenario we have now with many future features in 4.1.0-dev including themes, jcamp write, refactoring, etc. But for customer support I only wish to release one small change on top of the last release.

The 4.1.0-dev should be merged to main in the future when it is ready.

mzieg commented 8 months ago

These were internal test builds