-
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 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.
-
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.
- 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
makesdist
to create tar bundle - create new release on github. For C++ packages attach source archive and include its MD5 on the release page.
- use
twine
to 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.