-
Notifications
You must be signed in to change notification settings - Fork 11
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 html
compiles with no warnings andmake publish
does push to thegh-pages
branch. - For package diffpy.SomeThing the URL
http://diffpy.github.io/doc/SomeThing
redirects to http://diffpy.github.io/diffpy.SomeThing
, i.e., the published gh-pages branch from the main GitHub repository.
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://diffpy.github.io/doc/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
. FIXME{If easy_install GitHubURL
works, include it as well.}
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.
-
version
is extracted from git data,python setup.py egg_info
updates diffpy/FixMe/version.cfg and sets it to right values. -
install_requires
includes 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_links
entry is removed or set to[]
. -
url
points to the package GitHub page -
author and author_email are set as:
author = "Simon J.L. Billinge group", author_email = "[email protected]",
-
maintainter
andmaintainer_email
are set to the current package maintainer -
license
is set to "BSD, see LICENSE.txt" -
keywords
are 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_files
entry. -
test_suite
isdiffpy.FixMe.tests.run
,python setup.py test
works -
zip_safe
isFalse
-
classifiers
are 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-temp
contains 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 install
run from the git repository produces working installation (reuse the virtualenv and test commands from above) - Check that
python setup.py test
run in the git repo executes unit tests and they all pass.
Gist with pywhichmodule and pypath scripts that should help with verifying package installation.