Re: [Framework-Team] Plone 4.1 Framework Team Meeting Minutes– 17 August, 2010

2010-08-18 Thread David Glick
Great work so far, framework team!

On 8/17/10 10:39 PM, Eric Steele wrote:
 * 30 PLIPs!
 * Cover those PLIPs which were dependencies of other PLIPs first.
   • 9473 (z3cform)
   • Ross: Better than Archetypes at form generation, better 
 documentation than formlib, but still requires a lot of knowledge of the 
 internals to work with.
   • (Small?) improvement over formlib, extensive (but not very 
 approachable) documentation.
   • Approachability can be improved with layers on top: autoform, 
 dexterity.
   • Heavy Plone adoption will likely lead toward better 
 documentation.
   • plone.app.registry makes it largely transparent
   • Approved
   
Fwiw, Martin has some partly-finished more approachable documentation at
http://plone.org/products/dexterity/documentation/manual/schema-driven-forms/. 
He needs some help finishing it though, as he's busy updating his book.
   • 10877 (Plone/CMFPlone egg separation)
   • Concerns:
   • Subversion location change
   • Confusion of integrators looking for moved code
   • Win for application developers after a more stripped-down 
 Plone, transparent to the remainder
   • What do we gain by doing this in a minor release?
   • Not particularly needed right away, but it's 
 something that would be widely used if available.
   • Low risk
   • Precedent in Plone 3.2
   • Eventually make Archetypes optional.
   • Should be an immediate change. Other plips will be branching 
 Plone, it'll be a mess to merge.
   
+1, Good call.  (Too late for a few of us though...oh well, hopefully
with svn mergeinfo it won't be too bad.)
   • 10787 (Site admin role)
   • Like the idea. Nervous about required updates, reindexing
   • Everyone who would be assigned this new role would have 
 previously been a manager. Should be safe enough for a minor release.
   • Add site admin group?
   
I've been meaning to add that as a task to the ticket.
   • Concern over ability of site admin to assign themselves 
 manager rights
   • Remove sharing page manager role, add site admin?
   • Prevent site admin from gaining manager role?
   • Should control panels use same registry as sharing 
 tab?
   
I don't think the manager role appears on the sharing page.  Anyway,
it's a valid concern which I'll find a way to address.
   • 10888 (Make KSS optional)
   • Quick consensus
   • Selenium testing
   • KSS does this. Plone doesn't. Do we require plip to 
 add this for rewritten work?
   • Approved
   
Don't worry; if the work we do isn't tested we haven't done the job right.
   • 10778 (Stand-alone UUID)
   • Required step toward allowing Dexterity to work well in a 
 Plone site
   • Community confusion that IntIds are unique identifiers, needs 
 to be corrected
   • Exist as a well-used add-on that Dexterity depends on
   
Dexterity doesn't depend on plone.app.uuid yet.
   • 9327 (Unified interface for lists of content)
   • Very useful for integrators
   • Being used by search results, collections PLIPs
   • Yes, but if the PLIPs depending on this don't make it 
 through, likely not to include it.
   • Approved
   
Will the existing folder listing templates be updated to use the new
API? Doing so might be difficult to do without breaking backwards
compatibility, but not doing so makes the word unified in the title a
bit of a misnomer, and reduces the value of this (makes it one more
thing to learn, instead of a replacement that is easier to learn).


--  
David Glick
 Web Developer
 davidgl...@groundwire.org
 206.286.1235x32

Groundwire: You Are Connected   
 http://groundwire.org  
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] Plone 4.1 Framework Team Meetin g Minutes– 17 August, 2010

2010-08-18 Thread Martin Aspeli
Hi folks,

A few comments on things I'm involved in.

        • 9473 (z3cform)
                • Ross: Better than Archetypes at form generation, better 
 documentation than formlib, but still requires a lot of knowledge of the 
 internals to work with.
                • (Small?) improvement over formlib, extensive (but not very 
 approachable) documentation.
                • Approachability can be improved with layers on top: 
 autoform, dexterity.
                • Heavy Plone adoption will likely lead toward better 
 documentation.

I started writing some quite extensive, Plone-oriented, tutorial-style
documentation on plone.directives.form (the Grok-like way to build
z3c.form forms). I think it'd be quite feasible to copy this and
change it to cover the more traditional plone.app.z3cform. At the
moment, it's about 80% complete, but a big project + the new edition
of my book got in the way. If anyone is willing and able to run with
this, I'd be happy to assist.

                • plone.app.registry makes it largely transparent
                • Approved
        • 9472 (plone.app.registry)
                • Is a win for persistent settings storage
                • Form proxying makes it easy
                • It just works
                • Needs ui work

