Python Package Skeleton Template

This is a project skeleton template for a Python project/library. The repository intents to implement and explain the latest best practices in team software development, continuous integration and deployment. The repository simulates the implementation of a sampleproject.

You will find in the project’s documentation all references that motivated the current configuration as well as detailed explanation on the different configuration files.

I intent to keep this repository up to date to my knowledge and needs. Your feedback and suggestions are highly appreciated, please raise an issue and share your thoughts.

Stable version

Travis master branch Appveyor master branch Codecov master branch Coveralls master Codacy master branch Read the Docs (stable)

The stable version is hosted at the master branch.

Latest Build

Travis-CI latest branch Appveyor-CI latest branch Codecov latest branch Coveralls latest Codacy latest grade Code Climate Code Climate technical debt Read the Docs (latest)

The latest build is hosted at the latest branch.

Motivation

Understand and implement in the best practices in software development and deployment for scientific software; actually I think the strategy reviewed here can be applied at many other development contexts.

This repository does NOT intent to be a cookiecutter-like repository. Thought there are many and very well documented cookiecutter templates out there, even for scientific software, I felt that directly using a cookiecutter would lead me nowhere because I would miss the whole understanding of what the cookiecutter is automatizing in the first place. Therefore, building a repository from scratch was the only and best approach to achieve a minimum understanding of best practices and protocols.

Acknowledgments

The whole repository structure and CI layout has strongly influenced by the discussions provided by ionel in his blog post about Packaging a python library. I really recommend reading through that post and the other related posts in his blog. Hence, python-nameless and cookiecutter-pylibrary are two repositories that served as main source of information for the python-project-skeleton repository; other sources of information were also important and those are referenced within context.

Version

v0.2.1