Quantcast

Strange directory structure for geowidget?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Strange directory structure for geowidget?

Martin Desruisseaux-2
I noticed that Geowidgets has been commited to SVN (nice!). But the
directory structure is a little bit strange compared to other projects.
The path to source is:

http://svn.geotools.org/geotools/trunk/spike/geowidgets/trunk/stable/src-crs/

  - There is a geowidget 'trunk' inside the geotools trunk.

  - There is a 'stable' and 'instable' subdirectory
    (in geotools SVN spirit, 'instable' would live in
    http://svn.geotools.org/geotools/branches/).

  - There is various 'src' directories (src-crs, src-main, etc.).

  - 'test' are subdirectories of 'src'.

Is it worth to bring the structure to something more in line with the
Geotools structure?

        Martin.


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Geotools-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Strange directory structure for geowidget?

Matthias Basler-2
Hi Martin, hi others

> I noticed that Geowidgets has been commited to SVN (nice!). But the
> directory structure is a little bit strange compared to other projects.

I am aware of that and I had my reasons to do so. However if we find solutions
that are more "usual" and work as good as this one, I'm perfectly fine with
changing the layout.

First let me give you an explaination why I did the structure as I did it:
http://svn.geotools.org/geotools/trunk/spike/geowidgets/trunk/stable/

> - There is a geowidget 'trunk' inside the geotools trunk.

I chose to have a separate trunk directory because GeoWidgets will follow
another release schedule than GeoTools. So when GeoTools branches to some
stable branch this will not necessary mean that GeoWidgets can/will have a
stable branch at the same time. Furthermore I can create branches such as
http://svn.geotools.org/geotools/trunk/spike/geowidgets/1.0.M2/...
http://svn.geotools.org/geotools/trunk/spike/geowidgets/1.0.M3/...
without a need for GeoTools to branch.

So in short: This was my solution to the fact that GeoWidgets is WITHIN the SVN
of GeoTools, but has another release schedule.

> - There is a 'stable' and 'instable' subdirectory

Yes, I have "Stable" and "Instable" within trunk.
Let me first emphasize that Stable is NOT a replacement for stable branches or
tags. (although there are no branches currently on this SVN.) In the past I had
only one "GeoWidgets" project in trunk that included everything: Finished
widgets and packages, packages under development and some that just contained
classes I was playing with. But when I created the M0 and M1 releases, which
were supposed to contain only the more or less finished code (not "stable in
the sense of a a stable 1.0 release) I found that it would be easier to split
Geowidgets into two projects that depend on each other:

The "stable" project
- is fully documented with JavaDoc,
- contains working (but not necessary mature) widgets,
- has test cases and some JUnit tests and
- is released in milestone releases
whereas the Instable project (which is not yet up on SVN)
- does not require any of this,
- is likely subject to fundamental package renamings, interface changes a.s.o.
(under active development, so to speak) and
- is not released in milestone releases.
So there is (as far as I see) actually not the need to have specific branches
for active RnD work, which again means less maintnance effort.

The "Instable" project depends on the "Stable" project.

Now obviously the names "Stable" and "Instable" are confusing as I can see from
your feedback. Alternatively we could call them
- "finished" and "unfinished" or
- "finished" and "devel"
if you like that better. Maybe you even have a better idea.

> There is various 'src' directories (src-crs, src-main, etc.).

In GeoTools you have separate projects for different things like "main",
"epsg-access", "shapefile", ... Since the codebase in GeoWidgets is not so
large as to justify the additional work of maintaining several projects I
thought how to best organize the different sets of widgets within one (and now
two) Eclipse projects. I found that I could simply keep sources for each set of
widgets in one source directory each plus have one "src-main" directory that
contains shared code such as utility classes.

Now lets suppose I have finished a set of "foo" widgets. All I have
(theoretically!) to do is to copy the "src-foo" directory from "Instable" to
"Stable", document it, create tests if not yet there, check/remove warnings and
create a new milestone release. Fairly easy, I should think.

To cut long stories short: I thought this a good alternative to the approach of
various single projects that is used in GeoTools and as a way to keep the
source code together and have less maintenance work.

Does this make sense?

> 'test' are subdirectories of 'src'.

Is there any problem with that? In the beginning I had all test in one directory
but found it much better if they stay together with the sources they are
supposed to test.
It would be possible to create "test-main", "test-crs", "test-sld" a.s.o.
directories, but this would mean a large increase in project root directories
without any advantage.

Again, if you have suggestions how to make this SVN structure more "usual"
without losing the above advantages, just let me know and I will consider them.


P.S. Jody and I myself had/have problems building fresh checkouts. The libraries
get downloaded during a "Clean", but Eclipse doesn't realize they are there and
still shows the "missing dependency" errors. Only after doing some editing on
build.xml (insert a space character and save, f.e.) does Eclipse rebuild
completely and realize that it already has the dependencies in place.
I would be VERY grateful if someone with Ant and Builder experience could look
at my project configuration and build.xml and tell me what I've done wrong or
if this isn't my fault but an Eclipse bug or what else is going on. I have no
idea.

Matthias Basler
[hidden email]

----------------------------------------------------------------
This mail was sent through http://webmail.uni-jena.de


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Geotools-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Re: Strange directory structure for geowidget?

Bryce L Nordgren


Matthias Basler wrote on 09/07/2005 07:49:54 AM:

> > - There is a geowidget 'trunk' inside the geotools trunk.
>
> I chose to have a separate trunk directory because GeoWidgets will follow
> another release schedule than GeoTools.

There's a lot of people in this boat.  For instance, all plugins are
supposed to be released on their own schedule, with their own numbering
scheme.  I believe all extensions are also supposed to do this, but we
don't have too many extensions.

However, plugins and extensions are not entirely independent of the main
source tree.  They're required to follow the same "don't break trunk"
regulation as module/main.  Ergo, development is done on branches in the
"branches" directory of the geotools repository.  Presumably, tags should
be done separately, but I've never bothered because plugins keep getting
rolled in to the main release, thus squashing the separate numbering of the
plugins.

So I guess that plugins and extensions should theoretically be in the same
boat as you, but aren't.  If you come up with a workable solution that
doesn't wierd everyone out, maybe the developer's guide could be updated
for the benefit of the rest of us. ;)

