Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2 packages from ocaml-sf/learn-ocaml at 1.0.0 #25251

Merged
merged 5 commits into from
Feb 14, 2024

Conversation

proofbot
Copy link
Contributor

This pull-request concerns:

  • learn-ocaml.1.0.0: The learn-ocaml online platform (engine)
  • learn-ocaml-client.1.0.0: The learn-ocaml client


Cc @erikmd @yurug @AltGr FYI

1.0.0 (2024-02-12)

⚠ 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)

🐫 Pull-request generated by opam-publish v2.3.0

@erikmd
Copy link
Contributor

erikmd commented Feb 13, 2024

@erikmd
Copy link
Contributor

erikmd commented Feb 14, 2024

OK, thanks @mseri !

(and of course, we'll report back these patches in learn-ocaml master as soon as the PR is merged)

@mseri mseri merged commit 444cd5f into ocaml:master Feb 14, 2024
2 checks passed
@AltGr
Copy link
Member

AltGr commented Feb 15, 2024

FWIW, adding a dependency to result {>= "1.5"} is generally a better idea than adding the converse conflict (if we do have that dependency transitively anyay, but that seems to be the case ?)
It's globally the same but conflicts are harder to handle by the opam solvers and may lead to harder to understand conflict messages.

@erikmd
Copy link
Contributor

erikmd commented Feb 15, 2024

@AltGr OK thanks for your precision!!

Do you want that I open a follow-up PR in this repo to replace the result conflict?

@erikmd erikmd deleted the opam-publish-learn-ocaml.1.0.0 branch February 15, 2024 17:23
@mseri
Copy link
Member

mseri commented Feb 16, 2024

The conflict is pervasive, appears in very many packages, we also tried to get rid of it a number of times but I did not know that it was problematic for the solver: #24263

@AltGr
Copy link
Member

AltGr commented Feb 16, 2024

Alright that was just my 2¢, if it's a known issue and the solution works I don't want to mingle :)

@mseri
Copy link
Member

mseri commented Feb 19, 2024

I hope my comment did not sound dismissive, I had the opposite intention: I appreciated your comment a lot, I was not aware of the extra burden on the solver and I think it is very relevant in the discussion I linked above, even more so since it is pervasive. Now it is linked there so we can refer to this the next time is discussed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants