Mailing List Archive

ZConfig in SVN repository
Hi,

do I see right that we have two different ZConfig versions in the SVN? One
one the root level
and one under Zope/lib/python? Shouldn't we unify the versions by making
the most current version
the master?

Andreas
Re: ZConfig in SVN repository [ In reply to ]
Andreas Jung wrote:
> do I see right that we have two different ZConfig versions in the SVN?
> One one the root level
> and one under Zope/lib/python? Shouldn't we unify the versions by making
> the most current version
> the master?

Other copies are here:

http://svn.zope.org/Zope3/trunk/src/ZConfig/
http://svn.zope.org/ZODB/trunk/src/ZConfig/

Maybe using svn:external would make the dependencies more obvious?

Cheers, Yuppie

_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders
Re: Re: ZConfig in SVN repository [ In reply to ]
[Andreas Jung]
>> do I see right that we have two different ZConfig versions in the SVN?
>> One one the root level
>> and one under Zope/lib/python? Shouldn't we unify the versions by making
>> the most current version the master?

[yuppie]
> Other copies are here:
>
> http://svn.zope.org/Zope3/trunk/src/ZConfig/
> http://svn.zope.org/ZODB/trunk/src/ZConfig/

Also copies in various branches and tags of the above.

Note that all the same goes for zdaemon too.

> Maybe using svn:external would make the dependencies more obvious?

Yup -- although so far there isn't a tag to point at, for either
zdaemon or ZConfig.

