Re: [Repoze-dev] removing the lxml dependency from bfg
Sorry. Just pretend like it really did end there. ;) Chris On Mon, Apr 27, 2009 at 8:20 PM, Martin Aspeli > wrote: > Tres Seaver wrote: > > > Amen. Or should that be "So say we all!" :) > > Not any longer... (sniff) > > Martin > > -- > Author of `Professional Plone Development`, a book for developers who > want to work with Plone. See http://martinaspeli.net/plone-book > > ___ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev > ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
Tres Seaver wrote: > Amen. Or should that be "So say we all!" :) Not any longer... (sniff) Martin -- Author of `Professional Plone Development`, a book for developers who want to work with Plone. See http://martinaspeli.net/plone-book ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Mon, Apr 27, 2009 at 4:48 PM, Wichert Akkerman wrote: > Previously Malthe Borch wrote: > > 2009/4/27 Reed O'Brien : > > > +0 I think it is OK to have a default one. Think "hello world". > > > > Devil's advocate here, but: > > > > >>> print "Hello world" > > > > You kind of don't need a templating language; in particular, you might > > want to serve up binary files only, combined with JSON input/output. > > We actually do that in ``repoze.filecat``. > > That works, but any first user of repoze.bfg is bound to want to try a > template, and not bundling any default templating languages will make > that first introduction to bfg more complicated. > > I think bundling chameleon.zpt is fine, but just wanted to point out that the canonical way to "get started" with BFG is via the paste script and that sample app created by that could easily have a dependency on something that BFG doesn't. You could theoretically suck in chameleon.zpt there to get people started *and* not have to make it a dependency of BFG. Not that I'm suggesting we change it now. Just saying. ;) Chris ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
Previously Malthe Borch wrote: > 2009/4/27 Reed O'Brien : > > +0 I think it is OK to have a default one. Think "hello world". > > Devil's advocate here, but: > > >>> print "Hello world" > > You kind of don't need a templating language; in particular, you might > want to serve up binary files only, combined with JSON input/output. > We actually do that in ``repoze.filecat``. That works, but any first user of repoze.bfg is bound to want to try a template, and not bundling any default templating languages will make that first introduction to bfg more complicated. Wichert. -- Wichert Akkerman It is simple to make things. http://www.wiggy.net/ It is hard to make things simple. ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Mon, Apr 27, 2009 at 2:46 PM, Chris McDonough wrote: > On 4/27/09 1:42 PM, Paul Everitt wrote: >> >> On Apr 27, 2009, at 1:40 PM, Chris Rossi wrote: >> >>> >>> >>> On Mon, Apr 27, 2009 at 1:37 PM, Malthe Borch wrote: >>> 2009/4/27 Martin Aspeli : >>> > I've never once written a web app that didn't need templating, because >>> > I've never written one that only responds with text/plain and writing >>> > HTML with print or string manipulation is just lame. >>> >>> It's possible though :-) >>> >>> I guess the point is that *most* apps need templating and since we >>> have a strong offering (here are mostly mean the ZPT *language*, not >>> any particular implementation), let's include and promote it (at least >>> to some extent). >>> >>> In response to the original question, it seems that everyone is on >>> board with factoring out genshi and xslt to add-on packages and >>> leaving just chameleon.zpt as the one template system that ships with >>> BFG. Did I get that right? >> >> +1 from me. > > +1 from me too. +1 too At least one template engine is needed to show the complete story on how to get from the model to the template. Fernando ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
I think its nice to have a default... ...but I think one default is enough ;) +1 Tres Seaver wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Reed O'Brien wrote: On Apr 27, 2009, at 1:46 PM, Chris McDonough wrote: On 4/27/09 1:42 PM, Paul Everitt In response to the original question, it seems that everyone is on board with factoring out genshi and xslt to add-on packages and leaving just chameleon.zpt as the one template system that ships with BFG. Did I get that right? +1 from me. +1 from me too. +1 Amen. Or should that be "So say we all!" :) Tres. - -- === Tres Seaver +1 540-429-0999 tsea...@palladion.com Palladion Software "Excellence by Design"http://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJ9fTZ+gerLs4ltQ4RAgEhAKCiT8BsLP1bdDiDVOK3hV7DjWnVWACfXeTw BGWqf0i+fhChGaCwO+AdNiU= =WbKl -END PGP SIGNATURE- ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev -- Fergus Doyle Lead Developer 120 Long Acre, Covent Garden, London. WC2E 9PA. www.largeblue.com, fergus.do...@largeblue.com +44 (0)20 7240 0330 ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Reed O'Brien wrote: > On Apr 27, 2009, at 1:46 PM, Chris McDonough wrote: > >> On 4/27/09 1:42 PM, Paul Everitt In response to the original question, it seems that everyone is on board with factoring out genshi and xslt to add-on packages and leaving just chameleon.zpt as the one template system that ships with BFG. Did I get that right? >>> +1 from me. >> +1 from me too. > > +1 Amen. Or should that be "So say we all!" :) Tres. - -- === Tres Seaver +1 540-429-0999 tsea...@palladion.com Palladion Software "Excellence by Design"http://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJ9fTZ+gerLs4ltQ4RAgEhAKCiT8BsLP1bdDiDVOK3hV7DjWnVWACfXeTw BGWqf0i+fhChGaCwO+AdNiU= =WbKl -END PGP SIGNATURE- ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Apr 27, 2009, at 1:46 PM, Chris McDonough wrote: > On 4/27/09 1:42 PM, Paul Everitt >> >>> In response to the original question, it seems that everyone is on >>> board with factoring out genshi and xslt to add-on packages and >>> leaving just chameleon.zpt as the one template system that ships >>> with >>> BFG. Did I get that right? >> >> +1 from me. > > +1 from me too. +1 ~ro ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On 4/27/09 1:42 PM, Paul Everitt wrote: > > On Apr 27, 2009, at 1:40 PM, Chris Rossi wrote: > >> >> >> On Mon, Apr 27, 2009 at 1:37 PM, Malthe Borch wrote: >> 2009/4/27 Martin Aspeli : >> > I've never once written a web app that didn't need templating, because >> > I've never written one that only responds with text/plain and writing >> > HTML with print or string manipulation is just lame. >> >> It's possible though :-) >> >> I guess the point is that *most* apps need templating and since we >> have a strong offering (here are mostly mean the ZPT *language*, not >> any particular implementation), let's include and promote it (at least >> to some extent). >> >> In response to the original question, it seems that everyone is on >> board with factoring out genshi and xslt to add-on packages and >> leaving just chameleon.zpt as the one template system that ships with >> BFG. Did I get that right? > > +1 from me. +1 from me too. - C ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Apr 27, 2009, at 1:40 PM, Chris Rossi wrote: On Mon, Apr 27, 2009 at 1:37 PM, Malthe Borch wrote: 2009/4/27 Martin Aspeli : > I've never once written a web app that didn't need templating, because > I've never written one that only responds with text/plain and writing > HTML with print or string manipulation is just lame. It's possible though :-) I guess the point is that *most* apps need templating and since we have a strong offering (here are mostly mean the ZPT *language*, not any particular implementation), let's include and promote it (at least to some extent). In response to the original question, it seems that everyone is on board with factoring out genshi and xslt to add-on packages and leaving just chameleon.zpt as the one template system that ships with BFG. Did I get that right? +1 from me. --Paul___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Mon, Apr 27, 2009 at 1:37 PM, Malthe Borch wrote: > 2009/4/27 Martin Aspeli > >: > > I've never once written a web app that didn't need templating, because > > I've never written one that only responds with text/plain and writing > > HTML with print or string manipulation is just lame. > > It's possible though :-) > > I guess the point is that *most* apps need templating and since we > have a strong offering (here are mostly mean the ZPT *language*, not > any particular implementation), let's include and promote it (at least > to some extent). > > In response to the original question, it seems that everyone is on board with factoring out genshi and xslt to add-on packages and leaving just chameleon.zpt as the one template system that ships with BFG. Did I get that right? Chris ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On 4/27/09 1:37 PM, Malthe Borch wrote: > 2009/4/27 Martin Aspeli: >> I've never once written a web app that didn't need templating, because >> I've never written one that only responds with text/plain and writing >> HTML with print or string manipulation is just lame. > > It's possible though :-) > > I guess the point is that *most* apps need templating and since we > have a strong offering (here are mostly mean the ZPT *language*, not > any particular implementation), let's include and promote it (at least > to some extent). I think our default position should be to offer ZPT and text templating out of the box (via chameleon.zpt); any other sort of templating will be done via an addon. - C ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
2009/4/27 Martin Aspeli : > I've never once written a web app that didn't need templating, because > I've never written one that only responds with text/plain and writing > HTML with print or string manipulation is just lame. It's possible though :-) I guess the point is that *most* apps need templating and since we have a strong offering (here are mostly mean the ZPT *language*, not any particular implementation), let's include and promote it (at least to some extent). \malthe ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
Reed O'Brien wrote: > I think this and Chris Rossi's: > > from webob import Response > > def hello_world_view(context, request): > return Response("Hello world!") > > promote bad code/markup mingling practices. > > > I am all about minimalism and modularity, but don't remove the roof > because there is more than one material to use for it. FWIW, I find it very irritating to work with frameworks that are so "agnostic" that I have to do the hard work of integrating stuff myself. I've never once written a web app that didn't need templating, because I've never written one that only responds with text/plain and writing HTML with print or string manipulation is just lame. Template language pluggability is a good design principle, but anyone who doesn't have a strong predisposition towards a particular language is going to stick with the default and be grateful to not have to worry about finding the right plugin and configuring it correctly. It also makes documentation harder to write and follow when these things have to be explained as variables. Martin -- Author of `Professional Plone Development`, a book for developers who want to work with Plone. See http://martinaspeli.net/plone-book ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On 4/27/09 12:47 PM, Reed O'Brien wrote: > On Apr 27, 2009, at 12:41 PM, Malthe Borch wrote: > >> 2009/4/27 Reed O'Brien: >>> +0 I think it is OK to have a default one. Think "hello world". >> Devil's advocate here, but: >> > print "Hello world" >> You kind of don't need a templating language; in particular, you might >> want to serve up binary files only, combined with JSON input/output. >> We actually do that in ``repoze.filecat``. >> >> \malthe > > I think this and Chris Rossi's: > > from webob import Response > > def hello_world_view(context, request): > return Response("Hello world!") > > promote bad code/markup mingling practices. > > > I am all about minimalism and modularity, but don't remove the roof > because there is more than one material to use for it. Templating is an really common thing to want to do, frameworks inevitably do make *some* choices, and chameleon.zpt happens to be an extremely good choice. Especially now that chameleon.zpt and dependencies don't have any C dependencies, there's very little downside to including it with the baseline BFG distribution AFAICT. - C ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Apr 27, 2009, at 12:41 PM, Malthe Borch wrote: > 2009/4/27 Reed O'Brien : >> +0 I think it is OK to have a default one. Think "hello world". > > Devil's advocate here, but: > print "Hello world" > > You kind of don't need a templating language; in particular, you might > want to serve up binary files only, combined with JSON input/output. > We actually do that in ``repoze.filecat``. > > \malthe I think this and Chris Rossi's: from webob import Response def hello_world_view(context, request): return Response("Hello world!") promote bad code/markup mingling practices. I am all about minimalism and modularity, but don't remove the roof because there is more than one material to use for it. Damn I make bad analogies... ~ro ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On 4/27/09 12:41 PM, Malthe Borch wrote: > 2009/4/27 Reed O'Brien: >> +0 I think it is OK to have a default one. Think "hello world". > > Devil's advocate here, but: > >>>> print "Hello world" > > You kind of don't need a templating language; in particular, you might > want to serve up binary files only, combined with JSON input/output. > We actually do that in ``repoze.filecat``. Templates are pretty much optional by design in BFG. FTR, this is why the "view" stanza in ZCML and the bfg_view decorator don't take a "template_name" argument (ala browser:page in zope). So it wouldn't be 100% inconsistent to just leave them out altogether, but it might be a little inconvenient. - C ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
2009/4/27 Reed O'Brien : > +0 I think it is OK to have a default one. Think "hello world". Devil's advocate here, but: >>> print "Hello world" You kind of don't need a templating language; in particular, you might want to serve up binary files only, combined with JSON input/output. We actually do that in ``repoze.filecat``. \malthe ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
from webob import Response def hello_world_view(context, request): return Response("Hello world!") ;) On Mon, Apr 27, 2009 at 12:36 PM, Reed O'Brien wrote: > > On Apr 27, 2009, at 12:22 PM, Chris Rossi wrote: > > > In my opinion, all templating should be add-ons in BFG. > > +0 I think it is OK to have a default one. Think "hello world". > ___ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev > ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Apr 27, 2009, at 12:22 PM, Chris Rossi wrote: > In my opinion, all templating should be add-ons in BFG. +0 I think it is OK to have a default one. Think "hello world". ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
2009/4/27 Chris Rossi : > In my opinion, all templating should be add-ons in BFG. Since we're not > constrained to use any particular templating in BFG, we should figure out > what we want to use and suck it in as a dependency of our app, rather than > BFG. I do think this basic story is a little strange: "You can use widget X > with our framework, but you don't have to. Whether you use it or not, > though, we'll suck it in as a dependency." I agree and I think chrism has expressed a similar view lately. \malthe ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
In my opinion, all templating should be add-ons in BFG. Since we're not constrained to use any particular templating in BFG, we should figure out what we want to use and suck it in as a dependency of our app, rather than BFG. I do think this basic story is a little strange: "You can use widget X with our framework, but you don't have to. Whether you use it or not, though, we'll suck it in as a dependency." My 2 cents, Chris On Sun, Apr 26, 2009 at 11:42 PM, Chris McDonough wrote: > Malthe Borch just made a release of chameleon.core and chameleon.zpt that > removes any dependency on lxml. Woo hoo, thanks Malthe! The benefits of > this: > it should be possible to install BFG on all systems much more easily and it > should be reasonable to use BFG on Windows and GAE. > > However, to move to this version of Chameleon in BFG, we have to do some > work > and make some decisions. > > chameleon.genshi still depends on lxml. Currently BFG has c.genshi > support, but > when we move to the new chameleon version, we'll need to package > chameleon.genshi support outside bfg itself in an add-on package (which > will > still depend on lxml). Or we make chameleon.genshi not depend on lxml. > > The xlst support in BFG still depends on lxml. When we move to the new > chameleon version, we'll need to package repoze.bfg.xlst support outside > bfg > itself in an add-on package (which will still depend on lxml). > > The non-lxml versions of chameleon.core rely on the "etree" module, which > is > only present in Python 2.5+. We'll either need to make 2.5 the lowest > supported > BFG version or we'll need to change chameleon.core to fall back to an > add-on > elementtree module for the same functionality. > > Any opinions welcome. > > - C > ___ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev > ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
On Apr 26, 2009, at 11:42 PM, Chris McDonough wrote: > Malthe Borch just made a release of chameleon.core and chameleon.zpt > that > removes any dependency on lxml. Woo hoo, thanks Malthe! The > benefits of this: > it should be possible to install BFG on all systems much more easily > and it > should be reasonable to use BFG on Windows and GAE. > > However, to move to this version of Chameleon in BFG, we have to do > some work > and make some decisions. > > chameleon.genshi still depends on lxml. Currently BFG has c.genshi > support, but > when we move to the new chameleon version, we'll need to package > chameleon.genshi support outside bfg itself in an add-on package > (which will > still depend on lxml). Or we make chameleon.genshi not depend on > lxml. > > The xlst support in BFG still depends on lxml. When we move to the > new > chameleon version, we'll need to package repoze.bfg.xlst support > outside bfg > itself in an add-on package (which will still depend on lxml). Yes, at a minimum move it to an add-on package. At a maximum, just have it exist as a tutorial and not even package it. Quite honestly, I'd be surprised if there was a single user of repoze.xslt. --Paul > > > The non-lxml versions of chameleon.core rely on the "etree" module, > which is > only present in Python 2.5+. We'll either need to make 2.5 the > lowest supported > BFG version or we'll need to change chameleon.core to fall back to > an add-on > elementtree module for the same functionality. > > Any opinions welcome. > > - C > ___ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev
Re: [Repoze-dev] removing the lxml dependency from bfg
2009/4/27 Chris McDonough : > chameleon.genshi still depends on lxml. Currently BFG has c.genshi support, > but > when we move to the new chameleon version, we'll need to package > chameleon.genshi support outside bfg itself in an add-on package (which will > still depend on lxml). Or we make chameleon.genshi not depend on lxml. The reason why ``chameleon.genshi`` depends on lxml is "match-templates", which do require a post-render step where the document must be parsed with XPath-selector methods (bound to particular elements in fact) passed on to callbacks. It's a bit convoluted. While I do think the concept of match templates is cool, perhaps it should be let gently out of the package again, because as it happens, the support isn't very solid. Genshi is a great language in itself; I don't think it needs match templates to qualify. > The non-lxml versions of chameleon.core rely on the "etree" module, which is > only present in Python 2.5+. We'll either need to make 2.5 the lowest > supported > BFG version or we'll need to change chameleon.core to fall back to an add-on > elementtree module for the same functionality. Let me note two things: 1) ElementTree is only used to validate inserted content in debug-mode. 2) On Python 2.4, the ``ElementTree`` package is added as an "install_requires" dependency. \malthe ___ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev