coala / meta

A repository for non-code activities, such as engagement initiatives, and other meta issues
6 stars 5 forks source link

2018 release strategy #123

Open jayvdb opened 6 years ago

jayvdb commented 6 years ago

cliffs notes: The path to getting back to continuous delivery:

  1. all repos use git+...master for each coala dependency
  2. do a manual pre-release of each repo, to get the ball rolling again.
  3. the docker repo is fixed again & CD scripts rewritten
  4. all repos do an automated pre-release using CD, starting with libraries and then core and bears and quickstart, and then the docker
  5. all repos do a real release, starting with libraries and then core and bears and quickstart, and then the docker

Backstory:

There hasnt been a release of coala since https://github.com/coala/coala/releases/tag/0.11.0 May 2017.

We discontinued use of rultor in very late 2017 / very early 2018, which stopped our continuous deployment of pre-releases. Manual pre-releases didnt start happening.

https://github.com/coala/coala/issues/5157 is about creating a 0.12 release, which is milestone https://github.com/coala/coala/milestone/16 , but that didnt quite happen and lost momentum. (but see below; it had unsolvable blockers)

Then at some point in early 2018, the core and bears repositories got out of sync ; bears stopped working on the master of core.

In addition, core rather urgently needs the most recent fixes in https://gitlab.com/coala/package_manager , due to critical issue https://github.com/coala/coala/issues/3983 for 0.12 . package_manager got a bit stuck due to legal paperwork required to relicense it from APGL to MIT.

0.11 wasnt widely adopted because of that bug, so some systems are still using 0.10 , or are doing dodgy workarounds (like our own webservices , which isnt on continuous delivery because of this bug and we're checking in the sqlite database manually).

And in addition coala-quickstart needs to sit on top of coala & coala-bears, the docker script is not ready for a release (broken by upstream, and new bears not added).

As many repos need to be co-ordinated to do CD, and we suck at merging an identical script in every repo (scale problems), let alone keeping CD systems of every repo using similar scripts with frequently improvements to the CD system, the options (or path) were:

  1. https://github.com/coala/meta/issues/117 - mobanise the CD, and everything else, or
  2. build a tool which does the CD, and do releases of that tool, which all repos get automatically upgrades of
  3. build an external system (like rultor) which does the CD.

Step 2 becomes incredibly complicated when the CD system needs to update the CI scripts which kick of the CD. Hence either option 1 or option 3 is still needed to effectively do option 2.

Suggested path is do them in order.

Option 1 allows flexible and incremental delivery of new stuff to the repos.

Option 2 can create a tool using the stuff built in Option 1.

Option 3 can run the tool created in Option 2.

jayvdb commented 5 years ago

openSUSE sub-projects: