Changes for page Getting the Wonder Source Code
Last modified by Bastian Triller on 2013/10/05 10:40
From version 130.1
edited by David Avendasora
on 2011/04/26 13:21
on 2011/04/26 13:21
Change comment:
There is no comment for this version
To version 123.1
edited by David Avendasora
on 2011/04/25 12:43
on 2011/04/25 12:43
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - Getting theWonder Source Code1 +Downloading, Building, Installing and Upgrading Wonder Source Code - Content
-
... ... @@ -1,65 +1,121 @@ 1 - {{tiptitle="Now with moreGit"}}1 +== Introduction == 2 2 3 - Asof March 25th, 2011 theWondersourcecode is nowmaintainedon [GitHub|https://github.com/]at[https://github.com/projectwonder].You'll need tobe familiarwith the[Git|http://git-scm.com/]Source Code Management system. [Here's|WO:GettingStartedwithGit] a good placetostart.You will use Git tocheckouta local copy of the repository(a "clone" in Git terms)allowingyou tohavedirect access totheWondersource.3 +Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as: 4 4 5 -{{/tip}} 6 - 7 -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: 8 - 9 -* You'll learn a lot about WebObjects, EOF and Object-Oriented Patterns 10 -* Easily search, browse and even modify and improve Wonder 11 -* Work with a specific revision, which is key for teams, quality control and development cycles 5 +* Learn a lot about WebObjects and EOF (and Java development styles) 6 +* Easily browse and search the source 7 +* Work with a specific source control version (teams, quality control, development cycles) 8 +* Provide opportunities to submit patches for bug fixes or enhancements 12 12 * Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs 13 13 * Discover the many Hidden Treasures of Wonder. 14 14 15 15 == Downloading == 16 16 17 -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. 14 +{{tip title="Now with more Git"}} 15 +As of March 25th, 2011 the Wonder source code is now maintained on [GitHub|https://github.com/] at [https://github.com/projectwonder]. So you'll need to be familiar with the [Git|http://git-scm.com/] Source Code Management system. You will use it to checkout a local copy of the repository (a "clone" in Git terms) allowing you to have direct access to the Wonder source. 16 +{{/tip}} 18 18 19 - 1.h5.ClonethesourcerepositoryfromGitHubintoanew directorynamed"WonderSource"orwhateveryou'dlike.18 +Open a terminal and navigate to a directory where you want to maintain a source "working copy" and just use the following easy-peasy commands to clone Wonder source to your computer. 20 20 20 +1. Clone the source repository from github into a new directory named "WonderSource". 21 + 21 21 {{note title="Read Only"}} 22 22 Note the URL shown here is the public read-only URL. Committers should use the SSH form of the URL for read-write 23 23 {{/note}} 24 24 25 -{{code value="none"}}26 +{{code}} 26 26 git clone git://github.com/projectwonder/wonder.git WonderSource 27 27 {{/code}} 28 28 29 - Youshould seeoutput somethinglikethis:30 +1. Navigate into the working copy root 30 30 31 -{{noformat}} 32 +{{code}} 33 +cd WonderSource 34 +{{/code}} 32 32 33 -Cloning into WonderSource... 34 -remote: Counting objects: 174269, done. 35 -remote: Compressing objects: 100% (57304/57304), done. 36 -remote: Total 174269 (delta 107374), reused 173934 (delta 107067) 37 -Receiving objects: 100% (174269/174269), 137.94 MiB | 8.29 MiB/s, done. 38 -Resolving deltas: 100% (107374/107374), done. 36 +{{note title="WebObjects 5.3.3 Compatability"}} 37 +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} 39 39 40 -{{/no format}}39 +{{/note}} 41 41 42 - 1.h5. Navigateinto the workingcopy root41 +== Building == 43 43 44 -{{code value="none"}} 45 -cd WonderSource 43 +Assuming you now have a "cloned" copy of the Wonder source code, you can build the frameworks to the default (##/Roots##) with the following command: 44 + 45 +1. Build the frameworks from the "cloned" source. 46 + 47 +{{code}} 48 +ant frameworks 46 46 {{/code}} 47 47 48 -{{note title="WebObjects 5.3.3 Compatability"}} 49 -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} 50 -You should get output like this: 51 -{noformat} 52 -Branch Wonder_5_0_0_Legacy set up to track remote branch Wonder_5_0_0_Legacy from origin. 53 -Switched to a new branch 'Wonder_5_0_0_Legacy' 54 -{noformat} 51 +1. Install the frameworks (this just copies the built frameworks from /Roots to the runtime Frameworks directory, usually at /Library/Frameworks) 55 55 56 -{{/note}} 53 +{{code}} 54 +sudo ant frameworks.install 55 +{{/code}} 57 57 58 -1. h5. Build and Install 59 -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 +== Installing and Upgrading == 60 60 59 +Assuming you already cloned and installed Wonder from source using the method outlined above, you can use the following procedure pull the latest changes into your local repository. 60 + 61 +1. Navigate to the Roots directory that was automatically created by the initial Source installation procedure above 62 + 63 +{{code}} 64 +cd ~/Roots/ 65 +{{/code}} 66 + 67 +1. Delete all installed frameworks whose names match the built frameworks in this Roots build folder 68 + 69 +{{code}} 70 +for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done 71 +{{/code}} 72 + 73 +1. Navigate to the original Wonder source directory that you created above during initial source installation 74 + 75 +{{code}} 76 +cd /path/to/WonderSource 77 +{{/code}} 78 + 79 +1. Pull the changes you do not have and merge them with your local repository 80 + 81 +{{code}} 82 +git pull 83 +{{/code}} 84 + 85 +1. Clean, build and install the frameworks 86 + 87 +{{code}} 88 + 89 +ant clean 90 +ant frameworks 91 +sudo ant frameworks.install 92 + 93 +{{/code}} 94 + 61 61 {{info}} 62 62 63 -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 thissource clone procedure.97 +If you have any trouble or errors due to your local repository getting hosed, then simply delete the entire local repository directory, the \~/Roots directory and just start over using the initial source clone and installation procedure outlined above. 64 64 65 65 {{/info}} 100 + 101 +{{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} 102 + 103 +If you have a custom wolips properties file for a specific workspace and you want to have a specific Wonder clone 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. 104 + 105 +For example: 106 + 107 +{code} 108 +$ cd my/special/purpose/clone/of/Wonder 109 +$ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties 110 +{code} 111 + 112 +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. 113 + 114 +*Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example 115 +{code} 116 +wo.external.root=/Users/mike/Developer/special/directory/Roots 117 +{code} 118 + 119 +*Tip:* A custom WebServer install directory can be specified to Wonder by adding the property 'wo.server.root' to the custom wolips properties file also. 120 + 121 +{{/info}}