Emojirades
A Slack bot that understands the Emojirades game and handles scorekeeping.
Local Development Setup
This project uses uv for dependency management. Follow these steps to set up your local environment:
1. Install dependencies
Install the project and all development tools into a local virtual environment:
uv sync --extra dev
2. Configure Git Hooks
We use pre-commit to ensure code quality. Initialize the hooks so they run automatically on git commit:
uv run pre-commit install
3. Run Tests
Ensure everything is working correctly:
uv run --extra dev ./scripts/run_tests.sh
Running the Bot Locally
Initialization
# Initialize the database (SQLite)
uv run emojirades init --db-uri "sqlite:///emojirades.db"
Run (Single Workspace)
uv run emojirades single --db-uri "sqlite:///emojirades.db" --auth-uri "auth.json"
Run (Docker)
docker build -t emojirades .
docker run -e DATABASE_URI=sqlite:////data/emojirades.db -v $(pwd)/data:/data emojirades
Dependency Management
This project uses uv for lightning-fast dependency management and deterministic builds.
Adding/Updating Dependencies
# Add a new package
uv add requests
# Add a dev dependency
uv add --dev pytest
# Update a specific package
uv add requests@latest
# Update all packages to latest allowed by constraints
uv lock --upgrade
Syncing Environment
If the uv.lock or pyproject.toml file changes, sync your local environment:
uv sync
Database Migrations
We use Alembic for database migrations.
# Apply migrations
uv run emojirades init
# Generate a new migration (after modifying models)
# This can now be run directly from the root
uv run alembic revision --autogenerate -m "description of changes"
Deployment
The bot is automatically published to GHCR on tagged releases. See src/emojirades/__init__.py for the current version.
Release files for emojirades 1.15.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| emojirades-1.15.0.tar.gz | 53.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emojirades-1.15.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.4 kB
Release files / emojirades-1.15.0.tar.gz
| Download URL | emojirades-1.15.0.tar.gz |
|---|---|
| Size | 53.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bf5f25c76cb087481889394f020538892cb63b660de4fa9372bdf9e73fe7a444
|
|
BLAKE2b-256 checksum How to use checksums |
f7a5eb49168e82480969171e74c38b8cee88e317ae1dcbbe2a5a9ed388a76a13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / emojirades-1.15.0-py3-none-any.whl
| Download URL | emojirades-1.15.0-py3-none-any.whl |
|---|---|
| Size | 71.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ec466e93ce62a10738f7e3455e677e3f0a9414aed2aef3ccdfa53388c130973
|
|
BLAKE2b-256 checksum How to use checksums |
7c79d6ce3003ea30d32e0db19c6e1ea078a6c434759b016d88fb357bd15090d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|