Skip to main content

Manage chamber environments.

Project description

Manage chamber environments

This project is inspired by tfenv.

It's supposed to be a helper tool, that easily installs, removes, lists and switches different versions of chamber.

It downloads the different versions of chamber from the github release page: https://github.com/segmentio/chamber/releases.

It creates the configuration folder: ~/.config/chamberenv.

It manages the executable files in: ~/.local/bin, so make sure this is in your PATH variable.

Note:

  • This is work in progress.
  • I only tested it with linux, downloading and running chamber versions like chamber-v2.8.2-linux-amd64.

How to

  • Get help:
    • chamberenv --help
  • Get the tool version:
    • chamberenv --version
  • General usage.
    • List managed versions of chamber:
          chamberenv list
          # Result:
          * v2.8.2 (set by /home/norman/.config/chamberenv/version)
            v2.8.0
      
    • Install a specific version of chamber:
          chamberenv install --chamber-version v2.7.5
          # Result:
          INFO:ChamberEnv:Chamber version: v2.7.5
          INFO:ChamberEnv:CHECKSUM OK.
          Downloaded chamber version 'v2.7.5'.
          Using chamber version 'v2.7.5' now.
      
          chamber version
          # Result:
          chamber v2.7.5
      
      • The version of chamber will be downloaded if necessary.
      • The given version will be activated as well.
    • Use a specific version of chamber:
          chamberenv use --chamber-version v2.8.2
          # Result:
          INFO:ChamberEnv:Chamber version: v2.8.2
          Using chamber version 'v2.8.2' now.
      
          chamber version
          # Result:
          chamber v2.8.2
      
      • Nothing is downloaded.
      • The given version will be activated.
    • Uninstall a specific version of chamber:
          chamberenv uninstall --chamber-version v2.7.5
          # Result:
          INFO:ChamberEnv:Chamber version: v2.7.5
          Removed chamber version 'v2.7.5'.
      
      • The downloaded files for this version of chamber will be removed.
      • You cannot uninstall the active version of chamber:
            chamber version
            # Result:
            chamber v2.8.2
        
            chamberenv uninstall --chamber-version v2.7.5
            # Result:
            INFO:ChamberEnv:Chamber version: v2.8.2
            ERROR:ChamberEnv:Not uninstalling the active chamber version. Switch first using 'use'.
        
      • The only exception to the above rule is when the active version of chamber is the only version installed. This will remove the downloaded files as well as the chamber exectuable.
  • The option --debug shows debug information.

See:

  • chamberenv --help.
  • chamberenv install --help
  • ...

requirements.txt vs. setup.py

According to these sources:

I try to stick to:

  • requirements.txt lists the necessary packages to make a deployment work.
  • setup.py declares the loosest possible dependency versions.

Creating requirements.txt

You won't ever need this probably - This is helpful when developing the chamberenv.

pip-tools is used to create requirements.txt.

  • There is requirements.in where dependencies are set and pinned.
  • To create the requirements.txt, run update_requirements.sh which basically just calls pip-compile.

Note:

  • There also is build_requirements.txt which only contains pip-tools. I found, when working with virtual environments, it is necessary to install pip-tools inside the virtual environment as well. Otherwise pip-sync would install outside the virtual environment.

A development environment can be created like this:

    # Create a virtual environment 'venv'.
    python -m venv venv
    # Activate the virtual environment 'venv'.
    . /venv/bin/activate
    # Install 'pip-tools'.
    pip install --upgrade -r build_requirements.txt
    # Install dependencies.
    pip-sync requirements.txt
    ...
    # Deactivate the virtual environment 'venv'.
    deactivate

Executable

If installed using pip, a system executable will be installed as well. This way, you can just use the tool like every executable on your system.

chamberenv --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for chamberenv, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size chamberenv-0.0.2.tar.gz (6.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page