Skip to content

JoopAue/BW4T

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Blocks World for Teams - v3.5.0 Blocks World for Teams (BW4T) is a testbed for team coordination. BW4T allows for games with human-human, agent-agent and human-agent teams of variable sizes. The goal is to jointly deliver a sequence of colored blocks in a particular order as fast as possible. A complicating factor is that the players cannot see each other.

[Self-explaining Agents - A Study in the BW4T Testbed for Team Coordination]

Maven

First time running Maven

Change your current directory to ${repository_root}/bw4t

cd ./bw4t/

First compile and install the bw4t-core to your local maven repository.

mvn -pl bw4t-core install

Then test or install the rest of bw4t as follows:

mvn test

Updating the version in the pom file (making a new release)

Change your current working directory to ${repository_root}/bw4t

cd ./bw4t/

Make sure you have the latest version of the master branch

git checkout master git pull

Make a new branch to update the version of the branch

git checkout -b master_release git push --set-upstream origin master_release

Use maven to update the pom files, replace ${version-number} with the new version number

mvn versions:set "-DnewVersion=${version-number}"

Ensure that the system will still build with the changed pom files

mvn clean install

If no errors occur we can remove the backups of the old pom files

mvn versions:commit

Upload your changes to github and create a pull request

git commit -a -m "Releasing version ${version-number}!" git push

The local branch can now be deleted

git checkout master git branch -D master_release

GitHub

The BW4T Git Repository can be found at GitHub.

Git Rules

  1. Never push anything to the master branch.

If you want to work on something as a group: create a new branch, commit and add your changes and create a pull request. Only the git master is allowed to merge the changes to the master branch. All other unauthorized commits on the master branch will be reverted.

  1. Never branch off of the legacy branch.

Branch off of the branch created by your group or the master branch instead. The legacy branch

  1. If you're done with your branch, delete the branch.

You can delete your local branch with git branch -D BranchName, where BranchName is the name of your branch. You can delete the remote branch by pushing the branch and putting a colon in front of the branch as such: git push origin :BranchName, where BranchName is the name of your branch.

  1. Never perform a force-push.

Never try to rewrite history in Git. This should be avoided at all costs. If you want to revert a specific commit, use the git revert.

  1. If your branch is a second level branch, prepend the first level branch name.

So for example: in Group 1 we created a branch called development to do the refactoring. If I want to add some tests to the client and make a branch called client_testing, then the actual name has to be called: development_client_testing.

Git FAQ

  • Help! I accidentally changed a file, which I didn't intend to change. How do I get a copy of the file, as it was before?

Run git checkout -- /path/to/file/ on the file you want to revert the changes. Tip: accidentally changed all the classpath files and are you lazy enough to not checkout every single .classpath file? Make use of the wildcard like this: git checkout -- *.classpath

  • How do I see what file(s) I changed?

Run git status.

  • Think something should be added to this FAQ?

Edit this ReadMe in ${repository_root}/README.md A handy tool to do markdown editing is StackEdit.io

For more information on Git have a look on StackOverflow or learn some great workflows via the tutorials at Atlassian.

Jenkins

Integration Testing is done by Jenkins on our Integration Server. Whenever pushes to certain branches are made, the changes are pulled by the Integration Server. The Integration Server then runs all the tests via Maven and publishes the test results.

Jenkins Rules

  • It is never okay to have a build fail, without fixing it before you continue.

To prevent this, make sure you run Maven before you push to a branch (mvn clean install or in Eclipse: Run As -> Maven Build...(goals: clean install)). In the case that you do have a failing build, make it your first priority, to fix the build, before you continue any other work.(reverting if necessary)

Jenkins FAQ

  • What is the difference between Maven and Jenkins regarding testing?

Jenkins runs maven whenever it gets a build request. It interprets the testing, checkstyle, coverage and findbugs results and keeps a history of the output generated by maven.

  • Think something should be added to this FAQ?

Edit this ReadMe in ${repository_root}/README.md A handy tool to do markdown editing is StackEdit.io

Jenkins Plugins

The following plugins are required for the Jenkins installation:

  • Cobertura Plugin
  • GIT client plugin
  • GIT plugin
  • GitHub API Plugin
  • GitHub plugin
  • Xvnc plugin

Sonar

The Code Analysis and Statistics of BW4T is done by Sonar.

Sonar FAQ

  • I don't have any frequently asked questions right now. Do you have a question or think something should be added to this FAQ?

Edit this ReadMe in ${repository_root}/README.md A handy tool to do markdown editing is StackEdit.io

Sonar Plugins

The following plugins are required for the sonar installation:

  • Artifact Size
  • Checkstyle
  • Cobertura
  • Java

About

BlocksWorld for Teams (BW4T)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 77.7%
  • TeX 22.3%