Releases: QingdaoU/OnlineJudge
OnlineJudge v1.6.1
文档部分内容已不符合现在版本,正在建立新版英文文档,小弟英文不太好还请不吝赐教
未来以文档为准,不会再更新 OnlineJudgeDeploy README
安装方式
新部署
https://opensource.qduoj.com/#/en/guide/quickstart
升级
https://opensource.qduoj.com/#/en/management/upgrade
改动
- [Judge Server] 修复一处内存泄漏弱点 QingdaoU/JudgeServer#59(感谢 @helsonxiao)
- [API Server] 更新依赖套件版本
- [API Server] 修复档案权限问题,使用与 judge server 相同的 UID 与 GID
English docuemnt is work in progress~
Installation
New deployment
https://opensource.qduoj.com/#/en/guide/quickstart
Upgrade
https://opensource.qduoj.com/#/en/management/upgrade
Changes
- [Judge Server] Fix a memory leak vulnerbility QingdaoU/JudgeServer#59 (thanks @helsonxiao)
- [API Server] Bump dependecy versions
- [API Server] Fix testcase permission, use same UID and GID in API server and judge server
OnlineJudge v1.6.0
母校使用青島 OJ 作為練習與測驗平台受益良多,希望能繼續更新,所以就自己跳下來做啦!
本次更新先把最重要的評測環境更新,不改動現有架構,讓使用者能好好發揮,不被語言版本限制。
這裡提前祝各位新年快樂,好好放假!
升级注意事项
本次更新需配合 JudgeServer v1.6.0 或更新的版本。
改动
- 更新基底映像档,从
python:3.8-alpine3.14
改为python:3.12-alpine
。 - 配合 JudgeServer 升级程序语言版本,调整编译与执行指令。
- 使用 GitHub Action 构建容器映像档。
Upgrade Notes
This update require JudgeServer v1.6.0 or newer.
Changes
- Upgrade base image from
python:3.8-alpine3.14
topython:3.12-alpine
. - Adjust compile and execute commands.
- Use GitHub Action to build container images.
时隔一年,发布小版本更新;修复安全漏洞,新增便捷安装流程
距离上一次 release 已经一年多了,master分支即将迎来第 1500 个 commit 。
更新内容
- 重要 修复 XSS 漏洞 (by @maple3142)和越权漏洞(by @BBBob )
- 重要 默认安装流程大幅简化,详见 https://github.com/QingdaoU/OnlineJudgeDeploy 同时镜像体积大幅减少,平均瘦身40%
- 修复部分逻辑bug(by @pvpnvz )
更新流程
受漏洞影响,请所有的用户及时更新
- 使用 OnlineJudgeDeploy 部署的用户,运行
docker-compose pull && docker-compose up -d
即可 - 使用老版本部署的用户,请先迁移到新部署方法。先停止老版本的docker容器的运行,然后部署一套新的,然后将老版本的数据文件夹逐一覆盖过来。
- 手动修改源码可以参考 #89
2.0 开发进度
- 主要是 @zema1 一个人在写,学业繁忙,进度比较慢,希望有更多的小伙伴能参与进来。
如有任何问题,可以提出 issue 或者查看 https://github.com/QingdaoU/OnlineJudge/wiki/QQ%E7%BE%A4 寻求帮助
1.3.5发布,修复部分小bug
由于个人原因,VJ功能继续推迟,表示抱歉。有感兴趣的可以先自己查看下代码 https://github.com/QingdaoU/OpenVJ
主要更新包括:
- CPU核数较少的时候,Celery进程数可能会少于判题服务器数量,造成无法跑满负荷
- 编译器允许使用的内存由默认2G修改为256M,避免编译器占用太多内存,并可以在配置文件中自定义。
- 修复公开比赛的逻辑问题
- 修复css权重和样式覆盖的问题
- zip文件中 避免存在文件链接,导致真实文件被打包
- 增加rsync跨服务器同步测试用例的功能
- 增加*开头的队伍不参与排名的规则
- 尝试修复判题服务器并发修改的问题
- 优化docker容器启动速度
- 增加查看指定的用户的所有提交的功能
如果您喜欢本项目,还可以扫描下面的微信二维码捐款。将用于服务器费用,并会公示所有捐款名单。
1.3版本发布,重点增加了SpecialJudge的功能
主要更新
- Special Judge,用于部分输出不确定的题目的判题,文档链接
- 测试数据下载
- 增加实际运行时间的显示和说明
- 增加用户排名功能,demo https://qduoj.com/rank/
- 提交列表页面可以设置只显示自己提交或所有人提交
还有部分bug修复。感谢提出建议的朋友们。
升级说明:
- 参考这里,必须更新docker镜像,否则无法运行。
- 用户排名功能是新增加的,需要在oj_web_server中运行
python manage.py inituserrank
初始化数据。
下一版本将发布 Virtual Judge的功能。
如果您有任何问题和建议,可以提出issue或者加入交流QQ群: https://github.com/QingdaoU/OnlineJudge/wiki/QQ群 。
1.2版本发布,重点解决Java内存限制的问题
- 创建了部分自动安装脚本,安装更加方便了
- 修复大量bug
- 重点解决了Java内存限制的问题
感谢提出issue和各种建议的朋友们。
1.1版本发布
1.0正式版发布
很高兴,经过7个多月断断续续的开发,青大 oj 终于在春节前发布第一个正式版本了。
第一个 commit 是在去年六月底,整个七月都是我一个人在写工程的模板,在探索一些技术细节,真正的合作开发是八月才开始的。1300多个 commit ,7次版本发布记录了我们的成长过程,大家都是在工作和学习之余抽空来开发和维护这个项目的。
本项目开发团队见 https://github.com/QingdaoU/OnlineJudge/wiki/dev-team 。开发过程中参考了很多开源项目,比如我的学长们开发的上一代的 oj,比如 hustoj ,EasySandbox 和 lrun 等等,同时得到了很多人的帮助,比如 CodeVS 的站长wph ,V2EX 的朋友们,反馈各种 bug 的实验室小伙伴们等等。在这里一并表示感谢。
这个版本从 Python 后端到判题沙箱都是我们自己实现的了。其中有很多的疑惑,有很多的坑,我们都慢慢的解决了。很多之前认为很难的部分,认真去研究的话,发现也可以很轻松就可以搞定,是非常有成就感的。
之所以要开发并开源这个项目,原意是带动学院实验室和 ACM 队的做实用项目的技术实力,不要整天去做一些自娱自乐、期末大作业水平的东西。同时能希望学院的老师也去使用这个系统,不用再在纸上写代码交作业。其余的学校也可以使用这个项目,不需要自己再去造轮子。
下一步的重点就是完善测试和作为一个单独项目的代码相似度检测服务,如果大家有相关的经验或者需求,都可以来评论说一下。