Skip to content

Handle several packages with sdist or isolated build. #1162

Closed
@proofit404

Description

@proofit404

Hi,

First of all, I want to say thanks to the whole tox team for an awesome project.

This issue may be related to #715

Working on dry-python project requires a lot of library API prototyping.

In short we have this structure in our projects

.
├── pyproject.toml
├── src
│   └── library
│       ├── __init__.py
│       └── core.py
├── tests
│   ├── helpers
│   │   ├── examples
│   │   │   ├── __init__.py
│   │   │   └── usage.py
│   │   └── setup.py
│   └── test_library.py
└── tox.ini

Usually, our tests run some checks against code written with our library.

This is head of the test_library file.

from examples.usage import SomeClass

def test_some_class():
    assert SomeClass.some_thing

We use poetry to deal with packaging for our library.

This is content of the pyproject.toml

[tool.poetry]
name = "library"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

Also, we need to install examples package in the virtual environment to make it available for tests.

This is content of the tests/helpers/setup.py file.

from setuptools import setup

setup(name="examples", packages=["examples"])

We use isolated_build option to install our project in the virtual environment.

Also, we need to reinstall examples package before each run without rebuild of the whole environment. To develop rapidly.

This is content of the tox.ini

[tox]
envlist = py{27,34,35,36,37}
isolated_build=true

[testenv]
deps =
     pytest
     coverage
commands_pre = python -m pip install --quiet --force-reinstall --no-binary :all: ./tests/helpers/.
commands = coverage run -m pytest []

I want migrate examples package to the poetry as well.

And I want to be able to build it in the same isolated build as the main package.

Are there any possibilities to build several packages with isolated build?

Regards, Artem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions