]
Petr Široký commented on DROOLS-1048:
-------------------------------------
One additional possibility could be to directly rename the org.unit. Github seems to
support that:
. The advantage
would be that the old URLs should still work.
Change github url from
github.com/droolsjbpm/ to
github.com/kiegroup/
---------------------------------------------------------------------
Key: DROOLS-1048
URL:
https://issues.jboss.org/browse/DROOLS-1048
Project: Drools
Issue Type: Task
Components: build
Reporter: Geoffrey De Smet
Assignee: Petr Široký
Priority: Critical
[~mark.proctor] asked me to make an inventory of what would need to happen if we ever
migrate from
github.com/droolsjbpm/ to
github.com/kiegroup/. Technically this issue is
very simply (just change it in GitHub), but organizationally this issue is difficult and
dangerous: it needs to be done with care.
Preparation:
1) Get some experience
- Make a dummy repository in droolsjbpm, add some files and a few branches, fork it to
your user account, add a PR on it, clone it 2 times:
-- Once from droolsjbpm
-- Once from your user account with droolsjbpm addes as upstream ("git remote add
upstream ...github.com/droolsjbpm/...")
- Add some local changes on both dirs.
- On GitHub, go into the repository settings, in the danger zone and move it from
droolsjbpm to kiegroup.
- Try using it from your 2 local clones ("git pull --rebase" or "git fetch
upstream"). Copy paste the error messages for later use.
-- Fix it locally without recloning, without losing the local changes, etc. Record these
steps clearly in a recipe to share with everyone else later.
-- Once it's fixed, see if you can do git operations without having to specify origin
for the direct droolsjbpm clone. See also the git option "-u" - you'll
likely have to add in the recipe as an extra step.
-- What happened to the open PR?
2) Clean up our repositories in droolsjbpm. There are a few dead ones that we should not
be moving.
3) Set up roles and users of
github.com/kiegroup.
4) Reach out
- Talk to each type of person involved:
-- R&D developer
-- QA
-- Productization
-- Product docs
-- Community
- Make an inventory of references to "github.com/droolsjbpm"
-- Do a find in path on all our files for "github.com/droolsjbpm")
-- Which webapps reference it?
--- jenkins
--- jira
---
www.openhub.net
--- gitter
--- stackoverflow
--- google forums / mailing lists
--- ...
- Set a date when you'll be moving the first repository.
-- Clearly communicate on all channels to let everyone know. This includes:
--- Public mailing lists and fora: Drools, OptaPlanner, jBPM, ...
--- Internal mailing lists: sme-brms, pm lists, bsig, etc
--- IRC channel topics
--- Social media (Twitter accounts etc)
--- ...
- Clearly communicate:
-- What you'll do
-- When you'll do it
-- How strong the freeze is: Can they make local changes meanwhile? Will they lose the
open PR's? How will this affect their forks and branches? Answer all these questions
proactively, based on your experience. Cropped screenshots are good!
-- A recipe: What they need to do - step by step for dummies - after the merge is done.
-- Get someone to review this mail before it goes out.
- You can't overcommunicate this, but you can undercommunicate it. And there's
always going to be 1 person who complains he wasn't told about it and it messes up his
work.
5) Do it:
- You can do one repository at a time, or do multiple at the same time.
-- I'd recommend to start with just 1 to get a feel for it.
- Do them in reverse order of the repository-list.txt!
- DELETE THE OLD REPOSITORY. DO NOT COPY IT, BUT MOVE IT.
-- After the move, we want anyone that's trying to pull from droolsjbpm to clearly
*fail* pulling, but without losing local changes.
-- Some people will not have read your mail, they need to fail when pulling, otherwise
they'll find themselves asking in 5 months why we haven't done any changes in 5
months.
- In droolsjbpm, create a repository called
all_repositories_have_moved_to_github_com_kiegroup and make sure it's on the top of
the list of the droolsjbpm repositories. Add a link in it's readme.adoc. This is for
people who follow dead links from stackoverflow etc.
- Migrations like this should really happen during the weekend to reduce the impact on
the rest of the team, ask your manager to swap a weekday for a weekend day.
6) Clean up the fallout
- Go through your inventory and replace the references as far as humanly reasonable
(stackoverflow is likely to be unreasonably, but openhub is not).
Anyway, that's my 2 cents (from my experience when moving svn to Git and splitting up
the monastical build 5 years ago). Do this right and this will be almost a non-event (5
years ago it went pretty well on the engineering side, but less on the product side). Mess
this up and this can be a disaster that will antagonize a lot of people...