{"id":15722742,"url":"https://github.com/jedie/dev-shell","last_synced_at":"2025-04-30T14:42:25.104Z","repository":{"id":39648589,"uuid":"349159011","full_name":"jedie/dev-shell","owner":"jedie","description":"A \"dev-shell\" for Python projects ;)","archived":false,"fork":false,"pushed_at":"2025-03-11T15:28:04.000Z","size":399,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T03:02:26.338Z","etag":null,"topics":["developer-tools","development","python"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/dev-shell/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jedie.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-03-18T17:19:16.000Z","updated_at":"2025-03-11T15:27:32.000Z","dependencies_parsed_at":"2024-04-09T09:48:58.199Z","dependency_job_id":"70302e3e-dfe6-49a8-bed3-5d6d622fcf0e","html_url":"https://github.com/jedie/dev-shell","commit_stats":{"total_commits":109,"total_committers":2,"mean_commits":54.5,"dds":0.1009174311926605,"last_synced_commit":"d03509e31b1b602f7208fffd68b9bf0eaca6477c"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fdev-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fdev-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fdev-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fdev-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedie","download_url":"https://codeload.github.com/jedie/dev-shell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251722852,"owners_count":21633027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["developer-tools","development","python"],"created_at":"2024-10-03T22:09:07.654Z","updated_at":"2025-04-30T14:42:25.041Z","avatar_url":"https://github.com/jedie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A \"dev-shell\" for Python projects ;)\n\n**Note: The continuation of this project is uncertain!**\n\n[![tests](https://github.com/jedie/dev-shell/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/jedie/dev-shell/actions/workflows/tests.yml)\n[![codecov](https://codecov.io/github/jedie/dev_shell/branch/main/graph/badge.svg)](https://app.codecov.io/github/jedie/dev_shell)\n[![dev_shell @ PyPi](https://img.shields.io/pypi/v/dev_shell?label=dev_shell%20%40%20PyPi)](https://pypi.org/project/dev_shell/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/dev_shell)](https://github.com/jedie/dev-shell/blob/main/pyproject.toml)\n[![License GPL-3.0-or-later](https://img.shields.io/pypi/l/dev_shell)](https://github.com/jedie/dev-shell/blob/main/LICENSE)\n\n\nThis small project is intended to improve the start-up for collaborators.\n\nThe idea is to make the project setup as simple as possible. Just clone the sources and start a script and you're done ;)\n\nWhy in hell not just a `Makefile`? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)\n\nRun Tests? Just start the script and call the \"run test command\".\n\nThe \"dev-shell\" is the base to create a CLI and a shell. It also shows how to make a project bootstrap as simply as possible, e.g.:\n\n```bash\n~$ git clone https://github.com/jedie/dev-shell.git\n~$ cd dev-shell\n~/dev-shell$ ./devshell.py test\n```\n\n\n## How it works\n\nFirst start of the Python script [./devshell.py](https://github.com/jedie/dev-shell/blob/main/devshell.py) will bootstrap:\n\n* Generate a Python virtual environment (in short: `venv`)\n* Install poetry\n* Install project dependencies and the project himself\n\nThe output on first bootstrap start looks like:\n\n```bash\n~/dev-shell$ ./devshell.py\nCreate venv here: ~/dev-shell/.venv\nCollecting pip\n...\nSuccessfully installed pip-21.0.1\nCollecting poetry\n...\nInstalling dependencies from lock file\n\nPackage operations: 31 installs, 1 update, 0 removals\n\n...\n\nInstalling the current project: dev-shell (0.0.1alpha0)\n\n\n+ .venv/bin/python .venv/bin/devshell\n\n\nDeveloper shell - dev_shell - v0.2.0\n\n\nDocumented commands (use 'help -v' for verbose/'help \u003ctopic\u003e' for details):\n\ndev-shell commands\n==================\nfix_code_style  linting  list_venv_packages  publish  test  update\n\n...\n\n(dev_shell) quit\n~/dev-shell$\n```\n\nThe first bootstrap start takes a few seconds. Each later startup detects the existing virtualenv and is very fast:\n\n```bash\n~/dev-shell$ ./devshell.py\n\nDeveloper shell - dev_shell - v0.2.0\n\n(dev_shell) help\n```\n\nInfo: The `.venv` will be automatically updated via `poetry install` call if the `uv.lock` file has been changed.\n\nA call with `--update` will force to call some create/update steps, e.g.:\n\n```bash\n~/dev-shell$ ./devshell.py --update\n```\n\nYou can also just delete `/.venv/` and start `devshell.py` again ;)\n\n(Using `--update` is not to be confused with the call of \"update\" command.)\n\n\n## compatibility\n\n| dev-shell version | OS                      | Python version      |\n|-------------------|-------------------------|---------------------|\n| \u003e=v0.7.0          | Linux + MacOS + Windows | 3.11, 3.10, 3.9     |\n| \u003e=v0.5.0          | Linux + MacOS + Windows | 3.10, 3.9, 3.8, 3.7 |\n| \u003e=v0.0.1          | Linux + MacOS + Windows | 3.9, 3.8, 3.7       |\n\nSee also github test configuration: [.github/workflows/test.yml](https://github.com/jedie/dev-shell/blob/main/.github/workflows/test.yml)\n\n## History\n\n* [*dev*](https://github.com/jedie/dev-shell/compare/v0.8.0...main)\n  * TBC\n* [0.9.1 - 2025-03-11](https://github.com/jedie/dev-shell/compare/v0.9.0...v0.9.1)\n  * Fix usage as package in external projects\n* [0.9.0 - 2025-03-11](https://github.com/jedie/dev-shell/compare/v0.8.0...v0.9.0)\n  * Replace `poetry` with `uv`\n* [0.8.0 - 2024-04-09](https://github.com/jedie/dev-shell/compare/v0.7.0...v0.8.0)\n  * Remove \"gnureadline\" as dependency\n  * update boot script\n  * update requirements\n* [0.7.0 - 2023-04-25](https://github.com/jedie/dev-shell/compare/v0.6.1...v0.7.0)\n  * Update test matrix\n  * update requirements\n* [0.6.1 - 2022-09-02](https://github.com/jedie/dev-shell/compare/v0.6.0...v0.6.1)\n  * Set default subprocess timeout to 5 Min.\n  * Skip buggy Poetry v1.2.0\n  * Update requirements\n* [0.6.0 - 2022-07-19](https://github.com/jedie/dev-shell/compare/v0.5.0...v0.6.0)\n  * Add \"pyupgrade\" as shell command\n* [0.5.0 - 2022-05-29](https://github.com/jedie/dev-shell/compare/v0.4.0...v0.5.0)\n  * Add \"tox\" and \"poetry\" commands to call them installed in created ```.venv```\n  * Update requirements\n* [v0.4.0 - 2022-02-28](https://github.com/jedie/dev-shell/compare/v0.3.0...v0.4.0)\n  * Update to new cmd2, colorama and pytest versions\n* [v0.3.0 - 2022-01-30](https://github.com/jedie/dev-shell/compare/v0.2.4...v0.3.0)\n  * Remove \"flynt\" form linting/fix code style\n* [v0.2.4 - 2022-01-30](https://github.com/jedie/dev-shell/compare/v0.2.3...v0.2.4)\n  * Update requirements\n  * Use darker as code formatter and pytest-darker for linting\n* [v0.2.3 - 2021-11-15](https://github.com/jedie/dev-shell/compare/v0.2.2...v0.2.3)\n  * Update requirements\n  * [Flynt arguments can be changes via CommandSet](https://github.com/jedie/dev-shell/issues/29)\n* [v0.2.2 - 2021-04-13](https://github.com/jedie/dev-shell/compare/v0.2.1...v0.2.2)\n  * Include bootstrap file, to it's possible to use it in external projects, too.\n* [v0.2.1 - 2021-04-12](https://github.com/jedie/dev-shell/compare/v0.2.0...v0.2.1)\n  * Handle if \"poetry-publish\" is not installed, so a project that used \"dev-shell\" must not install it.\n* [v0.2.0 - 2021-04-11](https://github.com/jedie/dev-shell/compare/v0.1.0...v0.2.0)\n  * Rename: \"dev-shell.py =\u003e devshell.py\" because of better autocomplete\n  * Add `DevShellConfig.base_path` and use it in own commands like, `pytest`, `linting` etc. (So they are usable in external project, too.)\n  * recognize \"--update\" and \"--help\" arguments better in `./devshell.py` calls.\n  * Update `setuptools` on `.venv` creation, too.\n  * Fix Bugs/tests under Windows\n* [v0.1.0 - 2021-03-22](https://github.com/jedie/dev-shell/compare/v0.0.2...v0.1.0)\n  * Fix CI usage: Exit with correct return code if tests failed\n  * Better \"run as CLI\" implementation via new `run_cmd2_app()`\n  * Bugfix errors that only occur on Windows.\n  * Simplify `devshell.py` boot script and fix raise error if `ensurepip` missing\n* [v0.0.2 - 2021-03-19](https://github.com/jedie/dev-shell/compare/v0.0.1...v0.0.2)\n  * refactor colorful shortcuts\n  * display subprocess calls with separated colors\n* [v0.0.1 - 2021-03-19](https://github.com/jedie/dev-shell/compare/ad5dca...v0.0.1)\n  * first \"useable\" version\n\n## Project links\n\n* Github: https://github.com/jedie/dev-shell/\n* PyPi: https://pypi.org/project/dev-shell/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedie%2Fdev-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedie%2Fdev-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedie%2Fdev-shell/lists"}