I've been throwing something around in my head since pre-WOWODC and now especially with the changes in store for WO. I think it is going to become the norm for developers to have more than one install of WO and any associated versions of WOnder and other frameworks and the current method of handling multiple versions is okay, but I think we can improve it.
Here's my ideas:
1) Right now you can't change the location where WO will install itself, and it will always overwrite the previous version installed there. Obviously with a new version coming out soon this is going to become much more of an issue for users with more than one project.
What I'd like to do is to embrace and extend the woswitch.sh install concept by having the installer default to asking for the location, and have the suggested location be something along the lines of:
/Developer/WebObjects/Versions/WebObjectsXXXX
This would allow for concepts like:
/Developer/WebObjects/Versions/WebObjects (the default)
/Developer/WebObjects/Versions/WebObjects53
/Developer/WebObjects/Versions/WebObjectsNightly
/Developer/WebObjects/Versions/WebObjectsCustomerName
/Developer/WebObjects/Versions/WebObjectsProjectName
etc.
Obviously this is a change someone at Apple will have to make to a future WO installer - this probably isn't even realistic, but a guy can dream, can't he? Otherwise, users would need to manually move installed frameworks into this directory structure.
2) Users would install any third-party frameworks (Wonder, etc) into these directories also.
3) The default wolips.properties file would then point to the default location above, which if didn't exist could be setup as a symlink to "/" to keep existing installs working.
4) The Eclipse -> Preferences -> WOLips -> Build -> WOLips Properties File value should be defaulted to show "wolips.properties" instead of blank. Also adding validation to verify that the file actually exists would be helpful too.
5) Have the build.properties file contain the wolips.properties=wolips.properties property by default and have it managed by the Eclipse -> Preferences -> WOLips -> Build -> WOLips Properties File value. This will allow users who use WOLips Ant Tools -> Install to deploy their application to automatically use a customized wolips.properties file (keep incremental and Ant as similar as possible)
I think that covers the WOLips setup, and I have some ideas on how we could leverage this same setup to make setting up Hudson even more simple that what Mike made it with his setupWorkspace.sh script.
1) Adjust the recommended default default Hudson setup like so:
/Developer/Hudson/Dependencies/WebObjects/Versions/
/Developer/Hudson/Dependencies/woproject.jar
/Developer/Hudson/Home/
2) If the user were to use SVN to manage their WebObjects/Versions directories, then Hudson could automatically keep them in sync just as it does for their project files and if you changed any of the frameworks it would automatcially trigger a new Hudson build. In this situation the WO versions would be in (for example):
/Developer/Hudson/Home/jobs/JobName/workspace/WebObjects53
We could then either modify Mike's setupWorkspace.sh script, or simply eliminate it in favor of the following Ant settings:
-propertyfile /Developer/Hudson/Dependencies/wolips.woversion.properties -lib /Developer/Hudson/Dependencies/woproject.jar clean build
I'm not sure how all of this would change for people doing WO development on Windows or Linux though...
What is everyone's honest opinion on these ideas? All of this can be accomplished manually, it's how I now have my development and hudson environments setup, but I think with a few tweaks to WOLips and the WO installer it would be so much easier.
I am thinking of doing a screencast on the manual setup, so if you see any major holes, please let me know.
Thanks!
Dave