Discussion:
[Zope3-dev] zope.error is a 3.5 egg, but is needed by 3.4.x releases
Martijn Faassen
2007-10-05 17:07:59 UTC
Permalink
Hi there,

zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess this
also happened because large package refactorings happened and were
released as 3.4.x releases. It's pretty bizarre to run into, though.

Regards,

Martijn
Fred Drake
2007-10-05 17:21:25 UTC
Permalink
Post by Martijn Faassen
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess this
also happened because large package refactorings happened and were
released as 3.4.x releases. It's pretty bizarre to run into, though.
It's only bizarre if the satellite package versions have semantics
relative to the Zope 3 version. They don't, fortunately.

For many of us, we don't even have to think about a Zope 3 version any
more, and we like it that way. ;-)


-Fred
--
Fred L. Drake, Jr. <fdrake at gmail.com>
"Chaos is the score upon which reality is written." --Henry Miller
Tom Hoffman
2007-10-05 17:30:41 UTC
Permalink
Post by Fred Drake
Post by Martijn Faassen
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess this
also happened because large package refactorings happened and were
released as 3.4.x releases. It's pretty bizarre to run into, though.
It's only bizarre if the satellite package versions have semantics
relative to the Zope 3 version. They don't, fortunately.
For many of us, we don't even have to think about a Zope 3 version any
more, and we like it that way. ;-)
Unfortunately there are also some of us who DO have to think about an
old fashioned Zope 3 release, even if 3.4 is the last monolithic
tarball release. We -- SchoolTool -- need 3.4 final release. I don't
think we need any changes in the code... we just need a "final"
release that can be accepted into Debian.

--Tom
Martijn Faassen
2007-10-05 18:55:45 UTC
Permalink
Post by Fred Drake
Post by Martijn Faassen
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess this
also happened because large package refactorings happened and were
released as 3.4.x releases. It's pretty bizarre to run into, though.
It's only bizarre if the satellite package versions have semantics
relative to the Zope 3 version. They don't, fortunately.
I consider it bizarre that an egg that was in alpha or beta for half a
year suddenly, in its final release, is starting to depend on an
entirely new package!
Post by Fred Drake
For many of us, we don't even have to think about a Zope 3 version any
more, and we like it that way. ;-)
Grok will pick up the balls Zope 3 dropped here. We actually care about
a Grok version as it's the main way to get people to actually use Zope 3
stuff.

We noticed this while we were going through egg dependencies by the way,
not "using a Zope 3 version".

We've worked with eggs for a few months now, with Grok. I can report
that I believe the egg situation is currently massively unusable for
almost all Zope 3 users except, from now on, Grok users, as two people
spent half the week in resolving this problem and figuring out which
eggs to use for what. I think the traffic on this mailing list the last
weeks is plenty of evidence that non-Grok users have had very similar
problems.

Anyway, I personally don't care much that Zope 3.4 is unusuable without
a massive investment in time sorting through eggs, as we have fixed the
problem with Grok. If non-Grok users are interested in our fixes, please
let us know though. We've just made this massive investment. I'd suggest
people to switch to Grok anyway, as we actually think about this stuff
and care about having our house in order.

Regards,

Martijn
Jim Fulton
2007-10-05 20:34:50 UTC
Permalink
On Oct 5, 2007, at 1:55 PM, Martijn Faassen wrote:
...
Post by Martijn Faassen
Grok will pick up the balls Zope 3 dropped here.
Hm. I didn't think Zope 3 was animate. Who are you referring to?
Post by Martijn Faassen
We actually care about a Grok version as it's the main way to get
people to actually use Zope 3 stuff.
We noticed this while we were going through egg dependencies by the
way, not "using a Zope 3 version".
I don't know what you are trying to say.

...
Post by Martijn Faassen
Anyway, I personally don't care much that Zope 3.4 is unusuable
without a massive investment in time sorting through eggs,
It's a shame that you are taking this view.
Post by Martijn Faassen
as we have fixed the problem with Grok. If non-Grok users are
interested in our fixes, please let us know though. We've just made
this massive investment. I'd suggest people to switch to Grok
anyway, as we actually think about this stuff and care about having
our house in order.
Are you suggesting that other people aren't thinking about this and
don't care?

I hope that the proposal for setting up a known-good-set index will
be helpful. I'm sure Stephan would like to know the versions you
chose. I imagine he'll be able to get those by looking at Grok.

Jim

--
Jim Fulton
Zope Corporation
Martijn Faassen
2007-10-06 09:57:13 UTC
Permalink
Hey Jim,

To start off, my original post was colored too strongly by a lot of
frustration I was venting. It was in response to the following line:

"For many of us, we don't even have to think about a Zope 3 version any
more, and we like it that way."
Post by Jim Fulton
...
Post by Martijn Faassen
Grok will pick up the balls Zope 3 dropped here.
Hm. I didn't think Zope 3 was animate. Who are you referring to?
That I was pretty annoyed by what I read to be a pretty cavalier
attitude towards the pain people have been going through with eggs,
after all the frustration and work that many people have gone through
recently.

I think Zope 3.4 is currently not usable unless you already know exactly
what you're doing with egg dependencies. What you're supposed to be
doing isn't exactly documented anywhere.

Zope 3 the code isn't animate, but the open source community better be.
Post by Jim Fulton
Post by Martijn Faassen
We actually care about a Grok version as it's the main way to get
people to actually use Zope 3 stuff.
We noticed this while we were going through egg dependencies by the
way, not "using a Zope 3 version".
I don't know what you are trying to say.
Fred expressed he (and "many of us") are happy he doesn't have to think
about a Zope 3 version anymore. The result is, as far as I can see, that
*everybody* has to think about versions. If there'd been some release of
3.4, we'd be able to use the versions that release is using, but
instead, everybody is making their own collections of eggs and hoping
for the best.

I understand that eggs can evolve at different rates, but having to
determine the base from which to start ourselves wasn't exactly a
pleasant exercise. Since everybody will have to come up with their own
list I imagine others aren't exactly thrilled either.
Post by Jim Fulton
Post by Martijn Faassen
Anyway, I personally don't care much that Zope 3.4 is unusuable
without a massive investment in time sorting through eggs,
It's a shame that you are taking this view.
I and several others had Zope 3 based code become uninstallable
repeatedly over the last months, because it's so unstable. This is
unworkable and pretty frustrating. I personally had two different
customer installations break repeatedly because of this.

I realize that's because I didn't know what I was doing early on, and
because the community was learning. I realize it's because I was on the
forefront of development and that we didn't anticipate all the problems.

But if nobody in the Zope 3 community steps up and starts to clearly
point out what people *should* be doing, the situation will continue to
be unworkable. New users will not be able to adopt Zope 3 at all anymore.

I do care about getting new users to adopt Zope 3 technologies. I don't
see the Zope 3 community think much about new user adoption.

The only way the eggified Zope can be used reliably currently is with a
lot of upfront knowledge most people don't have, and a lot of work to
sort through the eggs. There are scripts floating around to extract a
list of versions from a buildout run, which helps some, but initially
the answer I got on #zope3-dev when asking about such things was "write
your own script, it's easy". I thought open source communities were
about sharing solutions for problems, not just sharing the problems
themselves.

I think in order to get new users to adopt the system, besides clearly
documenting quite involved instructions on what they should be doing,
there should be a way to use Zope 3 reliably *without* having to have
all this knowledge and doing all this work.

Anyway, I know you personally are concerned with this issue, and I
realize that buildout has been attempting to grow features that help
here. I appreciate the help.

The Grok project is trying to solve these issues. We published a
document that tells users what to do. We now publish lists of eggs on a
HTTP server (one per grok release). We have adjusted grokproject so that
a versions list will be used automatically when you create a new grok
project. We attempt to reach a situation where users can install and use
Grok and build their own applications without having to spend too much
thought on dependencies. We aim for a situation where the community
manages the list of dependencies, instead of everyone for themselves.

Why did this have to happen within the Grok project? I have the
impression that too much, people in the Zope 3 community think that as
soon as they themselves and the other expert developers know what to do
(assimilated on the mailing list and online), this is the end of the
problem. We don't have a single Zope 3 release anymore, but we do want
people to use our code and report bugs on it. As far as I can see this
*requires* a list of versions somewhere that is shared between people
and that can be communicated about easily. It requires a *release
procedure* around this list of versions. As I tried to point out before
long ago, the Zope 3 project is not somehow so special it doesn't need
releases.
Post by Jim Fulton
Post by Martijn Faassen
as we have fixed the problem with Grok. If non-Grok users are
interested in our fixes, please let us know though. We've just made
this massive investment. I'd suggest people to switch to Grok anyway,
as we actually think about this stuff and care about having our house
in order.
Are you suggesting that other people aren't thinking about this and
don't care?
Fred doesn't appear to care to think about this much, certainly, and is
liking it that way.
Post by Jim Fulton
I hope that the proposal for setting up a known-good-set index will be
helpful. I'm sure Stephan would like to know the versions you chose. I
imagine he'll be able to get those by looking at Grok.
After 3 days of hard work by 2 people, we're still not done with the
Grok eggs. We get weird effects like final releases of packages
*suddenly* needing an entirely new package, between the beta and the
final. I'm quite bothered by this. We still have quite a few dev-r515135
style eggs in the mix as well.

A single known-good index, by the way, doesn't solve all problems. It
will evolve forward as people release newer known-good versions of eggs.
This means that nobody can really rely on such an index, as suddenly
they might be starting to use 3.6 eggs where they were using 3.5 eggs.
Even bugfix releases are currently hardly safe: using 3.4.1 for some
Zope 3 package might mean that suddenly it requires an entirely new
package altogether, introducing new deprecation warnings and so on (as
in this thread).

With our Grok versions list, we publish a list *per* version of Grok. I
hope this is the intent for the known-good index as well. If someone
says they use Grok 0.11, we want to know *exactly* which versions they
are using without requiring them to send us a long list too. One version
number should be enough. Our installation tools support this, and our
documentation documents this. I think this is the only maintainable way
to actually have a community developing and using a common code base.

If we ignore the last monolithic release, Zope 3.3, we get the following
irony: the easiest way to reliably use Zope 3 technology is to use Zope
2.10. The next easiest way is Grok (should be almost as easy as Zope 2
once we release our work, with a community managing dependencies for
you). The hardest way is actually Zope 3 itself (you'll have to manage
dependencies yourself, assuming you even managed to find out how to do
this).

Regards,

Martijn
Jim Fulton
2007-10-06 15:54:28 UTC
Permalink
Post by Martijn Faassen
I think Zope 3.4 is currently not usable unless you already know
exactly what you're doing with egg dependencies. What you're
supposed to be doing isn't exactly documented anywhere.
I think you are probably right. I think part of the problem is that
we no longer have a clear vision for what Zope 3 is. I don't think
this is entirely bad, as the vision has been evolving to match
reality. I think most of us are settling on the idea of Zope 3 as
"library", but we're still figuring out how to articulate and
implement this vision.
Post by Martijn Faassen
Zope 3 the code isn't animate, but the open source community better be.
Right. I consider you to be a part of this community. Several of the
major players in the community have been highly engaged in the
discussions over the past several days. I think it's safe to say
that we're trying to make things better.
Post by Martijn Faassen
Post by Jim Fulton
Post by Martijn Faassen
We actually care about a Grok version as it's the main way to get
people to actually use Zope 3 stuff.
We noticed this while we were going through egg dependencies by
the way, not "using a Zope 3 version".
I don't know what you are trying to say.
Fred expressed he (and "many of us") are happy he doesn't have to
think about a Zope 3 version anymore. The result is, as far as I
can see, that *everybody* has to think about versions. If there'd
been some release of 3.4, we'd be able to use the versions that
release is using, but instead, everybody is making their own
collections of eggs and hoping for the best.
I understand that eggs can evolve at different rates, but having to
determine the base from which to start ourselves wasn't exactly a
pleasant exercise. Since everybody will have to come up with their
own list I imagine others aren't exactly thrilled either.
That's why I like the idea of managed indexes, similar to the package
repositories managed for linux distributions. I'm hopeful that this
approach will bear fruit soon.

...
Post by Martijn Faassen
But if nobody in the Zope 3 community steps up and starts to
clearly point out what people *should* be doing, the situation will
continue to be unworkable. New users will not be able to adopt Zope
3 at all anymore.
Agreed. Of course, before we can point out what people "should" be
doing, we have to figure out what that is. To do that, people have
to remain engaged.
Post by Martijn Faassen
I do care about getting new users to adopt Zope 3 technologies. I
don't see the Zope 3 community think much about new user adoption.
Lots of people care. Of course, most of us also have day jobs. Many
of us are doing the best we can.
Post by Martijn Faassen
The only way the eggified Zope can be used reliably currently is
with a lot of upfront knowledge most people don't have, and a lot
of work to sort through the eggs. There are scripts floating around
to extract a list of versions from a buildout run, which helps
some, but initially the answer I got on #zope3-dev when asking
about such things was "write your own script, it's easy". I thought
open source communities were about sharing solutions for problems,
not just sharing the problems themselves.
Again, we have to have the solutions before we can share them.
Sometimes, we arrive at these solutions through experimentation.

As always, too, we have to understand the different problem sets we
have and the perspectives that gives us. Many of us are building
applications with Zope 3. Others, like you, are building platforms.
Solutions that work for single applications, like nailing versions in
meta egg or buildout configuration don't work so well for platforms,
as I think you've discovered.
Post by Martijn Faassen
I think in order to get new users to adopt the system, besides
clearly documenting quite involved instructions on what they should
be doing, there should be a way to use Zope 3 reliably *without*
having to have all this knowledge and doing all this work.
Agreed.
Post by Martijn Faassen
Anyway, I know you personally are concerned with this issue, and I
realize that buildout has been attempting to grow features that
help here. I appreciate the help.
Thanks. Note that buildout has very much an application focus.
Post by Martijn Faassen
The Grok project is trying to solve these issues. We published a
document that tells users what to do. We now publish lists of eggs
on a HTTP server (one per grok release). We have adjusted
grokproject so that a versions list will be used automatically when
you create a new grok project. We attempt to reach a situation
where users can install and use Grok and build their own
applications without having to spend too much thought on
dependencies. We aim for a situation where the community manages
the list of dependencies, instead of everyone for themselves.
Sounds great. I suspect that the same or similar effort could server
the broader Zope 3 community.
Post by Martijn Faassen
Why did this have to happen within the Grok project? I have the
impression that too much, people in the Zope 3 community think that
as soon as they themselves and the other expert developers know
what to do (assimilated on the mailing list and online), this is
the end of the problem. We don't have a single Zope 3 release
anymore, but we do want people to use our code and report bugs on it.
We were supposed to. I wonder what happened to that.
Post by Martijn Faassen
As far as I can see this *requires* a list of versions somewhere
that is shared between people and that can be communicated about
easily. It requires a *release procedure* around this list of
versions. As I tried to point out before long ago, the Zope 3
project is not somehow so special it doesn't need releases.
I think the Zope 3 project is somewhat special, which it may need
some kind of releases. :) After all, we have releases of individual
eggs. I don't think it makes much sense to release the traditional
Zope 3 application except perhaps as a testing platform. I do think
we need something like what linux distros provide. We need to
establish a better understanding of this.
Post by Martijn Faassen
Post by Jim Fulton
Post by Martijn Faassen
as we have fixed the problem with Grok. If non-Grok users are
interested in our fixes, please let us know though. We've just
made this massive investment. I'd suggest people to switch to
Grok anyway, as we actually think about this stuff and care about
having our house in order.
Are you suggesting that other people aren't thinking about this
and don't care?
Fred doesn't appear to care to think about this much, certainly,
and is liking it that way.
So based on a snarky comment by one person, you tar the entire
community. I'll note, BYW, that if you had provided more details, as
Philipp eventually did, I think Fred's response would have been more
sympathetic. (Just guessing)
Post by Martijn Faassen
Post by Jim Fulton
I hope that the proposal for setting up a known-good-set index
will be helpful. I'm sure Stephan would like to know the versions
you chose. I imagine he'll be able to get those by looking at Grok.
After 3 days of hard work by 2 people, we're still not done with
the Grok eggs. We get weird effects like final releases of packages
*suddenly* needing an entirely new package, between the beta and
the final. I'm quite bothered by this.
Me too.
Post by Martijn Faassen
We still have quite a few dev-r515135 style eggs in the mix as well.
That's bad.
Post by Martijn Faassen
A single known-good index, by the way, doesn't solve all problems.
It will evolve forward as people release newer known-good versions
of eggs. This means that nobody can really rely on such an index,
as suddenly they might be starting to use 3.6 eggs where they were
using 3.4.1 for some Zope 3 package might mean that suddenly it
requires an entirely new package altogether, introducing new
deprecation warnings and so on (as in this thread).
This is all a matter of the rules for maintaining the index and the
care put into it. If it is well run, a big if, then it should be as
reliable as, say, a linux package repository. This doesn't guarantee
that there won't be problems.
Post by Martijn Faassen
With our Grok versions list, we publish a list *per* version of
Grok. I hope this is the intent for the known-good index as well.
If someone says they use Grok 0.11,
Is Grok 0.11 a feature release? Would you expect the version list
for Grok .11 to change as bug fixes are made?
Post by Martijn Faassen
we want to know *exactly* which versions they are using without
requiring them to send us a long list too. One version number
should be enough. Our installation tools support this, and our
documentation documents this. I think this is the only maintainable
way to actually have a community developing and using a common code
base.
My suggestion is that there should be stable indexes for each
"feature release". Changes to these indexes should be made to fix
bugs, not add new features. Of course, there could be other less
stable indexes for people who want them. If you want to nail all of
the versions for a specific release of grok, then it seems to me that
versions in a meta egg or a buildout configuration should work well.

Jim

--
Jim Fulton
Zope Corporation
Martijn Faassen
2007-10-06 22:57:54 UTC
Permalink
Post by Martijn Faassen
I think Zope 3.4 is currently not usable unless you already know
exactly what you're doing with egg dependencies. What you're supposed
to be doing isn't exactly documented anywhere.
I think you are probably right. I think part of the problem is that we
no longer have a clear vision for what Zope 3 is. I don't think this is
entirely bad, as the vision has been evolving to match reality. I think
most of us are settling on the idea of Zope 3 as "library", but we're
still figuring out how to articulate and implement this vision.
Yes, good point. I understand why we're going through this. We do have a
vision for what Grok is: making Zope 3 technologies easier to use; of
course it's debatable whether we're doing it right, but that's our goal.
I think there is a need for projects that do this.
Post by Martijn Faassen
Zope 3 the code isn't animate, but the open source community better be.
Right. I consider you to be a part of this community. Several of the
major players in the community have been highly engaged in the
discussions over the past several days. I think it's safe to say that
we're trying to make things better.
Yes, I apologize for the implication that nothing at all was happening.
I've been highly engaged in this discussion as well. I think with Grok
we hit smoe of the problems a bit earlier than most people, as it's a
framework other people build on, and we went to eggs relatively early in
the process. This might explain why our pain rose to intolerable
magnitudes a bit more quickly than it did for other people.

