Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 13 May 2025 11:40:15 +0200	[thread overview]
Message-ID: <m2y0v097cw.fsf@mac-03220211.irisa.fr> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of May 06 to 13,
2025.

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

FlexDLL 0.44 released
(BER) MetaOCaml N153, for OCaml 5.3.0
Using fixture files in OCaml tests with Dune
OCaml support in Zed editor
Typesafe complicated combinations
OCaml Platform Newsletter: February to April 2025
Other OCaml News
Old CWN


FlexDLL 0.44 released
═════════════════════

  Archive: <https://discuss.ocaml.org/t/flexdll-0-44-released/16614/1>


David Allsopp announced
───────────────────────

  I'm pleased to announce the release of [FlexDLL 0.44] which has just
  been [merged to opam-repository].

  FlexDLL is primarily used by the mingw-w64 and MSVC versions of
  Windows OCaml to implement `Dynlink'.

  The release contains several bug-fixes to do with the handling of
  objects ([ocaml/flexdll#29], [ocaml/flexdll#126] and
  [ocaml/flexdll#150]), several improvements to command line handling
  ([ocaml/flexdll#148], [ocaml/flexdll#151] and [ocaml/flexdll#152]), as
  well as various hardenings and improvements for cross-compiling and
  for use of alternate compiler toolchains.

  Since FlexDLL is used by the compiler itself, the upgrade is similar
  in impact to a new compiler release, in that opam switches will be
  fully recompiled.


[FlexDLL 0.44] <https://github.com/ocaml/flexdll/releases/tag/0.44>

[merged to opam-repository]
<https://github.com/ocaml/opam-repository/pull/27855>

[ocaml/flexdll#29] <https://github.com/ocaml/flexdll/issues/29>

[ocaml/flexdll#126] <https://github.com/ocaml/flexdll/issues/126>

[ocaml/flexdll#150] <https://github.com/ocaml/flexdll/pull/150>

[ocaml/flexdll#148] <https://github.com/ocaml/flexdll/pull/148>

[ocaml/flexdll#151] <https://github.com/ocaml/flexdll/pull/151>

[ocaml/flexdll#152] <https://github.com/ocaml/flexdll/pull/152>


(BER) MetaOCaml N153, for OCaml 5.3.0
═════════════════════════════════════

  Archive:
  <https://inbox.ci.dev/caml-list/CAAxsn=FjN6R8ornKdjGsUZ_URuDEQ9m51em7=Sayp3YjRvH0Kw@mail.gmail.com/>


Continuing this thread, Jeremy Yallop announced
───────────────────────────────────────────────

  It's now available on OPAM:

  ┌────
  │ opam update
  │ opam switch create 5.3.0+BER
  └────


Using fixture files in OCaml tests with Dune
════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-using-fixture-files-in-ocaml-tests-with-dune/16620/1>


Richard Degenne announced
─────────────────────────

  I have a couple of ongoing side-projects that I use to practice my
  OCaml every now and then, whenever I have some free time. The other
  day, I wanted to use fixtures for a test and it took me a while to get
  it to work properly with Dune, so I thought it was worth a write-up!

  I'm sharing it here because I would be especially interested in having
  some feedback from other OCaml developers, seasoned or not. <3

  <https://blog.richarddegenne.fr/2025/05/07/using-fixture-files-in-ocaml-tests-with-dune/>


OCaml support in Zed editor
═══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-support-in-zed-editor/16623/1>


Louis Roché announced
─────────────────────

  The [zed editor] is a modern and very snappy editor developped in
  rust. It's a bit behind more mature emacs/vim/vscode in term of
  features, though it's already pretty usable. There is an [ocaml
  extension] which I contributed to a little bit.

  I'd be curious to know if other people have tried this editor and
  would be willing to put a little bit of work into the extension. For
  now I do it mostly for myself. And would probably have more motivation
  if I knew it's actually being used by other people too.


[zed editor] <https://zed.dev/>

[ocaml extension] <https://github.com/zed-extensions/ocaml>


Typesafe complicated combinations
═════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-typesafe-complicated-combinations/16548/2>


Continuing this thread, rand announced
──────────────────────────────────────

  To those of you interested, I updated the text with [further
  discussion] of the design-pattern - specifically about the fact that
  it reverses the dependency-relation between combined data, vs what one
  would have done by aggregating data within data.

  This is also loosely related to OO in an interesting way - in that
  objects in OO have identities, and *contain* data and procedures -
  where here it's individual data-sources (`Socket.Endpoint`s) that have
  identities, which are carried across different data, and finally used
  to combine in a typesafe way.

  I would be interested to hear if anyone also has experience with
  related patterns, and for what? Tyxml is one example.


[further discussion]
<https://r7p5.earth/blog/2025-4-25/Typesafe%20complicated%20combinations#h-illegal-states>


OCaml Platform Newsletter: February to April 2025
═════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-platform-newsletter-february-to-april-2025/16644/1>


Sabine Schmaltz announced
─────────────────────────

  Welcome to the fourteenth edition of the OCaml Platform newsletter!

  In this February to April 2025 edition, we are excited to bring you
  the latest on the OCaml Platform, continuing our tradition of
  highlighting recent developments as seen in [previous editions]. To
  understand the direction we're headed, especially regarding
  development workflows and user experience improvements, check out our
  [roadmap].

  *Highlights:*

  • *Dune Package Management is now Compatible with Large Parts of the
     Ecosystem*: The majority of Dune-based packages in opam-repository
     now build successfully with Dune package management. Continuous
     monitoring is available at [dune.check.ci.dev]. Technical barriers
     are being systematically addressed while maintaining compatibility
     with both opam and Dune workflows to ensure teams can transition at
     their own pace.
  • *Odoc 3.0 Release*: A major upgrade, introducing powerful features
     like type-based search through Sherlodoc, global sidebar
     navigation, integrated source code display, multimedia support,
     hierarchical documentation pages, and cross-package linking that
     creates truly connected documentation.
  • *New minor Emacs Mode:* OCaml-eglot replaces the venerable
     "merlin-mode", providing modern editor features through
     `ocaml-lsp-server'.
  • *First alpha of opam 2.4.0*: Significant improvements including
     removal of GNU patch/diff dependencies, better Nix integration,
     improved pinned repository visibility, UI enhancements for
     deprecated packages, and new version comparison tools and lock file
     management features.

  *Announcements:*

  • ["opam 2.4.0 alpha1 release" on the Opam Blog]
  • [OCaml Infrastructure: FreeBSD 14.2 Upgrade]
  • [OCaml Infrastructure: OCaml-version 4.0.0 released]

  *Calls for Feedback:*

  • [Dune Developer Preview Adoption Survey]
  • [OCaml Editor Plugins Survey]
  • [Asking For Community Feedback on the OCaml Platform Communications]

  *Releases:*

  • [opam 2.4.0~alpha1]
  • [Dune 3.18.2]
  • [Dune 3.18.1]
  • [Dune 3.18.0]
  • [Odoc 3.0]
  • [dune-release 2.1.0]
  • [Ppxlib 0.36.0]
  • [Ppxlib 0.35.0]
  • [ocaml-eglot 1.2.0]
  • [ocaml-eglot 1.1.0]


[previous editions] <https://discuss.ocaml.org/tag/platform-newsletter>

[roadmap] <https://ocaml.org/docs/platform-roadmap>

[dune.check.ci.dev] <https://dune.check.ci.dev>

["opam 2.4.0 alpha1 release" on the Opam Blog]
<https://opam.ocaml.org/blog/opam-2-4-0-alpha1/>

[OCaml Infrastructure: FreeBSD 14.2 Upgrade]
<https://ocaml.org/changelog/2025-03-26-freebsd-14.2>

[OCaml Infrastructure: OCaml-version 4.0.0 released]
<https://ocaml.org/changelog/2025-03-24-recent-ocaml-versions>

[Dune Developer Preview Adoption Survey]
<https://discuss.ocaml.org/t/ann-dune-developer-preview-updates/15160/57?u=sabine>

[OCaml Editor Plugins Survey]
<https://discuss.ocaml.org/t/ocaml-editors-plugins-survey/16216>

[Asking For Community Feedback on the OCaml Platform Communications]
<https://discuss.ocaml.org/t/asking-for-community-feedback-on-the-ocaml-platform-communications/16142>

[opam 2.4.0~alpha1]
<https://discuss.ocaml.org/t/ann-opam-2-4-0-alpha1/16520>

[Dune 3.18.2] <https://ocaml.org/changelog/2025-04-30-dune.3.18.2>

[Dune 3.18.1] <https://ocaml.org/changelog/2025-04-17-dune.3.18.1>

[Dune 3.18.0] <https://ocaml.org/changelog/2025-04-03-dune.3.18.0>

[Odoc 3.0] <https://ocaml.org/changelog/2025-03-20-odoc-3.0.0>

[dune-release 2.1.0]
<https://ocaml.org/changelog/2025-02-03-dune-release-2.1.0>

[Ppxlib 0.36.0] <https://ocaml.org/changelog/2025-03-05-ppxlib-0.36.0>

[Ppxlib 0.35.0] <https://ocaml.org/changelog/2025-02-04-ppxlib-0.35.0>

[ocaml-eglot 1.2.0]
<https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515>

[ocaml-eglot 1.1.0]
<https://github.com/tarides/ocaml-eglot/releases/tag/1.1.0>

