Web Toolbar by Wibiya

Breaking SVN Changes - Project Locations Changing


Moderator: Contrib Moderators

User avatar

Veteran

Posts: 158

Joined: Thu Dec 21, 2006 10:29 pm

Post Thu May 14, 2009 8:30 pm

Breaking SVN Changes - Project Locations Changing

In order to maintain some form of order in the Axiom Contrib SVN, I am proposing we re-structure the SVN to the following:

Under SVN root: /
  • trunk/
    • Axiom.Sound/
      • trunk/
      • branches/
    • Trunk build files (eg. Contrib.sln)
  • branches/
    • Axiom.Contrib.Caelum/
      • trunk/
      • branches/
    • Axiom.Contrib.Hydrax/
      • trunk/
      • branches/

This structure will allow us to add projects to the SVN branches and when stable enough, to move them to the trunk.

In my mind, a measure of stability is that a project compiles and runs on both Windows XP/Vista and Linux (what is the binding linux factor? Tao version?) The actual progress of each project in the trunk is then monitored.

I aim to build and release a library (Axiom.Contrib.dll ?) each month, or thereabouts, so if you are developing a trunk Contrib project, please make sure to get important changes committed before the end of the month! :)

This plan would be great to impliment by month-end of May, so we have some time to discuss how to stage the Axiom Contrib library.

Thoughts please! :)
Image
ImageImage

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Fri May 15, 2009 4:42 am

Re: Breaking SVN Changes - Project Locations Changing

I'm particularly bad at setting up so you won't get much comments from me ;) but wonder that any branches would be in the main trunk. Otherwise each project should have the common branches/trunk/tags structure, yes.

As to the sound plugin, that should not yet go to trunk IMHO (but you used that as example I think), to it's name, have choosen SoundSystems being inspired by RenderSystems, same as you have Xna/OGL/DX RSs there is OpenAL/Xna.Simple and hopefully a Xna subsystem one day.

Perhaps like that, unsure.
User avatar

Team Member
Team Member

Posts: 1587

Joined: Thu Mar 02, 2006 11:29 pm

Location: Boston, MA, USA

Post Fri May 15, 2009 5:02 am

Re: Breaking SVN Changes - Project Locations Changing

aurorus wrote:In order to maintain some form of order in the Axiom Contrib SVN, I am proposing we re-structure the SVN to the following:

Under SVN root: /
  • trunk/
    • Axiom.Sound/
      • trunk/
      • branches/
    • Trunk build files (eg. Contrib.sln)
  • branches/
    • Axiom.Contrib.Caelum/
      • trunk/
      • branches/
    • Axiom.Contrib.Hydrax/
      • trunk/
      • branches/

This structure will allow us to add projects to the SVN branches and when stable enough, to move them to the trunk.

I can't even begin to tell you how hard and confusing this will be to maintain. branches in trunk and trunks in branches. Instead of moving the entire project based on whether it's stable enough to be included in a composite distribution, consider the following

Under SVN root: /
  • Axiom.Plugins.Contrib/
    • trunk/
    • branches/
    • tags/
  • Axiom.SoundSystems/
    • trunk/
    • branches/
    • tags/
  • Axiom.Caelum/
    • trunk/
    • branches/
    • tags/
  • Axiom.Hydrax/
    • trunk/
    • branches/
    • tags/

Each Contrib porject has it's own identity, which is good because not everyone will want all contrib projects, and the Axiom.Plugins.Contrib can use the svn:external property to refer to the /{AxiomContribProjectRoot}/tags/{tagname} that is considered stable enough to be included in the composite distribution.

aurorus wrote:In my mind, a measure of stability is that a project compiles and runs on both Windows XP/Vista and Linux (what is the binding linux factor? Tao version?) The actual progress of each project in the trunk is then monitored.

You have forgotten Mac.

aurorus wrote:I aim to build and release a library (Axiom.Contrib.dll ?) each month, or thereabouts, so if you are developing a trunk Contrib project, please make sure to get important changes committed before the end of the month! :)