I'd like to know what UI work it needs at this point. The
portal_registry UI is basic, for sure, but functional, moderately good
looking, and works pretty efficiently now that we have p.a.jquerytools
overlays. It'd be nice to have a JavaScript based substring match
search, perhaps. Beyond that, though, proper UI should go into
dedicated control panels (which p.a.registry helps you build)

                • Approved
        • 10776 (Zope 2.13)
                • Keep up with Zope, don't get behind like we did in the past
                • WSGI support: Is it ready yet? It's

You mean it is? If so: w00t!

        • 10846 (plone.testing/plone.app.testing)
                • Looks great
                • Do we say this is the best practice?
                        • Wait
                        • Just including this in our KGS for now should steer 
 people towards it

+1 to this sentiment

                • Eat our own dogfood. Implement some core package tests using 
 this.
                        • Does this need its own PLIP?
                        • We're opening the door for that to show up in the 
 future.
                        • Great 2010 conf sprint topic

I suggest we just encourage new packages for 4.1 and onwards to use
it. I'd be happy to make plone.[app.]uuid use this, for example.

                • PLIP could make it clearer how best to encourage movement to 
 new framework over existing framework

I think this needs wider discussion first, but agreed.

                • Approved
        • 10778 (Stand-alone UUID)
                • Required step toward allowing Dexterity to work well in a 
 Plone site
                • Community confusion that IntIds are unique identifiers, 
 needs to be corrected
                • Exist as a well-used add-on that Dexterity depends on

Well, not yet, but soon - especially if #9938 makes it - see below.

                • It's definitely necessary functionality, but is it 
 worthwhile in 4.1 if nothing in 4.1 using it?
                • Do we say This is great, please make the package. We'll 
 include it later, when it's in use. ?
                • Martin's never been afraid to create new packages
                • Looking for our blessing as the designated way forward?
                • Small change to Plone (catalog index)
                • Held

I think my reason for wanting it in the core, is twofold:

 - There's a proliferation of half-solutions to this problem right
now. We need something blessed that people feel safe relying on. There
is a cost associated with each half-solution in terms of catalogue
bloat and in terms of confusion.

 - It's difficult for third party packages to depend on this kind of
thing (as we saw with zope.intid), because to be useful, it requires a
new catalogue index and a full re-index on existing sites. That's the
kind of thing that people may expect in a Plone .x release, but not
necessarily just to install a product that happens to depend on it.

        • 9938 (Factor custom output transforms out of editors)
                • Yes!
                • Why don't we do this already?
                • Reduces risk (listed risk is more of a deliverable. ;) )
                • Approved

I think if we do this, we should also do #10778. One of the big things
I really, really want is proper link-by-uid for Dexterity content. We
can't do that if the link-by-uid transforms use Archetypes' UID(), and
making a new, future-oriented package for this that's tied to AT seems
like a step backwards and an invitation for future migration pain (uid
links end up being embedded in content, after all).

Martin
___
Framework-Team mailing list

[Framework-Team] Merging strategy for many PLIPs

2010-08-18 Thread Laurence Rowe
In the 4.0 cycle, PLIP branches were merged in one 'big bang' after
our implementation review. It was a painful process last time, with 30
PLIPs I don't think it will realistically work this time.

Instead of a single deadline, I propose that we ask PLIP implementors
to submit their PLIP for implementation review and merging as soon as
their PLIP is ready - many are already close to complete as they
rolled over from 4.0. At an appropriate point we'll draw the line and
the remaining PLIPs will be retargeted at 4.2 (with their in-principal
approved status kept.)

I think this could help better spread the load on us (and in
particular on Eric.)

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


Re: [Framework-Team] Plone 4.1 Framework Team Meet ing Minutes– 17 August, 2010

2010-08-18 Thread Godefroid Chapelle
Le 18/08/10 07:39, Eric Steele a écrit :

   • 10888 (Make KSS optional)
   • Quick consensus
   • Selenium testing
   • KSS does this. Plone doesn't. Do we require plip to 
 add this for rewritten work?

Short: This plip is a chance for the FWT to give a strong push in the 
right direction by REQUIRING AUTOMATED tests for JS code.

Longer:

Plone runs more and more js code (iow in the browser), too much being 
untested (AFAIK).

It is time to require automated tests for new JS code added to Plone 
core; both js unit and functional (selenium or windmill) tests.

It would be an opportunity for the community to experiment and decide on 
best practices in this context.

We need these experience and tests as we plan to integrate more complex 
code (iow code easier to break) like the foreseen Deco editor.

I'd be happy to participate to a sprint focused on setting up those 
practices and building a set of tests for existing JS code.

However, I am not proposing to pull the community : I tried at various 
sprints and miserably failed.

Regards
-- 
Godefroid Chapelle (aka __gotcha) http://bubblenet.be

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


Re: [Framework-Team] Plone 4.1 Framework Team Meeting Minutes– 17 August, 2010

2010-08-18 Thread David Glick
On 8/18/10 7:35 AM, Godefroid Chapelle wrote:
 Le 18/08/10 07:39, Eric Steele a écrit :

   
  • 10888 (Make KSS optional)
  • Quick consensus
  • Selenium testing
  • KSS does this. Plone doesn't. Do we require plip to 
 add this for rewritten work?
 
 Short: This plip is a chance for the FWT to give a strong push in the 
 right direction by REQUIRING AUTOMATED tests for JS code.

 Longer:

 Plone runs more and more js code (iow in the browser), too much being 
 untested (AFAIK).

 It is time to require automated tests for new JS code added to Plone 
 core; both js unit and functional (selenium or windmill) tests.

 It would be an opportunity for the community to experiment and decide on 
 best practices in this context.

 We need these experience and tests as we plan to integrate more complex 
 code (iow code easier to break) like the foreseen Deco editor.

 I'd be happy to participate to a sprint focused on setting up those 
 practices and building a set of tests for existing JS code.

 However, I am not proposing to pull the community : I tried at various 
 sprints and miserably failed.
   
Godefroid, I am definitely interested to learn from your experience in
this area. Regarding functional testing of Javascript, would you
recommend looking at KSS to see how it is done there, or are there newer
best practices that have emerged since those tests were written?

peace,
--  
David Glick
 Web Developer
 davidgl...@groundwire.org
 206.286.1235x32

Groundwire: You Are Connected   
 http://groundwire.org  
___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


Re: [Framework-Team] Plone 4.1 Framework Team M eeting Minutes– 17 August, 2010

2010-08-18 Thread Dorneles Treméa
Hello,

 • 10888 (Make KSS optional)
 • Quick consensus
 • Selenium testing
 • KSS does this. Plone doesn't. Do we require plip
 to add this for rewritten work?
 
 
 Short: This plip is a chance for the FWT to give a strong push in the 
 right direction by REQUIRING AUTOMATED tests for JS code.
 
 Longer:
 
 Plone runs more and more js code (iow in the browser), too much being 
 untested (AFAIK).
 
 It is time to require automated tests for new JS code added to Plone 
 core; both js unit and functional (selenium or windmill) tests.
 
 It would be an opportunity for the community to experiment and decide on 
 best practices in this context.
 
 We need these experience and tests as we plan to integrate more complex 
 code (iow code easier to break) like the foreseen Deco editor.
 
 I'd be happy to participate to a sprint focused on setting up those 
 practices and building a set of tests for existing JS code.
 
 However, I am not proposing to pull the community : I tried at various 
 sprints and miserably failed.
 
 
 Godefroid, I am definitely interested to learn from your experience in
 this area. Regarding functional testing of Javascript, would you
 recommend looking at KSS to see how it is done there, or are there newer
 best practices that have emerged since those tests were written?

from his recent work on Canonical, I'm sure Sidnei has some great
insights to share here, don't you Sidnei? :-)

--
Dorneles Treméa
Enfold Systems
http://www.enfoldsystems.com
Fax +1 832 201 8856
Office +1 713 942 2377 Ext 211
Skype dtremea

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


Re: [Framework-Team] Plone 4.1 Framework Team Meeting Minutes– 17 August, 2010

2010-08-18 Thread Geir Bækholt
On 18-08-2010 08.07, Martin Aspeli wrote:
 • 10778 (Stand-alone UUID)

 I think my reason for wanting it in the core, is twofold:

   - There's a proliferation of half-solutions to this problem right
 now. We need something blessed that people feel safe relying on. There
 is a cost associated with each half-solution in terms of catalogue
 bloat and in terms of confusion.

We have repeatedly had frustration with the lack of a unified UID system 
that we can depend on when writing add-ons. To base something on it as a 
developer, you need to know you can depend on it being available always.

