view TODO @ 345:a812fdfce278

View related news
author Sylvain Beucler <beuc@beuc.net>
date Sun, 29 Aug 2010 11:41:26 +0200
parents 6070e8187f39
children
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 high priority web screens

    [X] User account registration

        [X] Account creation

        [X] Password recovery

    [/] User page

        [ ] Improve presentation

        [ ] Display resume and skills

    [X] Superuser support

    [/] Account conf

        [X] E-mail

        [X] Password

        [X] Real name

        [X] SSH keys

        [X] GPG key

	[ ] Timezone (cf. doc/DJANGO)

    [X] Set language

    [/] My Groups

    	[/] List of groups (TODO: improve display)

        [/] Join a group (TODO: improve display / don't display for anonymous users)

        [ ] Remove myself from group

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

    [/] Group page

        [X] Top menu

        [X] Members list + GPG keyring

        [/] Mailing lists (list / edit)

        [X] Source code repositories

	[X] Manage members

	[/] Manage features

[ ] Project registration

[/] Site settings ([ ] URL schema (http/https))

[/] Admin interface (implemented via Django admin)

[/] News management

    [X] Display frontpage news

    [X] Display group news

    [ ] Manage news

    [ ] Post news item

    [ ] Edit news item

    [ ] Comments

[/] 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)

    [X] Jobs

    [X] Import news

    [/] Trackers

[ ] 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 news.  Or, reimplement, it might actually be faster...

[ ] 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)

[/] Translations

    [X] Design the translation build system; cf. doc/DJANGO_I18N.

    [/] Translate new strings and generally update existing
        translations.

    [ ] Ping previous translators

    [ ] Submit to translationproject.org

[ ] Project history

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

    [X] Job index (count by category & group type)

    [X] Jobs lists (by category & group type)

    [X] View a job (by category & group type)

    [X] Project jobs list

    [X] Edit job

    [X] Edit user skills

    [X] Edit user resume

[X] Add testing infrastructure

[/] Add tests

[ ] Add more tests

[ ] Did I mention adding more tests?

[/] Work on the web design (preferably near the end, because it makes
    it more difficult to compare with Savane3 when testing)

    [/] Do something different

    [ ] Maybe we can change the colors.

    [ ] We needs to define a CSS class for buttons

=====

Goal #1: use it live at Savannah :)

=====

Uncharted territories - and wild ideas.

[ ] 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?

[ ] 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

[ ] 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)

[ ] Add Last-Modified HTTP headers to optimize search engine crawling

[ ] pastebin

[ ] Snippets?

[ ] World clock

[ ] Your Ideas Here