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

2010-08-19 Thread Hanno Schlichting
Hi.

On Thu, Aug 19, 2010 at 4:08 AM, Martin Aspeli optilude+li...@gmail.com wrote:
 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.

Please be aware that the link-by-uid functionality is multi-lingual
aware. As such it relies on looking up the translations of any UID
target. If you change the behavior to use a different uid mechanism,
it becomes more expensive to calculate those translations, as we'd
have to convert from AT UID's to uuid's a number of times.

I'd prefer if we kept all reference / link related functionality to
use the AT functionality for now.

Once we have plone.uuid as part of core Plone, I'm planning to rewrite
LinguaPlone to make use of this instead of the AT uid's. At that point
we can more easily switch features over to the new mechanism. So far
as I was hoping to see the plone.uuid feature to make it into 4.1,
which would give me enough time to finish the LinguaPlone move for
4.2.

I can only work on this if we do get plone.uuid into 4.1 though.
Requiring the complete uuid installation as part of a LinguaPlone
upgrade is too much to ask from users.

Hanno
___
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-19 Thread Godefroid Chapelle
Le 19/08/10 12:29, Sidnei da Silva a écrit :
 On Wed, Aug 18, 2010 at 2:14 PM, Dorneles Treméadorne...@tremea.com  wrote:
 from his recent work on Canonical, I'm sure Sidnei has some great
 insights to share here, don't you Sidnei? :-)

 We've been using YUI, so Y.Test as the test framework. We run tests
 manually in the browser when debugging, but for automated unit tests
 we use JsTestDriver from Google to drive the tests, save output to XML
 then report failure/success back to Python's unittest by parsing the
 XML. There's a little bridging needed to get the tests registered with
 JsTestDriver, but not terrible. JsTestDriver ships with a version of
 jQuery, but might not be the same you guys are using. There's another
 test runner coming up, YETI, but it might be YUI-specific.

Is JsTestDriver qUnit compatible ?

 For functional tests, we're using Selenium2, which is alpha-something
 IIRC. It's *way* better than Selenium1. We're using the webdriver API
 (remote webdriver and Firefox, on local machine), and it's Good

Do you test multiple browsers or only Firefox ?

 Enough, just forget about recording tests in the browser and saving
 them - at least for now. One way or another, writing tests manually
 isn't that hard once you get the idea, and produces better, more
 concise tests, specially if you have to match elements with CSS
 classes or XPath.

Do you use Selenium IDE or write from scratch ?

 The Launchpad team is using Windmill. From the amount of groaning I
 hear over there, I would avoid it at all costs.

First time I hear bad sound about Windmill. Happy that I am no the only 
one not convinced.


 It is possible to run headless tests with both Selenium2 and Windmill,
 under xvfb-run. Pretty trivial actually.

 Forget about writing a ton of tiny tests though. I would say
 functional Selenium tests should be end-to-end, massive use case
 tests. Because they take a long time to run. If you think Plone tests
 take a long time, think again. ;)

Reason why I insist on automated tests. Functional tests run too slowly 
to rely on developers running them regularly. We need to delegate to 
Hudson or buildbot.


 -- Sidnei

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 Meetin g Minutes– 17 August, 2010

2010-08-19 Thread Martin Aspeli
On 19 August 2010 23:24, Godefroid Chapelle got...@bubblenet.be wrote:

 First time I hear bad sound about Windmill. Happy that I am no the only
 one not convinced.

I hear bad sounds too from time to time, but no-one has yet been
able to tell me what the real problem is. I'd be quite interested in
any specifics.

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 Meeting Minutes– 17 August, 2010

2010-08-19 Thread Godefroid Chapelle
Le 18/08/10 19:01, David Glick a écrit :
 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?

I think KSS testing practices are OK.

Browse to

http://demo.kssproject.org/zuite/core/TestRunner.html?test=http//demo.kssproject.org/suite.html

Then click Run all tests

However, we miss continuous integration.

I am procrastinating since a long time to refactor KSS buildout and add 
a builbot buildout. I guess it should not be that hard today (compared 
to the hell it was) when I sum up advances in Selenium RC, buildbot and 
buildout.

I would definitely take a look at gocept.selenium. Gocept has worked a 
lot on it those last monthes so I guess if fits their workflow.

Christian, would someone from your team mind to give us some feedback ?

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 Meetin g Minutes– 17 August, 2010

2010-08-19 Thread Steve McMahon
About a month ago, I spent some time with windmill, trying to do tests for
plone.app.jquerytools.

Windmill looked OK, but when I tried to automate the testing as a test case
with niteoweb.windmill, I encountered lots of problems and ended up giving
up on it. It looked like I was having trouble anytime content was changed by
a test. Perhaps I wasn't patient enough, or misunderstood something about
the framework, but it seemed at times like I was working in a multi-threaded
environment where the threads weren't synchronized.

Steve

On Thu, Aug 19, 2010 at 7:37 AM, Martin Aspeli
optilude+li...@gmail.comoptilude%2bli...@gmail.com
 wrote:

 On 19 August 2010 23:24, Godefroid Chapelle got...@bubblenet.be wrote:

  First time I hear bad sound about Windmill. Happy that I am no the only
  one not convinced.

 I hear bad sounds too from time to time, but no-one has yet been
 able to tell me what the real problem is. I'd be quite interested in
 any specifics.

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

___
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-19 Thread Martin Aspeli
On 20 August 2010 00:26, Steve McMahon st...@dcn.org wrote:
 About a month ago, I spent some time with windmill, trying to do tests for
 plone.app.jquerytools.

 Windmill looked OK, but when I tried to automate the testing as a test case
 with niteoweb.windmill, I encountered lots of problems and ended up giving
 up on it. It looked like I was having trouble anytime content was changed by
 a test. Perhaps I wasn't patient enough, or misunderstood something about
 the framework, but it seemed at times like I was working in a multi-threaded
 environment where the threads weren't synchronized.

Strange. We've never seen anything to that effect. Oh well.

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-19 Thread Alec Mitchell
On Wed, Aug 18, 2010 at 7:08 PM, Martin Aspeli optilude+li...@gmail.com wrote:
 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.

I think this is probably the way forward; though for 4.1 we should
probably do our best to preserve existing UIDs and avoid serious
content migration headaches.  One thing that concerns me on the
technical side is that a universal UUID mechanism isn't really all
that useful unless existing code (e.g. the AT reference browser)
provides support for it.  Without at least some minimal support within
the existing framework, it would appear to make the lives of people
who live on the bleeding edge (e.g. dexterity users) slightly easier
at the expense of inconveniencing the vast majority of users by
forcing a slow and largely unnecessary migration step.

 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.

It's my impression that people who are doing things with non-AT
content are an extremely small and highly experienced minority of
Plone users.  I suspect that the vast majority of those users are core
developers and subscribe to this list.  Those users are probably
already aware that plone(.app).uuid is the future and can depend on
it if they need it.  If not, those who wish to promote it as such can
do so, but I don't think that should be the job of the framework team
(or the framework itself).

 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 

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

2010-08-19 Thread Steve McMahon
I should have added that I'm very enthusiastic about getting some JavaScript
continuous integration testing in place, and will happily learn whatever
framework we choose. We're getting way too much browser-side code to be
without systematic tests.

On Thu, Aug 19, 2010 at 8:40 AM, Martin Aspeli
optilude+li...@gmail.comoptilude%2bli...@gmail.com
 wrote:

 On 20 August 2010 00:26, Steve McMahon st...@dcn.org wrote:
  About a month ago, I spent some time with windmill, trying to do tests
 for
  plone.app.jquerytools.
 
  Windmill looked OK, but when I tried to automate the testing as a test
 case
  with niteoweb.windmill, I encountered lots of problems and ended up
 giving
  up on it. It looked like I was having trouble anytime content was changed
 by
  a test. Perhaps I wasn't patient enough, or misunderstood something about
  the framework, but it seemed at times like I was working in a
 multi-threaded
  environment where the threads weren't synchronized.

 Strange. We've never seen anything to that effect. Oh well.

 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-19 Thread Sidnei da Silva
On Thu, Aug 19, 2010 at 11:37 AM, Martin Aspeli
optilude+li...@gmail.com wrote:
 On 19 August 2010 23:24, Godefroid Chapelle got...@bubblenet.be wrote:

 First time I hear bad sound about Windmill. Happy that I am no the only
 one not convinced.

 I hear bad sounds too from time to time, but no-one has yet been
 able to tell me what the real problem is. I'd be quite interested in
 any specifics.

Put simply: Both Selenium1 and Windmill use Javascript to control the
browser, which isn't great because it has to compete with Javascript
executing in the browser. Selenium2 uses WebDriver, which controls the
browser by way of browser-specific extensions (it takes care of
setting up a profile with the extension installed for you), so it has
full control over the browser, even allowing interaction with browser
dialogs and taking screenshots.

-- Sidnei
___
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-19 Thread Eric Steele
On Aug 19, 2010, at 10:24 AM, Godefroid Chapelle wrote:
 
 Reason why I insist on automated tests. Functional tests run too slowly 
 to rely on developers running them regularly. We need to delegate to 
 Hudson or buildbot.

I agree completely. 

I very nearly* have a Hudson/Selenium Grid/plone.app.testing pile running 
Selenium tests automatically across multiple browsers and machines. If I can 
convince the kid to give me a few free hours to work today, I'll wrap it up and 
write up what I have.

* For some definition of nearly

Eric
___
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-19 Thread Martin Aspeli
Hi Alec,

On 20 August 2010 00:56, Alec Mitchell ap...@columbia.edu wrote:

 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.

 I think this is probably the way forward; though for 4.1 we should
 probably do our best to preserve existing UIDs and avoid serious
 content migration headaches.  One thing that concerns me on the
 technical side is that a universal UUID mechanism isn't really all
 that useful unless existing code (e.g. the AT reference browser)
 provides support for it.  Without at least some minimal support within
 the existing framework, it would appear to make the lives of people
 who live on the bleeding edge (e.g. dexterity users) slightly easier
 at the expense of inconveniencing the vast majority of users by
 forcing a slow and largely unnecessary migration step.

So, we must provide some new features so that we can justify the
feature we want to have. :-)

Anyway, if the PLIP is accepted, I'd be happy to spend some time on
selective AT surgery (including the widget), unless the FWT feels this
is too risky. Ditto for link-by-uid in general.

 It's my impression that people who are doing things with non-AT
 content are an extremely small and highly experienced minority of
 Plone users.

The Dexterity list subscription rate and issue tracker suggest this is
at least starting to change. It's easy to choke off adoption with that
attitude, though.

Three of the biggest holes in the Dexterity story that makes life
difficult right now are a lack of link-by-uid, no mature multilingual
support, and an inability to use Dexterity objects as reference
targets from AT content. The first we can solve for 4.1 with this
PLIP. The second will become more feasible with proper UUIDs according
to Hanno. And the latter is the ideal end goal of any AT refactoring
as per above.

 I suspect that the vast majority of those users are core
 developers and subscribe to this list.  Those users are probably
 already aware that plone(.app).uuid is the future and can depend on
 it if they need it.  If not, those who wish to promote it as such can
 do so, but I don't think that should be the job of the framework team
 (or the framework itself).

I think you're missing my point: Since a UUID is only useful if it's
universally applied to all content, it needs to be a service provided
by Plone and in effect for all content and other objects, such as
comments and (possibly) users, groups, etc. Simply depending on the
package and using its API is not enough (if it was, I would never have
submitted the PLIP). At the very least, any and all packages wanting
proper UUIDs would need to provide a blunt installation step to
allocate and index UUIDs for all content, with some logic to
understand when this would be needed. Furthermore, divergent
implementations create non-trivial duplication of effort and catalogue
bloat.

Hanno already indicated he was uncomfortable with this as a
LinguaPlone requirement. So, at least, we have two big third party
packages - LinguaPlone and Dexterity - asking for this functionality
so that they themselves can move forward, with a view to improving
Plone core in the future.

The question to me is how we balance the risk of doing too much now
in terms of modifying existing core components, against the risk of
doing something that ultimately proves an inferior solution and
doesn't get used properly. I think this is the sort of evolutionary
argument we're always going to have for framework improvement work.

All that said, I think we may solve this problem by widening the
PLIP to include more of the AT changes up front, which is probably a
good thing anyway.

Also: this discussion now has more lines of text than plone.uuid and
plone.app.uuid have code. But that may be my own fault. ;-)

Martin

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

2010-08-19 Thread Godefroid Chapelle
Le 19/08/10 18:14, Eric Steele a écrit :
 On Aug 19, 2010, at 10:24 AM, Godefroid Chapelle wrote:

 Reason why I insist on automated tests. Functional tests run too slowly
 to rely on developers running them regularly. We need to delegate to
 Hudson or buildbot.

 I agree completely.

 I very nearly* have a Hudson/Selenium Grid/plone.app.testing pile running 
 Selenium tests automatically across multiple browsers and machines. If I can 
 convince the kid to give me a few free hours to work today, I'll wrap it up 
 and write up what I have.

Have you written a new layer ? Have you looked at gocept.selenium ?

 * For some definition of nearly

 Eric


-- 
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 Meetin g Minutes– 17 August, 2010

2010-08-19 Thread Alec Mitchell
Hi Martin,

On Thu, Aug 19, 2010 at 9:24 AM, Martin Aspeli optilude+li...@gmail.com wrote:
 Hi Alec,

 On 20 August 2010 00:56, Alec Mitchell ap...@columbia.edu wrote:

 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.

 I think this is probably the way forward; though for 4.1 we should
 probably do our best to preserve existing UIDs and avoid serious
 content migration headaches.  One thing that concerns me on the
 technical side is that a universal UUID mechanism isn't really all
 that useful unless existing code (e.g. the AT reference browser)
 provides support for it.  Without at least some minimal support within
 the existing framework, it would appear to make the lives of people
 who live on the bleeding edge (e.g. dexterity users) slightly easier
 at the expense of inconveniencing the vast majority of users by
 forcing a slow and largely unnecessary migration step.

 So, we must provide some new features so that we can justify the
 feature we want to have. :-)

In my opinion, there must be a feature that's meaningful for Plone the
application to justify adding features to the Plone the framework,
yes.

 Anyway, if the PLIP is accepted, I'd be happy to spend some time on
 selective AT surgery (including the widget), unless the FWT feels this
 is too risky. Ditto for link-by-uid in general.

Great, I don't think allowing the reference browser to support
referencing non-AT content sounds particularly risky, and it's a
pretty compelling feature (i.e Plone supports references between
heterogenous content types).

 It's my impression that people who are doing things with non-AT
 content are an extremely small and highly experienced minority of
 Plone users.

 The Dexterity list subscription rate and issue tracker suggest this is
 at least starting to change. It's easy to choke off adoption with that
 attitude, though.

 Three of the biggest holes in the Dexterity story that makes life
 difficult right now are a lack of link-by-uid, no mature multilingual
 support, and an inability to use Dexterity objects as reference
 targets from AT content. The first we can solve for 4.1 with this
 PLIP. The second will become more feasible with proper UUIDs according
 to Hanno. And the latter is the ideal end goal of any AT refactoring
 as per above.

