Skip to content

release: v0.1.1 - #157

Merged
jaherhum merged 9 commits into
mainfrom
release/v0.1.1
Jun 21, 2026
Merged

release: v0.1.1#157
jaherhum merged 9 commits into
mainfrom
release/v0.1.1

Conversation

@jaherhum

Copy link
Copy Markdown
Owner

Description

Release v0.1.1. Promotes the accumulated develop work to main and bumps the project version. Merging this triggers release.yml, which builds and publishes the Docker image to GHCR.

Related issue

closes #145
closes #150
closes #151

Type of change

  • Bug fix
  • New feature
  • Enhancement
  • Chore / refactor
  • Documentation
  • Breaking change

Changes

Testing

  • Tested locally
  • Added/updated tests
  • Tested edge cases

CI (lint + pytest + docker build) passed green on the contributing PRs against develop.

Checklist

  • Code follows project conventions
  • No unnecessary files committed
  • .env and secrets are not included
  • Documentation updated if needed
  • Breaking changes are documented

Additional notes

First tagged release. After merge, tag v0.1.1 on main. The release.yml workflow publishes ghcr.io/jaherhum/crowdroom:latest + sha-<commit> on push to main.

jaherhum added 9 commits June 14, 2026 11:53
Coerce empty-string PIN to None in CreateRoom/UpdateRoom validators so
the model validator surfaces 'A private room needs a PIN.' instead of
the misleading 'PIN must be 4-6 digits.'. Add client-side PIN validation
in the create-room modal to block submission and show an inline message.

Closes #142
fix(rooms): clear error when creating private room without PIN
Point the compose `app` service at ghcr.io/jaherhum/crowdroom:latest and
move the local build into docker-compose.override.yml so `docker compose up`
still builds for dev while `docker compose -f docker-compose.yml up` pulls
the published image.

Refs #150
chore(docker): reference GHCR image in compose with local build override
The eager-load tests queried the module-level engine and only skipped when
no rows existed, so they raised OperationalError on a schema-less database
(e.g. CI). Replace that with a seeded temporary-SQLite fixture that patches
the service engine, so both tests exercise the relation load deterministically.

Also mock _get_current_queue_item in the track-mismatch test; the poll loop
reads it unconditionally, so the unmocked call hit the real database and was
swallowed by the catch-all, leaving _advance_queue uncalled.
test(playback): isolate poller tests from the shared SQLite database
Add ci.yml (ruff + pytest gates and a no-push Docker build on PRs to
develop/main and pushes to main) and release.yml (build and push the image
to ghcr.io/jaherhum/crowdroom with latest + sha tags on push to main).

Also add the missing docstring on ConnectionType so ruff check passes,
unblocking the lint gate.

Closes #151
Closes #145
ci: add GitHub Actions for lint/test, PR image build, and GHCR publish
@jaherhum jaherhum self-assigned this Jun 21, 2026
@jaherhum jaherhum added Kind/Chore Maintenance, refactor or tooling task Kind/Bug Something is not working Priority/Medium The priority is medium labels Jun 21, 2026
@jaherhum
jaherhum merged commit 8604d2f into main Jun 21, 2026
2 checks passed
@jaherhum
jaherhum deleted the release/v0.1.1 branch June 21, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Kind/Bug Something is not working Kind/Chore Maintenance, refactor or tooling task Priority/Medium The priority is medium

Projects

None yet

1 participant