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: 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 ): 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] [opam-repository-archive Phase 1 PR] [last announcement] [`x-maintenance-intent'] [opam-repository] [OCaml Software Foundation] Packages scheduled for archiving (pkg-name: pkg-version[, pkg-version]*) ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ /editor note/ Please find this long list in the post itself: Proposed Package Archiving Policy for the opam Repository ═════════════════════════════════════════════════════════ Archive: 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: 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] [QCheck] [QCheck2] OCaml's Code of Conduct team - rotation of one team member ══════════════════════════════════════════════════════════ Archive: 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] [CODE_OF_CONDUCT_TEMPLATE] [here] [OCaml discord] [these repositories] qcheck-lin and qcheck-stm 0.2 ═════════════════════════════ Archive: Jan Midtgaard announced ─────────────────────── I just rolled a 0.5 release of `qcheck-lin', `qcheck-stm', and `qcheck-multicoretests-util': 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] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]