Victor Ng wrote:
I managed to get my code checked into the trunk line of lxml just now. I just checked in my old vlibxml2 tree under the trunk of lxml's trunk.
Great, thank you very much! I hope you don't mind if I babble a bit more about source code layout and naming issues; I'd like to have them worked out. Luckily subversion makes it easy to rename and move things! One issue is that now we have the following layout of the source tree: lxml (distribution directory) src lxml (package) dom (module) etree (module) vlibxml2 (distribution directory) src extensions (package?) victree (this looks new. it's empty however :) vlibxml2 (package) What I was suggesting before was a layout more like this: lxml (distribution directory, merge vlibxml2 distribution directory info into this) src lxml (package) dom (module) etree (module) vlibxml2 (package) extensions (package?) this would basically introduce two top level packages, lxml and vlibxml2. This does make vlibxml2 less easily redistributable separately, but we can still fairly easily pull releases out of this that only contain the vlibxml2 stuff if desired, or we can simply name 'lxml' stuff experimental. This was a suggestion to make it easy to merge things together; my ideal structure is in fact this one: lxml (distribution directory) src lxml (namespace package) vlibxml2 (package) dom (module) etree (module) This way, you import anything at all from lxml like this: import lxml.vlibxml2 or like this: from lxml import vlibxml2 everything is clearly namespace prefixed, reducing the risk of name clashes, and making it entirely clear where everything is coming from. This pattern of a nearly empty 'namespace package' with the project name is a common one used by many Python projects, such as Twisted and Zope 3. It also mirrors the approach taken by Java, though namespacing there is a bit more involved. My experience with this approach in Python is that it's a nice and clean approach. It's possible Victor would prefer another 'umbrella' name than lxml, or otherwise feels uncomfortable merging the projects like this. Please note that while I started 'lxml', it's explicitly not intended to be my personal project, however -- this is why I'm very happy Victor is joining in; his contribution is arguably more important than mine to date. On a side note, 'extensions' doesn't look like a Python package, right? It is never importable by itself from Python as far as I understand it. This might indicate we might want to place it somewhere else than under 'src'. Regards, Martijn