Build & Packaging (and Docs) Working Group Minutes

Hey everyone, as you may know, the Build & Packaging working group meets monthly, on the first Tuesday of the month. It initially was all done in Zoom meetings, but to make accessibility easier, the meetings have been shifted to asynchronous day-long discussions in slack threads on the EEF slack, back in December 2022.

As was made clear in a thread earlier this year, people don’t necessarily know what goes on in these meetings or that they even take place.

So in an attempt to be a bit more visible, I will be re-publishing meeting minutes here, so people have an idea what is going on, without having to stay up to date with our repo where they are stored: build-and-packaging-wg/minutes at master · erlef/build-and-packaging-wg · GitHub

For what it’s worth, this repository holds minutes dating back to October 2020.

17 Likes

Here are the minutes for the last two meetings, January 2024 and February 2024.

January

February

The February meeting had this single topic discussed.

8 Likes

This is great, thanks @MononcQc. One observation I have (based on the minutes) is that there really are not many posts tagged “Erlang Ecosystem Foundation”. Perhaps instead of opening up the private areas, more activity could be conducted in public areas and tagged appropriately?

1 Like
  1. These are meetings between members so it sort of makes sense they are held between members and not just public threads. The goal is to pull a bunch of motivated maintainers and contributors together to synchronize work and bounce ideas. They happen on top of the public discussions and public threads, not instead of them
  2. Are the forums with appropriate tagging not going to be sufficiently public nor appropriately tagged?

:+1:

I’m sure they will be :slight_smile:. My suggestion was only to avoid changing the existing board set-up, but I’m happy with whatever works for you.

I’m catching up to my duties before the next meeting, and posting the minutes update for March in here: build-and-packaging-wg/minutes/2024-03-05.md at master · erlef/build-and-packaging-wg · GitHub

Our one discussion topic this month were a quick survey of OTP-27 readiness. Keep in mind that the meeting was held when only 27-rc1 was released and does not account for 27-rc2 yet:

  • Rebar3: appears to be all-good. There’s a warning in there that’s patched and will need a new release
  • Elixir mostly good, a few details to iron out
  • rebar3_hexdoc has had v0.2.22 released to cover OTP-27
  • erlef/setup-beam is now being tested for OTP 27, it’s released and no issues are reported
  • kerl/kerl has been adapted for OTP 27, but it’ll only be release when 27 is out (we need to use the latest, from the main branch, until then), the relevant change being it creating the docs for 27 locally (using ex_doc)

I’m forced to admit attendance is a bit down and topics discuss are shrinking; for a fourth month in a row we had 2 or fewer topics to discuss, and only 1 topic to discuss for 2 months in a row.

Anything the members of this forum would like to ask the WG for next week’s meeting?

4 Likes

