- See if we can build via Python 3.10
- I originally tried pyton3.11 as there are lots of perf wins there but we have build errors
- Add CI to build with python3.11 on CI too
Test:
- Build it - `docker build --build-arg FULL=true -t gpt3discord .`
```
crl-m1:GPT3Discord cooper$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
gpt3discord latest 6cd5ff57745d 14 seconds ago 1.14GB
```
- This is an aarch64 build too
```
Darwin crl-m1.cooperlees.com 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:35 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103 arm64
```
- Once a week dependabot will look at dependencies and open a PR per depdency as they upgrade
- This will ensure we don't get to far behind without knowing a reason (hopefully via CI) not to upgrade
Let's have automation tell us when there are new action versions.
- It can also do pip - but we can add that in a seperate PR if there is interest ...
Right now we will get PRs once a week if there are new versions.
Test:
- Load with pyyaml to ensure valid yaml
Add missing ffmpeg to docker image
Change compose to use the .env file
Remove old docker workflow
Set arm64 to only be added to release docker images
Push to main and pr's make amd64 docker images only
Update INSTALLATION.md
Add more variables to sample.env
Update requirements.txt to include whisper as a pypi package
Update pyproject.toml with optional dependencies as [full]
Make two docker images, base(865MB) and full(1.69GB)
Add two requirements files as base and full for dependencies
Base doesn't have image, video and audio indexing capability
- Add a GitHub action to publish a source distribution (sdist) + wheel (binary package) to PyPI
- PyPI will create the package on upload unlike Docker Hub
This will need a PYPI_TOKEN secret added. Please go register @ pypi.org make a token please + add to GitHub secrets
- Later on you could swap the token locked to this one module if you want to be security concious
- (Please do this before merging)
- Upload latest + git commit has on ever push to main
- Upload latest_relesae when we do a github release
Need secrets added and potentially change of the Docker Hub image name etc.
- Add a pyproject.toml to install all modules and packages
- Use hatch to build + install
- Still only claim support for 3.9
- We don't specify versions in pyproject.toml on purpose so people can have some flexibility there
- If they want the tested pinned versions they can use requirements.txt like Docker + CI does ...
- This will allow the package to be uploaded to PyPI if you'd like now :)
- `git mv main.py gpt3discord.py` as main.py is to common (incase someone installs to shared python env)
- Move initalization code into a init() function to have entry point script call
- Update `Dockerfile` to install via pyproject.toml
- Both docker + build CI install requirements.txt so we get the known versions of dependencies that work
- Update README for less steps now in installing
- Side note, we will have to track versions now and increment as we see fit - I'd like to discuss using GitHub releases here ...
- Sort requirements.txt to be alphabetical ...
Test:
- Add python 3.9 CI to install our module
- Paves the way to add more CI to help me test the module works in 3.11
- Build in a local venv
- `python3.9 -m venv /tmp/foovenv`
- `/tmp/foovenv/bin/pip install -r requirements.txt`
- `/tmp/foovenv/bin/pip install .`
- Build in docker
- `docker build -t gpt3discord .`