Bryce



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Geotools-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Strange directory structure for geowidget?

Jody Garnett
In reply to this post by Martin Desruisseaux-2
Martin Desruisseaux wrote:

> Is it worth to bring the structure to something more in line with the
> Geotools structure?

Well it is its own project, and the whole trunk this is just a
convention - I would check out the subversion book and go with one of
their recommendations.
Jody


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Geotools-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Strange directory structure for geowidget?

Matthias Basler-2
In reply to this post by Bryce L Nordgren
Zitat von Bryce L Nordgren <[hidden email]>:

> Matthias Basler wrote on 09/07/2005 07:49:54 AM:
>
> > > - There is a geowidget 'trunk' inside the geotools trunk.
> >
> > I chose to have a separate trunk directory because GeoWidgets will follow
> > another release schedule than GeoTools.
>
> There's a lot of people in this boat.  For instance, all plugins are
> supposed to be released on their own schedule, with their own numbering
> scheme.

Maybe we are talking about something different, but I always believed the
plugins have he same release schedule as GeoTools; If GeoTools2.2.M0 comes out,
a new version of, lets say, "gt2-shapefile.jar" is included and later this will
be found on the list server as shapefile-2.2.M0.jar.
And this won't make much sense for GeoWidgets.

> [...] Ergo, development is done on branches in the
> "branches" directory of the geotools repository.

The "branches" solution that GeoTools adopted seems to have an advantage when
major changes are done on an existing API and have to get merged in later. My
idea with the two projects, one of which holding the RnD work, might prove more
complicated when it comes to merging. I say "might" - I haven't tested either of
them in real life yet for this purpose. GeoWidgets in not yet the size where
such "RnD branches" are necessary.

Matthias Basler
[hidden email]

----------------------------------------------------------------
This mail was sent through http://webmail.uni-jena.de


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Geotools-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Loading...