[Neuroimaging] Looking for advice regarding releasing some analysis software

Matthew Brett matthew.brett at gmail.com
Thu Jun 16 13:12:27 EDT 2016


Hi,

On Thu, Jun 16, 2016 at 7:23 AM, Blaise Frederick
<blaise.frederick at gmail.com> wrote:
> Thank you!  That’s exactly the kind of thing I was looking for…

The shablona project looks like a pretty good template.

I would personally recommend pytest rather than nose for testing in a
new project, because nose is going out of maintenance at the moment -
see : https://nose.readthedocs.io/en/latest/#note-to-users .

The `scripts` directory is the standard location for stuff that will
become command line scripts.   The usual practice is to make these
scripts be tiny wrappers that import all the substantial code from the
main code-base.  See
https://github.com/matthew-brett/delocate/tree/master/scripts for some
examples - but even these scripts have more code than they should (the
code should be in the library).

I highly recommend that you enable both travis-ci.org testing (as
shablona does) and automated code coverage testing (as shablona does).

I generally use versioneer for my new projects, to set the project
version from git tags - see : https://pypi.python.org/pypi/versioneer
and https://github.com/matthew-brett/delocate/blob/master/setup.py for
an example.

It's a good idea to put a pip `requirements.txt` file in your project
directory so people can easily do:

pip install -r requirements.txt

to get the requirements for your package.  See
https://github.com/nipy/nibabel for an example.

Lastly - and probably most important - it's very useful to get
contributing to other projects that you are using, even in small ways,
in the form of issues and pull requests.  I find that I pick up an
enormous amount of best practice by getting feedback from others, and
understanding their reasoning.

Good luck,

Matthew


More information about the Neuroimaging mailing list