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
Change comment: There is no comment for this version
To version 123.1
edited by David Avendasora
on 2011/04/25 12:43
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Getting the Wonder Source Code
1 +Downloading, Building, Installing and Upgrading Wonder Source Code
Content
... ... @@ -1,65 +1,121 @@
1 -{{tip title="Now with more Git"}}
1 +== Introduction ==
2 2  
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.
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. Clone the source repository from GitHub into a new directory named "WonderSource" or whatever you'd like.
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 -You should see output something like this:
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 -{{/noformat}}
39 +{{/note}}
41 41  
42 -1. h5. Navigate into the working copy root
41 +== 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 this source 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}}