forked from jan/debianmemberportfolio
Update meta information and documentation
This commit is contained in:
parent
c9ae85c2c1
commit
0df84e586f
10 changed files with 105 additions and 121 deletions
|
@ -1,16 +1,15 @@
|
|||
Development of Debian Member Portfolio Service
|
||||
==============================================
|
||||
|
||||
The Debian Member Portfolio Service is implemented in `Python
|
||||
<https://www.python.org>`_ using the `Pylons
|
||||
<https://pylons.readthedocs.org/en/latest/>`_ web application
|
||||
framework.
|
||||
The Debian Member Portfolio Service is implemented in `Python 3
|
||||
<https://www.python.org>`_ using the `Flask <http://flask.pocoo.org/>`_ web
|
||||
application framework.
|
||||
|
||||
The following sections describe how to setup a local development environment
|
||||
for the Debian Member Portfolio Service.
|
||||
|
||||
All instructions assume that you work on a Debian system. You should use Python
|
||||
2.7 for development.
|
||||
3 for development.
|
||||
|
||||
Setup of a local development
|
||||
----------------------------
|
||||
|
@ -22,53 +21,48 @@ To start working on the source code you need to have `git`_ installed::
|
|||
.. _git: http://www.git-scm.com/
|
||||
|
||||
The canonical git repository for the Debian Member Portfolio Service is
|
||||
available at http://debianstuff.dittberner.info/git/debianmemberportfolio.git.
|
||||
available at https://debianstuff.dittberner.info/git/debianmemberportfolio.git.
|
||||
To get a clone of the source code you change to a directory of your choice and
|
||||
invoke git clone::
|
||||
|
||||
cd ~/src
|
||||
git clone http://debianstuff.dittberner.info/git/debianmemberportfolio.git
|
||||
git clone https://debianstuff.dittberner.info/git/debianmemberportfolio.git
|
||||
|
||||
You should use `virtualenv`_ to separate the development environment from your
|
||||
You should use `venv`_ to separate the development environment from your
|
||||
system wide Python installation. You can install virtualenv using::
|
||||
|
||||
sudo aptitude install python-virtualenv
|
||||
sudo aptitude install python3-venv
|
||||
|
||||
.. _virtualenv: https://pypi.python.org/pypi/virtualenv
|
||||
.. _venv: https://docs.python.org/3/library/venv.html
|
||||
|
||||
When you have :command:`virtualenv` installed you should create a virtual
|
||||
When you have :command:`pyvenv` installed you should create a virtual
|
||||
environment for Debian Member Portfolio Service development and install the
|
||||
requirements using `pip <https://pypi.python.org/pypi/pip>`_::
|
||||
|
||||
mkdir ~/.virtualenvs
|
||||
virtualenv --distribute ~/.virtualenvs/dmportfolio
|
||||
pyvenv ~/.virtualenvs/dmportfolio
|
||||
. ~/.virtualenvs/dmportfolio/bin/activate
|
||||
cd ~/src/debianmemberportfolio
|
||||
pip install -r jessiereq.pip
|
||||
pip install -r stretchreq.pip
|
||||
|
||||
.. note::
|
||||
|
||||
The Debian Member Portfolio Service instance at http://portfolio.debian.net/
|
||||
is running on a Debian Jessie server, therefore :file:`jessiereq.pip`
|
||||
is running on a Debian Stretch server, therefore :file:`stretchreq.pip`
|
||||
contains dependency versions matching that Debian release.
|
||||
|
||||
The dependency download and installation into the virtual environment takes
|
||||
some time.
|
||||
|
||||
After you have your virtual environment ready you need to setup the project for
|
||||
development::
|
||||
|
||||
python setup.py develop
|
||||
|
||||
Debian Member Portfolio Service needs the JQuery JavaScript library to function
|
||||
properly. The JQuery library is not included in the git clone and must be
|
||||
copied into the subdirectory
|
||||
:file:`debianmemberportfolio/public/javascript/jquery`. On Debian systems you
|
||||
:file:`debianmemberportfolio/static/javascript/jquery`. On Debian systems you
|
||||
can install the package libjs-jquery and place a symlink to the directory
|
||||
:file:`/usr/share/javascript` into :file:`debianmemberportfolio/public`: ::
|
||||
:file:`/usr/share/javascript` into :file:`debianmemberportfolio/static`: ::
|
||||
|
||||
sudo aptitude install libjs-jquery
|
||||
ln -s /usr/share/javascript debianmemberportfolio/public
|
||||
ln -s /usr/share/javascript debianmemberportfolio/static
|
||||
|
||||
Prepare for first startup
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -93,21 +87,19 @@ When you have both installed you can run::
|
|||
The first synchronizes the keyrings in :file:`$HOME/debian/keyring.debian.org`
|
||||
with files on the `keyring.debian.org <http://keyring.debian.org>`_ host. And
|
||||
the second generates a key/value database in
|
||||
:file:`debianmemberportfolio/model/keyringcache` that is used by the code.
|
||||
:file:`debianmemberportfolio/model/keyringcache.db` that is used by the code.
|
||||
|
||||
Run a development server
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Pylons uses PasteScript to run a development server. You can run a development
|
||||
server using::
|
||||
You can run a development server using::
|
||||
|
||||
paster serve --reload development.ini
|
||||
python3 run.py
|
||||
|
||||
The output of this command should look like the following::
|
||||
|
||||
Starting subprocess with file monitor
|
||||
Starting server in PID 31377.
|
||||
serving on http://127.0.0.1:5000
|
||||
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
|
||||
* Restarting with stat
|
||||
|
||||
You can now access your development server at the URL that is printed by the command.
|
||||
|
||||
|
@ -122,21 +114,17 @@ Add new URL
|
|||
Debian Member Portfolio Service uses a ini style configuration file
|
||||
:file:`debianmemberportfolio/model/portfolio.ini` to configure the generated URL
|
||||
patterns. The actual URL generation is done in
|
||||
:py:class:`~debianmemberportfolio.controllers.portfolio.DdportfolioController`
|
||||
in the
|
||||
:py:meth:`~debianmemberportfolio.controllers.portfolio.DdportfolioController.urllist`
|
||||
method.
|
||||
:py:func:`~debianmemberportfolio.views.urllist`.
|
||||
|
||||
If you want to add a new URL type you have to add a line in
|
||||
:file:`portfolio.ini` and an entry in
|
||||
:py:class:`~debianmemberportfolio.controllers.portfolio.DdportfolioController`'s
|
||||
:py:attr:`~debianmemberportfolio.controllers.portfolio.DdportfolioController._LABELS`
|
||||
dictionary. The top level dictionary keys correspond to sections in the ini
|
||||
file. The dictionary values are dictionaries themselves that contain a special
|
||||
key ``label`` that defines the label of the section in the output and keys for
|
||||
each entry to be rendered in that section. The values in these sub-dictionaries
|
||||
are strings marked for translation using the :py:func:`~pylons.i18n._` function from
|
||||
:py:mod:`pylons.i18n`.
|
||||
:file:`portfolio.ini` and an entry in :py:mod:`~debianmemberportfolio.views`'s
|
||||
:py:attr:`~debianmemberportfolio.views._LABELS` dictionary. The top level
|
||||
dictionary keys correspond to sections in the ini file. The dictionary values
|
||||
are dictionaries themselves that contain a special key ``label`` that defines
|
||||
the label of the section in the output and keys for each entry to be rendered
|
||||
in that section. The values in these sub-dictionaries are strings marked for
|
||||
translation using the :py:func:`~flask.ext.babel.lazy_gettext` function from
|
||||
:py:mod:`flask.ext.babel`.
|
||||
|
||||
The patterns in :file:`portfolio.ini` can contain the following placeholders
|
||||
that are filled at runtime:
|
||||
|
@ -148,7 +136,7 @@ Placeholder Replacement
|
|||
%(email)s email address (URL encoded)
|
||||
%(emailnoq)s email address
|
||||
%(firstchar)s first character of the email address
|
||||
%(forumsid)d forum user id
|
||||
%(forumsid)s forum user id
|
||||
%(gpgfp)s GNUPG/PGP key fingerprint
|
||||
%(name)s full name (i.e. John Smith)
|
||||
%(username)s Debian user name
|
||||
|
@ -158,10 +146,9 @@ Placeholder Replacement
|
|||
.. _alioth.debian.org: https://alioth.debian.org/
|
||||
|
||||
The replacement of placeholders is performed in the
|
||||
:py:meth:`~debianmemberportfolio.controllers.portfolio.DdportfolioController.urllist`
|
||||
method. And uses data from the Debian keyring. Access to the pre-parsed keyring
|
||||
data is performed using the
|
||||
:py:func:`~debianmemberportfolio.model.dddatabuilder.build_data` function of
|
||||
the module :py:mod:`debianmemberportfolio.model.dddatabuilder`, which uses
|
||||
:py:func:`~debianmemberportfolio.views.urllist` function. And uses data from
|
||||
the Debian keyring. Access to the pre-parsed keyring data is performed using
|
||||
the :py:func:`~debianmemberportfolio.model.dddatabuilder.build_data` function
|
||||
of the module :py:mod:`debianmemberportfolio.model.dddatabuilder`, which uses
|
||||
several helper functions from :py:mod:`debianmemberportfolio.model.keyfinder`
|
||||
to access the key information.
|
||||
|
|
|
@ -4,58 +4,16 @@ Source documentation
|
|||
The sections below contain mostly autogenerated documentation of the source
|
||||
code of the Debian Member Portfolio Service.
|
||||
|
||||
Controllers
|
||||
-----------
|
||||
Forms
|
||||
-----
|
||||
|
||||
.. automodule:: debianmemberportfolio.controllers
|
||||
.. automodule:: debianmemberportfolio.forms
|
||||
:members:
|
||||
|
||||
portfolio controller
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
Views
|
||||
-----
|
||||
|
||||
.. automodule:: debianmemberportfolio.controllers.portfolio
|
||||
:members:
|
||||
|
||||
error controller
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.controllers.error
|
||||
:members:
|
||||
|
||||
showformscripts controller
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.controllers.showformscripts
|
||||
:members:
|
||||
|
||||
template controller
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.controllers.template
|
||||
:members:
|
||||
|
||||
Library code
|
||||
------------
|
||||
|
||||
.. automodule:: debianmemberportfolio.lib
|
||||
:members:
|
||||
|
||||
app_globals
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.lib.app_globals
|
||||
:members:
|
||||
|
||||
base
|
||||
~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.lib.base
|
||||
:members:
|
||||
|
||||
helpers
|
||||
~~~~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.lib.helpers
|
||||
.. automodule:: debianmemberportfolio.views
|
||||
:members:
|
||||
|
||||
Model
|
||||
|
@ -70,12 +28,6 @@ dddatabuilder
|
|||
.. automodule:: debianmemberportfolio.model.dddatabuilder
|
||||
:members:
|
||||
|
||||
form
|
||||
~~~~
|
||||
|
||||
.. automodule:: debianmemberportfolio.model.form
|
||||
:members:
|
||||
|
||||
keyfinder
|
||||
~~~~~~~~~
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue