MuniHac 2026
Yesterday, I came back from MuniHac 2026, an annual 3-days hackathon in Munich.
It is quite different from ZuriHac I attended earlier this year.
Fewer participants (less than 50 according to the organizers, as opposed to a few hundred for ZuriHac), which allowed us to be in the same room, giving a stronger feeling of being part of a hackathon.
The attendees were mostly from Western and Central Europe.
While I was expecting to work a lot on security-related topics, as the only member of the HSRT, I had no request, allowing me to focus.
Friday
For my first day, my newest colleague at Wire was kind enough to give me an issue on haskell-language-server; she is a regular contributor to it.
It was a bug regarding code actions, which were sometimes suggesting fully qualified and not syntax-compliant missing constraints.
In plain English: Data.Eq.Eq instead of Eq.
It took me a day of head scratching and hair-pulling to realize that it was already fixed.
It is always a good lesson to revise: never trust a report; try to reproduce it first.
A bit later, at my hotel, I have relaxed with two refactorings on haskell-language-server, as follows:
- refactor: migrate to
OsPath#608 - refactor: migrate FilePath/NormalizedFilePath to OsPath/NormalizedOsPath #3046
I think the main idea was to save some memory using OsPath instead of FilePath which is a String.
It has to be taken with a grain of salt because it only relies on haskell-language-server benchmarks run under an overloaded laptop computer, but memory usage jumped up to +0.4%, while the benchmarks suite ran ~15% faster (10.5s from 12.5s).
I was also glad to have my first feedback from @Bodigrim and @fendor late at night.
Saturday
The second day was less frustrating, as I was able to focus on coding.
I continued working on haskell-language-server with the following old feature request:
It was really hacky, copy-pasted from other plugins and cabal documentation, but I was capable of having basic support.
It also forced me to fix my NeoViM keybindings, which is always great.
My second area of focus was to update and complete hsec to flora-server, as follows:
- chore: upgrade hsec-core and hsec-tools to 0.5.0.0
- refactor: fetch security advisories with hsec-sync
- feat: expose web resources for security advisories (#555)
Then I had to head to the hotel, where I finished my days on the following two small Cabal bugs:
Again, I got valuable reviews from @Bodigrim and @fendor.
Sunday
The last day was harvest time!
I've got many reviews on my pull requests, including a live code review with @fendor.
The first feedback was from flora-server which had a legacy snapshot of security-advisories and an older cvss, breaking synchronization, fixed as follows:
- fix(hsec-sync): tolerate git legacy checkout
- fix: bump
hsec-sync/cvssto restore vulnerabilities fetching (#1344)
Then, I have encountered an issue during flora-server provisioning, which is fixed as follows:
Finally, while I was looking for something to do, I discovered an issue on haskell-language-server which is the opposite of the first I have debugged on Friday. I had to provide the following proper patch:
Summary
It was a globally good experience.
I was globally amazed at how much can be done when everyone, people of good will and proactive community leaders, is in the same room (haskell-language-server received 17 pull requests and flora-server 12).
I think I needed this given the new structure of Hacktoberfest.
On my side, I have opened 12 pull requests; 5 have been merged, 3 should be merged soon, and 1 won't be merged.