Tuesday, June 05, 2007

Python Binding: a SharpDevelop (IDE) Addin

Following up from the IronPython URL's post…

Alas, as noted on the #develop wiki, the current 0.5 beta of PythonBinding doesn't play with the 2.1 release of #develop; and there is no archive release link on the obvious #develop download page.

Alas, the refactoring that seems to have taken place between 2.0 and 2.1 has made major, non-trivial and non-backwards compatible API changes to a number of crucial classes used in the Python Binding build. It's not just a matter of classes having moved assemblies (needing more references), or namespaces; and having to guess which IDocument interface is meant.

I think MSBuildProject has become MSBuildBasedProject — but what has become of ParseProjectContent CreateProjectContent() I cannot tell; nor of the MSBuildEngineCallback type in the argument list of PyCompilerService.Compile(), itself an abandoned seeming method signature.

This is a level of backwards-incompatibility I personally would reserve for a major release increment. And there isn't even a porting guide obvious on the site or in the #develop code download. And the above is not an exhaustive list of things needing fixing to make the old code play with the new IDE APIs, or even of the first wave of compiler errors.

[Now playing - Planet Rock]

1 comment :

Matt Ward said...

You can find the old SharpDevelop 2.0 release on SourceForge.

Alternatively there is a Python addin that works with 2.1.

PythonBinding-SD2.1.bin.zip - binaries
PythonBinding-SD2.1.zip - source

This is not the same as the PythonBinding available at CodePlex but one I am working on since the development seems to have stalled on the CodePlex version.

The addin should be updated to work with SharpDevelop 2.2 when it is released later this month.

Matt Ward - SharpDevelop Team