Neon/Git: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
Line 22: Line 22:
=== Admin ===
=== Admin ===


The repository <code>neon@git.neon.kde.org:gitolite-admin</code> has gitolite setup, hooks and hook server for those with admin rights (kde sysadmin does).
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 git repos to call the neon server on updates
<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 debian hook and fetches updates
<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 phpgit.
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