Skip to main content

Slack bot that understands the Emojirades game!

Project description

Emojirades

A Slack bot that understands the Emojirades game and handles scorekeeping.

CI Status

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emojirades-1.14.0.tar.gz (53.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emojirades-1.14.0-py3-none-any.whl (71.5 kB view details)

Uploaded Python 3

File details

Details for the file emojirades-1.14.0.tar.gz.

File metadata

  • Download URL: emojirades-1.14.0.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for emojirades-1.14.0.tar.gz
Algorithm Hash digest
SHA256 d77537ea434a2456e6347b154bfedf20c99e214d86582557cf26ff10152cb682
MD5 6ad96db8bbd0f6ee3758afef17e41a0d
BLAKE2b-256 b408b303ca950fe08d01cb384addfa24b33ed768d390264e62fcb0ea18fc33a3

See more details on using hashes here.

File details

Details for the file emojirades-1.14.0-py3-none-any.whl.

File metadata

  • Download URL: emojirades-1.14.0-py3-none-any.whl
  • Upload date:
  • Size: 71.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for emojirades-1.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 afcdc065ff2b5f0deb8abea3443bc8588c8a3c7d99d2e8a3fdcb73fcfd80b59a
MD5 2339049cb0bd7e22cbaaff0beca66d2e
BLAKE2b-256 fe7f412285ce478fd6697b481a602d53c0e4a42974ca15079a2f9a513f72c1de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page