Building Tapestry from SourcePage edited by Bob Harner
Comment:
Added changes suggested by Barry Books and Howard
Changes (9)
Full ContentThis is a brief guide to building Tapestry itself from source code. Prerequisites
git clone https://git-wip-us.apache.org/repos/asf/tapestry-5.git
BuildingYou can build individual modules, or (from the root folder) build everything. Tapestry 5 is built using Gradle. The following assumes you are using Gradle from the command line. "gradlew" is the gradle wrapper shell script (gradlew) or batch file (gradlew.bat) found in the root folder of the Tapestry source. Alternatively, with the right Gradle plugin you can do the builds from within your IDE. ./gradlew build Running TestsThe Tapestry integration tests will repeatedly start up a Firefox browser.
Skipping TestsRunning the Tapestry integration tests can take 10 minutes or more, so you won't want to run them every time you try a change. ./gradlew build -x test You can skip test on a specific module by adding a colon and the module name. For example: -x test:tapestry-ioc Running the Integration Test AppsThe Tapestry source includes several web apps that are used by the automated Selenium integration tests. You can also run these apps manually to try out nearly every browser-visible aspect of Tapestry. (See a live example running on Google App Engine.)
Making Code ChangesOnce you have cloned or pulled the latest changes to your local Git repository, you can start working on it. Whenever you make some changes to the codebase, it's good to have a related issue filed in JIRA and to use a similarly named branch in your local Git repository. For example, to create a branch for an issue with the key TAP5-123: git branch TAP5-123 origin/master With per-issue branches you can easily switch back and forth between different issues without worrying about unwanted side-effects from unfinished changes to other issues. Whenever you want to work on the TAP5-123 example issue, simply checkout that branch and start making your changes: git checkout TAP5-123 It's a good idea to commit your changes to your local Git repo whenever you have finished one logical part of the issue. For example when refactoring, make a new commit for each refactoring step you take. git commit Pushing your commits upstreamFirst:
Then: git push Producing PatchesIf you aren't an official committer (with write access to the Apache Tapestry Git repo), you'll need to submit changes via a patch. You can use the git format-patch command to produce a nice set of patches to attach to the relevant issue in JIRA: git format-patch origin/master The sooner you share your work the better. You can repeat the steps of this workflow as often as you like, producing more patches to be attached to the issue tracker. Once some of your patches are accepted and applied by a committer, you can rebase your work against the latest trunk. Alternatively, if you're asked to make some changes, you can go back to the original Git commit and modify it until the project team accepts your changes. Troubleshooting HintsProblem: I can't run the build. it gives me an error in line 91:
20:22:11.438 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
20:22:11.439 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred evaluating root project 'tapestry-project-trunk'.
20:22:11.440 [ERROR] [org.gradle.BuildExceptionReporter] Cause: Cannot get property 'plus' on null object
Solution: Use the gradle wrapper (./gradlew build), not plain "gradle".
Change Notification Preferences
View Online
|
View Changes
|
- [CONF] Apache Tapestry > Building Tapestry from... confluence
- [CONF] Apache Tapestry > Building Tapestry... confluence
- [CONF] Apache Tapestry > Building Tapestry... confluence
- [CONF] Apache Tapestry > Building Tapestry... confluence
- [CONF] Apache Tapestry > Building Tapestry... confluence
- [CONF] Apache Tapestry > Building Tapestry... confluence
- [CONF] Apache Tapestry > Building Tapestry... Bob Harner (Confluence)
- [CONF] Apache Tapestry > Building Tapestry... Bob Harner (Confluence)