tractor/docs/dev_tips.rst

1.8 KiB

Hot tips for tractor hackers

This is a WIP guide for newcomers to the project mostly to do with dev, testing, CI and release gotchas, reminders and best practises.

tractor is a fairly novel project compared to most since it is effectively a new way of doing distributed computing in Python and is much closer to working with an "application level runtime" (like erlang OTP or scala's akka project) then it is a traditional Python library. As such, having an arsenal of tools and recipes for figuring out the right way to debug problems when they do arise is somewhat of a necessity.

Making a Release

We currently do nothing special here except the traditional PyPa release recipe as in documented by twine. I personally create sub-dirs within the generated dist/ with an explicit release name such as alpha3/ when there's been a sequence of releases I've made, but it really is up to you how you like to organize generated sdists locally.

The resulting build cmds are approximately:

python setup.py sdist -d ./dist/XXX.X/

twine upload -r testpypi dist/XXX.X/*

twine upload dist/XXX.X/*

Debugging and monitoring actor trees

TODO: but there are tips in the readme for some terminal commands which can be used to see the process trees easily on Linux.

Using the log system to trace trio task flow

TODO: the logging system is meant to be oriented around stack "layers" of the runtime such that you can track "logical abstraction layers" in the code such as errors, cancellation, IPC and streaming, and the low level transport and wire protocols.