Changes for page Getting the Wonder Source Code
Last modified by Bastian Triller on 2013/10/05 10:40
From version 143.1
edited by Kieran Kelleher
on 2010/09/27 17:58
on 2010/09/27 17:58
Change comment:
There is no comment for this version
To version 135.1
edited by David Avendasora
on 2011/04/26 13:22
on 2011/04/26 13:22
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - DownloadWonder Source,Build, Install and Upgrade1 +Getting the Wonder Source Code - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. kieran1 +XWiki.avendasora - Content
-
... ... @@ -1,123 +1,67 @@ 1 - ==Introduction==1 +{{tip title="Now with more Git"}} 2 2 3 - Instead ofdownloading theWonder binaries,workingfromthelatest source codedirectly can have someadvantagessuch as:3 +As of March 25th, 2011 the Wonder source code is now maintained on [GitHub|https://github.com/] at [https://github.com/projectwonder]. You'll need to be familiar with the [Git|http://git-scm.com/] Source Code Management system. [Here's|WO:Getting Started with Git] a good place to start. You will use Git to checkout a local copy of the repository (a "clone" in Git terms) allowing you to have direct access to the Wonder source. 4 4 5 -* Learn very much about WebObjects and EOF (and java dev styles?) 6 -* Easily browse and search the source 7 -* Work with a specific svn version (teams, quality control, development cycles) 8 -* Provide opportunities to submit patches for bug fixes or enhancements 9 -* Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs 10 -* Discover the many Hidden Treasures of Wonder 5 +{{/tip}} 11 11 12 -== SourceFrameworks Initial Installation==7 +== Why? == 13 13 14 - Openaterminal andnavigate toa directory where you wantto maintaina source"workingcopy"andjustuse the following easy-peasycommands to downloadthe Wondersource. Note that as ofrepository version11387 (Sep 27, 2010) the Wonderrepository URL is theonlydifferencebetween the Wondersource procedurefor WebObjects 5.3.3 and WebObjects 5.4.3 installation. Foryourcopy/pasteconvenience,thefull proceduresfor bothWebObjects5.4.X and 5.3.X areshown below.WebObjects5.4.3andtheWonderbranchfor same is recommendedand is wherethe most featuresare expected to be found.9 +Instead of constantly re-downloading and installing the latest Wonder binaries you should work directly with the latest source code. It has several advantages including: 15 15 16 -{{code title="Procedure for WebObjects 5.4.X"}} 11 +* You'll learn a lot about WebObjects, EOF and Object-Oriented Patterns 12 +* Easily search, browse and even modify and improve Wonder 13 +* Work with a specific revision, which is key for teams, quality control and development cycles 14 +* Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs 15 +* Discover the many Hidden Treasures of Wonder. 17 17 18 -# Checkout the source from subversion repository into a new directory named "WonderSource" 19 -# Note instead of HEAD, you can use a specific svn version number if you want 20 -svn co http://wonder.svn.sourceforge.net/svnroot/wonder/branches/Wonder_5_0_0_WebObjects_5_4_Branch/Wonder --revision HEAD WonderSource 17 +== Downloading == 21 21 22 -# Navigate into the working copy root 23 -cd WonderSource 19 +Open a terminal and navigate to a directory where you want to maintain a source "working copy" and just use the following commands to clone Wonder source to your computer. 24 24 25 -# Build the frameworks from the source (BTW, they get built into a directory named Roots in your home dir) 26 -ant frameworks 21 +1. h5. Clone the source repository from GitHub into a new directory named "WonderSource" or whatever you'd like. 27 27 28 - # Install theframeworks (this justcopies thebuilt frameworksfrom ~/Roots to29 - #theruntimeFrameworks directory,usuallyat/Library/Frameworks)30 - sudo ant frameworks.install23 +{{note title="Read Only"}} 24 +Note the URL shown here is the public read-only URL. Committers should use the SSH form of the URL for read-write 25 +{{/note}} 31 31 27 +{{code value="none"}} 28 +git clone git://github.com/projectwonder/wonder.git WonderSource 32 32 {{/code}} 33 33 34 - {{code title="Procedurefor WebObjects5.3.X"}}31 +You should see output something like this: 35 35 36 -# Checkout the source from subversion repository into a new directory named "WonderSource" 37 -# Note instead of HEAD, you can use a specific svn version number if you want 38 -svn co http://wonder.svn.sourceforge.net/svnroot/wonder/trunk/Wonder --revision HEAD WonderSource 33 +{{noformat}} 39 39 40 -# Navigate into the working copy root 41 -cd WonderSource 35 +Cloning into WonderSource... 36 +remote: Counting objects: 174269, done. 37 +remote: Compressing objects: 100% (57304/57304), done. 38 +remote: Total 174269 (delta 107374), reused 173934 (delta 107067) 39 +Receiving objects: 100% (174269/174269), 137.94 MiB | 8.29 MiB/s, done. 40 +Resolving deltas: 100% (107374/107374), done. 42 42 43 -# Build the frameworks from the source (BTW, they get built into a directory named Roots in your home dir) 44 -ant frameworks 42 +{{/noformat}} 45 45 46 -# Install the frameworks (this just copies the built frameworks from ~/Roots to 47 -# the runtime Frameworks directory, usually at /Library/Frameworks) 48 -sudo ant frameworks.install 44 +1. h5. Navigate into the working copy root 49 49 46 +{{code value="none"}} 47 +cd WonderSource 50 50 {{/code}} 51 51 52 -== Source Frameworks Upgrade Installation == 50 +{{note title="WebObjects 5.3.3 Compatability"}} 51 +If you are still using old WebObjects 5.3.3, then you need to execute this git command to switch to the branch for WebObjects 5.3.3: {code}git checkout --track origin/Wonder_5_0_0_Legacy{code} 52 +You should get output like this: 53 +{noformat} 54 +Branch Wonder_5_0_0_Legacy set up to track remote branch Wonder_5_0_0_Legacy from origin. 55 +Switched to a new branch 'Wonder_5_0_0_Legacy' 56 +{noformat} 53 53 54 - Assuming you already installed Wonder from source using the method outlined above, you can use the following procedure to upgrade to a newer, or just different version. Note that the procedure for both WebObjects 5.4.X and 5.3.X are outlined below. They are the same except for the last 3 ant commands.58 +{{/note}} 55 55 56 -{{code title="Procedure for WebObjects 5.4.X"}} 60 +1. h5. Build and Install 61 +For building and installing the Wonder Frameworks, please see the standard [[Building and Installing WO Frameworks with Ant>>WO:Building and Installing a WO Framework with Ant]] pages. 57 57 58 -# Navigate to the Roots directory that was automatically created by the initial Source installation procedure above 59 -cd ~/Roots/ 60 - 61 -# Delete all installed frameworks whose names match the built frameworks in this Roots build folder 62 -for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done 63 - 64 -# Navigate to the original Wonder source directory that you created above during initial source installation 65 -cd /path/to/WonderSource 66 - 67 -# Update the source to the HEAD revision (aka latest). You can also use a specific svn 68 -# repository version instead of the term 'HEAD', for example 11272 69 -svn update --force --accept theirs-full --revision HEAD 70 - 71 -# Clean, build and install the frameworks 72 -ant clean; ant frameworks; sudo ant frameworks.install 73 - 74 -{{/code}} 75 - 76 -{{code title="Procedure for WebObjects 5.3.X"}} 77 - 78 -# Navigate to the Roots directory that was automatically created by the initial Source installation procedure above 79 -cd ~/Roots/ 80 - 81 -# Delete all installed frameworks whose names match the built frameworks in this Roots build folder 82 -for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done 83 - 84 -# Navigate to the original Wonder source directory that you created above during initial source installation 85 -cd /path/to/WonderSource 86 - 87 -# Update the source to the HEAD revision (aka latest). You can also use a specific svn 88 -# repository version instead of the term 'HEAD', for example 11272 89 -svn update --force --accept theirs-full --revision HEAD 90 - 91 -# Clean, build and install the frameworks 92 -ant clean; ant frameworks; sudo ant frameworks.install 93 - 94 - 95 -{{/code}} 96 - 97 97 {{info}} 98 98 99 -If you have any trouble or errors due to your working copy gettinghosed,thensimply delete the entireworkingcopydirectory,the \~/Roots directory andjuststart over using theinitialsourceinstallation procedureoutlined above.65 +If you have any trouble or errors due to your local repository getting corrupted, simply delete the entire local repository (the {{\~/Roots}} directory) and start over using this source clone procedure. 100 100 101 101 {{/info}} 102 - 103 -{{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} 104 - 105 -If you have a custom wolips properties file for a specific workspace and you want to have a specific Wonder source working copy for that workspace, you can simply link your custom wolips properties file to a soft link named build.properties in the working copy root directory. The Wonder build script will supersede all other filesystem layout poperties with the properties in that file. 106 - 107 -For example: 108 - 109 -{code} 110 -$ cd my/special/purpose/working/copy/of/Wonder 111 -$ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties 112 -{code} 113 - 114 -An example of where this approach might be used would be when you have different projects (perhaps in a specially designated workspace) that use a specific version of WebObjects and a specific version or branch of Wonder. 115 - 116 -*Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example 117 -{code} 118 -wo.external.root=/Users/mike/Developer/special/directory/Roots 119 -{code} 120 - 121 -*Tip:* A custom WebServer install directory can be specified to Wonder by adding the property 'wo.server.root' to the custom wilips properties file also. 122 - 123 -{{/info}}