[Seaside] ANN: Seaside 2.9a1 release

Julian Fitzell jfitzell at gmail.com
Sun Nov 9 20:31:53 UTC 2008


After months of development, the Seaside Development Team is very
pleased to announce the release of Seaside 2.9 Alpha 1. We are
announcing this first release in stages: first to the developer
mailing list, then the main seaside list, and finally to the website.
We hope this will let us catch any major problems with this first
release as soon as possible.

Here's what we need to cover:

1. What's new
2. Things to be aware of
3. How to get it
4. When things go wrong (as they certainly will)
5. How-To's


===================
What's new
===================

The focus of this release has been on flexibility, portability, and
understandability.

Some highlights include:

 * Sub-packages. The code has been split up. This facilitates porting
because platform-specific code has been put into platform-specific
packages. It also means that you can load only the parts of Seaside
that you need. For example, when building your production image, you
can leave out tests, examples, and development tools.

 * Architectural cleanup. A lot of work has been done under the hood
to rewrite some of the messier parts of Seaside. We introduced a
RequestContext which stores information related to a single HTTP
request, which greatly simplified request handling in general and the
Session object in particular. The RenderLoop has been refactored to be
much more understandable; Server Adaptors have been made more
flexible; the Configuration system was rewritten; and a new pluggable
Cache was introduced to hold sessions and continuations. These are
just a few examples.

 * Reification. Many things that were Strings in Seaside 2.8 are now
first-class objects. For example, we added WAMimeType and WALocale,
and WAUrl and WAExternalID are now used much more consistently
throughout the system.

 * Lots of bug fixes, security improvements, and tests.

A more complete list of change and new features can be found at
http://seaside.st/community/development/seaside29

In addition, I have been tasked with documenting some of these new
features. I plan to start a series of blog posts in the next few weeks
talking about new features in Seaside 2.9. Keep an eye on
http://blog.fitzell.ca/ or keep following the aggregated news on the
Seaside home page: http://seaside.st/community/weblogs


=========================
Things to be aware of
=========================

First of all, it is important to remember that this is an Alpha
release and SHOULD NOT be used in production.

While we believe that the most disruptive changes are largely
complete, we may still need to make non-backwards-compatible code
changes, rename packages and so on. We are also still trying to work
out some issues with the packaging and distribution tools (now that we
have so many sub-packages) so you would be wise to wait for a Beta
release to begin active development. You have been warned.

For the average developer using WAComponent, WACanvas, and WASession,
we hope that most things will be pretty backwards-compatible. In fact,
we want you to let us know about anything you find that is not (see
below for details about reporting problems). You'll find a current
list of migration issues at
http://seaside.st/documentation/migration/28to29

We have moved or renamed quite a few methods (particularly on
WASession). Whenever possible, the old methods should have been marked
as deprecated; you will be alerted about any call to a deprecated
method when using your application with the Toolbar turned on. These
deprecated methods will be removed in the next major version of
Seaside and you should make every effort to update any code that is
using them. If you find that a method you were using has disappeared
without being deprecated, please let us know (again, see below) so
that we can correct this.


==================
How to get it
==================

If you've made it this far, you must want to try the thing. We're
still experimenting with the best way to distribute all these
packages. In the meantime, we didn't want to hold up the release so we
are providing load scripts to get you going.

Two scripts are included with this email. The first will install most
of the available Seaside 2.9 packages and give you a working system.
The second will install the test packages. After loading, all tests
should pass.

We have tested the load scripts in the following images:

 * Squeak 3.9: http://ftp.squeak.org/3.9/Squeak3.9.1-final-7075-withSources.zip
 * Pharo: http://gforge.inria.fr/frs/download.php/10409/Pharo0.1-10107-oneclick.zip

They will probably also work in Squeak 3.10 but this has not been tested.

DO NOT attempt to load Seaside 2.9 into an existing 2.8 image: it
won't work. If you want to try porting an existing application, start
with a clean image, load Seaside, then load your own application
packages.


=================================================
When things go wrong (as they certainly will)
=================================================

If (when) you run into problems, please visit our issue tracker at
http://code.google.com/p/seaside/issues/list to see if the problem has
already been reported. You can also check the migration page at
http://seaside.st/documentation/migration/28to29 to see if the problem
has been mentioned.

If you are convinced your problem is unreported, either file a new
issue in the tracker or post it to the developers mailing list (
http://seaside.st/community/mailinglist ). We would also be happy to
hear any feedback and to discuss any of the changes in Seaside 2.9 on
that list.


============
How-To's
============

In the absence of updated documentation, here are the answers to a few
questions you might have right off the bat:


Q: How do I turn on authentication for an application?

A: Authentication is now handled by the new RequestFilter mechanism.
Unfortunately, there is currently still no UI support for configuring
RequestFilters. The simplest way to add an authenticated application
is therefore to execute something like this in a workspace:

WAAdmin
  register: MYComponentClass
  asApplicationAt: 'myapp'
  user: 'juser'
  password: 'pass'


Q: How do I enable or disable the Toolbar?

A: This release has the Toolbar enabled by default for all
applications. To disable it, open the configuration application (by
default at http://localhost:8080/seaside/config ). Under 'Shared
Configurations', click on 'Application Defaults'. Under 'Ancestry',
find WADevelopmentConfiguration and click the 'X' next to it to remove
it. To enable the Toolbar again, simply add WADevelopmentConfiguration
again. To enable the Toolbar in a single application, add
WADevelopmentConfiguration to that application's configuration screen
instead of to 'Application Defaults'.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: seaside-2-9-0a1.cs
Type: application/octet-stream
Size: 3904 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/seaside/attachments/20081109/367f9aa6/seaside-2-9-0a1.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: seaside-tests-2-9-0a1.cs
Type: application/octet-stream
Size: 2818 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/seaside/attachments/20081109/367f9aa6/seaside-tests-2-9-0a1.obj


More information about the seaside mailing list