Skip to content

Add DEBIAN_SETUP.md to support Debian and WSL environments (Fixes #1091)#1099

Open
Schronding wants to merge 2 commits intomalariagen:masterfrom
Schronding:GH1091-debian-setup-docs
Open

Add DEBIAN_SETUP.md to support Debian and WSL environments (Fixes #1091)#1099
Schronding wants to merge 2 commits intomalariagen:masterfrom
Schronding:GH1091-debian-setup-docs

Conversation

@Schronding
Copy link

@Schronding Schronding commented Mar 11, 2026

Fixes #1091

What problem does this solve? The current LINUX_SETUP.md relies on Launchpad PPAs, which are Ubuntu-specific and fail on Debian and other Linux distributions (detailed in #1091). This creates a barrier for contributors using non-Ubuntu environments.

How does it solve it? This PR adds a dedicated DEBIAN_SETUP.md guide.

  • The "Why" behind the technical choices: While I initially proposed using pyenv in the original issue, further research showed that uv is significantly faster and handles both Python installation and virtual environments seamlessly.
  • I considered suggesting uv as a global replacement for package management across the project, but since the test suite and repository heavily rely on poetry, I decided to keep uv strictly scoped to this Debian setup guide. I didn't want to make an irresponsible or disruptive change to the existing test architecture.

Testing done

  • Tested the setup instructions step-by-step natively on Debian 12 (Bookworm).
  • Tested the setup instructions on a separate machine using Debian via WSL.
  • Ran the local test suite successfully: 952 passed, 4 skipped, 241 warnings in 760.47s.

Breaking changes or migration notes None. This is purely an additive documentation change. I am completely open to feedback or expanding this to cover more distributions if the team thinks it would be valuable!

@jwgarber
Copy link

There are currently several setup guides, one for Mac, Linux, and the general contributing guide. It would be good to have a single guide that works for everyone as much as possible. The Contributing.md guide suggests installing python with poetry, do you know if that works on Debian? (Incidentally I agree that uv is better, but since we have poetry already it's probably simplest to stick to a single tool for now.)

@Schronding Schronding force-pushed the GH1091-debian-setup-docs branch from 27f3050 to 490a0a6 Compare March 12, 2026 18:26
@Schronding
Copy link
Author

@jwgarber Thank you so much for your comment! I have checked my solution again and I understand the source of the problem now. There were some things that I misunderstood.

  1. I thought the deadsnakes package was a necessary evil for Ubuntu, but as I kept exploring the alternatives, I noticed that I can use the same commands for Debian and Mint that I use for Ubuntu, but I definitely need to remove deadsnakes.

  2. When I did my research about Poetry, I saw that it didn't allow you to control the specific Python version, but after a second check, I found that newer versions do allow you to select it with the poetry python install <python_version> command.

As I know the MalariaGEN team is very busy, I went ahead and modified the file directly with the changes so you can tell me if there is another problem.

The reason why I am leaving the local installation in LINUX_SETUP.md instead of merging it into CONTRIBUTING.md is that @PaulaYaniz made a commit separating it about 3 weeks ago; I want to add to her contribution, not remove it.

Her commit says:

Per review feedback on #885, moved Linux and macOS developer setup instructions into dedicated LINUX_SETUP.md and MACOS_SETUP.md files. README now links to both. These will be referenced from the upcoming CONTRIBUTING.md (#860).

@Schronding
Copy link
Author

Hey @jwgarber and @jonbrenas,

I am quite proud of the work I've done here. I focused mainly on developing as universal a guide as possible for 5 different Linux distributions. I have tested all of them myself, and I am happy to say that the steps work seamlessly, even on freshly installed environments.

I also decided to remove the poetry shell command from the guide. Since Poetry 2.0.0, this command is no longer installed by default and requires additional plugin setup, which adds unnecessary friction. For context, running it on a fresh install now throws this warning:

Installing the current project: malariagen_data (0.0.0)

Looks like you're trying to use a Poetry command that is not available.
Since Poetry (2.0.0), the shell command is not installed by default. You can use,

  - the new env activate command (recommended); or
  - the shell plugin to install the shell command

I am completely open to feedback or questions. Let me know your thoughts on this contribution! :D

Tests

Ubuntu 24.04.4 LTS

==== 952 passed, 4 skipped, 234 warnings in 924.83s (0:15:24) =====
storm_trooper@StormTrooper:~/malariagen-data-python$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.4 LTS"

Arch Linux

==== 952 passed, 4 skipped, 232 warnings in 869.90s (0:14:29) =====
[schronding@StormTrooper malariagen-data-python]$ cat /etc/os-release
NAME="Arch Linux"

Fedora Linux 43

==== 952 passed, 4 skipped, 231 warnings in 913.85s (0:15:13) =====
schronding@StormTrooper:~/malariagen-data-python$ cat /etc/os-release
NAME="Fedora Linux"

Debian GNU/Linux 13 (trixie)

==== 952 passed, 4 skipped, 237 warnings in 922.34s (0:15:22) =====
schronding@StormTrooper:~/malariagen-data-python$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"

Linux Mint

============ 952 passed, 4 skipped, 227 warnings in 773.05s (0:12:53) ============
root@1fb669b4cfc6:/malariagen-data-python# cat /etc/os-release
NAME="Linux Mint"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: LINUX_SETUP.md relies on Ubuntu-specific PPA

2 participants