savannah-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-cvs] [135] SavannahInternals: new draft


From: Assaf Gordon
Subject: [Savannah-cvs] [135] SavannahInternals: new draft
Date: Thu, 12 Feb 2015 06:14:03 +0000

Revision: 135
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=administration&revision=135
Author:   agn
Date:     2015-02-12 06:13:57 +0000 (Thu, 12 Feb 2015)
Log Message:
-----------
SavannahInternals: new draft

Added Paths:
-----------
    trunk/sviki/SavannahInternals.mdwn
    trunk/sviki/savannah-internals-2015.dia
    trunk/sviki/savannah-internals-2015.png

Added: trunk/sviki/SavannahInternals.mdwn
===================================================================
--- trunk/sviki/SavannahInternals.mdwn                          (rev 0)
+++ trunk/sviki/SavannahInternals.mdwn  2015-02-12 06:13:57 UTC (rev 135)
@@ -0,0 +1,125 @@
+Savannah Internals
+==================
+
+This page describes the inner-working of the GNU Savannah platform
+(web frontend + backend processes).
+
+**NOTE on terminology**
+
+* 'GNU Savannah' (or just 'Savannah') is the name of the entire platform,
+  encompasing the various VMs (see [[SavannahArchitecture]]), services (see
+  [[SavannahServices]]), people (see [[SavannahTeam]]) and other odds and ends.
+* 'Savane' (French for 'savannah') is the code-name for the source code
+  which runs many parts of the savannah platform (most notably: the web
+  frontend at <http://savannah.gnu.org>).
+* While every attempt has been made to use the correct term, they are
+  sometimes used interchangeably in this document, and should be appropriately
+  understood by the context.
+
+## source code
+
+The source code for the php frontend and most of the perl/shell backend
+scripts is available at:
+<http://git.savannah.gnu.org/cgit/administration/savane.git>.
+
+To experiment with running a local copy of Savane see [[RunningSavaneLocally]]
+and [[SavaneInABox]].
+
+**NOTE on repositories**: There are several other repositories/clones/forks 
which look like
+the savane repositories (e.g.
+[savane-cleanup](http://git.savannah.gnu.org/cgit/savane-cleanup.git/)
+[another savane.git](http://git.savannah.gnu.org/cgit/savane.git/) ).
+The repository listed above is the only official one, and code running on the
+savannah machines comes from that repository alone.
+
+
+## server setup
+
+savannah uses the following servers:
+
+* `frontend.savannah.gnu.org` - hosts the php frontend code which serves
+  <https://savannah.gnu.org/>
+* `internal.savannah.gnu.org` - hosts the MySQL database containing
+  project and user information.
+* `vcs.savannah.gnu.org` - serves the source code repositories
+  (git/hg/bzr/svn/cvs) and the web-frontends (e.g. gitweb,cgit/viewVC).
+* `download.savannah.gnu.org` - hosts the download/releases for non-gnu
+  projects, and hosts the arch source code repositories (note: GNU arch
+  is decomissioned in favor of BZR).
+* `lists.gnu.org` - hosts the mailing lists for savannah projects.
+
+For detailed information about servers setup see [[SavannahServices]].
+
+## workflow - overview
+
+![savannah-internals-2015.png](/maintenance/savannah-internals-2015.png)
+
+[savannah-internals-2015.dia](/maintenance/savannah-internals-2015.dia)
+
+1. Users submit a new project.
+   Savannah administrators approve the project (see [[ApprovingSubmission]]).
+2. Project administrators of existing project can change project settings
+   (e.g. add a mailing list, switch from cvs to git, etc.).
+3. The PHP code on `frontend` updates the MySQL database, and optionally
+   runs one-time project creation scripts.
+4. On `vcs` and `download`, cron jobs regularly query the database for
+   updates, and make the necessary changes (e.g. create a new GIT repository
+   for a new project).
+5. The `cvsweb` repositories hold the HTML files which should be displayed
+   on each project's web page. When these are updated, a special hook
+   calls a CGI script on `www.gnu.org`, and requests a website update.
+6. A cron job on `www.gnu.org` regularly checks for update requests,
+   and `cvs updates` the requested repositories.
+7. Unlike code repositories (which use cron+database access), mailing list
+   creation is performed by `frontend` running a remote command on
+   `lists.gnu.org` using SSH.
+   This is done becuase `lists.gnu.org` is not managed by Savannah
+   administrators.
+8. Publishing a new tarball release for GNU packages is performed by an
+   automated process, explained in the
+   [GNU Maintainer's 
guide](https://www.gnu.org/prep/maintain/maintain.html#Automated-FTP-Uploads).
+   It is not managed by Savannah administrators, and only mentioned here for
+   completeness.
+9. GNU Bug Tracker (<http://debbugs.gnu.org>) is based on Debian's
+   [Bug Tracking System](https://www.debian.org/Bugs/). It is not managed
+   by savannah administrators. GNU packages (and other packages hosted on
+   savannah?) can request to join the bug tracker. More information here:
+   <http://debbugs.gnu.org/Using.html>.
+10. For non-gnu projects, project members with write access can upload new
+    files to be availble for download as 'releases' (e.g.
+    <http://download.savannah.gnu.org/releases/freetype/>). While GNU projects
+    can also store files on this server, it is highly recommended for
+    official GNU packages to use GNU's automated ftp uploads (see item 8,
+    above). For details, see 'download' section in [[SavannahServices]].
+    See also [[UserAuthentication]].
+11. Project members with write access can push code to the repositories on
+    `vcs` using SSH. See 'vcs' section in [[SavannahServices]] for
+    configuration details. See [[CvsGettingStarted]],[[Svn]],[[UsingHg]],
+    [[UsingBze]],[[UsingGit]] for usage information.
+    See [[UserAuthentcation]] for SSH authentication details.
+
+
+### Project submission
+
+### Project approval, creation
+
+### Project administration
+
+### MySQL Database
+
+### Cron job on vcs
+
+### Cron jobs on downloads
+
+### www.gnu.org update mechanism
+
+### Mailing list configuration
+
+## Additional functionality
+
+### git hooks on vcs
+
+### cvseweb hooks on vcs
+
+### other scripts on vcs
+

Added: trunk/sviki/savannah-internals-2015.dia
===================================================================
(Binary files differ)


Property changes on: trunk/sviki/savannah-internals-2015.dia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/sviki/savannah-internals-2015.png
===================================================================
(Binary files differ)


Property changes on: trunk/sviki/savannah-internals-2015.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream




reply via email to

[Prev in Thread] Current Thread [Next in Thread]