{"id":19212288,"url":"https://github.com/matejc/devenv","last_synced_at":"2026-05-15T17:40:19.674Z","repository":{"id":147705479,"uuid":"398465545","full_name":"matejc/devenv","owner":"matejc","description":"Pluggable development environments builder that has potential to support any language or framework environment","archived":false,"fork":false,"pushed_at":"2022-03-13T15:43:01.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-13T17:30:05.676Z","etag":null,"topics":["cli","environments","nix"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matejc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-21T04:30:17.000Z","updated_at":"2023-09-08T18:25:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac945a80-bde5-4f8f-a124-fba2a8a48eb4","html_url":"https://github.com/matejc/devenv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matejc/devenv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matejc%2Fdevenv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matejc%2Fdevenv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matejc%2Fdevenv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matejc%2Fdevenv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matejc","download_url":"https://codeload.github.com/matejc/devenv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matejc%2Fdevenv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33073437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","environments","nix"],"created_at":"2024-11-09T13:46:19.794Z","updated_at":"2026-05-15T17:40:19.640Z","avatar_url":"https://github.com/matejc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# devenv\n\nPluggable development environments builder that has potential to support *any* language or framework environment.\n\nNix is being used for building environments, but you do not need to interact with Nix for using this tool (except installing it).\n\nDevEnv is what virtualenv is for Python, just for *any* supported language.\n\n\n## Requirements\n\n- Nix (https://nixos.org/download.html#nix-quick-install)\n\n\n## Install\n\nWith Nix:\n\n```shell\n$ git clone git://github.com/matejc/devenv\n$ nix-env -f ./devenv -i\n$ devenv modules  # to try out if it lists modules\n```\n\nWith PIP inside venv:\n\n```shell\n$ git clone git://github.com/matejc/devenv\n$ python3 -m venv ./devenv\n$ ./devenv/bin/pip install ./devenv\n$ ./devenv/bin/devenv modules  # to try out if it lists modules\n```\n\n\n## Usage (Python module)\n\n### Build the environment\n\nThis will not litter in your environment or your project directory.\n\nDependencies will be installed in `/nix/store` like the behavior of Nix.\n\nEnvironment files will be saved in your home directory as `~/.devenv/\u003chash\u003e/env`.\n\nExample for python project, before doing this you need to `cd` into project directory:\n\n```shell\n$ devenv build python -v 39 -i @requirements.txt -i robotframework==3.2.2 -p ./src\n```\n\nCommand will build the environment for Python 3.9 with dependencies from\nthe `./requirements.txt` and with Robot Framework 3.2.2. Additionally it will add\n`./src` to the start of `PYTHONPATH`.\nOn it's own this procedure will not touch your current shell in any way.\n\n\n### Using the environment\n\nFor running command under the environment you need to specify module name (in our example that is `python`)\nand a variant if it was used at creation time, since you can have multiple environments\nwith different variants (Python versions in this example). Additionally you need\nto run this command in same directory (or override working directory with `--directory` flag).\n\n```shell\n$ devenv run python -v 39 -- python -m yourpackage ...\n```\n\nIf you want to create a sub-shell environment, you can do this:\n\n```shell\n$ devenv run python -v 39 -- $SHELL\n```\n\n\n### Removing the environment\n\nLike `run`, this command needs to have same module name, module variant and working directory.\n\n```shell\n$ devenv rm python -v 39\n```\n\nAdditionally you can run the:\n\n```shell\nnix-collect-garbage -d\n```\n\nFor more info about Nix garbage collector: https://nixos.org/guides/nix-pills/garbage-collector.html\n\n\n### List currently supported modules\n\n```shell\n$ devenv modules\n```\n\n\n## Development\n\nWith Nix:\n\n```shell\n$ git clone git://github.com/matejc/devenv\n$ cd devenv\n$ nix-shell\n```\n\nWith PIP inside venv:\n\n```shell\n$ git clone git://github.com/matejc/devenv\n$ python3 -m venv ./devenv\n$ ./devenv/bin/pip install -e ./devenv\n$ ./devenv/bin/devenv modules  # to try out if it lists modules\n```\n\n\n### Develop more modules\n\nFor example there is Python module:\nhttps://github.com/matejc/devenv/blob/master/src/devenv/modules/python.nix\n\nYou can override or add more modules by creating DevEnv module files in empty directory.\nThen include absolute paths to directories (separated by ':' if you have more)\nto `DEVENV_MODULES_PATH` environment variable before running `devenv`.\n\nTo check which module is picked up, use the list supported modules command.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatejc%2Fdevenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatejc%2Fdevenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatejc%2Fdevenv/lists"}