[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:
+

+ * 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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Savannah-cvs] [136] SavannahInternals: add more information,
Assaf Gordon <=