Project Approval at Savannah

About project reviews

Savannah is a place to emphasize free software values, especially the non-obvious/non-technical ones. We want you to understand them and follow a few good practices for your project.

The official requirements list is at https://savannah.gnu.org/register/requirements.php. This page explains the points in more details.

Savannah admins: we also have concise versions of these answers, ready for copy/paste, at http://cvs.sv.gnu.org/viewvc/*checkout*/administration/infra/elisp/savannah.el?root=administration

Check-list

Here is a compliance check-list, and links to further explanations.

Read them and follow them to get your project approved quickly :).

  • Make sure your project runs primarily on a completely free OS.
  • Use a license compatible with the GNU GPL.
  • Write a half-page technical description of your project: its goal, its programming language and its depencies (with URIsToTheDependencies).
  • Don't forget to give a pointer to the source code.
  • Apply valid copyright and license notices (ValidNotices), and include a copy of the license you chose.
  • Refer to the GNU/Linux operating system and reserve the name "Linux" for referring specifically to the kernel that Linus wrote. More info: http://www.gnu.org/gnu/gnu-linux-faq.html.
  • Talk about the free software movement, which we support, and not open source, which we don't. Do not use "Open" in your project name. More info: http://www.gnu.org/philosophy/open-source-misses-the-point.html.

The review we do can be long and tedious for both the submitter and the reviewer. Be sure to follow these steps; if your project doesn't comply with our requirements, we will ask you to make changes to your project or register again. This ensure a consistent level of quality and policy for projects hosted at Savannah.

General principles

Related FAQ

subtopics:

For Administrators

Pinged message

If after one week, the submitter of a new project for approval didn't answer, the admin need to send a pinged message. The pinged message can be founded in [savannah.el|vim] as sv-pinged() under emacs and SV_pinged() under vim.

Zombie projects

When projects are removed from the tracker but not from the database, they stay there and increase the "pending projects" frontpage statistics. To find such projects, a good heuristic is:

SELECT groups.group_id, unix_group_name, groups.status, task.bug_id, task.status_id, groups.group_name FROM groups, task WHERE groups.status='P' AND task.group_id=5802 AND task.status_id=3 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name:  *", groups.unix_group_name, "*%") AND (SELECT count(*) FROM task WHERE task.group_id=5802 AND task.status_id=1 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name:  *", groups.unix_group_name, "*%")) = 0 GROUP BY groups.group_id ORDER BY bug_id;

DELETE groups FROM groups, task WHERE groups.status='P' AND task.group_id=5802 AND task.status_id=3 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name:  *", groups.unix_group_name, "*%") AND (SELECT count(*) FROM task WHERE task.group_id=5802 AND task.status_id=1 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name:  *", groups.unix_group_name, "*%")) = 0;

It only fails if the group name was changed after the submission, or if a user maliciously fakes a submission item.

A better solution would be to add a 'task_id' field in the 'groups' table, filled in at registration time.