The person "in charge" of a project should figure out how they like to
stitch external stuff into it. I doubt anyone working on Zope 2.8
would object to using svn externals for these; I'm not sure about
Zope3 (Jim seems to like copies instead -- I'm unclear on why).
_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders
Re: Re: ZConfig in SVN repository [ In reply to ]
--On Dienstag, 10. Mai 2005 12:59 Uhr -0400 Tim Peters
<tim.peters@gmail.com> wrote:

> [Andreas Jung]
>>> do I see right that we have two different ZConfig versions in the SVN?
>>> One one the root level
>>> and one under Zope/lib/python? Shouldn't we unify the versions by making
>>> the most current version the master?
>
> [yuppie]
>> Other copies are here:
>>
>> http://svn.zope.org/Zope3/trunk/src/ZConfig/
>> http://svn.zope.org/ZODB/trunk/src/ZConfig/
>
> Also copies in various branches and tags of the above.
>
> Note that all the same goes for zdaemon too.
>
>> Maybe using svn:external would make the dependencies more obvious?
>
> Yup -- although so far there isn't a tag to point at, for either
> zdaemon or ZConfig.

A quick diff over the the ZConfig trunk and the version 2.8 shows that the
ZConfig
version on the trunk is the "maintained" version. But I have no idea about
zdaemon.
>From my point of view it would make sense to replace the copies in the 2.8
tree
with external references for the next beta...any objections?

Andreas
Re: Re: ZConfig in SVN repository [ In reply to ]
[Andreas Jung]
> A quick diff over the the ZConfig trunk and the version 2.8 shows that the
> ZConfig version on the trunk is the "maintained" version. But I have no
> idea about zdaemon.

repos/main/XYZ/trunk is always "the official" current development home
for project XYZ. Zope, Zope3, ZODB, ZConfig, zdaemon, ..., all are
exactly the same this way.

Initially, all external projects under SVN were copied into all client
projects. So, e.g., ZODB and Zope and Zope3 currently all have their
own copies of ZConfig and zdaemon. When I had more spare time, I
tried to keep them in synch -- but that ended months ago.

> From my point of view it would make sense to replace the copies in the 2.8
> tree with external references for the next beta...any objections?

People who think they understand those projects first need to make
tags, so Zope 2.8 has something to point _to_. Also, Zope, Zope3, and
ZODB should all coordinate to make sure they're using the same tags
for zdaemon and ZConfig. Else, e.g., I develop ZODB using a ZConfig
that doesn't match the one Zope uses, and then things break when Zope
moves to a newer ZODB.
_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders
Re: Re: ZConfig in SVN repository [ In reply to ]
--On Dienstag, 10. Mai 2005 14:11 Uhr -0400 Tim Peters
<tim.peters@gmail.com> wrote:

>> From my point of view it would make sense to replace the copies in the
>> 2.8 tree with external references for the next beta...any objections?
>
> People who think they understand those projects first need to make
> tags, so Zope 2.8 has something to point _to_. Also, Zope, Zope3, and
> ZODB should all coordinate to make sure they're using the same tags
> for zdaemon and ZConfig. Else, e.g., I develop ZODB using a ZConfig
> that doesn't match the one Zope uses, and then things break when Zope
> moves to a newer ZODB.

So am I right that you develop the ZODB already against two different
ZConfig versions
(for Zope 2.8 and Zope 3)? So an unique ZConfig repository does make sense
to you
- of course only it is used by everyone. For me it would make perfect
sense to get
rid of the local copies since it removes the need to maintain multiple
copies.
@Jim: what's your opinion on this subject?

Andreas
Re: Re: ZConfig in SVN repository [ In reply to ]
[Tim Peters]
>> People who think they understand those projects first need to make
>> tags, so Zope 2.8 has something to point _to_. Also, Zope, Zope3, and
>> ZODB should all coordinate to make sure they're using the same tags
>> for zdaemon and ZConfig. Else, e.g., I develop ZODB using a ZConfig
>> that doesn't match the one Zope uses, and then things break when Zope
>> moves to a newer ZODB.

[Andreas Jung]
> So am I right that you develop the ZODB already against two different
> ZConfig versions (for Zope 2.8 and Zope 3)?

No: under SVN, ZODB has its own copy of ZConfig, and its own copy of
zdaemon. The copies of those ZODB currently uses may or may not have
anything in common with the copies of those Zope trunk currently uses,
and those in turn may or may not have anything in common with the
copies of those Zope3 uses, and so on.

When Zope or Zope3 trunk get a new version of ZODB stitched in, they
do _not_ get new copies of ZConfig and zdaemon at the same time.
Those aren't part of ZODB. ZODB development simply uses ZConfig and
zdaemon, same as Zope 2.8 and Zope3 develpment simply uses them.

A difference is that I pay an enormous amount of attention to making
sure Zope and Zope3 trunks are using "good" versions of ZODB. Nobody
pays any attention (so far) to the versions of ZConfig and zdaemon
used by Zope and Zope3 trunks. Somebody should; as I said before, I
used to try to keep zdaemon and ZConfig copies in synch across SVN
projects too, but I stopped trying months ago (too much else to do).
Another key difference is that nobody identifiable "is in charge of"
either ZConfig or zdaemon.

> So an unique ZConfig repository does make sense to you

I'm not sure I follow your meaning here. ZConfig already has its own
repository, and that has nothing to do with me personally. ZConfig
(ditto zdaemon) is a distinct project from all the others, and
actually always has been (it's simply much clearer that this is so
under SVN than it was under CVS, due to mountains of "repolink" magic
under CVS that blurred the boundaries between distinct projects).

> - of course only it is used by everyone. For me it would make perfect
> sense to get rid of the local copies since it removes the need to maintain
> multiple copies.

It was never the intent that multiple copies be maintained. The
original intent was that whoever was in charge of a project A would,
from time to time, copy in new releases of the external projects A
relies on. With svn externals, you can do that by editing a property.
Using copies, it requires a long dance, along the lines of:

- Talk the person in charge of an external project E into examining A to
find checkins made to E _from_ A. Those changes need to be merged
back into E. Or someone from A can do the merge into E. Regardless,
A cannot retain unique (to A) changes in E unless A intends to fork E,
in which case A takes full responsibility for maintaining A's copy of E
forever after.

- Then the person in charge of A does svn switch to a new (merged)
version of E locally and tests it; if that passes, svn switch back to A's
old version of E; svn remove A's E code; svn commit the removal; svn
copy the new version of E into A; svn commit the new version.

I'm not sure anyone but me ever did that dance, and I got sick to
death of it -- "the merge step" in particular could take an arbitrary
and unpredictable amount of time, and was extremely error-prone. This
was in part because, using copies, _most_ people working on Zope and
Zope3 really have scant idea of which part of the code "belongs" to
Zope and which doesn't, so routinely check in changes to (copies of)
external projects. My ZODB life has been much easier since Zope and
Zope3 trunks switched to using svn externals for their piles of ZODB
directories.

> @Jim: what's your opinion on this subject?

Jim likes copies better than externals. If you can get him to explain
why, you should win a fabulous prize <wink>. But, regardless, you and
Brian (I think) are in charge of Zope 2.8 now, so "your project, your
call" rules.
_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders
Re: Re: ZConfig in SVN repository [ In reply to ]
--On Donnerstag, 12. Mai 2005 12:53 Uhr -0400 Tim Peters
<tim.peters@gmail.com> wrote:

> >
>> @Jim: what's your opinion on this subject?
>
> Jim likes copies better than externals. If you can get him to explain
> why, you should win a fabulous prize <wink>. But, regardless, you and
> Brian (I think) are in charge of Zope 2.8 now, so "your project, your
> call" rules.

Well it is not my job to convince Jim of anything :-) I do care about Zope 2
and I will try to maintain it in a sane way and in way where we have little
trouble and little time to spend instead of maintaining multiple versions
of stuff laying around.

So for Zope 2.8 this means to me:

- the ZConfig and zdaemon should have a minimal release management (means
stable released should be tagged properly)

- ZODB development can be done against any version

- ZODB releases should done against a dedicated ZConfig, zdaemon release
(means something tagged)

- the local copies of ZConfig, zdaemon in Zope 2.8 will replaced by
svn:externals
(using a dedicated tag)

The ZODB in 2.8 is currently not an svn:external but a local copy as well?
Right?

It might also make sense to tag ZConfig+ZODB together since ZODB depends on
ZConfig.

Andreas
Re: Re: ZConfig in SVN repository [ In reply to ]
[Andreas Jung]
> ...
> So for Zope 2.8 this means to me:
>
> - the ZConfig and zdaemon should have a minimal release management
> (means stable released should be tagged properly)

Definitely needed.

> - ZODB development can be done against any version
>
> - ZODB releases should done against a dedicated ZConfig, zdaemon
> release (means something tagged)

More generally, all releases of all projects P should be done against
tags of all P's external dependencies.

> - the local copies of ZConfig, zdaemon in Zope 2.8 will replaced by
> svn:externals (using a dedicated tag)

Wnen tags for those exist, I'll change ZODB to use them too.

> The ZODB in 2.8 is currently not an svn:external but a local copy as well?
> Right?

No. Do you ever use SVN <wink>? Go to a shell right now, cd to the
root of a Zope 2.8 checkout, and type:

svn proplist -v utilities lib/python

The 9 svn:externals properties you get back containing
"ZODB/tags/3.4.0a9" define exactly how Zope 2.8 obtains ZODB. When
you do "svn up", this is why you see message go by saying things like

...
Fetching external item into 'lib\python\ZEO'
Fetching external item into 'lib\python\ZODB'
...

Zope3 also uses svn:externals to obtain ZODB, but only stitches in 6
directories from ZODB (as opposed to the 9 ZODB directories Zope 2.8
stitches in).

> It might also make sense to tag ZConfig+ZODB together since ZODB
> depends on ZConfig.

This doesn't make sense to me, although I'm not sure what you mean.
Zope, ZODB, ZConfig, and zdaemon are 4 independent projects. Zope and
ZODB both depend directly on ZConfig, and both also depend directly on
zdaemon. Zope also depends on ZODB. It would be _prudent_ for Zope2,
Zope3, and ZODB to use the same versions of ZConfig and of zdaemon.
That would be much easier to do if ZConfig and zdaemon were tagged.

The first time ZConfig and zdaemon get tagged, it's important that
whoever do that first search all clients (ZODB and both Zopes) for
changes to those checked in from a wrong project, and do merges back
to ZConfig and zdaemon (I explained that dance last time) -- else
those changes (if any) will get lost.
_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders
Re: Re: ZConfig in SVN repository [ In reply to ]
--On Freitag, 13. Mai 2005 9:07 Uhr -0400 Tim Peters <tim.peters@gmail.com>
wrote:

>> - the ZConfig and zdaemon should have a minimal release management
>> (means stable released should be tagged properly)
>
> Definitely needed.

So let's do it. Amen. Tagging a package should not be so much overhead
for the maintainer.

>
> More generally, all releases of all projects P should be done against
> tags of all P's external dependencies.

right.


>> The ZODB in 2.8 is currently not an svn:external but a local copy as
>> well? Right?
>
> No. Do you ever use SVN <wink>? Go to a shell right now, cd to the
> root of a Zope 2.8 checkout, and type:

...still learning to fly :-)

>
> The first time ZConfig and zdaemon get tagged, it's important that
> whoever do that first search all clients (ZODB and both Zopes) for
> changes to those checked in from a wrong project, and do merges back
> to ZConfig and zdaemon (I explained that dance last time) -- else
> those changes (if any) will get lost.

That's a job for loosers :-) but I will take it over for ZConfig and
ZDaemon..
maybe not for the next beta but hopefully for the final for 2.8.1 release.

Andreas
Re: Re: ZConfig in SVN repository [ In reply to ]
[Tim Peters]
>> The first time ZConfig and zdaemon get tagged, it's
>> important that whoever do that first search all
>> clients (ZODB and both Zopes) for changes to those
>> checked in from a wrong project, and do merges back
>> to ZConfig and zdaemon (I explained that dance last
>> time) -- else those changes (if any) will get lost.

[Andreas Jung]
> That's a job for loosers :-) but I will take it over for ZConfig and
> ZDaemon.. maybe not for the next beta but hopefully for the
> final for 2.8.1 release.

Cool! Then save this message. This is what needs to be done from
each client project:

svn log -v -rHEAD:0 --stop-on-copy ZConfig zdaemon

This is done from the src/ directory of a Zope3 or ZODB checkout, or
from the lib/python/ directory of a Zope(2) trunk checkout.

It shows log messages for all the checkins made _to_ ZConfig and
zdaemon copies_from_ the project you run it in, back to the most
recent time a fresh copy was stitched in. All those changes will be
lost unless they're merged back in to ZConfig/zdaemon.

I tried this quickly, and indeed checkins have been made to zdaemon
and ZConfig from all of (at least) Zope trunk, Zope 3 trunk, and ZODB
3.4 branch. I didn't do any of them, so off the top of my head I
can't say more about them. It can be a real PITA sorting this stuff
out (especially months after the fact) -- or it can be easy. No way
to know without trying.

Note that it's not possible to check in changes "from a wrong project"
when svn externals are used, so these ongoing (so far) merge problems
go away when copies go away.
_______________________________________________
Zope-Coders mailing list
Zope-Coders@zope.org
http://mail.zope.org/mailman/listinfo/zope-coders