Skip to content

[Feature:RainbowGrades] Nlohmann version pinning - #94

Merged
bmcutler merged 2 commits into
mainfrom
nlohmann-version-pinning
Jul 27, 2026
Merged

bmcutler merged 2 commits into
mainfrom
nlohmann-version-pinning

Conversation

@dagemcn

@dagemcn dagemcn commented Jul 24, 2026 •

Copy link
Copy Markdown
Member

Why is this Change Important & Necessary?

This PR implements version pinning for the nlohmann-json dependency which previously was pinned at 3.1.2, which would cause errors if someone did not already have the dependency.

What is the New Behavior?

A few file called versions.mk has been created which contains the version of nlohmann that is currently pinned.

What steps should a reviewer take to reproduce or test the bug or new feature?

  1. Delete the vendor folder in GIT_CHECKOUT
  2. Run make pull and make
    You should see the following output:
image
  1. Test with the vendor folder present but with an incorrect version installed, the new version should be installed
  2. Test in conjunction with submitty_install, the vendor folder should not interfere with the folder created by the submitty repo

Automated Testing & Documentation

N/A

Other information

This is not a breaking change
This are no migrations included
Not a security concern

@github-project-automation github-project-automation Bot moved this to Seeking Reviewer in Submitty Development Jul 24, 2026
bmcutler pushed a commit to Submitty/Submitty that referenced this pull request Jul 27, 2026
### Why is this Change Important & Necessary?
This PR implements version pinning for the nlohmann-json dependency
which previously was unpinned.

### What is the New Behavior?
nlohmann-json has been added to a new third party library section in
versions.sh. A wget has been added with a version sentinel to ensure
that the version stays consistent.

### What steps should a reviewer take to reproduce or test the bug or
new feature?
1. Before running submitty_install:
- run `cat
/usr/local/submitty/GIT_CHECKOUT/vendor/nlohmann/json/VERSION` to ensure
that the version is not yet stored, the file doesn't yet exist
- check the current version with
```
grep -rh "define NLOHMANN_JSON_VERSION" /usr/local/submitty/vendor/include/nlohmann/ | grep -E "MAJOR|MINOR|PATCH"
```
2. Run submitty_install
3. Check the current version:
- run `cat
/usr/local/submitty/GIT_CHECKOUT/vendor/nlohmann/json/VERSION`
- you should see now that the version is 3.12.0, and that this new
version file exists
- run `grep -rh "define NLOHMANN_JSON_VERSION"
/usr/local/submitty/vendor/include/nlohmann/ | grep -E
"MAJOR|MINOR|PATCH"` to verify the version actually changed
4. Change the nlohmann-json version in versions.sh to 3.11.0
5. Run submitty_install
6. Check the current version:
- run `cat
/usr/local/submitty/GIT_CHECKOUT/vendor/nlohmann/json/VERSION`
- should now be 3.11.0
7. Change the version back to 3.12.0 and reinstall to do a general
functionality test (autograding, submission, etc)
8. Finally, test in conjunction with
[PR#94](Submitty/RainbowGrades#94) to make sure
that there is no interference between the files

### Automated Testing & Documentation
N/A

### Other information
This is not a breaking change
This are no migrations included
Not a security concern
@github-project-automation github-project-automation Bot moved this from Seeking Reviewer to Awaiting Maintainer Review in Submitty Development Jul 27, 2026
@bmcutler
bmcutler merged commit 234776b into main Jul 27, 2026
2 checks passed
@bmcutler
bmcutler deleted the nlohmann-version-pinning branch July 27, 2026 00:57
@github-project-automation github-project-automation Bot moved this from Awaiting Maintainer Review to Done in Submitty Development Jul 27, 2026

@NicholasCiuica NicholasCiuica left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tested this today and nlohmann version pinning works correctly. I was having difficulty running "make" and "make pull" because my WSL terminals can't connect to my VM (not sure why still), and my Command Prompt terminals (I'm on Windows) don't recognize these commands. I therefore had to scp the grade reports into my local grades_summary/raw_data directory, and run make from there. Running make with create a vendor folder and fetch nlohmann as expected.

Image

bmcutler pushed a commit to Submitty/submitty.github.io that referenced this pull request Jul 29, 2026
Updated the dependencies of running Rainbow Grades manually. Since
Rainbow Grades
[PR#94](Submitty/RainbowGrades#94) was merged,
the nlohmann fetching was updated to use curl instead of wget.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants