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

Migrate to OCaml 4.12.0 and Dune build system, add GitHub workflow with tests #85

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

andreyz4k
Copy link

@andreyz4k andreyz4k commented Sep 3, 2021

This PR adds several features:

  1. Migrate to OCaml 4.12.0, the main changes are caused by the fact that Core package developers removed polymorphic comparisons, so I've replaced them with strictly typed ones where possible. Polymorphic comparisons are used in only a few places where it's not possible.
  2. Migrate to the Dune build system, the main changes are about fixing warnings and linter errors, because they are treated as errors by default.
  3. Add a GitHub workflow that runs on every commit, it tries to build binaries and runs small training rounds on several domains to test if they work. I took the commands from the existing files with examples/integration tests. Also, if the new binaries differ from those in the repo, they are automatically committed in a separate commit. This makes sure that they are up to date with the source code and allows using any OS for the development, the binaries in the repo will be always for Linux-x64.

Caveats:

  1. There are several .ml source files that are not part of any binary mentioned in the dune file, so I've fixed only linter errors in them, without updating them to the last OCaml version.
  2. regexes test is not working (in master as well), so it is disabled in the workflow. Unfortunately, there is no allow-fail option in GitHub Actions at the moment.
  3. Dreaming in logo tests sometimes fails on empty json, probably because of a crash, reproduces on master as well, the error is muted
  4. I haven't tested Singularity build, but I suspect it should work fine with the updated config
  5. There is a step that runs OCaml unit tests, but none are configured at the moment

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

Successfully merging this pull request may close these issues.

1 participant