Releases: ZsgsDesign/NOJ
v0.17.4 Characinae Build Pack 4
This is a build version update for 0.17.0 Characinae.
Important: Rerun npm ci and npm run production after this upgrade.
Update Logs
- New: NOJ now supports
contest.exsitsmiddleware. - New: NOJ now uses Github markdown style to render messages.
- Fixed: A PHP7.4 compatibility bug causing contest details to return 500 when users don't have clearance.
- Improved: Remastered contest routers.
- Security:
encore/laravel-adminis now at1.8.16. - Security:
laravel/frameworkis now at8.69.0. - Security:
laravel/passportis now at10.2.0. - Security:
laravel/uiis now at3.3.1. - Security:
phpseclib/phpseclibis now at3.0.11. - Security:
symfony/consoleis now at5.3.10. - Security:
symfony/http-foundationis now at5.3.10. - Security:
symfony/http-kernelis now at5.3.10. - Security:
symfony/stringis now at5.3.10. - Security:
symfony/translationis now at5.3.10. - Security:
symfony/var-dumperis now at5.3.10.
v0.17.3 Characinae Build Pack 3
This is a build version update for 0.17.0 Characinae.
Important: All previous messages stored in the message table are not compatible with this update, please remove them manually.
Update Logs
- Compatibility: This update no longer supports old message format, please remove all old messages manually.
- New: NOJ now supports BABEL Extension CodeForces Gym.
- New: Add locale for official messages.
- New: Add environment variable
APP_OFFICIAL_SENDER, maintainers can now set this variable to a certain user id and make that user the sender of all official messages. - New: Messages now have levels like
info,success,warning,error, andquestion. - New: NOJ now notifies users when a submitted solution got accepted.
- New: NOJ now notifies users of new homework.
- New: NOJ now notifies users when the global rank in or out top 100.
- Deprecated: NOJ no longer uses old WKHTMLTOPDF configs.
- Deprecated: NOJ no longer uses using Solution model, using ProblemSolution model instead.
- Fixed: A PHP7.4 compatibility bug causing problem detail page returns 500 when problem not found.
- Fixed: A bug causing Admin Portal contest practice field unchangeable.
- Fixed: A bug causing blink does not generate pdf URLs.
- Fixed: A missing exception type bug causing exception catch invalid for NOJ BABEL.
- Fixed: A NOJ BABEL Extension CodeForces bug causing crawled problem missing some irregular fields.
- Fixed: A NOJ BABEL Extension CodeForces bug causing crawled problem with
divtags display wrongly. - Fixed: Typo (special thanks to @gtn1024).
- Improved: Remastered message box view.
- Security:
doctrine/inflectoris now at2.0.4. - Security:
facade/ignitionis now at2.16.0. - Security:
laravel/frameworkis now at8.68.1. - Security:
nanoidis now at3.1.30. - Security:
perfect-scrollbaris now at1.5.3. - Security:
postcssis now at8.3.11. - Security:
sassis now at1.43.4.
v0.17.2 Characinae Build Pack 2
This is a build version update for 0.17.0 Characinae.
Important: Rerun npm ci and composer install then npm run production.
Update Logs
- Compatibility: This update no longer uses wkhtmltopdf.
- New: NOJ now greatly improves PDF generation speed and quality by using 2 new approaches: CPDF or Blink with Skia.
- New: NOJ now uses
nesk/puphpeteer. - New: NOJ now uses
barryvdh/laravel-dompdf. - Deprecated: NOJ no longer uses old
LatexModelandLatexController. - Deprecated: Helper function
latex2imageis no longer supported. - Fixed: A bug causing PDF-generated Chinese character replaced by blank square.
- Fixed: A bug causing PDF generation exit without error.
- Fixed: Typo (only 1 this time).
- Improved: PDF generation now does not wait 20 seconds then proceed, it quits when complete.
- Security:
fonts-asset/dejavuis now at1.0.4. - Security:
fonts-asset/simsunis now at1.0.2. - Security:
graham-campbell/result-typeis now at1.0.3. - Security:
laravel/frameworkis now at8.65.0. - Security:
laravel/passportis now at10.1.4. - Security:
league/oauth2-serveris now at8.3.3. - Security:
mews/purifieris now at3.3.6. - Security:
phpdocumentor/reflection-docblockis now at5.3.0. - Security:
swiftmailer/swiftmaileris now at6.3.0.
v0.17.1 Characinae Build Pack 1
This is a build version update for 0.17.0 Characinae.
Important: Rerun scheduling for update site rank or run php artisan scheduling:updateSiteRank after this upgrade.
Update Logs
- Compatibility: The update site rank scheduling is now set at 1 am everyday.
- New: Add custom favicon, logo, and navicon support per #737 requests.
- New: Add
LikeScopetrait support. - New: Add dynamic rank feature, see #649.
- New: Add a series of artisan commands with prefix
scheduling, see #743. - Deprecated: NOJ no longer uses old
RankModelandSiteMapModel. - Fixed: A bug causing Admin Portal ajax pagination returns only the first 15 records, see #738.
- Fixed: A bug causing Admin Portal ajax pagination memory overflows on a large amount of data and queries slowly, see #739.
- Fixed: A bug causing PDF generator cannot locate dejaVu font.
- Fixed: A Symphony 5 compatibility bug causing anti-cheat malfunction, see #740.
- Fixed: A Symphony 5 compatibility bug causing PDF generation malfunction, see #741.
- Fixed: A
laravel-admin-ext/schedulingbug causing Admin Portal schedule running returns 419 on Windows platform, see laravel-admin-extensions/scheduling#20. - Fixed: Typo (only 1 this time).
- Improved: Optimized site rank calculation performance, see #649.
- Improved: Optimized sitemap performance to process a tremendous amount of data, see #742
- Improved: Use artisan commands for the scheduling system, see #743.
- Improved: Use dot-separated router for problem and status index.
- Security:
doctrine/dbalis now at2.13.4. - Security:
facade/ignitionis now at2.15.0. - Security:
laravel-admin-ext/log-vieweris now at1.0.4. - Security:
laravel-admin-ext/schedulingis now at1.2. - Security:
ramsey/collectionis now at1.2.2.
v0.17.0 Characinae
This is a minor version update. As mentioned in 0.5.0 logs, the new version system would merge the old major and minor version numbers into new minor version numbers, thus as the 17th minor version update since NOJ 0.1.0, this version would be numbered as major version 0, minor version 17, build pack 0 and patch number 0.
Important: Please follow NOJ Document's guide to upgrading your NOJ from v0.16.x to v0.17.0.
Summary: Update Laravel from 6.x to 8.5, update Laravel Mix to 6.0, requires WKHTMLPDF installed, uses new logo design, supports multiple log channels, supports group homework, supports strong password, supports C11, C++14 and C++17, supports new contest rejudge interface, supports new contest pdf generation interface, supports problem lazy load that increases site rank and group loading time, supports new material preloader, supports new sortable.js as a sortable method, supports Carbon as time processer, supports 2 fonts and 5 environment variables. This version update also includes lots of query optimizations, bug fixes, functionality & UI improvements, and security updates.
Update Logs
- Compatibility: NOJ now supports Laravel
8.5per #672 requests, the latest version of Laravel.8.xuses Symphony 4, which introduced a lot of changes to the base code. - Compatibility: NOJ now deprecates DomPDF and uses WKHTMLPDF instead.
- Compatibility: NOJ now uses
laxfor the same site verification. - Compatibility: NOJ now uses
Throwableinstead ofExceptionfor the error handler. - Compatibility: NOJ now uses Laravel Mix
6.0. - Compatibility: NOJ now separate log channels,
group_elo_updateandbabel_judge_syncare now stored in different files apart fromapp.log(which originally namedlaravel.log) and expired after 7 days. - New: Group homework support per #667 requests, this feature can be seen as the privatized lite version of NOJ Dojo.
- New: Add
createHomeworkAJAX API. - New: Use the third edition of the NOJ logo materialized design per #676 requests. While replacing all old logos, the third edition also modifies its dark and light flattened variant.
- New: Strong password support via environment variable
FUNC_STRONG_PASSWORD. - New: Add
C11language support per #663 requests (require NOJ JudgeServerv0.2.1or higher). - New: Add
C++14language support per #663 requests (require NOJ JudgeServerv0.2.1or higher). - New: Add
C++17language support per #663 requests (require NOJ JudgeServerv0.2.1or higher). - New: Add new problem selector component per #664 requests.
- New: Remastered contest rejudge feature per #673 requests. This function now opt-in for the beta test.
- New: Contest rejudge now supports custom verdict to rejudge.
- New: Remastered contest pdf generation feature by using WKHTMLPDF per #670 requests. This function now opt-in for the beta test and can only apply to contests in which all problems are self-hosted and you need to install WKHTMLPDF first then setup 2 environment variables,
WKHTML_PDF_BINARYandWKHTML_IMG_BINARY. - New: Contest pdf generation now supports math formula rendering.
- New: Contest pdf generation now supports removing after generation.
- New: Add site-wide
delayProblemLoadfunction for image lazy loading. - New: NOJ now uses the new material preloader component.
- New: NOJ now uses
sortable.jsfor sortable elements. - New: Add group left-to-right layout.
- New: Add
users_latest_submissionquery builder for problem model. - New: Add
problems_latest_submissionquery builder for user model. - New: NOJ now uses
lluminate\Support\Carbonand its aliasCarbonfor time processing. - New: Add
fonts-asset/simsunpackage, see #504. - New: Add
fonts-asset/dejavupackage, see #504. - New: Add
barryvdh/laravel-snappypackage. - New: Add
_declarationas an scss component. - New: Add
_mathjaxas an scss component. - New: Add
_refreshingas an scss component. - New: Add
defaultAvatarPNGasNOJVariablesin typescript. - New: PDF generation locale support for contest admin panel.
- New: Group homework locale support.
- Deprecated: Remove
EloquentModelalias for all eloquent models from now on, eloquent models will be referred to directly. - Deprecated: Remove
barryvdh/laravel-dompdfpackage. - Deprecated: Remove
jquery-uiandnoj-jquery-ui-sortablepackage. - Fixed: Duplicate
lodashpackage. - Fixed: A bug causing
babel:installto fail when making directories. - Fixed: A bug causing email verification hidden when social login is disabled.
- Fixed: A bug causing congratulation and other dialogs dismissable via ESC key while exit logic not triggered, see #722.
- Fixed: A bug causing math formula overflow, see #723.
- Fixed: A bug causing sample note blank, see #662.
- Fixed: A bug causing admin portal contest registant_type field mapped wrongly.
- Fixed: A bug causing SPJ uploading to fail.
- Fixed: Typo (we mean it).
- Improved: NOJ Dojo is now greatly optimized by using the new dojo status method, see #725.
- Improved: Optimized site rank page performance, see #726.
- Improved: Optimized group detail page performance, see #728.
- Improved: Multidomain config now does not take effect in the console environment.
- Improved: Eloquent contest model
getProblemSetmethod now optimized. - Improved: PDF generation advice page now uses pure latex formula.
- Improved: PDF generation cover page now uses the latest ICPC standard.
- Improved: Contest admin panel now separates section-panel to own blade template.
- Improved: Problem pagination is now configurable via environment variable
PAGINATION_PROBLEM_PER_PAGE. - Improved: NOJ now uses blade stack to replace outdated
additionJSyield. - Improved: NOJ ico file now bundles
16*16,48*48and256*256resolution. - Improved: NOJ now uses a new refreshing button design.
- Improved: NOJ now uses the new problem selector component for contest editing and arranging per #664 requests.
- Improved: Redesign
ajax/problemExistsAJAX API. - Improved: Group function block now has a color scheme.
- Improved: Group left-to-right layout now applies to all group detail-related pages.
- Improved: NOJ now uses the new left-to-right layout for the analysis page, see #719.
- Improved: Eloquent problem model
getProblemStatusmethod. - Improved: NOJ now uses the dot-separated router for problems.
- Improved: Google Recaptcha now defaults to false.
- Improved: Admin Portal now displays babel mirror as part of the environment info.
- Security:
beyondcode/laravel-dump-serveris now at1.7.0. - Security:
dragonmantank/cron-expressionis now at3.1.0. - Security:
encore/laravel-adminis now at1.8.14. - Security:
filp/whoopsis now at2.14.4. - Security:
graham-campbell/markdownis now at13.1.1. - Security:
intervention/imageis now at2.7.0. - Security:
laravel/frameworkis now at8.63.0. - Security:
laravel/passportis now at10.1.3. - Security:
laravel/socialiteis now at5.2.5. - Security:
laravel/tinkeris now at2.6.2. - Security:
laravelium/sitemapis now at8.0.1. - Security:
league/mime-type-detectionis now at1.8.0. - Security:
mockery/mockeryis now at1.4.4. - Security:
monolog/monologis now at2.3.5. - Security:
nesbot/carbonis now at2.53.1. - Security:
nikic/php-parseris now at4.13.0. - Security:
nunomaduro/collisionis now at5.10.0. - Security:
phar-io/manifestis now at2.0.3. - Security:
phar-io/versionis now at3.1.0. - Security:
phpdocumentor/type-resolveris now at1.5.1. - Security:
phpoption/phpoptionis now at1.8.0. - Security:
phpseclib/phpseclibis now at3.0.10. - Security:
phpspec/prophecyis now at1.14.0. - Security:
phpunit/php-code-coverageis now at9.2.7. - Security:
phpunit/php-file-iteratoris now at3.0.5. - Security:
phpunit/php-text-templateis now at2.0.4. - Security:
phpunit/php-timeris now at5.0.3. - Security:
phpunit/phpunitis now at9.5.10. - Security:
predis/predisis now at1.1.9. - Security:
psy/psyshis now at0.10.8. - Security:
ramsey/uuidis now at4.2.3. - Security:
sebastian/code-unit-reverse-lookupis now at2.0.3. - Security:
sebastian/comparatoris now at4.0.6. - Security:
sebastian/diffis now at4.0.4. - Security:
sebastian/environmentis now at5.1.3. - Security:
sebastian/exporteris now at4.0.3. - Security:
sebastian/global-stateis now at5.0.3. - Security:
sebastian/object-enumeratoris now at4.0.4. - Security:
sebastian/object-reflectoris now at2.0.4. - Security:
sebastian/recursion-contextis now at4.0.4. - Security:
sebastian/resource-operationsis now at3.0.3. - Security:
sebastian/versionis now at3.0.2. - Security:
symfony/consoleis now at5.3.7. - Security:
symfony/dom-crawleris now at5.3.7. - Security:
symfony/error-handleris now at5.3.7. - Security:
symfony/event-dispatcheris now at5.3.7. - Security:
symfony/event-dispatcher-contractsis now at2.4.0. - Security:
symfony/finderis now at5.3.7. - Security:
symfony/http-foundationis now at5.3.7. - Security:
symfony/http-kernelis now at5.3.9. - Security:
symfony/mimeis now at5.3.8. - Security:
symfony/processis now at5.3.7. - Security: `symfony/ro...
v0.16.0 Bryconinae
This is a minor version update. As mentioned in 0.5.0 logs, the new version system would merge the old major and minor version numbers into new minor version numbers, thus as the 16th minor version update since NOJ 0.1.0, this version would be numbered as major version 0, minor version 16, build pack 0 and patch number 0.
Important: Please follow NOJ Document's guide to upgrading your NOJ from v0.5.x to v0.16.0.
Summary: Requires at least Chrome 69 or equivalent to support NOJ 0.16.0, requires npm package management from now on, supports Webpack and Laravel Mix, supports native VSCode coding experiences by supporting 24 VSCode grammars, configs, and 27 themes, supports partial update without test cases in the problem admin portal, supports test case input/output CRLF conversion, supports filters for the problem of admin portal, support image zoom when inside editor, support dynamic content loading to increase performance on admin portal, supports Poppins font, support carousels and dojo pass record admin portal, supports large test cases import up to 200MB. This version update also includes lots of bug fixes, functionality & UI improvements, and security updates.
Update Logs
- Compatibility: NOJ now requires at least Chrome 69, Firefox 62, or Safari 13.1, NOJ recommends using modern browsers for better ECMA2015 and WebAssembly support.
- Compatibility: From now on, every NOJ upgrade requires running
npm ciandnpm run production, for more information, see NOJ Documentation. - Compatibility: From now on, NOJ will record all changes in
CHANGELOG.md. - New: NOJ now uses
npmto track most of the npm modules, originalcomposerpackagesnpm-asset/*are mostly removed but still remaining some. - New: NOJ now uses TypeScript and SCSS for static resources coding, some old JS and CSS codes still remaining.
- New: NOJ now uses
Webpackto compile TypeScript and SCSS resources and pack them into JS and CSS bundle per #636 requests. - New: NOJ now uses
Laravel Mixto interacting withWebpack, all static resources except MathJax and fonts are now packed into a bundle per #636 requests. - New: NOJ now supports
vscode-onigurumaandvscode-textmate. - New: NOJ now supports native VSCode coding experiences by supporting VSCode grammars and configs per #637 requests.
- New: NOJ Editor now supports grammars and configurations of the following 24 languages:
Plain Text,Python,C,C++,CUDA C++,C#,Kotlin,CSS,HTML,JavaScript,PHP,Java,Go,Haskell,Elixir,Ruby,Rust,Swift,Erlang,Racket,Scala,TypeScript,Visual BasicandPascal, acutal useable languages depend on each of the settings of the BABEL Extensions. - New: NOJ now supports Native VSCode Coding Experiences by supporting VSCode Themes per #637 requests.
- New: NOJ Editor now supports the following 27 themes:
Default,Default (White),Default (High Contrast),Abyss,Chrome DevTools,Dracula,GitHub,GitHub Dark,Kimbie Dark,Material Design,Monokai Pro,Monokai Classic,One Half Dark,One Half Light,Quiet Light,Red,Solarized Dark,Solarized Light,SynthWave 84,Tomorrow Night Blue,Tomorrow Night Bright,Tomorrow Night Eighties,Tomorrow Night,Tomorrow,Visual Studio,Visual Studio (White)andWinter is Coming. - New: Admin Portal no longer requires test cases uploaded when editing per #628 requests.
- New: NOJ now uses
laravel-admin-assetcomposer package type for admin assets. - New: NOJ now uses
noj-language-servicescomposer package type for NOJ language services supports per #637 requests. - New: NOJ now uses
NOJVariablesfor unknownfileSVG and consoleSVG support. - New: NOJ applies
CRLFtoLFconversion to input and output files of test cases. - New: NOJ now supports env
ADMIN_RECAPTCHAV2_TIMEOUTfor Google ReCaptcha v2 timeout settings. - New: NOJ now has a locale for Google ReCaptcha.
- New: Arrange contest dialog now have a proper warning when submit fields are empty.
- New: Add proper eloquent bindings for OJ and Problem models.
- New: Port error messages to
403and404errors view. - New: Add filters for the problem of Admin Portal per #630 requests.
- New: Add image zoom when inside editor per #651 requests.
- New: Add Admin Portal API for dynamic content loading.
- New: Admin Portal now doesn't load all problems or users when creating, editing, or filtering per #643 requests.
- New: Admin Portal now adds unit label for time and memory limit per #642 requests.
- New: Update
fonts-asset/MDIpackage, see #504. - New: Add
fonts-asset/poppinspackage, see #504. - New: NOJ now uses font
poppinson certain places of the website. - New: NOJ now has icons for general layout.
- New: Styles now have version number added.
- New: Carousel model now proceeds image link in
saving()stage. - New: Carousels support for Admin Portal.
- New: Carousels locale support for Admin Portal.
- New: Dojo Pass Records support for Admin Portal per #646 requests.
- New: Dojo Pass Records locale support for Admin Portal.
- New: NOJ now has a
tempdisk. - New: NOJ Admin Portal problem test cases import now supports large file upload up to
10GBper #639 requests, as a beta function it is now limited to200MB. - New: Add
njuptaaa/noj-large-file-uploadpackage. - New: Add
njuptaaa/laravel-admin-assetspackage. - New: Add
noj-language-service/configurationspackage. - New: Add
noj-language-service/grammarspackage. - New: Add
noj-language-service/themespackage. - New: Add
npm-asset/vscode-onigurumapackage. - Deprecated: NOJ no longer uses
vuein typescript. - Deprecated: NOJ no longer use
public/cssandpublic/jsfolders. - Deprecated: NOJ no longer uses
public/static/cssandpublic/static/jsfolders for static resources coding, they are now compiling only. - Deprecated: NOJ no longer use
js,json,cssandhtmlworkers. - Deprecated: NOJ Web Installer no longer supported.
- Deprecated: NOJ Editor no longer supports the
toggleHCThemecommand, now usehc-blackthemes instead. - Deprecated: NOJ no longer tracks the
public/vendorfolder, all static resources are now loaded via composer package management. - Deprecated: NOJ no longer tracks the
public/svgfolder since the new errors page doesn't require them anymore. - Deprecated: NOJ no longer uses
js.common.vscodeblade components, now usecomponents.vscodeblade components instead. - Deprecated: NOJ no longer uses
layouts.errorsblade template, now useerrors.generalblade template instead. - Deprecated: NOJ no longer uses
fileicon-svgnpm package andnpm-asset/fileicon-svgcomposer package, now usefont-asset/fileiconcomposer package instead. - Deprecated: Remove
njuptaaa/mosspackage. - Deprecated: NOJ Admin Portal no longer supports BABEL commands on browser interface, use actual console instead.
- Fixed: A bug causing rank table reversed.
- Fixed: A bug causing group cannot pick the same gcode when editing per #644 requests.
- Fixed: A bug causing error messages resolved while continuing to execute codes.
- Fixed: A bug causing group editing resulting in a duplicate
nullleader per #629 requests. - Fixed: A bug causing zip file with 0 to validate test cases proceed without error returned.
- Fixed: A bug causing zip file input test case file filter not working.
- Fixed: A bug causing exception pages Auth middleware returns
null. - Fixed: Typo (cliche isn't it).
- Fixed: A bug causing user profile return
500when encountered outbound network restrictions. - Fixed: NOJ no longer tracks
mix-manifest.json. - Fixed: A missing en locale in problem solution.
- Fixed: A misplaced en locale in the rank filter.
- Fixed: A potential divide by 0 bugs.
- Fixed: A Dojo Admin Portal filter bug.
- Improved: Admin Portal now uses a switch to replace select in problem
hidegird field and submissionssharegird field. - Improved: Contest problems now sort via
numberinstead ofncode. - Improved: User model now has
readable_nameattribute. - Improved: Carousel now sorted by
updated_at. - Improved: NOJ now uses
Auth::guard('web')to specify guard on certain conditions. - Improved: Highlight.js now uses
vsas the default light theme andatom-one-darkas the default dark theme. - Improved: Composer no longer sorts packages alphabetically, this helps when we want to prioritize
composer-installers-extender. - Improved: Admin Portal layout improved.
- Improved: NOJ now uses app name for Open Search Configs.
- Improved: NOJ now limits
pcodeandscodeformat. - Improved: Modify console info style.
- Security:
monaco-editoris now at0.25.2. - Security:
asundust/auth-captchais now at2.0.14. - Security:
guzzlehttp/guzzleis now at7.3.0. - Security:
highlight.jsis now at11.2.0. - Security:
axiosis now at0.21.1. - Security:
x3zvawq/noj_simplemdeis now at1.0.2. - Security:
zsgsdesign/noj-admin-clike-editoris now at1.0.0. - Security:
dompurifyis now at2.3.1. - Security:
markedis now at0.7.0.
v0.5.1 Aphyocharacinae Build Pack 1
This is a build version update for 0.5.0 Aphyocharacinae.
Update Logs
- Compatibility: NOJ now mandatorily requires PHP
^7.4& Composer 2. - New: Add
asundust/auth-captchapackage. - New: Add
tlsv1.3check forbabel:installcommand. - New: Add
--ignore-platform-reqssupport forbabel:updatecommand. - New: Add reverse proxy support via env
TRUSTED_PROXIESper #635 and Yangzhou High School request. - New: Add theme Material Design, Dominion Day and other 5 editor themes.
- New: NOJ now supports Google ReCaptcha v2 in Admin Portal due to security concerns per relevant government department requests.
- New: NOJ now uses new default dark/light theme
material-design-darkerandmaterial-design-lighter. - New: NOJ now supports env
APP_DEFAULT_EDITOR_THEME. - New: NOJ now respects the OJ status
0attribute. - New: Update
fonts-asset/deviconpackage, see #504. - New: Update
fonts-asset/langiconpackage provided by @ZsgsDesign, this package provides support for language icons that devicon doesn't have, see #504. - New: Add env
ADMIN_HTTPSexample. - Fixed: A bug caused temp accounts' email unverified.
- Fixed: A bug caused cookie value null.
- Fixed: A bug caused vscode editor loading time too long.
- Fixed: A WebKit rendering bug caused the border of the user avatar to deviate from its center on the rank page.
- Fixed: A styling bug in image hosting.
- Fixed: A potential XSS bug.
- Fixed: Typo (why always).
- Improved: Composer now prioritize
composer-installers-extender. - Improved: Modify site notice icon and text.
- Improved: NOJ now uses
url()to generate vscode paths. - Improved: Editor themes are now fixed to editor page in blade compile stage, see #631.
- Security:
guzzlehttp/guzzleis downgraded to6.5.5.
v0.5.0 Aphyocharacinae
This is a minor version update, since this version former build version updates would now ascend to minor version updates, and former patches indexed as a patch number together with hash would be referred to as build version updates.
Important: Please follow NOJ Document's guide to upgrading your NOJ from v0.4.2 to v0.5.0.
Summary: Add PHP 7.4 & NOJ_JudgeServer v0.2.1 compatibility support, compilers for Go, C#, Rust, Ruby, Haskell, Free Pascal, Text and Free Basic, OpenJudge NOI BABEL extension support, code plagiarism check beta support, scroll board beta support, compiler info highlight and dialog support, editor themes support, NOJ themes support, image hosting service support, user permissions support, system settings support, AAuth Socialite support, localization support and a brunch of Admin Portal functional update, dozens of new environment configurations and 3 helper functions. This version update also includes lots of bug fixes, functionality & UI improvements, and security updates.
Update Logs
- Compatibility: NOJ now supports
PHP 7.4per #614 requests. - Compatibility: NOJ now supports
NOJ_JudgeServer v0.2.1per #615 requests. - New: Add
Golanglanguage support (require NOJ JudgeServerv0.1.4or higher). - New: Add
C#language support (require NOJ JudgeServerv0.1.4or higher). - New: Add
Rustlanguage support (require NOJ JudgeServerv0.2.0or higher). - New: Add
Rubylanguage support (require NOJ JudgeServerv0.2.0or higher). - New: Add
Haskelllanguage support (require NOJ JudgeServerv0.2.0or higher). - New: Add
Free Pascallanguage support (require NOJ JudgeServerv0.2.0or higher). - New: Add
Textspecial language support (require NOJ JudgeServerv0.2.0or higher). - New: Add
Free Basiclanguage support (require NOJ JudgeServerv0.2.1or higher). - New: OpenJudge NOI Group BABEL extension support per #616 requests, see OpenJudge NOI.
- New: NOJ code plagiarism check beta support per #617 requests, only contests that are
officialandanticheatcan use this feature. - New: NOJ scroll board beta support per #618 requests, only contests that require registration, uses ICPC rules and has frozen time can use this feature, you can use ctrl+enter to auto-scroll or use enter to scroll manually.
- New: NOJ compiler info highlight and dialog support per #619 requests, you can now click CE records and view info in a more elegant way.
- New: NOJ editor themes support per #622 requests, you can now choose from a variety of totally 51 themes to customize your NOJ code editing experience.
- New: NOJ themes support per #623 requests, you can now choose from a variety of totally 15 themes, including the
classictheme that got removed prior to NOJv0.1.0update, to customize your NOJ experience, see NOJ Docs - Theme for more information. - New: NOJ tools image hosting service support per #625 requests, you can now use NOJ image hosting service to upload images.
- New: NOJ user permissions support per #626 requests, you can now use the command
php artisan manage:permissionto manage user permissions. - New: NOJ settings support per #500 requests, you can now use the database to manage some NOJ settings.
- New: Socialite support for AAuth per Yangzhou High School requests, see #624.
- New: BABEL command
php artisan babel:requirenow supports--ignore-platform-reqsoption. - New: Users without passwords can create new passwords on the settings page, see #588.
- New: Locale support for NOJ VSCode Editor.
- New: NOJ site registration control support via env
FUNC_ENABLE_REGISTERper #586 requests. - New: NOJ multi-domain support via env
APP_MULTI_DOMAINper #620 requests. - New: NOJ OAuth login temp account support via env
APP_ALLOW_OAUTH_TEMP_ACCOUNTper Yangzhou High School requests, see #588. - New: NOJ OAuth login switch support via env
GITHUB_ENABLEandAAUTH_ENABLEper #621 requests. - New: Dashboard system requirements check support for Admin Portal.
- New: Add
monaco-ace-tokenizerpackage that provides an advanced highlight for many languages, NOJ used it forHaskell. - New: Add
fonts-asset/socialiconpackage provided by @ZsgsDesign, this package provides support for Socialite icons that Material Design Icons doesn't have, see #504. - New: Add
fonts-asset/langiconpackage provided by @ZsgsDesign, this package provides support for language icons that devicon doesn't have, see #504. - New: Group management support for Admin Portal.
- New: Group locale support for Admin Portal.
- New: Contest management support for Admin Portal.
- New: Judge Agent management support for Admin Portal.
- New: Judge Agent locale support for Admin Portal.
- New: Judge Server management support for Admin Portal.
- New: Judge Server locale support for Admin Portal.
- New: Submission management support for Admin Portal.
- New: Dojo Tasks management support for Admin Portal.
- New: Dojo Tasks locale support for Admin Portal.
- New: Dojo Phase management support for Admin Portal.
- New: Dojo Phase locale support for Admin Portal.
- New: Settings support for Admin Portal.
- New: Settings locale support for Admin Portal.
- New: CodeTester support for Admin Portal.
- New: CodeTester locale support for Admin Portal.
- New: CodeTester API support for BABEL.
- New: User locale support for Admin Portal.
- New: Announcement management support for Admin Portal.
- New: Announcement locale support for Admin Portal.
- New: Sidebar locale for Admin Portal.
- New: Default error locale for NOJ.
- New: Scroll board locale for NOJ.
- New: Image hosting service locale for NOJ.
- New: OAuth locale for NOJ.
- New: Add
vscodeLocale()helper function. - New: Add
getTheme()helper function. - New: Add
setting()helper function. - Deprecated: MOSS code plagiarism check no longer supported.
- Deprecated: Remove unused
bootstrap-material-design.jsfiles. - Deprecated: Remove
GuzzleHttp\json_decodefunction usage. - Deprecated: Remove duplicated
App\Userand outdatedApp\Models\UserModel, NOJ now useApp\Models\Eloquent\Userinstead. - Deprecated: Remove outdated
App\Models\AnnouncementModel, NOJ now useApp\Models\Eloquent\Announcementinstead. - Deprecated: Remove outdated
App\Models\CarouselModel, NOJ now useApp\Models\Eloquent\Carouselinstead. - Fixed: Concurrency problem of virtual verdict syncing, see NOJ Docs - BABEL Judge Sync for more information.
- Fixed: A bug that causes NOJ JudgeServer to return Wrong Answer verdict.
- Fixed: A bug that makes the score of submissions within ACM rules 1 if the verdict is accepted.
- Fixed: A bug in the contest status list that will return all submissions when applied a problem ncode filter that doesn't exist in that match.
- Fixed: A bug that will redirect users to the dashboard after login instead of the home page or contest page (for contest account).
- Fixed: A load balancing bug that causes the load balancer to pick the highest judge server.
- Fixed: A bug that makes the system info page display no judge server when the noj babel package was installed with an ID that is not
1. - Fixed: A bug that makes scrollbar area transparent in language select menu, this bug is caused by a Chrome update.
- Fixed: A bug that messed up HTML structures in NOJ Admin Portal inside
x3zvawq/noj_simplemde. - Fixed: Typo (tons of).
- Fixed: A bug that let Eloquent ContestProblem Model disrespect frozen time.
- Fixed: An Admin Portal bug that causes solution uneditable.
- Fixed: An Admin Portal bug that causes group uncreatable.
- Fixed: A bug that causes frozen time inaccessible for ContestProblem Model.
- Fixed: A bug that causes verification email resends return
Method Not Allowed. - Fixed: A bug that makes NOJ only accepts 12 BABEL extensions/packages.
- Fixed: A bug that errors some `php artisan manage command default value.
- Fixed: A styling bug that causes the new langicon misplaced.
- Fixed: A bug that errors problem search.
- Fixed: A potential divide by 0 bug.
- Fixed: A typo in terms template.
- Fixed: PSR-4 autoload issues.
- Fixed: A typo that causes user contact info cannot update and display correctly.
- Fixed: A bug that only login users can access OAuth links.
- Improved: NOJ JudgeServer C compiler now compiling without
-staticoption. - Improved: NOJ JudgeServer PHP compiler now running with
-d error_reporting=0option. - Improved: NOJ JudgeServer C# compiler now running without unused environment variables, adjusting
C#compile max memory accordingly. - Improved: BABEL
installcommand now acceptsnew_codeas a valid compiler description key. - Improved: Removed the auto-refresh feature at the contest detail page that may potentially cause HTTP 500 errors at the beginning of a match.
- Improved: Removed a lot of the useless
consle.log()code. - Improved: Compiler list now ordered by display name, in earlier version, we arrange it simply by
coidand would be a bad choice when we have a dozen of compilers supported. - Improved: Update
fonts-asset/deviconpackage adding new language icons that NOJ needed. - Improved: Update
monaco-editorto0.23.0, the changes of platform detection algorithm forced us to abandon the#vscodeelement in editor view that we used befo...
v0.4.2 Pristobrycon
- New:
font-assetcomposer package management. - New: Admin Portal default solution filter.
- New: Option to disable backup.
- New: Customizable contact info.
- New: Customizable logo and desc.
- New: Locale files for error pages and NOJ Desktop pages.
- New: Problem Add in Admin Portal.
- New: Problem Add now supports
NOJ makrdown. - New: Problem Add now supports sample I/O addition.
- New: Problem Add now supports
infogeneration. - New: Problem Add now partically supports SPJ.
- New: Contest Create now supports status visibility options.
- New: NOJ Babel Extension now supports SPJ submission.
- Easter Egg: ?!
- Fixed: Problem add button.
- Fixed: Backup compatibility.
- Improved: Destop notification now has a limit.
- Improved: Avatar with new design.
- Improved: Add frontend util
createNOJMarkdownEditorand simplifiedSimpleMDEcreation. - Improved: Add Eloquent
PastebinModel and remove oldPastebinModel. - Improved: NOJ Babel Extension will now update status for unavailavle servers.
- Security:
albertofem/rsync-libis nowremoved.
v0.4.1 Catoprion
- New: NOJ API support.
- New: NOJ Desktop support.
- New: Multi-language support.
- Fixed: Contest sponsor badge no longer misplaced.
- Fixed: Database migration now make timestamp nullable.
- Fixed: Typo (no kidding, we really fixed some typo) .
- Improved: Applying Eloquent model for more occasions.
- Security:
laravel/frameworkis now at6.20.7. - Security:
composeris now at2.0.0. - Security:
symfony/http-kernelis now at4.4.17.