[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] pygame awesome libraries?



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 <dr0id@xxxxxxxxxx> 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