I’m late on these, but still ahead of the next async meeting (which is next Tuesday, first Tuesday of May). For the time being, have the April 2 minutes—with more topics and participants than we’ve had in a while:

  • OTP 27-rc2 General Chat
    • quick discussion around the new strings syntax and maybe being on by default
    • tracing sessions looks interesting, but participants haven’t had time to try them yet
    • a question was asked wondering if we’d get access to murmurhash3 (which is the internal hash for which no public interface exists)
    • John says there’s too much work right now and revamping hashing has been put on hold
    • similarly, the new regex engine has also been postponed, to OTP 28
  • Rebar3 Releases
    • Missing releases were cut for erlware_commons and Relx
    • A new rebar3 release was cut accordingly, with a bunch of long-standing fixes.
  • Adding OTP 27-rc2 to nixpkgs
    • Barry (first presence in meeting) has managed to make it work
      • there were challenges around ex_doc builds
    • the PR was merged later in the month
  • Support for a deprecated doc attribute
    • Currently the attribute is disjoint, supported by the compiler for OTP-specific deprecations, handled with macros and by xref for the rest of uses
    • Making it project-level (so the compiler can warn for any project) is on John’s personal to-do list, but it is harder to do than it appears because of in-house build systems
    • José points out that the way it works in Elixir is that compilation is done first, then a pass is done to find deprecations and missing calls
    • EEP-59 doc will look for -deprecated attributes and put them in the docs chunk, but you can also do it directly with doc metadata with -doc(#{ deprecated => ~"Use foo/0 instead" }).
      • This seems to cover Bryan’s needs
    • A suggestion was made about relying on xref (or maybe dialyzer, or both) to warn about deprecated functions. Tools overlap a lot, and xref is fast.
5 Likes

Here are the minutes for May: build-and-packaging-wg/minutes/2024-05-07.md at master · erlef/build-and-packaging-wg · GitHub

They’re pretty much anti-minutes because nobody had anything to discuss, so aside from a few reactji, nothing happened.

2 Likes

I was late on reporting the June minutes because of being on vacation, but I’m back now, we just kicked off the July async meeting on Slack, and here are the June minutes: build-and-packaging-wg/minutes/2025-06-04.md at master · erlef/build-and-packaging-wg · GitHub

I’m glad to report that after the May anti-minutes, we were back in full gear with the following topics:

  • Anybody having issues migrating tools and whatnot to OTP-27
  • Nix updates
  • Rebar3 and nicer formatting
  • Should we update the Github issues? As a new person here it is unclear who or where could use the most help.
  • It looks like there might be an issue with self hosted runners using the github erlef/setup-beam action
  • Gradualizer news
  • Webhooks for OTP build releases?

Hopefully today’s meeting is as filled!

1 Like

Someone pointed out I mistakenly put the link in 2025: here’s the fixed one now in 2024: build-and-packaging-wg/minutes/2024-06-04.md at master · erlef/build-and-packaging-wg · GitHub

Also, here are the July minutes: build-and-packaging-wg/minutes/2024-07-02.md at master · erlef/build-and-packaging-wg · GitHub

Big items:

  • rebar_mix replacement
  • nix updates
    • OTP 27.1 will have the pieces in place to simplify the generic builder (thanks to Lukas)
    • NixOS/nixpkgs#321367 is in place for when OTP 27.1 releases
    • Erlang 26 update is up NixOS/nixpkgs#322463
    • there was some extra discussion about ex_doc handling as part of the PRs, but also around performance implications based on dependencies and Nix’s model.
2 Likes

Here are the minutes for the August meeting: build-and-packaging-wg/minutes/2024-08-06.md at master · erlef/build-and-packaging-wg · GitHub

  • rebar3_ex_doc doesn’t support builds docs such that shell docs are available
    • Apparently a config mishap (chunks are in the docs profile, so a shell in the default profile can’t see them) — profiles create path-dependent issues.
    • OTP-27 starts outputting them via the compiler without a rebar3 pass, so upgrading should fix the problem
  • nix updates
  • should rebar3_ex_doc continue leveraging the edoc provider?
    • This is more of a question thread since Bryan had no time to dig on this. Lukas may know, but wasn’t around for this meeting (may be due to Swedish holidays?)
    • the estimate Radek has is that since we support 2 major versions, we can probably drop support in the next 2 major versions; nothing else needs to be done to keep supporting the old ones though
    • Edoc drop not expected before OTP-29
  • Hot code upgrades project funding
    • Based on the Dandelion project (described at My favorite Erlang Container), Alexandre Zenon submitted a proposal for EEF funding to make it easier to get more hot upgrade support in the community
    • The B&P WG is the best spot for it
    • Fred to propbably give the most support as the author of Dandelion Project
    • There is a requirement to support Elixir as much as possible
    • Radek mentions it would be good to get finish_loading/1 instructions in general for type analysis and code upgrades, but this is considered out of scope for this project
    • Alexandre mentions the project is based on a tool developed for his master thesis (GitHub - Ahzed11/HotCI: Run unit tests, hot code upgrade tests and build releases thanks to Github actions. For usage see:)
      • Form Factor: first version was a GitHub template; the idea is to turn it to a Github Action (GHA) to make it easier for people to integrate it
      • Focus on Testing: the first version focused on tests, static analysis, hot upgrade tests, release building; testing the hot upgrade is what makes most sense to focus on in the GHA
      • Use normal versions: the first version used smoothver, a toy versioning scheme Fred introduced for fun (to demonstrate the safety of an upgrade). This is impractical so it should support whatever versioning users currently have
      • Configuration must be provided for the “global” tests to be run by the GHA
      • Detection should be provided for Erlang vs. Elixir projects since they may run different commands and have different constraints
      • Testing utils should go to Hex to let users import them as deps
    • Fred redirected a lot of configuration needs around using test configuration material and profiles (in Rebar3) or Environments (in Mix)
    • There’s some discussion to be had regarding Common Test: it’s okay for Erlang folks, but may be an issue for Elixir devs?
2 Likes

Here are the minutes for the (late) September meeting:

Agenda items discussed:

Some key elements:

  • Nix 27.0.1 is merged (other PRs pending, visible in the full minutes)
  • GRiSP has started publishing pre-built images usable if you don’t change or add to the existing C code.
  • Community-maintained OTP builds for MacOS at erlef/otp_builds

Last meeting (October first) was light, only @peerst had something to discuss:

  • Ongoing rebar plugin work to support full blown secure remote software update and deployment solution
    • Peer’s folks are working on a solution oriented towards A/B tests or blue/green deploys, to be used on GRiSP boards and similar
    • all rebar work and client code to be open source
    • Hot code upgrades are not expected to be part of it. While it might be useful to join them, they aren’t in scope at this point.