[Seaside] [ANN] Seaside 2.9.0-alpha3

Lukas Renggli renggli at gmail.com
Sat Mar 14 10:12:07 UTC 2009

It has been some time since we released Seaside 2.9a2 and we figured
it was high time for another. We've been pretty busy over the past two
months and you will notice some significant changes since the last
release. The two most notable changes involve returning responses and
using continuations with #call:.

The RequestContext is now initialized with a Response object and
Request Handlers *must* configure that Response. It is no longer
possible to create and return a new Response object. This makes
streaming easier, cleans up a bunch of code, and means that you can
now easily add cookies during the action phase ("self requestContext
response addCookie: myCookie").

This release moves all uses of first-class continuations within the
main framework and moves them to an optional Seaside-Flow package.
Loading this package will enable the #call: method on Component as
well as a few other odds and ends. If you don't have support for
continuations or don't need to use #call:, you can now omit loading
them. We've also begun using partial or delimited continuations. This
should be more semantically correct, uses less memory, and removes the
need for the new process that was previously created when entering a
Session. If you'd like more information on partial continuations, you
can check out this blog post:

1. The Seaside Builder

As with the previous release, the easiest way to load it is to use the
Seaside Builder to load the Seaside 2.9 packages you want into any
recent Pharo, Pharo-dev or Squeak image. Do not try to load into an
image that already contains Seaside 2.8, such as the Pharo-web images.
The Seaside Builder comes with an improved UI: a simple view that
makes the decision process of what packages to load much simpler, and
an advanced view that gives you the full control over all packages.


While it is theoretically possible to upgrade a 2.9a2 image to this
release using Monticello, we don't recommend it. Figuring what order
to load all the packages can be tricky and you can quickly find
yourself in a mess. Once we shift to a beta phase we will be sure to
facilitate upgrading; for now, you'll be better off loading this
release into a new image.

Please note, that the package Seaside-OmniBrowserTools requires a
recent installation of OmniBrowser. The Seaside Builder does not
currently load one for you.

2. Things to be aware of

Please remember that this is an Alpha release and things are still
changing rapidly. It is probably not suited for production use; at
very least, you'll need to follow the development mailing list

You'll find a list of current migration issues at

3. When things go wrong

If you run into problems, please let us know using the issue tracker
at <http://code.google.com/p/seaside/issues/list> or through the
mailing list.

4. Closed Issues

Issue 17:  Halos leak memory on Squeak
Issue 19:  Behaviour of #initialRequest:/#updateUrl differs when using
session cookies.
Issue 22:  Decorations are rendered outside Halo of component.
Issue 31:  WAStaticHtmlCanvas and form elements
Issue 38:  WAExternalID reinitialzes PRNG on image startup
Issue 48:  cookies can not be added in callback phase
Issue 105: Remove url generation methods from WASession
Issue 109: Get rid of IDs for Styling
Issue 142: Make sure that collection attributes do not return their
actual collection object
Issue 151: WAProcessMonitorTest>>testTerminate
Issue 164: remove #testGarbageCollect?
Issue 169: Document response factory
Issue 177: figure out configuration for WACache
Issue 179: review mutexes in WACache
Issue 183: WAApplication>>description dependencies
Issue 198: WAResponse should not depend on WAApplication
Issue 199: review WAStandardFiles
Issue 203: add ""advanced"" flag to configuration attributes
Issue 207: WAUserConfiguration>>at:
Issue 210: Pad error responses
Issue 212: WASessionContinuation>>url method name
Issue 220: move WADispatcherViewer and so on into Environment
Issue 221: consider providing abstract implementation of
platform-specific classes
Issue 230: WAAdmin>>applicationDefaults keeps overwriting settings
every time it is called
Issue 231: cleaup configuration editor extensions to Configuration
Issue 236: look at returning responses
Issue 239: WAConfiguration>>addAncestorsTo:forAttributeAt:
Issue 245: WAHalo Source View is broken
Issue 247: WAValidationDecoration>>#validate does not work on all platforms
Issue 253: WAPackage is partly under-defined
Issue 255: Listing of files does not work (for me)
Issue 260: Load order problem with tests
Issue 264: Help Button in ""Seaside Control Panel""
Issue 265: WAControlPanel should display the Seaside Logo
Issue 266: remove uses of generic Error
Issue 268: Introduce WAMessageSend
Issue 269: Add server with same port in ""Seaside Control Panel""
Issue 270: WAExternalID raises an error when cryptography package is loaded
Issue 271: WAAttributeNotFound initialization method bypass standard
Issue 273: Seaside-Tests-Color package
Issue 274: Seaside Control Panel looks broken on Pharo
Issue 275: Comet is missing in builder.seaside.st
Issue 276: New Session link is broken
Issue 277: Add a seaside tab to /seaside/status
Issue 278: omnibrowser tools should be registered in the Open menu
Issue 280: no command to add a new server adaptor in OB control panel
Issue 281: Simplify builder UI
Issue 282: ReadStream>>#'next' might give an error when at end
Issue 283: rename #possibleCauses to #seasidePossibleCauses ?
Issue 284: WAResponse sends #application
Issue 285: respondAndContinue: does not use a SessionCallback
Issue 286: WAActionCallback>>isEnabled calls #requestContext
Issue 288: Create new root dispatchers from Seaside-OmniBrowserTools
Issue 289: Changes to Seaside-Tests-Core to address issues discovered
in GemStone port
Issue 290: WARenderCanvas referenced from Seaside-Tests-Core but not yet defined
Issue 291: WABufferedResponseTest fails because WriteStream does not
understand #'crlf'
Issue 292: Remove WAGemStoneMock* classes from Seaside-Tests-Core
Issue 293: Refactor WAResponse and subclasses to encapsulate stream
and use WriteStream instead of ReadWriteStream
Issue 294: Loading Seaside-Squeak-Platform gives walkback because
'WAPlatform current' is nil
Issue 296: WAFileHandler default is nil when running tests
Issue 297: WAEncoderTest has three failures
Issue 298: #upToAndSkipThroughAll: needs a test
Issue 299: closeThisPopup* should use builder
Issue 300: #passenger: produces invalid IDs
Issue 302: create tests for RSS-Examples and Comet-Core platform methods
Issue 304: caching session cookie state
Issue 305: move #nativeRequest to WARequestContext?
Issue 308: scriptaculous uses WAContinuation
Issue 310: #inNewRenderLoopCall: broken with partial continuations
Issue 311: Undefined globals and methods referenced in Seaside-Canvas
and Seaside-Canvas-Tests
Issue 312: WALeastRecentlyUsedExpiryPolicy uses non-portable approach
to increasing counter
Issue 313: Allow platforms to use an instance variable to cache
objects in WAFileLibrary
Issue 314: WAHtmlBuilder>>#'renderResponse:' calls WAResponse
class>>#'defaultValueForMimeType' that is not defined
Issue 315: WAResourceBaseUrlTest>>#'createHandlers' references
WAApplication that is not defined
Issue 316: WAInteractionTest>>#'testContentType' fails
Issue 317: WAApplicationTest>>#'testNotImplemented' fails
Issue 318: WAComponentPlatformTest>>#'testHaloClass' failure
Issue 320: WAMutex portability
Issue 326: Seaside-Tests-Flow depends on WAFunctionalTests
Issue 329: character set can not be specified for RSS
Issue 330: Not possible to add a new adapter if no adapters are defined
Issue 331: WAProcessStatus>>renderProcess:on: depends on WAInspector
Issue 332: JQuery-Core depends on Seaside-Tests-Functional
Issue 334: JSConversionTest>>#'testPoint' fails
Issue 335: Seaside BrowserEnvironment
Issue 337: Deprecate #register*Callback: methods
Issue 339: functional tests and webtools depend on Flow
Issue 342: Canonical URLs
Issue 343: update seaside adaptor for Swazoo 2.3
Issue 344: Swazoo adapor broken
Issue 345: unit tests needed for WAFileHandlerListing and its subclasses
Issue 346: platform test for #new:withAll:
Issue 347: canceling addition of a server adaptor doesn't work
Issue 348: bring back utf-8 fast path
Issue 350: Several WAMutexTests and one WAPlatformTest fail on VA Smalltalk
Issue 351: Add #size: to WAFileUploadTag
Issue 353: Manually calculate memory in WAMemory
Issue 358: Slime should not depend on Seaside classes
Issue 362: Comet is broken after response and encoding refactorings
Issue 365: Hide toolbar and halos when opening a tool

More information about the seaside mailing list