Closed Pintliz closed 4 years ago
Fixed in #645. @FooSoft: patch release tag 20.6.27.1 created. Not sure what the workflow should be since the release is still in testing: a new date version for the release, or just the patch.
I think that we should just have a new version without hotpatch bit. If a version is bad and gets caught in testing, we can just retire it I think.
Okay; the new commits added since the release are: 0a6c08d0f53090a4ad48663bc5846ddae5723d52...bc6d855f3dd7a8ac198593c15a25dca53a89a18f. bc6d855f3dd7a8ac198593c15a25dca53a89a18f is the fix. It's probably be fine to include them all and update the release branch, or to just re-tag/update the version of 20.6.27.1 and treat it as the release branch. The workflow of continuing to commit to master during a testing release is a bit odd due to this, since there are commits going into master which weren't intended for the release (i.e. may not be fully tested), and I'm not sure if it's an issue if the release branch temporarily diverges from master.
That makes sense -- maybe we should go with 20.6.27.1 after all then. I can see a degenerate situation where no testing releases are promoted to release because of bugs being found for several iterations. From that point of view, it definitely makes sense to consider this being a hotpatch. I'll cherry pick the change over to testing and tag it there. Not sure where it would make sense to tag hotfix change as a general rule though, since it is possible that a hotfix comes after unrelated changes.
So here is a thought -- we don't have hotfix tags in master
, since it can be confusing to describe the code necessary to fix testing
in terms of master
changes. I would imagine that we might even have situations where we have a "quick fix" for testing
which we would not even want to have in master
. Also semantically, we are hotpatching testing
and not master
...
Thoughts? This approach may require a release
branch to which testing
flows. My approach up until now was just to checkout the tag of the testing version and build the deployment zips from there. That might not be robust enough to deal with all hotfix scenarios.
Not sure where it would make sense to tag hotfix change as a general rule though, since it is possible that a hotfix comes after unrelated changes.
The hotfix tags I've made so far have basically been branches off of the release branch with the fixing commits cherry-picked onto it. So the hotfix commits don't contain anything unrelated to that release. Compare: master history @ bc6d855f3dd7a8ac198593c15a25dca53a89a18f vs 20.6.27.1 history @ 9e15f84733a482cea0104d78617dd49699755ae7. This is the divergence I was mentioning.
I've marked these using tags in the past to avoid having branch clutter, but another potential workflow would be to mark release branches as something like release/20.6.27
, and if any hotfixes are necessary (during either testing or stable), they can just be cherry-picked from master onto that release (backported if necessary). Since the commits all have PR identifiers in them, this makes it easy to correlate the divergences.
This may affect the workflow for generating releases, since the testing branch has slightly different metadata for the manifest and whatnot. So the build process may be slightly different, such as just having a script which can be used like build testing
or build stable
, and it auto-generates a temp manifest before zipping. Longer term, the scope of this building issue goes beyond more than just testing/stable releases. I mentioned it a bit in #612, where there may need to be a slight difference in the manifest used for Chrome vs the one used for Firefox due to certain browser-features.
missing texts and [object Object] in glossary field
all entries in furigana field becomes undefined
ankiconnect ver: (updated 2020-06-26)