Neon/Git: Difference between revisions
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
=== Admin === | === Admin === | ||
The repository <code>neon | The repository <code>neon:gitolite-admin</code> has gitolite setup, hooks and hook server for those with admin rights (kde sysadmin does). | ||
neon-hooks/pre-receive is a hook to check the branch can be committed to | <code>neon-hooks/pre-receive</code> is a hook to check the branch can be committed to | ||
debian-hooks/debian-to-neon-post-receive is a hook for debian pkg-kde | <code>debian-hooks/debian-to-neon-post-receive</code> is a hook for debian pkg-kde Git repos to ping the neon server on updates | ||
server/neon-fetch-request-server.py is an XML-RPC server run on the neon server which is called by the | <code>server/neon-fetch-request-server.py</code> is an XML-RPC server run on the neon server which is called by the Debian hook and fetches updates from the Debian repos into the equivalent branches in our repos | ||
sync-repos-from-debian.py checks for all the repositories on in debian pkg-kde and adds any missing to neon. This gets run nightly on Jonathan's server ''embra''. | <code>sync-repos-from-debian.py</code> checks for all the repositories on in debian pkg-kde and adds any missing to neon. This gets run nightly on Jonathan's server ''embra''. | ||
<code>local/hooks/common/post-receive</code> | |||
It uses gitolite3 on code.kde.org, administrated by the KDE sysadmin team. | It uses gitolite3 on code.kde.org, administrated by the KDE sysadmin team. | ||
Web interface is | Web interface is cgit. | ||
=== Settings up new repositories === | === Settings up new repositories === |
Revision as of 15:50, 27 September 2016
The Neon Git repositories are at http://packaging.neon.kde.org
All KDE contributors can commit to Neon/* branches or any branch for repositories under neon/, forks/, neon-packages/ directories, it will reject commits to other branches.
They are clones of the repositories used by Debian pkg-kde team http://anonscm.debian.org/cgit/pkg-kde/. Any commits made to a Debian pkg-kde repository will be pulled into Neon Git immediately.
Add this to ~/.gitconfig
[url "git://anongit.neon.kde.org/"] insteadOf = neon: [url "[email protected]:"] pushInsteadOf = neon:
and clone with:
git clone neon:plasma/khotkeys
Anonymous Access
If you don't have a KDE account you can still clone the repo at
git clone git://anongit.neon.kde.org/plasma/khotkeys
Admin
The repository neon:gitolite-admin
has gitolite setup, hooks and hook server for those with admin rights (kde sysadmin does).
neon-hooks/pre-receive
is a hook to check the branch can be committed to
debian-hooks/debian-to-neon-post-receive
is a hook for debian pkg-kde Git repos to ping the neon server on updates
server/neon-fetch-request-server.py
is an XML-RPC server run on the neon server which is called by the Debian hook and fetches updates from the Debian repos into the equivalent branches in our repos
sync-repos-from-debian.py
checks for all the repositories on in debian pkg-kde and adds any missing to neon. This gets run nightly on Jonathan's server embra.
local/hooks/common/post-receive
It uses gitolite3 on code.kde.org, administrated by the KDE sysadmin team.
Web interface is cgit.
Settings up new repositories
To set up a new repository it is nice to make it first on the Debian server so the syncing is already set up and Debian/Kubuntu packagers know to use it.
- Ask someone with access (Jonathan etc) to
ssh git.debian.org; cd /git/pkg-kde/place-to-put-it; ../setup-git-repository <new-repo>
- The repository should get automatically get picked up by neon infrastructure at most 60 minutes after creation
- Make a Neon/unstable branch on the neon git repo and get a Jenkins admin to run
pangea-tooling jenkins_jobs_update_nci.rb
The Set Up
- neon:gitolite-admin has hooks in .gitolite/hooks/common which are symlinks to neon-hooks/ that get added to new repositories
- .gitolite/hooks/update is the normal hook from gitolite that does whatever gitolite needs
- neon-hooks/post-receive pings jenkins to start a new build
- neon-hooks/pre-receive rejects pushes to non-neon branches and sets up remote to Debian if it exists
- neon/website and neon/releases.neon.kde.org have a post-receive hook to update their websites (no longer used for websites at least)
- cron on the gitolite server runs bits to restart the servers and run the check scripts:
# Hourly sync of new repositories from git.debian.org @hourly python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py # Daily full sync of all repositories from git.debian.org @daily python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py --fetch-all-repositories