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 0.13.0 #19698

Merged

Conversation

proofbot
Copy link
Contributor

@proofbot proofbot commented Oct 5, 2021

This pull-request concerns:
-learn-ocaml.0.13.0: The learn-ocaml online platform (engine)
-learn-ocaml-client.0.13.0: The learn-ocaml client



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


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

@erikmd
Copy link
Contributor

erikmd commented Oct 6, 2021

I guess that many jobs of the CI run fail because of this (somewhat restrictive but natural) constraint:

"ocaml" {(>= "4.12") & (< "4.13~")}

@mseri
Copy link
Member

mseri commented Oct 6, 2021

The constraint is perfectly fine, all the failures are genuine:

#=== ERROR while compiling learn-ocaml.0.13.0 =================================#
# context              2.0.9 | linux/x86_64 | ocaml-base-compiler.4.12.1 | pinned(https://github.com/ocaml-sf/learn-ocaml/archive/v0.13.0.tar.gz)
# path                 ~/.opam/4.12/.opam-switch/build/learn-ocaml.0.13.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p learn-ocaml -j 31
# exit-code            1
# env-file             ~/.opam/log/learn-ocaml-27654-c743ac.env
# output-file          ~/.opam/log/learn-ocaml-27654-c743ac.out
### output ###
#  js_of_ocaml src/toplevel/learnocaml_toplevel_worker_main.bc.js
# Warning: Program not linked with -g, original variable names and locations not available.
# There are some missing primitives
# Dummy implementations (raising 'Failure' exception) will be used if they are not available at runtime.
# You can prevent the generation of dummy implementations with the commandline option '--disable genprim'
# Missing primitives:
#   caml_unix_map_file_bytecode
#   unix_accept
#   unix_access
#   unix_alarm
#   unix_bind
#   unix_chdir
#   unix_chmod
#   unix_chown
#   unix_chroot
#   unix_clear_close_on_exec
#   unix_clear_nonblock
#   unix_close
#   unix_closedir
#   unix_connect
#   unix_dup
#   unix_dup2
#   unix_environment
#   unix_environment_unsafe
#   unix_error_message
#   unix_execv
#   unix_execve
#   unix_execvp
#   unix_execvpe
#   unix_exit
#   unix_fchmod
#   unix_fchown
#   unix_fork
#   unix_fstat
#   unix_fstat_64
#   unix_fsync
#   unix_ftruncate
#   unix_ftruncate_64
#   unix_getaddrinfo
#   unix_getcwd
#   unix_getegid
#   unix_geteuid
#   unix_getgid
#   unix_getgrgid
#   unix_getgrnam
#   unix_getgroups
#   unix_gethostbyaddr
#   unix_gethostbyname
#   unix_gethostname
#   unix_getitimer
#   unix_getlogin
#   unix_getnameinfo
#   unix_getpeername
#   unix_getpid
#   unix_getppid
#   unix_getprotobyname
#   unix_getprotobynumber
#   unix_getpwnam
#   unix_getpwuid
#   unix_getservbyname
#   unix_getservbyport
#   unix_getsockname
#   unix_getsockopt
#   unix_getuid
#   unix_has_symlink
#   unix_inchannel_of_filedescr
#   unix_initgroups
#   unix_kill
#   unix_link
#   unix_listen
#   unix_lockf
#   unix_lseek
#   unix_lseek_64
#   unix_lstat
#   unix_lstat_64
#   unix_mkdir
#   unix_mkfifo
#   unix_nice
#   unix_open
#   unix_opendir
#   unix_outchannel_of_filedescr
#   unix_pipe
#   unix_putenv
#   unix_read
#   unix_readdir
#   unix_readlink
#   unix_recv
#   unix_recvfrom
#   unix_rename
#   unix_rewinddir
#   unix_rmdir
#   unix_select
#   unix_send
#   unix_sendto
#   unix_set_close_on_exec
#   unix_set_nonblock
#   unix_setgid
#   unix_setgroups
#   unix_setitimer
#   unix_setsid
#   unix_setsockopt
#   unix_setuid
#   unix_shutdown
#   unix_sigpending
#   unix_sigprocmask
#   unix_sigsuspend
#   unix_single_write
#   unix_sleep
#   unix_socket
#   unix_socketpair
#   unix_spawn
#   unix_stat
#   unix_stat_64
#   unix_string_of_inet_addr
#   unix_symlink
#   unix_tcdrain
#   unix_tcflow
#   unix_tcflush
#   unix_tcgetattr
#   unix_tcsendbreak
#   unix_tcsetattr
#   unix_times
#   unix_truncate
#   unix_truncate_64
#   unix_umask
#   unix_unlink
#   unix_utimes
#   unix_wait
#   unix_waitpid
#   unix_write
# File "src/utils/dune", line 24, characters 12-35:
# 24 |  (libraries ocaml-migrate-parsetree)
#                  ^^^^^^^^^^^^^^^^^^^^^^^
# Error: Library "ocaml-migrate-parsetree" not found.
# Hint: try:
#   dune external-lib-deps --missing --no-config --root . --ignore-promoted-rules --default-target @install --always-show-command-line --promote-install-files --release --only-packages learn-ocaml -p learn-ocaml --profile release -j 31 @install

