Meeting with Edgar notes
nicolas cellier
ncellier at ifrance.com
Sun Feb 3 18:37:38 UTC 2008
stephane ducasse a écrit :
> Andreas
>
> You are probably right.
> May be we went too down the road.
> Now try to explain this guy that merging sophie, croquet, OLPC package
> problems
> is not due to traits.
>
I am not a maintainer of anything serious as above now, but I speak with
15 years of development on ParcPlace ST80 v2.3, Objectworks then
VisualWorks. Sorry for the long answer.
GREAT Squeak CORE IMAGES ... :
-----------------------------
Plainly agree with the idea of a core squeak Kernel.
It is good to have an up-to-date kernel for newcomers and for starting a
new project.
It is good to have prepared packages guaranteed to load into that image
and don't break each other (Universe).
It is good that an up-to-date code repository be in sync with this core
image, TRACING all the evolutions (Monticello).
Better than traditional change log IMO, because it is accessible on
request, but you do not have to download a change log with whole code
history. (Alternative being compress the changes and forget history).
...ARE IN CONFLICT WITH IMAGE-BASE DEVELOPMENT:
----------------------------------------------
But you can not force anyone to adopt your fresh kernel image at each
release.
This won't happen for big application because it is too much work to do
such a port, and this is not how Smalltalk-80 development takes place.
No you don't rebuild your application image everyday with all the tricky
initializations and bootstrap process (circular dependencies), and all
these objects that are not code, and won't reload that easily with code
management tools...
You have something more comfortable, an already initialized image.
No, you won't go through this porting process when you know that some
messages have been deprecated, renamed, some old crappy class replaced
by new shiny ones, or some behaviour improved, the uncompatible way...
No, all these enhancements are not for free, because you'll have to
review your existing code.
Switching to a new image is simply too many changes at once.
What you do is image base development. Developpers do copy an official
image, perform changes, file out changeSet, Monticello or whatever, and
all is integrated back in the official centralized image, where tested
against non regression tests.
Isn't that pretty well what was done during 3.9 and 3.10 process ?
Yes, you smoothly and carefully change THE image.
I personnally downloaded 2 or 3 copies of each.
That's how it works.
You cannot blame major fork maintainer for doing the same.
When i was a commercial VW user and had to switch image, because the old
VM would not necessarily be ported to new machines, that was a pain,
there were ALWAYS some porting necessary.
We always needed a long transition phase. And development had to
continue, so several images were maintained in parallel. What we did was
backporting some of the changes from new official versions to older in
order to smooth the process a little and reduce the difference between
the branches... with change set and change files.
SO WHAT, NO SURPRISE
--------------------
Yes, this explains forks...
That is not a reason for throwing all your efforts away.
Keep developing a core image. This is the best way for integrating all
these necessary clean up and enhancements.
Yes, the core image SHOULD harvest enhancements made in forks too... A
huge ant work! No magic here, only communication and hard work.
Yes write tests and more tests to ease the process.
And what is needed is fine grained changes, that can be examined and
harvested back in forks. If they ever want to port, this will narrow the
gap. LevelPlayingField attempts to answer this very pragmatic goal.
Don't focus on Traits:
- as long as they are not used, they are harmless and won't prevent any
backport.
- Even if used, you can still export equivalent generated code.
- Traits are not a problem unless you yourself want to change Class and
Metaclass.
- Traits could be removed at will before starting a port
Without a doubt, build 3.11 on 3.10. Or if you really want to backtrack,
build on 1.0 for licensing reasons (No, just kidding).
And please, update Mantis status, current management is a mess (issues
harvested but status not updated).
Nicolas
More information about the Squeak-dev
mailing list
|