… what you need to do¶
If you are interested in continued collaboration with the Vinyl Cache project, please register an account on our self hosted forgejo instance following this link.
This invitation link expires 2026-03-20T00:22:08+01:00 and is good for up to 100 registrations.
When it becomes invalid, anyone who already has an account should be able to help out, unless we still get abused by spammers and need to close registrations again.
If you have registered and do not receive the email confirmation, please check your SPAM folder.
About the new forge¶
Our forge is special in some ways. Read about it and/or report issues: <https://code.vinyl-cache.org/vinyl-cache/code.vinyl-cache.org>
Location mapping old/new¶
The translation rules from old to new URL are:
the prefix changes from
https://github.com/varnishcache/tohttps://code.vinyl-cache.org/vinyl-cache/.in the project name,
varnishis replaced withvinyl.
The main/trunk branch is going to be main.
Or expressed as a sed command:
sed -e 's:github.com/varnish:code.vinyl-cache.org/vinyl-:; s:varnish:vinyl:'
old |
new |
|---|---|
These are the web frontend URLs. The git clone URLs change accordingly,
optionally with .git appended. Ssh access changes from
git@github.com:___.git to git@code.vinyl-cache.org/___.git (optionally
without .git) with paths substituted as per the table above. The main/trunk
branch changes to main.
Note that some repositories have not been in use for some time. We will possibly decide to then also archive them on our own forge.
Changing your git settings¶
The following bash script automates changing the origin and main branch. Use
it from within a git-directory. If your “main origin” is not called origin,
adjust the origin=origin line accordingly:
#!/bin/bash
## call this from a varnish-cache git directory
set -eux
top=$(git rev-parse --show-toplevel)
cd "${top}"
# determine the new origin and use it
origin=origin
newurl=$(git remote get-url "${origin}" | sed -e 's:github.com\([\:/]\)varnishcache:code.vinyl-cache.org\1vinyl-cache:;s:varnish:vinyl:')
git remote set-url "${origin}" "${newurl}"
git fetch
# rename main to master
git checkout -b main master
git branch -u origin/main main
git branch -d master
if [[ "${top}" == *varnish* ]] ; then
new="${top/varnish/vinyl}"
mv "${top}" "${new}"
echo NOW CALL: cd "${new}"
fi
What is happening after the forge migration¶
Now that the important first step is done, we are very busy getting our tooling back, which is mainly vtest and other CI as well as the automatic website update.
When the dust has settled, we will add mirrors, which will provide read only access to code only. They will get announced on https://vinyl-cache.org
Mini-Retro: What we did¶
One by one, we migrated our repositories from github to https://code.vinyl-cache.org.
The following was done for each in turn:
A
lasttag was pushed for important repositories.A note will was added to the README to inform about the migration, new repository location and, optionally,
lasttag.If applicable, the central script/tool called for code builds was changed to fail and point to the README. This was usually
configureor a primarymaketarget.The github repository was set to archived. This means that no changes to the code, pull requests, issues, the wiki or whatever were possible from this point on.
The repository was migrated to the new location.
Once the migration was complete and manual sanity checks looked OK, the repository was opened at the new location.
What went wrong¶
On one or two occasions, the README change was accidentally wrong, so we had to un-archive, fix and archive github again.
For the migration to our most important repo <https://code.vinyl-cache.org/vinyl-cache/vinyl-cache>, we did not consider that renaming the master branch to main by pushing a new main branch and then deleting the master branch would render all migrated pull requests with master as the base invalid. Forgejo automatically closed them.
Thanks to the fantastic superpowers of self hosting, fixing this issue directly on the SQL level was straight forward, so all accidentally closed pull requests are available again, except for a minor detail which we did not bother fixing.