<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on Antonin Delpeuch</title>
		<link>https://antonin.delpeuch.eu/posts/</link>
		<description>Recent content in Posts on Antonin Delpeuch</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Fri, 18 Sep 2026 00:00:00 +0200</lastBuildDate>
		
			<atom:link href="https://antonin.delpeuch.eu/posts/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>The forgotten features of Sourceforge</title>
				<link>https://antonin.delpeuch.eu/posts/the-forgotten-features-of-sourceforge/</link>
				<pubDate>Fri, 18 Sep 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/the-forgotten-features-of-sourceforge/</guid>
				<description>&lt;p&gt;Remember &lt;a href=&#34;https://sourceforge.net/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Sourceforge&lt;/a&gt;, where you&amp;rsquo;d download software in the 2000s?&#xA;It&amp;rsquo;s now mostly dead, and the company running it has been trying to squeeze out as much profit from it as they can using questionable practices.&lt;/p&gt;&#xA;&lt;p&gt;But despite that, it&amp;rsquo;s a software forge, and I think some aspects of its design remain interesting&#xA;and could even be an inspiration for today&amp;rsquo;s forges.&#xA;Let&amp;rsquo;s have a look at a sample FOSS project hosted on Sourceforge, &lt;a href=&#34;https://sourceforge.net/projects/codeblocks/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Code::Blocks&lt;/a&gt;, with which I made my first programming steps some decades ago.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Wikimania 2026 Team Challenges: experience report</title>
				<link>https://antonin.delpeuch.eu/posts/wikimania-2026-team-challenges-experience-report/</link>
				<pubDate>Sat, 29 Aug 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/wikimania-2026-team-challenges-experience-report/</guid>
				<description>&lt;p&gt;At this year&amp;rsquo;s &lt;a href=&#34;https://wikimania.wikimedia.org/wiki/2026:Wikimania&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Wikimania&lt;/a&gt; (the annual conference of the Wikimedia movement),&#xA;a new sub-event was introduced: the &lt;a href=&#34;https://wikimania.wikimedia.org/wiki/2026:Team_challenges&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Team Challenges&lt;/a&gt;.&#xA;This post summarizes my experience of it as a participant.&lt;/p&gt;&#xA;&lt;p&gt;Traditionally, the Wikimania hosts a rather loosely structured &lt;a href=&#34;https://wikimania.wikimedia.org/wiki/2026:Hackathon&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&amp;ldquo;hackathon&amp;rdquo;&lt;/a&gt;, which mostly consists in making&#xA;a big room available for people who want to hack on things throughout the conference. There is an opening&#xA;ceremony for it, where participants are able to pitch the projects they intend to work on, and a closing ceremony&#xA;where they present what they did.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloning large repositories</title>
				<link>https://antonin.delpeuch.eu/posts/cloning-large-repositories/</link>
				<pubDate>Tue, 26 May 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/cloning-large-repositories/</guid>
				<description>&lt;p&gt;When you want to clone a large git repository locally, consider using:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone --filter blob:none &amp;lt;the_remote_repository&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is so much better than &lt;code&gt;--depth 1&lt;/code&gt;! Instead, this method still gives you the full commit history but only downloads the file contents on demand, as they are needed.&#xA;Initially, only the files appearing in the last revision of the default branch are downloaded (to make the first checkout).&lt;/p&gt;&#xA;&lt;p&gt;You can checkout any other revision and Git will download the necessary files from the origin on demand. Or run any other Git command, like &lt;code&gt;git diff&lt;/code&gt; between commits you haven&amp;rsquo;t checked out yet.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Improving organization management in Forgejo</title>
				<link>https://antonin.delpeuch.eu/posts/improving-organization-management-in-forgejo/</link>
				<pubDate>Tue, 19 May 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/improving-organization-management-in-forgejo/</guid>
				<description>&lt;p&gt;In January, I started a 2-year research project on the governance of FOSS projects.&#xA;I do this as part of the &lt;a href=&#34;https://aces.telecom-paris.fr/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ACES team&lt;/a&gt; at &lt;a href=&#34;https://www.telecom-paris.fr/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Télécom Paris&lt;/a&gt;, where I am hosted by &lt;a href=&#34;https://www.theozimmermann.net/en/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Théo Zimmermann&lt;/a&gt; and &lt;a href=&#34;https://upsilon.cc/~zack/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Stefano Zacchiroli&lt;/a&gt;. The project is part of the &lt;a href=&#34;https://www.pepr-ensemble.fr/en/congrats-large-scale-collaboration/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;CONGRATS area of the eNSEMBLE funding programme&lt;/a&gt;, which looks at the dynamics of online collaboration more broadly.&lt;/p&gt;&#xA;&lt;p&gt;One part of my project consists in looking into the existing governance dynamics in those projects, trying to identify patterns that work better than others. This involves collecting data from large collections of FOSS projects (via the &lt;a href=&#34;https://www.softwareheritage.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Software Heritage&lt;/a&gt; archive), interviewing people, and analyzing those results. I&amp;rsquo;ll write more about this later.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The puzzle of tree-sitter parser maintenance and distribution</title>
				<link>https://antonin.delpeuch.eu/posts/the-puzzle-of-tree-sitter-parser-maintenance-and-distribution/</link>
				<pubDate>Thu, 16 Apr 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/the-puzzle-of-tree-sitter-parser-maintenance-and-distribution/</guid>
				<description>&lt;p&gt;Lately I&amp;rsquo;ve been thinking about a problem which feels like an interesting governance one. (Yet another, yes!)&#xA;The recent &lt;a href=&#34;https://lobste.rs/s/jr4acs/nvim_treesitter_repository_was_archived&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;abandonment of the &lt;code&gt;nvim-treesitter&lt;/code&gt; repository&lt;/a&gt; made quite some waves, so it feels a fitting occasion to expose this problem here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://tree-sitter.github.io/tree-sitter/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Tree-sitter&lt;/a&gt; is a parser generator.&#xA;You specify a grammar for a language (say, Java or CSS) and it generates pretty efficient parsing code for it in C.&#xA;This parser can then be used in all sorts of applications, such as for syntax highlighting in text editors (&lt;a href=&#34;https://neovim.io/doc/user/treesitter/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Neovim&lt;/a&gt;, &lt;a href=&#34;https://helix-editor.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Helix&lt;/a&gt;, &lt;a href=&#34;https://zed.dev/blog/syntax-aware-editing&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Zed&lt;/a&gt;, &lt;a href=&#34;https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg01443.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Emacs&lt;/a&gt;…). It&amp;rsquo;s also &lt;a href=&#34;https://github.blog/engineering/architecture-optimization/codegen-semantics-improved-language-support-system/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;used in GitHub&lt;/a&gt; to list function definitions in files, for instance. We also rely on it in &lt;a href=&#34;https://mergiraf.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Mergiraf&lt;/a&gt;, our resolution tool for git conflicts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Is there a better word for &#39;hackathon&#39;?</title>
				<link>https://antonin.delpeuch.eu/posts/is-there-a-better-word-for-hackathon/</link>
				<pubDate>Wed, 04 Feb 2026 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/is-there-a-better-word-for-hackathon/</guid>
				<description>&lt;p&gt;In a recent event where a hackathon was organized, the organizer felt the need to emphasize multiple times that the hackathon wasn&amp;rsquo;t just &amp;ldquo;for crazy programmers who code all night long&amp;rdquo; but was more broadly open to all forms of co-creation between the attendees. It reminded me that I have some problems with this word, which I want to summarize here.&lt;/p&gt;&#xA;&lt;p&gt;To me, the word &amp;ldquo;hackathon&amp;rdquo; suggests sitting down to program something during an in-person event. The goal would be to have a prototype of a system, that would be presented at the end of the event, in some sort of final showcase.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Too much time on your hands</title>
				<link>https://antonin.delpeuch.eu/posts/too-much-time-on-your-hands/</link>
				<pubDate>Tue, 18 Nov 2025 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/too-much-time-on-your-hands/</guid>
				<description>&lt;p&gt;What if the main thing your FOSS project needed was that you work less on it?&#xA;It has definitely been the case for me, and I think I am not the only one.&lt;/p&gt;&#xA;&lt;p&gt;We regularly hear stories of heroic volunteer open source maintainers single-handedly&#xA;sustaining critical cornerstones of our digital infrastructure. We often hear how those selfless workers&#xA;have been in that position for decades, tirelessly fixing bugs after work in late night hacking sessions.&#xA;Many of them are role models in our movement. They define what it is to be successful as a FOSS maintainer.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Move your FOSS project to an org!</title>
				<link>https://antonin.delpeuch.eu/posts/move-your-foss-project-to-an-org/</link>
				<pubDate>Tue, 14 Oct 2025 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/move-your-foss-project-to-an-org/</guid>
				<description>&lt;p&gt;By default, forges like GitHub make you create new repositories under your own account. But most open source projects should rather be in an &amp;ldquo;organization&amp;rdquo;, even if there isn&amp;rsquo;t a corresponding legal entity for them.&lt;/p&gt;&#xA;&lt;p&gt;In this post, we&amp;rsquo;ll assume your repository is on GitHub, but most of it applies to other forges like GitLab or Codeberg.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-downsides-of-personal-repos&#34; class=&#34;relative group&#34;&gt;The downsides of personal repos &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#the-downsides-of-personal-repos&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;If you&amp;rsquo;re interested in attracting contributors to your project, personal repositories are not very well suited for that.&#xA;To onboard trusted contributors, your only option is to add them as &amp;ldquo;Collaborators&amp;rdquo;. This gives them write access to the repository, but not much more than that: they cannot onboard more people themselves, nor can they access most other repository settings.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Pull Request Hack is not enough</title>
				<link>https://antonin.delpeuch.eu/posts/the-pull-request-hack-is-not-enough/</link>
				<pubDate>Fri, 01 Aug 2025 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/the-pull-request-hack-is-not-enough/</guid>
				<description>&lt;p&gt;Years ago, I read &lt;a href=&#34;https://felixge.de/2013/03/11/the-pull-request-hack/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;The Pull Request Hack&lt;/a&gt;, a blog post advocating for a radical way of collaborating on FOSS: &amp;ldquo;&lt;strong&gt;Whenever somebody sends you a pull request, give them commit access to your project.&lt;/strong&gt;&amp;rdquo; The&#xA;post is really worth a read. More than a decade later, I think it aged well: a lot of FOSS projects would benefit from granting permissions to contributors more proactively.&lt;/p&gt;&#xA;&lt;p&gt;You might argue that the situation &lt;em&gt;has&lt;/em&gt; changed: since that blog post, some pretty traumatizing social engineering attacks have happened, such as the &lt;a href=&#34;https://en.wikipedia.org/wiki/XZ_Utils_backdoor&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;XZ Utils backdoor&lt;/a&gt; or the &lt;a href=&#34;https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;event-stream&#xA;incident&lt;/a&gt;. In both of those examples, malicious actors abused write accesses that maintainers granted them willingly, after seeing a track record of well-intended contributions.&#xA;It can be tempting to react to those attacks by raising the bar for granting privileges in FOSS projects, but I think it&amp;rsquo;s misguided. In both cases, the maintainers were particularly vulnerable to social engineering because they were isolated and overworked.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Intuitively, growing a project team proactively helps reduce this risk, both by having more eyes to scrutinize things and by those eyes being less strained. In other words:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Wikibase day-dreaming</title>
				<link>https://antonin.delpeuch.eu/posts/wikibase-day-dreaming/</link>
				<pubDate>Mon, 20 Jan 2025 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/wikibase-day-dreaming/</guid>
				<description>&lt;p&gt;Some months ago, I saw a job posting for &lt;a href=&#34;https://www.wikibase.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Wikibase.Cloud&lt;/a&gt;&amp;rsquo;s product manager.&#xA;It piqued my interest and lead me to ask myself what I would do if I were to work at &lt;a href=&#34;https://www.wikimedia.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Wikimedia Deutschland&lt;/a&gt;,&#xA;in a position to influence the direction the &lt;a href=&#34;https://wikiba.se/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Wikibase&lt;/a&gt; project.&#xA;I realized I have opinions, so this is an attempt to put them in an understandable format, mostly in the interest of being able to refer to it in discussions with people as those subjects regularly come up.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Off-the-shelf governance models for small FOSS projects?</title>
				<link>https://antonin.delpeuch.eu/posts/off-the-shelf-governance-models-for-small-foss-projects/</link>
				<pubDate>Fri, 20 Dec 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/off-the-shelf-governance-models-for-small-foss-projects/</guid>
				<description>&lt;p&gt;A one-person open source project with a governance model, is that ridiculous? In this blog post I want to convince you it isn&amp;rsquo;t, and it could be key to solving widespread problems in the FOSS (Free and Open Source Software) ecosystem.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problems&#34; class=&#34;relative group&#34;&gt;The problems &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#the-problems&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The free software movement is successful in many ways, but there are still annoying aspects to it. There are many situations where I feel like there is no shortage of people with goodwill, but we still fail to work together.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Retrospective of Dissemin and thoughts on the open access movement</title>
				<link>https://antonin.delpeuch.eu/posts/retrospective-of-dissemin-and-thoughts-on-the-open-access-movement/</link>
				<pubDate>Sun, 24 Nov 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/retrospective-of-dissemin-and-thoughts-on-the-open-access-movement/</guid>
				<description>&lt;p&gt;At the end of this year, we&amp;rsquo;ll be discontinuing &lt;a href=&#34;https://dissem.in&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Dissemin&lt;/a&gt;, a web platform designed to help researchers upload their articles to open repositories. I want to take the time to reflect a bit on this journey and what I learned&#xA;in the process.&lt;/p&gt;&#xA;&lt;p&gt;Dissemin started at &lt;a href=&#34;https://www.ens.psl.eu/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;École normale supérieure&lt;/a&gt; around 2015, when a bunch of us were motivated to try and do our bit to open up access to scientific publications. The open access movement wasn&amp;rsquo;t a new thing then, even at ENS. &lt;a href=&#34;https://en.wikipedia.org/wiki/Marie_Farge&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Marie&#xA;Farge&lt;/a&gt;, a researcher at the geosciences department of ENS, had been campaigning for open access for quite some time, and &lt;a href=&#34;https://pablo.rauzy.name/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Pablo Rauzy&lt;/a&gt;, a fellow computer science student a few years&#xA;before me, had written &lt;a href=&#34;https://pablo.rauzy.name/openaccess.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;a very helpful page in French on the topic&lt;/a&gt; and gave many talks on the matter. As I read my first scientific articles and also tried to write some, I discovered the problem of lack of access&#xA;and got in touch with Marie and Pablo. I also discovered the open access movement online, through many different resources such as those of &lt;a href=&#34;https://poynder.blogspot.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Richard Poynder&lt;/a&gt;, Peter Suber and of course the film &lt;a href=&#34;https://en.wikipedia.org/wiki/The_Internet%27s_Own_Boy&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;The Internet&amp;rsquo;s Own Boy&lt;/a&gt; about &lt;a href=&#34;https://en.wikipedia.org/wiki/Aaron_Swartz&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Aaron Swartz&lt;/a&gt;&amp;rsquo;s work, which&#xA;I found very impressive and inspiring.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mergiraf: a syntax-aware merge driver for Git</title>
				<link>https://antonin.delpeuch.eu/posts/mergiraf-a-syntax-aware-merge-driver-for-git/</link>
				<pubDate>Sat, 09 Nov 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/mergiraf-a-syntax-aware-merge-driver-for-git/</guid>
				<description>&lt;p&gt;A central feature of Git is the ability to merge the contents of diverging revisions. It underpins not just the &lt;code&gt;git merge&lt;/code&gt; command, but also &lt;code&gt;rebase&lt;/code&gt;, &lt;code&gt;cherry-pick&lt;/code&gt; and &lt;code&gt;revert&lt;/code&gt; for instance. Without it, no collaboration would be possible. And it generally works great.&lt;/p&gt;&#xA;&lt;p&gt;One limitation is that it&amp;rsquo;s line-based. If the two sides touch neighbouring lines, we need to manually resolve a merge conflict. That happens even if the changes are touching independent syntactic elements, because Git&amp;rsquo;s merging heuristic doesn&amp;rsquo;t know about syntax. Which begs the question: what if it did?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Spork</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-spork/</link>
				<pubDate>Fri, 08 Nov 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-spork/</guid>
				<description>&lt;p&gt;Welcome to my eighth contribution experience report. See the one about &lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt; for some background about the initiative.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ASSERT-KTH/spork&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Spork&lt;/a&gt; is a tool to merge diverging versions of Java source files. It&amp;rsquo;s the result of a Masters&amp;rsquo; thesis and has &lt;a href=&#34;https://arxiv.org/abs/2202.05329&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;a corresponding scientific article&lt;/a&gt; published about it, so it clearly identifies as research software.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s debatable whether such type of open source project is meant to include external contributions at all. A published research paper is normally treated as a final research output, which isn&amp;rsquo;t meant to evolve (apart from possible corrections to fix serious issues), so arguably any accompanying software should be equally final. For reproducibility purposes at least, the paper should point to a precise version of the software with which experiments can be reproduced. But there are also many examples of major open source projects which started off as research artifacts and got a life of their own after that.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Thunderbird</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-thunderbird/</link>
				<pubDate>Thu, 17 Oct 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-thunderbird/</guid>
				<description>&lt;p&gt;Welcome to my seventh contribution experience report. I have done others for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt;, where I give some background about the initiative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image&#34;&gt;Nextcloud&amp;rsquo;s docker image&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/&#34;&gt;Forgejo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-jgit/&#34;&gt;JGit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-mattermost/&#34;&gt;Mattermost&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-organic-maps/&#34;&gt;Organic Maps&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;my-motivation-to-contribute&#34; class=&#34;relative group&#34;&gt;My motivation to contribute &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#my-motivation-to-contribute&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;Sometimes I forget to join meetings. Generally without being able to offer any good excuse for it. But three years ago I skipped one and I had a genuine reason: it was Thunderbird&amp;rsquo;s fault!&#xA;It failed to import an invite in my calendar.&#xA;When I tried to import it again, it gave me a cryptic error: &amp;ldquo;Processing message failed. Status: 80004005.&amp;rdquo;&#xA;After some digging I found out that it was because the &lt;code&gt;UID&lt;/code&gt; field of the ICS file contained some special characters. Frustrating!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Organic Maps</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-organic-maps/</link>
				<pubDate>Sat, 13 Jul 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-organic-maps/</guid>
				<description>&lt;p&gt;Welcome to my sixth contribution experience report. I have done others for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt;, where I give some background about the initiative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image&#34;&gt;Nextcloud&amp;rsquo;s docker image&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/&#34;&gt;Forgejo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-jgit/&#34;&gt;JGit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-mattermost/&#34;&gt;Mattermost&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;my-motivation-to-contribute&#34; class=&#34;relative group&#34;&gt;My motivation to contribute &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#my-motivation-to-contribute&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;In Saxony, many bars allow indoor smoking. As someone who struggles in smoky places, I try to avoid those bars. It&amp;rsquo;s often not so easy to look up the smoking status of a place, as it is rarely advertised online,&#xA;so for a while I have been surveying bars and adding this information on OpenStreetMap, so it can be found easily. Well, easily for me, but not that easily for most people around me, because &lt;a href=&#34;https://openstreetmap.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;OpenStreetMap.org&lt;/a&gt;&#xA;isn&amp;rsquo;t user-friendly. So it&amp;rsquo;s not easy to share the result of my evening walks with them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Mattermost</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-mattermost/</link>
				<pubDate>Thu, 02 May 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-mattermost/</guid>
				<description>&lt;p&gt;Welcome to my fifth contribution experience report. I have done others for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt;, where I give some background about the initiative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image&#34;&gt;Nextcloud&amp;rsquo;s docker image&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/&#34;&gt;Forgejo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-jgit/&#34;&gt;JGit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This one is about contributing to &lt;a href=&#34;https://mattermost.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Mattermost&lt;/a&gt;. Mattermost is a chat application for teams, often seen as a FOSS replacement for Slack as it offers a very similar user experience.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-motivation-to-contribute&#34; class=&#34;relative group&#34;&gt;My motivation to contribute &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#my-motivation-to-contribute&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;I identified a small issue in the user interface: a checkbox not being properly associated with the text that describes its function, meaning that clicking on the text would not have any effect on the checkbox itself.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: JGit</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-jgit/</link>
				<pubDate>Sat, 20 Apr 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-jgit/</guid>
				<description>&lt;p&gt;Welcome to my fourth contribution experience report. I have done others for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt;, where I give some background about the initiative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image&#34;&gt;Nextcloud&amp;rsquo;s docker image&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/&#34;&gt;Forgejo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This episode is the first one about contributing to a library. &lt;a href=&#34;https://www.eclipse.org/jgit/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;JGit&lt;/a&gt; is a Java implementation of Git, covering many of the features&#xA;of the original implementation in C. This makes it possible to use Git in Java programs without having to use separate processes&#xA;and avoids license compatibility issues (Git itself is under GPLv2, JGit uses the Eclipse Distribution License which is similar to the new BSD license). JGit is used in pretty established projects such as the &lt;a href=&#34;https://eclipseide.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Eclipse IDE&lt;/a&gt; or &lt;a href=&#34;https://www.gerritcodereview.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Gerrit&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Forgejo</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/</link>
				<pubDate>Sun, 21 Jan 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-forgejo/</guid>
				<description>&lt;p&gt;Welcome to my third contribution experience report. I have done others for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;Git&lt;/a&gt;, where I give some background about the initiative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image&#34;&gt;Nextcloud&amp;rsquo;s docker image&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;my-motivation-to-contribute&#34; class=&#34;relative group&#34;&gt;My motivation to contribute &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#my-motivation-to-contribute&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;In short: I wanted to fix some bugs I had encountered, and I was curious about contributing to a &amp;ldquo;soft fork&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Here is more background. In &lt;a href=&#34;https://kanthaus.online&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Kanthaus&lt;/a&gt;, we used to rely on &lt;a href=&#34;https://about.gitlab.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;GitLab&lt;/a&gt; to host about 20 Git repositories for various documents (governance, minutes of meetings), for website sources (such as for &lt;a href=&#34;https://kanthaus.online&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://kanthaus.online&lt;/a&gt; or&#xA;&lt;a href=&#34;https://handbook.kanthaus.online&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://handbook.kanthaus.online&lt;/a&gt;) or some pieces of software used in the house (such as scripts to steer our heat pump or to gather statistics about the house).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: NextCloud&#39;s Docker image</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image/</link>
				<pubDate>Tue, 09 Jan 2024 00:00:00 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-nextclouds-docker-image/</guid>
				<description>&lt;p&gt;Welcome to my second contribution experience report. It follows&#xA;&lt;a href=&#34;https://antonin.delpeuch.eu/posts/contribution-experience-report-git&#34;&gt;the one for Git&lt;/a&gt; which gives some background about the initiative.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-motivation-to-contribute&#34; class=&#34;relative group&#34;&gt;My motivation to contribute &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#my-motivation-to-contribute&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;In short: I had been hit by a very annoying bug and I wanted to fix it.&lt;/p&gt;&#xA;&lt;p&gt;Here is more background. In &lt;a href=&#34;https://kanthaus.online&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Kanthaus&lt;/a&gt; we have a NextCloud instance that we&#xA;use for shared documents. I have recently started helping out to maintain it,&#xA;which means doing regular upgrades.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Contribution experience report: Git</title>
				<link>https://antonin.delpeuch.eu/posts/contribution-experience-report-git/</link>
				<pubDate>Sun, 17 Dec 2023 11:29:23 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/contribution-experience-report-git/</guid>
				<description>&lt;p&gt;Improving the experience of new contributors in &lt;a href=&#34;https://openrefine.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;OpenRefine&lt;/a&gt; or other projects I maintain is an important topic for me.&#xA;I think that whether a contributor stays active in a project depends a lot on the experience they have during their first contact.&#xA;I would generally like to have more feedback about the hurdles people have when trying to contribute to projects where I am active.&#xA;So I am starting to document my own experience when contributing to other projects. This feels like a useful way to take notes of things I would like to take inspiration from. Perhaps it is interesting to the said projects too.&#xA;Of course, I don&amp;rsquo;t claim that this experience is representative. Also, I acknowledge that not every open source project is necessarily seeking new contributors: it can be a deliberate choice not to invest any energy in onboarding people or to refuse any external contributions, for various reasons. It&amp;rsquo;s not what I wish for the projects I am involved in, though.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Trying out Graal&#39;s Native image functionality</title>
				<link>https://antonin.delpeuch.eu/posts/trying-out-graals-native-image-functionality/</link>
				<pubDate>Thu, 16 Nov 2023 11:29:23 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/trying-out-graals-native-image-functionality/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;https://openrefine.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;OpenRefine&lt;/a&gt;, we have been enforcing a code style for our Java files using &lt;a href=&#34;https://github.com/revelc/formatter-maven-plugin&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;a linter&lt;/a&gt;,&#xA;which reformats source files according to a configuration expressed in Eclipse&amp;rsquo;s internal format.&lt;/p&gt;&#xA;&lt;p&gt;Because the linter reuses Eclipse&amp;rsquo;s internal libraries, it is of course written in Java. Also, we invoke it via Maven, meaning that&#xA;the start up time of the linter is quite long: we need to boot a Java virtual machine (JVM), which then boots Maven, which finally runs&#xA;the formatter. So that&amp;rsquo;s not exactly fast. On my laptop it takes about 11 seconds. It&amp;rsquo;s not the end of the world, but it means it&amp;rsquo;s&#xA;a bit annoying to have it as a git &lt;a href=&#34;https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;pre-commit hook&lt;/a&gt;, and it&amp;rsquo;s definitely&#xA;not suitable as a git &lt;a href=&#34;https://git-scm.com/docs/gitattributes#_filter&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;filter driver&lt;/a&gt;. Those filter drivers are processes which take&#xA;the contents of a file on standard input and output a normalized version of it. Given that they are run on the fly for things as basic&#xA;as doing a &lt;code&gt;git diff&lt;/code&gt; or &lt;code&gt;git status&lt;/code&gt;, they need to be really quick.&lt;/p&gt;</description>
			</item>
			<item>
				<title>My roadmap for OpenRefine</title>
				<link>https://antonin.delpeuch.eu/posts/my-roadmap-for-openrefine/</link>
				<pubDate>Sat, 21 Oct 2023 11:29:23 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/my-roadmap-for-openrefine/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;https://openrefine.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;OpenRefine&lt;/a&gt; we still haven&amp;rsquo;t got ourselves a clear, public roadmap indicating what we are working towards in the near future.&#xA;There are &lt;a href=&#34;https://forum.openrefine.org/t/openrefine-2032-what-direction-does-openrefine-want-to-go/272&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;various proposals&lt;/a&gt; as to how we should get ourselves one.&lt;/p&gt;&#xA;&lt;p&gt;So I thought I would at least write down what my own priorities are and paint of my vision for the project.&#xA;I don&amp;rsquo;t claim that this should be OpenRefine&amp;rsquo;s roadmap: there is a ton of other efforts that I would really agree with, but which I am less interested in working on myself. Other team members have their own agenda and my own priorities are not set in stone either.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Some missing features in software forges</title>
				<link>https://antonin.delpeuch.eu/posts/some-missing-features-in-software-forges/</link>
				<pubDate>Fri, 20 Oct 2023 11:29:23 +0200</pubDate>
				<guid>https://antonin.delpeuch.eu/posts/some-missing-features-in-software-forges/</guid>
				<description>&lt;p&gt;A lot of my work happens on software forges like GitHub or GitLab. They are very useful platforms, but they are not perfect. In this post I want to describe a few missing features around the transmission of open source projects to new maintainers.&lt;/p&gt;&#xA;&lt;h3 id=&#34;discovering-active-forks-of-a-repository&#34; class=&#34;relative group&#34;&gt;Discovering active forks of a repository &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#discovering-active-forks-of-a-repository&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;A lot of projects are maintained by a single person who, after a while, loses interest in the project, or even moves on completely and stops responding to any activity on the repository.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
