view README @ 103:9d6b313af86f

Upgrade Django version requirement to 1.3 There are some useful shortcut functions (like render) that were added in 1.3, as well as some other additions/changes made in that version that will be helpful down the line.
author dellsystem <ilostwaldo@gmail.com>
date Fri, 31 Aug 2012 03:10:56 -0400
parents d4e5ef15326a
children c7be7def8b57
line wrap: on
line source

Agora Octave is (or will be) a Django-based website for rapid
collaboration related to GNU Octave. It is released under the terms of
the Affero General Public License version 3 as published by the Free
Software Foundation, or at your option, any later version. Agora also
includes other software under a different BSD-like license. For
details consult LICENSE.

Required external libraries:

    - Django registration      
      (http://bitbucket.org/ubernostrum/django-registration/)
    - Pygments
      (http://pygments.org/)
    - Django OpenID Auth
      (http://pypi.python.org/pypi/django-openid-auth/)
    - Threaded Comments
      (https://github.com/HonzaKral/django-threadedcomments)

Quickstart for personal debugging:

    1) Install Django 1.3 or higher, Python 2.5 or higher, the
       external libraries, and probably any version of mercurial,
       SQLite3. On a Unix-based system, Python is probably already
       installed, the rest can be gotten from source or your operating
       system's package manager if it has one. If you have pip (the Python
       package manager) installed, you can quickly install all the
       dependencies at particular versions by running

         $ pip install -r pip-requirements

       It is recommended that you do this within a virtualenv to avoid
       conflicts with system-wide packages. More information about
       virtualenv is available at www.virtualenv.org.

    2) Clone this repository

    3) In the cloned repository, copy "agora-example.conf" to
       "agora.conf" (advanced users: modify this to suit your needs).

    4) Now run

         $ python manage.py syncdb    #Will create an empty database
                                      #(by default: sqlite3)

         $ python manage.py runserver #Run a development webserver on port 8000

    5) Point a browser to http://localhost:8000

    6) Submit patches. ;-)

Here's our TODO. At the moment, almost none of this is done. "I" in
the text below indicates "Jordi".

   -- Users can upload bundles of code.

   -- Bundles clearly indicate which free license they are using. I'm
      thinking that it's reasonable to restrict allowable licenses to
      GPL-compatibility. This is not a stringent requirement, and it
      would simplify distribution with Octave. For the moment I'm
      considering that this might be relaxed and any license approved
      by the OSI or FSF should be ok. **DONE** The basic framework for
      licenses is in place, but bundles aren't done yet.

   -- Additionally, there's a place to post quick snippets. They'll be
      under a default free license that the user indicates in their
      preferences. Usually only single bits of code go in there.
      Responding with more snippets will be facilitated. **DONE**
      Except for the license part. I'm changing my mind about this,
      perhaps it's too pedantic to demand clear licenses on code
      snippets. 

   -- I'm thinking that optionally, I can setup bundles to also
      create an hg repo if the uploader requests it, or existing hg
      repos can be imported.

   -- When viewing a user's bundle, the bundle as a whole can be
      ranked and commented upon by logged in users. The contents of
      the bundle can also be browsed from the web without needing to
      download the whole bundle.

   -- Logging in is required only to contribute to the site with
      code, comments, ranking code. Everything else is public to
      anyone.

   -- Users are encouraged but not required to provide real
      names. **DONE** registration and profiles now do this.

   -- Bundles that are somehow deemed to be of high quality can
      easily be pushed to Octave-forge (i.e. they've been "forged",
      tempered, tested and tried).

   -- A user's landing page will indicate which bundles and snippets
      this user has uploaded as well as whatever personal information
      the user would like to provide. **DONE** Except that bundles
      aren't implemented yet.

This README itself also admits patches.