*Dune*
╌╌╌╌╌╌

  *Roadmap:* [Develop / (W4) Build a Project]

  Dune 3.18 brings various quality-of-life improvements, bug fixes, and
  new features. It introduces support for the new `x-maintenance-intent'
  field in opam packages, allowing maintainers to better communicate
  project status. The release also includes the new `(format-dune-file
  ...)' stanza, formalizing the dune format-dune-file command as an
  inside rule, and adds support for the `not' operator in package
  dependencies constraints. Several improvements to cache handling of
  file permissions have been implemented, and users can now utilize the
  `--prefix' flag when configuring dune with `ocaml configure.ml',
  providing greater installation flexibility.

  From 3.18.0, Dune now uses shorter paths for inline-test artifacts,
  allows dash characters in project names created with `dune init', and
  displays negative error codes on Windows in hexadecimal format — the
  customary way to display `NTSTATUS' codes. The release also enhances
  stability with improved retry mechanisms for file delete operations on
  Windows under heavy load and provides better warning behavior when
  failing to discover the project root due to read failures, replacing
  the previous abort behavior.

  Shortly after, Dune 3.18.1 was released with a hotfix that corrects an
  issue where `pkg-config' would fail to find certain libraries in
  specific contexts, while Dune 3.18.2 provides support for the upcoming
  OCaml 5.4 release.

  *Activities:*

  • [Release of Dune 3.18.2]
  • [Release of Dune 3.18.1]
  • [Release of Dune 3.18.0]

  *Maintained by:* Rudi Grinberg (@rgrinberg, Jane Street), Nicolás
   Ojeda Bär (@nojb, LexiFi), Marek Kubica (@Leonidas-from-XIV,
   Tarides), Ali Caglayan (@Alizter), Etienne Millon (@emillon,
   Tarides), Stephen Sherratt (@gridbugs, Tarides), Antonio Nuno
   Monteiro (@anmonteiro), Etienne Marais (@maiste)


[Develop / (W4) Build a Project]
<https://ocaml.org/docs/platform-roadmap#w4-build-a-project>

[Release of Dune 3.18.2]
<https://ocaml.org/changelog/2025-04-30-dune.3.18.2>

[Release of Dune 3.18.1]
<https://ocaml.org/changelog/2025-04-17-dune.3.18.1>

[Release of Dune 3.18.0]
<https://ocaml.org/changelog/2025-04-03-dune.3.18.0>

◊ *Dune Package Management*

  As of May 9, a large part of Dune-based packages on `opam-repository'
  now build successfully with Dune package management. At
  [dune.check.ci.dev], we provide continuous monitoring of build success
  across the ecosystem, giving visibility into compatibility before
  migration.

  The effort of making Dune package management compatible with the wider
  OCaml ecosystem is ongoing and aims to assess when Dune package
  management is ready for adoption in production settings. We are
  committed to maintain compatibility with both opam and Dune workflows,
  ensuring teams can transition at their own pace with minimal
  disruption to existing projects

  Technical barriers have been and are being systematically addressed,
  e.g. improved handling of ZIP archives, better dependency conflict
  resolution, and enhanced support for pinned packages that don't use
  Dune's build system.

  *Activities:*

  • ["Expanding Dune Package Management to the Rest of the Ecosystem" on
    the Tarides Blog]


  [dune.check.ci.dev] <https://dune.check.ci.dev>

  ["Expanding Dune Package Management to the Rest of the Ecosystem" on
  the Tarides Blog]
  <https://tarides.com/blog/2025-04-11-expanding-dune-package-management-to-the-rest-of-the-ecosystem/>


◊ *Dune Developer Preview*

  [Dune Developer Preview] is an experimental channel that introduces
  cutting-edge features to streamline OCaml development
  workflows. Building upon Dune's foundation as OCaml's official build
  system, this initiative allows us to iterate quickly on ideas and
  experiment with improving the developer experience and with
  experimental features. For example, one feature that came out of Dune
  Developer Preview and made it into the upstream codebase is package
  management: by enabling Dune to deal with project dependencies, we
  eliminate the need to juggle multiple tools.

  The tooling includes built-in LSP support, formatting capabilities,
  and a shared cache that dramatically improves build performance. Early
  adopters are encouraged to [provide feedback] as these experimental
  features mature toward stable releases.

  We are in the process of adopting Dune Developer Preview for the OCaml
  Platform Tools and other projects. This is to ensure that (1) Dune
  Developer Preview keeps providing a good developer experience on
  production codebases and (2) to catch bugs and issues as early as we
  can. At the moment, we are making a concerted effort to fix issues and
  add necessary features that block adoption of Dune Developer Preview
  on the OCaml Platform Tools projects.

  We're always interested in and addressing community feedback and bug
  reports, as well. In March, we conducted a [public survey to better
  understand the reach, adoption, and experience of/with Dune Developer
  Preview] in the OCaml community.

  *Activities:*

  • [Dune Developer Preview Adoption Survey]


  [Dune Developer Preview] <https://preview.dune.build/>

  [provide feedback]
  <https://docs.google.com/forms/u/2/d/e/1FAIpQLSda-mOTHIdATTt_e9dFmNgUCy-fD55Qzr3bGGsxpfY_Ecfyxw/viewform?usp=send_form>

  [public survey to better understand the reach, adoption, and
  experience of/with Dune Developer Preview]
  <https://discuss.ocaml.org/t/ann-dune-developer-preview-updates/15160/57>

  [Dune Developer Preview Adoption Survey]
  <https://discuss.ocaml.org/t/ann-dune-developer-preview-updates/15160/57?u=sabine>


*Editor Tools*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Roadmap:* [Edit / (W19) Navigate Code], [Edit / (W20) Refactor Code]

  To better understand how the OCaml community uses the different editor
  plugins available for OCaml, and to get an idea which features are
  most anticipated, we ran a [survey on the OCaml Editors Plugins].

  *Notable Activity*

  • [OCaml Editor Plugins Survey]
  • [April 2025 Editors Dev Meeting]

  Focus: Project-wide occurrences demo

  • [February 2025 Editors Dev Meeting]

  Focus: Introduction of ocaml-eglot Emacs mode

  *OCaml LSP Server maintained by:* Ulysse Gérard (@voodoos, Tarides),
   Xavier Van de Woestyne (@xvw, Tarides), Rudi Grinberg (@rgrinberg,
   Jane Street)

  *Merlin maintained by:* Ulysse Gérard (@voodoos, Tarides), Xavier Van
   de Woestyne (@xvw, Tarides)


