Table of Contents
JOJ3 FAQ
First usage questions
Q: I pushed my code, then what?
A: Check the Issues tab in your Gitea repository, you should have received a new issue with all the details related to your last commit.  Click on the small "triangles" to see more details.
Note. This issue will be updated on the next push for this task, don't close it. You can also check the Actions tab to check more detailed logs of the run, however these information is unlikely useful to students.
Q: For test cases I can see some unexpected + and - which are not part of my code. Where are they coming from?
A: When running test cases two things can happen: (i) you pass, ie. your output matches the expected sample or (ii) you failed, ie. there are differences between your output and the expected sample. Extra lines are marked with + while missing ones appear with a -.
Q: I failed the health check, how bad is it?
A: This is very bad, it means your work has been rejected even before being checked! The health check ensures you don't mess your repository too much and blocks you in case you did something very bad. So check the details, and follow the provided guidance to fix your issue. If you think the problem is not on your side, then contact your teaching team for further support.
Q: Health check reports non-ASCII charcaters, but I cannot see any, it must be wrong!
A: While JOJ3 and health check could have bugs, we have not seen any false positive so far, i.e. all files reported with non-ASCII characters indeed featured UTF-8 characters. Depending on the file having non-ASCII characters Gitea might highlight them. There are many other ways to detect non-ASCII characters, for instance in (n)vim you can search for the pattern [^\x00-\x7F].  If you're not using (n)vim search online for more examples.
Note. Most common non-ASCII characters are Chinese characters, the Chinese equivalent to - or : can be tricky to spot.
JOJ usage
Q: Gitea shows a "red cross" and I have no idea where it comes from, what should I do?
A: A "red cross" means something "serious" happened, e.g. failed to pass health check or the source code could not compile or your program crashed while only running code is accepted. There could be many reasons... To find out your problem, check the newly updated/opened issue, carefully read the provided information, and fix your problem accordingly. Usually submissions with a red cross are considered as failed and are not graded.
Q: Gitea shows a "red cross" and no new issue was created, what should I do?
A: Most commonly a wrong scope or release tag will lead to a red cross without any issue posted. Check the "Actions" tab and open "Run joj3" section to see the details and get the list of allowed scopes and release atgs.
Q: My program exits with a "weird" error status and a number. What does it mean?
A: A working program should return with status (or code) 0. If something unexpected is happening JOJ or the OS might be sending a signal to your program. To understand what went wrong, run the following command kill -L. It lists all the signal names in a table. Check the name of the signal corresponding to the number you see in your Gitea issue and run a quick online search.
Q: I made mistake when releasing, how to release again?
A: In some courses you might be able to release only once, or once every x hours. Open the JOJ issue related to your release and check the "release rate" in Case 1 of Health check section.
If more than one release is allowed then go to release, click on the small pen on the top right of the release you want to edit and select "Delete release". Then click on "Tags" and deleted the tag corresponding to your release. Finally follow the regular release process to create a new release.
Communication
Q: After pushing my code and reading the issue I have a question, what should I do?
A: Ask your question to the right people. If your question is related to your program or code, then ask to your teaching team, i.e. don't contact JOJ developers. Only directly contact JOJ developers if you are sure the issue is related to JOJ and not to its setup. In particular, always discuss first with your teaching team and only contact JOJ developers if the teaching team is unable to help. In such as case report your issue on Mattermost in JOJ support channel.
Note. Never ask to both your teaching team and JOJ developers at the same time, this will waste not only your time but also the one of the people trying to help you.
Q: I found a bug, what should I do?
A: First make sure this is really a bug, then open an issue in course-support to report it. We will come back to you for more details if necessary. You can also directly contact us on Mattermost in JOJ comments and feedback channel for quick question and only fill in a full bug report once the bug is confirmed.
Q: JOJ3 looks very exciting, how can I contribute?
A: Refer to the contributing section of the Introduction to JOJ3.