Changelog

Find out our most recent changes on our roadmap.

October 6, 2023

Code Structure Tests block

This sprint we have added a new test block to AutoTest v2 for code structure testing! The "Code Structure Test" block uses Semgrep, a popular code structure testing framework. Using this test block allows you to select a version of semgrep to use, specify the file(s) to test and the specify a pattern to match against. Using the Positive match block allows you to check for code structures that your students should have used in their assignment while the Negative match block lets you search for code that should be avoided.

Other improvements

  • You can now specify a default severity for comments generated by the Flake8 block who's severity isn't recognised by CodeGrade. Additionally, you can add a mapping to unknown flake8 error codes.
  • The Pytest block now shows a red cross when a submission achieves zero points.
  • It's now possible to choose how many submissions are shown on the submission list page.
  • We now make sure that the locale of the VM in AutoTest v2 is set correctly.

September 22, 2023

Assignment descriptions in submission list

This sprint we we made three key changes focused on bringing more usability to the UI. We have improved the submission list firstly by making it possible to view the assignment description directly rather than having to go to the settings, and secondly, by making it possible to sort submissions by section. Additionally we have improved the plagiarism checker by making it possible to filter cases using the search bar and by making it possible to load more than 100 cases.

Other improvements

  • We now show a warning that the test crashed for IO Tests and hide the diff viewer to prevent confusion about the cause of the test failing.
  • We have now made it possible to import an entire assignment setup into assignments that have existing submissions.
  • It is no longer necessary to refresh the page when importing an AutoTest v2 configuration.
  • AutoTest v2 steps that generate comments on students' code now have a dedicated viewer for a user-friendly output.
  • Institutions with a Brightspace LTI1.3 integration can now adjust their assignment names in CodeGrade.
  • All new staff users will be granted access to the community library by default.

September 6, 2023

Enhanced checkstyle support in AutoTest v2

This update includes the most recent addition to the "cg" commands suite, "cg checkstyle". This new command improves the the usage of checkstyle in CodeGrade by offering a simple way to install checkstyle and, run and parse the output of checkstyle tests. More information about the use of this command can be found by running "cg checkstyle --help" in a Script block in AutoTest v2.

Other improvements

  • You can now set test descriptions in AutoTest v2 to automatically expand or collapse given the result of the test.
  • The "cg comments generic" and "cg unit-tests junitxml" commands have been simplified to "cg comments" and "cg junitxml". The old commands will be preserved for backwards compatibility.
  • We have introduced the "caching" state to the AutoTest v2 output viewer to provide a clearer indication of when AutoTest v2 steps are being cached.

August 25, 2023

New options for cg program in ATv2

This update expands on the "cg" command in AutoTest v2 (a pre-installed command for parsing test output). The update adds the option to parse JUnit XML files directly to render the output of unit tests by using the command "cg unit-tests junitxml".

Additionally, the "cg comments generic" command can now generate a score based on the comments that were generated. This feature is enabled simply by setting the --score flag. The impact each comment will have on the score can be customized with the --deduction-<severity> PERCENTAGE flag.

Other improvements

  • We now support installation blocks for Clang, GCC, and .NET framework in AutoTest v2
  • Submissions are now marked late depending on the deadline of the section the student is in.
  • The submission will remain marked as late even if the deadlines are shifted after submission, since it was late at the time of handing in
  • The specific deadline and lock date used for the student are also available in the AutoTest v2 environment within the $CG_INFO variable.

August 9, 2023

Better support for automatically generated comments

We are making it easier to use custom test frameworks in AutoTest V2 For Code Quality tests, we have created the “cg comments generic” command. You can provide a regex to this command to match any line in the test output and use that to write comments easily to your students’ submitted files. You can read more about how to use this feature here!

Additionally, code quality tests in ATv2 now also place comments on students’ code while they are working in the editor.

Other improvements

  • You can now bulk export plagiarism cases
  • You can now set a private Github repo as a template repository in your assignments
  • We fixed an issue where AutoTest v2 could not find files in subdirectories in the editor
  • We made user role mapping better for clients using SURF SSO
  • We fixed a cosmetic issue when dragging test steps in AutoTest v2

July 20, 2023

Run if block

The new "Run if" block in AutoTest v2 allows you to determine if your test cases run or not depending on whether tests pass or fail. Select a rubric category and if the percentage of points achieved meets your set criteria, the tests wrapped inside this block will be run, otherwise they will be skipped.

Other improvements

  • We improved unit test suite readability by limiting the number of columns rendered in the output.
  • We have created a separate permission for creating test submissions, splitting it from the "Create submissions for others" permission.
  • We have improved the plagiarism export by having cases from the same file presented together and including more metadata about the submissions and the JPlag report.
  • We fixed the API documentation for the Schedules feature.

July 17, 2023

Export Plagiarism report as PDF file

You can now export plagiarism reports in PDF format for ease-of-sharing. The report is beautifully rendered with LaTeX formatting and soon we’ll add more information to this!

Other improvements

  • We increased the rate limit for network connection in ATv2 from 1 MB/s to 70 MB/s.
  • We fixed a bug in AutoTest v2 that made it impossible to upload large files.
  • We fixed a bug in AutoTest v2 where multiple output viewers for pytest blocks were shown before the test was run
  • We fixed a bug that made it impossible to delete sections copied over from another course.

June 28, 2023

Lock date and submission settings

When you set up a lock date in CodeGrade's general settings, a pop-up banner will now appear that allows you to grant students the permission to make submissions after the deadline. This makes the process much quicker as you no longer need to find the permission settings in the course management page.

Other improvements

  • The name of the author will now always be shown in the header when the editor is being used.
  • We made it possible to access global packages in the pytest step, fixing an issue where users had to install the packages in the pytest block itself.
  • You can now change the name of Flake8 and Pytest steps in your AutoTest v2 configuration so that you can give clearer instructions to students.
  • We fixed an issue where users using Firefox could not scroll through assignment configurations while importing from the Community Library.
  • We fixed an issue where Flake8 would show an error if its config was hidden with a Hide block.

June 26, 2023

Community Library

You can now share your assignments with other CodeGrade teachers or import assignments from the community into your own course! The Community Library makes it simpler for new users or users without the time to set up courses to set up their own course in CodeGrade.

You can access the Community Library at the bottom of the general settings of an assignment in the “Danger Zone” next to the assignment importer. Soon you will also be able to publish your assignments to the Community Library. If you already want to share assignments, just reach out to us at support@codegrade.com.

Other improvements


June 16, 2023

Flake8 AutoTest v2 block

You can now run Flake8 on your students' Python submissions and automatically generate comments on their code.

Other improvements

  • We have updated AutoTest v2 to be accessibility compliant according to the WCAG 2.1 guidelines.
  • We have added support for Python 3.11 and Python 3.12 for the CodeGrade Python API package.
  • We have fixed a bug that meant newer versions of the API libs weren't being published on Pypi.
  • We have improved the payment UI for students.

May 22, 2023

Template Github repository

You can now connect a template GitHub repository to CodeGrade. Enabling this feature will force your students to create a new GitHub repository from the template you have selected rather than selecting an existing repo. You can use this feature by enabling GitHub/GitLab as a submission method and then toggling the "Enable template repository" option. You will then be prompted to provide the URL of the template repo.

Note: You must make sure the GitHub repo you select as the template must be a template repository. This can be set in GitHub by going to settings and checking the box called "Template Repository" under the General Settings.

Other improvements

  • Added a PyTest block in ATv2 allowing you to write your Pytest scripts directly in AutoTest. This removes the need to upload test files or wrapper scripts.
  • Added a regex match block for the IO test in ATv2.
  • Other glitch and bug fixes

May 22, 2023

Asynchronous assignments

It is no longer required to set a deadline for your students to create submissions. Previously, students would not be able to create a submission for an assignment without a deadline, whereas now they will instead be able to create submissions indefinitely. Effectively, this change makes it possible to run asynchronous assignments. This is especially useful if your course allows students to make submissions for any assignment throughout the duration of the course.

Other improvements

  • You can now access submission metadata through the "CG_INFO" environmental variable.
  • Other small changes and bug fixes.

May 8, 2023

Schedules

You can now set different availability, deadline and lock dates in your assignments for different sets of students (sections) with Schedules.

To use this feature, go to the general settings of your assignment and scroll to the Schedules settings. If you have created sections in your course, you can add a new schedule. By default your assignment will only have a single deadline for everyone. Schedules, like deadlines, can be set up for each assignment.

With the new feature you can:

  • Have multiple sections / labs doing the same assignment at different times.
  • Grant deadline extensions to a student or group of students.

Note:

  • When using Schedules, the availability, deadline and lock date will no longer be automatically synchronized from your LMS. In other words, you will have to set the deadline for everyone in CodeGrade.
  • If a user is present in multiple sections, for each option (availability, deadline, lock date), they will be granted the most lenient setting applied to one of their sections. For example, if a student is in two sections (A and B) and the section A has a later deadline but section B has an earlier available at date, then the student will be assigned the deadline of section B and the available at of section A.

Other improvements


April 21, 2023

Improved Import System

We've made an improvement to the way you can import assignments from one course to another. You are now first prompted to select which course you would like to import an assignment from and then you can select an assignment from that course. This makes it much easier and fast to find the assignment you are looking for.

Other improvements

  • Override GitHub repository - An issue that some users were encountering was that students would connect the wrong GitHub repo to their CodeGrade assignment. This would result in them having difficulty decoupling the repo and connecting a new one. We've now added a feature that allows you to easily override the currently connected GitHub repo with a new one.
  • Section division API - This new public API service allows teachers to divide students into sections in their course.

April 5, 2023

AutoTest v2 Updates

We've made a lot of progress on improving our newly released AutoTest v2. Below are some of the key updates from the last two months:

  • We added setup blocks that allow you to install specific versions of Python, Java or JavaScript in the setup.
  • We added a timeout wrapper block to set a custom timeout on steps.
  • We added a diff viewer to the IO test step for students.
  • We added the option to ignore whitespace to IO test match blocks.
  • Submission metadata is now available in the AutoTest VM with the environmental variable “CG_INFO”.
  • You can now place comments in the code viewer via AutoTest V2 by writing to file descriptor 3 (Structured Output).
  • We now allow for descriptions on test steps.

Other improvements

  • AutoTest v2 steps no longer unnecessarily collapse while tests are running.
  • Fixed a scrolling bug in the AutoTest V2 output viewer in the editor.
  • Copying AutoTest v2 configurations should no longer give timeout errors.
  • Large amounts of text in the Expected output field no longer causes saving issues.

March 9, 2023

Grades published toggle

We have improved how you can publish (and synchronize) the grades and feedback to your students. There is now a dedicated toggle on the Assignment Management page. Furthermore, the availability of an assignment is now managed through the "Available" field, which has three options: "Unavailable", "Always Available" and "Available at [DATE]".

This update replaces the Assignment State. Existing assignments are automatically migrated to use the new fields.

Other improvements

  • When you copy or import an assignment, the test submission is now also copied!
  • Made it possible for teachers to access the editor to adjust an existing submission at any time via the "Edit" button in the code viewer.
  • Made it possible for teachers to upload a test submission even when the "File uploader" option hasn't been selected.
  • Added a substring match block for IO tests in AutoTest v2.
  • Added a case sensitivity option to IO test match blocks in AutoTest V2.
  • Several minor improvements.

February 22, 2023

AutoTest V2

You can now use our completely new automatic grader which runs on a new infrastructure and has a completely redesigned user interface. Read more about AutoTest V2!

Other improvements

  • Added an announcement center.
  • CodeGrade now supports the Test Student role in LTI 1.3 in various LMSs including Canvas.
  • You can now view editor templates.
  • You can now customize the maximum number of points an assignment has.

December 8, 2022

Bulk enroll users

You can now bulk enroll users into CodeGrade if you are using CodeGrade without an LMS. Simply upload a CSV file with the name, username and email of the students you wish to enroll and your students are enrolled.

If your students don't have an account yet, they will receive an email to register for an account with the details you specified.

Other improvements

  • Fix a bug where the name of a Canvas CodeGrade assignment would sometimes change to the name of the course.
  • Fix a bug where assignment descriptions would sometimes be overwritten when copying assignments.

April 11, 2022

Version QuietStorm

This release brings the highly anticipated start of the private beta for the CodeGrade Editor! Furthermore, we have improved experience of CodeGrade on Apple devices, and made setting up your unit tests for .NET and PHP even easier.

  • This release marks the start of the private beta for the CodeGrade Editor. This editor allows you to work on your submissions and create them right inside CodeGrade, without having to open any local editor. If you want to join this private beta please contact us.

Other improvements

  • It is now possible to also use the Command key as Ctrl on Macs.
  • We have added custom UI's for setting up xUnit and PHPUnit tests.
  • As always we have also focused on increasing the speed of CodeGrade. This time the route to get all feedback of an assignment has been drastically sped up. Furthermore, the amount of JS/CSS that is needed for the initial page load has also been reduced.
  • Users that create a CodeGrade account outside of their LMS will now receive a welcome email.
  • When CodeGrade detects a time out of sync situation we will now correct the local time used within the application with the detected delta.
  • When editing snippets in Safari on your profile page the modal now correctly is placed in the middle of the screen.
  • CodeGrade should now work better on devices with automatically hiding address bars, such as Safari on iPads.
  • We've fixed some minor typos in the descriptions of the permissions.

    AutoTest software updates
  • The default installed version of R has been upgraded from 4.0.4 to 4.1.3.
  • The default installed version of JUnit5 has been upgraded from 1.6.2 to 1.8.2.
  • The default installed version of Jest has been upgraded from 26.6.1 to 26.6.3.
  • The default installed version of Semgrep has been upgraded from 0.43.0 to 0.86.5.
  • .NET version 6.0 has been added to software that is installed by default.
  • ASP.NET version 6.0 has been added to software that is installed by default.

  • February 17, 2022

    Version PerfectlyNormal.3

    This release allows you to personalize CodeGrade even more: Dark Mode can now be toggled automatically and you can select your default Submission Page tab. Additionally, we added many of your small feature request to make your experience even better!

  • It is now possible to select which tab on the submission page is loaded by default. This allows you to optimize your manual grading workflow even more!
  • We've made some more improvements to our dark mode. It is now possible to switch to dark mode automatically, and your preferences will be synced between sessions now. On Mac this allows you to use CodeGrade's dark mode automatically at night!
  • Other improvements

  • Users with the new "Upload without group" permission can upload to group assignments even if they are not in a group, or in a group with an insufficient amount of members.
  • New users that register are no longer allowed to have whitespace as leading or trailing characters in their username. This change has no effect on existing users.
  • The email received after paying for CodeGrade now contains more information about the account that paid.
  • The deadline for peer feedback is now communicated more clearly to students.
  • It is now possible to start multiple plagiarism runs with identical configurations.
  • As always we have improved the performance on CodeGrade. The app should now load faster, especially on slower connections.
  • A bug has been fixed that made it impossible to check if the manual git setup was correct has been fixed. This bug had no effect on the actual setting up.
  • We fixed an issue that could cause non saved changes in the hand-in requirements to be reverted when changing other settings on the manage assignment page.
  • For some Learning Management Systems it could happen that the "In LMS" check for the grade history was not checked, even though the grade was passed back successfully.
  • We fixed a bug that made it possible to submit invalid regexps for IO tests.

    API Changes
  • Grade history items will no longer have a negative grade on deletion, but instead will pass the grade as None. It was already indicated in the API that this field was nullable.
  • The type for "feedback" field in the WeakPasswordException has been fixed. It was incorrectly indicated that this was a string, however this is (and has always been) an object with a key "warning" and "suggestions".

  • December 23, 2021

    Version PerfectlyNormal.2

    This release improves our peer feedback feature: it is now possible to let groups peer review other groups. Happy new year from all of us at CodeGrade!

  • Peer feedback has been made compatible with group assignments. You can now enable both to let groups review other groups.
  • It is now possible to allow peer reviewers to see the AutoTest results of the subjects they are reviewing.
  • Other improvements

  • We've improved the performance of many API routes and optimized the way we send static assets. This should result in an even snappier CodeGrade experience.
  • Deleting submissions will now no longer redirect you to the submissions overview page, but instead will redirect to another submission of the same user.
  • It is now possible to hide only peer feedback or non peer feedback inline comments.

  • November 25, 2021

    Version PerfectlyNormal.1

    This release brings revamped general feedback! It now supports the same awesome features as the inline feedback, such as snippets, markdown and discussions.

  • General feedback has been revamped! It now has the same awesome features as our inline feedback, you can now also use markdown for example and have discussions.
  • We've created a dedicated site for the documentation of our python API client: https://python.api.codegrade.com. This makes it easier to get started with the library and create awesome custom integrations!
  • Other improvements

  • It is now possible to view the source of a markdown file. This makes it possible to give feedback on how the markdown is structured.
  • There is now a dedicated button to go to the submissions of an assignment on the manage assignment page.
  • If a submission has a teacher revision you can now choose to download the student or teacher revision when downloading the code of a submission.
  • It is now possible to create submissions with two files with the same name from different directories.
  • Fixed a bug where single steps of a skipped AutoTest could stay in the running state.
  • It is now possible to change between Unit test wrappers after making and reverting changes compared to the default values.
  • It is now possible to give peer feedback even if the assignment is in the done state as long as the deadline has not expired. This was already possible through the API, however due to a bug the frontend didn't allow users to submit new feedback.
  • The submission uploader now looks better on smaller screens.

  • October 8, 2021

    Version PerfectlyNormal

    We've redesigned our dark mode for this release, making it both prettier and easier on the eyes! But that's not all, it is now also possible to grade submissions in percentages.

  • We've entirely redesigned our dark theme. It's now easier on the eyes, and prettier too!
  • You can now also grade assignments based on a percentage instead of only on a 10-points scale.
  • It is now possible to export all submissions without using our custom file system.
  • Other improvements

  • When a test fails to compile with cg-jest the compilation error is now shown in the errors tab.
  • It is now possible to increase the size of CodeGrade within LTI for some learning management systems. Please contact support for more information.
  • We made it easier to create new group sets. You can now create and edit them while staying on the manage assignment page
  • As always we fixed some bugs, and improved performance.
  • API Changes

    As this is a major release some API routes have been changed and are not backwards compatible.

    • The API introduced last release to retrieve GitHub and Gitlab repositories (GET:/git_providers/<uuid:provider_id>/tokens/<uuid:token_id>/repositories/) now no longer returns an array, nor does it use page pagination. It now returns a GitRepositoriesPage object, which contains the data (under the key data) and a cursor (under the key cursor) that can be used to retrieve the next page.
    • All routes that upload files to later be downloaded using the GET:/api/v1/files/ method have been changed. They now all return a MirrorFileResult object. For the documented API this change is backwards compatible, but for some undocumented routes the change is backwards incompatible.
    • The undocumented route to export the metadata of an assignment has been changed. It now no longer returns the CSV directly but returns the representation of a background job that will export the assignment.

    September 2, 2021

    Version Orchid.3

    This release improves the integration between CodeGrade and GitHub and Gitlab, making it easier than ever to setup git assignments. It is now also easier to setup unit-testing in CodeGrade.

  • We’ve improved our integration with GitHub and Gitlab. It is now possible to connect an existing, or create a new GitHub repository or Gitlab project with the click of just one button.
  • It is now possible to setup unit testing in AutoTest in a structured way, similar to the code quality checkers.
  • Other improvements

  • Fixed a bug that could make it impossible to delete hand-in requirements.
  • AutoTest steps with a weight of zero now will also display as “Passed” in the UI.
  • Fixed a bug that could make it impossible to set the lock date for courses when using an old Canvas LTI 1.1 integration.
  • Fixed a bug where the button to override hand-in requirements would error when the option to override was disabled. This button is now correctly disabled again when the option is disabled.
  • Fixed a bug that could cause the total percentage of points achieved in a category to not show up.

  • July 28, 2021

    Version Orchid.2

    This release brings an updated continuous rubric category, where you can now define a lower and upper boundary. Besides that, the assignment state design has been updated and it's been moved to the general settings.

  • We've added the option to set a lower bound for continuous rubric categories. Therefore, it is now possible to subtract points with these categories. This is especially useful if you want to subtract points within AutoTest, for example for late submissions.
  • It is now possible to select which files should be loaded first when opening a submission. This can be specified under the "Advanced option" section of the "General Assignment" card on the manage assignment page.
  • Other improvements

  • We've made the way you set the assignment state more consistent with the rest of the design of the manage assignment page. You can now change the state in the "General Assignment" card, instead of in the header.
  • Added the option to change the way division of peer feedback is done after the deadline has passed. We used to always guarantee that every student would review, and was reviewed by the set amount of students. If a student submitted for the first time after the deadline this could cause a re-division. It is now possible to disable this behavior, this will not change the division for any students that already handed in, but might cause some students to receive more or less reviews than the set amount.
  • You can now set the available at from Brightspace, and also configure it directly while creating the assignment.
  • It is now easier to see how many students have handed in, and how many you're currently viewing.
  • Fixed small bugs, for example that hand-in requirements wouldn't update without reloading the page after importing an assignment.
  • Added new payment options, please contact our sales team for more information.

  • July 1, 2021

    Version Orchid.1

    This release introduces anonymous grading, which hides the student name for teachers while grading. Besides that, you can now also copy entire courses and assignments and we have improved the submissions list with more information.

  • It is now possible to copy complete assignments and courses. For supported learning management systems this is also done automatically if you copy the course or assignment in your LMS.
  • Added the option for teachers to do anonymous grading. With anonymous grading the names of the students and groups are hidden. This makes it possible to prevent the effects of any unconscious biases that a grader might have.
  • It is now possible to add comments to empty files and to files that cannot be rendered, for example because they contain binary data or because they have a .jpg extension but do not contain valid JPEG data.
  • Added information about manual rubric categories to the submissions list. You can now see how much of the rubric you have filled in for each submission in the submissions list. This makes it easier to determine which submissions still require manual grading, and which are done.
  • Other improvements

  • Added ReSharper to the list of supported linters. It is now even easier to lint C# code as part of your AutoTest config.
  • It is now possible to have AutoTest steps with a weight of 0. This makes it possible to have a steps that are only used for their side effects (e.g. compiling).
  • It is no longer possible to have AutoTest checkpoints as the first or last step in an AutoTest category. These checkpoints did not really serve a purpose (either they would always pass or have no influence) and could confuse students.
  • It is now possible for students to see peer feedback before the assignment is in the "done" state. Users with the can_see_peer_feedback_before_done are allowed to see peer feedback when the assignment is not done. Users with the can_see_user_feedback_before_done are no longer allowed to see peer feedback when the assignment is not "done", all users which had this permission do now also have the can_see_peer_feedback_before_done permission.

  • June 27, 2021

    Version Orchid

    CodeGrade Orchid brings a big update to AutoTest: setup caching. Caching will make autograding quicker, even for configurations with a performance heavy setup. We have also published a new Filesystem version with this release.

  • The output of the global setup script is now cached in AutoTest. If you have a global setup script with side effects (e.g. you want to pull the latest version of your tests) you can disable caching in your AutoTest configuration.
  • Updated version of our Filesystem application.
  • Other improvements

  • Add a workaround for Canvas and Blackboard to prevent students from showing up as missing in the gradebook if they did not have a submission.
  • Improve various styling in dark mode.

  • March 9, 2021

    Version Nobel.2

    This release makes it easier to allow late submissions using the lock date, making it possible to allow late submissions up to a certain date. We’ve also updated various software packages in AutoTest, and made it easier to use the CG_INFO information.

  • We now publish a library to consume our API, check it out on PyPi.
  • Next to the original hard deadline, you can now also add a “lock date” after this, allowing you to make the deadline “soft”.
  • We’ve added a utils module within AutoTest (cg_at_utils). Using the CG_INFO data is now as easy as doing from cg_at_utils import CG_INFO.
  • Other improvements

  • Fixed a rare bug where LTI 1.1 passback would fail if we encountered a redirect.
  • Added a workaround for a Canvas LTI 1.3 grade passback bug.
  • Fixed blockquotes in the markdown input fields.
  • Fixed a bug that caused AutoTest description templates to not be copied when importing an AutoTest.
  • Added support for the Populi LMS.

  • January 28, 2021

    Version Nobel.1

    This release kicks off our push to make AutoTest even better this year. You can now give even more accurate feedback by customizing AutoTest messages, and the workflow for uploading fixtures has been optimized.

    • Provide more accurate feedback by customizing the messages in AutoTest.

    Other improvements

  • Improve UX for setting up AutoTest setup scripts, making it more clear when you haven’t changed the input and what the time-limit is for the command.
  • Make it possible to overwrite AutoTest fixtures without deleting the old fixtures with the same name first.
  • Automatically open the first subdirectories (those corresponding to AutoTest categories) in the AutoTest output file tree.
  • We’ve added a tenant system to make our service even better. When logging in you now have to select your instance.
  • Fix rare CSV export bug where exported data might be outdated if you didn’t refresh the page since the last update.

  • December 23, 2020

    Version Nobel

  • Add a limit to the maximum amount of plagiarism cases a single run can generate.
  • Improve error messages when the server is overloaded.
  • Other improvements

    Never hyphenate code. When wrapping lines it could happen that code was hyphenated in the Code Viewer.

    API Removals

    • The option to get an entire course when getting an assignment has been removed. You should now request the course using the /api/v1/courses/<course_id> route go retrieve this course. The course_id is given when requesting an assignment.
    • A plagiarism cases will no longer contain the two linked assignments. They do contain the two linked assignment ids (under the assignment_ids key), and the plagiarism run contains a lookup from assignment id to an assignment like object.
    • When requesting all courses using the /api/v1/courses/ route we will no longer provide the name of the role that the current user has in this course. Please either use the /api/v1/permissions/ route to retrieve your own permissions, or the /api/v1/courses/<course_id>/users/ to retrieve the role of a user.

    UI Removals

    • Linters have been moved to AutoTest (AutoTest Quality Comments). The new integration allows for more flexibility and grading based on linter output.

    November 26, 2020

    Version Mosaic.3

    This release brings many small fixes and improvements, and is the last release on our old infrastructure. We will migrate CodeGrade to AWS on the 28th and 29th of December, during which CodeGrade might not be available.

    Other improvements

  • More descriptive error message when launched with LTI 1.3 without an assignment name.
  • Make sure deleted submissions are ignored for calculating the analytics.
  • Ignore empty “branch” parameter in webhook payload URLs.
  • Fix crash on analytics page.
  • Fix wrong rubrics being cleared when restarting an AutoTest result.

  • October 22, 2020

    Version Mosaic.2

    The Rubric Editor has a new design, which allows you to reorder categories and use markdown. The new Code Quality step in AutoTest allows you to grade and add inline comments to submissions based on code style. This will replace the current Linters integration.

  • Rubric improvements. The rubric editor had a makeover: you can now view multiple categories at the same time, it is possible to reorder categories, and you can use markdown in both the category and item descriptions.
  • AutoTest Code Quality comments. AutoTest has a new step type designed for linters. You can now place line comments within AutoTest and deduct points based on the amount of lines. We’ve integrated some popular linters, but it is also possible to create your own custom linters.
  • Other improvements

  • Expand inline links in markdown viewer. When you use http or https URLs in your markdown feedback, they are automatically turned into clickable links.
  • It is no longer possible for students to edit their submissions in the filesystem. Students are now no longer allowed to edit their submissions using the CodeGrade filesystem. We can now guarantee that the student revision of a submission never changes.
  • The API documentation has been revamped. This makes it easier for to start using our API. Please note that we haven’t migrated all routes just yet, if you are missing a route please let us know!
  • The Jupyter Notebook viewer now supports more output types and colors. If a Jupyter Notebook contains ANSI colored output we will display these colors in all their glory.
  • When hiding inline feedback this setting is now saved when switching files. When you hide inline feedback using the preference settings on the submission page,
  • this is now saved when switching between files and submissions.
  • UI Deprecations

    • The linters integration has been deprecated. The new AutoTest Quality Comments bring all the advantages, and also allow you to give a grade based on the output of the linter.

    September 9, 2020

    Version Mosaic.1

    CodeGrade now has an Exam mode in which students will be able to log in to CodeGrade and only have access to the course of the exam. Other changes include course archiving, importing of hand-in requirements, and including even more information in the AutoTest Unit Test output.

  • Add Sakai support. Full LTI integration with Sakai.
  • Add support for SSO. CodeGrade now supports SSO leveraging the SAML2.0 protocol, allowing even better integration.
  • Add CodeGrade Exam Mode. CodeGrade now has even better support for exams, allowing you to schedule the start of your exam, and making it possible to do exams for LTI courses without LMS access.
  • Add import of hand-in requirements. You can now import the hand-in requirements of other assignments that you have access to.
  • Add course archiving. You can now archive old courses, hiding them from students and cleaning your own homepage.
  • Other improvements

  • Use the same icons from the “Capture Points” AutoTest step for the “Unit Test” step.
  • The “Unit Test” step would always use the green checkmark if the step did not crash, but now the icon depends on the score achieved.
  • Make the peer feedback counters for students more clear. This changes the counters with the number of comments students have given to their peirs to be clearer and give more detailed information.
  • Remove bin size “year” for the “Students submitted on” graph in the analytics dashboard.
  • The years option did not work very nicely because it didn’t use the correct labels, and it is unclear what the start of a bin should be, so it has been removed as it isn’t really useful in a context where an assignment takes less than a year.
  • Add rate limiting to login route. Make it impossible to bruteforce someone’s password by sending infinite requests to the login route.
  • Show more output in the Unit Test step. When a test case contains a <system-out> or <system-err> node its contents will now also be displayed in the output of the step.
  • Renaming courses. It is now possible to rename existing courses.
  • API Deprecations

    • The option to get an entire course when getting an assignment has been deprecated. You should now request the course using the /api/v1/courses/<course_id> route go retrieve this course. The course_id is given when requesting an assignment. If you still use the old behavior you will get a warning, you can already opt-in to the new behavior by providing no_course_in_assignment=true in the request arguments.
    • When requesting a plagiarism case we have deprecated getting the two linked assignments within the plagiarism case object. The case will now contain the two linked assignment ids (under the assignment_ids key), and the plagiarism run contains a lookup from assignment id to an assignment like object. If you still use the old behavior you will get a warning, you can already opt-in to the new behavior by providing no_assignment_in_case=true in the request arguments.
    • When requesting all courses using the /api/v1/courses/ route getting name of the role that the current user has in this course has been deprecated. Please either use the /api/v1/permissions/
    • route to retrieve your own permissions, or the /api/v1/courses/<course_id>/users/ to retrieve the role of a user. If you still use the old behavior you will get a warning, you can already opt-in to the new behavior by providing no_role_name=true in the request arguments.

    July 21, 2020

    Version Mosaic

    With CodeGrade Peer Feedback it is now possible for students to review code of other students, allowing them to learn from each other. Furthermore, it is even easier to integrate existing unit tests in AutoTest, by utilizing the new “Unit test” step type.

  • Add “Unit Test” AutoTest step. This new AutoTest step type supports all testing frameworks that can output their results the JUnit XML format. The results are shown to the student  in an intuitive overview.
  • Make it possible to run AutoTest on the teacher revision instead of the student submission, if it is available..
  • Allow test submissions before the deadline. This may be useful when setting up a course without knowing the deadline yet in LMSes that support deadline synchronization, for which impossible to change the deadline from within CodeGrade.
  • Add Peer Feedback feature. When peer feedback is enabled for an assignment, students can give each other feedback after the deadline of an assignment has passed.
  • Other improvements

  • Automatically focus the percentage input in continuous rubric rows.
  • Make it easier to upgrade from LTI 1.1 to LTI 1.3.
  • Add more rubric category information to the rubric analytics graphs.
  • Do not automatically hide the general feedback popover after saving the general feedback or interacting with the page.
  • Add the year to course names in the sidebar if there are other courses with the same name.
  • It is now possible to restart the AutoTest run for a single student.
  • Fix IPython execute_result cell outputs.
  • Add missing newline at the end of symbolic link replacement files.
  • Miscellaneous fixes.

  • June 10, 2020

    Version LowVoltage.1

    With our new Feedback Sidebar, you can now view all previous feedback from a student in the course, while grading the current submission. It is now also possible to get submission metadata in AutoTest, for instance to automate late day penalties. Finally, we have upgraded CodeGrade to the newest version of LTI: LTI 1.3 Advantage!

  • Course feedback. Adds an overview of all the feedback a student received over an entire course. Teachers have access to this overview on the submission page in the same location as the file tree. For students there is an extra button on the submissions page.
  • Improve plagiarism document rendering. Matching blocks of code can now be rendered side by side, the amount of context lines before and after each match is configurable, and it is possible to export to a docx file.
  • Add LTI 1.3 implementation. This makes the integration in the LMS even better, allowing better workflows for group assignments and easier assignment creation.
  • Include submission information in AutoTest environment. Some information about a submission is now available in AutoTest as a JSON object that is stored in an environment variables. This is useful to automatically subtract points based on the submission date and deadline, or to generate a unique input for each submission or student.
  • Other improvements

  • Fix AutoTest result being in state “done” while it has steps that are in state “waiting to be started”
  • Remove “Add filter” button from analytics dashboard.
  • The button was confusing when splitting a filter, and since there already is another button to add new filters we removed it.
  • Fix notification sorting order. Unread notifications are now always sorted before read notifications.
  • Miscellaneous fixes.
  • Use Bootstrap-Vue toasts instead of vue-toasted,

  • April 15, 2020

    Version LowVoltage

    You can now view assignment statistics on the Analytics Dashboard, giving you insight into student performance. Students can now also comment on their own code, and they can reply to comments placed by teachers.

  • Analytics dashboard. The analytics dashboard is a new page with various statistics about an assignment. It gives teachers insights in how students are performing on the assignment and where the assignment may be improved.
  • Inline feedback replies. It is now possible to reply to inline feedback, which makes distance learning easier to do with CodeGrade. This update also adds markdown formatting to inline feedback, and notifies you when you have received new replies.
  • Contact student button. This makes it possible for teachers to send emails to students of a submission, or to multiple students in a course.
  • Other improvements

  • Make usernames case insensitive. This reduces ambiguity in which user you are dealing with, as well as making it easier to login because you do not have to remember if you used an uppercase or not when you registered.
  • Various internal improvements. This makes it easier to improve CodeGrade in the future.
  • Plagiarism support for newer versions of Java. You can now use the Plagiarism checker for newer versions of Java.
  • Make sure that empty markdown files show a useful error.

  • March 16, 2020

    Version Knoet.3

    You can now render HTML pages submitted by students right inside CodeGrade, allowing you to preview webpages or test Javascript more easily than ever.

  • Make it possible to render html pages: It is now possible to render HTML pages inside CodeGrade.
  • Make the HomeGrid easier and faster to use: We now sort the courses on the HomeGrid based on the creation date of the courses, and courses with duplicate names can now be more easily identified as the creation date of the course will be appended to the name.
  • Other improvements

  • Upgrade bootstrap-vue.
  • Show confirmation when rubric has rows without item with 0 points.
  • Update threshold when relative time starts using days.
  • Disable plagiarism export button when no cases selected.
  • Give a better indication when an AutoTest step is hidden.
  • Various performance improvements: We’ve increased performance of various API routes, and added pagination and infinite scrollers to the HomeGrid, Submissions list and users manager to improve the first render speed.
  • Start using timezones everywhere when dealing with datetimes.
  • Do not discard changed rubric viewer when saving general feedback: The previous version contained a bug that when you saved the general feedback while you had a changed rubric the changes in the rubric were discarded.
  • Fix downloading submissions with reserved chars in their name.
  • Fix student count in submission list.

  • January 30, 2020

    Version 1.19.0 (Knoet.2)

    You can now add Continuous Rubric Categories, which can score anywhere on a continuous scale and work great with AutoTest. You can also now set student submission limits and a cool off period.

    • Continuous rubric categories: this new type of rubric category can be used to give points anywhere on a scale from 0 to a configurable amount of points. This behavior maps better to certain types of AutoTest categories, such as categories containing only “capture points”
    • steps. Rubrics can contain a mix of discrete and continuous categories and both can still be used for AutoTest.
    • Make it possible to limit the amount of submissions: the amount of submissions can be limited in two ways:
    1. A maximum total amount of submissions for an assignment.
    2. A cool-off period: an amount of time a student must wait before they can submit again.
    • Separate feedback permissions: the can_see_grade_before_done permission was used for all types of feedback students would get. New can_see_user_feedback_before_done and can_see_linter_feedback_before_done permissions make it possible to show these types of feedback before an assignment is set to done while still hiding others.

    Other improvements

    • Add warning when creating a wrong external tool link in Canvas: Canvas has multiple ways to integrate external tools, some of which leave CodeGrade unable to communicate correctly with it. This update displays a message when this happens.
    • Use the most privileged LTI role available.
    • Fix float matching for AutoTest capture points test.


    December 20, 2019

    Version 1.17.0 (Knoet.1)

    The hand in page for students has been completely redesigned, making it simpler and easier to use. You can now import AutoTest configurations and the ESLint linter is now available.

    • Submissions page redesign.
    • Add ESLint as a linter option.
    • Make it possible to delete assignments.
    • Make it possible to copy AT config.
    • Add course registration link.

    Other improvements

  • Update git instructions.
  • Stop persisting access tokens in LTI.
  • Set groups of user in AutoTest run.
  • Fix the default configurations for Checkstyle.
  • Stop registering AT jobs at the broker if there are no submissions.
  • Fix deadlock that would occur when attaching failed.
  • Use a blob storage for the jwt data instead of passing it in the request.

  • November 27, 2019

    Version 1.16.2 (Knoet)

    It is now possible to hand in via GitHub or GitLab. You can now also write files back from AutoTest to the Code Viewer to ease manual grading.

  • Make it possible to hand in submission through GitHub+GitLab: this makes it possible for students to automatically hand in submissions by pushing to GitHub or GitLab. Each student gets a unique URL, SSH public key and secret which can be used to configure a deploy key and webhook.
  • Add AutoTest output directory: AutoTest scripts can now write files to the $AT_OUTPUT directory. Files written to this directory are synced with CodeGrade and can be viewed in the Code Viewer.
  • Make it possible to check plagiarism in Jupyter Notebooks.
  • AutoTest Best Practices in docs.
  • Other improvements

  • Add year to old assignments dropdown.
  • Add option to hide inline feedback.
  • Hide hidden fixtures from students.
  • Improve the first render speed for AutoTest.
  • Fix giving feedback on PDF files in edge.
  • Fix incorrect late submission clock.
  • Fix race condition filling in rubric with AutoTest.
  • Fix getting latest submissions in combination with groups.
  • Fix typo for max time command in front-end.
  • Fix permissions fixtures directory.
  • Fix IO substep timers.
  • Fix feedback area author width.
  • Reduce amount of requests when loading plagiarism runner.
  • Only open the feedback area on a left click in the code viewer.
  • Cache code in the frontend.
  • Don’t show AutoTest popover on page load.
  • Stop loading the rubric and graders twice on the management page.

  • October 11, 2019

    Version 1.13.0 (JungleJoy.4)

    AutoTest and Continuous Feedback cooperate even better with this release. Tests are always run immediately after handing in, and even fill in the rubric directly when possible. Teachers can still choose when to make results visible to students.

  • Merge AutoTest & Continuous Feedback:
    AutoTest and Continuous Feedback are now integrated together. AutoTest automatically runs on all submissions and new submissions and you can choose whether to make the results visible to students immediately (Continuous Feedback) or only after the assignment state is set to done.
  • Brightspace support.
  • Other improvements

  • Improve scrolling on the submission list page:
  • on small screens the rubric sometimes overlaps with the upload field, this has now been improved.
  • Create a new config option to add an admin user to each course:
  • it is now possible to add an admin user to courses automatically, making technical support easier.
  • Show confirm message when overwriting an existing snippet.
  • Show warning when rendering extremely large files.
  • Make it possible to submit comments containing the null byte.
  • Make it possible to see the plagiarism table without manage permission:
  • this makes it easier to give TAs the permission to see plagiarism cases,
  • without them being able to edit the plagiairism run.
  • The CodeViewer is faster, and works better when dealing with large files.
  • Fix race condition in editable rubric editor.
  • Fix late submission warning.
  • Fix hand in requirements bugs:
  • sometimes a file was matched by multiple rules and there was a bug with empty directories when using the deny all policy.
  • Fix race condition when creating unassigned runners.
  • Fix plagiarism overview when missing permissions on other courses.

  • September 13, 2019

    Version 1.11.11 (JungleJoy.3)

    AutoTest and Continuous Feedback are now more reliable and efficient by fixing many small bugs and tweaks in the back-end. Additionally, a diff-viewer is added to the output of IO tests.

  • Add diff view to IO test: Adds a difference viewer to the IO test in AutoTest and Continuous Feedback.
  • Make it possible to use CF after a final run: enable starting Continuous Feedback after an AutoTest run finished.
  • Other improvements

  • Add Test Submissions:
  • makes it possible for teachers to more easily upload test submissions to test Continuous Feedback or Hand in Requirements configurations.
  • Add guide for students:
  • Add a new student guide to the documentation.
  • Remove log pushing functionality: logs were not useful during debugging. This reduces the amount of threads on the machine too.
  • Add more info about the job in the broker panel: adds course name, assignment name and type of job to the internal broker panel.
  • Show failed auto tests as failed: better communicate the output of Capture Points tests. Zero points results in failing, full points in passing and anything in between in a ~.
  • Improve broker panel: adds colors, limits the amount of rendered jobs and runners and adds function to shutdown runner instead of terminating.
  • Improve Assigned to me filter: disables the checkbox entirely for users without submissions and makes manually assigning to oneself more smooth.
  • Improve AutoTest: this makes AutoTest and Continuous Feedback more reliable and efficient:
  • Fix deadlock when starting commands
  • Improve the way command timeouts are handled
  • Add timeouts to all requests to the server
  • Improve handling of multiple submissions
  • Hide assignments without deadline in sidebar top: assignments without deadlines were displayed above assignments with a deadline in the upcoming assignments list. This is reversed now.
  • Fix rubric item deletion bug:
  • fixes the bug where lest rubric items could be removed by accident.
  • Fix by waiting for systemd to be done booting:
  • fixes the rare bug that AutoTest runners would never start.
  • Minor fixes for student submission page: this changes the grade placeholder when no grade is given yet and removes unavailable buttons.
  • Make it possible to go back from group page: adds a back button and clickable assignments to this page.
  • Fix editing feedback in IPython notebook files: fixes the broken line feedback for IPython notebook files.
  • Count the achieved points of capture_points steps in suite percentage: fixes the bug that points for capture points tests were not counted.
  • Fix very long waiting on attach bug.
  • Make sure markdown rendering is he same as in IPython Notebooks.
  • Fix group management loaders in LMS.

  • August 28, 2019

    Version 1.10.3 (JungleJoy.2)

    It is now significantly more efficient to run AutoTest or Continuous Feedback by a big improvement in our back-end. Additionally, our latest update adds further improvements to CodeGrade and fixes several minor and rare bugs.

  • Use multiple runners: make AutoTest or Continuous Feedback more efficient by allowing multiple runners to work on one run.
  • Only show latest submissions by default: make loading of submission(s) pages more efficient by only loading latest submissions by default, which especially is a problem with continuous feedback which can cause high amounts of attempts per student. Additionally adds an improved dropdown to switch between submissions of one student.
  • Other improvements

  • Improve popovers for locked rubric rows:
  • improves presentation of rubrics on more pages and adds popover to the whole rubric instead of only the lock icon.
  • Increase indentation of files in the file tree.
  • Improve scrolling to match near end in plagiarism detail: make it possible to align plagiarism matches even if one is near the bottom of the file.
  • Remove confirmation to delete feedback when FeedbackArea is empty: make it quicker to remove empty inline comments by removing confirmation dialog.
  • Use a tail of output use for custom output matching: capture points tests have a cap on the output of the command. Now the points are always captured from the tail of this output.
  • Minor AutoTest setup script improvements: make Continuous Feedback setup script output visible to students and improve the setup scripts popover texts.
  • Move Jplag languages to the config: adding new languages to our plagiarism detection is easier now, as it does now not need modifications in the CodeGrade source code.
  • Add pagination to the AutoTest run overview: if there are too many results for an AutoTest run the results will be paginated, which decreases loading time and makes the page responsive.
  • Fix general feedback overflow:
  • fixes the bug where too long general feedback causes an overflow.
  • Fix race condition when starting an AutoTest run:
  • fixes the UI glitch that continuously reloads the student list.
  • Fix infinitely reloading a Continuous Feedback AutoTestRun.
  • Fix selecting text in the InnerCodeViewer.
  • Fix issue with inline feedback in exported CSV.
  • Return IO substep name and weight when no permission to view details: still display names of substeps of IO tests if these are hidden. Details do not show.
  • Make sure waiting on pid only starts after command is started.
  • Fix “Stop CF” button not working sometimes: fixes a very rare bug which would break the “Stop CF” or “Delete Run” buttons.
  • Clear store rubrics in the RubricEditor when they change: fixes the bug that required a refresh before a new rubric would show up on the submission page.
  • Use correct URL in group management component.
  • Lots of bugfixes and minor improvements: this fixes numerous small bugs, including:
  • Download files without posting them to the server first
  • Do the doc build in the unit build on Travis
  • Round number of decimals in AutoTest result modal header
  • Add percent sign to checkpoint inputs
  • Merge “Info” and “Output” tabs in AutoTest result
  • Fix a bug where multiple submisions of a user could be shown if they had the exact same date.

  • August 14, 2019

    Version 1.9.0 (JungleJoy.1)

    You can now make sure students get near instant automatic feedback using our new extension of AutoTest called Continuous Feedback. To better present this feedback to students, we have redesigned the entire submission page to be more intuitive.

  • Rewrite submission page: make overview page obsolete and allow easier access to AutoTest results and feedback.
  • Add initial implementation for Continuous Feedback: with Continuous Feedback, students receive near instant automatic feedback on every submission they hand in.
  • Add Scala as plagiarism option.
  • Other improvements

    • Add all_whitespace option to IO test: add new option to IO tests to ignore all whitespace when comparing.
    • Update stop points to percentages: to better work together with possible disabled tests in Continuous Feedback, all stop or check points now work with percentages instead of points. (not backwards compatible!!)

    WARNING: Update is not backwards compatible. Previous stop / check points break if not updated to percentages.

  • Improve plagiarism export: fix non-escaped underscores and add option to output each listing on new page.
  • Change text on ‘delete files’ button when handing in.

  • July 9, 2019

    Version 1.7.0 (JungleJoy)

    You can now automatically grade code of students using our brand new feature called AutoTest. This enables teachers to easily create test configurations and students to automatically get insightful feedback.

    • AutoTest is CodeGrade’s new Automatic Grading Environment: with AutoTest you can automatically grade code of students and provide them with insightful feedback.

    Other improvements

  • Improve documentation: We are always pushing for the best documentation!
  • Increase the speed of multiple routes and pages.
  • Show error when negative grader weights are submitted.
  • Further improve the way we handle too large archives.

  • April 4, 2019

    Version 1.6.6 (Izanami.2)

    You can now set up detailed hand-in requirements for your students, create course snippets and the submission page is easier to and has more information (including the possibility to upload multiple files).

  • Add a new version of the ignore file: this makes it possible to set detail hand-in requirements for students.
  • Allow uploading multiple files:
  • students can now upload multiple files and archives.
  • Add course snippets:
  • course snippets are shared between all teachers and ta’s of a course.
  • Add Moodle support: full LTI integration with Moodle.
  • Add Blackboard support: full LTI integration with Blackboard.
  • Enhance documentation:
  • better documentation which includes user guides.
  • Rewrite submission list page header: more information, including a better visible rubric for students.
  • Other improvements

  • Edit snippets in modal: a better UI for adding snippets.
  • Add border when CodeGrade is loaded in an iframe in Canvas: this makes it more clear where CodeGrade begins and Canvas ends.
  • White background for sidebar when not in dark theme: this makes the light mode more beautiful.
  • Improve the way rubric maximum points are presented: added warnings and improved the UI, so the feature is not misused.
  • Make it possible to filter submissions by member of the group.
  • Increase the default value used for minimal similarity for jplag:
  • changed it from 25 to 50, making sure users don’t get too much cases by default.
  • Add multiple file uploader to documentation.
  • Update documentation to apply to new snippet management UI.
  • Improve filtering the course users:
  • increased the efficiency of the filtering.
  • Make sure duplicate filenames are detected and renamed.
  • Show when user has no snippets.
  • Set default deadline time to 23:59.
  • Fix new tab button position in sidebar.
  • Fix home page logo position.
  • Fix header text color in dark theme.
  • Fix file tree resizer z-index.
  • Rename “Old password” to “Current password”.

  • March 9, 2019

    Version 1.3.29 (Izanami.1)

    Along with many UI improvements and bug fixes, you can connect grading divisions between assignments and import rubrics from previous assignments.

  • Make it possible to connect assignment divisions: This makes it possible to have the same TAs grade the same students over the duration of the entire course.
  • Make it possible to import rubrics from other assignments.
  • Improve UI/UX for running linters: Logs of the linter runs on the individual submissions can now be viewed.
  • Enable use of multiple LTI providers: Soon we will be able to connect with Blackboard, Moodle, Brightspace, and others!
  • Make it possible to resize the filetree.
  • Other improvements

  • Make it impossible to list all users on the system by searching: All users on the system could be listed by almost anyone.
  • Confirm clearing a rubric: Instead of requiring the user to click the submit button for the grade to reset a rubric, the new submit button confirmation popover is used to confirm the action.
  • Rewrite SubmitButton component: Buttons will not change size anymore, and when an error occurs the button will wait for the user to close the message, instead of the error message disappearing after a few seconds, not giving the user a chance to read the entire thing.
  • Change sidebar login icon: The icon was ugly and its meaning not very obvious.
  • Add button to open in new tab in LTI: It was unclear that the logo in the sidebar would open CodeGrade in a new tab, so an extra button has been added.
  • Remove show password button: The button on the right side of the password inputs has been removed, as it is not very useful.
  • Show progress for plagiarism runs: Plagiarism runs could take quite some time but didn’t show the progress until they quit successfully or crashed.
  • Make it possible to search the homegrid.
  • Make it possible to download the plagiarism log.
  • Add warning on permission management page: When permissions are changed it shows a notification that the page must be reloaded for the changes to take effect.
  • Add a release notifier on the home grid: Whenever a new version of CodeGrade is installed, a notification will be shown on the home page with a link to this changelog.
  • Add formatted_deadline property to the course store for assignments.
  • Make sure permissions are removed on logout.
  • Add smaller logo on standalone pages.
  • Make sure only plagiarism runs which have finished can be viewed.
  • Make sure password reset works and logs in user.
  • Make sure error message is correct when empty archive is uploaded.
  • Make sure we don’t mutate store objects in the rubric editor.
  • Make sure order of submissions is stable.
  • Fix large amount of trailing zeros in the rubric viewer.
  • Prevent error in console when not logged in on page load.
  • Make sure 500 never occur because of __maybe_add_warning function.
  • Merge the loaders of the plagiarism runner.
  • Fix bug when reloading assignments on submission page.
  • Add link to about us page in the footer.
  • Clearer plagiarism similarity placeholder.
  • Reserve some extra special filenames.

  • February 7, 2019

    Version 1.2.19 (Izanami)

  • Group assignments: With this release we have added group assignments. It is possible to create groups, share them between assignments, and submit as a group. Groups can be given a nice name, that is easily remembered by the TA.
  • Add support for 7zip as archive format
  • Make late submissions stand out: Submissions that have been handed in after the deadline are highlighted in the submissions list.
  • Make it possible to display IPython notebooks: CodeGrade now renders handed in IPython notebooks in the web interface instead of showing a JSON blob. Additionally, markdown files are also rendered. Teachers can place comments in both types of files, as well as on image files now. This also adds a message when a file does not end in a newline character.
  • Other improvements

  • Show message when uploaded file is empty: When a file is empty,
  • it wouldn’t show up at all in the code viewer. This changes it to show a message, indicating that the file is empty.
  • Make the user selector more clear: The user selector now shows a magnifying glass, indicating that the user can type to search for users.
  • Use flatpickr datetime picker instead of native: Date/time inputs have been changed to use a date picker, so users of browsers besides Chromium can now also pleasantly select a date or time.
  • Change icon for user in the sidebar
  • Hide plagiarism providers when there is only one
  • Make sure it is possible to ignore single files: When a student submitted a single file instead of an archive, the student would not be warned that the file was ignored by the assignment’s CGignore file.
  • Make sure confirmations work correctly when submitFunction is used
  • Improve grade viewer: It was not possible to simultaneously submit a change to a rubric and override the grade calculated by the rubric.
  • Various front-end UI fixes
  • Various browser specific UI fixes

  • January 16, 2019

    Version 1.1.4 (HereBeMonsters.3)

  • Add PMD and Checkstyle linters: Addition of two Java linters: PMD and Checkstyle. For security reasons, some restrictions on config apply. Please see the documentation for more details
  • Add snippet completion and selection: This makes it easier for users to use and add snippets.
  • Other improvements

  • Fix a bug hiding indentation on lines with linter errors: When linting lines with errors didn’t show indentation.
  • Fix dark special holiday logo.
  • Make it impossible to upload too large archives: This makes it way harder for users to bypass our restrictions to upload very large archives.
  • Various internal fixes and improvements.
  • Don’t apply “mine” filter when assigning first submission to self: When no submission had an assignee and you assigned yourself it filtered all other submissions directly.
  • Make sure the grade is updated when rubric is.
  • Improve worst case performance in some plagiarism cases.

  • November 21, 2018

    Version 1.0.22 (HereBeMonsters.2)

  • Enforce minimal password strength:
    CodeGrade now enforces a minimum password strength for all users. A warning is also shown if a user logs in with a password that doesn’t adhere to the current requirements. We recommend all users to update their passwords if they receive such a warning.
  • Update course and assignment name on LTI launch: If the name of a course or assignment changes within your LMS this change is now copied in CodeGrade.
  • Do lti launch on grade result: When viewing new grades this will trigger an LTI launch. This means you will always be logged-in in CodeGrade with the current LMS user.
  • Show a loader instead of the delete button for plagiarism checks that are still running.
  • Other improvements

  • Only show register button when the feature is enabled.
  • Make it possible to create PDF manuals.
  • Fix plagiarism detail viewer:
  • Because of a misplaced bracket it was not possible to view plagiarism cases.
  • Always do an initial grade passback: This reverts a change in version 1.0.0 which caused Canvas to not remove CodeGrade assignments from the todo list of students. By doing a LTI passback when students hand-in a submission the assignment should be removed from their todo list.
  • Various small logging fixes.
  • Redact emails of other users: This is a minor breaking change. When serializing a user an email
    key was always sent including the email of every user. With this change the email key is only sent with the extended serialization of a user, and the value is changed to '<REDACTED>' for every user except the currently logged-in user. This prevents people in the same course from seeing each others email.
  • Improve speed of plagiarism route: By using the database in a more efficient way this route should become about twice as fast!
  • Various styling fixes.

  • November 12, 2018

    Version 1.0.7 (HereBeMonsters.1)

    • Support files encoded as ISO-8859-1 (latin1) in the frontend.

    Other improvements

  • Make it impossible to override the special files of the CodeGrade filesystem.
  • Various frontend fixes.
  • Improve documentation.

  • October 30, 2018

    Version 1.0.0 (HereBeMonsters)

    • Add Plagiarism checkers: It is now possible to check for plagiarism in CodeGrade. This enables privacy aware plagiarism checking. It is possible to use check against old CodeGrade assignment and upload base code and old submissions that are not in CodeGrade. For more information see our documentation.
    • Make it possible give grades higher than ten: Teachers can now indicate that students can receive a grader higher than 10 for an assignment, making it possible to create assignments with bonus points in CodeGrade. When using within LTI this requires a new LTI parameter.

    Minor updates

    • Change homepage to login screen:
    • The homepage has been improved to show all your courses and assignments at a glance when logged in.
    • Use new logos: This updates our logo to the newest and greatest version!
    • Allow .tar.xz archives to be uploaded: This further improves the flexibility CodeGrade gives students when handing in submissions.
    • Fix infinite loop overview mode: In some combinations of permissions loading the overview mode resulted in an infinite loader.
    • Add general feedback tab to overview mode: This further decreases the chance that students will miss any of their feedback.
    • Improve speed of diffing by using another library: Viewing the diff between two large files is a lot faster!
    • Remove the option to automatically generate keys: It is no longer possible to generate the secret_key or lti_secret_key
    • configuration options. Please update your config accordingly.
    • Rewrite snippets manager: This rewrite should make creating,
    • using, deleting and updating snippets faster and more reliable.
    • Drastically improve the experience of CodeGrade on mobile: It is now way easier to use CodeGrade on mobile.
    • Filter users in the user selector: When selecting users (when uploading for others, or adding to courses) only show users will be shown that can be selected.
    • Improve handling of LTI: A complete rewrite of LTI backend handling. This should improve the stability of passbacks by a lot. This also guarantees that the submission date in Canvas and CodeGrade will match exactly. This also adds a new convenience route /api/v1/lti/?lms=Canvas to get lti config for the given LMS
    • (Canvas only supported at the moment).
    • Add items to the sidebar conditionally: Depending on what page you are you will get extra items in the sidebar to help quick navigation. Currently plagiarism cases and submissions are added depending on the page.
    • Start caching submissions: Submissions are cached in the front-end so changing between the codeviewer and submissions list is now way quicker.
    • Ensure all rubric rows have a maximum amount of >= 0 points: It is no longer allowed to have rows in a rubric where the maximum possible score is < 0. If you needed this to create rubrics with bonus categories simply use the ‘Max points’ option in the rubric editor. All existing rubrics are not changed.

    Other improvements

  • Various small bugs in the sidebar
  • Add a minimum duration on the permission manager loaders: This makes it clearer that permissions are actually updated.
  • Throw an API error when a rubric row contains an empty header:
  • This is a backwards incompatible API change, however it doesn’t change anything for the frontend.
  • Fix broken matchFiles function: This fixes a bug that files changed inside a directory would not show up in the overview mode.
  • Fix horizontal overflow on codeviewer: The codeviewer would sometimes overflow creating a vertical scrollbar when displaying files containing a large amount of consecutive tabs.
  • Check if an assignment is loaded before getting its course: In some rare cases LTI launches would fail be cause assignments were not loaded correctly.
  • Add structured logging setup: This makes it easier to follow requests and debug issues.
  • Fix general feedback line wrapping: Giving long lines as general feedback should be displayed correctly to the user now.
  • Add manage assignment button to submission list: It is now possible to easily navigate to the manage assignment page from the submissions list.
  • Start using enum to store permissions in the backend: Most routes will be faster by this design change.
  • Improve filetree design: It is now easier to spot additions, changes and deletion directly in the filetree.
  • Add <noscript> tag: An error message will be displayed when javascript is disabled.
  • Improve speed of filetree operations: Loading large filetrees is now way quicker by using smarter data-structures.
  • Add health route: It is now possible to more easily monitor the health of your CodeGrade instance.
  • Fix fontSize & contextAmount on submission page: Sometimes the fields would show up empty, this shouldn’t happen anymore!
  • Replace submitted symlinks with actual files: When a student uploads an archive with symlinks the student is warned and all symlinks are replaced by files explaining that the original files were symlinks but that those are not supported by CodeGrade.
  • Fix grade history popover boundary: The grade history would sometimes show up outside the screen, but no more!
  • Make it impossible to submit empty archives: A error is shown when a student tries to submit an archive without files.
  • Show toast when local-storage doesn’t work: When a user has no local-storage available a warning is shown so the user knows that their experience might be sub-optimal.
  • Show author of general feedback and line comments: The author of all general feedback and line comments is displayed to the user. Only users with the can_see_assignee permission will see authors.
  • Justify description popover text: The text in descriptions is now justified and their popups will only show when the ‘i’ is clicked.
  • Only submit rubric items or normal grade: In some rare cases overriding rubrics would result in a race condition, resulting in wrong case.
  • Redesign the download popover on the submission page: This new design looks way better, but you tell us!
  • Only show overview mode when you have permission to see feedback: When you don’t have permission to see feedback the overview mode will never be shown.
  • Various other performance improvements: We always strive for the best performance possible, and again in this release we increased the performance of CodeGrade!
  • Make sure codeviewer is full width on medium pages: This makes it easier to review and display code on smaller screens.
  • Use custom font in toasted actions: It is now always possible to close toasts, even when your font cannot display ‘✖’.

  • June 4, 2018

    Version 0.23.21 (GodfriedMetDenBaard.2)

  • Make long rubric item headers show an ellipsis
  • Fix sidebar shadow with more than one submenu level
  • Make sure grade is updated when non incremental rubric is submitted
  • Only force overview mode when not in query parameters
  • Fix non-editable general feedback area
  • Make sure non top-level submenus are hidden
  • Other improvements


    April 25, 2018

    Version 0.23.13 (GodfriedMetDenBaard.1)

  • Actually make sure permissions are not deleted in migration
  • Make sure data is reloaded when switching course
  • Store submissions filter on any keyup, not just enter
  • Fix points width in non-editable rubric editor
  • Fix width of rubric items after 4th one
  • Fix (some of) the mess that is the rubric viewer
  • Fix tab borders in the dark theme
  • Use placeholder for the “new category” field in the rubric editor
  • Make sure general comment is updated after switching submission
  • Other improvements


    April 24, 2018

    Version 0.23.5 (GodfriedMetDenBaard)

  • Update readme and add new sections to it
  • Add linters feature
  • Add fixed max points feature
  • Use pylint instead of pyflake for linting
  • Make pytest run with multiple threads locally
  • Revamp entire frontend design
  • Make sure docs are published at docs.codegra.de
  • Other improvements


  • Make sure upload dialog is visible after deadline
  • Fix assignment state component
  • Make sure no persisted storage is used if it is not available
  • Fix the submission navbar navigation
  • Rename stupid to student in test data
  • Reduce the default permissions for the TA role
  • Fix bug with changing language after changing file
  • Fix thread safety problems caused by global objects
  • Fix problems with ignoring directories
  • Fix race condition in grade passback
  • Fix not catching errors caused by invalid files
  • Fix error when submitting for an LTI assignment without sourcedid

  • February 17, 2018

    Version 0.22.1 (FlipFloppedWhiteSocked.2)

    • Make sure upload dialog is visible after deadline

    Other improvements


    January 25, 2018

    Version 0.21.5 (FlipFloppedWhiteSocked.1)

    • Fix assignment state buttons for LTI assignment

    Other improvements


    January 24, 2018

    Version 0.21.4 (FlipFloppedWhiteSocked)

  • Make it possible to force reset of email when using LTI
  • Add done grading notification email
  • Make the way dividing and assigning works more intuitive
  • Email graders when their status is reset to not done
  • Add registration page
  • Split can manage course permission
  • Add autocomplete for adding students to a course
  • Add the first implementation of TA communication tools
  • Add the Ctrl+Enter keybinding on the .cg-ignore field
  • Make it possible to reset password even if old password was NULL.
  • Add permission descriptions
  • Other improvements

  • Fix the reload behaviour of snippets
  • Make sure very large rubrics do not overflow the interface
  • Increase the speed of multiple routes and pages
  • Make sure the deadline object is cloned before modification
  • Make sure existing users are added to course during BB-zip upload
  • Make sure assignment title is only updated after submitting
  • Make sure a zip archive always contains a top level directory
  • Make sure a grade is always between 0 and 10
  • Normalise API output
  • Communicate better that certain elements are clickable
  • Fix: “Files can be deleted even when they have comments associated with them”
  • Make sure grades are compared numerically if this is possible
  • Make blackboard zip regex handle more edge cases

  • November 23, 2017

    Version 0.16.9 (ExportHell)

  • Make it possible to give feedback without any grade
  • Make it possible to export username and user-id in csv
  • Add utils.formatGrade function to format grades with 2 decimals
  • Teacher revision interface
  • Add cgignore file
  • Add weight fields to submission divider
  • Courses actions buttons nicefied
  • Other improvements

  • Fix null in submission navbar
  • Fix various bugs with boolean parsing for sorting
  • Fix reset button on user info page
  • Make sure selected language is reseted if file is changed
  • Fix filter and order in submission navbar
  • Make sure ordering grades will work as expected
  • Fix makefile’s phony targets
  • Make sure that the default config uses the application factory
  • Fix concurrent grade passback
  • Define media queries in the mixins file
  • Make sure comments or linters do not stop submission deletion
  • Redo LTI launch if it fails because of a 401 error
  • Put course list popovers above buttons instead of at the sides
  • Fix rubric-points colour in the dark theme when overridden
  • Make sure submissions can be deleted even if there is a grade history
  • Make sure sorting tables works as expected
  • Make sure blackboard zips with multiple files are uploaded correctly

  • September 21, 2017

    Version 0.12.6 (DobbeleJava)

  • Add a dark theme to the website.
  • Revamping exporting all submissions by making it possible to include feedback and fixed a bug that prevented the name of the grader to show.
  • Other improvements

  • Fix bug that prevented downloading code of persons non latin-1 characters in their names.
  • Fix behaviour of next and previous buttons in the code viewer.
  • Fix handling of long lines in the code viewer.
  • Fix bug where a lot of grader change requests were done when changing filters on the submissions page.
  • Fix html injection bugs.
  • Make it possible to click on the login button again.
  • Make sure underlines in the code viewer are only done on code, not on the feedback.
  • Fix bootstrap Vue input fields not showing text.
  • Fix bug that resulted in a large white space between the header and the body in LTI when dark mode is enabled.
  • Fix bug that file tree viewer was way too long overlapping the footer.
  • Fix bug that resulted in that every grade attempt showed as a new submission in the LMS.
  • Fix bug that some floating point rubric items points resulted in very large descriptions overlapping the grade viewer.

  • September 12, 2017

    Version 0.10.0 (Columbus)

  • Make it possible for a user to reset its password
  • Allow to change font size and store it in vuex
  • Add a whitespace toggle button and language dropdown to the code viewer
  • Make it possible to disable incremental rubric submission
  • Add new course and assignment
  • Add global permission managing system
  • Other improvements

  • Fix jumping text when toggling directories in the file tree
  • Fix unicode errors while creating files.
  • Make rubric deletion also not save directly when incremental rubric submission is off
  • Fix various filesystem api bugs
  • Fix file-links in the code viewer
  • Fix undefined error on submission page
  • Fix a bug where files would be left open after submitting archive
  • Remove item description popover
  • Make sure global permissions are checked in the front- and back-end
  • Fix issue where error would disappear immediately after submitting with the keyboard
  • Packages Updates:

    • Upgrade bootstrap-vue


    September 4, 2017

    Version 0.3.2 (Belhamel)

  • Add delete submission feature
  • Add privacy notes
  • Update rubric selector and creator front end
  • Make it possible to upload files by dragging and dropping
  • Make it possible to disable automatic LTI role creation
  • Add codecov as coverage reporter
  • Change submission assignee from submissions list
  • Add documentation for how to run CodeGra.de
  • Add grade history
  • Sort rubric items in the rubric viewer
  • Improve site navigation
  • Make it possible to delete a grade
  • Make it possible to submit non integer grades
  • Autofocus username field on login page
  • Allow to update name and deadline of an assignment separately
  • Make it possible again to grade work
  • Make duplicate emails possible
  • Other improvements

  • Fix all missing or wrong quickrefs on api calls
  • Fix stat api route
  • Fix graders list of an assignment being loaded without correct permissions
  • Fix bug where only the second LTI launch would work
  • Fix front-end feature usage
  • Clear vuex cache on Ctrl+F5
  • Fix timezone issues on a LTI launch with deadline info
  • Make sure all test files are directories
  • Fix course link on assignment page
  • Fix downloading files from server
  • Fix unknown LTI roles
  • Fix undefined issues in LTI environments
  • Add test-generated files to gitignore
  • Fix seed_data and test_data paths
  • Create update api
  • Rewrite submission page
  • Fix bugs introduced by postgres
  • Add links to them fine shields
  • Package Updates

    • Remove pdfobject and pdf.js dependencies
    • Move bootstrap-vue dependency to own org
    • Add npm-shrinkwrap.json and delete yarn.lock
    • Change to JWT tokens

    July 21, 2017

    Version 0.2.0 (Alfa)

    Initial CodeGrade release

    Other improvements

    -

    See how CodeGrade can transform your courses today!