I don't think it makes sense to postpone it because nothing uses it yet.

-- 
Geir Bækholt
www.jarn.com/baekholt

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


Re: [Framework-Team] Plone 4.1 Framework Team Meetin g Minutes– 17 August, 2010

2010-08-18 Thread Martin Aspeli
On 19 August 2010 06:47, Geir Bækholt pl...@baekholt.com wrote:
 On 18-08-2010 08.07, Martin Aspeli wrote:
         • 10778 (Stand-alone UUID)

 I think my reason for wanting it in the core, is twofold:

   - There's a proliferation of half-solutions to this problem right
 now. We need something blessed that people feel safe relying on. There
 is a cost associated with each half-solution in terms of catalogue
 bloat and in terms of confusion.

 We have repeatedly had frustration with the lack of a unified UID system
 that we can depend on when writing add-ons. To base something on it as a
 developer, you need to know you can depend on it being available always.

 I don't think it makes sense to postpone it because nothing uses it yet.

Right - I think it becomes a bit of a chicken and egg problem otherwise.

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


Re: [Framework-Team] Plone 4.1 Framework Team Meetin g Minutes– 17 August, 2010

2010-08-18 Thread Martin Aspeli
On 19 August 2010 09:20, Martin Aspeli optilude+li...@gmail.com wrote:
 On 19 August 2010 06:47, Geir Bækholt pl...@baekholt.com wrote:
 On 18-08-2010 08.07, Martin Aspeli wrote:
         • 10778 (Stand-alone UUID)

 I think my reason for wanting it in the core, is twofold:

   - There's a proliferation of half-solutions to this problem right
 now. We need something blessed that people feel safe relying on. There
 is a cost associated with each half-solution in terms of catalogue
 bloat and in terms of confusion.

 We have repeatedly had frustration with the lack of a unified UID system
 that we can depend on when writing add-ons. To base something on it as a
 developer, you need to know you can depend on it being available always.

 I don't think it makes sense to postpone it because nothing uses it yet.

 Right - I think it becomes a bit of a chicken and egg problem otherwise.

Also: If we do the PLIP to separate out link-by-UID and similar
transforms, that's a natural candidate to use these UUIDs. :)

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


Re: [Framework-Team] Plone 4.1 Framework Team Meetin g Minutes– 17 August, 2010

2010-08-18 Thread Alec Mitchell
On Wed, Aug 18, 2010 at 5:21 PM, Martin Aspeli optilude+li...@gmail.com wrote:
 On 19 August 2010 09:20, Martin Aspeli optilude+li...@gmail.com wrote:
 On 19 August 2010 06:47, Geir Bækholt pl...@baekholt.com wrote:
 On 18-08-2010 08.07, Martin Aspeli wrote:
         • 10778 (Stand-alone UUID)

 I think my reason for wanting it in the core, is twofold:

   - There's a proliferation of half-solutions to this problem right
 now. We need something blessed that people feel safe relying on. There
 is a cost associated with each half-solution in terms of catalogue
 bloat and in terms of confusion.

 We have repeatedly had frustration with the lack of a unified UID system
 that we can depend on when writing add-ons. To base something on it as a
 developer, you need to know you can depend on it being available always.

 I don't think it makes sense to postpone it because nothing uses it yet.

 Right - I think it becomes a bit of a chicken and egg problem otherwise.

 Also: If we do the PLIP to separate out link-by-UID and similar
 transforms, that's a natural candidate to use these UUIDs. :)

Though I voted against the inclusion of the UUID PLIP on it's own, if
the link-by-uuid PLIP makes good use of it, then it certainly could be
worth including.  If there were a PLIP to make AT compatible with this
implementation and convert Plone to using it, that would be a highly
compelling argument for its inclusion.  Otherwise we end up with Plone
directly using one non-deprecated UID API while promoting another
(which happens to not be useful anywhere within Plone itself).  Don't
we already suffer from enough of this kind of framework-level
confusion?

By including this wouldn't we essentially be saying, Martin made
this, and we think it's a nice thing; so now it's part of the core?
What other nice little libraries should we make part of Plone just
because they might be useful to some developers or are used by a few
add-ons that we happen to like?  I'm sure we could think of quite a
few, but I also think there's a good reason we don't generally do
this.

Adopting a library that we don't actually use, promotes a vision of
Plone as a pure framework/toolkit that I'm not entirely comfortable
with.  Plone is an application (though a highly extensible one), and I
don't really think we should be in the business of providing APIs
beyond those consumed by it and those used to customize it.

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


