[Chameleon] Chameleon 1.99 Beta 1 Released
Godwin, Liz
Godwinl at AGR.GC.CA
Mon May 31 14:14:44 EDT 2004
This is a question about using CVS with this new release.
Will changes be made to version 1.99 through cvs that I might want to
update periodically? Will these changes be considered part of version
1.99, or beyond that?
I'm confused because there are changes to some of the files on cvs that
are not included in the 1.99 release, like a fix to ProjectionSelector
widget. Will changes as they are more stable be assigned to the 1.99
release as updates? Or will they only be applied forward?
In other words, say I have two installations of chameleon installed on
my machine, v1.99 and cvs. Should I be updating both through cvs (one
using a v1.99 tag, the other not), or will 1.99 be forever static?
Liz Godwin
-----Original Message-----
From: chameleon-bounces at lists.maptools.org
[mailto:chameleon-bounces at lists.maptools.org] On Behalf Of Paul Spencer
Sent: May 31, 2004 12:30 PM
To: chameleon at lists.maptools.org
Subject: [Chameleon] Chameleon 1.99 Beta 1 Released
Chameleon 1.99 Beta 1 Release Notice
------------------------------------
This has been a long time in the coming, over a year in fact. But it is
finally here. The next version of Chameleon now has an official release
status of Beta 1. And the purpose of this email is to tell you a little
bit about this release.
Chameleon 1.99 is significantly changed from the original 1.0 release.
When we first started working on this version, we had optimistically
tagged it as version 1.1. The goal for version 1.1 was to work on
performance enhancements for the core Chameleon engine and fix some
known bugs. As we were working on this, we were also tasked with making
Chameleon work directly from a MapServer map file instead of requiring
the use of a Web Map Context document (WMS layers). In hindsight, we
bit off a lot more than we realized, and it has taken us over a year to
get everything really stable again. In the meantime, a great many
changes have happened to Chameleon, most of which I won't be able to
describe in this email. So I will focus on the most dramatic changes
that will be visible to the users of Chameleon - the application
developers.
Credits
-------
A lot of hard work has gone into this version of Chameleon. Almost
every person on DM Solutions staff has provided valuable input, either
in the form of development, testing, documentation, or just playing
"devil's advocate" when discussing new features. In addition, we have
had excellent support from the growing Chameleon community, with
numerous contributions of new ideas, bug identification and fixes,
testing in environments we can't reproduce, and documentation. Finally,
we couldn't have progressed Chameleon to this point without financial
support from clients who believe that this technology is worth investing
in.
Getting Involved
----------------
You need to get this Chameleon release and start using it. Your
feedback on the good, the bad, and the ugly is critical to us. To this
end, there are several mechanisms for participating in Chameleon.
First, you can subscribe to one or both of the chameleon mailing lists:
chameleon at lists.maptools.org
(http://lists.maptools.org/mailman/listinfo/chameleon)
This is a user-oriented list that is used to discuss every aspect of
installing and using chameleon, including potential bugs, feature
requests, and problem solving. This is a moderate traffic list
averaging several emails a day. We hope to see this increase as more
users get involved.
chameleon-dev at lists.maptools.org
(http://lists.maptools.org/mailman/listinfo/chameleon-dev)
This is a developer-oriented list that primarily carries bugzilla
traffic. Occasionally, it is used to discuss development topics that
are not relevant to the chameleon user list. All bugzilla traffic
related to chameleon is automatically posted here, so it is high traffic
especially near to release times, but can go for weeks without a post at
other times.
Second, you can register in bugzilla on the maptools website
(http://www.maptools.org/bugzilla) to view the outstanding issues with
Chameleon, track specific bugs (by adding yourself as a cc on the bug),
and report new bugs.
Third, you can contribute useful hints and tips to the Chameleon wiki
pages, again on the maptools site at
http://www.maptools.org/chameleon/wiki/.
Finally, there is a Chameleon community initiative currently under
development. While not available yet, it will provide a central
clearinghouse for community involvement in Chameleon. Look for an
announcement concerning this before the final release of version 1.99!
How To Get Chameleon
-------------
Prerequisites for this version are:
* PHP version 4.2.2 or later, preferrably 4.3.x (but not 5.x)
* A web server configured with PHP as a CGI
* PHP/MapScript version 4.0 or 4.2 (some widgets, especially the
TrueNorth widget and some of the SLD-related widgets, require 4.2).
Linux/Unix tarball:
http://www.maptools.org/dl/chameleon/chameleon-1.99beta1.tar.gz
Windows ZIP file:
http://www.maptools.org/dl/chameleon/chameleon-1.99beta1.zip
MS4W Package
http://www.maptools.org/dl/ms4w/chameleon_ms4w-1.99beta1.zip
Anonymous CVS Access (for those that are using it):
Both chameleon and php_utils have been tagged as chameleon_1_99_beta_1.
Use this tag when updating to get exactly this release.
NOTE: there is a serious lack of up-to-date documentation right now.
That's coming in a future beta or, at the latest, by the first Release
Candidate. Until then, you will have to ask on the list or check out
the sample applications. If you are already an active Chameleon user of
a recent (or cvs) version, then you probably won't need too much
documentation right now. If you aren't, then the beta may not be for
you. But you are welcome to try it out anyway.
The intention of this release is to provide a reasonably stable
development environment that will not change drastically before the
final release. We know there are some problems (see bugzilla for the
current list), but we also want to make sure that a core set of
functionality is working as well as we can test it. At this point, only
a subset of widgets have undergone extensive QA. The remainder will go
through the same process as we progress to the final release. The
widgets that are now considered most stable are:
CompassPoint
CursorPos
ErrorReport
Extent
KeyMap
Language
Link
MapDHTMLWidget
MapUnits
ProjectionLabel
Query
Recenter
Scalebar
SessionExpired
SharedResource
Title
UpdateMap
ZoomAllLayers
ZoomFactor
ZoomIn
ZoomOut
NOTE: This doesn't mean that the other widgets won't or don't work, but
it does mean that we haven't tested them as thoroughly and there are
likely some remaining issues, perhaps even ones that we know about.
Before reporting any issues with any widgets, check bugzilla first. But
if in doubt, report the issue and we'll figure out if it has already be
listed somewhere. We'd rather make sure we don't overlook anything.
Features and Changes from 1.0
-----------------------------
The changes from 1.0 are too numerous to list in any meaningful way.
Instead, I've summarized some of the more important changes.
No More Service Instance
------------------------
The biggest change from version 1.0 is that Chameleon requires the use
of a service instance. In fact, in this release, the service instance
is not even there - it will return for the first Release Candidate,
however, and thus provide two modes of operation for Chameleon. Until
that time, however, you can use the non-service instance mode.
In this mode, Chameleon acts as an application development kit. You
have to provide the application and you 'include' the core Chameleon
engine to gain access to its functionality. For most applications,
however, this is simply a matter of copying one of the sample
applications and replacing a couple of lines that identify the
application template and the map file to use.
More Flexible Skinning
----------------------
In version 1.0, many widgets represented themselves as 'buttons' in the
interface. Some widgets could access the services of an automated
button generator (the 'buttonizer') while others required pre-built
graphics. Some buttons had fancy hover and click effects, others had
nothing. This was both limiting and confusing.
In version 1.99, we have addressed this by making every widget that uses
a button work in exactly the same way and by increasing the flexibility
of how a button can be designed and implemented. Now, widgets with
buttons can use:
* a single pre-generated image, no fancy hover effects (minimizes
JavaScript in the page, reduced load time for images)
* mulitple pre-generated images, with fancy hover effects (more
JavaScript, but fast load time for individual images)
* single, 'buttonized' image, no fancy hover effects, buttons generated
at run time
* multiple 'buttonized' images, fancy hover effects, buttons generated
at run time.
With some fairly decent caching built in, there doesn't seem to be a big
performance hit for generating buttons on the fly. In fact, in most
cases, the buttons are used directly from cached versions with identical
performance to pre-generated images.
In addition to synchronizing all the widgets' use of buttons, we have
added the notion of 'skins' to Chameleon. Now, an entire application's
images and css files can be stored in a directory structure and, if you
follow the naming convention of the default skin, you can change an
application's look and feel by changing one line of code in the main
application file. Changing skins in this way is very flexible, but this
is the first time we've tried this, so there are still some quirks in
the process. For instance, some widgets such as the WMS Browser widget
don't support skins very well (or at all ;)). But the most commonly
used widgets work very nicely with skins now!
Performance Improvements
------------------------
This was the goal we had in mind when starting version 1.1! And we have
made some significant improvements in performance of the core Chameleon
engine by streamlining the code and optimizing heavily used portions.
With the addition of quite a few new features, however, some of these
gains have been offset by additional functionality. In approaching the
beta release, the focus has been on getting Chameleon as stable as
possible. At this point, performance is quite good, but we will
continue to tune performance as we approach the Release Candidate and
final Release of 1.99.
New Widgets
-----------
A variety of new widgets have been added to Chameleon, including:
* ClearWFSFilter
* DDSGUID
* DownloadSLD
* ExpressionBuilder
* ExtractContext
* ExtractWFSData
* JSList
* JSTreeView
* KeepSessionAlive
* KeyMapDHTML2
* LayerAttributes
* LayerManager2
* MapImageSharedResource
* MapImageStatic
* MapImageWidget
* MapTips
* ROICircleTool
* ROIFeatureTool
* ROIManager
* ROIManagerMode
* ROIPolygonTool
* ROIRectangleTool
* ROIRemoveAll
* ROIRemoveLast
* SECTPopup
* SelectLayers
* SessionExpired
* SQLQuery
* Table
* TrueNorth
* UploadSLD
* VarSharedResource
* VarURL
* WMSBrowser
* WMSCache
* XMLRPC
Sample Applications
-------------------
There are now a series of samples included directly in the Chameleon
distribution. The samples have been developed to serve three distinct
purposes:
* demostrate a 'typical' use of widgets in real-life situations
* provide a mechanism to test widgets prior to release
* provide a starting point for creating new applications
The samples are grouped around the notion of widget 'Packs'. We haven't
formalized this yet, but at some point widgets will be released in
widget Packs. A widget Pack will be a unit of QA and the pack will be
released as a single entity, separately from the Chameleon core.
Other Changes
-------------
There are some other changes that don't fit conveniently into the above
categories, but that will have an impact on you when you go to use
Chameleon.
* some widgets have changed names. Try running your new application
with your existing template, widgets that can't be created (because of
invalid attributes or an invalid widget name) will be highlighted in red
and you can then look in the chameleon/htdocs/widgets directory to find
the new name. For instance, the Print widget has changed to PrintWidget
because Print is a php keyword that caused problems.
* some widgets have changed attributes, in particular the compass point
widget is substantially different. If you are getting invalid widget
attributes, this is probably the cause. Until the documentation is
complete, however, you will have to post your questions on the list or
look at the sample applications.
* widget names are now case sensitive on non-windows platforms (i.e.
Linux), so you must write Scalebar instead of scalebar or SCALEBAR.
Converting to 1.99
------------------
* install 1.99
* edit the configuration file
* test the sample applications
* create a php file to launch the application (index.phtml)
- can copy sample_basic.phtml
- edit it to point to your map file and template file
Coming in the Release Candidate
-------------------------------
Here are a few of the things that we hope to get done for the 1.99
Release Candidate.
Service Instance
----------------
The intention is to implement a service instance a la 1.0 so that
Chameleon 1.99 is able to work either as a service instance or an
application development kit.
Work on this has started but it is not yet stable enough to be included
in this beta. It will hopefully be in the next beta.
Configuration File Cleanup
--------------------------
As of this moment, the Chameleon configuration file still contains a lot
of junk from the 1.0 days. Some things in there are no longer
necessary, and some are specific only to the service instance mode of
operation. The intention is to create a second configuration file,
chameleon.xml, that will contain the minimum configuration necessary for
the Application Development Kit mode, and keep the existing cwc2.xml for
configuring the service instance mode.
This will necessitate changes to the configuration editing tool as well.
Widget Packs
------------
By the time we release the final verson of 1.99, we hope to have the
widgets divided up into widget Packs that can be released and QA'd
separately from the core. This should mean more frequent releases with
bug fixes etc., which will be good for everyone.
NOTE: the names of the widget packs, as well as the widgets assigned to
them, are still under review and may change before the first Release
Candidate.
Documentation
-------------
The documentation for 1.99 is terribly out of date, most of it still
refers to the original 1.0 stuff. In particular, there is no widget
documentation yet, nor has the administrative or application developer's
guide been updated. This will be done before we release the first
Release Candidate.
Performance Tuning
------------------
There are many areas in Chameleon that could benefit from performance
enhancements. We will be trying to identify the worst bottlenecks and
fix them before the Release Candidate, but I expect this to be an
ongoing process even after the final release.
Widget Name Changes
-------------------
Some of the existing widget names are a little horrible (like
KeyMapDHTML2 for instance). All the widgets are going to be examined
for how accurately the name of the widget reflects its purpose, and a
set of rules will be developed for widget naming (this has been ad-hoc
up until now).
_______________________________________________
Chameleon mailing list
Chameleon at lists.maptools.org
http://lists.maptools.org/mailman/listinfo/chameleon
More information about the Chameleon
mailing list