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

[new release] lascar (0.6.0) #14827

Merged
merged 4 commits into from Sep 18, 2019
Merged

Conversation

jserot
Copy link
Contributor

@jserot jserot commented Sep 16, 2019

A library for manipulating Labeled Transition Systems in OCaml

CHANGES:

0.6.0 (Sep, 16, 2019)

* now requires ocaml >= 4.08

0.6-alpha (Aug, 18, 2019)

* removed dependency on camlp4 by rewriting the Fsm_expr, Fsm and ListExt parsers
* dunified build and install process

0.5 (Apr, 9, 2018)

* Library is now packed under Lascar module to prevent name clash

0.4 (Feb, 5, 2018)

* OPAMification
* Home page and documentation moved to separate web site
* Added INSTALL
* CHANGELOG now in .md format

0.3 (Dec, 14, 2017)

* Added functions [map_state], [map_attr] and [map_label]
* Added modules [Builtins.{Int,String,Bool}]. Rewrote some examples accordingly

0.2 (Nov 27, 2107)

* Added [ListExt.update_assoc]

0.1 (Nov 6, 2107)

* First public version

CHANGES:

## 0.6.0 (Sep, 16, 2019)
    * now requires ocaml >= 4.08

## 0.6-alpha (Aug, 18, 2019)
    * removed dependency on camlp4 by rewriting the Fsm_expr, Fsm and ListExt parsers
    * dunified build and install process

## 0.5 (Apr, 9, 2018)
	* Library is now packed under Lascar module to prevent name clash

## 0.4 (Feb, 5, 2018)
	* OPAMification
	* Home page and documentation moved to separate web site
	* Added INSTALL
	* CHANGELOG now in .md format

## 0.3 (Dec, 14, 2017)
	* Added functions [map_state], [map_attr] and [map_label]
	* Added modules [Builtins.{Int,String,Bool}]. Rewrote some examples accordingly

## 0.2 (Nov 27, 2107)
    * Added [ListExt.update_assoc]

## 0.1 (Nov 6, 2107)
    * First public version
@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Yes. The package now requires ocaml >= 4.08, as specified in the dune-project file.
I do not understand why the corresponding opam file, which has been generated with dune-release spam pkg from the dune-project file, has ocaml >= 4.06 in its dependency list.
Bug in dune-release ??

@camelus
Copy link
Contributor

camelus commented Sep 16, 2019

☀️ All lint checks passed c031b69
  • These packages passed lint tests: lascar.0.6.0

☀️ Installability check (+1)
  • new installable packages (1): lascar.0.6.0

@kit-ty-kate
Copy link
Member

I guessing that's because you have to regenerate the opam file. I don't know how it's done but I'm pretty sure it's done by dune and not by dune-release.

@kit-ty-kate
Copy link
Member

Could you also add the appropriate constraints to all the rfsm packages? They don't seem to be compatible.

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

The opam file has been regenerated by dune-release:

$ dune-release opam pkg
[-] Creating opam package description for lascar
[+] Wrote opam package description _build/lascar.0.6.0/opam

However, _build/lascar.0.6.0/opam contains:

opam-version: "2.0"
version: "0.6"
synopsis: "A library for manipulating Labeled Transition Systems in OCaml"
description: "A library for manipulating Labeled Transition Systems in OCaml"
maintainer: ["Jocelyn Sérot <jocelyn.serot@uca.fr>"]
authors: ["Jocelyn Sérot <jocelyn.serot@uca.fr>"]
license: "MIT"
homepage: "github.com/jserot/lascar"
doc: "http://jserot.github.io/lascar"
bug-reports: "jocelyn.serot@uca.fr"
depends: [
  "dune" {>= "1.11"}
  "ocaml" {>= "4.06"}
]
build: [
  ["dune" "subst"] {pinned}
  [
    "dune"
    "build"
    "-p"
    name
    "-j"
    jobs
    "@install"
    "@runtest" {with-test}
    "@doc" {with-doc}
  ]
]
dev-repo: "git+https://github.com/jserot/lascar.git"
url {
  src:
    "https://github.com/jserot/lascar/releases/download/0.6.0/lascar-0.6.0.tbz"
  checksum: [
    "sha256=343190b9c765655e787758db86a82818404dda18b4d2806283b4bde3ced91d26"
    "sha512=2b6534ac438d574228d127b3b4e2cfec17b8b95e95124297c8da351caf34de2bb4ec8a31028a1470ba7f42aa932257293d021140a5a1c2642d1a60a8123d00a0"
  ]
}

whereas ./dune-project says:

(lang dune 1.11)
(name lascar)
(source (github jserot/lascar))
(license MIT)
(authors "Jocelyn Sérot <jocelyn.serot@uca.fr>")
(maintainers "Jocelyn Sérot <jocelyn.serot@uca.fr>")
(bug_reports "jocelyn.serot@uca.fr")
(homepage "http://github.com/jserot/lascar")
(documentation "http://jserot.github.io/lascar")

(package
  (name lascar)
  (synopsis "A library for manipulating Labeled Transition Systems in OCaml")
  (description "A library for manipulating Labeled Transition Systems in OCaml")
  (depends
    (dune (>= 1.11))
    (ocaml (>= 4.08))))

(generate_opam_files true)

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Could you also add the appropriate constraints to all the rfsm packages? They don't seem to be compatible.

It is planned. But, since rfsm depends on lascar i need to have lascar correctly packaged before.

@kit-ty-kate
Copy link
Member

that's what I'm saying, dune-release doesn't generate the opam file, it only adds the corresponding url field to the file but it doesn't modify anything else. Dune itself is responsible for the generation

@kit-ty-kate
Copy link
Member

as for rfsm I'd rather see all the previous versions fixed before merging this PR as it could break people using it in between the merge of the two prs

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Ah ok. I understand now : dune-release has used the old opam file. I should have instructed dune to regenerate it before invoking it.. What's the correct way to do this ?

@kit-ty-kate
Copy link
Member

I have no idea. dune build doesn't work?

@kit-ty-kate
Copy link
Member

or try dune build @all if it doesn't work

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

dune build doesn't work?

No.

dune build @install does !

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

as for rfsm I'd rather see all the previous versions fixed before merging this PR as it could break people using it in between the merge of the two prs

What do you mean by fixing all the previous versions ?
Not the previous versions of lascar - since they were not 4.08 ready ?

@kit-ty-kate
Copy link
Member

as for rfsm I'd rather see all the previous versions fixed before merging this PR as it could break people using it in between the merge of the two prs

What do you mean by fixing all the previous versions ?
Not the previous versions of lascar - since they were not 4.08 ready ?

I meant all the versions of rfsm. Currently with this PR they all fail with something like:

# File "src/lib/static.ml", line 227, characters 26-33:
# 227 |        (ListExt.to_string Misc.id "," rdrs)
#                                 ^^^^^^^
# Error: Unbound value Misc.id

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Do you mean i should open a PR for the 4.08-ready version of rfsm ?
If yes, there's a circular dependency problem since this version will have lascar.0.6.0 in its dependency list !

@kit-ty-kate
Copy link
Member

Do you mean i should open a PR for the 4.08-ready version of rfsm ?

No, rfsm.1.0, 1.4.2, 1.5 and 1.6-alpha-3 will break with this PR. I meant these versions need to have their constraints on lascar fixed. If you really don't have time to do it, I'll do it.

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

You mean, for ex, that rfsm-1.5 should have lascar < 0.6 and ocaml < 4.08 in its constraints so that this version of lascar will not try to build it ?
It's not time i'm missing for handling this, just skill, i'm afraid ;-)

@kit-ty-kate
Copy link
Member

You mean, for ex, that rfsm-1.5 should have lascar < 0.6 and ocaml < 4.08 in its constraints so that this version of lascar will not try to build it ?

Yes, only lascar < 0.6 should suffice though, they work perfectly with OCaml 4.08 at the time.

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Yes, only lascar < 0.6 should suffice though, they work perfectly with OCaml 4.08 at the time.

??
They shouldn't since they use the Pervasive module which is deprecated since OCaml 4.08 IIUC

@kit-ty-kate
Copy link
Member

Yes, only lascar < 0.6 should suffice though, they work perfectly with OCaml 4.08 at the time.

??
They shouldn't since they use the Pervasive module which is deprecated since OCaml 4.08 IIUC

Deprecated yes, but it still compiles and works, nothing is different for its users. It will only require a constraint when those deprecation warnings will become proper errors in a future version of OCaml (probably in like 3 - 4 years, or something)

@jserot
Copy link
Contributor Author

jserot commented Sep 16, 2019

Dune seems to view it as an error. E.g.:

$ cat foo.ml       
let _ = Pervasives.compare 1 2
$ dune build ./foo.exe
File "foo.ml", line 1, characters 8-26:
1 | let _ = Pervasives.compare 1 2
            ^^^^^^^^^^^^^^^^^^
Error (alert deprecated): module Stdlib.Pervasives
Use Stdlib instead.
If you need to stay compatible with OCaml < 4.07, you can use the 
stdlib-shims library: https://github.com/ocaml/stdlib-shims

@jserot
Copy link
Contributor Author

jserot commented Sep 17, 2019

Btw, the next version of rfsm is now ready for PR submission. So maybe it's not necessary to fix the old versions ?

mseri added a commit to mseri/opam-repository that referenced this pull request Sep 17, 2019
see ocaml#14827

Signed-off-by: Marcello Seri <marcello.seri@gmail.com>
@mseri
Copy link
Member

mseri commented Sep 17, 2019

The bound on the old versions is needed independently of the new release. Recent versions of dune will fail only in dev mode, release builds will only show the warnings. For the rest, @kit-ty-kate is there any other action needed before merge?

@kit-ty-kate
Copy link
Member

Dune seems to view it as an error. E.g.:

$ cat foo.ml       
let _ = Pervasives.compare 1 2
$ dune build ./foo.exe
File "foo.ml", line 1, characters 8-26:
1 | let _ = Pervasives.compare 1 2
            ^^^^^^^^^^^^^^^^^^
Error (alert deprecated): module Stdlib.Pervasives
Use Stdlib instead.
If you need to stay compatible with OCaml < 4.07, you can use the 
stdlib-shims library: https://github.com/ocaml/stdlib-shims

This is the behaviour for development purposes (i.e. when you launch dune build by default), for opam packages, -p is used which also turns --profile=release which does not turn any warnings as errors. You can see here the current status of your packages: http://check.ocamllabs.io/?maintainers=Jocelyn+S%C3%A9rot

@kit-ty-kate
Copy link
Member

kit-ty-kate commented Sep 17, 2019

For the rest, @kit-ty-kate is there any other action needed before merge?

Yes there is still a change to be made here which hasn't been pushed: #14827 (comment) (the generated opam file is not up to date)

@kit-ty-kate
Copy link
Member

Btw, the next version of rfsm is now ready for PR submission. So maybe it's not necessary to fix the old versions ?

In your next submission be careful about the version number. The next release should be rfsm.1.6.0 and not rfsm.1.6 otherwise rfsm.1.6-alpha-3 will be given priority over 1.6 (see The "version ordering` section in the manual: https://opam.ocaml.org/doc/Manual.html#Package-Formulas)

@jserot
Copy link
Contributor Author

jserot commented Sep 17, 2019

In your next submission be careful about the version number. he next release should be rfsm.1.6.0 and not rfsm.1.6

Ok. Shall i start the PR now or do i have to wait for this one to be completed ?

@kit-ty-kate
Copy link
Member

Ok. Shall i start the PR now or do i have to wait for this one to be completed ?

This one should preferably be merged before. Could you push/publish the change discussed above in #14827 (comment)?

Co-Authored-By: Kate <kit.ty.kate@disroot.org>
@jserot
Copy link
Contributor Author

jserot commented Sep 18, 2019

This one should preferably be merged before. Could you push/publish the change discussed above in #14827 (comment)?

Done

@kit-ty-kate
Copy link
Member

Thanks!

@kit-ty-kate kit-ty-kate merged commit 8f6961f into ocaml:master Sep 18, 2019
@jserot
Copy link
Contributor Author

jserot commented Sep 18, 2019

Thanks to both of you !

andersfugmann pushed a commit to andersfugmann/opam-repository that referenced this pull request Sep 25, 2019
see ocaml#14827

Signed-off-by: Marcello Seri <marcello.seri@gmail.com>
andersfugmann pushed a commit to andersfugmann/opam-repository that referenced this pull request Oct 31, 2019
see ocaml#14827

Signed-off-by: Marcello Seri <marcello.seri@gmail.com>
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

4 participants