Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write plan for changing how release tags and branches are named #94

Closed
6 tasks done
e0d opened this issue Dec 8, 2022 · 5 comments
Closed
6 tasks done

Write plan for changing how release tags and branches are named #94

e0d opened this issue Dec 8, 2022 · 5 comments
Assignees
Labels
axim Coordinating with Axim Collaborative github Changes to how we use GitHub

Comments

@e0d
Copy link

e0d commented Dec 8, 2022

I'd like input from 2U operations on what a reasonable runway would be for updating how tags and branches are named by CD systems and other automation.

The rationale is in this ADR. I'd like to include the agreed upon grace period in the ADR. tl;dr: deploying edx-platform creates tags and branches named "release-*", and tCRIL wants them to be named "2u/release-*". EVEN BETTER: get rid of the tags or branches in the openedx-org repo completely.

Acceptance criteria:

  • Write a plan for renaming or removing the tags and branches

Discovery items

Preview Give feedback

Repos to investigate:

  • tubular
  • edx-internal
  • configuration
  • edx-platform/openedx.yaml
@nedbat nedbat added the axim Coordinating with Axim Collaborative label Dec 8, 2022
@nedbat nedbat added the github Changes to how we use GitHub label Dec 20, 2022
@nedbat
Copy link
Contributor

nedbat commented Feb 13, 2023

(there used to be something here)

@nedbat nedbat changed the title Propose a reasonable runway for changing how tags and branches are named Write plan for changing how release tags and branches are named Feb 13, 2023
@nedbat nedbat self-assigned this Feb 13, 2023
@nedbat nedbat moved this from Backlog to In Progress in Open Source Process working group Feb 22, 2023
@nedbat nedbat moved this to Todo in Arch-BOM Mar 2, 2023
@nedbat nedbat added this to Arch-BOM Mar 2, 2023
@nedbat nedbat moved this from Todo to Groomed in Arch-BOM Mar 3, 2023
@timmc-edx timmc-edx moved this from Groomed to In Progress in Arch-BOM Mar 4, 2023
@timmc-edx timmc-edx self-assigned this Mar 4, 2023
@timmc-edx
Copy link
Member

timmc-edx commented Mar 4, 2023

Discovery:

  • In edx-platform, there are four types of branches or tags involved:
    • There are tags with names like release-2023-03-03-10.42 that represent actual releases (to prod/edge and stage, or just prod?)
      • These are created by tubular's create_tag.py and have a hardcoded default of release-<timestamp>
      • 📂 I don't know if anything uses these, but they're probably just for human reference
      • ▶️ We can probably remove this create_tag.py call entirely, since there's another one that creates these tags in the private repo.
    • There are branches with names like release-candidate-3979 which appear to be made for every merge that lands on master, only some of which turn into actual releases. These appear to be deleted after 2 weeks.
    • There is a singular branch called release that probably tracks the most recent release tag. This one is actually used in the Open edX named release branch-cutting process, so we don't want to get rid of it (?) but should probably rename it.
      • I believe this one is managed by tubular's merge_branch.py, which fast-forwards it after release.
      • 📂 Does anything use it other than the named release branch-cutting process?
      • ▶️ This should be renamed to 2u/release, including in openedx.yaml.
    • And finally, a singular branch called release-mergeback-to-master that's probably somehow involved in the private patch process.
      • I think this is used when merging the release branch back into master... which is probably some outdated process that is no longer relevant.
      • ▶️ We should remove this branch entirely.
  • Just to make things confusing, there is an unrelated mechanism in the private clone of edx-platform (which we actually deploy from, in order to patch privately) that has a singular release-candidate branch and tags like release-20230303143256, but also release-2023-03-03-10.42. It's possible that the tags of the last sort are fetched from the public repo, but there is a separate create_tag.py call that might be creating them independently. (They should have identical names and commits, in any case.)

@timmc-edx
Copy link
Member

Proposed plan here, although I'm still gathering feedback on it from 2U engineers: edx/edx-arch-experiments#212

@timmc-edx
Copy link
Member

@e0d Does the plan in that ticket (edx/edx-arch-experiments#212) look good? I think we want to rename the release branch to 2u/release but otherwise keep it since it's currently part of the Open edX release process. The other tags and branches should be possible to remove from the public repo.

I reckon we could do this by April, with the understanding that there's a lot of CI code here that hasn't been touched in a long time and so there's a good chance of "unknown unknowns" that will cause delays.

@timmc-edx
Copy link
Member

OK, that went faster than expected! release is renamed 2u/release and the other branches/tags will stop being created. There's still some chance of having to back things out again, but I'm closing this planning ticket out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
axim Coordinating with Axim Collaborative github Changes to how we use GitHub
Projects
Archived in project
Status: Long Done
Development

No branches or pull requests

3 participants