Socket
Book a DemoInstallSign in
Socket

tox-recreate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tox-recreate

Recreate tox virtual environments when `pyproject.toml`, `setup.cfg` or `setup.py` change.

pipPyPI
Version
0.0.6
Maintainers
1

tox-recreate

Recreate tox virtual environments when pyproject.toml, setup.cfg or setup.py change.

tox-recreate causes tox to automatically recreate its virtualenvs if your pyproject.toml, setup.cfg or setup.py files have changed.

Normally tox will automatically trigger a recreation of the venv if the test deps in tox.ini have changed. But what about your package's requirements in pyproject.toml, setup.cfg or setup.py? If those change tox won't automatically recreate the venv, you're expected to run tox --recreate yourself.

tox-recreate keeps track of the hashes of your pyproject.toml, setup.cfg and setup.py files and triggers tox to recreate your venvs if they change.

Setting up Your tox-recreate Development Environment

First you'll need to install:

  • Git. On Ubuntu: sudo apt install git, on macOS: brew install git.
  • GNU Make. This is probably already installed, run make --version to check.
  • pyenv. Follow the instructions in pyenv's README to install it. The Homebrew method works best on macOS. The Basic GitHub Checkout method works best on Ubuntu. You don't need to set up pyenv's shell integration ("shims"), you can use pyenv without shims.

Then to set up your development environment:

git clone https://github.com/hypothesis/tox-recreate.git
cd tox-recreate
make help

Releasing a New Version of the Project

Changing the Project's Python Versions

To change what versions of Python the project uses:

  • Change the Python versions in the cookiecutter.json file. For example:

    "python_versions": "3.10.4, 3.9.12",
    
  • Re-run the cookiecutter template:

    make template
    
  • Commit everything to git and send a pull request

Changing the Project's Python Dependencies

To change the production dependencies in the setup.cfg file:

  • Change the dependencies in the .cookiecutter/includes/setuptools/install_requires file. If this file doesn't exist yet create it and add some dependencies to it. For example:

    pyramid
    sqlalchemy
    celery
    
  • Re-run the cookiecutter template:

    make template
    
  • Commit everything to git and send a pull request

To change the project's formatting, linting and test dependencies:

  • Change the dependencies in the .cookiecutter/includes/tox/deps file. If this file doesn't exist yet create it and add some dependencies to it. Use tox's factor-conditional settings to limit which environment(s) each dependency is used in. For example:

    lint: flake8,
    format: autopep8,
    lint,tests: pytest-faker,
    
  • Re-run the cookiecutter template:

    make template
    
  • Commit everything to git and send a pull request

Testing Manually

To test it manually you can install your local development copy of tox-recreate into the local development environment of another tox-using project such as cookiecutter-pypackage-test:

  • Install a local development copy of cookiecutter-pypackage-test in a temporary directory:

    git clone https://github.com/hypothesis/cookiecutter-pypackage-test.git /tmp/cookiecutter-pypackage-test
    
  • Run cookiecutter-pypackage-test's make sure command to make sure that everything is working and to trigger tox to create its .tox/.tox venv:

    make --directory "/tmp/cookiecutter-pypackage-test" sure
    
  • Uninstall the production copy of tox-recreate from cookiecutter-pypackage-test's .tox/.tox venv:

    /tmp/cookiecutter-pypackage-test/.tox/.tox/bin/pip uninstall tox-recreate
    
  • Install your local development copy of tox-recreate into cookiecutter-pypackage-test's .tox/.tox venv:

    /tmp/cookiecutter-pypackage-test/.tox/.tox/bin/pip install -e .
    
  • Now cookiecutter-pypackage-test commands will use your local development copy of tox-recreate:

    make --directory "/tmp/cookiecutter-pypackage-test" test
    

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.