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.1.tar.gz (53.5 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.1-py3-none-any.whl (71.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: emojirades-1.14.1.tar.gz
  • Upload date:
  • Size: 53.5 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.1.tar.gz
Algorithm Hash digest
SHA256 954a8c09dceaab79c1a4cf8235ccffa48ed11b51d9e3f28f1f864a48b0bf219b
MD5 6304efe415d6be30331f25bf3031dfb6
BLAKE2b-256 e17aa6000c93407270cc5e48ac8d56e99ee1591b45e0de8f7fb73659d52f22ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: emojirades-1.14.1-py3-none-any.whl
  • Upload date:
  • Size: 71.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d2291879cec0b4efc4d2004e15d711e81b43eccc59a3c60fbcff36d366c06821
MD5 20059ed4ee67cffafb6ee2ae871f7155
BLAKE2b-256 71f55a6f638f26e4238b15effe02b369a445cea198eb28dfe198aa92634b4701

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