blob: b959e7f09eaf8bda7b23b29915469ca424c78f5b [file] [log] [blame]
..
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
===============
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:
#. All newly-added code has a unit test
#. All tests pass cleanly (or have good reasons for not passing)
#. Change setup.cfg to have the appropriate tag ('dev', for example, or '' for a stable release)
#. Change setup.py to have the appropriate version number
#. Inline comments updated with changes
#. Sphinx doc updated with changes
#. Docs build cleanly
.. code-block:: bash
cd src/doc/src/
make html
#. pep8 runs without much complaint
.. code-block:: bash
pep8 --ignore=E501,W601 --repeat model.py
#. pylint runs without much complaint
.. code-block:: bash
pylint --disable=C0103,R0904,R0913,C0301,W0511 cmislibtest.py
#. All changes checked in
#. Tag the release using 'cmislib-[release num]-RC[x]'
#. Use the release script to build the release artifacts
.. code-block:: bash
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.
#. Copy files to the Apache server under ~/public_html/chemistry/cmislib/[release num]
#. 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.
#. After 72 hours, if the vote passes, continue, otherwise address issues and start over
#. Copy the files to the appropriate Apache dist directory, which is /www/www.apache.org/dist/chemistry/cmislib/[release num]
#. Rename the RC tag in source code control
#. Update the cmislib home page with download links to the new release
#. Upload files to Pypi
#. Check the `cheesecake <http://pycheesecake.org/>`_ score
.. code-block:: bash
python cheesecake_index --name=cmislib