.. 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 `_ score .. code-block:: bash python cheesecake_index --name=cmislib