Hi DR0ID, I'll respond to a few of your questions where I feel I might have
useful info.

On 7 May 2018 at 21:06, DR0ID <dr...@bluewin.ch> wrote:

> [2] Any tips on (free) CI builds?
>

Linux: Travis CI & Circle CI
Mac: Travis CI
Windows: Appveyor

All these services are free for open source projects, and they can all be
configured via files in the repository you want to test, so you can see the
config other projects use. Travis only works for projects on Github, though.


> [3] Any tips on packaging for pip?
>

The standard guide is here:
https://packaging.python.org/tutorials/distributing-packages/


> [4] Any tips for the documentation?
>

A lot of Python projects use Sphinx and host docs on readthedocs.org (which
can watch your repository and rebuild docs automatically). Sphinx is a
relatively big system with a bit of a learning curve, but if you use it
well, you get nice features like cross-linking references to classes and
functions. A lighter-weight alternative that some projects prefer is to
write some markdown files. Mkdocs is a tool built for that workflow, but
you can also just point people to the markdown files on Github/Bitbucket.


> [5] Would you break up libs into smaller, maybe partial parts that are pip
> installable so they can be installed independently? If so, should each have
> its own repo or not (keeping it in the same repo in sub directories)?
>

It's a trade off - some people won't like installing a 'heavy' library if
they only want to use one part, but splitting it up means more maintenance
work to deal with the separate pieces. Don't split too small!


> [8] One thing that has bothered me along time and I have not found any
> good answer yet is following: pip installable packages are good for
> developers while coding and developing. But then, when I want to 'ship' or
> 'distribute' some program I'm not so sure that is the way to go. Because I
> think there should be a distinction between a library (that you install in
> site-packages) and a 'executable' which I might want to install somewhere
> else (otherwise I would not know hot to run it, maybe using '-m'?)
>
> Yep, applications are definitely different from libraries, although if
you're aiming at developers, you can often get away with using
library-style packaging for applications, and launching them with '-m'.

Application distribution is a weakness for Python. Pyinstaller is the tool
that's usually recommended, but it doesn't see as much love as the library
packaging tools. I'll also plug my own tool, Pynsist, which builds
installers for Windows rather than 'freezing' your application into an
executable.

Thomas

Reply via email to