savannah-cvs
[Top][All Lists]
Advanced

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

[Savannah-cvs] [136] SavannahInternals: add more information


From: Assaf Gordon
Subject: [Savannah-cvs] [136] SavannahInternals: add more information
Date: Thu, 12 Feb 2015 23:05:11 +0000

Revision: 136
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=administration&revision=136
Author:   agn
Date:     2015-02-12 23:05:03 +0000 (Thu, 12 Feb 2015)
Log Message:
-----------
SavannahInternals: add more information

Modified Paths:
--------------
    trunk/sviki/SavannahInternals.mdwn

Added Paths:
-----------
    trunk/sviki/savannah-internals-group-edit-icons.png

Modified: trunk/sviki/SavannahInternals.mdwn
===================================================================
--- trunk/sviki/SavannahInternals.mdwn  2015-02-12 06:13:57 UTC (rev 135)
+++ trunk/sviki/SavannahInternals.mdwn  2015-02-12 23:05:03 UTC (rev 136)
@@ -6,15 +6,31 @@
 
 **NOTE on terminology**
 
-* 'GNU Savannah' (or just 'Savannah') is the name of the entire platform,
+* '*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
+* '*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.
+* '*groups*' - In the savane code-base, projects are refered to as groups (and
+  in few cases, these are conceptually groups rather than  code projects, e.g.
+  the [Free Software Free Society 
Purtuguese](https://savannah.gnu.org/projects/fsfs)
+  or the [GNU Spanish Translation 
Team](https://savannah.gnu.org/projects/www-es)).
+  The database table is named `groups`, and several php files are named
+  `groupXXX.php` while referring to projects. `group_id=NNN` in URLs refer
+  to the project internal ID.
+* *Savannah Administrators* are volunteers with special access permissions on
+  the savannah frontend website (see 'becoming super-user' below), and
+  administrator SSH access to the savannah VMs.
+  See [[SavannahTeam]] and
+  [List of current 
administrators](https://savannah.gnu.org/project/memberlist.php?group=administration).
+* *Project Administrators* (in the context of this document) are savannah
+  users which have administrative access to their own project.
+  example: The following people are project administrator for GNU AWK:
+  <https://savannah.gnu.org/project/memberlist.php?group=gawk>.
 
 ## source code
 
@@ -99,12 +115,120 @@
     See [[UserAuthentcation]] for SSH authentication details.
 
 
-### Project submission
+### User Registration (frontend)
 
-### Project approval, creation
+* Public URL: <https://savannah.gnu.org/account/register.php>
+* Source code: 
[/frontend/php/account/register.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/account/register.php)
+* The `register.php` creates a new record in the database `user` table, with
+  `STATUS='P'`, and sends the user a confirmation URL (e.g.
+  
`https://savannah.nongnu.org/account/verify.php?confirm_hash=1f12158d4be45a41`).
+* The confirmation URL leads to
+  
[/frontend/php/account/verify.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/account/verify.php),
 which updates the user's record in
+  `user` table to `STATUS='A'`.
 
-### Project administration
+### Project submission (frontend)
 
+* Public URL: <https://savannah.gnu.org/register/>
+* Source code: 
[/frontend/php/register/index.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/register/index.php)
 (and see all files in
+  
[/frontend/php/register/](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/register/)
 ).
+* After form submission, The php `confirmation.php` file in `register/`:
+    * updates the database record in the `groups` table, with `STATUS='P'`.
+    * sends a notification email to address@hidden
+    * Creates a new task in the task tracker (FIXME: how?)
+    * FIXME: the source code mentions something about `cookbook` and `recipes`
+      database tables?
+* The project is in `pending` state until approved by Savannah administrators.
+
+### Project approval, creation (frontend)
+
+* Public URL: 
<https://savannah.nongnu.org/siteadmin/groupedit.php?group_id=NNNNNN>
+  (only available to savanah admins in 'super-user' mode).
+* The URL is display as 'group administration' link when viewing a
+  [pending project 
ticket](https://savannah.gnu.org/task/?group=administration&category_id=1&status_id=1&set=custom#results).
+* Source code: 
[/frontend/php/siteadmin/groupedit.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/siteadmin/groupedit.php).
+* In this page the following changes can be made:
+    * system name (i.e. 'short name') - the name will be used in URLs, as a
+      unix group name for access control, and as directory names in various
+      locations. Must be unique.
+    * status: `pending`,`active`,`deleted`,`maintaenance`,`incomplete`.
+    * license
+    * visibility (public/private)
+
+  These changes are written to the `groups` table.
+* Two special commands are available in this page as well:  
+  
![savannah-internals-group-edit-icons.png](/maintenance/savannah-internals-group-edit-icons.png)
+    * The green "V" icon: calls `groupedit.php` again with cgi parameters
+      `updatefast=1` and `status=A`, thus marking the project as `active`
+      in the `groups` table, and in savannah.
+    * The configure (screwdriver and wrench) icon: calls
+      
[/frontend/php/siteadmin/triggercreation.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/siteadmin/triggercreation.php),
+      which calls the necessary one-time project creation scripts.
+* The `triggercreation.php` script does the following:
+    * Sets project defaults (e.g. having a homepage, having 'downloads',
+      using cvs repository, using task,support,bugs trackers, using news,
+      etc.). This are fields such as `use_homepage=1` in the `groups` table.  
+      The items set by default are hard-coded in `triggercreation.php`.
+      (this is one reason that by default, all new projects on savannah start
+      with a cvs repository.)  
+      This settings can later be changed by the project administrators.
+    * Sends an email to the project administrator (based on the savannah user
+      who submitted/registered the project).
+* FIXME: `triggerscreation.php` mentions `"site-specific triggers executed"` -
+  which ones are these and where are they executed?
+
+### Project administration - feature selection (frontend)
+
+* *features* in this context are the facilities used by the project, such as
+git, cvs, homepage, downloads, news, bugs/support/patches/tasks trackers,
+mailing lists, etc.  
+Each feature has a corresponding field in the `groups` table (e.g. `use_git`,
+`use_homepage`, `use_downloads`) which is set to `1` or `0`.
+* some features are associated with a URL. The URLs for these
+features are initialized to the savannah defaults at project creation, but
+can be later changed by the project administrators. Examples:
+    1. If `use_homepage=1`, the `url_homepage` field defaults to
+       `http://www.gnu.org/software/PROJECT` (for gnu projects) or
+       `http://www.nongnu.org/PROJECT` (for nongnu projects). project
+       administrators can change this to any other URL.  
+       example: The [lilypond](https://savannah.gnu.org/p/lilypond/) homepage
+       is set to <http://lilypond.org/>.
+    2. If `use_git=1`, the `url_git` field defaults to `git/?group=PROJECT`
+       (which resolves to `https://savannah.gnu.org/git/?group=PROJECT`, a
+       page containing instructions about accessing git on savannah for this
+       project). Project administrators can change this to any other URL.  
+       example: The [GNU Social](https://savannah.gnu.org/p/social) git url 
points
+       to <https://gitorious.org/+socialites>.
+* Public URL: 
<https://savannah.gnu.org/project/admin/editgroupfeatures.php?group=PROJECT> 
(only available to project admins).
+* Source code:
+  
[/frontend/php/project/admin/editgroupfeatures.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/project/admin/editgroupfeatures.php).
+* When updating features (selecting or deselecting features), the changes are
+  saved to the database, in the `groups` table. No other changes are perfomed.
+* These database changed will be later picked-up by the cron-jobs running on
+  other VMs (see below). This is the reasons some features take time to
+  propegate (e.g. when a project administrator turns on `git`, the git
+  repository is not created immediately).
+
+### Project administration - mailing lists (frontend)
+
+* Mailing list require special handling: the mailing list server (running
+  GNU Mailman) is a GNU server and is not administrated by Savannah admins.
+* sepcial configuration on `lists.gnu.org` allows remote execution of
+  shell scripts from `frontend` to automate list creation/deletion.
+  (for more details see [[ListServer]]).
+* Public URL: <https://savannah.gnu.org/mail/admin/?group=PROJECT> (only
+  available to project admins).
+* Source code: 
[/frontend/php/mail/admin/index.php](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/frontend/php/mail/admin/index.php).
+* The PHP code updates the `mail_group_list` table (no other direct changes
+  are done by the script). new mailing lists are added as new records in the
+  tables. change requests to mailing lists are done by changing the
+  `status` field (see source code for possible values).
+* A cronjob on `frontend` reads the changes in the `mail_group_list` and
+  executes the necessary changes on `lists.gnu.org` using SSH, then updates
+  the database with the result of the change.  
+  See 
[/backend/mail/sv_mailman.in](http://git.savannah.gnu.org/cgit/administration/savane.git/tree/backend/mail/sv_mailman.in).
 
+
+### Project administration - general information
+
 ### MySQL Database
 
 ### Cron job on vcs
@@ -117,6 +241,12 @@
 
 ## Additional functionality
 
+### super-user and imporsonate on frontend
+
+### frontend configuration files
+
+(files which are not in the `savane` repositories)
+
 ### git hooks on vcs
 
 ### cvseweb hooks on vcs

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


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




reply via email to

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