Skip to content

2.1 readiness#23

Merged
rjbou merged 12 commits intoocaml:masterfrom
dra27:2.1-readiness
Aug 10, 2020
Merged

2.1 readiness#23
rjbou merged 12 commits intoocaml:masterfrom
dra27:2.1-readiness

Conversation

@dra27
Copy link
Copy Markdown
Member

@dra27 dra27 commented May 22, 2020

A slew of housekeeping:

  • Update opam file to 2.0 format (and sync pertinent bits with opam-repsoitory)
  • Add a dune target to the Makefile
  • Couple of fixes to the API docs (two comments from CRLF preservation #11 which should have remained there)
  • Improved META file generation for the Makefile route
  • README and CHANGES
  • dune is added as a depopt so that Travis tests both the Makefile and the Dune overlays

I have used the version number 2.1, however we might want to consider whether that's correct - opam 2.0 should be updated to build with this (as it will allow opam-repository to benefit from the fix for strings containing newlines)

- DUNE_PROFILE=dev
matrix:
- OCAML_VERSION=4.02
- OCAML_VERSION=4.02 DUNE_PROFILE=release
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is necessary because the API documentation includes doc comments for polymorphic variant constructors which trigger an "unattached doc comment" warning in 4.02, which was fixed in 4.03.

@dra27 dra27 force-pushed the 2.1-readiness branch 2 times, most recently from 7cd0e56 to 1d1489e Compare May 26, 2020 08:34
@dra27
Copy link
Copy Markdown
Member Author

dra27 commented May 26, 2020

Oops - the src/META file was still committed, which I've updated.

Most of this is of course just text and formatting. Some detail on the actual changes.

Generating src/META

This stops duplication of the version number which is already in the opam file. This will always work because the opam file is included in the release tarball. The opam package supports installation on systems without the native code compiler, but technically we generate an invalid META file at this point, since it includes archive(native) = "opam-file-format.cmxa" even though it wasn't built. That gets fixed by compiling src/META after everything is built.

Just to show my local testing:

( make clean; make byte ) &>/dev/null; cat src/META
version = "2.1.0"
description = "Parser and printer for the opam file syntax"
archive(byte) = "opam-file-format.cma"

and

( make clean; make all ) &>/dev/null; cat src/META
version = "2.1.0"
description = "Parser and printer for the opam file syntax"
archive(byte) = "opam-file-format.cma"
archive(native) = "opam-file-format.cmxa"

Changes to the opam file

The remove field is gone, falling back to relying on opam's file tracking instead (that means that the downstream flags: light-uninstall could go when it's next released too). dune is now listed as a depopt so that opam-file-format builds with Dune if it's available and, more importantly, is rebuilt if Dune is added to a switch. This is important for Dune as it means that the dune-package file for opam-file-format gets generated and installed.

@rjbou rjbou merged commit 283f83b into ocaml:master Aug 10, 2020
@rjbou
Copy link
Copy Markdown
Contributor

rjbou commented Aug 10, 2020

Thanks! & sorry for dropped comments

@rjbou rjbou added this to the 2.1.0 milestone Aug 10, 2020
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.

2 participants