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

next (minor) release #903

Closed
UnixJunkie opened this issue Jul 31, 2019 · 16 comments
Closed

next (minor) release #903

UnixJunkie opened this issue Jul 31, 2019 · 16 comments
Assignees

Comments

@UnixJunkie
Copy link
Member

I am opening this to track it.

@UnixJunkie
Copy link
Member Author

It will be 2.10.0.

@UnixJunkie
Copy link
Member Author

I did one pass on the PRs.
Some old ones were merged.
Tests are passing on 4.06.1.

@UnixJunkie
Copy link
Member Author

UnixJunkie commented Jul 31, 2019

Compilation is OK on 3.12.1, though I cannot run the test suite in there (Error: Unbound module Q.Observable).

@UnixJunkie
Copy link
Member Author

Tests are OK for 4.08 now.

@UnixJunkie
Copy link
Member Author

I am stopping for today at the release marking step of howto/release.md.

@UnixJunkie UnixJunkie self-assigned this Jul 31, 2019
@gasche
Copy link
Member

gasche commented Jul 31, 2019

I'm in holidays now and not available to help with this (I don't think I will be able to go through the batteries notifications before I come back to work) -- thanks for doing this work!

I would like to test that we build with OCaml 4.09 sometime soon, and will maybe send some code updates along the way.

(Note: the compat-test is somewhat broken right now, I think, because we haven't backported some of the more recent stdlib improvements into Batteries. I don't think we can realistically hope to import all of them, so maybe we should give up on that test.)

@UnixJunkie
Copy link
Member Author

I had to introduce many fixes (mostly via preprocessing), but even compat-test is working.

@gasche
Copy link
Member

gasche commented Aug 1, 2019

Thanks! That's a lot of work, for compatibility both with newer and older releases.

The fixes you pushed enable new library functions only on newer OCaml releases, not on older releases. Usually what we dd instead was to try to support each function (when possible: they don't rely on a runtime capatibility) on older OCaml releases as well -- so that the Batteries interface is mostly the same for all OCaml versions. This work is now carried over by stdcompat.

There is something a bit delicate with copy-pasting large amount of .mli interfaces, as you have done:

  • in the function documentation, @since 4.08 should become @since NEXT_RELEASE and OCaml 4.08
  • there is the question of copyright; when the .mli interfaces are long and detailed (more than just a couple mostly-evident lines), you should mark clearly who the original author is. (In the commit message, ; ideally you can also do a git commit with the identity of the author, instead of yourself). Could you find the authors of the seq functions, the unsigned functions, and the {get,set}_int* functions, and attribute them properly?

@UnixJunkie
Copy link
Member Author

Thanks! That's a lot of work, for compatibility both with newer and older releases.

The fixes you pushed enable new library functions only on newer OCaml releases, not on older releases. Usually what we dd instead was to try to support each function (when possible: they don't rely on a runtime capatibility) on older OCaml releases as well -- so that the Batteries interface is mostly the same for all OCaml versions. This work is now carried over by stdcompat.

Yes, I am aware of what I did. I felt it is not perfect, but better than nothing (given that I surely don't have the manpower to implement all those just by myself).

@thierry-martinez
The only problem with stdcompat is that Thierry does not guarantee that there are only
tail-recursive functions in stdcompat, IIRC.
If it was not the case, I think we should depend on stdcompat and drop all code on our side which does what stdcompat does.
Or manage to compile two versions of stdcompat: one with non tail-rec code allowed, one where it is not (and of course, batteries would depend on the second one).

There is something a bit delicate with copy-pasting large amount of .mli interfaces, as you have done:

* in the function documentation, `@since 4.08` should become `@since NEXT_RELEASE and OCaml 4.08`

I will fix this for sure.

* there is the question of copyright; when the .mli interfaces are long and detailed (more than just a couple mostly-evident lines), you should mark clearly who the original author is. (In the commit message, ; ideally you can also do a git commit with the identity of the author, instead of yourself). Could you find the authors of the _seq functions, the unsigned_ functions, and the {get,set}_int* functions, and attribute them properly?

Can't we just modify the header of the incriminated mli files and add a line to mention
that part of those mli files were provided by Inria / come from the stdlib of Inria?
That would be way simpler.

@UnixJunkie
Copy link
Member Author

I still get this error on 4.07.1:

File "src/batteries_compattest.ml", line 105, characters 21-29:
Error: Signature mismatch:
       ...
       In module Array0:
       Modules do not match:
         (module BatBigarray.Array0)
       is not included in
         (module Bigarray.Array0)

I don't see any difference in the module signatures. Strange.

@UnixJunkie
Copy link
Member Author

UnixJunkie commented Aug 2, 2019

I will be in holidays soon, I will not move this further until I come back.

@XVilka
Copy link

XVilka commented Aug 8, 2019

Would be nice to migrate from num to Zarith too: #905

@gasche
Copy link
Member

gasche commented Aug 9, 2019

@UnixJunkie: would you like me to finish the release work, or would you prefer to do it yourself?

@UnixJunkie
Copy link
Member Author

maybe I can finish today

@UnixJunkie
Copy link
Member Author

I am testing if we are ready to tag:
ocaml/opam-repository#14695

@UnixJunkie
Copy link
Member Author

I am done with the release.
The ocamldoc was uploaded too.
I will announce on discuss.
Thanks to those who helped.

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

No branches or pull requests

3 participants