pytest-dev / pytest-dev/pytest

A Nix build environment

Open
#14,250 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
14.5k
Forks
3.4k
Avg merge
2d 9h
Merged PRs (30d)
35

Description

What's the problem this feature will solve?

This feature will support Nix-based development workflows, without altering any assumptions of existing pytest development workflows.

Solution

I would like to create a build environment suitable for developing pytest with Nix.

Alternative solutions

One could maintain an external definition of such a Nix environment. However, this would be inherently non-discoverable for other potential Nix contributors.

Additional context

Nix is a declarative package manager, and can be used to create reproducible development environments. It can be thought of as python -m venv for an entire operating system.

The creation of an appropriate flake.nix is one way to support this workflow. With this file conjured, the command

nix develop

would put the developer inside a shell with all the tools necessary to develop pytest (specifically, tox, all supported versions of Python, and pre-commit.)

I've already opened #14249 with a suitable implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review issue #14249 and its proposed implementation first, since the issue says a suitable implementation is already open there. Check the proposed flake.nix against the stated requirements: nix develop should provide tox, all supported Python versions, and pre-commit without changing existing pytest workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, developer-experience
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.