-
Notifications
You must be signed in to change notification settings - Fork 10
PackageChecklist
See the trunk directory https://github.com/diffpy/diffpy.srreal for reference examples (so far a work in progress)
- all Python sources start with a hash-bang line '#!/usr/bin/env python'
- executable bit is set only for source files that are intended to be run as a script
- Remove all
__id__ = "$Id$"lines. We do not use subversion keyword expansion anymore. - No trailing spaces, no Windows CRLF line ends, no TAB characters at all.
- The package contains doc/manual directory with sphinx documentation project set up as for diffpy.srreal.
-
make htmlcompiles with no warnings andmake publishdoes push to thegh-pagesbranch. - For package diffpy.SomeThing the URL
http://diffpy.github.io/doc/SomeThingredirects tohttp://diffpy.github.io/diffpy.SomeThing, i.e., the published gh-pages branch from the main GitHub repository.
File has .rst extension and is written in reStructuredText (rst) format. For a primer on rst syntax see http://sphinx-doc.org/rest.html or look at the README.rst file in the pyobjcryst package.
First line is the package full name with a few-word description.
This is followed by a paragraph with more detailed description of package functionality and with a URL of the user manual at http://www.diffpy.org/doc/SomeThing/ http://diffpy.github.io/diffpy.SomeThing.
REQUIREMENTS section lists the dependencies needed to install the package, the sudo apt-get install command for Linux and port install command for MacPorts.
INSTALLATION section gives installation command-lines for python setup.py install and easy_install diffpy.FixMe.
DEVELOPMENT CONTRIBUTION section should give the project GitHub URL, show how to install the package in a developer mode, encourage contributors to fork it and send us pull requests.
CONTACTS section gives package GitHub URL, the main project URL at www.diffpy.org and Simon as the main contact person.
The file lists package authors one per line ordered by their contributions. Simon is included in the list.
License text is the approved BNL license. If not available, create an issue in the package GitHub repository.
-
File docstring gives full Python name of the package, brief description of its functionality, and lists executable scripts that get installed if any.
-
versionis extracted from git data,python setup.py egg_infoupdates diffpy/FixMe/version.cfg and sets it to right values. -
install_requiresincludes any necessary diffpy dependencies or lightweight packages from PyPI. It must NOT include any dependencies that are in the system package manager; those belong to the REQUIREMENTS section of README.txt. -
dependency_links is set to ['http://www.diffpy.org/packages/']
dependency_linksentry is removed or set to[]. -
urlpoints to the package GitHub page -
author and author_email are set as:
author = "Simon J.L. Billinge group", author_email = "[email protected]",
-
maintainterandmaintainer_emailare set to the current package maintainer -
licenseis set to "BSD, see LICENSE.txt" -
keywordsare set and meaningful -
include_package_data = True- this will include any data files that are under the diffpy directory (e.g., .../version.cfg, .../tests/testdata).
If package needs any other data files, list them in thedata_filesentry. -
test_suiteisdiffpy.FixMe.tests.run,python setup.py testworks -
zip_safeisFalse -
classifiersare up-to-date and include anything relevant from https://pypi.python.org/pypi?%3Aaction=list_classifiers
- includes all sources, package data files, txt files, version.cfg
- excludes build, dist, doc directories, MANIFEST.in, any non-essential temporary or development related files.
- check that a source bundle from
python setup.py sdist --keep-tempcontains correct files. - test installation from a source bundle to virtual Python environment works and passes all tests.
Example:
virtualenv --system-site-packages /tmp/tenv1 source /tmp/tenv1/bin/activate easy_install TheSourceTarBall # verify location and version of the installed package, ie, # the FILE and VERSION values in pydoc output cd /tmp # get out from the package source tree python -m pydoc diffpy.FixMe # execute package unit tests python -m diffpy.FixMe.tests.run
- Check that
python setup.py installrun from the git repository produces working installation (reuse the virtualenv and test commands from above) - Check that
python setup.py testrun in the git repo executes unit tests and they all pass.
- merge branch license from diffpy/diffpy-release
- fix issues reported by pyflakes
- update README.rst with conda information
- make sure build number in meta.yaml is 0
- make sure conda in travis uses only the diffpy channel
- support full version data in tagged git archives of Python packages
- add assertion check of FALLBACK_VERSION to the makesdist script
- update FALLBACK_VERSION to the new release number X.Y
- create signed tag vX.Y, include list of changes since previous release in tag description
- create conda packages and upload them to the diffpy channel
- use
makesdistto create tar bundle - create new release on github. For C++ packages attach source archive and include its MD5 on the release page.
- use
twineto upload the tar bundle to PyPI. - rebuild the manual and push it to the gh-pages branch.
Gist with pywhichmodule and pypath scripts that should help with verifying package installation.