[source] Folder setup for interactions across multiple SourceForge repositories

Don Brutzman brutzman at nps.edu
Mon Feb 15 16:28:24 PST 2016


Thanks for your thoughtful look Roy.  Here are several more pieces of information.

a. We ported the Xj3D source over to sourceforge so that further work might resume.

	https://savage.nps.edu/Savage/developers.html#Xj3D

	http://www.web3d.org/wiki/index.php/Xj3D_Evolution

	https://sourceforge.net/projects/xj3d

Because individual programmers have different goals, we kept Xj3D as an independent open-source project not dependent on the X3D tree at SourceForge.

We have also kept the same directory structure and architectural design so that any occasional changes checked into xj3d.org (both for Xj3D and Aviatrix renderer) can get integrated into the Xj3D SourceForge build with little difficulty.

b.  Of note is that a number of other stylesheets and tools are included in the X3D SourceForge archive, peer with the "content" directory, visible at

	https://sourceforge.net/projects/x3d/

	https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets
	https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/tools

Also lurking upstairs in the "specifications" directory are DTDs, schemas, etc. which are often invoked via relative paths as well.

	https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/specifications/

c. We allow anyone building the X3D Examples Archives to use a local copy of Xj3D by setting the property xj3d.dir for local path.  Xj3D is used for binary compression, image snapshot shooting and a few other tasks.

Alternatively we could bundle a .jar file with the archives, but then would need to make multiple copies (one for each independent examples archive) and also keep them up to date.  Deployment might become troublesome... Xj3D has many excellent features but it also has a bunch more work needed.

d. Not sure if anyone besides you has made the effort to build everything - bravo sir - and so it would seem that handling Xj3D can still be fairly ad hoc.

It would be great if Xj3D development gets busy again... here at NPS we are able to make the occasional bugfix and improvement.

e. The Savage archives are intentionally separate.  Unlike the other primary X3D Examples Archives, which are now under a BSD-style open-source license for Web3D Consortium authors, they are under a similar license for NPS.  Similarly the SavageDefense archives are slightly more restricted, unclassified with For Official Use Only access restrictions, allowing our team to work well with other government sponsors and partners.

Due to licensing and relevance, they are not appropriate to integrate as part of Web3D Consortium's SourceForge x3d project archive.

I agree that both Savage and SavageDefense archives can be carefully dropped in as peers as you suggest below.  That is my typical configuration and subversion seems OK - just be sure you check out the right directory at that level, rather than "stepping on" the subversion configuration at directories higher than the "examples" directory.

f.  The parent "examples" directory includes a build.xml Ant file that has a set of tasks that takes advantage of that shared child set of example archives.

	https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/

It also has a "buildExamplesTemplate.xml" file that is customized for each of the 7 examples archives.  Each build.xml is further checked into version control.

Incidentally the latest improvements for the X3D JSON encoding have also rippled into pretty-print HTML, VRML97/ClassicVRML conversions, and X3DOM wrapper pages.  So after uploading JSON improvements I'll be continuing on after performing a "clean.all" at the top level - always a good test that everything is performing correctly, tho it can tak a few days to propagate!

g.  Yet another build dependency hidden in plain sight: this work also works on our Jenkins continuous integration server.  Some sysadmin cleanup needed on that box to get a few jars restored (gee there just aren't enough hours in the week) but everything essentially works when it is setup properly.  TODO for me.

	https://savage.nps.edu/Savage/developers.html#Jenkins

	https://savage.nps.edu/jenkins/

h.So I think all of the goals you are looking for seem to be handled already.  I don't think Xj3D is yet to the point that warrants further integration.

I hope it is now clearer that the build files are mostly independent yet all tightly intertwined... so any changes do need to carefully coordinated.

Sound OK?  Did we miss something? Please advise.  As ever, questions and improvements are welcome.

v/r Don


On 2/13/2016 2:04 AM, Roy Walmsley wrote:
> Don,
>
> Currently there are at least four independent repositories that have interactions spanning multiple repositories.
>
> The x3d repository (https://sourceforge.net/projects/x3d/) is the main X3D repository. Of relevance here is that it includes the Web3D examples, which includes a Netbeans project entitled “X3D examples: archive top level”.
>
> Detailed examination reveals that this project relies upon three subprojects in three other repositories.
>
> The first is the Xj3D repository (https://sourceforge.net/projects/xj3d/).
>
> The second is the Savage examples archive (https://savage.nps.edu/svn/repos/nps/list/Savage).
>
> The third is the Savage defence examples archive. This is, of course, a restricted archive not available to the general public.
>
> The top level project needs to refer to each of the sub projects. This needs to be done by specifying relative directories. Therefore, in order for this to be successful, the relative locations of the cloned repositories needs to be clearly specified.
>
> I therefore suggest the following.
>
> Assume that the top level folder exists, which for the sake of this discussion I will simply name “TopLevel”. It can be called anything the user wishes. The x3d repository should be checked out into this folder. There are two top level folders: “legacy” and “www.web3d.org”. In the latter there are two further folders: “specifications” and “x3d”.
>
> The Xj3D repository should be checked out into the “www.web3d.org” folder. This  adds a third folder to “xj3d” to “specifications” and “x3d”.
>
> The “x3d” folder contains five folders. The one we are particularly interested in is “content”. “content” has three folders. We are interested in “examples”. “examples” has seven  folders. Five of these are of interest, as they contain the full set of Web3D archive examples. These are “Basic”, “ConformanceNist”, “Vrml2.0Sourcebook”, “X3dForAdvancedModeling”, and “X3dForWebAuthors”. It is into the “examples” folder that the Savage examples, and, if available, the Savage Defence examples repositories should be checked into. For the Savage examples archive this adds the folder “Savage”.
>
> In summary, this produces the following folder structure excerpt (only the relevant folders are shown – there are many more).
>
> TopLevel -+
>
>                       |
>
>                       +- legacy
>
>                       +- www.web3d.org -+
>
>                                                                 |
>
>                                                                 +- specifications
>
>                                                                 +- xj3d
>
>                                                                 +- x3d -+
>
>                                                                                |
>
>                                                                                +- content -+
>
>                                                                                                        |
>
>                                                                                                        +- examples -+
>
>                                                                                                                                   |
>
>                                                                                                                                   +- Basic
>
>                                                                                                                                   +- ConformanceNist
>
>                                                                                                                                   +- Vrml2.0Sourcebook
>
>                                                                                                                                   +- X3DForAdvancedModeling
>
>                                                                                                                                   +- X3DForWebAuthors
>
>                                                                                                                                   +- Savage
>
>                                                                                                                                   +- SavageDefence (??)
>
> Note: The nesting of repositories has not caused any problems on my Windows system.
>
> If this folder structure is agreed then I will amend all paths to conform to this structure. I will also modify the code so that the paths are specified as variables at the start of a “build.xml” file so that, if necessary, any modifications are only required in one place.


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the source mailing list