Birch Street Computing -

about me

John M is a Linux fan in Lowell, MA.

I work at at a company writing software. I fool around with Free and Open Source software for fun & profit.

I was big into and you can still see some of what I listen to there. I can also be found using github and recently sourcehut as well as bitbucket (historically). I don't care for most popular social media sites. If I have an account on one or the other it's probably either old and unused or was created just for tinkering.


Links to things I like, use, or otherwise feel is worth sharing. Things I'd like to see get more popular.

I freakin love setuptools

The more I use setuptools the more I love it! The next version of filament is going to pretty much require setuptools (though I might do a custom monolithic distutils download). The features that really won me over are namespace packages, and develop mode.

Namespace packages let you release modules as multiple eggs, but every python module inside the egg belongs to a _single_ top level module name. In the future I plan on having a core filament module developed in one source tree and others in separate trees. For example, I can work on filament.skins in a separate tree from the core of filament, but all python sees is a single parent module with skins within it.

Develop mode is also really cool, I used to manage everything with a thousand symlinks and it was a pain to work with both releases and development trees at the same time. Setuptools gives the script a new command 'develop' which creates a link (not-symlink) to the development source tree. It's versioned and everything, so it becomes really easy to switch back and forth. For me this means no more futzing around with sys.path to get my symlinks and eggs in the right order.

My only complaint is that it made me change the way I was writing my version numbers. I have to do x.x.devel instead of x.x-devel. But that is pretty minor for the smart version aware management that setuptools gives.

Every blog page or article on this site is available under the CC-BY-SA license unless otherwise noted.