Releases: ocaml-sf/learn-ocaml
Releases · ocaml-sf/learn-ocaml
v1.0.0
1.0.0 (2024-02-12)
https://discuss.ocaml.org/t/learn-ocaml-1-0-is-out/14100
⚠ BREAKING CHANGES
- Implement pre-compilation of exercises and graders.
Prefix pre-compilation indicates the related commits below (sorted in chronological order). - Remove doc tutorial on
depend.txt
(it will need rewriting; relying on the new server engine).
Features
- pre-compilation: Implement pre-compilation of exercises and graders (b03bdfe)
- pre-compilation: Enable downloading for only the relevant artifacts (bc or js) (47d5a06)
- pre-compilation: Include Prelude/Prepare and shadow them (787840b)
- pre-compilation: ppx-metaquot: Add transformation introducing the
register_sampler
calls (3cd75f5) - pre-compilation: Restore compatibility with static deployment (f0e8346)
- pre-compilation: Add support for a
test_libs.txt
file in exercises (d22a788) - pre-compilation: Preprocessing and typing of samplers and printers (e768616)
- pre-compilation: Provide lib to compile grader helper libraries (3fc41ca)
- server: add a
--replace
option (82d9bea) - grader: Show a status line on what is being built (995a79d)
- CI: static-binaries: Deploy artifacts to GitHub Pages (01eae90^..9cf5486), closes #575
- pre-compilation: CLI: Add CLI option
learn-ocaml build --build-dir=[./_learn-ocaml-build]
to increase compatibility with existing workflows (#585) (6535692)
Bug Fixes
- grading: avoid failing on sampling arrays with unique elements (6a3ce07)
- pre-compilation: Fix a small race condition in builder (87ee902)
- pre-compilation: Properly type samplers (a97f813)
- pre-compilation: Avoid double-printing of internal grader errors (7422ca4)
- pre-compilation: Fix segfault on graders using samplers returning newly defined exceptions (c61a4d0)
- pre-compilation: Be more precise on the definition and lookup of samplers (7825a6b)
- pre-compilation: Fix printer registration in the grader (7d27523)
- pre-compilation: Do some cleanup & Fix
mutation_testing
test lib (c432909) - pre-compilation: Allow printer registration in prepare/prelude & Fix print callbacks' usage (1ec3af6)
- pre-compilation: dune: Fix dune dependency glitch on recompilation of
mutation_test
(32ad13e) - pre-compilation: docker: Include jsoo in Dockerfile, which is now needed (466e80c)
- pre-compilation: CI: Fix permission issues (fa2cd23)
- pre-compilation: Expose
prepare.ml
file (365cbb7) - pre-compilation: partition-view: Reactivate the feature (57ca10b)
- pre-compilation: CLI: Report JSON parse error origin and locations (ee57ac1)
- pre-compilation: grader:: Add a safeguard against grading workers going haywire (cb417d1)
- pre-compilation: grader: allow exercises to use vg, gg (ead187e)
- pre-compilation: partition-view: use newer asak compatible with precompilation (942edc2)
- pre-compilation: build: update lockfiles (f1abb7d)
- pre-compilation: CI: attempt to fix running the docker image on the corpus (b94f053)
- pre-compilation: CI: disable compat tests with 0.12, 0.13 (91a418e)
- pre-compilation: docker: install more libs in server image (6ce797f)
- pre-compilation: grader: avoid errors with too many open files on parallel builds (6583af4)
- server: Avoid using
lsof -Q
which is only available from lsof 4.95.0 (a242084), closes #580 - UI: Small CSS fix for exercise lists on small screens (3c9c123), closes #574
- server: Do exercise recompilation correctly with
--replace
(#584) (fe2a806), closes #583
Performance Improvements
- pre-compilation: Make
learn-ocaml build
parallel by default (eaad14c) - pre-compilation: Dump the cmis for grading only once (e63359e)
Code Refactoring
- pre-compilation: Get rid of the pseudo-cipher (2792faf)
- pre-compilation: Rename and generalise
recorder
toppx_autoregister
(99e913d) - pre-compilation: Generalize sampler typing (264db4c)
- pre-compilation: Disable debug flags (54851dd)
Build System
- pre-compilation: Make
make testrun
parallel (46631d8)
CI/CD
- release.yml: Replace
hub
(not installed anymore) withgh
(cad060f) - release.yml: Next release version will be 1.0.0 (6e9cd2b)
Documentation
- pre-compilation: translations: Update French translation (f028b75)
- pre-compilation: Remove doc tutorial on
depend.txt
(it will need rewriting) (9155145) - pre-compilation: Update doc for pre-compiled exercises +
test_libs.txt
(2c89d9e) - pre-compilation: Add/Update copyright headers (5b4e0ab)
- pre-compilation: Update index.md (f572990)
v0.16.0
0.16.0 (2023-11-03)
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-16-0/13361
Features
- UI: Add possibility to choose exercise display order (25780ba)
- UI: Rework of the exercise index (91f827b)
- UI: Add exercise sorting by focus skill (4f9766b)
Bug Fixes
- translations: Add missing fr.po.header (f7ffc6f), closes #555
- teacher_tab: Display (Open/Close)GloballyInconsistent exos and fix them (10c9fc3)
- teacher_tab: partly fix Open/Close handling w.r.t. Assignments (6c41457), closes #534 #558
- teacher_tab: Fix Open/Closed handling for update_exercise_assignments (49d82e4), closes #558
Code Refactoring
- translations: gettext: Use CLI option
--no-wrap
(ea4f2bc) - teacher_tab: Move critical code apart in update_exercise_assignments (bf6a931)
Dependencies
Tests
- Learnocaml_data: Add support for ppx_expect & ppx_inline_test (3a0ceb4)
- Learnocaml_data: Add ppx_expect tests for update_exercise_assignments (c18da2a)
- Learnocaml_data: Refactor ppx_expect tests to display more details in the trace (569d536)
CI/CD
Documentation
- opam: Cite Louis Gesbert in the Learn-OCaml maintainers team (c9a833b)
v0.15.0
0.15.0 (2023-08-23)
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-15-0/12892
Features
- partition-view: Add a selector to show (tokens, nicks, or anon IDs) (#540) (58b3644), closes #528
- teacher-tab: Add some inline documentation to the teacher tab (651456a)
- teacher-tab: Allow name input on teacher token creation (c341fca)
- teacher-tab: Allow partial CSV export (d5d82fc)
- teacher-tab: Display last synced student's draft (≠ graded code) (#548) (48583ba), closes #527
- teacher-tab: Highlight the "apply" button on unsaved changes (b20ce4e)
- js_utils: Add HTMLElement.title support (3a7c42e)
- ui: Add feedback button with internationalized tooltip (6b7b226), closes #525
- ui: better string input dialog (03669eb)
Bug Fixes
- i18n: fix escaping issue in i18n (e060517)
- partition-view: Use Ctrl-click or ⌘-click (instead of middle-click) (#516) (a6e4c5e), closes #500
- teacher-tab: show different status for open and closed assigned exercises (8c2c639)
- ui: Update fr translation (1b88a18)
- ui: Use proper URL fragments (
"#tab=…"
, not"#tab%3D…"
) (#557) (7f2b6cf), closes #539 - html: Fix
process_html_file
w.r.t.base_url
(84bc393) - vuln: percent-decode before path-splitting (#560) (1a0c2ef)
Code Refactoring
- partition-view: Move adhoc CSS code to
learnocaml_partition_view.css
(8d86f01)
CI/CD
- *.yml: Use actions/checkout@v3 (6cb8165)
- docker: Fix build-args syntax (docker/build-push-action@v4) (046087d)
- docker: Fix GHA input name: s/build_args/build-args/ (a31ff2b)
- docker: Replace
LABEL
Dockerfile commands withlabels:
(GHA) (#551) (ce8c006), closes #545 - docker: Use docker/build-push-action@v4 (#544) (69006f8)
- macos: Fix
brew upgrade
failure (a99c61b) - macos: Fix
brew upgrade
failure, bis (#518) (68221ba) - macos: Fix
brew upgrade
failure, ter (#536) (af83c70) - macos: Run the
macOS
workflow as well in the weekly CI build (84b7863)
Documentation
v0.14.1
0.14.1 (2023-01-06)
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-14-1/11133
Bug Fixes
- learnocaml_report.css: Display multiple spaces in code excerpts (#503) (c1054ab), closes #502
- web-app: Ask token (not secret) when opening exercise url (#489) (b91050e), closes #488
- web-app: Disable the Sync button at load time (1c068dd)
- web-app: Disable Sync after local save for a static deployment (dd69f3c)
- web-app: Remove automatic dialog (cf. Mechanism-2 of PR #372) (7ea03f1)
- web-app: Add Reload button that replaces Mechanism-2 of PR #372 (918b79e), closes #493 #505
- learnocaml_common.ml: Remove unused var (leftover of PR #489) (dc5c89c)
Documentation
- index.md: Update index.md (2fdc853)
- README.md: Update/Fix README.md (7174547)
- src/main/*: Document exit codes in man pages forall cmd/subcmd (c6ae2ca)
- src/main/*: Move server options to ad-hoc section in man pages (7c14d4c)
Build System
Dependencies
- opam: Bump ssl (0.5.10 -> 0.5.12) (#499) (9bc28a6), closes #498
- opam: Upgrade cmdliner version to 1.1.1 & Improve man pages (590034f)
CI/CD
learn-ocaml v0.14.0
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-14-0/9491
Features
- Build
learn-ocaml-www.zip
(learn-ocaml --contents-dir=www
) (#469) (e36d874) - Offer better protections against solution overwriting (#372) (5c12539), closes #316 #467
- Rename Try_OCaml→Tutorials, --enable-tryocaml→--enable-tutorials (#451) (9651160)
Bug Fixes
- Change
learn-ocaml-www.zip
inner dir (www
→learn-ocaml-www
) (#474) (a602ba2) - docker: Add missing libs for partition-view/… using compiler-libs (#459) (c2399b0), closes #438
- grader: Workaround issue #457 about the
Introspection
module (#461) (f5d66c6) - UI: Restore UX of the welcome message "Choose an activity." (#455) (9d5c7de)
Documentation
- Add
CONTRIBUTING.md
file (#452) (6e3fa0f) - Improve
ISSUE_TEMPLATE
s & AddPULL_REQUEST_TEMPLATE
(#453) (d511d58) - Improve
{ISSUE,PULL_REQUEST}_TEMPLATE
s, slightly (#464) (e3ff435)
Code Refactoring
Build System
Tests
- Improve
make detect-libs
& Use it (Dockerfile.test-server
) (7c81d7f)
Dependencies
learn-ocaml v0.13.1
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-13-0/8577/6
Bug Fixes
- *.opam: Make common deps constraints uniform & Add missing deps (26a50ef)
- API: Fix listing exercise status when the status list hasn't been initialized; Fix #314 (3c781cb)
- grader: Display negative numbers with mandatory parens; Fix #440 (35941b5)
- UI: Cleanup duplicate, inconsistent camel logos (03d871a)
- UI: Display Actions=teacher_menubar properly in responsive mode; Fix #444 (#450) (b6d44db)
- UI: Fix CSS bug regarding the loading animation (#445) (881982a)
- UI: Increase timeout during grading (3cb9dd1)
- UI: Update one fr translation (06a71ae)
Dependencies
- Fix version of dune package (w.r.t. that of dune-project file) (7c11083)
Documentation
- tests/README.md: Add hint for test case generation (19477a5)
Tests
- Add Dockefile.test-server to repro issue with learn-ocaml.opam (6d86ce6)
- Add test to repro issue #440 (07033c9)
CI/CD
learn-ocaml v0.13.0
https://discuss.ocaml.org/t/ann-release-of-ocaml-sf-learn-ocaml-0-13-0/8577
Features
- Port to OCaml 4.12 (#408) (34f04af)
- Relax the client/server coupling & Add support for API versioning (#426) (3113861)
- Make server version available to front-ends (
learn-ocaml-client
&learn-ocaml.el
) (#429) (d607281) - Generate static binaries directly from a GitHub Action (Linux, macOS) (#391) (ff9f091)
- Make the prelude available in description page (#393) (51ed717)
- Improve description entrypoint (#423) (a825d7e)
- Add a ppx facility to test expressions (#403) (526bc07)
- Make
find_binding
match annotated declarations (#425) (b277b38) - UI: Discourage redundant token creation from users (#410) (83630d5)
- UI: Move the toplevel buttons to the bottom-right (#409) (90066d0)
- UI: Reset the toplevel every time before evaluating code from the editor (#411) (65ce0c42)
- UI: Improve UX for clickable logo (#389) (c406219)
- Add support for exercise code reuse (#320) (42d8127)
- Add VG in toplevel and exercises (#352) (1add7ba)
Bug Fixes
- CI: Use OCaml 4.12.1 (d5ece9b)
- Blacklist jsoo version 3.10.0 (#420) (2696f86)
- .ci-macosx.sh: Avoid
{ set -e; c1 && c2; }
bug & Improve script (17a6703) - .ci-macosx.sh: Install openssl (0a30b4f)
- dune: Avoid ANSI char issues in
opam show … > VERSION
(#394) (b72fa6c) - UI: Fix the display of UTF-8 characters in the code editor (#412) (debb635)
- omd: Update the markdown-to-html transformation so links open a new tab (#392) (e0e3f2f)
- omd: Update
override
_url to avoid escape characters problems in URL (1e87190) - Fix static deployment (#356) (1332c6e)
- Fix & Document static deployment CLI support (#368) (3cc2533)
- Fix learn-ocaml-client regression after PR #320 (#397) (5b16c92)
- Better error message for
X-TOKEN
registration (#406) (e27415c) - CI: Add custom, curl-based
wait_for_it
(d910a6e) - Docker: Fix runtime error in Docker packaging (a697edf)
- CI: Bump alpine version & Use
ocaml/opam
instead ofocaml/opam2
(7766698) - CI: Workaround the static-bin-macos failure (#431) (064dafd)
- Use HTML5 Doctype (fe0fe8b)
Performance Improvements
- Remove redundant build step (2b3f25b)
- Learnocaml_main: Remove unneeded
Markup.pretty_print
(e5ce820)
Tests
- runtests.sh: Improve the script & Fix all shellcheck issues (5f4a6ac)
Continuous Integration
- CI/CD using GitHub Actions (#361) (bcecadd)
- GHA: Add a weekly build
https://crontab.guru/#0_8_*_*_6
(63903f2) - GHA: Enable cron build for
static-builds.yml
(6478085) - GHA: Deploy
ocamlsf/emacs-learn-ocaml-client:{master,$tags}
(#433) (dce8f00) - GHA: Ensure the uploaded artifacts are single
.tar.gz
files (#432) (adbb063) - release.yml: Add a (3 jobs)-based GHA using release-please (#434) (7e389ef)
Documentation
- Document student answers classification (#421) (9b1a551)
- Fix docs issue #399 and unify the markdown syntax (276dac9)
- Make accessible the documentation generated by
odoc
(#404) (e10975f) - docs/index.md: Update docker badges & ocaml-sf URL (7fce8a1)
- readme: s/HTTP/HTTPS/ (193df99)
- UI: Improve text details (#428) (017f049)
Miscellaneous Chores
- release 0.13.0 (f6b3b26)