Page MenuHomePhabricator

Decommission Fundraising's crm/civicrm git repo
Open, Needs TriagePublic

Description

Our git repo structure is currently that we have a main repo crm that pulls in a submodule repo crm\civicrm

What we would like to do is

  • remove the code that specifically checks out the civicrm repo in our CI build - we need Releng to do that
  • remove the submodule from our crm repo and commit the civicrm folder directly into the repo - we can do this - but it needs to be in co-ordination with ^^
  • archive the crm\civicrm repo

Technically this should be easy but it involves a step we can do to be co-ordinated with a step we don't have permission to do.

Background

Our goal with the civicrm repo is to be running the 'stock' upstream monthly release and we very actively upstream to that end. That means we are not terribly interested in the history of our repo - only what patches we have left to upstream. The way we manage the crm\civicrm repo is that each new release we unzip the tarball of code into it and re-apply any patches that we deem necessary. Although the repo has a long history we effectively reset it every time we deploy a release and never look back further. The upstream repo DOES have a a git repo - but it doesn't actually match the structure of our repo - so having the repo is not helping us wrangle patches, either

However, having the separate repo does actively hurt us - because our WMF crm code interacts with the CiviCRM code in multiple ways we wind up putting in a lot of work to adapt our crm code such that it will work with the new civicrm code AND the existing code. Then we upgrade CiviCRM and then have to remove the temporary compatibility patches. Or, we do similar within CiviCRM - two of the five patches we are currently carrying in the crm\civicrm repo were in order to keep CI passing as we last upgraded. (I hope to be rid of the remaining three very soon after we get rid of the submodule as one of them will be easily fixable once that is done)

Event Timeline

Eileenmcnaughton created this task.
Eileenmcnaughton updated the task description. (Show Details)
Eileenmcnaughton updated the task description. (Show Details)
Eileenmcnaughton updated the task description. (Show Details)
Eileenmcnaughton added a subscriber: jgleeson.

Change 823221 had a related patch set uploaded (by Thcipriani; author: Thcipriani):

[integration/config@master] CiviCRM: Decommission crm/civicrm

https://gerrit.wikimedia.org/r/823221

I think that patch is all that's needed.

Let me know when you're ready to remove the sub-repo, so I don't break your build in the interim and I'll update the CI jobs.

Moving back to Backlog now that Tyler unblocked us (just need to coordinate the merging). Thanks!

Change 825881 had a related patch set uploaded (by Eileen; author: Eileen):

[wikimedia/fundraising/crm@master] Check in CiviCRM module

https://gerrit.wikimedia.org/r/825881

Change 823221 merged by jenkins-bot:

[integration/config@master] CiviCRM: Decommission crm/civicrm

https://gerrit.wikimedia.org/r/823221

Change 825881 merged by Eileen:

[wikimedia/fundraising/crm@master] Check in CiviCRM module

https://gerrit.wikimedia.org/r/825881

Instructions to fr-tech (emailing but putting here too for reference)

The CiviCRM repo has just been checked into crm - so crm/civicrm-core repo is in the process of being archived.

Locally you need to do some stuff to clear up the copy of .git in crm

If you don't want to blow it away you can do some combo of

remove .git/modules/civicrm and
remove references from ./git/config to the submodule
run the command git submodule sync (this does some combo of the above

Aklapper renamed this task from Releng - please help us decommission our crm/civicrm git repo to Decommission Fundraising's crm/civicrm git repo.Aug 23 2022, 11:34 PM

Change 825934 had a related patch set uploaded (by Eileen; author: Eileen):

[wikimedia/fundraising/crm@deployment] Check in CiviCRM module

https://gerrit.wikimedia.org/r/825934

It seems I can't convince it to merge to deployment https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/825934 / https://integration.wikimedia.org/ci/job/wikimedia-fundraising-crm-composer-php73-docker/3755/console - I don't know why at this point

It also occurs to me there is a step to archive the repo that might need doing?

Change 825934 abandoned by Eileen:

[wikimedia/fundraising/crm@deployment] Check in CiviCRM module

Reason:

https://gerrit.wikimedia.org/r/825934

XenoRyet set Final Story Points to 4.

archive the crm\civicrm repo

If this task is about https://gerrit.wikimedia.org/r/plugins/gitiles/wikimedia/fundraising/crm/civicrm/+/refs/heads/master (but maybe I misunderstand?),
then this task is not resolved: The repo is not empty, has no info in its repo name that it's archived, and https://gerrit.wikimedia.org/r/admin/repos/wikimedia/fundraising/crm/civicrm still says "State: Active". Basically see the items listed in https://phabricator.wikimedia.org/maniphest/task/edit/form/33/

Aklapper edited projects, added Projects-Cleanup; removed Patch-For-Review.

Reopening per last unresolved comment

@Aklapper you are correct - that repo still needs to be formally archived. I've opened a sub-task per the link you provided https://phabricator.wikimedia.org/T324732 - and commented on all the steps that don't apply. I'm not too sure if we have permissions to do the remaining ones (obviously these are not things we normally do so it's all pretty unfamiliar)