I’d just like to second this. Our use of Poetry in particular has been thought though extensively, and is related to our strict requirement for both distributing with pinned dependencies, while also allowing developers to easily upgrade these dependencies.
Setup.py is really a mechanism for distributing libraries, not applications. The closest thing to what we need would be a requirements.txt
file, however that comes with its own extensive limitations, so the choice for us ends up being between Pipenv and Poetry, of which Poetry was found to be the least awful.
Regarding the CI tests, these are fine to leave failing while you’re in the thick of development, but as Julian mentioned we really need everything to be passing before we can merge anything in. This is especially important for the MyPy static type checking, which helps us identify potential bugs very early into development.
If you have a look around the codebase you’ll see a lot of type annotations around, which should be a good reference. Once you’re reasonably happy with the code, you’ll need to add these kinds of type hints to your new sections. They’re fairly straightforward but help a lot with testing