[snip]
Agreed. Of course, before we can point out what people "should" be
doing, we have to figure out what that is. To do that, people have to
remain engaged.
Post by Martijn Faassen
I do care about getting new users to adopt Zope 3 technologies. I
don't see the Zope 3 community think much about new user adoption.
Lots of people care. Of course, most of us also have day jobs. Many of
us are doing the best we can.
While having a day job is part of the story, I believe having a day job
isn't the full story. I think it's also a cultural issue in Zope 3. Zope
3 is a system that is very good for expert use, and not very good for
beginners or more casual users. And while the Zope 3 community is in
many ways quite healthy, I believe it doesn't do as good a job it could
to grow the community of experts.

I believe there are technical reasons why Zope 3 isn't very good for
casual reasons. That is only part of it though: there are also community
cultural reasons. I don't actually particularly mind that this is so at
this point, as we can evolve a related culture (Grok's) separately that
has different emphasises and strengths (and weaknesses). Hopefully we
can maintain a symbiotic relationship between the two, like we've had
between Zope 2 and Zope 3 for a while now.
Post by Martijn Faassen
The only way the eggified Zope can be used reliably currently is with
a lot of upfront knowledge most people don't have, and a lot of work
to sort through the eggs. There are scripts floating around to extract
a list of versions from a buildout run, which helps some, but
initially the answer I got on #zope3-dev when asking about such things
was "write your own script, it's easy". I thought open source
communities were about sharing solutions for problems, not just
sharing the problems themselves.
Again, we have to have the solutions before we can share them.
Sometimes, we arrive at these solutions through experimentation.
What bothered me wasn't that there was no solution at the time. What
bothered me is that there was an attitude of "figure out for yourself
what I already figured out" - we could've communicated better there. I
got, perhaps entirely unwarranted, that the problem was considered
solved, and that there was actually no further need to discuss solutions.
As always, too, we have to understand the different problem sets we have
and the perspectives that gives us. Many of us are building
applications with Zope 3. Others, like you, are building platforms.
Solutions that work for single applications, like nailing versions in
meta egg or buildout configuration don't work so well for platforms, as
I think you've discovered.
Yes, I realize this. I've been communicating this for a while now and
I'm glad you mentioned it just now. Thanks.

[snip]
Post by Martijn Faassen
As far as I can see this *requires* a list of versions somewhere that
is shared between people and that can be communicated about easily. It
requires a *release procedure* around this list of versions. As I
tried to point out before long ago, the Zope 3 project is not somehow
so special it doesn't need releases.
I think the Zope 3 project is somewhat special, which it may need some
kind of releases. :) After all, we have releases of individual eggs. I
don't think it makes much sense to release the traditional Zope 3
application except perhaps as a testing platform. I do think we need
something like what linux distros provide. We need to establish a
better understanding of this.
All right. If this is the philosophy of Zope 3 I'm fine with it. I think
there's a need for a platform to get people to adopt Zope 3
technologies, but we can do this in the scope of other projects (such as
Zope 2 and Grok). I wonder how we communicate this best. I'd like there
to be a "mission statement" for the Zope 3 project that describes what
we're trying to accomplish (it's integrated in some sense, but consists
of separate releases).

[snip]
Post by Martijn Faassen
Post by Jim Fulton
Are you suggesting that other people aren't thinking about this and
don't care?
Fred doesn't appear to care to think about this much, certainly, and
is liking it that way.
So based on a snarky comment by one person, you tar the entire
community.
It wasn't the first time I thought to hear a message like this. As I
said before though, my tone was too strong. I apologize for that.
Instead in the future I will focus on codifying the focuses of the Zope
3 project in a way we hopefully agree on. If Zope 3 is stepping back
from being a platform, we should figure out ways for people to deal with
the transition somehow, and try to deliniate the scope of Zope 3. I know
you and others have been trying to do this.
I'll note, BYW, that if you had provided more details, as
Philipp eventually did, I think Fred's response would have been more
sympathetic. (Just guessing)
I am sorry, I thought the situation was more obvious than it was, given
the version numbers involved. I did bring more details in myself later.

[snip]
Post by Martijn Faassen
With our Grok versions list, we publish a list *per* version of Grok.
I hope this is the intent for the known-good index as well. If someone
says they use Grok 0.11,
Is Grok 0.11 a feature release? Would you expect the version list for
Grok .11 to change as bug fixes are made?
Yes, 0.11 is a feature release (it hasn't been released yet, actually).
Basically I'd like the list to be frozen. When a bugfix release is made,
a new list is published for that bugfix release.

So, every release, feature or bugfix, would have a new list (or
potentially even the same list except for Grok, if nothing else changes,
but in this case it'd be a copy that we publish separately).

I think this is important for a platform with releases of its own. If
someone reports a bug with Grok x.y.z, we want to know exactly which
packages they were using, without having to ask them for the complete
list of versions in buildout. Of course if an individual application
developer overrode particular versions in their own buildout.cfg all
bets are off, so this should be one of the first questions we ask them. :)
Post by Martijn Faassen
we want to know *exactly* which versions they are using without
requiring them to send us a long list too. One version number should
be enough. Our installation tools support this, and our documentation
documents this. I think this is the only maintainable way to actually
have a community developing and using a common code base.
My suggestion is that there should be stable indexes for each "feature
release". Changes to these indexes should be made to fix bugs, not add
new features. Of course, there could be other less stable indexes for
people who want them. If you want to nail all of the versions for a
specific release of grok, then it seems to me that versions in a meta
egg or a buildout configuration should work well.
Yes, a meta egg could've worked.

A meta egg has the drawback of locking out individual application
developers from varying versions at all in their own buildout.cfg
(unless you add the feature we talked about where you can override egg
selections in a meta egg). A mechanism for getting updated eggs in Grok
itself would be application developers using newer underlying packages
to get bugfixes or features, and then asking the Grok core developers to
consider adopting this newer version in a future Grok release.

The nice thing about such a community mechanism is that hopefully
there'll be an active motivation for people to communicate this
information to core developers so this can be managed like the software
itself. Could've worked with a meta egg as well, though.

We do use a buildout configuration, over a URL using the extension
mechanism of buildout. A local buildout versions listing wouldn't work
as we'd need to communicate this list directly to all application
developers. With the current approach using the extends mechanism we
have one URL (latest grok release) that grokproject uses to create a new
buildout for Grok. To update an existing Grok buildout to a newer
version of Grok requires the changing of just one URL.

I'm not convinced yet that even a well-managed evolving index with
bugfix releases would be the right thing for a framework like Grok (or
future Zope 2, for that matter, actually). But we'll keep an eye on it,
and I'm happy this work is happening.

Again, I apologize for my outburst, and thanks for your kind and
constructive response.

Regards,

Martijn
Max M
2007-10-08 12:35:04 UTC
Permalink
Post by Martijn Faassen
We've worked with eggs for a few months now, with Grok. I can report
that I believe the egg situation is currently massively unusable for
almost all Zope 3 users except, from now on, Grok users, as two people
spent half the week in resolving this problem and figuring out which
eggs to use for what. I think the traffic on this mailing list the last
weeks is plenty of evidence that non-Grok users have had very similar
problems.
I don't understand why this wasn't imlediately obvious from the
beginning of egg'ifying zope 3?

It was the first thing I thought about when I heard of things moving in
that direction. Making software by releasing loosely coupled versions of
seperate projects sounds like the perfect recipe for disaster.

But I assumed I had just misunderstood how it was supposed to work.
--
hilsen/regards Max M, Denmark

http://www.mxm.dk/
IT's Mad Science
Jim Fulton
2007-10-05 17:35:37 UTC
Permalink
Post by Martijn Faassen
Hi there,
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess
this also happened because large package refactorings happened and
were released as 3.4.x releases. It's pretty bizarre to run into,
though.
The satellite projects have version #s that are independent from the
Zope version #s. Any similarity is a hysterical accident. :)

Jim

P.S. This has nothing to do with whether the Zope 3.4 release is
important.

--
Jim Fulton
Zope Corporation
Martijn Faassen
2007-10-05 19:00:17 UTC
Permalink
Post by Jim Fulton
Post by Martijn Faassen
Hi there,
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess this
also happened because large package refactorings happened and were
released as 3.4.x releases. It's pretty bizarre to run into, though.
The satellite projects have version #s that are independent from the
Zope version #s. Any similarity is a hysterical accident. :)
I don't understand. zope.error is zope.app.error, but moved to a new
place. zope.app.error, is, I understand, gone now. zope.error 3.5 is
needed by:

required by zope.app.applicationcontrol 3.4.1.
required by zope.app.appsetup 3.4.1.
required by zope.app.publication 3.4.2.

Are these "satellite projects"? What is a satellite project?

Regards,

Martijn
Jim Fulton
2007-10-05 19:15:28 UTC
Permalink
Post by Martijn Faassen
Post by Jim Fulton
Post by Martijn Faassen
Hi there,
zope.error is a 3.5 egg, but is needed by 3.4.x releases. I guess
this also happened because large package refactorings happened
and were released as 3.4.x releases. It's pretty bizarre to run
into, though.
The satellite projects have version #s that are independent from
the Zope version #s. Any similarity is a hysterical accident. :)
I don't understand.
Probably because you didn't provide specifics so My answer is to a
different question than you may have been asking. :)
Post by Martijn Faassen
zope.error is zope.app.error,
I don't know what this means.
Post by Martijn Faassen
but moved to a new place. zope.app.error, is, I understand, gone now.
I have no idea about this specific move. If there was a
zope.app.error before, then distributions of it should still exist
and new distributions should be backward compatible.
Post by Martijn Faassen
required by zope.app.applicationcontrol 3.4.1.
required by zope.app.appsetup 3.4.1.
required by zope.app.publication 3.4.2.
OK. I'm not sure what the issue is here.
Post by Martijn Faassen
Are these "satellite projects"? What is a satellite project?
Yes. These are satellite projects. We use the word "satallite
project" for the new individual egg projects to distinguish them from
the classic Zope 3 tree.

