When you want to clone a large git repository locally, consider using: git clone --filter blob:none <the_remote_repository> This is so much better than --depth 1 ! Instead, this method still gives you the full commit history but only downloads the file contents on demand, as they are needed. Initially, only the files appearing in the last revision of the default branch are downloaded (to make the…
In January, I started a 2-year research project on the governance of FOSS projects. I do this as part of the ACES team at Télécom Paris , where I am hosted by Théo Zimmermann and Stefano Zacchiroli . The project is part of the CONGRATS area of the eNSEMBLE funding programme , which looks at the dynamics of online collaboration more broadly. One part of my project consists in looking into the…
Lately I’ve been thinking about a problem which feels like an interesting governance one. (Yet another, yes!) The recent abandonment of the nvim-treesitter repository made quite some waves, so it feels a fitting occasion to expose this problem here. Tree-sitter is a parser generator. You specify a grammar for a language (say, Java or CSS) and it generates pretty efficient parsing code for it…
In a recent event where a hackathon was organized, the organizer felt the need to emphasize multiple times that the hackathon wasn’t just “for crazy programmers who code all night long” 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. To me, the word…
What if the main thing your FOSS project needed was that you work less on it? It has definitely been the case for me, and I think I am not the only one. We regularly hear stories of heroic volunteer open source maintainers single-handedly sustaining critical cornerstones of our digital infrastructure. We often hear how those selfless workers have been in that position for decades, tirelessly…
By default, forges like GitHub make you create new repositories under your own account. But most open source projects should rather be in an “organization”, even if there isn’t a corresponding legal entity for them. In this post, we’ll assume your repository is on GitHub, but most of it applies to other forges like GitLab or Codeberg. The downsides of personal repos If…
Years ago, I read The Pull Request Hack , a blog post advocating for a radical way of collaborating on FOSS: “ Whenever somebody sends you a pull request, give them commit access to your project. ” The 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. You might…
Some months ago, I saw a job posting for Wikibase.Cloud ’s product manager. It piqued my interest and lead me to ask myself what I would do if I were to work at Wikimedia Deutschland , in a position to influence the direction the Wikibase project. 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…
A one-person open source project with a governance model, is that ridiculous? In this blog post I want to convince you it isn’t, and it could be key to solving widespread problems in the FOSS (Free and Open Source Software) ecosystem. The problems 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…
At the end of this year, we’ll be discontinuing Dissemin , 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 in the process. Dissemin started at École normale supérieure around 2015, when a bunch of us were motivated to try and do our bit to open up access to scientific…
A central feature of Git is the ability to merge the contents of diverging revisions. It underpins not just the git merge command, but also rebase , cherry-pick and revert for instance. Without it, no collaboration would be possible. And it generally works great. One limitation is that it’s line-based. If the two sides touch neighbouring lines, we need to manually resolve a merge conflict.…
Welcome to my eighth contribution experience report. See the one about Git for some background about the initiative. Spork is a tool to merge diverging versions of Java source files. It’s the result of a Masters’ thesis and has a corresponding scientific article published about it, so it clearly identifies as research software. It’s debatable whether such type of open source…
Welcome to my seventh contribution experience report. I have done others for: Git , where I give some background about the initiative Nextcloud’s docker image Forgejo JGit Mattermost Organic Maps My motivation to contribute 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…
Welcome to my sixth contribution experience report. I have done others for: Git , where I give some background about the initiative Nextcloud’s docker image Forgejo JGit Mattermost My motivation to contribute In Saxony, many bars allow indoor smoking. As someone who struggles in smoky places, I try to avoid those bars. It’s often not so easy to look up the smoking status of a place, as…
Welcome to my fifth contribution experience report. I have done others for: Git , where I give some background about the initiative Nextcloud’s docker image Forgejo JGit This one is about contributing to Mattermost . Mattermost is a chat application for teams, often seen as a FOSS replacement for Slack as it offers a very similar user experience. My motivation to contribute I identified a…
Welcome to my fourth contribution experience report. I have done others for: Git , where I give some background about the initiative Nextcloud’s docker image Forgejo This episode is the first one about contributing to a library. JGit is a Java implementation of Git, covering many of the features of the original implementation in C. This makes it possible to use Git in Java programs without…
Welcome to my third contribution experience report. I have done others for: Git , where I give some background about the initiative Nextcloud’s docker image My motivation to contribute In short: I wanted to fix some bugs I had encountered, and I was curious about contributing to a “soft fork”. Here is more background. In Kanthaus , we used to rely on GitLab to host about 20 Git…
Welcome to my second contribution experience report. It follows the one for Git which gives some background about the initiative. My motivation to contribute In short: I had been hit by a very annoying bug and I wanted to fix it. Here is more background. In Kanthaus we have a NextCloud instance that we use for shared documents. I have recently started helping out to maintain it, which means doing…
Improving the experience of new contributors in OpenRefine or other projects I maintain is an important topic for me. I think that whether a contributor stays active in a project depends a lot on the experience they have during their first contact. I would generally like to have more feedback about the hurdles people have when trying to contribute to projects where I am active. So I am starting to…
In OpenRefine , we have been enforcing a code style for our Java files using a linter , which reformats source files according to a configuration expressed in Eclipse’s internal format. Because the linter reuses Eclipse’s internal libraries, it is of course written in Java. Also, we invoke it via Maven, meaning that the start up time of the linter is quite long: we need to boot a Java…
In OpenRefine we still haven’t got ourselves a clear, public roadmap indicating what we are working towards in the near future. There are various proposals as to how we should get ourselves one. So I thought I would at least write down what my own priorities are and paint of my vision for the project. I don’t claim that this should be OpenRefine’s roadmap: there is a ton of other…
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. Discovering active forks of a repository A lot of projects are maintained by a single person who, after a while, loses interest in the project, or even…
Hello! I do things with computers and with people, often in the form of contributions to open source projects. Currently: Forgejo , a forge platform Mergiraf , a conflict resolution tool for Git Debian , a popular Linux distribution Previously: OpenRefine , an open source data cleaning tool EditGroups , a tool to undo faulty batches of edits on wikis Dissemin , a platform to encourage researchers…