view TODO @ 153:be346b5f35eb

Remove extra </table>
author Sylvain Beucler <beuc@beuc.net>
date Fri, 26 Feb 2010 11:07:22 +0100
parents 58bab9662fb2
children e122a60f5815
line wrap: on
line source

Roadmap
=======

The roadmap is based on the previous Savane incarnation.

However we can't guarantee we'll rewrite 100% of its features.  In
addition, the goal is to get something we can install like at Savannah
quickly, which means we may delay some features in a first step.

This roadmap is not immutable, feel free to discuss it with others and
improve it.


[/] Implement web screens (higher priority)

    [/] User page

    [/] Group page

    [ ] Members list + GPG keyring

    [/] Account conf

        [/] e-mail TODO: send mail to verify it, pre-fill the field
	    with the current value

        [X] password

        [X] real name

        [/] SSH keys TODO: maybe display existing keys better; avoid
	    using GET for deletions (use POST instead)

        [X] GPG key

    [/] My Groups

    [ ] Group membership (manage members, manage permissions, request
        inclusion)

    [ ] Delete account (clean-up data but keep User+user_id if past
        history)

[ ] Project registration

[ ] Implement web screens (lower priority)

    [ ] Account conf 2 ([ ] profile/resume, [ ] skills, [ ] timezone)

    [ ] Bookmarks? Was considered for deletion at a point in Savane:
        http://gna.org/task/?1412 - note that yeupou is a bit partial
        towards trackers in that discussion

[X] Admin interface (implemented via Django admin)

[ ] News management (+ comments)

[/] Work on the web design

    [X] Do something different

    [ ] Maybe we can change the colors.

    [ ] We needs to define a CSS class for buttons

[/] Rewrite backend (or have them work on a replicate that uses the
    old DB schema)

    [/] Link the system to the DB more directly (no cron'd
        replication) - currently we use libnss-mysql-bg, it's in test
        live at Savannah using the old DB schema.

        TODO: adapt to new DB schema, and either fix libnss-mysql-bg
        bugs or switch to libnss-pgsql - cf. doc/NSS-SQL

    [/] homedirs and .ssh replication (done in savane-cleanup, and in
        Python - just adapt the DB schema)

    [ ] GPG keyrings

    [ ] Group resources (Download, CVS, SVN, Arch, Git, Mercurial,
        Bazaar)

    [ ] CVS notifications (commit_prep+log_accum - Savannah-specific)

    [ ] Mailing lists (Mailman)

[/] Write migration scripts

    [X] Users, groups, group types, memberships

    [X] SSH keys (with new, separate table):
        src/savane/backend/migrate_sshkeys.py

    [ ] User preferences (table user_preferences)

[ ] Implement mod_rewrite URL migration list

[/] Separate the trackers in the old code so they can work
    independently.  Some work was done in the 'split' branch.  TODO:
    test more and add a new->old replication for users/groups so the
    trackers can use it, until we rewrite them.  Possible do the same
    for jobs and news.

[ ] Avoid using Django-specific sha1$ password format - cf. LDAP
    section below; to the minimum stick with MD5 hashes until this is
    dealt with (so avoid the automatic conversion to sha1$ that Django
    does at each login)

=====

Goal #1: use it live at Savannah :)

=====

Uncharted territories - and wild ideas.

[ ] Add some tests

[ ] i18n

[ ] Optimize models - add DB indexes: db_index=True or unique=True
    (with MySQL) or primary_key=True

[/] Export users/groups to LDAP

    [X] Populate a LDAP directory from the DB

    [ ] Sync the LDAP directory when there are changes (e.g. password,
        mail...)

    [ ] Implement a Django backend that supports SSHA or CRYPT (CRYPT
        may be better since all PAM modules would support it.  We mean
        glibc2-crypt, as documented in crypt(3), with salted MD5
        digests, among others)

[ ] Migration to PostgreSQL?

[ ] Rewrite trackers in Django?

[ ] Rewrite /people (request for contribution / jobs) in Django?

[ ] Add more non-members<->groups and users<->users interactions (aka
    "social features")

[ ] List/retrieve more stats (namely commit stats)

[ ] Create a timeline for projects with the latest project events
    (commits, memberships, news, bugs...).  Possible for users too.

[ ] Wikis

[ ] Improve/suppress delays (e.g. ping a daemon that creates project
    repositories and mailing lists, with a job queue system)

[ ] Translations

[ ] pastebin

[ ] Snippets?

[ ] World clock

[ ] Your Ideas Here