My take at a template repository that I can fork for every Python project I want to push to PyPi
Howto, the executive summary¶
- fork it
- rename it
- edit it
- extend it
- use it
Forking and renaming are the two first steps when using this repository. They are both actions you perform at GitHub, but…
Fork without forking…¶
You don’t have to go through the GitHub concept of forking and do everything from the command line…
$ git clone https://github.com/christophevg/pypi-template $ mv pypi-template your-new-project $ cd your-new-project $ git remote remove origin $ git remote add origin email@example.com:your-account/your-new-project.git $ git push -u master origin
Use the Command Line¶
The repository also includes a small script that copies the files from a clone of the repository. If you install the module, the script gets registered in your PATH, and allows for
$ pip install pypi-template $ mkdir my-new-project $ cd my-new-project $ pypi-template $ ls -la total 40 drwxr-xr-x 11 xtof staff 352 Nov 11 21:34 . drwxr-xr-x 46 xtof staff 1472 Nov 11 21:10 .. drwxr-xr-x 3 xtof staff 96 Nov 11 21:35 .github -rw-r--r-- 1 xtof staff 144 Nov 11 21:31 .travis.yml -rw-r--r-- 1 xtof staff 1067 Nov 11 21:34 LICENSE.txt -rw-r--r-- 1 xtof staff 443 Nov 11 21:34 Makefile drwxr-xr-x 6 xtof staff 192 Nov 11 21:35 docs drwxr-xr-x 3 xtof staff 96 Nov 11 21:35 pypi_template -rw-r--r-- 1 xtof staff 1830 Nov 11 21:34 setup.py drwxr-xr-x 3 xtof staff 96 Nov 11 21:35 tests -rw-r--r-- 1 xtof staff 167 Nov 11 21:34 tox.ini
The script only copies files that don’t exist yet, so it can also be used to upgrade to a new version of PyPi Template, and import new features based on added folders. For changes to existing files, a more elaborate copying function will be added later, probably ;-)
Things to edit¶
- module top-level folder
There is a placeholder top-level module folder. You’ll probably want to rename that.
$ mv pypi_template your_new_project
Change the license to whatever you feel is (more) appropriate.
Replace this information with information regarding your project.
Replace the Python package configuration with one appropriate to your project.
docs/ contains a copy of this README as a placeholder for additional documentation, that can be published to ReadTheDocs. Edit
conf.py to reflect your project’s name and description.
Things to do¶
A basic testing setup has been prepared. To run it locally, issue…
$ make test ... ___________________________________ summary ____________________________________ py27: commands succeeded congratulations :)
Head over to https://travis-ci.org and register your project. A basic CI configuration is also provided.
Head over to https://coveralls.io and register your project to consult your code coverage reporting.
$ make docs
This wil generate a HTML version of your
docs/ and open it in a browser.