Update:Archive/2.0/Developers: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 133: Line 133:


== Project Standards ==
== Project Standards ==
=== What language should we use? ===
Sticking with PHP seems to make the most sense at this time.  We have that skill set (both on the development and systems side) and the alternatives are not particularly attractive.  We considered both Perl and Java but decided against both at this time.  The existing UMO service is currently scaling quite well with over 3 million unique clients a day across 3 servers.


=== What tools/frameworks will we use? ===
The following describes the standards and tools we'll be using for the v2.0 rewrite of UMO.
This is an [[Update:Development:Tools|ongoing discussion]] that will hopefully yield the "best tools for the job".
 
=== Language ===
We are going to stick with PHP and make the new code base work with PHP 4.3.x.  We considered PHP 5.0 but felt that it did not tie in well with the existing MoFo infrastructure.  We also considered several other alternatives but in the end felt that the existing skill set and the ability to get up to speed quickly with PHP were the keys to success here.
 
=== Templating ===
We are going to use [http://smarty.php.net Smarty] for our template engine.  People considered writing our own but it was all a question of recreating what Smarty already did.
 
=== Database Abstraction ===
PEAR::DB (http://pear.php.net/package/DB ) is going to be our database abstraction layer.  We chose this because it is part of the PEAR suite and it's likeness to Perl's DBI.
 
=== Database Server ===
We are sticking with the MoFo standard here: MySQL 4.1.
 
=== Licensing ===
The original UMO uses a triple license: MPL 1.1/GPL 2.0/LGPL 2.1.  We will continue to do the same for v2.0 of UMO.


=== What about coding standards? ===
=== What about coding standards? ===
We are going to stick with the standard Mozilla coding standards where they apply and then [[Update:Development:Best Practices|develop our own]] where they do not.
We are going to stick with the standard Mozilla coding standards where they apply and then [[Update:Development:Best Practices|develop our own]] where they do not.

Revision as of 21:18, 25 April 2005

Update: Home Page » Development »

UMO v2.0 Goals

  • security
  • reliability
  • extensibility
  • reputation
  • communication

Using sound teamwork, we will develop a secure, robust, extendible application that will bolster the success of the Mozilla Foundation and the community it supports.


Team

  • bsmedberg
  • chip
  • chrisblore
  • Colin
  • justdave
  • kveton
  • luser
  • mao
  • morgamic


Tentative Timeline

  1. Planning / Requirements (April 20-30)
    1. Project Standards
    2. Database Considerations
    3. Application Structure
    4. Libraries and Tools
  2. Development (May)
    1. Admin Tools
    2. Editor/Developer Tols
    3. Addons
    4. AUS
    5. PFS
    6. Public Pages
  3. Staging (June 1-June 7)
  4. Debugging (June 1-June 14)
  5. Beta Release (June 17)


Possible Structure - Stuff to Think About

INSTALL
README
dev
    apps.php
    appadd.php
    appedit.php
    appdelete.php

    comments.php
    commentedit.php
    commentdelete.php

    items.php
    itemadd.php
    itemedit.php
    itemhistory.php

    users.php
    useradd.php
    useredit.php
    userdelete.php
inc
    init.php
    config-dist.php
    config.php
img
    <global images>
lib
    pear
    smarty
    modules
        user.inc.php
        item.inc.php
        comment.inc.php
        xpi.inc.php
        rss.inc.php
        pfs.inc.php
        vck.inc.php
pub
    rss
        index.php
    pfs
        index.php
    vck
        index.php
    commentadd.php
    history.php
    index.php
    list.php
    search.php
    view.php
sql
    umo.sql
themes
    default
        img
        css
            screen.css.php
        layout.inc.php
tmpl
    dev
        appform.tpl.php
        filter.tpl.php
        itemform.tpl.php
        list.tpl.php
        userform.tpl.php
    pub
        commentadd.tpl.php
        history.tpl.php
        list.tpl.php
        view.tpl.php
    common
        footer.tpl.php
        header.tpl.php
        navbar.tpl.php
        search.tpl.php

Expected Behavior (client-side)

Extensions

  • If a newer version is available, display update information.
  • If there is information on the current version, display information so client can update extension metadata.
  • Cases where there is no output (expected error code):
    • Bad inputs (1)
    • Failed query or no DB connection (2)
    • No results (3)
    • Client extension version is greater than anything in UMO database (4)


Project Standards

The following describes the standards and tools we'll be using for the v2.0 rewrite of UMO.

Language

We are going to stick with PHP and make the new code base work with PHP 4.3.x. We considered PHP 5.0 but felt that it did not tie in well with the existing MoFo infrastructure. We also considered several other alternatives but in the end felt that the existing skill set and the ability to get up to speed quickly with PHP were the keys to success here.

Templating

We are going to use Smarty for our template engine. People considered writing our own but it was all a question of recreating what Smarty already did.

Database Abstraction

PEAR::DB (http://pear.php.net/package/DB ) is going to be our database abstraction layer. We chose this because it is part of the PEAR suite and it's likeness to Perl's DBI.

Database Server

We are sticking with the MoFo standard here: MySQL 4.1.

Licensing

The original UMO uses a triple license: MPL 1.1/GPL 2.0/LGPL 2.1. We will continue to do the same for v2.0 of UMO.

What about coding standards?

We are going to stick with the standard Mozilla coding standards where they apply and then develop our own where they do not.