Gavin Sinclair wrote:
Next step: check in the new copland impl.
Then I get to rewrite the
copland manual... To bad you can't really write a program that writes
your manuals for you. 
I thought you said the user wouldn't see much change. Why the manual
rewrite?
Gavin
"Rewrite" was probably too strong a word. I mostly just need to fix terminology changes and rework some of the tutorials.
For those that are interested, here is a list of some of the most user-visible (and non-backwards-compatible) changes coming in the next version of Copland:
- the term "module" was confusing, given Ruby's conflicting use of the term. Thus, functional groupings of services and configuration data are now called "packages."
- The registry is no longer a Singleton class. This makes it MUCH easier to unit test, and much friendlier to platforms like WEBrick that may run multiple unrelated processes in the same interpreter. However, this also breaks existing programs, since the interface for initializing a Copland registry is now different than before.
- Related to the last bullet point: various options may now be passed to the registry when it is constructed. You can now specify different names for your package descriptor files if you prefer.
- The infrastructure now exists for descriptor files in formats other than YAML. Thus, if someone REALLY wants an XML-based descriptor format, it should be possible to implement that processor and plug it right into Copland with a minimum of mess.
- The service-point format in the package descriptor files has changed slightly: instead of 'create-instance' and 'invoke-factory' (borrowed directly from HiveMind), there is now a single 'implementor' element. This makes it easier to remember and less prone to errors.
- Schemas are easier to write, and are radically different from previous versions (which used HiveMind's digester-based approach). The new approach is cleaner and takes advantage of more of Ruby's "dynamicity" (if that's really a word).
- Configuration points may now define schemas as well, which describe the valid format of the contributions they accept. More work remains to be done on this, but it's a start.
Those are the highlights. HUGE refactorings occurred under the covers, as I think anyone comparing the old and new implementations will quickly discover. I'm hoping to be able to work on getting all the documentation together this weekend, in which case you can expect a new release early next week.
···
On Saturday, August 28, 2004, 12:13:18 AM, Jamis wrote:
--
Jamis Buck
jgb3@email.byu.edu
http://www.jamisbuck.org/jamis
"I use octal until I get to 8, and then I switch to decimal."