Page MenuHomePhabricator

Create keyholder gerrit repo
Closed, ResolvedPublic

Description

The Keyholder is currently hosted via diffusion. To ease the review of the debian packaging work we should move it to gerrit.

Event Timeline

thcipriani triaged this task as Medium priority.Aug 29 2018, 5:57 PM
thcipriani created this task.

@faidon @Volans any preference on the hierarchy under which we create this repo? operations/debs/keyholder vs operations/software/keyholder vs operations/keyholder?

i think "operations/debs/" is used for if your planning on using the repo as a debian package repo?

i think "operations/debs/" is used for if your planning on using the repo as a debian package repo?

Yes, sorry, forgot the mention, that's the plan: package keyholder as a debian repo

I guess we should go with "operations/debs/" then :)

i think we use "operations/software/" if you planning on deploying it a different way like scp.

My vote is under operations/software, if not under some non-operations hierarchy.

The deployment method shouldn't affect the repository naming; the operations/debs tree is for writing Debian packaging stuff for existing software for instance, or Debian-specific machinery.

Oh also, would it be possible to keep the (operations/puppet) history such as commit messages etc.? git filter-branch etc. should make this possible right?

I don't think there's much in the Diffusion fork that's useful right? Maybe the README etc. that we could cherry-pick or commit separately?

Oh also, would it be possible to keep the (operations/puppet) history such as commit messages etc.? git filter-branch etc. should make this possible right?

I don't think there's much in the Diffusion fork that's useful right? Maybe the README etc. that we could cherry-pick or commit separately?

I've managed to do that and have a tree locally. So just create an empty repository in Gerrit (or I can, I guess?) and I'll push there the tree with history :)

@faidon: The main thing in the diffusion repo is the debian packaging work that we did to get it in shape for publishing a deb.

OK, I created a Gerrit repo under operations/software/keyholder and imported the existing history with:

git clone ~/wikimedia/puppet/ keyholder
git remote rm origin
git branch -m master

git filter-branch --prune-empty --subdirectory-filter modules/keyholder/files --force HEAD
git filter-branch --prune-empty --tree-filter 'rm -f keyholder-agent.conf keyholder-proxy.conf' --force HEAD
git filter-branch --msg-filter "sed -r 's/^(keyholder|ssh-agent-proxy): (.)/\U\2/i'" --force HEAD
git filter-branch --tree-filter 'if [ -f check_keyholder ]; then mkdir -p misc; mv check_keyholder misc/; fi' --force HEAD
git filter-branch --tree-filter 'if [ -f keyholder ]; then mkdir -p bin; mv keyholder bin/; fi' --force HEAD
# some manual log message fixes with git rebase -i         
git tag v1.0.0
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --aggressive --prune=now

I had a look and tried to import some of the other stuff but most weren't very applicable (e.g. CONTRIBUTING.md was about Diffusion) especially in the face of what I was about to push (basically rewriting most of keyholder :). As for the Debian packaging… I'll worry about a bit later, I think I can do that :P

I'd resolve this task, but I'm not sure what else needs to be done with regards to GitHub mirroring, CI etc.?

I'd resolve this task, but I'm not sure what else needs to be done with regards to GitHub mirroring, CI etc.?

CI is now setup, we'll need to add a tox.ini file, I did that in:
https://gerrit.wikimedia.org/r/#/c/operations/software/keyholder/+/460065/ (which is passing: https://integration.wikimedia.org/ci/job/tox-docker/3789/console)

Feel free to leave review on that patch, but I think this task is resolved!