-
Notifications
You must be signed in to change notification settings - Fork 44
Software Engineering Principles in Robotics
I generally recommended using proper git workflow, in particular once you get to develop larger projects. We will learn about forking, pulling, merging, and testing
You may find the official GitHub Desktop Client useful for you daily work, but also learn the command line tools!. To install the unofficial build for Linux, execute this script, then launch it with the (very inaptly named) command desktop
.
Make sure you look at the useful resources for today's session.
If you don't have a github account and you don't want one, you can work locally with a git repository! Some parts of the tasks, however require interaction with the a server.
Look at https://guides.github.com/introduction/git-handbook/ and Find the Section "Example: Start a new repository and publish it to GitHub" (you may skip this if you had already done this)
- Do those steps to put your source code into a remote GitHub (public) repository that you created.
- Team up with somebody else, can
git clone
their respective repository. - Each of you edit some files in your local own repository and discuss how the other one can get them.
- Fork https://github.com/LCAS/CMP9767M into your own github account (if you haven't done so yet), then clone on your computer
- create a new branch from the
master
branch, named e.g.week_11
and make sure you are working in that branch (how can you check?) - create and commit a file
mytest.txt
in branchweek_11
with content:this is some text I include in this file
- check out branch
master
again (where did your file go?) - check out a new branch
week_11_sidetrack
based onmaster
- create and commit again a file
mytest.txt
in branchweek_11_sidetrack
with content:this is some MORE text I include in this file
- check out
week_11
again - merge
week_11_sidetrack
intoweek_11
(you'll have a conflict to resolve)
... and at the end of today, make sure you have it on github! Or wherever you host your code.
- Clone your fork of the CMP9767M repository locally
- Pull in the changes from upstream, i.e., pull from https://github.com/LCAS/CMP9767M.git (research how to do it, e.g. read this )
- Run the
simple-test.py
and understand what it does - Run the
testme.test
ROS test
- Look at https://github.com/steup/Ros-Test-Example/tree/master/src/python_test and understand it
- Look at https://github.com/LCAS/CMP9767M/tree/master/uol_cmp9767m_base/tests and understand it
- Based on [
testme.test
] extend it with a test that checks thesprayer
works (i.e. the service call succeeds)