[Edit / (W19) Navigate Code]
<https://ocaml.org/tools/platform-roadmap#w19-navigate-code>

[Edit / (W20) Refactor Code]
<https://ocaml.org/tools/platform-roadmap#w20-refactor-code>

[survey on the OCaml Editors Plugins]
<https://discuss.ocaml.org/t/ocaml-editors-plugins-survey/16216>

[OCaml Editor Plugins Survey]
<https://discuss.ocaml.org/t/ocaml-editors-plugins-survey/16216>

[April 2025 Editors Dev Meeting]
<https://github.com/ocaml/merlin/wiki/Public-dev%E2%80%90meetings#-ulysse-voodoos--xavier-xvw--pizzie-piziedust--sonja-pitag-ha--florian-angeletti-octachron--darius-foo-dariusf--andrey-popp-andreypopp--nicolas-ojeda-b%C3%A4r-nojb>

[February 2025 Editors Dev Meeting]
<https://github.com/ocaml/merlin/wiki/Public-dev%E2%80%90meetings#-pixie-dust--x-gerard-vemeulen--x-jack-joergensen--x-jean-marc-eber--x-arthur-wendling--x-xavier-van-de-woestyne--x-nicolas-ojeda-bar--x-ulysee-gerard--x-joy-odinaka>

◊ Merlin and OCaml LSP Server

  Project-wide occurrences are available in both Merlin and OCaml-LSP,
  allowing developers to find all instances of a symbol across their
  codebase by running `dune build @build-index -w'. The feature has
  basic editor support via `merlin-project-occurrences' in Emacs and
  `:MerlinOccurrencesProjectWide' in Vim. Additionally, users of OCaml
  5.3 and LSP-based plugins can experiment with the first iteration on
  project-wide *renaming*.


◊ Visual Studio Code plugin

  Behind the scenes, some work is happening on improving the developer
  experience for the OCaml VSCode editor plugin: When `ocaml-lsp-server'
  is not found in the opam switch, the plugin will prompt the user to
  offer installing it, and we are working on making the editor plugin
  work seamlessly with the recent dune package management features.

  *Notable Activity*

  • WIP on opam: Automatically installing/updating ocaml-lsp-server
    <https://github.com/ocamllabs/vscode-ocaml-platform/pull/1725>
  • WIP on Dune: Automatically configuring dune package management:
    <https://github.com/ocamllabs/vscode-ocaml-platform/pull/1791>


