pycsw | Home | Demos | Docs | Issue Tracker | FAQ | Download

### Navigation

- next
- previous |
- Documentation »

# Development

## Code Overview

- the pycsw wiki documents an overview of the codebase

## Subversion

- pycsw source code and documentation are managed using Subversion. lxml, Shapely, pyproj and sqlalchemy are required for pycsw to be functional
- documentation is managed in `docs/`, in reStructuredText format. Sphinx is used to generate the docs

## Submitting Patches

- where possible, submit patches as part of a trac ticket (see Support)

## Subversion Commit Access

- proposals to provide developers with SVN commit access should be emailed to the pycsw-devel mailing list (see Mailing Lists). Proposals shall be approved by the pycsw development team. Committers shall be added by the project admin
- removal of commit access shall be handled in the same manner
- each committer shall be listed in https://pycsw.svn.sourceforge.net/svnroot/pycsw/trunk/COMMITTERS.txt by the project admin

## Subversion Commit Guidelines

- enhancements and defect commits shall be identified with a trac ticket
- non-trivial SVN commits must be associated with a trac ticket. As documentation can always be improved, tickets need not be opened for improving the docs
- SVN commits must include a description of changes
- SVN commits must include the trac ticket number (i.e. `#1234`) in the SVN commit log message
- trac ticket updates shall include SVN changeset numbers (i.e. `r1234`)
- all enhancements or defects to the codebase must successfully pass all OGC CITE tests before they are committed
- enhancements which can be demonstrated from the pycsw Tester should be accompanied by example CSW request XML

## Coding Guidelines

- always code with PEP 8 conventions
- always run source code through pylint, using all pylint defaults except for `C0111`. `sbin/pylint-pycsw.sh` is included for convenience
- for exceptions which make their way to OGC `ExceptionReport` XML, always specify the appropriate `locator` and `code` parameters

### Navigation

- next
- previous |
- Documentation »