The Docutils Version Repository
- Contact:
- [email protected]
- Revision:
- 9906
- Date:
- 2024-08-15
- Copyright:
- This document has been placed in the public domain.
Docutils uses a Subversion (SVN) repository located at docutils.svn.sourceforge.net.
While Unix and Mac OS X users will probably prefer the standard Subversion command line interface, Windows user may want to try TortoiseSVN, a convenient explorer extension. The instructions apply analogously.
There is a Git mirror at http://repo.or.cz/docutils.git providing web access and the base for creating a local Git clone. [1]
For the project policy on repository use (check-in requirements, branching, etc.), please see the Docutils Project Policies.
Accessing the Repository
Web Access
The repository can be browsed and examined via the web at https://sourceforge.net/p/docutils/code.
Alternatively, use the web interface at http://repo.or.cz/docutils.git. [1]
Repository Access Methods
To get a checkout, first determine the root of the repository depending on your preferred protocol:
- anonymous access: (read only)
Subversion: https://svn.code.sf.net/p/docutils/code
Git: git://repo.or.cz/docutils.git
- developer access: (read and write)
svn+ssh://<USERNAME>@svn.code.sf.net/p/docutils/code
Checking Out the Repository
Git users can clone a mirror of the docutils repository with
git clone git://repo.or.cz/docutils.git
and proceed according to the Git documentation. Developer access (read and write) is possible with git svn.
Subversion users can use the following commands (substitute your preferred repository root for ROOT):
To check out only the current main source tree of Docutils, type
svn checkout ROOT/trunk/docutils
To check out everything (main tree, sandboxes, web site, and parallel projects), type
svn checkout ROOT/trunk docutils
This will create a working copy of the whole trunk in a new directory called docutils.
Note that you probably do not want to check out the ROOT itself (without "/trunk"), because then you'd end up fetching the whole Docutils tree for every branch and tag over and over again.
To update your working copy later on, cd into the working copy and type
svn update
Switching the Repository Root
If you changed your mind and want to use a different repository root, cd into your working copy and type:
svn switch --relocate OLDROOT NEWROOT
Editable installs
There are several ways to ensure that edits to the Docutils code are picked up by Python.
We'll assume that the Docutils "trunk" is checked out under the ~/projects/ directory.
Do an editable install with pip:
python3 -m pip install -e ~/projects/docutils/docutils
Install "manually".
Ensure that the "docutils" package is in the module search path (sys.path) by one of the following actions:
Set the PYTHONPATH environment variable.
For the bash shell, add this to your ~/.profile:
PYTHONPATH=$HOME/projects/docutils/docutils export PYTHONPATH
The first line points to the directory containing the docutils package, the second line exports the environment variable.
Create a symlink to the docutils package directory somewhere in the sys.path, e.g.,
ln -s ~/projects/docutils/docutils \ /usr/local/lib/python3.9/dist-packages/
Use a path configuration file.
Optionally, add some or all front-end tools to the binary search path, e.g.:
add the tools directory to the PATH variable:
PATH=$PATH:$HOME/projects/docutils/docutils/tools export PATH
or
link idividual front-end tools to a suitable place in the binary path:
ln -s ~/projects/docutils/docutils/tools/docutils-cli.py \ /usr/local/bin/docutils
Do a regular install. Repeat after any change.
Caution!
This method is not recommended for day-to-day development!
If you ever forget to reinstall the "docutils" package, Python won't see your latest changes. Confusion inevitably ensues.
- Tip:
A useful addition to the docutils top-level directory in SVN branches and alternate copies of the code is a set-PATHS shell script containing the following lines:
# source this file export PYTHONPATH=$PWD:$PYTHONPATH export PATH=$PWD/tools:$PATH
Open a shell for this branch, cd to the docutils top-level directory, and "source" this file. For example, using the bash shell:
$ cd some-branch/docutils $ . set-PATHS
Information for Developers
If you would like to have write access to the repository, register with SourceForge.net and send your SourceForge.net user names to [email protected]. (Note that there may be a delay of several hours until you can commit changes to the repository.)
Sourceforge SVN access is documented here
Ensure any changes comply with the Docutils Project Policies before checking in,
Setting Up Your Subversion Client For Development
Before committing changes to the repository, please ensure that the following lines are contained (and uncommented) in your local ~/.subversion/config file, so that new files are added with the correct properties set:
[miscellany] # For your convenience: global-ignores = ... *.pyc ... # For correct properties: enable-auto-props = yes [auto-props] *.py = svn:eol-style=native;svn:keywords=Author Date Id Revision *.rst = svn:eol-style=native;svn:keywords=Author Date Id Revision *.txt = svn:eol-style=native;svn:keywords=Author Date Id Revision *.html = svn:eol-style=native;svn:keywords=Author Date Id Revision *.xml = svn:eol-style=native;svn:keywords=Author Date Id Revision *.tex = svn:eol-style=native;svn:keywords=Author Date Id Revision *.css = svn:eol-style=native;svn:keywords=Author Date Id Revision *.patch = svn:eol-style=native *.sh = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id Revision *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg *.gif = svn:mime-type=image/gif
Repository Layout
The following tree shows the repository layout:
docutils/ |-- branches/ | |-- branch1/ | | |-- docutils/ | | |-- sandbox/ | | `-- web/ | `-- branch2/ | |-- docutils/ | |-- sandbox/ | `-- web/ |-- tags/ | |-- tag1/ | | |-- docutils/ | | |-- sandbox/ | | `-- web/ | `-- tag2/ | |-- docutils/ | |-- sandbox/ | `-- web/ `-- trunk/ |-- docutils/ |-- sandbox/ `-- web/
The main source tree lives at docutils/trunk/docutils/, next to the sandboxes (docutils/trunk/sandbox/) and the web site files (docutils/trunk/web/).
docutils/branches/ and docutils/tags/ contain (shallow) copies of either the whole trunk or only the main source tree (docutils/trunk/docutils).