[Reportbug-maint] Deployment of reportbug for development work (was: merging common stuff in python-debianbts?)
Ben Finney
ben at benfinney.id.au
Sat Jun 7 09:27:29 UTC 2008
[replying back on reportbug-maint, I presume that was your intent
Chris]
On 06-Jun-2008, Chris Lawrence wrote:
> On Thu, Jun 5, 2008 at 6:26 PM, Ben Finney <ben at benfinney.id.au> wrote:
> > I'm planning to implement the 'reportbug' Python package, by
> > moving the 'reportbug' program to a separate directory to avoid
> > that name conflict. I think that the expected package name for
> > reportbug modules will be the name 'reportbug', so it's worth
> > choosing that name if possible.
>
> I really don't care that much about the name; the only issue with
> moving the scripts to bin (or anywhere outside of the root) is it
> makes it a pain in the ass to do in-place testing of reportbug.
This is a valid concern.
The import system of Python forces developers, when using package
directories, to deal with the deployment of mid-development packages
so they can be tested.
With Python's 'distutils', one can install a Python "distribution" to
an arbitrary location; with appropriate PYTHONPATH environment
variable setting, one can thus deply the software to a private
location that doesn't affect the system-controlled locations.
The 'setuptools' system goes a step further to provide a solution to
this: deploying the package locally in "development mode" in order to
immediately use the latest code, but only linking back to the working
tree instead of copying the software anywhere.
To do this, use the setup.py develop command. It works very
similarly to setup.py install or the EasyInstall tool, except that
it doesn't actually install anything. Instead, it creates a
special .egg-link file in the deployment directory, that links to
your project's source code. And, if your deployment directory is
Python's site-packages directory, it will also update the
easy-install.pth file to include your project's source code,
thereby making it available on sys.path for all programs using
that Python installation.
In addition, the develop command creates wrapper scripts in the
target script directory that will run your in-development scripts
after ensuring that all your install_requires packages are
available on sys.path.
You can deploy the same project to multiple staging areas, e.g. if
you have multiple projects on the same machine that are sharing
the same project you're doing development work.
When you're done with a given development task, you can remove the
project source from a staging area using setup.py develop
--uninstall, specifying the desired staging area if it's not the
default.
<URL:http://peak.telecommunity.com/DevCenter/setuptools#development-mode>
I can work on converting 'reportbug' to use 'distutils' (to allow
manual deployment to be done more easily), or 'setuptools' (to allow
the above "development mode"). Which would we prefer?
--
\ "I wrote a song, but I can't read music so I don't know what it |
`\ is. Every once in a while I'll be listening to the radio and I |
_o__) say, 'I think I might have written that.'" -- Steven Wright |
Ben Finney <ben at benfinney.id.au>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/reportbug-maint/attachments/20080607/78faa9ba/attachment.pgp
More information about the Reportbug-maint
mailing list