Skip to content

Instructions in CONTRIBUTING.md lead to an incomplete environment #2760

Closed
@arr-ee

Description

@arr-ee

How do you use Sentry?

Self-hosted/on-premise

Version

1.40.5

Steps to Reproduce

  1. Clone repo
  2. Run steps outlined in CONTRIBUTING.md#Development Environment

Expected Result

pytest tests/ comes up all green

Actual Result

A string of small issues that leads from tests failing to even start to incompatible dependencies version to failures that should not be there.

  1. linter-requirements.txt installs pymongo, which unmasks pymongo integration tests. They rely on mockupdb being installed, but it's only mentioned in tox.ini => pytest blows up on collection.
    After installing mockupdb, I get 4 errors and 18 warnings (linux aarch64).
  2. Errors are due to test-requirements.txt not constrainting pytest version, triggering bug in pytest-forked that is documented in tox.ini
  3. Majority of warnings are due to pytest-asyncio not being installed by anything except for tox (and installing it without version constraints from tox.ini causes exciting issues)

None of the issues above are serious, but combined they add quite a bit of annoyance to the (ideally) first step of contributing to the project: developer environment setup.

Given the number of additional constraints mentioned in tox.ini, I almost wonder if suggesting using it instead of just pytest might be a good idea (btw tox just worked for me — great job setting it up!)

There is a quick (but brittle) solution, which is to introduce a Yet Another Requirements File for dev env bringup (and maybe make it pull others internally), but if anyone on the team has Thoughts on dependency management management but no time to implement them I'd be happy to lend a hand.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Component: Docsupdates on getsentry/docs or docstrings

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions