[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt
2024-12-17T13:05:46Z

[-- Attachment #1: Type: text/plain, Size: 13330 bytes --]

Hello

Here is the latest OCaml Weekly News, for the week of December 10 to 17,
2024.

Table of Contents
─────────────────

Opam repository archival, Phase 1: unavailable packages
Proposed Package Archiving Policy for the opam Repository
QCheck 0.23
OCaml's Code of Conduct team - rotation of one team member
qcheck-lin and qcheck-stm 0.2
Old CWN

Opam repository archival, Phase 1: unavailable packages
═══════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/opam-repository-archival-phase-1-unavailable-packages/15797/1>

Hannes Mehnert announced
────────────────────────

It is my pleasure to announce below the list of opam packages that
will move to the opam-repository-archive on January 1st 2025. In total
there are 4170 opam files scheduled for being moved within 561 unique
packages. This decreases the size of the opam-repository by roughly
12.7%.

This list contains all packages (a) marked as "available: false"
(which may have various reasons: security issue, source unavailable, …
- best to look into the "git log" for the specific package for the
reason), and (b) packages which cannot be installed due to missing
dependencies (with the packages mentioned in (a) being removed).

The second list of packages (b) has been automatically generated by
the [archive-opam] utility - developed purely for the opam-repository
archival project, and this utility may have bugs.

So, if you find a package in the list and you'd like to retain it in
the opam-repository, there are some options:

• (a) you can install it on your system (opam install <pkg>): this
means there's a bug in the archive-opam utility, please provide the
package name and version in the [opam-repository-archive Phase 1
PR], together with your opam version, OCaml version, and operating
system;
• (b) it is not installable: please figure out the reasoning (the
"Reasoning" may help you to find the root issue), and try to fix it
yourself - if you're unable to fix the root cause, please also
comment in the [opam-repository-archive Phase 1 PR] with the package
name and version.

If you've any questions, please don't hesitate to ask here or on
GitHub or via another communication channel.

You can help further on the archiving process:
• as mentioned in the [last announcement] please add the
[`x-maintenance-intent'] to your packages (a good choice for a lot
of packages is `x-maintenance-intent: [("latest")]' if you're
maintaining the latest version only) - this will be considered in
Phase 3 (March 1st 2025);
• if you are the author or maintainer of a package that is no longer
useful or maintained, you can as well mark your opam files in the
opam-repository with `flags: deprecated' (this will be taken into
account in Phase 3 - March 1st 2025);
• if you flagged your preliminary releases with `flags:
avoid-version', and they can now be removed (e.g. since a stable
version has been released), please open a pull request to replace
the `avoid-version' with `deprecated'.

Please note that the next Phase will be announced on January 15th with
all packages that are only installable with OCaml < 4.08 - archiving
is scheduled for February 1st.

To keep track of the announcements, please look at the
[opam-repository] tag.

You can reproduce these lists by running `opam-archive --unavailable
--dry-run --later-installable --pkg-all' using opam-archive at
666a3b3886acfbcf82a7d73134247ccaa605510a and opam-repository at
de786e28dbea73843ad5e5f0290a4e81fba39370.

A big thanks to the [OCaml Software Foundation] for funding the
opam-repository archival project.

[archive-opam] <https://github.com/hannesm/archive-opam>

[opam-repository-archive Phase 1 PR]
<https://github.com/ocaml/opam-repository-archive/pull/3>

[last announcement]
<https://discuss.ocaml.org/t/proposed-package-archiving-policy-for-the-opam-repository/15713#p-67031-call-to-action-4>

[`x-maintenance-intent']
<https://github.com/ocaml/opam-repository/blob/master/governance/policies/archiving.md#specification-of-the-x--fields-used-in-the-archiving-process>

[opam-repository] <https://discuss.ocaml.org/tag/opam-repository>

[OCaml Software Foundation] <https://ocaml-sf.org>

Packages scheduled for archiving (pkg-name: pkg-version[, pkg-version]*)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

/editor note/ Please find this long list in the post itself:
<https://discuss.ocaml.org/t/opam-repository-archival-phase-1-unavailable-packages/15797>

Proposed Package Archiving Policy for the opam Repository
═════════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/proposed-package-archiving-policy-for-the-opam-repository/15713/6>

Continuing this thread, Hannes Mehnert announced
────────────────────────────────────────────────

Hey,

just a quick update on the proposed roadmap. The changes are we don't
do `avoid-version' / `deprecated' flag cleanups in Phase 1. Instead,
we plan to remove packages with `deprecated' flag in Phase 3. Packages
with flag `avoid-version' will stay in opam-repository, but we reach
out to maintainers and authors whether their intention is to mark
these packages as deprecated (e.g. for alpha / beta releases and
release candidates).

Please find the updated roadmap below:

• December 1st 2024: announcement of this proposal
• December 15th 2024: announcement of the packages affected by Phase 1
(uninstallable packages (“available: false”, “opam admin check
–installability -i”)
• January 1st 2025: Phase 1 cutting point: packages are moved to
opam-repository-archive
• January 15th 2025: announcement of the packages affected by Phase 2
(OCaml lower bound 4.08)
• February 1st 2025: Phase 2 cutting point: packages are moved to
opam-repository-archive
• February 15th 2025: initial spring cleaning, announcement of
packages (based on maintenance-intent), and `flags: deprecated'
• March 1st 2025: spring cleaning cutting point: packages are moved to
opam-repository-archive
• Every quarter: repeat Phase 3
• Every year: reconsider Phase 2 with an increased OCaml lower bound

QCheck 0.23
═══════════

Archive: <https://discuss.ocaml.org/t/ann-qcheck-0-23/15790/1>

Jan Midtgaard announced
───────────────────────

I'm happy to announce the 0.23 release of `qcheck-core', `qcheck',
`qcheck-alcotest', and `qcheck-ounit', along with a 0.5 release of
`ppx_deriving_qcheck' :tada:

The biggest user-visible change is the addition of a [qcheck-core
overview documentation page] as well as clean-ups to the two module
pages to provide a better overview of the different available
features:
• [QCheck]
• [QCheck2]

In more detail the 0.23 release has made the following changes:
• Quote and escape in `Print.string' and `Print.char' in the `QCheck'
module, mirroring the `QCheck2.Print' module's behaviour. Also quote
and escape `Print.bytes' in both `QCheck' and `QCheck2'.
• Clean-up `QCheck' and `QCheck2' documentation pages
• Add `exponential' generator to `QCheck', `QCheck.Gen', and
`QCheck2.Gen'
• Add `Shrink.bool' and use it in `QCheck.bool'
• Remove unread `fun_gen' field from `QCheck2''s `fun_repr_tbl' type
thereby silencing a compiler warning

The `ppx_deriving_qcheck' 0.5 release contains a fix to derive
generators for mutually recursive data types involving records, thanks
to a contribution from @Kakadu

Happy testing! :smiley:

[qcheck-core overview documentation page]
<https://c-cube.github.io/qcheck/0.23/qcheck-core/index.html>

[QCheck]
<https://c-cube.github.io/qcheck/0.23/qcheck-core/QCheck/index.html>

[QCheck2]
<https://c-cube.github.io/qcheck/0.23/qcheck-core/QCheck2/index.html>

OCaml's Code of Conduct team - rotation of one team member
══════════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ocamls-code-of-conduct-team-rotation-of-one-team-member/15791/1>

Sonja Heinze announced
──────────────────────

A bit over two years ago, the OCaml community wrote and adopted a
[code of conduct] and put together a code of conduct team. The code of
conduct team is there for anyone in the community whenever they have
concerns about behavior that falls within the scope of the code of
conduct. It's currently made up of @c-cube, @Khady, @mseri, @rjbou
myself.

When putting together the code of conduct team, we mentioned that we'd
rotate the team from time to time to keep it dynamic. We're now
rotating one team member: I'm leaving the team and @shonfeder is
joining. Thanks a lot, @shonfeder, for taking on this responsibility!

Let's also use this opportunity to explain how the Code of Conduct
team operates: We generally do not step in on our own initiative, but
only when asked. That's to avoid having five community members acting
as a kind of "overarching community police". That said, we will step
in without being asked in extreme cases, but this has not happened so
far. We do moderate and/or act when people reach out to us. That does
happen from time to time.

By the way, you can adopt the Code of Conduct yourself on your OCaml
GitHub/GitLab repos by creating a `CODE_OF_CONDUCT.md`, containing the
[CODE_OF_CONDUCT_TEMPLATE] - full instructions [here]. So far, it is
already adopted on this discuss forum, the caml-list@inria.fr mailing
list, the OCaml IRC, [OCaml discord], physical events like OCaml
Workshop, and [these repositories]. Absolutely everyone is welcome to
adopt it on their OCaml repository as well. Adopting it doesn't have a
practical effect in a big majority of cases, but it always makes
contributors, particularly newcomers, feel more welcome.

Have a nice weekend everyone! Best, @pitag on behalf of the whole
Code of Conduct team

[code of conduct]
<https://github.com/ocaml/code-of-conduct/blob/main/CODE_OF_CONDUCT.md>

[CODE_OF_CONDUCT_TEMPLATE]
<https://github.com/ocaml/code-of-conduct/blob/main/CODE_OF_CONDUCT_TEMPLATE.md>

[here]
<https://github.com/ocaml/code-of-conduct?tab=readme-ov-file#adopting-this-code-of-conduct>

[OCaml discord] <https://discord.com/invite/cCYQbqN>

[these repositories]
<https://github.com/ocaml/code-of-conduct/blob/main/list-of-adopters.md>

qcheck-lin and qcheck-stm 0.2
═════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-qcheck-lin-and-qcheck-stm-0-2/12301/4>

Jan Midtgaard announced
───────────────────────

I just rolled a 0.5 release of `qcheck-lin', `qcheck-stm', and
`qcheck-multicoretests-util':
<https://github.com/ocaml-multicore/multicoretests/releases/tag/0.5>

The biggest news in the 0.5 release is the addition of
`Util.Pp.pp_fun_' for printing function values generated with
QCheck.To ensure quoted and escaped output for chars and strings, this
required bumping the `qcheck-core' lower bound to the freshly released
`qcheck-core.0.23'. This in turn, enabled a couple of other clean-ups:

• #492: Also use the new, upstreamed `Gen.exponential' combinator in
STM
• #491: Require `qcheck.0.23', simplify show functions by utilizing
it, and update expect outputs accordingly
• #486: Add `Util.Pp.pp_fun_' printer for generated `QCheck.fun_'
functions

Happy testing and happy holidays! :smiley: :christmas_tree:

Old CWN
═══════

If you happen to miss a CWN, you can [send me a message] and I'll mail
it to you, or go take a look at [the archive] or the [RSS feed of the
archives].

If you also wish to receive it every week by mail, you may subscribe
to the [caml-list].

[Alan Schmitt]

[send me a message] <mailto:alan.schmitt@polytechnique.org>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>

[Alan Schmitt] <https://alan.petitepomme.net/>

[-- Attachment #2: Type: text/html, Size: 23548 bytes --]