Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.8
    • Fix Version/s: 0.9
    • Component/s: Build
    • Labels:
      None

      Description

      From mailing list:

      Hi,
      
      Context:
      
      I'm preparing the Cargo 0.9 and Maven plugin 0.3 releases and I'd like to do them using the Maven2 release plugin. However before we're able to use it we need to clean up our structure. Indeed we need to have a separate directory tree per release cycle. As of today we have 2 release cycles: one for Cargo core (v0.9) and one for the Cargo Maven2 plugin (v0.3). We're doing something messy in mixing the branches/tags for both in the same location. I think we need to bite the bullet and make it right.
      
      Here's the new structure I'm proposing:
      
      cargo/
      pom/ (version starts at 1)
      |_ trunk
      |_ branches
      |_ tags
      core/ (version continues as 0.9, 1.0, etc)
      |_ trunk
      |_ api/
      |_ containers/
      |_ uberjar/
      |_ documentation/
      |_ samples/
      |_ testdata/
      |_ java/
      |_ branches
      |_ tags
      extensions/
      |_ trunk
      |_ ant (includes functional tests) (version continues as 0.9, 1.0, etc)
      |_ maven (includes functional tests) (version continues as 0.9, 1.0, etc)
      |_ maven2 (includes functional tests) (version continues as 0.3, 1.0, etc)
      |_ plugin/
      |_ archetypes/
      |_ branches
      |_ tags
      sandbox/
      |_ intellijidea/
      |_ netbeans/
      pom.xml (top level pom just to build all the modules, depends on pom/trunk/pom.xml)
      
      Release process (in that order):
      
      * Release pom/ from time to time (whenever a release is required for core/ or extensions/)
      * Release core/ in one go (mvn release:prepare from core/trunk/ dir)
      * Release extensions/* separately for each extension (mvn release:prepare from each subdir: ant/, maven/, maven2/)
      
      In addition I'll create a svn:external called trunks to get the full directory structure above in one checkout.
      
      Note 1: In extensions/tags we will have the tags for the different modules. For example: ant-0.9, maven2-0.3, etc. We could have a different trunk/tags/branches for each extension but it sounds too cumbersome and not needed.
      
      Note 2: In the future I think we could have a top level containers/ directory too but I don't think we're ripe for this now so I'd rather do it in 2 steps and start easy.
      

        Gliffy Diagrams

          Attachments

            Activity

            There are no comments yet on this issue.

              People

              • Assignee:
                vincentmassol Vincent Massol
                Reporter:
                vincentmassol Vincent Massol
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: