Slack bot that understands the Emojirades game!
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file emojirades-1.15.0.tar.gz.
File metadata
- Download URL: emojirades-1.15.0.tar.gz
- Upload date:
- Size: 53.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf5f25c76cb087481889394f020538892cb63b660de4fa9372bdf9e73fe7a444
|
|
| MD5 |
21ae89fd9054e5069c3f8cd4dee891eb
|
|
| BLAKE2b-256 |
f7a5eb49168e82480969171e74c38b8cee88e317ae1dcbbe2a5a9ed388a76a13
|
File details
Details for the file emojirades-1.15.0-py3-none-any.whl.
File metadata
- Download URL: emojirades-1.15.0-py3-none-any.whl
- Upload date:
- Size: 71.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ec466e93ce62a10738f7e3455e677e3f0a9414aed2aef3ccdfa53388c130973
|
|
| MD5 |
0480c820a2bbab93e31d04a79352c47c
|
|
| BLAKE2b-256 |
7c79d6ce3003ea30d32e0db19c6e1ea078a6c434759b016d88fb357bd15090d2
|