[Zope3-dev] The Zope Software Certification Program and Common
Repository Proposal
Dominik Huber
dominik.huber at perse.ch
Wed Feb 22 10:58:32 EST 2006
Stephan Richter wrote:
[...]
> 3.2. Layout
> ~~~~~~~~~~~
>
> Packages in the Common Repository *must* have the following layout:
>
> repos/main/<NAMESPACE>.<PACKAGE>
> branches/
> tags/
> trunk/
> ... setup files ...
> src/
> <NAMESPACE>/
> <PACKAGE>/
> ... code ...
> zscp/ [optional]
> ZSCP.cfg
> PUBLICATION.cfg [optional]
> CERTIFICATIONS.xml [optional]
> RELEASES.xml [optional]
[...]
Hi Stephan,
Excuse my delay, but a had no time until today to dive into your
proposal seriously. I like it very much. Today Roger and I discussed the
proposal and we got stuck with the following problem:
Sometimes we we want provide beside the __init__.py additional files on
<NAMESPACE>-level, for example a configure.zcml that registers the
api:rootModule or the first api:bookchapter of the documentation
hierarchy for the namespace package foo.
repos/zscp-test/foo # [1]
branches/
tags/
trunk/
...
src/
foo/
__init__.py
configure.zcml
foo-configure.zcml
SETUP.cfg
a/
b/
c/
Those files are fairly hard to handle if you like to arrange a new respository relying on such a namespace package and other package of the same namespace.
We propose to move those files in a dedicated named folder for example
'configure' (like tests.py and ./tests/). All informations and
registrations about the namespace should be located within this folder
'configure'.
repos/zscp-test/foo
branches/
tags/
trunk/
...
src/
foo/
__init__.py
a/
b/
c/
configure/
__init__.py
configure.zcml
foo-configure.zcml
SETUP.cfg
There are packages (foo.a, foo.b, foo.c) that exists physically in this
namespace-repository and there are packages (foo.x) that only uses the
namespace but exists in independent-tree of the repository or in a independent respository.
repos/zscp-test/foo.x
branches/
tags/
trunk/
...
src/
foo/
x/
The only dependency from foo.x to foo is that foo.x likes to register a
api:bookchapter to the id foo.x. Therefore it requires the
configure.zcml of foo.
Now should we create a new customer application. The project depends on
a certain tags of the packages foo.a and foo.x. To provide a simple
checkout mechanism for the developers it would be nice to arrange a new
customer repository invoking those packages by svn:externals. If we have
the separate namespace-related folder 'configure' it would be easy to do:
repos/zscp-test/custommer
branches/
tags/
trunk/
...
src/
foo/
__init__.py
-> svn:externals a url_to_foo.configure [2]
-> svn:externals a url_to_foo.a [3]
-> svn:externals x url_to_foo.x [4]
customer/
.. code ..
Otherwise we must include the whole foo package:
-> you cannot access the foo package from a tag
-> cannot select dedicated packages out of the foo package.
Do you have an other solutions for this problem?
Another smaller question: Is it intended to provide nested namespaces such as repos/main/<NAMESPACE>.<SUBNAMESPACE>.<PACKAGE>? This pattern is convenient if a few packages are tied together by their release cycles.
Regards,
Dominik
[1] svn://svn.tiks.org/repos/zscp-test
[2] ./foo/tags/foo-0.0.2/src/foo/configure
[3] ./foo/tags/foo-0.0.2/src/foo/a
[4] ./foo.x/tags/foo.x-0.0.1/src/foo/x
More information about the Zope3-dev
mailing list