annotate README @ 151:c7be7def8b57

Bundles! (basic functionality) Changes made in this commit: * Added new dependencies (see pip-requirements) * Added new dependency and setup information to README * Deleted the included mptt app (in apps/mptt) in favour of just adding the dependency to pip-requirements (makes it easier to update, etc) * Changed the import convention to use `from apps.bundle.models import Bundle` rather than `from agora.apps.bundle.models import Bundle` because Celery was having problems with the latter style. Everything should still work. * Moved the syntax-highlighting and related code for snippets into separate HTML files so that they can be used by the bundle app And, of course, the ability to upload bundles. But wait! There's more! Changes still to come, for only $19.95 a month: * Bundle versioning * Automatic license integration (i.e. adding headers to files) * The ability to download bundles (zip, tar, etc) * Rating bundles * And much, much more! Batteries not included.
author dellsystem <ilostwaldo@gmail.com>
date Mon, 15 Oct 2012 00:52:00 -0400
parents 9d6b313af86f
children 6b08da550214
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
1 Agora Octave is (or will be) a Django-based website for rapid
28
9f17312f3914 Fix a few silly typos
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
2 collaboration related to GNU Octave. It is released under the terms of
9f17312f3914 Fix a few silly typos
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
3 the Affero General Public License version 3 as published by the Free
43
44b9f749cdb0 Add license information
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 34
diff changeset
4 Software Foundation, or at your option, any later version. Agora also
44b9f749cdb0 Add license information
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 34
diff changeset
5 includes other software under a different BSD-like license. For
44b9f749cdb0 Add license information
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 34
diff changeset
6 details consult LICENSE.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
7
151
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
8 See the pip-requirements file for a list of required external libraries.
33
28a512881850 Several fixes. See detailed commit message.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 28
diff changeset
9
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
10 Quickstart for personal debugging:
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
11
151
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
12 1) Install Python 2.5 or higher, the external libraries, and probably any
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
13 version of mercurial, SQLite3. On a Unix-based system, Python is probably
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
14 already installed, the rest can be gotten from source or your operating
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
15 system's package manager if it has one. If you have pip (the Python package
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
16 manager) installed, you can quickly install all the dependencies at
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
17 particular versions by running
77
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
18
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
19 $ pip install -r pip-requirements
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
20
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
21 It is recommended that you do this within a virtualenv to avoid
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
22 conflicts with system-wide packages. More information about
d4e5ef15326a Added django-openid-auth as a dependency
dellsystem <ilostwaldo@gmail.com>
parents: 68
diff changeset
23 virtualenv is available at www.virtualenv.org.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
24
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
25 2) Clone this repository
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
26
34
22d514498935 Move the configurable parts of settings.py into a conf file
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 33
diff changeset
27 3) In the cloned repository, copy "agora-example.conf" to
22d514498935 Move the configurable parts of settings.py into a conf file
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 33
diff changeset
28 "agora.conf" (advanced users: modify this to suit your needs).
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
29
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
30 4) Now run
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
31
28
9f17312f3914 Fix a few silly typos
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
32 $ python manage.py syncdb #Will create an empty database
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
33 #(by default: sqlite3)
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
34
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
35 $ python manage.py runserver #Run a development webserver on port 8000
151
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
36 $ python manage.py celeryd --settings=settings # Start the celery
c7be7def8b57 Bundles! (basic functionality)
dellsystem <ilostwaldo@gmail.com>
parents: 103
diff changeset
37 # session (mandatory)
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
38
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
39 5) Point a browser to http://localhost:8000
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
40
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
41 6) Submit patches. ;-)
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
42
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
43 Here's our TODO. At the moment, almost none of this is done. "I" in
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
44 the text below indicates "Jordi".
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
45
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
46 -- Users can upload bundles of code.
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
47
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
48 -- Bundles clearly indicate which free license they are using. I'm
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
49 thinking that it's reasonable to restrict allowable licenses to
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
50 GPL-compatibility. This is not a stringent requirement, and it
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
51 would simplify distribution with Octave. For the moment I'm
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
52 considering that this might be relaxed and any license approved
56
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
53 by the OSI or FSF should be ok. **DONE** The basic framework for
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
54 licenses is in place, but bundles aren't done yet.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
55
56
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
56 -- Additionally, there's a place to post quick snippets. They'll be
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
57 under a default free license that the user indicates in their
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
58 preferences. Usually only single bits of code go in there.
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
59 Responding with more snippets will be facilitated. **DONE**
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
60 Except for the license part. I'm changing my mind about this,
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
61 perhaps it's too pedantic to demand clear licenses on code
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
62 snippets.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
63
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
64 -- I'm thinking that optionally, I can setup bundles to also
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
65 create an hg repo if the uploader requests it, or existing hg
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
66 repos can be imported.
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
67
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
68 -- When viewing a user's bundle, the bundle as a whole can be
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
69 ranked and commented upon by logged in users. The contents of
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
70 the bundle can also be browsed from the web without needing to
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
71 download the whole bundle.
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
72
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
73 -- Logging in is required only to contribute to the site with
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
74 code, comments, ranking code. Everything else is public to
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
75 anyone.
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
76
56
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
77 -- Users are encouraged but not required to provide real
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
78 names. **DONE** registration and profiles now do this.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
79
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
80 -- Bundles that are somehow deemed to be of high quality can
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
81 easily be pushed to Octave-forge (i.e. they've been "forged",
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
82 tempered, tested and tried).
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
83
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
84 -- A user's landing page will indicate which bundles and snippets
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
85 this user has uploaded as well as whatever personal information
56
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
86 the user would like to provide. **DONE** Except that bundles
9659998da890 Update TODO in README with the work that's been done
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 51
diff changeset
87 aren't implemented yet.
19
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
88
41d05dcaf93a Add a README
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
89 This README itself also admits patches.