Re: [Framework-Team] Plone 4.1 Framework Team Meetin g Minutes– 17 August, 2010

2010-08-18 Thread Martin Aspeli
Hi Alec,

On 19 August 2010 09:52, Alec Mitchell ap...@columbia.edu wrote:

 Though I voted against the inclusion of the UUID PLIP on it's own, if
 the link-by-uuid PLIP makes good use of it, then it certainly could be
 worth including.

I'd like to work with David to make sure that happens. It seems like
an obvious win.

 If there were a PLIP to make AT compatible with this
 implementation and convert Plone to using it, that would be a highly
 compelling argument for its inclusion.

I think Plone using it should mean the link by UID mechanism in
the first instance.

I'd like to experiment with making the AT UID() and reference/UID
catalogs use plone.uuid as well. Certainly, that's where I'd like us
to end up. I just didn't want to be too ambitious with the PLIP in the
first instance, in case we end up with complicated migrations or BBB
issues.

Of course, plone.uuid on its own works perfectly well with Archetypes
objects. The problem is that as it's written right now, it doesn't
care about the AT UID() method and related catalogues.

One thing we probably could do, is to make the Archetypes make_uuid()
method use the same UUID algorithm as plone.uuid. I'm not sure if we'd
want to migrate old content. They probably shouldn't clash, and making
changes could be problematic in case of embedded link-by-uid
references and similar.

We could also/instead make an IUUID adapter implementation for
Archetypes content that looked context.UID(), and let AT continue to
manage its own UUIDs (but ideally using the same UUID generating
algorithm) to bridge the two.

We could make the UUID indexer use the UID catalogue index instead
of creating a new one. This would be more consistent, at least if the
UUIDs looked and worked the same.

If there's appetite for this type of a change, I'd be happy to implement it.

 Otherwise we end up with Plone
 directly using one non-deprecated UID API while promoting another
 (which happens to not be useful anywhere within Plone itself).  Don't
 we already suffer from enough of this kind of framework-level
 confusion?

I guess it depends on your point of view.

To me, we don't actually have proper UUID mechanism at present.
Archetypes has a UID() method, which exposes an ID that's principally
used as an implementation detail of its reference engine. That
reference engine (and by extension the UID() method and the way in
which it generates UUIDs) is tightly bound to AT's base classes and
virtually impossible to use elsewhere. You can't have these kinds of
UID's on comments, for example, or on portlets, or on the Plone site
object, or on any non-AT content (e.g. using Dexterity).

I wrote the PLIP because I'm uncomfortable with the status quo. People
end up making their own half-solutions, e.g. using their own counters,
physical paths (which are not stable), keeping their own BTrees of
content, using zope.intid or faking up the UID() method in a way that
isn't quite compatible with how AT uses it.

 By including this wouldn't we essentially be saying, Martin made
 this, and we think it's a nice thing; so now it's part of the core?
 What other nice little libraries should we make part of Plone just
 because they might be useful to some developers or are used by a few
 add-ons that we happen to like?  I'm sure we could think of quite a
 few, but I also think there's a good reason we don't generally do
 this.

I agree with this, and I'm really not shy about keeping packages as
non-core dependencies. In this case, though, I think there are
compelling reasons to have a single API that is exposed as a service
by the core of Plone, as outlined in my original message above.

 Adopting a library that we don't actually use, promotes a vision of
 Plone as a pure framework/toolkit that I'm not entirely comfortable
 with.  Plone is an application (though a highly extensible one), and I
 don't really think we should be in the business of providing APIs
 beyond those consumed by it and those used to customize it.

I think we should be in the business of making Plone useful to
customers and integrators. Right now, our story for uniquely
identifying content and other objects (e.g. comments) sucks. It feels
half-baked compared to other CMS's. It makes it difficult to build
services on top of Plone that need to uniquely identify content.

In my previous project, here's where the lack of a proper UUID hurt:

 - We needed to write migrations, and we needed to identify
already-imported content to update or ignore
 - We needed link-by-UID for non-AT content
 - We needed to embed some content references in hidden form fields. A
UUID would've been a natural token here.
 - We wanted to expose certain things over web services that needed a
short token to identify particular content items, which would be
stable even if those items were moved

I know others have had similar concerns. It's difficult to work on
multilingual non-AT content, for example, without having a good UUID
implementation. Some of the web services