[Seaside-dev] Remaining Issues for Seaside 3.0 release

Reza RAZAVI razavi at acm.org
Thu Apr 15 12:09:24 UTC 2010


Hello Lukas, all,

I've recently encountered an issue with the new 
implementation of WATask, and feel that I should 
report it now. It has already been shortly 
reported to the Pier mailing list (please see 
emails entitled *Contextual #call: issue*), but 
I've certainly not been explicit enough. So, let 
me first situate briefly the context, and then 
describe that issue. My apologies beforehand for the rather long post.

During the past months, I've been implementing an 
on-line flow modeling and execution tool, which 
has been made possible specifically thanks to 
Seaside and Pier (and the Smalltalk Community in 
general). This tool is particularly useful when:
- The control flow can only be known at runtime 
(with applications, for example, to support daily life activities), and
- The control flow is subject to frequent changes 
in time and space whilst the web application is 
already deployed (for examples of application domains, please see [1]).

Roughly speaking, this tool (framework) is composed of two sub-systems:
- A web interface that complements Seaside and 
the Smalltalk browser in that it allows 
specifying on-line flows of Seaside components 
(equivalent to WATask >> go methods).
- An execution engine (interpreter) that executes those flow models.

Additionally, that execution engine is fully 
integrated in Pier's interpretation cycle. 
Specifically, each flow model behaves as a new 
(isQuick) Command, and its execution is triggered 
by PRContentsWidget. Since, flow models may 
reflect arbitrary interactions between Seaside 
components, including iterations and 
conditionals, once the execution of a flow model 
is triggered, it may involve a (large) number of 
#call: to other Seaside components (as well as 
other types of components).  This has been 
perfectly functioning in Seaside 2.8, and Pier 1.

Now, with Seaside 3.0 and Pier2, I encounter an 
issue that I've unfortunately not yet had time to 
characterize enough, but it looks like that my 
way of calling Seaside components confuses its 
new method of handling callbacks (although it has 
been functioning with Seaside 2.8). Here is a case that happens repeatedly:
1) The current page renders an internal link to a 
(Pier) context that when activated triggers the 
execution of a flow model. This is comparable to 
the links that appear in Pier's toolbars, like Add, Edit, etc.
2) The user clicks on that link. The context is 
activated, the execution of the flow model is 
launched, which yields to a #call:. At this 
point, GRPharoPlatform >> seasideCallbackMarker 
raises its exception, which is catched by 
PRContentsWidget >> onAnswerCommand:, and 
rendered by Pier as the result of the execution. 
The execution stops there, although the flow 
model corresponds actually to the Sushi Store 
checkout process, as implemented by Seaside, and 
documented here [2]. So, the user was rather 
expecting to go through the Fill Cart / Confirm Content iteration.
3) The user clicks on an item in the main menu 
(on the top), selected arbitrarily (the behavior 
that follows does not depend on the menu item 
selected). At this point, Seaside/Pier activate 
the component that was #call:'ed at the begging 
of the execution of the flow model in step (2), 
and was supposed to be activated during that 
stage (in place of that error message). This 
activated component is actually the first in that 
Sushi Store checkout process, namely *Fill 
cart*.  Once launched in this way, then the 
execution flows smoothly to the end.

What would be the best way to fix this?
Regards,
Reza Razavi

[1] <http://adaptiveobjectmodel.com/>http://adaptiveobjectmodel.com/
[2] Seaside – A Multiple Control Flow Web Application Framework
      Stéphane Ducasse, Adrian Lienhard, Lukas Renggli

At 09:41 15/04/2010, Lukas Renggli wrote:
>We should get a release candidate of Seaside 3 out ASAP. There is a
>significant amount of adoption, no critical bug reports and I don't
>see any obvious issues that would block a release.
>
>I've retagged some issues from 3.0 to 3.1 that I think are not
>critical. There are two issues that I think require some attention
>(correct me if not):
>
>    http://code.google.com/p/seaside/issues/list?q=milestone=3.0
>
>Anything else that cannot be delayed until 3.1? 3.2?
>
>Also I think we should go a little faster and give up on this crazy
>alpha1..n,beta1..n versioning scheme. It does not scale for us. Let's
>release 3.0 now, release 3.1 for ESUG, and 3.2 by the end of the year.
>Each increment with its own small set of valuable improvements and
>bug-fixes. Let's not strife for the "perfect" release.
>
>Lukas
>
>--
>Lukas Renggli
>www.lukas-renggli.ch
>_______________________________________________
>seaside-dev mailing list
>seaside-dev at lists.squeakfoundation.org
>http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside-dev/attachments/20100415/ac430602/attachment.htm


More information about the seaside-dev mailing list