Skip to content

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.

Setup of the environment

  1. Install git, repo, ssh, maven.
  2. Unless you have done so before, create your github.com account and set up the ssh key.
  3. Unless you have done so before, create your gerrithub.io account with your github.com credentials.
  4. Configure ssh to use your github user name when contacting gerrithub
Host review.gerrithub.io
    User YOUR-GITHUB-USER-NAME
  1. Create a new directory for your work and cd to it.
  2. repo init -u git@github.com:argouml-tigris-org/manifest.git # Set up repo
  3. repo sync # Download all argouml projects from github.

Normal development cycle

  1. repo sync # to get all recent changes for all projects.
  2. 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 name repo start YOUR_LOCAL_TOPIC_BRANCH_NAME argouml-idl argouml-i18n-de instead of --all.
  3. cd argouml # Work in the projects in turn.
  4. Do the changes in the code.
  5. Build mvn compile, test mvn test.
  6. 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 )).
  7. 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.
  8. 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.
  9. 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.
  10. Monitor any comments on the change at https://review.gerrithub.io. To address these, make more changes, git commit --amend and repo upload an update of the change preserving the Change-Id.
  11. Eventually the change is Verified, Code-Reviewed, and Submitted. If a change is not Verified, commented or Code-Reviewed and Submitted, mail Linus.
  12. 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).

Review work

  1. Go to https://review.gerrithub.io
  2. Find all argouml-tigris-org projects.
  3. Comment on all suggested changes and give them their score.

Using gerrithub to review changes in the list of projects

Initialize with repo init -u ssh://review.gerrithub.io:29418/argouml-tigris-org/manifest.git instead.