Version 1.9.0 (JungleJoy.1)¶
Released: August 14th, 2019
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 (#959): make overview page obsolete and allow easier access to AutoTest results and feedback.
- Add initial implementation for Continuous Feedback (#965): with Continuous Feedback, students receive near instant automatic feedback on every submission they hand in.
- Add Scala as plagiarism option (#972).
Add all_whitespace option to IO test (#969): add new option to IO tests to ignore all whitespace when comparing.
Update stop points to percentages (#978): 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!!)
Update #978 is not backwards compatible. Previous stop / check points break if not updated to percentages.
Version 1.7.0 (JungleJoy)¶
Released: July 09th, 2019
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 (#938): with AutoTest you can automatically grade code of students and provide them with insightful feedback.
Version 1.6.6 (Izanami.2)¶
Released: April 04th, 2019
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 (#889): this makes it possible to set detail hand-in requirements for students.
- Allow uploading multiple files (#888): students can now upload multiple files and archives.
- Add course snippets (#897): course snippets are shared between all teachers and ta’s of a course.
- Add Moodle support (#873): full LTI integration with Moodle.
- Add Blackboard support (#820): full LTI integration with Blackboard.
- Enhance documentation (#875): better documentation which includes user guides.
- Rewrite submission list page header (#885): more information, including a better visible rubric for students.
- Edit snippets in modal (#855): a better UI for adding snippets.
- Add border when CodeGrade is loaded in an iframe in Canvas (#883): this makes it more clear where CodeGrade begins and Canvas ends.
- White background for sidebar when not in dark theme (#865): this makes the light mode more beautiful.
- Improve the way rubric maximum points are presented (#895): added warnings and improved the UI, so the feature is not misused.
- Make it possible to filter submissions by member of the group (#840).
- Increase the default value used for minimal similarity for jplag (#894): changed it from 25 to 50, making sure users don’t get too much cases by default.
- Add multiple file uploader to documentation (#896).
- Update documentation to apply to new snippet management UI (#891).
- Improve filtering the course users (#893): increased the efficiency of the filtering.
- Make sure duplicate filenames are detected and renamed (#898).
- Show when user has no snippets (#890).
- Set default deadline time to 23:59 (#879).
- Fix new tab button position in sidebar (#867).
- Fix home page logo position (#851).
- Fix header text color in dark theme (#852).
- Fix file tree resizer z-index (#853).
- Rename “Old password” to “Current password” (#856).
Version 1.3.29 (Izanami.1)¶
Released: March 09th, 2019
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 (#794): 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 (#788).
- Improve UI/UX for running linters (#814): Logs of the linter runs on the individual submissions can now be viewed.
- Enable use of multiple LTI providers (#811): Soon we will be able to connect with Blackboard, Moodle, Brightspace, and others!
- Make it possible to resize the filetree (#804) (#834).
- Make it impossible to list all users on the system by searching (#798): All users on the system could be listed by almost anyone.
- Confirm clearing a rubric (#833): 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 (#790) (#828) (#806): 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 (#830): The icon was ugly and its meaning not very obvious.
- Add button to open in new tab in LTI (#826): 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 (#825): The button on the right side of the password inputs has been removed, as it is not very useful.
- Show progress for plagiarism runs (#813): 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 (#812).
- Make it possible to download the plagiarism log (#802).
- Add warning on permission management page (#801): 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 (#787): 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 (#835).
- Make sure permissions are removed on logout (#832).
- Add smaller logo on standalone pages (#831).
- Make sure only plagiarism runs which have finished can be viewed (#827).
- Make sure password reset works and logs in user (#829).
- Make sure error message is correct when empty archive is uploaded (#819).
- Make sure we don’t mutate store objects in the rubric editor (#818).
- Make sure order of submissions is stable (#816).
- Fix large amount of trailing zeros in the rubric viewer (#817).
- Prevent error in console when not logged in on page load (#809).
- Make sure 500 never occur because of
- Merge the loaders of the plagiarism runner (#805).
- Fix bug when reloading assignments on submission page (#799).
- Add link to about us page in the footer (#800).
- Clearer plagiarism similarity placeholder (#792).
- Reserve some extra special filenames (#793).
Version 1.2.19 (Izanami)¶
Released: Februari 07th, 2019
- Group assignments (#715): 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 (#738)
- Make late submissions stand out (#739): Submissions that have been handed in after the deadline are highlighted in the submissions list.
- Make it possible to display IPython notebooks (#742): 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.
- Show message when uploaded file is empty (#766): 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 (#752): 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 (#737): 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 (#747)
- Hide plagiarism providers when there is only one (#745)
- Make sure it is possible to ignore single files (#767): 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 (#748)
- Improve grade viewer (#764): 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 (#763)
- Various browser specific UI fixes (#768)
Version 1.1.4 (HereBeMonsters.3)¶
Released: January 16th, 2019
- Add PMD and Checkstyle linters (#734): 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 (#655): This makes it easier for users to use and add snippets.
- Fix a bug hiding indentation on lines with linter errors (#710): When linting lines with errors didn’t show indentation.
- Fix dark special holiday logo. (#711)
- Make it impossible to upload too large archives (#709): This makes it way harder for users to bypass our restrictions to upload very large archives.
- Various internal fixes and improvements. (#716)
- Don’t apply “mine” filter when assigning first submission to self (#717): 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. (#731)
- Improve worst case performance in some plagiarism cases. (#732)
Version 1.0.22 (HereBeMonsters.2)¶
Released: November 21st, 2018
- Enforce minimal password strength (#683) (#697): 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 (#682): 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 (#681): 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. (#700)
- Only show register button when the feature is enabled. (#679)
- Make it possible to create PDF manuals. (#687)
- Fix plagiarism detail viewer (#690): Because of a misplaced bracket it was not possible to view plagiarism cases.
- Always do an initial grade passback (#692): 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. (#693)
- Redact emails of other users
is a minor breaking change. When serializing a user an
'<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 (#694): By using the database in a more efficient way this route should become about twice as fast!
- Various styling fixes. (#701) (#703)
Version 1.0.7 (HereBeMonsters.1)¶
Released: November 12th, 2018
- Support files encoded as ISO-8859-1 (latin1) in the frontend. (#666)
Version 1.0.0 (HereBeMonsters)¶
Released: October 30th, 2018
Add Plagiarism checkers (#486) (#513) (#536) (#555) (#508) (#556) (#645) (#576): 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 (#500): 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.
You should add the following to the
<blti:custom>section of your canvas LTI config for CodeGrade:
<lticm:property name="custom_canvas_points_possible"> $Canvas.assignment.pointsPossible </lticm:property>
- Change homepage to login screen (#480) (#496) (#501) (#557) (#616): The homepage has been improved to show all your courses and assignments at a glance when logged in.
- Use new logos (#481) (#506): This updates our logo to the newest and greatest version!
- Allow .tar.xz archives to be uploaded (#492): This further improves the flexibility CodeGrade gives students when handing in submissions.
- Fix infinite loop overview mode (#477): In some combinations of permissions loading the overview mode resulted in an infinite loader.
- Add general feedback tab to overview mode (#523): This further decreases the chance that students will miss any of their feedback.
- Improve speed of diffing by using another library (#529): Viewing the diff between two large files is a lot faster!
- Remove the option to automatically generate keys (#554): It is no
longer possible to generate the
lti_secret_keyconfiguration options. Please update your config accordingly.
- Rewrite snippets manager (#551): This rewrite should make creating, using, deleting and updating snippets faster and more reliable.
- Drastically improve the experience of CodeGrade on mobile (#558): It is now way easier to use CodeGrade on mobile.
- Filter users in the user selector (#553): 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 (#561) (#588): 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=Canvasto get lti config for the given LMS (Canvas only supported at the moment).
- Add items to the sidebar conditionally (#578) (#580) (#600): 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 (#643) (#636): 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 (#579): 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.
- Various small bugs in the sidebar
- Add a minimum duration on the permission manager loaders (#521): This makes it clearer that permissions are actually updated.
- Throw an API error when a rubric row contains an empty header (#535): This is a backwards incompatible API change, however it doesn’t change anything for the frontend.
- Fix broken matchFiles function (#528) (#550): This fixes a bug that files changed inside a directory would not show up in the overview mode.
- Fix horizontal overflow on codeviewer (#518): 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 (#549): In some rare cases LTI launches would fail be cause assignments were not loaded correctly.
- Add structured logging setup (#546): This makes it easier to follow requests and debug issues.
- Fix general feedback line wrapping (#570): Giving long lines as general feedback should be displayed correctly to the user now.
- Add manage assignment button to submission list (#574): 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 (#571): Most routes will be faster by this design change.
- Improve filetree design (#599) (#611) (#587): It is now easier to spot additions, changes and deletion directly in the filetree.
- Improve speed of filetree operations (#623): Loading large filetrees is now way quicker by using smarter data-structures.
- Add health route (#593): It is now possible to more easily monitor the health of your CodeGrade instance.
- Fix fontSize & contextAmount on submission page (#633): Sometimes the fields would show up empty, this shouldn’t happen anymore!
- Replace submitted symlinks with actual files (#627): 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 (#625): The grade history would sometimes show up outside the screen, but no more!
- Make it impossible to submit empty archives (#622): A error is shown when a student tries to submit an archive without files.
- Show toast when local-storage doesn’t work (#607): 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 (#564) (#605): The
author of all general feedback and line comments is displayed to the
user. Only users with the
can_see_assigneepermission will see authors.
- Justify description popover text (#596): 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 (#589): In some rare cases overriding rubrics would result in a race condition, resulting in wrong case.
- Redesign the download popover on the submission page (#595): This new design looks way better, but you tell us!
- Only show overview mode when you have permission to see feedback (#563): When you don’t have permission to see feedback the overview mode will never be shown.
- Various other performance improvements (#566): 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 (#591): This makes it easier to review and display code on smaller screens.
- Use custom font in toasted actions (#614): It is now always possible to close toasts, even when your font cannot display ‘✖’.
Version 0.23.21 (GodfriedMetDenBaard.2)¶
Released: May 4th, 2018
- Make long rubric item headers show an ellipsis (#457)
- Fix sidebar shadow with more than one submenu level (#456)
- Make sure grade is updated when non incremental rubric is submitted (#450)
- Only force overview mode when not in query parameters (#455)
- Fix non-editable general feedback area (#452)
- Make sure non top-level submenus are hidden (#451)
Version 0.23.13 (GodfriedMetDenBaard.1)¶
Released: April 24th, 2018
- Actually make sure permissions are not deleted in migration (#431)
- Make sure data is reloaded when switching course (#432)
- Store submissions filter on any keyup, not just enter (#438)
- Fix points width in non-editable rubric editor (#434)
- Fix width of rubric items after 4th one (#435)
- Fix (some of) the mess that is the rubric viewer (#440)
- Fix tab borders in the dark theme (#439)
- Use placeholder for the “new category” field in the rubric editor (#441)
- Make sure general comment is updated after switching submission (#446)
Version 0.23.5 (GodfriedMetDenBaard)¶
Released: April 24th, 2018
- Update readme and add new sections to it (#391)
- Add linters feature (#387)
- Add fixed max points feature (#395)
- Use pylint instead of pyflake for linting (#402)
- Make pytest run with multiple threads locally (#403)
- Revamp entire frontend design (#404)
- Make sure docs are published at docs.codegra.de (#416)
- Make sure upload dialog is visible after deadline (#375)
- Fix assignment state component (#377)
- Make sure no persisted storage is used if it is not available (#374)
- Fix the submission navbar navigation (#376)
- Rename stupid to student in test data (#385)
- Reduce the default permissions for the TA role (#386)
- Fix bug with changing language after changing file (#389)
- Fix thread safety problems caused by global objects (#394)
- Fix problems with ignoring directories (#399)
- Fix race condition in grade passback (#409)
- Fix not catching errors caused by invalid files (#410)
- Fix error when submitting for an LTI assignment without sourcedid (#411)
- Upgrade NPM packages (#370)
Version 0.22.1 (FlipFloppedWhiteSocked.2)¶
Released: February 17th, 2018
- Make sure upload dialog is visible after deadline (#375)
Version 0.21.5 (FlipFloppedWhiteSocked.1)¶
Released: January 25th, 2018
- Fix assignment state buttons for LTI assignment (#367)
Version 0.21.4 (FlipFloppedWhiteSocked)¶
Released: January 24th, 2018
- Make it possible to force reset of email when using LTI (#347)
- Add done grading notification email (#346)
- Make the way dividing and assigning works more intuitive (#342)
- Email graders when their status is reset to not done (#339)
- Add registration page (#336)
- Split can manage course permission (#319)
- Add autocomplete for adding students to a course (#330)
- Add the first implementation of TA communication tools (#313)
- Add the Ctrl+Enter keybinding on the .cg-ignore field (#329)
- Make it possible to reset password even if old password was NULL. (#323)
- Add permission descriptions (#312)
- Fix the reload behaviour of snippets (#344)
- Make sure very large rubrics do not overflow the interface (#343)
- Increase the speed of multiple routes and pages (#332) (#341)
- Make sure the deadline object is cloned before modification (#333)
- Make sure existing users are added to course during BB-zip upload (#327)
- Make sure assignment title is only updated after submitting (#328)
- Make sure a zip archive always contains a top level directory (#324)
- Make sure a grade is always between 0 and 10 (#326)
- Normalise API output (#289)
- Communicate better that certain elements are clickable (#278)
- Fix: “Files can be deleted even when they have comments associated with them” (#307)
- Make sure grades are compared numerically if this is possible (#309)
- Make blackboard zip regex handle more edge cases (#280)
Version 0.16.9 (ExportHell)¶
Released: November 23rd, 2017
- Make it possible to give feedback without any grade (#282)
- Make it possible to export username and user-id in csv (#276)
- Add utils.formatGrade function to format grades with 2 decimals (#264)
- Teacher revision interface (#245)
- Add cgignore file (#255)
- Add weight fields to submission divider (#221)
- Courses actions buttons nicefied (#247)
- Fix null in submission navbar (#286)
- Fix various bugs with boolean parsing for sorting (#285)
- Fix reset button on user info page (#281)
- Make sure selected language is reseted if file is changed (#283)
- Fix filter and order in submission navbar (#268)
- Make sure ordering grades will work as expected (#267)
- Fix makefile’s phony targets (#252)
- Make sure that the default config uses the application factory (#253)
- Fix concurrent grade passback (#251)
- Define media queries in the mixins file (#248)
- Make sure comments or linters do not stop submission deletion (#244)
- Redo LTI launch if it fails because of a 401 error (#175)
- Put course list popovers above buttons instead of at the sides (#250)
- Fix rubric-points colour in the dark theme when overridden (#246)
- Make sure submissions can be deleted even if there is a grade history (#242)
- Make sure sorting tables works as expected (#240)
- Make sure blackboard zips with multiple files are uploaded correctly (#239)
Version 0.12.6 (DobbeleJava)¶
Released: September 21st, 2017
- 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.
- 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.
Version 0.10.0 (Columbus)¶
Released: September 12th, 2017
- Make it possible for a user to reset its password (#198)
- Allow to change font size and store it in vuex (#191)
- Add a whitespace toggle button and language dropdown to the code viewer (#95)
- Make it possible to disable incremental rubric submission (#184)
- Add new course and assignment (#186)
- Add global permission managing system (#176)
- Fix jumping text when toggling directories in the file tree (#199)
- Fix unicode errors while creating files. (#197)
- Make rubric deletion also not save directly when incremental rubric submission is off (#192)
- Fix various filesystem api bugs (#187)
- Fix file-links in the code viewer (#189)
- Fix undefined error on submission page (#190)
- Fix a bug where files would be left open after submitting archive (#188)
- Remove item description popover (#179)
- Make sure global permissions are checked in the front- and back-end (#177)
- Fix issue where error would disappear immediately after submitting with the keyboard (#180)
- Upgrade bootstrap-vue (#200)
Version 0.3.2 (Belhamel)¶
Released: September 4th, 2017
- Add delete submission feature (#166)
- Add privacy notes (#169)
- Update rubric selector and creator front end (#154)
- Make it possible to upload files by dragging and dropping (#164)
- Make it possible to disable automatic LTI role creation (#158)
- Add codecov as coverage reporter (#160)
- Change submission assignee from submissions list (#152)
- Add documentation for how to run CodeGra.de (#130)
- Add grade history (#149)
- Sort rubric items in the rubric viewer (#146)
- Improve site navigation (#145)
- Make it possible to delete a grade (#138)
- Make it possible to submit non integer grades (#137)
- Autofocus username field on login page (#133)
- Allow to update name and deadline of an assignment separately (#118)
- Make it possible again to grade work (#125)
- Make duplicate emails possible (#116)
- Fix all missing or wrong quickrefs on api calls (#172)
- Fix stat api route (#163)
- Fix graders list of an assignment being loaded without correct permissions (#157)
- Fix bug where only the second LTI launch would work (#151)
- Fix front-end feature usage (#144)
- Clear vuex cache on Ctrl+F5 (#134)
- Fix timezone issues on a LTI launch with deadline info (#127)
- Make sure all test files are directories (#132)
- Fix course link on assignment page (#126)
- Fix downloading files from server (#124)
- Fix unknown LTI roles (#121)
- Fix undefined issues in LTI environments (#123)
- Add test-generated files to gitignore (#119)
- Fix seed_data and test_data paths (#120)
- Create update api (#108)
- Rewrite submission page (#87)
- Fix bugs introduced by postgres (#109)
- Add links to them fine shields (#104)
Version 0.2.0 (Alfa)¶
Released: July 21st, 2017
Initial CodeGrade release