~osomon/pyexiv2/pyexiv2-0.3

« back to all changes in this revision

Viewing changes to doc/developers.rst

  • Committer: Olivier Tilloy
  • Date: 2010-02-16 16:10:07 UTC
  • mfrom: (268.1.24 sphinx-doc)
  • Revision ID: olivier@tilloy.net-20100216161007-oooq6mwmsu1subsw
Complete documentation generated with sphinx.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Developers
 
2
==========
 
3
 
 
4
If you are a developer and use pyexiv2 in your project, you will find here
 
5
useful information.
 
6
 
 
7
Getting the code
 
8
################
 
9
 
 
10
pyexiv2's source code is versioned with
 
11
`bazaar <http://bazaar.canonical.com/>`_, and all the branches, including the
 
12
main development focus (sometimes referred to as *trunk*), are hosted on
 
13
`Launchpad <https://code.launchpad.net/pyexiv2>`_.
 
14
 
 
15
To get a working copy of the latest revision of the development branch, just
 
16
issue the following command in a terminal::
 
17
 
 
18
  bzr branch lp:pyexiv2
 
19
 
 
20
If you need to get a specific revision identified by a tag (all releases of
 
21
pyexiv2 are tagged), use the following command::
 
22
 
 
23
  bzr branch -r tag:tag_name lp:pyexiv2
 
24
 
 
25
A list of all the available tags can be obtained using the ``bzr tags``
 
26
command::
 
27
 
 
28
  osomon@granuja:~/dev/pyexiv2$ bzr tags
 
29
  release-0.1          60
 
30
  release-0.1.1        73
 
31
  release-0.1.2        99
 
32
  release-0.1.3        99.1.6
 
33
 
 
34
Dependencies
 
35
############
 
36
 
 
37
You will need the following dependencies installed on your system to build and
 
38
use pyexiv2:
 
39
 
 
40
* `Python <http://python.org/download/>`_ ≥ 2.5
 
41
* `boost.python <http://www.boost.org/libs/python/doc/>`_ ≥ 1.35
 
42
* `libexiv2 <http://exiv2.org/>`_ ≥ 0.19
 
43
* `SCons <http://scons.org/>`_
 
44
 
 
45
For Python, boost.python and libexiv2, the development files are needed
 
46
(-dev packages).
 
47
A typical list of packages to install on a Debian/Ubuntu system is::
 
48
 
 
49
  python-all-dev libboost-python-dev libexiv2-dev scons
 
50
 
 
51
Building and installing
 
52
#######################
 
53
 
 
54
Building pyexiv2 is as simple as invoking ``scons`` in the top-level directory::
 
55
 
 
56
  osomon@granuja:~/dev/pyexiv2$ scons
 
57
  scons: Reading SConscript files ...
 
58
  scons: done reading SConscript files.
 
59
  scons: Building targets ...
 
60
  g++ -o build/exiv2wrapper.os -c -fPIC -I/usr/include/python2.6 src/exiv2wrapper.cpp
 
61
  g++ -o build/exiv2wrapper_python.os -c -fPIC -I/usr/include/python2.6 src/exiv2wrapper_python.cpp
 
62
  g++ -o build/libexiv2python.so -shared build/exiv2wrapper.os build/exiv2wrapper_python.os -lboost_python -lexiv2
 
63
  scons: done building targets.
 
64
 
 
65
The result of the build process is a shared library, ``libexiv2python.so``, in
 
66
the build directory::
 
67
 
 
68
  osomon@granuja:~/dev/pyexiv2$ ls build/
 
69
  exiv2wrapper.os  exiv2wrapper_python.os  libexiv2python.so
 
70
 
 
71
To install pyexiv2, just invoke ``scons install``. You will most likely need
 
72
administrative privileges to proceed.
 
73
 
 
74
Documentation
 
75
#############
 
76
 
 
77
The present documentation is generated using
 
78
`Sphinx <http://sphinx.pocoo.org/>`_ from reStructuredText sources found in the
 
79
doc/ directory. Invoke ``scons doc`` to (re)build the HTML documentation.
 
80
Alternatively, you can issue the following command::
 
81
 
 
82
  sphinx-build -b html doc/ doc/_build/
 
83
 
 
84
The index of the documentation will then be found under doc/_build/index.html.
 
85
Note that you will need pyexiv2 to be installed system-wide or to be found on
 
86
the ``PYTHONPATH`` for the documentation to build successfully.
 
87
 
 
88
Unit tests
 
89
##########
 
90
 
 
91
pyexiv2's source comes with a battery of unit tests, in the test/ directory.
 
92
To run them, ``cd`` to this directory and execute the ``TestsRunner.py``
 
93
script, making sure that pyexiv2 is installed system-wide or can be found on
 
94
the ``PYTHONPATH``.
 
95
 
 
96
Contributing
 
97
############
 
98
 
 
99
pyexiv2 is Free Software, meaning that you are encouraged to use it, modify it
 
100
to suit your needs, contribute back improvements, and redistribute it.
 
101
 
 
102
`Bugs <https://bugs.launchpad.net/pyexiv2>`_ are tracked on Launchpad.
 
103
There is a team called
 
104
`pyexiv2-developers <https://launchpad.net/~pyexiv2-developers>`_ open to anyone
 
105
interested in following development on pyexiv2. Don't hesitate to subscribe to
 
106
the team (you don't need to actually contribute!) and to the associated mailing
 
107
list.
 
108
 
 
109
There are several ways in which you can contribute to improve pyexiv2:
 
110
 
 
111
* Use it;
 
112
* Give your feedback and discuss issues and feature requests on the
 
113
  mailing list;
 
114
* Report bugs, write patches;
 
115
* Package it for your favorite distribution/OS.
 
116
 
 
117
When reporting a bug, don't forget to include the following information in the
 
118
report:
 
119
 
 
120
* version of pyexiv2
 
121
* version of libexiv2 it was compiled against
 
122
* a minimal script that reliably reproduces the issue
 
123
* a sample image file with which the bug can reliably be reproduced
 
124