◊ Emacs support

  On January 17, [OCaml-eglot version 1.0.0 was released], providing a
  new minor emacs mode to enable the editor features provided by
  *ocaml-lsp-server*. This replaces the venerable “merlin-mode”, after
  many years of loyal service.

  Subsequent releases [`1.1.0'] and [`1.2.0'] enable support for
  `flycheck' as a configurable alternative to `flymake' (`1.0.0'
  release), Emacs `30.1' support, better user experience and error
  handling, as well as support for new features.

  All these features have enabled OCaml-eglot to support client
  commands, making it possible to extend OCaml-eglot more easily and to
  integrate features much more rapidly. Since version `1.2.0',
  OCaml-eglot has all the functions of Merlin mode (and more)!

  We encourage you to try `ocaml-eglot' (refer to the updated
  [documentation on editor setup on OCaml.org]) and to [give feedback /
  report bugs by raising an issue on the ocaml-eglot repository]!

  Besides this, we have updated the documentation on Editor Setup on
  OCaml.org to reflect the new situation for Emacs!

  *Notable Activity*

  • [Updated Tutorial on Setting Up Emacs Support on OCaml.org]
  • [Release of ocaml-eglot 1.1.0]
  • [Release of ocaml-eglot 1.2.0]


  [OCaml-eglot version 1.0.0 was released]
  <https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-0-0/15978/14>

  [`1.1.0'] <https://github.com/tarides/ocaml-eglot/releases/tag/1.1.0>

  [`1.2.0']
  <https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515>

  [documentation on editor setup on OCaml.org]
  <https://ocaml.org/docs/set-up-editor#emacs>

  [give feedback / report bugs by raising an issue on the ocaml-eglot
  repository] <https://github.com/tarides/ocaml-eglot/issues>

  [Updated Tutorial on Setting Up Emacs Support on OCaml.org]
  <https://ocaml.org/docs/set-up-editor#emacs>

  [Release of ocaml-eglot 1.1.0]
  <https://github.com/tarides/ocaml-eglot/releases/tag/1.1.0>

  [Release of ocaml-eglot 1.2.0]
  <https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515>


*Documentation Tools*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Roadmap:* [Share / (W25) Generate Documentation]


[Share / (W25) Generate Documentation]
<https://ocaml.org/tools/platform-roadmap#w25-generate-documentation>

◊ Odoc

  Odoc 3.0 has arrived after more than a year of development since the
  previous 2.4 release, bringing significant enhancements to OCaml's
  documentation tooling. The update introduces powerful new features
  including type-based search functionality through [Sherlodoc], a
  global sidebar for improved navigation across documentation pages, and
  integrated source code display that allows developers to jump directly
  from documentation to rendered source regardless of module system
  complexity. Additional highlights include support for multimedia
  content (images, video, and audio), hierarchical documentation pages
  for better structure, and cross-package linking capabilities that
  create truly connected documentation, as well as support for
  incremental documentation builds.

  It's worth noting that Dune does not yet support Odoc 3 as its rules
  need rewriting to accommodate the new CLI and incremental build
  capabilities. In the interim, developers can use the standalone
  `odoc_driver' command to generate documentation for their packages as
  shown in the ["Remapping dependencies" documentation].

  The Odoc team encourages all OCaml developers to test their
  documentation with the new release before publishing packages, which
  can help avoid post-release fixes like [this example]. For a practical
  introduction to the new features, developers can install the package
  via `opam install odoc-driver' and explore the comprehensive
  documentation available for the [Odoc toolchain].

  *Notable Activity*

  • [Release of odoc 3.0.0]
  • ["Odoc 3: So what?" on Jon Ludlam's blog] - blog post that touches
    on how odoc 3's cross-package linking capabilities enable writing
    better manuals

  *Maintained by:* Jon Ludlam (@jonludlam, Tarides), Daniel Bünzli
   (@dbuenzli), Jules Aguillon (@julow, Tarides), Paul-Elliot Anglès
   d'Auriac (@panglesd, Tarides), Emile Trotignon (@EmileTrotignon,
   Tarides, then Ahrefs)


  [Sherlodoc] <https://github.com/ocaml/odoc/tree/master/sherlodoc>

  ["Remapping dependencies" documentation]
  <https://ocaml.github.io/odoc/odoc-driver/index.html#remapping-dependencies>

  [this example] <https://github.com/ocaml/odoc/pull/1333>

  [Odoc toolchain] <https://ocaml.github.io/odoc/>

  [Release of odoc 3.0.0]
  <https://ocaml.org/changelog/2025-03-20-odoc-3.0.0>

  ["Odoc 3: So what?" on Jon Ludlam's blog]
  <https://jon.recoil.org/blog/2025/04/odoc-3.html>


*Package Management*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ Opam

  The [first alpha of opam 2.4.0 has been released], bringing
  significant improvements.

  The removal of GNU `patch' and `diff' as runtime dependencies reduces
  cross-platform inconsistencies, as the manager now uses the native
  OCaml `patch' library instead. Nix users will appreciate Nix support
  for external dependencies, facilitating more consistent environments
  across development and production systems.

  Notable for daily development work: pinned VCS repositories now
  display their current revision for better traceability, and several UI
  improvements provide clearer visibility into deprecated packages. The
  enhanced command set includes version comparison tools and better lock
  file management with `opam lock --keep-local', particularly useful for
  maintaining consistent dependency states across team environments.

  Teams running NixOS will benefit from fixed sandboxing support, while
  the new `OPAMSOLVERTOLERANCE' environment variable helps resolve
  persistent solver timeouts that previously was unsolvable by MCCS.

  Early testing and feedback from development teams is encouraged to
  ensure a stable final release. Please [report any issues to the
  bug-tracker].

  *Notable Activity*

  • ["opam 2.4.0 alpha1 release" on the Opam Blog]
  • `opam upgrade' fixes [#6373]
  • Use `patch' OCaml library instead of the `patch' command [#5892]
  • Add some lints [#6317], [#6438]
  • Pinning system fixes [#5471], [#6343], [#6309], [#6375], [#6256],
    [#5471]
  • Add `opam admin migrate-extrafiles' command [#5960], change opam
    admin check options [#6335]
  • Depext system: better performance [#6324], enhance OpenBSD [#6362]
  • Some UI improvments [#6376], [#6401], [#6358], [#6273]
  • UX improvments: remove `ocaml-system' from default compiler at init
    [#6307]
  • Provide a way to avoid solver timeouts [#5510]
  • Add `opam lock <pkg> --keep-local' [#6411]

  *Maintained by:* Raja Boujbel (@rjbou - OCamlPro), Kate Deplaix
   (@kit-ty-kate, Ahrefs), David Allsopp (@dra27, Tarides)


  [first alpha of opam 2.4.0 has been released]
  <https://opam.ocaml.org/blog/opam-2-4-0-alpha1/>

  [report any issues to the bug-tracker]
  <https://github.com/ocaml/opam/issues>

  ["opam 2.4.0 alpha1 release" on the Opam Blog]
  <https://opam.ocaml.org/blog/opam-2-4-0-alpha1/>

  [#6373] <https://github.com/ocaml/opam/pull/6373>

  [#5892] <https://github.com/ocaml/opam/pull/5892>

  [#6317] <https://github.com/ocaml/opam/pull/6317>

  [#6438] <https://github.com/ocaml/opam/pull/6438>

  [#5471] <https://github.com/ocaml/opam/pull/5471>

  [#6343] <https://github.com/ocaml/opam/pull/6343>

  [#6309] <https://github.com/ocaml/opam/pull/6309>

  [#6375] <https://github.com/ocaml/opam/pull/6375>

  [#6256] <https://github.com/ocaml/opam/pull/6256>

  [#5960] <https://github.com/ocaml/opam/pull/5960>

  [#6335] <https://github.com/ocaml/opam/pull/6335>

  [#6324] <https://github.com/ocaml/opam/pull/6324>

  [#6362] <https://github.com/ocaml/opam/pull/6362>

  [#6376] <https://github.com/ocaml/opam/pull/6376>

  [#6401] <https://github.com/ocaml/opam/pull/6401>

  [#6358] <https://github.com/ocaml/opam/pull/6358>

  [#6273] <https://github.com/ocaml/opam/pull/6273>

  [#6307] <https://github.com/ocaml/opam/pull/6307>

  [#5510] <https://github.com/ocaml/opam/pull/5510>

  [#6411] <https://github.com/ocaml/opam/pull/6411>


◊ Dune-release

  *Roadmap:* [Share / (W26) Package Publication]

  Dune-release 2.1.0, has been released, providing a new command
  `dune-release delegate-info version', which makes it easier to
  identify the current version of a package as inferred by the
  tool. Additionally, the release introduces more flexibility with the
  `--dev-repo' flag for `dune-release' and `dune-release publish'
  commands, allowing users to override the `dev-repo' field specified in
  the `.opam' file during the release process.

  Dune-release no longer publishes documentation to GitHub Pages by
  default. This decision reflects the OCaml ecosystem's consolidation
  around centralized documentation, as package documentation is now
  automatically built and served by [ocaml.org/packages] following
  publication to the opam repository.

  The update also improves compatibility and resolves several issues,
  including a fix for decoding GitHub URLs and ensuring dune-release
  works with the experimental package management feature from Dune. The
  tool now handles the presence of `~/.dune/bin/dune' without failing,
  making it more robust for developers exploring Dune's newer features.

  *Notable Activity*

  • [Release of dune-release 2.1.0]

  *Maintained by:* Thomas Gazagnaire (@samoht, Tarides), Etienne Millon
   (@emillon, Tarides), Marek Kubica (@Leonidas-from-XIV, Tarides)


  [Share / (W26) Package Publication]
  <https://ocaml.org/tools/platform-roadmap#w26-package-publication>

  [ocaml.org/packages] <https://ocaml.org/packages>

  [Release of dune-release 2.1.0]
  <https://ocaml.org/changelog/2025-02-03-dune-release-2.1.0>


Ppxlib
╌╌╌╌╌╌

  The ppxlib team has released versions 0.35.0 and 0.36.0!

  Ppxlib 0.35.0, released in February 2025, brings significant
  improvements for OCaml 5.3 compatibility by allowing ppx rewriters to
  operate on files containing the new effect syntax. While ppx
  extensions and effect syntax can coexist, developers should note that
  rewriters might encounter errors when processing effect syntax nodes
  in extension payloads or generated code. The release introduces a new
  `--use-compiler-pp' driver flag, useful for preserving effect syntax
  when outputting source code instead of marshalled AST. This update
  also removes support for compilers older than 4.08.

  The latest ppxlib 0.36.0, released in March 2025, updates the internal
  AST to target OCaml 5.2, enabling ppx authors to leverage features
  from this version while maintaining compatibility with OCaml 4.08.0
  and newer. This release includes notable changes to the representation
  of functions. Thus, package authors are strongly encouraged to consult
  [the upgrade guide] as many ppxes may break.

  Other improvements include fixing a bug in `loc_of_attribute', adding
  support for the `[@@@expand_inline]' transformation and floating
  attribute context-free transformations, and introducing a
  `-raise-embedded-errors' flag to the driver.

  *Notable Activity*

  • [Release of ppxlib 0.36.0]
  • [Release of ppxlib 0.35.0]
  • [Upgrade guide for the OCaml 5.3 release of ppxlib]

  *Maintained by:* Patrick Ferris ([@patricoferris])


[the upgrade guide]
<https://github.com/ocaml-ppx/ppxlib/wiki/Upgrading-to-ppxlib-0.36.0>

[Release of ppxlib 0.36.0]
<https://ocaml.org/changelog/2025-03-05-ppxlib-0.36.0>

[Release of ppxlib 0.35.0]
<https://ocaml.org/changelog/2025-02-04-ppxlib-0.35.0>

[Upgrade guide for the OCaml 5.3 release of ppxlib]
<https://github.com/ocaml-ppx/ppxlib/wiki/Upgrading-to-ppxlib-0.36.0>

[@patricoferris] <https://github.com/patricoferris>


OCaml Infrastructure
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The OCaml infrastructure team has upgraded their OBuilder workers for
  FreeBSD from version 14.1 to 14.2, which directly impacts two key
  continuous integration services:

  1. *OCaml-CI* ([ocaml.ci.dev]) - This service automatically tests
      OCaml projects hosted on GitHub, and will now test against FreeBSD
      14.2 instead of 14.1. Projects using this CI service will
      automatically be tested against the newer FreeBSD version.
  2. *opam-repo-CI* ([opam.ci.ocaml.org]) - This service tests pull
      requests to the opam package repository, and will also now test
      against FreeBSD 14.2 rather than 14.1.

  With the release of `ocaml-version' 4.0.0, the OCaml version
  considered "recent" has been raised from 4.02 to 4.08. This change
  affects multiple services that use this definition to determine which
  OCaml versions to test against:

  1. *OCaml-CI* - Will adjust which OCaml compiler versions are tested
      by default for projects
  2. *opam-repo-CI* - Will modify its testing matrix for packages in the
      opam repository
  3. *Docker base image builder* - Will only build images for OCaml 4.08
      and newer

  As these services update, testing on older OCaml releases (versions
  4.02 through 4.07) will be gradually removed. Package maintainers
  should consider upgrading projects still using pre-4.08 OCaml versions
  to OCaml 4.08 or higher.

  Apart from this, at the end of April 2025, registry.ci.dev,
  opam-repo-ci, OCaml-CI and get.dune.build were moved from Equinix
  Hosting to hosting at the Cambridge University Computer Lab, because
  of the [sunset of the Equinix Metal platform].

  *Notable Activity*

  • ["Moving OCaml-CI" on tunbury.org]
  • ["Equinix Moves" on tunbury.org]
  • [OCaml Infrastructure: FreeBSD 14.2 Upgrade]
  • [OCaml Infrastructure: OCaml-version 4.0.0 released]


[ocaml.ci.dev] <https://ocaml.ci.dev>

[opam.ci.ocaml.org] <https://opam.ci.ocaml.org>

[sunset of the Equinix Metal platform]
<https://deploy.equinix.com/blog/sunsetting-equinix-metal/>

["Moving OCaml-CI" on tunbury.org] <https://www.tunbury.org/ocaml-ci/>

["Equinix Moves" on tunbury.org]
<https://www.tunbury.org/equinix-moves/>

[OCaml Infrastructure: FreeBSD 14.2 Upgrade]
<https://ocaml.org/changelog/2025-03-26-freebsd-14.2>

[OCaml Infrastructure: OCaml-version 4.0.0 released]
<https://ocaml.org/changelog/2025-03-24-recent-ocaml-versions>

◊ WIP: Odoc 3 on OCaml-Docs-CI

  The OCaml documentation pages provided through the [OCaml.org package
  area] are scheduled to receive significant updates with the release of
  odoc 3. To enable odoc 3 and all of its new features on OCaml.org, we
  are overhauling the docs-ci pipeline that powers documentation on
  ocaml.org. The improved pipeline addresses dependency complexities by
  using a new tool (<https://github.com/jonludlam/opamh>) that archives
  and restores opam packages, eliminating redundant builds of packages
  like dune that previously occurred thousands of times. The underlying
  infrastructure is also being upgraded, with plans to migrate docs-ci
  to a new blade server.

  *Notable Activity*

  • ["OCaml-Docs-CI and Odoc 3" on Jon Ludlam's blog]


  [OCaml.org package area] <https://ocaml.org/packages>

  ["OCaml-Docs-CI and Odoc 3" on Jon Ludlam's blog]
  <https://jon.recoil.org/blog/2025/04/ocaml-docs-ci-and-odoc-3.html>


Other OCaml News
════════════════

>From the ocaml.org blog
───────────────────────

  Here are links from many OCaml blogs aggregated at [the ocaml.org
  blog].

  • [Tarides at BOB Konferenz 2025]


[the ocaml.org blog] <https://ocaml.org/blog/>

[Tarides at BOB Konferenz 2025]
<https://tarides.com/blog/2025-05-08-tarides-at-bob-konferenz-2025>


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: 46952 bytes --]

             reply	other threads:[~2025-05-13  9:40 UTC|newest]

Thread overview: 242+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-13  9:40 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-05-27  9:22 Alan Schmitt
2025-05-20 11:52 Alan Schmitt
2025-05-06  7:24 Alan Schmitt
2025-04-29  8:39 Alan Schmitt
2025-04-22 11:50 Alan Schmitt
2025-04-15  9:51 Alan Schmitt
2025-04-08 13:14 Alan Schmitt
2025-04-01  9:12 Alan Schmitt
2025-03-25  8:06 Alan Schmitt
2025-03-18 10:18 Alan Schmitt
2025-03-11 15:00 Alan Schmitt
2025-03-04 14:01 Alan Schmitt
2025-02-25 10:36 Alan Schmitt
2025-02-18 14:33 Alan Schmitt
2025-02-11  7:17 Alan Schmitt
2025-02-04 12:05 Alan Schmitt
2025-01-28 13:24 Alan Schmitt
2025-01-21 15:47 Alan Schmitt
2025-01-14  8:20 Alan Schmitt
2025-01-07 17:26 Alan Schmitt
2024-12-31  8:03 Alan Schmitt
2024-12-24  8:55 Alan Schmitt
2024-12-17 13:05 Alan Schmitt
2024-12-10 13:48 Alan Schmitt
2024-12-03 14:44 Alan Schmitt
2024-11-26  8:30 Alan Schmitt
2024-11-19  6:52 Alan Schmitt
2024-11-12 15:00 Alan Schmitt
2024-11-05 13:22 Alan Schmitt
2024-10-29 13:30 Alan Schmitt
2024-10-22 12:42 Alan Schmitt
2024-10-15 13:31 Alan Schmitt
2024-10-08 10:56 Alan Schmitt
2024-10-01 13:37 Alan Schmitt
2024-09-24 13:18 Alan Schmitt
2024-09-17 14:02 Alan Schmitt
2024-09-10 13:55 Alan Schmitt
2024-09-03  8:24 Alan Schmitt
2024-08-27  9:02 Alan Schmitt
2024-08-20  9:29 Alan Schmitt
2024-08-13 13:21 Alan Schmitt
2024-08-06  9:00 Alan Schmitt
2024-07-30 13:26 Alan Schmitt
2024-07-23 13:30 Alan Schmitt
2024-07-16  6:24 Alan Schmitt
2024-07-09  9:19 Alan Schmitt
2024-07-02  7:30 Alan Schmitt
2024-06-25 13:58 Alan Schmitt
2024-06-18 13:05 Alan Schmitt
2024-06-11 15:04 Alan Schmitt
2024-06-04 13:26 Alan Schmitt
2024-05-28  9:07 Alan Schmitt
2024-05-21 13:07 Alan Schmitt
2024-05-14 13:25 Alan Schmitt
2024-05-07  7:30 Alan Schmitt
2024-04-30  7:22 Alan Schmitt
2024-04-23 12:17 Alan Schmitt
2024-04-16 12:00 Alan Schmitt
2024-04-09  9:15 Alan Schmitt
2024-04-02 14:31 Alan Schmitt
2024-03-26  6:32 Alan Schmitt
2024-03-19 15:09 Alan Schmitt
2024-03-12 10:31 Alan Schmitt
2024-03-05 14:50 Alan Schmitt
2024-02-27 13:53 Alan Schmitt
2024-02-20  9:12 Alan Schmitt
2024-02-13  8:42 Alan Schmitt
2024-02-06 15:14 Alan Schmitt
2024-01-30 14:16 Alan Schmitt
2024-01-23  9:45 Alan Schmitt
2024-01-16 10:01 Alan Schmitt
2024-01-09 13:40 Alan Schmitt
2024-01-02  8:59 Alan Schmitt
2023-12-26 10:12 Alan Schmitt
2023-12-19 10:10 Alan Schmitt
2023-12-12 10:20 Alan Schmitt
2023-12-05 10:13 Alan Schmitt
2023-11-28  9:09 Alan Schmitt
2023-11-21  7:47 Alan Schmitt
2023-11-14 13:42 Alan Schmitt
2023-11-07 10:31 Alan Schmitt
2023-10-31 10:43 Alan Schmitt
2023-10-24  9:17 Alan Schmitt
2023-10-17  7:46 Alan Schmitt
2023-10-10  7:48 Alan Schmitt
2023-10-03 13:00 Alan Schmitt
2023-09-19  8:54 Alan Schmitt
2023-09-12 13:21 Alan Schmitt
2023-09-05  9:00 Alan Schmitt
2023-08-29 13:04 Alan Schmitt
2023-08-22  9:20 Alan Schmitt
2023-08-15 16:33 Alan Schmitt
2023-08-08  8:53 Alan Schmitt
2023-08-01  7:13 Alan Schmitt
2023-07-25  8:45 Alan Schmitt
2023-07-11  8:45 Alan Schmitt
2023-07-04  9:18 Alan Schmitt
2023-06-27  8:38 Alan Schmitt
2023-06-20  9:52 Alan Schmitt
2023-06-13  7:09 Alan Schmitt
2023-06-06 14:22 Alan Schmitt
2023-05-30 15:43 Alan Schmitt
2023-05-23  9:41 Alan Schmitt
2023-05-16 13:05 Alan Schmitt
2023-05-09 11:49 Alan Schmitt
2023-05-02  8:01 Alan Schmitt
2023-04-25  9:25 Alan Schmitt
2023-04-18  8:50 Alan Schmitt
2023-04-11 12:41 Alan Schmitt
2023-04-04  8:45 Alan Schmitt
2023-03-28  7:21 Alan Schmitt
2023-03-21 10:07 Alan Schmitt
2023-03-14  9:52 Alan Schmitt
2023-03-07  9:02 Alan Schmitt
2023-02-28 14:38 Alan Schmitt
2023-02-21 10:19 Alan Schmitt
2023-02-14  8:12 Alan Schmitt
2023-02-07  8:16 Alan Schmitt
2023-01-31  6:44 Alan Schmitt
2023-01-24  8:57 Alan Schmitt
2023-01-17  8:37 Alan Schmitt
2022-11-29 14:53 Alan Schmitt
2022-09-27  7:17 Alan Schmitt
2022-09-20 14:01 Alan Schmitt
2022-09-13  8:40 Alan Schmitt
2022-08-23  8:06 Alan Schmitt
2022-08-16  8:51 Alan Schmitt
2022-08-09  8:02 Alan Schmitt
2022-08-02  9:51 Alan Schmitt
2022-07-26 17:54 Alan Schmitt
2022-07-19  8:58 Alan Schmitt
2022-07-12  7:59 Alan Schmitt
2022-07-05  7:42 Alan Schmitt
2022-06-28  7:37 Alan Schmitt
2022-06-21  8:06 Alan Schmitt
2022-06-14  9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24  8:04 Alan Schmitt
2022-05-17  7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03  9:11 Alan Schmitt
2022-04-26  6:44 Alan Schmitt
2022-04-19  5:34 Alan Schmitt
2022-04-12  8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29  7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15  9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-25 12:44 Alan Schmitt
2022-01-11  8:20 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2021-12-28  8:59 Alan Schmitt
2021-12-21  9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-09-21  9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22  9:04 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04  8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23  9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29  9:59 Alan Schmitt
2020-12-22  8:48 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-01  8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27  8:43 Alan Schmitt
2020-10-20  8:15 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-08-18  7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14  9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-09  8:28 Alan Schmitt
2020-05-19  9:52 Alan Schmitt
2020-05-12  7:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-03-31  9:54 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-09-03  7:35 Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2y0v097cw.fsf@mac-03220211.irisa.fr \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox