Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-02-15 Thread Israel Saeta Pérez
On Sun, Jan 18, 2009 at 8:48 PM, Israel Saeta Pérez dukeb...@gmail.comwrote:

 On Sat, Jan 17, 2009 at 2:37 AM, Ethan Jucovy ethan.juc...@gmail.comwrote:


 Some of the things that people have said ought to be discussed about PLIP#
 247 are:
   1) impact on server startup time
   2) implications for test environments
   3) stabilizing and releasing a new version of z3c.autoinclude
   4) debugging tools/APIs for z3c.autoinclude
 *  5) documentation and/or code generation templates to explain the entry
 point for plugin authors*

 I'll begin working on #3 immediately, since there's plenty I can do there
 while discussion is still happening.

 Please let me know if there's anything else I'll need to submit for the
 PLIP's review.


 I'm not a member of the Framework Team so this is not mandatory for the
 PLIP's review, but as a member of the Documentation Team I would
 appreciate number (5).

 Something like Before, we did this to accomplish this task. Now, we can do
 that., as Wichert (?) suggested, so we would be able to find and update
 affected docs easily.

 Thanks in advance!


The buildout manual has been updated (but updates are still private) to
reflect this new feature:

http://plone.org/documentation/tutorial/buildout/copy_of_creating-a-new-package

See the new Automate ZCML loading for your package section.

I would appreciate any review input since I'm not sure I've got it right.
Thanks!

-- israel
Documentation Team
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-02-12 Thread Andreas Zeidler

On Feb 7, 2009, at 12:56 AM, Ethan Jucovy wrote:

On Thu, Feb 5, 2009 at 3:37 PM, Andreas Zeidler a...@zitc.de wrote:

On Feb 5, 2009, at 9:29 PM, Andreas Zeidler wrote:
i noticed that.  in fact, i was trying to figure out how the  
assigned value (plone) ended up in `module_name`.  i
ended up looked at the entry point's (the one you get from  
`pkg_resources.iter_entry_points`) `__dict__`, assuming
that some magic in `pkg_resources` would translate the target to  
be meant as the module's name.  but apparently
all given value end up as `module_name` in the dict.  i suppose i  
should have had a closer look at entry point definitions first.


Ah, yeah, a single entry point basically models a dictionary entry:
`module_name` is (part of) the entry point's value, which is
imported as a Python object; `name` is the key.


i was missing that info initially, but figured as much after a bit...   
thanks for clarifying it again, though.


Perhaps z3c.autoinclude could check if  
`os.environ.has_key('Z3C_AUTOINCLUDE_DISABLED')` and the test  
runner and/or a buildout option could set that environment  
variable?


yep, also +1.  after all, that's exactly what environment variable  
are for, aren't they? :)


OK, z3c.autoinclude trunk as of r96193 checks for
'Z3C_AUTOINCLUDE_PLUGINS_DISABLED' and
'Z3C_AUTOINCLUDE_DEPENDENCIES_DISABLED' in the environment.


great.  just one more tiny little suggestion:  how about catching the  
key error in the `enable_*` function, so people can use it  
unconditionally (i.e. without consulting `dependencies_disabled` first)?


$ ./bin/zopepy
 from z3c.autoinclude.api import enable_dependencies
 enable_dependencies()
Traceback (most recent call last):
  [...]
KeyError: 'Z3C_AUTOINCLUDE_PLUGINS_DISABLED'


n/p, none of this has been too time-consuming yet :)


:)

thanks for the update, ethan.  i'm changing my vote to +1.

cheers,


andi

--
zeidler it consulting - http://zitc.de/ - i...@zitc.de
friedelstraße 31 - 12047 berlin - telefon +49 30 25563779
pgp key at http://zitc.de/pgp - http://wwwkeys.de.pgp.net/
plone 3.2.1 released! -- http://plone.org/products/plone/



PGP.sig
Description: This is a digitally signed message part
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-02-05 Thread Andreas Zeidler

On Jan 17, 2009, at 2:37 AM, Ethan Jucovy wrote:

Hello,


hi ethan,

I've implemented PLIP #247, Automate ZCML Loading for Plone Plugins (http://plone.org/products/plone/roadmap/247 
) and committed a review buildout here:

 https://svn.plone.org/svn/plone/review/plip247-automate-plugin-zcml
for your review.


i've added my review notes in http://dev.plone.org/plone/changeset/ 
24863 (and r24864).  for now i'm +0, but this can be fixed quite  
easily... :)


cheers,


andi

--
zeidler it consulting - http://zitc.de/ - i...@zitc.de
friedelstraße 31 - 12047 berlin - telefon +49 30 25563779
pgp key at http://zitc.de/pgp - http://wwwkeys.de.pgp.net/
plone 3.2rc1 released! -- http://plone.org/products/plone/



PGP.sig
Description: This is a digitally signed message part
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-02-05 Thread Andreas Zeidler

On Feb 5, 2009, at 6:35 PM, Ethan Jucovy wrote:

Hey Andi,


hi ethan,


Thanks for the review.


thanks for the quick reply! :)

Again I'll have to be a bit brief, this time because I'm about to  
get on a plane. :)  But I figured I may as well give some quick  
replies to keep the conversation going.


much appreciated.  oh, and sorry for the late review, btw.  i'm not  
sure you saw my message yesterday, but unfortunately a few things kept  
me from doing it earlier (lack of sleep amongst them :)).


Let me know if I should be putting these comments in SVN or on http://plone.org/products/plone/roadmap/247 
 instead of//as well as replying on-list, BTW.


i guess the list is fine, as interested parties can still read the  
entire discussion in the archives, for example by following the link i  
put on the PLIP page.  you may of course also answer there or link to  
your answer here.  i don't think we have any strict policy in place  
about this. :)


At http://dev.plone.org/plone/changeset/24863, Andreas Zeidler a...@zitc.de 
 wrote:
  * one issue i was wondering about is how to target multiple  
base packages
for the plugin case.  adding an additional target = ... line  
yields
a Duplicate entry point error in `easy_install`.  reading the  
code
target = plone, grok isn't supported either.  seeing that  
grok is
already actively using the package i would imagine that  
supporting
multiple base packages (or projects) does make sense,  
though.  adding
such support would be a definite plus, imho, and should also be  
rather

simple to do.

This is actually already a hidden feature. ;)  The entry point name  
(target) is purely convention; it's not used at all in the code.


i noticed that.  in fact, i was trying to figure out how the assigned  
value (plone) ended up in `module_name`.  i ended up looked at the  
entry point's (the one you get from `pkg_resources.iter_entry_points`)  
`__dict__`, assuming that some magic in `pkg_resources` would  
translate the target to be meant as the module's name.  but  
apparently all given value end up as `module_name` in the dict.  i  
suppose i should have had a closer look at entry point definitions  
first.



So
{{{
entry_points=
[z3c.autoinclude.plugin]
morx = plone
bar = mygrok.app

}}}


yes, that works.  in any case this should be documented, though.

Big +1 on considering the testing complications.  (Though in my  
limited experience I've actually found that any of my tests that  
break as a result of z3c.autoinclude's unpredictable ZCML  
inclusion are badly isolated tests anyway.)


well, i was thinking of a debug session where some tests where failing  
after LinguaPlone had been added to the buildout.  i'm not entirely  
sure anymore if i had already added it to the buildout (zcml-wise) or  
if the module was loaded by the testrunner thereby activating some  
monkey-patches.


but you're right, that might also qualify as bad test isolation, but  
every little bit that helps making this easier is much appreciated  
(and i know not just by me :)).


My gut feeling is that I'd rather keep logic like what to do in test  
runs, or for that matter what a test run is, out of z3c.autoinclude  
though.


+1, of course.  that wouldn't make sense, imho.  there are too many  
different testrunners for one, and there will probably be others in  
the future.  knowing them all is certainly not something  
`z3c.autoinclude` should attempt.


Perhaps z3c.autoinclude could check if  
`os.environ.has_key('Z3C_AUTOINCLUDE_DISABLED')` and the test runner  
and/or a buildout option could set that environment variable?


yep, also +1.  after all, that's exactly what environment variable are  
for, aren't they? :)


cheers,


andi

--
zeidler it consulting - http://zitc.de/ - i...@zitc.de
friedelstraße 31 - 12047 berlin - telefon +49 30 25563779
pgp key at http://zitc.de/pgp - http://wwwkeys.de.pgp.net/
plone 3.2rc1 released! -- http://plone.org/products/plone/



PGP.sig
Description: This is a digitally signed message part
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-02-05 Thread Andreas Zeidler

On Feb 5, 2009, at 9:29 PM, Andreas Zeidler wrote:

[...snip...]

yes, that works.  in any case this should be documented, though.

[...snip again...]

Perhaps z3c.autoinclude could check if  
`os.environ.has_key('Z3C_AUTOINCLUDE_DISABLED')` and the test  
runner and/or a buildout option could set that environment variable?


yep, also +1.  after all, that's exactly what environment variable  
are for, aren't they? :)


i forgot to mention that it'd be great if you could try to work these  
out until some time next week.  technically the revision deadline is  
this saturday, of course, but since my review was several days late, i  
think it's only fair to still grant you a full week to address these  
issues.  i hope the delay doesn't cause too many inconveniences and  
you'll find the time it takes...



cheers,


andi


--
zeidler it consulting - http://zitc.de/ - i...@zitc.de
friedelstraße 31 - 12047 berlin - telefon +49 30 25563779
pgp key at http://zitc.de/pgp - http://wwwkeys.de.pgp.net/
plone 3.2rc1 released! -- http://plone.org/products/plone/



PGP.sig
Description: This is a digitally signed message part
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-01-30 Thread Ethan Jucovy
I just spent three hours writing a detailed email explaining the situation,
but gmail seems to have completely swallowed it, drafts and all, when I hit
send.  I'm travelling right now and have very limited internet
connectivity here, so I'm just going to try to briefly summarize my original
reply; if further clarification is needed, let me know and I'll provide more
information as soon as I can.  Sorry to be so terse, this gmail accident is
just making me *really* grumpy. :)

 * the test failures are on the trunk of z3c.autoinclude; releases have been
stable and are tested on multiple OSes and python environments before I cut
them. i'll continue to be careful about this in the future.
 * the tests pass (for me at least) in the environment created by
z3c.autoinclude's standalone buildout -- which is the only way I thought to
run them before submitting the plip
 * after seeing your reply, I tried running the tests in the PLIP buildout's
environment with `bin/instance test -s z3c.autoinclude` and did see failures
 * i've now fixed them
 * can you reconfirm that the failures you saw were from utils.txt? the ones
i saw were from plugin.txt (though the assertion that was triggered was
indeed the alarming one in utils.py)
 * briefly, the problem was that the foo module in the demonstration
package i provided collided with another foo module that's installed in
z3c.autoinclude's test environment
(z3c.autoinclude/src/z3c/autoinclude/tests/FooPackage is the egg).  moral:
namespaces are indeed a good idea.  :) i've renamed the demo package to
plip247.foo and will also namespace z3c.autoinclude's test packages before
the next release so this doesn't happen again
 * the reason that assertion was so alarming and vague is because, when i
wrote the code, i had no idea what sort of situation could possibly trigger
it. so i figured i might as well throw in an assertion, even if // because i
couldn't imagine what its failure would mean. now that it's actually popped
up i think i understand it: it's asserting that no more than one
non-empty-virtual-namespace-module named foo (for any string foo) will
be importable simultaneously.  i'll make the assertion less alarming and
more informative as soon as i figure out a concise way to say that.
 * do the tests pass for you now in a fresh buildout // if you svn up and
re-install the foo demo package?  again, they are passing for me now in
this environment, let me know if you're seeing different failures.

Thanks again for taking the time to look at this, I really appreciate all of
your notes (and the buildout help!)  I'll try to be as responsive as I
possibly can.

thanks,
ethan

On Sun, Jan 25, 2009 at 9:31 AM, Martijn Pieters m...@zopatista.com wrote:

 On Sat, Jan 17, 2009 at 02:37, Ethan Jucovy ethan.juc...@gmail.com
 wrote:
  I've implemented PLIP #247, Automate ZCML Loading for Plone Plugins
  (http://plone.org/products/plone/roadmap/247) and committed a review
  buildout here:
   https://svn.plone.org/svn/plone/review/plip247-automate-plugin-zcml
  for your review.

 I have started my review.

 To my dismay, however, the z3c.autoinclude package has several test
 failures. I understand that this package is also being used by the
 Grok project, and it appears to work as advertised, but test failures
 is not a good sign of package quality. For example, utils.txt somehow
 triggers an assert on line 99 in utils.py, which has a somewhat
 distressing comment:

   assert len(non_namespaced_dists) == 1  ### we really are in
 trouble if we get into a situation with more than one

 Could you comment on the state of these failures?

  The buildout is branched from the 3.3 review bundle
  buildout based on buildout.eggtractor, which automatically generates ZCML
  slugs for development packages and puts them in
 parts/instance/etc/package-
  includes.  Since the purpose of PLIP 247 is to automate ZCML loading,
 those
  automatically generated ZCML slugs should be removed.  I've hardly ever
 used
  buildout so I'm not sure how to change that behavior -- sorry about that;
  I'll change it if I can figure out how.

 Simply *not* use buildout.eggtractor; you only have 3 eggs in this
 buildout, add them to the develop, eggs and zcml lines and Bob's your
 uncle. Alternatively, just set tractor-autoload-zcml to false, which
 you did.

 --
 Martijn Pieters

___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-01-30 Thread Martijn Pieters
On Fri, Jan 30, 2009 at 21:00, Ethan Jucovy ethan.juc...@gmail.com wrote:
  * after seeing your reply, I tried running the tests in the PLIP buildout's
 environment with `bin/instance test -s z3c.autoinclude` and did see failures
  * i've now fixed them

Yay! :-)

  * can you reconfirm that the failures you saw were from utils.txt? the ones
 i saw were from plugin.txt (though the assertion that was triggered was
 indeed the alarming one in utils.py)
  * briefly, the problem was that the foo module in the demonstration
 package i provided collided with another foo module that's installed in
 z3c.autoinclude's test environment
 (z3c.autoinclude/src/z3c/autoinclude/tests/FooPackage is the egg).  moral:
 namespaces are indeed a good idea.  :) i've renamed the demo package to
 plip247.foo and will also namespace z3c.autoinclude's test packages before
 the next release so this doesn't happen again

I've updated the foo.cfg buildout config to reflect this.

  * the reason that assertion was so alarming and vague is because, when i
 wrote the code, i had no idea what sort of situation could possibly trigger
 it. so i figured i might as well throw in an assertion, even if // because i
 couldn't imagine what its failure would mean. now that it's actually popped
 up i think i understand it: it's asserting that no more than one
 non-empty-virtual-namespace-module named foo (for any string foo) will
 be importable simultaneously.  i'll make the assertion less alarming and
 more informative as soon as i figure out a concise way to say that.

Great! It's a good idea to explicitly warn about this.

  * do the tests pass for you now in a fresh buildout // if you svn up and
 re-install the foo demo package?  again, they are passing for me now in
 this environment, let me know if you're seeing different failures.

The tests now all pass, I've upgraded my review verdict to a +1. :-)

 Thanks again for taking the time to look at this, I really appreciate all of
 your notes (and the buildout help!)  I'll try to be as responsive as I
 possibly can.

np! Thanks for your hard work on implementing the PLIP!

-- 
Martijn Pieters

___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-01-25 Thread Martijn Pieters
On Sat, Jan 17, 2009 at 02:37, Ethan Jucovy ethan.juc...@gmail.com wrote:
 I've implemented PLIP #247, Automate ZCML Loading for Plone Plugins
 (http://plone.org/products/plone/roadmap/247) and committed a review
 buildout here:
  https://svn.plone.org/svn/plone/review/plip247-automate-plugin-zcml
 for your review.

I have started my review.

To my dismay, however, the z3c.autoinclude package has several test
failures. I understand that this package is also being used by the
Grok project, and it appears to work as advertised, but test failures
is not a good sign of package quality. For example, utils.txt somehow
triggers an assert on line 99 in utils.py, which has a somewhat
distressing comment:

   assert len(non_namespaced_dists) == 1  ### we really are in
trouble if we get into a situation with more than one

Could you comment on the state of these failures?

 The buildout is branched from the 3.3 review bundle
 buildout based on buildout.eggtractor, which automatically generates ZCML
 slugs for development packages and puts them in parts/instance/etc/package-
 includes.  Since the purpose of PLIP 247 is to automate ZCML loading, those
 automatically generated ZCML slugs should be removed.  I've hardly ever used
 buildout so I'm not sure how to change that behavior -- sorry about that;
 I'll change it if I can figure out how.

Simply *not* use buildout.eggtractor; you only have 3 eggs in this
buildout, add them to the develop, eggs and zcml lines and Bob's your
uncle. Alternatively, just set tractor-autoload-zcml to false, which
you did.

-- 
Martijn Pieters

___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-01-25 Thread Martijn Pieters
On Sat, Jan 17, 2009 at 02:37, Ethan Jucovy ethan.juc...@gmail.com wrote:
 I've implemented PLIP #247, Automate ZCML Loading for Plone Plugins
 (http://plone.org/products/plone/roadmap/247) and committed a review
 buildout here:
  https://svn.plone.org/svn/plone/review/plip247-automate-plugin-zcml
 for your review.

Here is my full verdict, as committed to the bundle readme:

I've updated the buildout to not use buildout.eggtractor; you already had
disabled it's zcml autoloading but didn't add Products.CMFPlone to the zcml
line. Not using buildout.eggtractor at all is a better idea here, however.

I've also added a foo.cfg buildout configuration to test the (very nice!)
demonstration package. Just run bin/buildout -c foo.cfg to have the foo
package included.

After these changes, the z3c.autoinclude package appears to work as
advertised. However, when running the z3c.autoinclude tests I see test
failures, which worries me. I understand that the package is being used by
Grok as well, and this PLIP merely covers the inclusion of the package into
Plone, but I'd like to see some comments about what these test failures are
about.

Until I see comments that alleviate my concerns about the test
failures, I'm giving this PLIP a +0.

-- 
Martijn Pieters

___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] PLIP #247 ready for review (I think)

2009-01-18 Thread Israel Saeta Pérez
On Sat, Jan 17, 2009 at 2:37 AM, Ethan Jucovy ethan.juc...@gmail.comwrote:


 Some of the things that people have said ought to be discussed about PLIP
 #247 are:
   1) impact on server startup time
   2) implications for test environments
   3) stabilizing and releasing a new version of z3c.autoinclude
   4) debugging tools/APIs for z3c.autoinclude
 *  5) documentation and/or code generation templates to explain the entry
 point for plugin authors*

 I'll begin working on #3 immediately, since there's plenty I can do there
 while discussion is still happening.

 Please let me know if there's anything else I'll need to submit for the
 PLIP's review.


I'm not a member of the Framework Team so this is not mandatory for the
PLIP's review, but as a member of the Documentation Team I would appreciate
number (5).

Something like Before, we did this to accomplish this task. Now, we can do
that., as Wichert (?) suggested, so we would be able to find and update
affected docs easily.

Thanks in advance!

-- israel
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team