Developer Guide

This page is for people who wish to contribute code to this project.

Developer Setup

Check out the source from head, switch to the source code’s root directory, then run:
python setup.py develop

That will set up this project’s src directory in the easy-install.pth file in site-packages.

Release Process

Checklist:
  1. All newly-added code has a unit test

  2. All tests pass cleanly (or have good reasons for not passing)

  3. Change setup.cfg to have the appropriate tag (‘dev’, for example, or ‘’ for a stable release)

  4. Change setup.py to have the appropriate version number

  5. Inline comments updated with changes

  6. Sphinx doc updated with changes

  7. Docs build cleanly
    cd src/doc/src/
    make html
    
  8. pep8 runs without much complaint
    pep8 --ignore=E501,W601 --repeat model.py
    
  9. pylint runs without much complaint
    pylint --disable=C0103,R0904,R0913,C0301,W0511 cmislibtest.py
    
  10. All changes checked in

  11. Tag the release using ‘cmislib-[release num]-RC[x]’

  12. Use the release script to build the release artifacts
    cd dist
    ./release.sh -u jpotts@apache.org
    

    This will do a ‘setup.py bdist sdist’ and will then sign all artifacts.

    Note that the artifacts will be named without ‘RC[x]’. These are the same artifacts that will be distributed if the vote passes.

  13. Copy files to the Apache server under ~/public_html/chemistry/cmislib/[release num]

  14. Start vote. Send an email to dev@chemistry.apache.org announcing the vote, highlighting the changes, pointing to the tagged source, and referencing the artifacts that have been copied to the Apache server.

  15. After 72 hours, if the vote passes, continue, otherwise address issues and start over

  16. Copy the files to the appropriate Apache dist directory, which is /www/www.apache.org/dist/chemistry/cmislib/[release num]

  17. Rename the RC tag in source code control

  18. Update the cmislib home page with download links to the new release

  19. Upload files to Pypi

  20. Check the cheesecake score
    python cheesecake_index --name=cmislib