|
a/Allura/docs/platform.rst |
|
b/Allura/docs/platform.rst |
|
... |
|
... |
11 |
---------------------------------------------------------------------
|
11 |
---------------------------------------------------------------------
|
12 |
|
12 |
|
13 |
Before we get into the details of how to extend the Allura platform, perhaps
|
13 |
Before we get into the details of how to extend the Allura platform, perhaps
|
14 |
it would be smart to explain some of the big pieces and why there are there.
|
14 |
it would be smart to explain some of the big pieces and why there are there.
|
15 |
|
15 |
|
16 |
We wanted PyForge tools to be fast, we needed them to scale, and we had some
|
16 |
We wanted Allura tools to be fast, we needed them to scale, and we had some
|
17 |
complex requirements for data storage and extensibility. So, we needed a
|
17 |
complex requirements for data storage and extensibility. So, we needed a
|
18 |
**fast,** flexible, and easy to use data persistence system.
|
18 |
**fast,** flexible, and easy to use data persistence system.
|
19 |
|
19 |
|
20 |
We were very impressed by the general message architecture of Roundup, but we
|
20 |
We were very impressed by the general message architecture of Roundup, but we
|
21 |
wanted to extend it from just email messages to include scm commits, and we
|
21 |
wanted to extend it from just email messages to include scm commits, and we
|
|
... |
|
... |
37 |
platform level data.
|
37 |
platform level data.
|
38 |
|
38 |
|
39 |
In spite of the power and flexibility of the Roundup HyperTable
|
39 |
In spite of the power and flexibility of the Roundup HyperTable
|
40 |
implementation, we had some concerns about performance and scalability.
|
40 |
implementation, we had some concerns about performance and scalability.
|
41 |
|
41 |
|
42 |
Fortunately several of the PyForge authors (including me) used MongoDB
|
42 |
Fortunately several of the Allura authors (including me) used MongoDB
|
43 |
in rewriting the download flow of SourceForge.net, and knew that it could
|
43 |
in rewriting the download flow of SourceForge.net, and knew that it could
|
44 |
handle huge loads (we saturated a 2gb network connection on the server
|
44 |
handle huge loads (we saturated a 2gb network connection on the server
|
45 |
with 6% cpu utilization).
|
45 |
with 6% cpu utilization).
|
46 |
|
46 |
|
47 |
We also knew that MongoDB's flexible replication system would allow us
|
47 |
We also knew that MongoDB's flexible replication system would allow us
|
|
... |
|
... |
76 |
set of hooks -- **reactors** -- that are not allowed to change the
|
76 |
set of hooks -- **reactors** -- that are not allowed to change the
|
77 |
message, but can do things like send e-mail or push a new kind of event
|
77 |
message, but can do things like send e-mail or push a new kind of event
|
78 |
onto another queue.
|
78 |
onto another queue.
|
79 |
|
79 |
|
80 |
Nearly everything in Roundup is implemented as either an auditor or a reactor,
|
80 |
Nearly everything in Roundup is implemented as either an auditor or a reactor,
|
81 |
and PyForge definitely steals that idea and runs with it.
|
81 |
and Allura definitely steals that idea and runs with it.
|
82 |
|
82 |
|
83 |
TODO: Finish reactor overview (after reactor code is written).
|
83 |
TODO: Finish reactor overview (after reactor code is written).
|
84 |
|
84 |
|
85 |
|
85 |
|
86 |
Application Tools
|
86 |
Application Tools
|
|
... |
|
... |
92 |
|
92 |
|
93 |
.. image:: _static/images/tools.png
|
93 |
.. image:: _static/images/tools.png
|
94 |
:alt: App Tools
|
94 |
:alt: App Tools
|
95 |
:align: right
|
95 |
:align: right
|
96 |
|
96 |
|
97 |
When you write PyForge tools, you'll get lots of stuff for free:
|
97 |
When you write Allura tools, you'll get lots of stuff for free:
|
98 |
|
98 |
|
99 |
* Search-ability of your Artifacts
|
99 |
* Search-ability of your Artifacts
|
100 |
* Artifact versioning for accountability and transparency
|
100 |
* Artifact versioning for accountability and transparency
|
101 |
* Ability to extend existing Artifacts
|
101 |
* Ability to extend existing Artifacts
|
102 |
* Reuse central User/group/permission management
|
102 |
* Reuse central User/group/permission management
|