Good idea, and if you are using svn:external with tags, then you can also be sure to not get changes that aren't ready.
aurorus wrote:This plan would be great to impliment by month-end of May, so we have some time to discuss how to stage the Axiom Contrib library.

Thoughts please! :)


See above :)
Borrillis
The Steward of Axiom

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Sat May 16, 2009 4:33 pm

Re: Breaking SVN Changes - Project Locations Changing

aurorus wrote:I aim to build and release a library (Axiom.Contrib.dll ?)
Btw. how would you assemble the Axiom.Contrib.dll from the various packs, using ILMerge or like that? Potentionally NP, just what about native dependencies, xml files and alike?
EDIT Aye! :)

Team Member
Team Member

Posts: 114

Joined: Wed Apr 22, 2009 2:18 am

Post Sat May 16, 2009 4:51 pm

Re: Breaking SVN Changes - Project Locations Changing

andris11 wrote:Btw. how would you assemble the Axiom.Contrib.dll from the various packs, using ILMerge or like that?


I think he just want to compile all libarys as one (assembly, w/o ILMerge) namespace :wink:.

ILMerge wouldn be a good idea in my opinion.

But in generally, i dont think its a good idea to merge all contribs into one libary. Let's declare each contrib as a plugin, this should be common design as we can see in the rest of axiom (ogre).

Maybe we replace the Axiom.Contrib.Dll as an SDK Package, where everything is inside, out-of-the-box.

just my 2DM ;)

//bostich

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Sat May 16, 2009 5:02 pm

Re: Breaking SVN Changes - Project Locations Changing

Bostich wrote:I think he just want to compile all libarys as one (assembly, w/o ILMerge) namespace :wink:.
Aye anyway ;)
Bostich wrote:But in generally, i dont think its a good idea to merge all contribs into one libary. Let's declare each contrib as a plugin,
Ye, how else
Bostich wrote:Maybe we replace the Axiom.Contrib.Dll as an SDK Package, where everything is inside, out-of-the-box.
PNP stands for "practically not possible" in this case, IMHO. EDIT: eh, that's some nonsense from mine, sorry

Me just feel a bit larky today ;)

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Sun May 17, 2009 5:25 am

Re: Breaking SVN Changes - Project Locations Changing

I think I haven't understood yesterday

One base namespace is of course possible, but that would be 'Axiom'. Eventuall 'Axiom.Contrib' only for the work in progress if I got it, but I don't understand this point really anyway! Move Namespace is not a refactoring that would be automated by common. That will be making some trouble.

Borrillis wrote:Under SVN root: /
  • Axiom.Plugins.Contrib/
    • trunk/
    • branches/
    • tags/
  • Axiom.SoundSystems/
    • trunk/
    • branches/
    • tags/
  • Axiom.Caelum/
    • trunk/
    • branches/
    • tags/
  • Axiom.Hydrax/
    • trunk/
    • branches/
    • tags/

Each Contrib porject has it's own identity, which is good because not everyone will want all contrib projects, and the Axiom.Plugins.Contrib can use the svn:external property to refer to the /{AxiomContribProjectRoot}/tags/{tagname} that is considered stable enough to be included in the composite distribution.

Great!

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Mon May 18, 2009 6:40 am

Re: Breaking SVN Changes - Project Locations Changing

Hi again, I thought it might be useful at this point to explain what the branches/tags/trunk SVN folders are most commonly used for, not everybody is used to that concept. Although am not aware of any strict rules that would apply all over the world, I believe there is some common approach though:


Trunk: contains the most current development effort that targets the next release. It's a good habbit to keep trunk code as stable as possible at all times. Trunk shall not contain any subfolders with variations of the same application similar to how branches/tags do.

Branches: contain variations of trunk. Everything from new feature set additions, experimental branches, bug fix branches, or even release branches that are a copy of trunk at the time of a release.

Tags: contain snapshots of code at certain development stages that won't be touched anymore. Most likely snapshots of trunk at the time of a release.


So this is what I think Axiom.Contrib project SVN folders should reflect.

2c

Team Member
Team Member

Posts: 114

Joined: Wed Apr 22, 2009 2:18 am

Post Mon May 18, 2009 9:26 am

Re: Breaking SVN Changes - Project Locations Changing

Hi andris11,

100% agree ;)

//Bostich

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Mon May 18, 2009 9:49 am

Re: Breaking SVN Changes - Project Locations Changing

Borrillis wrote:the Axiom.Plugins.Contrib can use the svn:external property to refer to the /{AxiomContribProjectRoot}/tags/{tagname} that is considered stable enough to be included in the composite distribution.

That's certainly a fine idea. But because it may take a while before there will be any Tags, it might be interesting to setup two distribution folders using svn:external. One marked 'unstable' and reffering to trunks, the second marked 'stable' and referring to tags.

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Mon May 18, 2009 10:19 am

Re: Breaking SVN Changes - Project Locations Changing

Perhaps the actual projects could be moved from root to a {root}/Projects folder and in root keep only:
  Code:
Axiom.Contrib-stable/
Axiom.Contrib-unstable/
Projects/
(whatever the base contrib namespace will be)
User avatar

Team Member
Team Member

Posts: 1587

Joined: Thu Mar 02, 2006 11:29 pm

Location: Boston, MA, USA

Post Mon May 18, 2009 1:24 pm

Re: Breaking SVN Changes - Project Locations Changing

andris11 wrote:Perhaps the actual projects could be moved from root to a {root}/Projects folder and in root keep only:
  Code:
Axiom.Contrib-stable/
Axiom.Contrib-unstable/
Projects/
(whatever the base contrib namespace will be)

Or :

this
Borrillis
The Steward of Axiom

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Mon May 18, 2009 5:28 pm

Re: Breaking SVN Changes - Project Locations Changing

Can I edit the page a bit? (have no permissions) EDIT I mean if you can enable that please, will leave what's there and add to the bottom

Contributor
Contributor

Posts: 852

Joined: Wed Mar 22, 2006 8:06 pm

Post Mon May 18, 2009 6:01 pm

Re: Breaking SVN Changes - Project Locations Changing

Or

  • /
    • Axiom.Plugins.Contrib/
      • trunk/
        • Axiom.SoundSystems *=> /Axiom.SoundSystems/trunk
        • Axiom.Caelum *=> /Axiom.Caelum/trunk
        • Axiom.Hydrax *=> /Axiom.Hydrax/trunk
      • branches/
      • tags/
        • stable/
          • Axiom.SoundSystems *=> /Axiom.SoundSystems/tags/{lastRelease}
          • Axiom.Caelum *=> /Axiom.Caelum/tags/{lastRelease}
          • Axiom.Hydrax *=> /Axiom.Hydrax/tags/{lastRelease}
        • unstable *=> /Axiom.Plugins.Contrib/trunk
    • Axiom.SoundSystems/
      • trunk/
      • branches/
      • tags/
    • Axiom.Caelum/
      • trunk/
      • branches/
      • tags/
    • Axiom.Hydrax/
      • trunk/
      • branches/
      • tags/

==Legend
*=> : svn:external reference
+=> : svn copy of location

Didn't see why the Axiom.Plugins.Contrib package should have any branches? Commiting shall always happen into a branch of the concrete project I guess.

/Axiom.Plugins.Contrib/tags could be also +=> instead *=>
User avatar

Veteran

Posts: 158

Joined: Thu Dec 21, 2006 10:29 pm

Post Mon May 18, 2009 6:05 pm

Re: Breaking SVN Changes - Project Locations Changing

Hi guys!

Some great discussion! :)

You certainly do have a good point in mixing trunk/branches/etc. I've had a look at the page Borrillis linked to above - I like the current edit of it. It seems to be relatively straightforward.

The Axiom Contrib package is, imo, intended to be a complete package with components. If people don't want a certain functionality, then they don't use it - but we still provide it in an easy to use way: one library. The library will have associated files with it, so any XML/data/etc files will be included with the release.

How would we go about making a build available each month that is compatible with Mac/Linux/Win? Are there people here who are available and willing to do such testing? (If we provide a "run this program" and tell us if it worked setup).
Image
ImageImage
Next

Return to Add-Ons Project Talk

Who is online

Users browsing this forum: No registered users and 1 guest

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.