Welcome to HTWG SYSLAB SYSO
This site contains guides and assignments for the SystemSoftware laboratory course.
Overview
Preparation and General Procedure
Please have a close look at our generic HTWG SYSLAB page. Over there, we have set out to maintain an up2date summary and collection of HOWTOs for working with the HTWG SYSLAB environment.
Please study them thoroughly, since it'll be advantageous for all of us if you inform yourself properly before you attempt to start working on the homework assignments :-)
Group Organization
- If you haven't done so, please this survey to join a group.
- Follow the GitHub Classroom invitation link
- If you are the first one in your group, create it according to this scheme: syso-ws18-grpN (N is your group number)
- If your group has already created by your teammate, just join it.
Get Help
If you do run into unexpected problems, the HTWG SYSLAB page also lists how to report problems and get help.
Please file common homework related issues on the courses homework repository.
Useful Links
Continuous Integration Scripts
With the CI scripts you can verify your solution before creating a pull request. A subset of the scripts will also be used to automatically verify your Pull-Request. This gives you feedback if your Pull-Request is eligible for manual review at all.
As long as the status checks aren't passed, you must work on your solution. Please, only request a manual review by your course lead and tutors when the status checks pass. This avoids waiting asynchronous and delayed human interaction by giving you immediate feedback.
Merge CI Files
In order to make the checks run successfully you have to ensure your repository has the latest CI files, or any at all :-)
Add The Template Git Remote
If you haven't done so, plese add a new remote to your local clone for the template repository at https://github.com/htwg-syslab-syso/syso-template.
git remote add template git@github.com:htwg-syslab-syso/syso-template.git
Fetch The Latest Commits
Fetch all commits in the template repository with the following command:
git fetch template
Merge Into Your Branch(es)
Now you can merge the latest changes into your branches. Checkout the branch you want to merge the CI files and run
git merge template/master
This procedure is necessary for every branch that you have created a Pull-Request for.
Run Full CI Test-Suite
The full CI test-suite lets you run the full-tests that will be used by your course lead and tutors to verify your solution.
ci/run-all.sh
[warning] The
ci/run-all.sh
script will call allhwX.sh
functions includingclean
!
# inside your repository (syso-$SEM-grp$NR)
$ ci/run-all.sh
[ ... ]
++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Ready for pull request +
++++++++++++++++++++++++++++++++++++++++++++++++++++
If something goes wrong during the tests the problem will be noted with an exclamation mark (!
) :
# missing file(s):
[...]
hw2: (hw2.txt)
! 'QnA.md' is missing
[...]
# build error:
[...]
! '[...]/syso-$SEM-grp$NR/hwX/hwX.sh' failed.
ci/run-shellcheck.sh
[info] The
ci/run-shellcheck.sh
script is optional, you don't need to fix shellcheck tips / warnings / errors.
You can run ci/run-shellcheck.sh
to check your shell scripts for common problems and get tips to improve your coding style:
# inside your repository (syso-$SEM-grp$NR)
$ ci/run-shellcheck.sh
hw1/hw1.sh
[...]
In hw1/hw1.sh line 14:
if [ ! -d $src_dir ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
In hw1/hw1.sh line 15:
mkdir -p $src_dir
^-- SC2086: Double quote to prevent globbing and word splitting.
[...]
You can look up the errors on the shellcheck wiki.