You need to add ocaml-migrate-parsetree to the dependencies and maybe also check what is going on with js_of_ocaml.

@erikmd
Copy link
Contributor

erikmd commented Oct 6, 2021

Hi! thanks a lot, @mseri

So it happens this dependency error was not spotted by our CI because, as a matter of fact, we only test opam install . and opam-installing learn-ocaml-client.opam in isolation, but not learn-ocaml.opam in isolation 😅.

So I'll update this PR ASAP (I guess it's unneeded to do another release for that, we'll just fix the .opam files for opam-repository… and push a commit in learn-ocaml@master with a corresponding CI test.)

Regarding the js_of_ocaml issue, if the error that drew your attention was this(?):

# There are some missing primitives
# Dummy implementations (raising 'Failure' exception) will be used if they are not available at runtime.
# You can prevent the generation of dummy implementations with the commandline option '--disable genprim'
# Missing primitives:
#   caml_unix_map_file_bytecode

then AFAICT, these are only "normal" warnings, given that not all system calls have been implemented on Js side.

erikmd added a commit to pfitaxel/learn-ocaml that referenced this pull request Oct 9, 2021
* This should solve the error spotted in
  PR ocaml/opam-repository#19698
  (when learn-ocaml.0.13.0 is built in isolation).
@erikmd
Copy link
Contributor

erikmd commented Oct 9, 2021

Hi @mseri, this should be fixed now… so let's see what the CI will say 🙂

@mseri
Copy link
Member

mseri commented Oct 11, 2021

Thanks!

@mseri mseri merged commit 7f9a6d5 into ocaml:master Oct 11, 2021
@erikmd erikmd deleted the opam-publish-learn-ocaml-learn-ocaml-client.0.13.0 branch October 11, 2021 11:39
@erikmd
Copy link
Contributor

erikmd commented Oct 13, 2021

Dear opam-repository maintainers, Cc @mseri @kit-ty-kate (& @yurug FYI)

Just to be sure there is no deployment issue or so,
Would you know when learn-ocaml + learn-ocaml-client v0.13.0 will be available in opam default repo?
Because I monitored the name of the latest version in https://opam.ocaml.org/packages/learn-ocaml/ and it seems stalled…

Thanks for your time!
Kind regards, Erik

@mseri
Copy link
Member

mseri commented Oct 13, 2021

The service is currently broken, any package released since last Friday is not yet appearing. A workaround is to point opam to use the git remote as suggested here https://discuss.ocaml.org/t/ann-alcotest-1-5-0/8613/3

Sorry for the inconvenience, unfortunately this is going to take some time to be fixed, we are trying to resolve the problem as soon as we can

@erikmd
Copy link
Contributor

erikmd commented Oct 13, 2021

OK, no worries! thanks for your quick reply and for your suggestion!

(BTW, if you think many other users would ping you, maybe you could open an issue directly in this repo and "pin" it?
just my 2 cents anyway :)

@mseri
Copy link
Member

mseri commented Oct 13, 2021

It is a good point. If it is still broken tomorrow, I will make a post pinned on the discuss forum. Usually we can restart it nearly immediately, this time seems trickier

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

Successfully merging this pull request may close these issues.

None yet

3 participants