RT 43435 - Upload BIND Python module to pypi, package for BIND users
RT 43435 - text below is migrated from bugsRT
On Wed, May 3, 2017 at 1:04 PM, Vicky Risk via RT firstname.lastname@example.org wrote:
We discussed uploading a python module for BIND to the pypi repository in our development meeting today. ... The open question we are considering is whether to submit just the RNDC components, or . I think Evan is wondering whether it might cause user confusion having multiple different copies of the python library (assuming they are also running BIND).
....... I wasn't aware the python library was going to be distributed with BIND... but here are some thoughts on that: A very common (nearly standard) way of operating with python is to work inside what's referred to as a "python virtual environment," or virtualenv/venv. In this environment, libraries and other python packages required by one's work can be installed without interfering with the system packages.. this is very important, for example, when working on tools that have conflicting package (version) requirements.
The packages inside a venv are typically installed using 'pip'.. the python package manager that uses pypi as its back-end.
Getting something installed into a venv that is not on pypi is irritating at best, and occasionally difficult to do. This is especially true for automated deployments where the virtualenv is used in production operations.
For a real-world example, the ldns python bindings are only shipped with the ldns source code, and not in pypi, and as a result I need to have a very compelling reason to need them over any other DNS library (and over just shelling out to an ldns binary) in order to deal with the complexities of working with them.
To view this from another angle: If BIND's 'make install' places the RNDC python libraries on the system in such a way that they're visible to/registered with pip, then end users aren't going to find anything confusing .. because as far as pip is concerned it doesn't matter where the library came from. If the RNDC python library is not visible to/registered with pip, then BIND shouldn't be installing it that way.. it will cause confusion regardless of whether the library is available on pypi or not.
Adding Matt Pounsett as stakeholder, because he has offered us a package that includes just the python RNDC stuff that is ready to upload.
Matt, I can’t find the email from you about the Python package for the BIND RNDC interface. Did you submit it to email@example.com? If you want to reply to this ticket and attach it, it will be easier for us to find it to work on.
I didn't.. this started as a conversation with Ray, and so I emailed him about it. The work I've done so far is in a private repo on github. Github, because it seemed a reasonable place to work on it, and private so that I don't inadvertently share it with anyone other than ISC prior to ISC applying a license to it.
My email to Ray included an offer to add ISC employees' accounts to access the repository and/or hand over full ownership of the repository. Whichever you like. The repo is at https://github.com/mpounsett/rndc but that won't be accessible until we do something with access.
There are still a few small steps to be taken before it's ready for upload: notably decisions I couldn't make on behalf of ISC about licensing, development status indicators, etc.