Jim

--
Jim Fulton
Zope Corporation
Philipp von Weitershausen
2007-10-06 08:52:32 UTC
Permalink
I have no idea about this specific move. If there was a zope.app.error
before, then distributions of it should still exist and new
distributions should be backward compatible.
Post by Martijn Faassen
required by zope.app.applicationcontrol 3.4.1.
required by zope.app.appsetup 3.4.1.
required by zope.app.publication 3.4.2.
OK. I'm not sure what the issue is here.
The issue is that the packages Martijn mentioned above as well as
zope.app.error were in 3.4.x beta mode. That means they were stabilizing.

Yet zope.app.error was split up into zope.error and zope.app.error
without releasing a zope.app.error 3.4.0 final first. The split up
should have been done entirely in the 3.5.x series, *after* producing
stable 3.4.0 releases.
--
http://worldcookery.com -- Professional Zope documentation and training
Fred Drake
2007-10-06 09:14:25 UTC
Permalink
Post by Philipp von Weitershausen
Yet zope.app.error was split up into zope.error and zope.app.error
without releasing a zope.app.error 3.4.0 final first. The split up
should have been done entirely in the 3.5.x series, *after* producing
stable 3.4.0 releases.
It's all there in Subversion. Someone who wants a final 3.4.0 release
is welcome to make one.


-Fred
--
Fred L. Drake, Jr. <fdrake at gmail.com>
"Chaos is the score upon which reality is written." --Henry Miller
Martijn Faassen
2007-10-06 10:13:27 UTC
Permalink
Post by Fred Drake
Post by Philipp von Weitershausen
Yet zope.app.error was split up into zope.error and zope.app.error
without releasing a zope.app.error 3.4.0 final first. The split up
should have been done entirely in the 3.5.x series, *after* producing
stable 3.4.0 releases.
It's all there in Subversion. Someone who wants a final 3.4.0 release
is welcome to make one.
That's not a very satisfactory answer for a number of reasons:

* the 3.4.1 release of zope.app.publication, the 3.4.1 release of
zope.app.appsetup, and the 3.4.2 release of zope.app.publication *still*
introduces this new dependency on zope.error 3.4 which never should've
happened in the 3.4 line.

* Concerning it all being there in subversion, the CHANGES.txt in SVN
actually doesn't even mention this massive package refactoring, last I
looked.

* This situation should've been avoided in the first place. Saying it's
all in subversion and for other people to sort out is very weak.

* what are you proposing anyway? We release a zope.error 3.4.0, pulling
it out of our hats all of a sudden? We release zope.app.appsetup 3.4.0
that doesn't need zope.error at all? I can't see a way out of it even
with what's in subversion.

Regards,

Martijn
Jim Fulton
2007-10-06 14:58:42 UTC
Permalink
Post by Fred Drake
Post by Philipp von Weitershausen
Yet zope.app.error was split up into zope.error and zope.app.error
without releasing a zope.app.error 3.4.0 final first. The split up
should have been done entirely in the 3.5.x series, *after* producing
stable 3.4.0 releases.
It's all there in Subversion. Someone who wants a final 3.4.0 release
is welcome to make one.
But existing stable versions shouldn't have been updated (and
presumably changed) to depend on the new unstable packages.

Jim

--
Jim Fulton
Zope Corporation
Jim Fulton
2007-10-06 14:57:31 UTC
Permalink
Post by Philipp von Weitershausen
Post by Jim Fulton
I have no idea about this specific move. If there was a
zope.app.error before, then distributions of it should still exist
and new distributions should be backward compatible.
Post by Martijn Faassen
required by zope.app.applicationcontrol 3.4.1.
required by zope.app.appsetup 3.4.1.
required by zope.app.publication 3.4.2.
OK. I'm not sure what the issue is here.
The issue is that the packages Martijn mentioned above as well as
zope.app.error were in 3.4.x beta mode. That means they were
stabilizing.
Yet zope.app.error was split up into zope.error and zope.app.error
without releasing a zope.app.error 3.4.0 final first. The split up
should have been done entirely in the 3.5.x series, *after*
producing stable 3.4.0 releases.
Yup. I see. And the sin was compounded by making stable packages
depend on the new unstable packages. That is fairly key. Thanks for
explaining this.

Jim

--
Jim Fulton
Zope Corporation
Martijn Faassen
2007-10-06 10:06:38 UTC
Permalink
[snip]
Post by Martijn Faassen
but moved to a new place. zope.app.error, is, I understand, gone now.
I have no idea about this specific move. If there was a zope.app.error
before, then distributions of it should still exist and new
distributions should be backward compatible.
After we fixed a bunch of errors in them, they're backward compatible,
yes. With deprecation warnings. The code moved to zope.error so
zope.app.error is now empty.

I really don't think going from zope.app.applicationcontrol 3.4 beta
whatever, going to final 3.4.1 suddenly means a whole new package should
appear with new deprecation warnings.

I thought that *never* in the 3.4 line of eggs should they *suddenly*
start relying on 3.5 eggs. That's nothing to do with the notion of a 3.4
release, but with the notion that during the stabilization phase, or
with minor bugfix releases, you don't suddenly start relying on a new
feature release of something else (or in this case, an entirely new
release).

Anyway, I think the rule should be:

"When you do a final or bugfix release of a package, you can't start
requiring a new feature release of another package."

Translated to version numbers:

"If X.Y.x has been relying on A.B.x, X.Y.x + 1 cannot start relying on
A.B + n, only on new A.B.x + n releases, where x is one of (b0, b1, 1,
2, 3, ...) and n is one of (1, 2, 3 ...)"

Regards,

Martijn
Jim Fulton
2007-10-06 15:54:20 UTC
Permalink
Post by Martijn Faassen
[snip]
Post by Jim Fulton
Post by Martijn Faassen
but moved to a new place. zope.app.error, is, I understand, gone now.
I have no idea about this specific move. If there was a
zope.app.error before, then distributions of it should still exist
and new distributions should be backward compatible.
After we fixed a bunch of errors in them, they're backward
compatible, yes. With deprecation warnings. The code moved to
zope.error so zope.app.error is now empty.
I really don't think going from zope.app.applicationcontrol 3.4
beta whatever, going to final 3.4.1 suddenly means a whole new
package should appear with new deprecation warnings.
Agreed.
Post by Martijn Faassen
I thought that *never* in the 3.4 line of eggs should they
*suddenly* start relying on 3.5 eggs. That's nothing to do with the
notion of a 3.4 release, but with the notion that during the
stabilization phase, or with minor bugfix releases, you don't
suddenly start relying on a new feature release of something else
(or in this case, an entirely new release).
I think I agree with the spirit of the above, but not the specifics.
You restate the specifics below in a way I whole-heartedly agree
with. There isn't a 3.4 "line" of eggs. There could be a set of
projects versions associated with a "3.4 release of Zope3", but the
individual version number could be almost anything.
Post by Martijn Faassen
"When you do a final or bugfix release of a package, you can't
start requiring a new feature release of another package."
+1
Post by Martijn Faassen
"If X.Y.x has been relying on A.B.x, X.Y.x + 1 cannot start relying
on A.B + n, only on new A.B.x + n releases, where x is one of (b0,
b1, 1, 2, 3, ...) and n is one of (1, 2, 3 ...)"
Exactly.

Jim

--
Jim Fulton
Zope Corporation
Martijn Faassen
2007-10-06 22:58:42 UTC
Permalink
Hey,

Jim Fulton wrote:
[snip]
Post by Jim Fulton
Post by Martijn Faassen
I thought that *never* in the 3.4 line of eggs should they *suddenly*
start relying on 3.5 eggs. That's nothing to do with the notion of a
3.4 release, but with the notion that during the stabilization phase,
or with minor bugfix releases, you don't suddenly start relying on a
new feature release of something else (or in this case, an entirely
new release).
I think I agree with the spirit of the above, but not the specifics.
You restate the specifics below in a way I whole-heartedly agree with.
There isn't a 3.4 "line" of eggs. There could be a set of projects
versions associated with a "3.4 release of Zope3", but the individual
version number could be almost anything.
Yes, you're right, I agree. What I said above is correct but only for
this current set of releases due to the history of starting out with the
version number 3.4 for the first release of almost all of them. It will
not remain that way.
Post by Jim Fulton
Post by Martijn Faassen
"When you do a final or bugfix release of a package, you can't start
requiring a new feature release of another package."
+1
Post by Martijn Faassen
"If X.Y.x has been relying on A.B.x, X.Y.x + 1 cannot start relying on
A.B + n, only on new A.B.x + n releases, where x is one of (b0, b1, 1,
2, 3, ...) and n is one of (1, 2, 3 ...)"
Exactly.
Philipp, is this something that would be worthwhile to adopt in your
document?

Regards,

Martijn
Philipp von Weitershausen
2007-10-07 14:33:19 UTC
Permalink
Post by Martijn Faassen
Post by Jim Fulton
Post by Martijn Faassen
"When you do a final or bugfix release of a package, you can't start
requiring a new feature release of another package."
+1
Post by Martijn Faassen
"If X.Y.x has been relying on A.B.x, X.Y.x + 1 cannot start relying
on A.B + n, only on new A.B.x + n releases, where x is one of (b0,
b1, 1, 2, 3, ...) and n is one of (1, 2, 3 ...)"
Exactly.
Philipp, is this something that would be worthwhile to adopt in your
document?
Absolutely. I don't have the time to add it right now, but I've added a
note so I won't forget.
--
http://worldcookery.com -- Professional Zope documentation and training
Loading...