Contribute code

From Archivematica
Revision as of 16:32, 23 September 2013 by Hbecker (talk | contribs) (→‎Code Style Guide For Archivematica: pothole case instead of camel, updating import guidelines)
Jump to navigation Jump to search

Main Page > Development > Contribute code


Patches

If you find a bug in this project or would like to make an enhancement, please be encouraged to contribute a patch by following these instructions.

Commit access

Anyone can contribute code patches to this project. Project collaborators and regular patch contributors will be given access to commit directly to the git code repository.

Contributor's Agreement

In order to accept any patches or code commits, contributors must first sign the Archivematica Contributor's Agreement.

Standards

Code Style Guide For Archivematica

This coding convention is adopted from:
http://www.python.org/dev/peps/pep-0008/
authors: Guido van Rossum <guido at python.org>, Barry Warsaw <barry at python.org>

  • Tabs are forbidden.
  • 4 spaces per indent.
  • pothole_case all variables, except for class names which are CamelCase (See PEP8 for details/clarifications)
  • Max 79 characters per line.
  • Import grouped according to where they come from and sorted alphabetically, by import source
# Example:
# stdlib, alphabetical by import source
import logging
import os
import stat

# Core Django, alphabetical by import source
from django.core import validators
from django.core.exceptions import ValidationError
from django.db import models

# Third party dependencies, alphabetical by import source
from django_extensions.db.fields import SomeField, UUIDField

# This project, alphabetical by import source
import common.utils as utils
  • All imports from archivematicaCommon should be below adding that to the sys.path (though we shouldn't have to do that)

File Structure

The file structure in Archivematica will comply with the Filesystem Hierarchy Standard (FHS).
More information on this standard is available at:
http://www.pathname.com/fhs/