-
Notifications
You must be signed in to change notification settings - Fork 95
Working in the project
Linus Tolke edited this page Jun 17, 2023
·
10 revisions
Here is a brief description on how to use the CM tools to make improvements to ArgoUML. This has only been tested on a Linux host even though the description is fairly general. If you manage to do this on Windows or Mac, please add some pointers on how to improve the description.
On top of Github, we use Gerrithub for the development of ArgoUML. The gerrit way of working makes every change into a single commit forcing a linear history in git without any merge commits.
- Install git, repo, ssh, maven.
- Unless you have done so before, create your github.com account and set up the ssh key.
- Unless you have done so before, create your gerrithub.io account with your github.com credentials.
- Configure ssh to use your github user name when contacting gerrithub
Host review.gerrithub.io
User YOUR-GITHUB-USER-NAME
- Create a new directory for your work and cd to it.
-
repo init -u git@github.com:argouml-tigris-org/manifest.git
# Set up repo -
repo sync
# Download all argouml projects from github.
-
repo sync
# to get all recent changes for all projects. -
repo start YOUR_LOCAL_TOPIC_BRANCH_NAME --all
# Create a branch to work on. If you know that your change only affects a limited set of projects, you specify them after the branch namerepo start YOUR_LOCAL_TOPIC_BRANCH_NAME argouml-idl argouml-i18n-de
instead of--all
. -
cd argouml
# Work in the projects in turn. - Do the changes in the code.
- Build
mvn compile
, testmvn test
. - Run (if you
cd ..
to the top)( cd argouml/src/argouml-build && mvn java:exec )
or( cd argouml-idl && mvn java:exec )
perhaps preceeded with( cd argouml && mvn install )
). - Commit the change (
git commit -a
) in each of the repositories modified. Change-Id is added automatically to the commit from a hook set up by repo. -
repo upload
# Upload your work for review. Each commit will be in its own change so make a single commit in each repo for each change. - Within an hour the automatic verifier should have compiled and run all tests and mark the change as Verified. You will get mails with the progress. If not, mail Linus that is monitoring this.
- Monitor any comments on the change at https://review.gerrithub.io. To address these, make more changes,
git commit --amend
andrepo upload
an update of the change preserving the Change-Id. - Eventually the change is Verified, Code-Reviewed, and Submitted. If a change is not Verified, commented or Code-Reviewed and Submitted, mail Linus.
- For details on how to rebase, move around between branches to work on other changes while waiting, or abandon a change, see the repo documentation (
repo help
).
- Go to https://review.gerrithub.io
- Find all argouml-tigris-org projects.
- Comment on all suggested changes and give them their score.
Initialize with repo init -u ssh://review.gerrithub.io:29418/argouml-tigris-org/manifest.git
instead.