The first is unequivocally solved by simply having dexterity depend on
plone.app.uuid.  For the second, if LinguaPlone wants to support
dexterity, it can also depend on plone.app.uuid (even as a soft
dependency if that's less worrisome).  The third is the only part that
this PLIP would seem to be necessary for, but it's not actually a part
of this PLIP, as you know.

 I suspect that the vast majority of those users are core
 developers and subscribe to this list.  Those users are probably
 already aware that plone(.app).uuid is the future and can depend on
 it if they need it.  If not, those who wish to promote it as such can
 do so, but I don't think that should be the job of the framework team
 (or the framework itself).

 I think you're missing my point: Since a UUID is only useful if it's
 universally applied to all content, it needs to be a service provided
 by Plone and in effect for all content and other objects, such as
 comments and (possibly) users, groups, etc. Simply depending on the
 package and using its API is not enough (if it was, I would never have
 submitted the PLIP). At the very least, any and all packages wanting
 proper UUIDs would need to provide a blunt installation step to
 allocate and index UUIDs for all content, with some logic to
 understand when this would be needed. Furthermore, divergent
 implementations create non-trivial duplication of effort and catalogue
 bloat.

 Hanno already indicated he was uncomfortable with this as a
 

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

2010-08-19 Thread Eric Steele
On Aug 19, 2010, at 12:32 PM, Godefroid Chapelle wrote:
 Le 19/08/10 18:14, Eric Steele a écrit :
 On Aug 19, 2010, at 10:24 AM, Godefroid Chapelle wrote:
 
 Reason why I insist on automated tests. Functional tests run too slowly
 to rely on developers running them regularly. We need to delegate to
 Hudson or buildbot.
 
 I agree completely.
 
 I very nearly* have a Hudson/Selenium Grid/plone.app.testing pile running 
 Selenium tests automatically across multiple browsers and machines. If I can 
 convince the kid to give me a few free hours to work today, I'll wrap it up 
 and write up what I have.
 
 Have you written a new layer ? Have you looked at gocept.selenium ?
 
 * For some definition of nearly
 
 Eric

I wrote a new layer, mainly because I wanted to figure out how it all worked. 
I've put up a quick screencast of the whole thing in action, if anyone's 
interested. http://blip.tv/file/4023258

Basically Hudson controls a Selenium Grid which doles out requests to the 
requested browsers based on RC instance availability. The testcase layer 
accepts environment variables for ZServer host/port and Selenium 
host/port/browser. I've created one job per browser (Firefox and Safari in the 
screencast), passing in a new port and browser string environment var in each. 
Selenium Grid will pass the request along to the first available RC instance 
with that browser identifier and that'll hit the one-off ZServer created by the 
testcase.

We should be able to kick off each of these jobs after the Plone 4 build runs 
and AFAIK they'll run simultaneously without issue.

The one thing I'm missing at the moment is preventing them from running during 
normal test runs, but David's shown me a way forward on that.

Eric
___
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-19 Thread Godefroid Chapelle
Le 19/08/10 22:44, Eric Steele a écrit :


 I wrote a new layer, mainly because I wanted to figure out how it all worked. 
 I've put up a quick screencast of the whole thing in action, if anyone's 
 interested. http://blip.tv/file/4023258

 Basically Hudson controls a Selenium Grid which doles out requests to the 
 requested browsers based on RC instance availability. The testcase layer 
 accepts environment variables for ZServer host/port and Selenium 
 host/port/browser. I've created one job per browser (Firefox and Safari in 
 the screencast), passing in a new port and browser string environment var in 
 each. Selenium Grid will pass the request along to the first available RC 
 instance with that browser identifier and that'll hit the one-off ZServer 
 created by the testcase.

 We should be able to kick off each of these jobs after the Plone 4 build runs 
 and AFAIK they'll run simultaneously without issue.

 The one thing I'm missing at the moment is preventing them from running 
 during normal test runs, but David's shown me a way forward on that.

 Eric

Thanks for the screencast !

It's great you went there. I look forward trying it myself.

Is your layer available somewhere ?

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

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