https://github.com/pythoninthegrass/status-bot
https://github.com/pythoninthegrass/status-bot
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pythoninthegrass/status-bot
- Owner: pythoninthegrass
- License: unlicense
- Created: 2024-04-02T20:24:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-07T23:00:14.000Z (11 months ago)
- Last Synced: 2025-03-01T01:25:32.050Z (11 months ago)
- Language: Makefile
- Size: 82 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# mvp
**minimum viable python**
## Summary
Sets up a new development environment for a Mac or Linux (i.e., UNIX) box.
**Table of Contents**
* [mvp](#mvp)
* [Summary](#summary)
* [Setup](#setup)
* [Minimum requirements](#minimum-requirements)
* [Recommended requirements](#recommended-requirements)
* [Development](#development)
* [Makefile](#makefile)
* [Taskfile](#taskfile)
* [Devbox](#devbox)
* [Tilt](#tilt)
* [TODO](#todo)
* [Further Reading](#further-reading)
## Setup
### Minimum requirements
* [Python 3.11](https://www.python.org/downloads/)
* Dev dependencies
* make
* [Linux](https://www.gnu.org/software/make/)
* [macOS](https://www.freecodecamp.org/news/install-xcode-command-line-tools/)
* [editorconfig](https://editorconfig.org/)
* [wsl](https://docs.microsoft.com/en-us/windows/wsl/setup/environment)
### Recommended requirements
* [devbox](https://www.jetpack.io/devbox/docs/quickstart/)
* [task](https://taskfile.dev/#/installation)
## Development
### Makefile
```bash
# install all repo dependcies
make install
# install specific repo dependencies
make
```
### Taskfile
```bash
λ task
task: [default] task --list
task: Available tasks for this project:
* checkbash: Check bash scripts
* export-reqs: Export requirements.txt
* install: Install project dependencies
* pre-commit: Run pre-commit hooks
* run: Run the playbook
* run-dev: Run the playbook with tags and debug
* update-deps: Update dependencies
* docker:build: Build the docker image
* docker:down: Stop and remove containers, networks, and volumes with docker compose
* docker:exec: Shell into a running container
* docker:logs: Follow the logs of a running container
* docker:net: Create docker network
* docker:prune: Prune docker
* docker:push: Push the docker image to the registry
* docker:stop: Stop the project with docker compose
* docker:up: Start the project with docker compose
* docker:vol: Create docker volume
```
### Devbox
Devbox takes care of setting up a dev environment automatically. Under the hood it uses [Nix Package Manager](https://search.nixos.org/packages).
Currently, it supports the following:
* [asdf](https://asdf-vm.com/guide/getting-started.html#_2-download-asdf)
* [docker](https://docs.docker.com/compose/install/)
* [gh](https://cli.github.com/manual/)
* [minikube](https://minikube.sigs.k8s.io/docs/start/)
* [nodejs (21.4)](https://nodejs.org/en/download/)
* [poetry](https://python-poetry.org/docs/)
* [python (3.11)](https://www.python.org/)
* [task](https://taskfile.dev/#/installation)
* [tilt](https://docs.tilt.dev/install.html)
```bash
# enter dev environment
devbox shell
# run repl
python
# exit dev environment
exit
# run tests
devbox run test
```
### Tilt
```bash
minikube start --memory=2048 --cpus=2 --kubernetes-version=v1.28.3 -p minikube
git clone https://github.com/tilt-dev/tilt-example-python
cd tilt-example-python/3-recommended
tilt up
minikube stop
minikube delete
rm -rf tilt-example-python
```
## TODO
* [Open Issues](https://github.com/pythoninthegrass/mvp/issues)
* QA [Ansible playbook](ansible/playbook.yml)
* Test
* macOS
* Ubuntu
* Write boilerplate pytest tests
* CI/CD
## Further Reading
* [python](https://www.python.org/)
* [asdf](https://asdf-vm.com/guide/getting-started.html#_2-download-asdf)
* [poetry](https://python-poetry.org/docs/)
* [docker-compose](https://docs.docker.com/compose/install/)
* [pre-commit hooks](https://pre-commit.com/)