Skip to content

Releases: ocaml-sf/learn-ocaml

v1.0.0

13 Feb 13:01
4e8c999
Compare
Choose a tag to compare

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 to ppx_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) with gh (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

03 Nov 09:04
fbfa6a1
Compare
Choose a tag to compare

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

  • opam: learn-ocaml 0.x does not build with asak 0.4 (#570) (9176975)

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

  • *.yml: Move opam-publish in a separate workflow to enable testing (#571) (b84132e)

Documentation

  • opam: Cite Louis Gesbert in the Learn-OCaml maintainers team (c9a833b)

v0.15.0

23 Aug 14:34
c479765
Compare
Choose a tag to compare

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 with labels: (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

  • Fix date in README.md and Copyright headers (#517) (04bb39f)
  • Refactor ISSUE_TEMPLATEs to use GitHub issue forms (#509) (7205c39)

v0.14.1

06 Jan 23:30
acab77e
Compare
Choose a tag to compare

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

  • static-binaries: Fix building of static binaries on CI (#497) (bcb0ff7), closes #496

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

  • check-update-index.yml: Add a workflow to check index.md (24c56b3), closes #490
  • pin-artifacts.yml: Add build artifacts links within upstream commits status (#501) (e55cf61), closes #475
  • update-index.sh: Add a script to update docs/index.md (c538200), closes #490

learn-ocaml v0.14.0

09 Mar 17:32
4285dfc
Compare
Choose a tag to compare

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 (wwwlearn-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_TEMPLATEs & Add PULL_REQUEST_TEMPLATE (#453) (d511d58)
  • Improve {ISSUE,PULL_REQUEST}_TEMPLATEs, slightly (#464) (e3ff435)

Code Refactoring

Build System

  • docker: Refine the .dockerignore as a whitelist (#471) (41706ea)

Tests

  • Improve make detect-libs & Use it (Dockerfile.test-server) (7c81d7f)

Dependencies

  • opam: Add missing package (ocaml-migrate-parsetree v1.8.0) (38809a5)
  • opam: Bump ssl version (9d6da39)

learn-ocaml v0.13.1

16 Oct 01:40
fbf3125
Compare
Choose a tag to compare

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

  • build-and-test.yml: Add ocamlsf/learn-ocaml:0.13.0 in client test matrix (6c21d9c)
  • Ensure release-please triggers docker/build-push-action jobs (#443) (71c3590)
  • Ensure the CD-related workflows won't run on forks (#446) (6b8c49b)

learn-ocaml v0.13.0

05 Oct 22:31
875b72b
Compare
Choose a tag to compare

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 of ocaml/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

0.10

01 Feb 11:01
40ef7d0
Compare
Choose a tag to compare
0.10