views:

99

answers:

2

Has anyone successfully executed the source control system Bazaar in IronPython?

+1  A: 

There is several important modules still absent in IronPython which required to run bzr. So, AFAIK today (December 2009) is not possible to run bzr under IronPython.

You may ask this question in main bzr mailing list: http://lists.canonical.com/mailman/listinfo/bazaar. Several months ago Martin (gzlist or gz) has reported about his achievements in this area.

bialix
+2  A: 

Yes, Bazaar is pure-python with optional extensions and will run on IronPython. There are a few caveats though. Firstly some changes are needed to Bazaar that haven't yet been merged with the main branch. Secondly, IronPython's slow startup time makes it unsuitable for general bzr usage, and there are are some outstanding issues due to missing modules and the like.

If you want to give it a go yourself though, you can. Download and install IronPython 2.6 and Jeff Hardy's implementation of the zlib module for IronPython (follow the readme in the zip). You'll also need to copy gzip.py from the CPython standard library to the IronPython lib folder. Finally, get a release version of Bazaar so you can get a copy of a development branch.

With that done, you can follow something like this (adjusting for your own paths as needed) and have a functional(ish) Bazaar-on-IronPython:

>set IPYDIR="C:\Program Files\IronPython 2.6"\

>bzr branch lp:~gz/bzr/noncpython
Branched 4715 revision(s).

>cd noncpython

>%IPYDIR%ipy setup.py build_ext --allow-python-fallback install_lib --no-compile install
...

>%IPYDIR%ipy %IPYDIR%Scripts\bzr version
...
Bazaar (bzr) 2.1.0dev
  Python interpreter: C:\Program Files\IronPython 2.6\ipy.exe 2.6.0
  Python standard library: C:\Program Files\IronPython 2.6\Lib
  Platform: cli-32bit
  bzrlib: C:\Program Files\IronPython 2.6\lib\site-packages\bzrlib
...

Yes, all that junk for setup.py is needed (to tell Bazaar not to compile the pyrex versions of things and disutils not to try and make pyc files). There will probably be some extra (harmless) output complaining about encodings, but you should find that most things with local branches work fine.

gz
excellent description! Works well when all steps are followed exactly
Jeffrey Cameron