Common issues¶
In the following, we will bundle some common issues and how to resolve them.
Using ChatGPT, CoPilot and other AI tools¶
Through evaluating your Lab 1 assignments and seeing the code being committed, it is evident that many are using AI tools to help out. It is perfectly fine that you use whatever tooling available to you, but please be mindful and deliberate in your usage.
GPT systems will always answer with great confidence, they generate a well-structured sentence and when you aren't familiar with the material you are asking it about, you will be inclined to believe it. However, these systems are far from perfect and often times totally wrong. It is up to you to verify the correctness of the answer. It is fine to use the answer as a starting point but from there you should perform your own proper research.
When you need an answer for a simple question like: "How do I rename a git branch?", please use a standard search engine or consult official documentation rather than going to ChatGPT. You will find the answer much faster and it will be correct.
The same goes for code generation, it's fine to get you started, but you absolutely need to verify every line of code. If you are lucky the code will do what you expect of it, but it can often be verbose, inefficient or even plain wrong.
AI is not a replacement for critical thinking, a core competence of any developer, engineer or academic professional. It is a tool which can make us more efficient, but you should always be in control of the tool and not the other way around.
Maven wrapper script not executable¶
Many groups have run into issues with the ./mvnw
script not being executable, resulting in Permission denied errors.
To reliably add a file as executable on both windows and linux, you can use the following command:
git add --chmod=+x ./mvnw
This will add the file as executable in the git repository, and when you clone the repository on another machine, the file will still be executable.
This way you won't have to start every job script with chmod +x ./mvnw
.
Docker Hub rate limiting¶
Docker Hub has introduced rate limiting for anonymous users. This means that if you are not logged in, you can only pull a limited amount of images per 6 hours. This causes problems when building the logic service image using jib, as the base image eclipse-temurin
is pulled directly from Docker Hub.
To avoid this issue you can use the eclipse-temurin
image hosted on our public GitLab registry instead. To do this, change the base image in application.properties
to:
quarkus.jib.base-jvm-image=gitlab.stud.atlantis.ugent.be:5050/utils/docker/eclipse-temurin:20
Scoped labels¶
In the assignment we mention some labels like logic:miner
, because this style of labeling is used in many Open Source projects. However, GitLab has support for Scoped Labels which have a clear visualization and can be used instead. The divider here is a double colon ::
so the label would be logic::miner
.
Scoped labels are mutually exclusive: an issue, merge request, or epic cannot have two scoped labels, of the form key::value
, with the same key
. If you add a new label with the same key but a different value, the previous key label is replaced with the new label.
See the GitLab docs for more info on Labels: https://docs.gitlab.com/ee/user/project/labels.html