Metadata-Version: 2.1
Name: deps_rocker
Version: 0.1.3
Summary: A rocker plugin to help installing apt and pip dependencies
Author-email: Austin Gregg-Smith <blooop@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: rocker
Requires-Dist: pyyaml
Requires-Dist: off-your-rocker
Requires-Dist: toml
Requires-Dist: black>=23,<=24.4.2 ; extra == "test"
Requires-Dist: pylint>=2.16,<=3.2.0 ; extra == "test"
Requires-Dist: pytest-cov>=4.1,<=5.0.0 ; extra == "test"
Requires-Dist: pytest>=7.4,<=8.2.0 ; extra == "test"
Requires-Dist: hypothesis>=6.82,<=6.102.4 ; extra == "test"
Requires-Dist: ruff>=0.0.280,<=0.4.4 ; extra == "test"
Requires-Dist: coverage>=7.2.7,<=7.5.1 ; extra == "test"
Project-URL: Home, https://github.com/blooop/deps_rocker
Project-URL: Source, https://github.com/blooop/deps_rocker
Provides-Extra: test

# deps_rocker

This is a [rocker](https://github.com/tfoote/rocker) extension for automating dependency installation.  The aim is to allow a projects to define its development dependencies in a deps.yaml file which are added to the rocker container. The extension will recursivly search for deps.yaml files and run the install commands in several layers.  

Layer order:
- env

- scripts_tools
- apt_tools
- pip_tools

- scripts_base
- apt_base
- pip_base

- scripts
- apt
- pip

- pyproject_toml #reads from all pyproject.toml files

- scripts_post

If rocker is used to launch from a folder that contains multple projects with deps.yaml it will create a container to enable development of all of them combined together. 


example deps.yaml

```

env:
  - BASIC_ENV_VAR=1

apt_tools: #install basic development tools which almost never change
  - git
  - git-lfs
  - python3-pip

pip_tools: #install basic development tools which almost never change
  - pip #this updates pip to latest version
  - flit
  - pytest
  - ruff

pip: #project pip dependencies that may change on a more regular basis
  - pyyaml

```

run with:

```
rocker --deps-dependencies ubuntu:22.04
```



## limitations/TODO

This has only been tested on the ubuntu base image. It assumes you have access to apt-get.

