Skip to content

feat: country-neutral work policies and release 1.4.0 - #31

Merged
patrickschiller merged 1 commit into
mainfrom
release/1.4.0-international
Sep 7, 2026
Merged

patrickschiller merged 1 commit into
mainfrom
release/1.4.0-international

Conversation

@patrickschiller

Copy link
Copy Markdown
Owner

Summary

OpenClockwork currently assumes German holidays, automatic break deductions, and a Europe/Berlin deployment timezone. This release makes those policies explicit and configurable for organisations worldwide while preserving existing installations through a forward migration.

Linked issue

None; requested project internationalisation and release 1.4.0.

Changes

  • Add optional employee holiday calendars and custom dates, editable schedule break rules, and time-entry policy snapshots. New employees and schedules use neutral defaults; existing calendars, allowances, and deductions are preserved.
  • Use explicit installation/terminal timezones with UTC defaults, browser-language detection, regional formatting, and translated UI labels. Correct date-only leave displays and upcoming-leave filtering.
  • Keep the deprecated bundesland API alias, regenerate OpenAPI and the web client, and document nullable responses and validation of conflicting selections.
  • Add a prominent roadmap covering complete Solo mode, customer invoices, CAUR usage accounting, and combined human/agent billing. These remain planned features.
  • Align public documentation and all release metadata with 1.4.0. No new dependencies.

How was this tested?

  • pnpm nx run-many -t lint,typecheck,test,build -p api,web,shared,api-e2e,web-e2e --configuration=ci: passed; 88 shared and 94 web tests.
  • pnpm nx e2e api-e2e: 147 tests passed against isolated PostgreSQL.
  • Forward migration smoke test from 1.3.0 verified existing calendars, deductions, time entries, and terminal data.
  • Docker API/web builds and local PostgreSQL/API/web/HTTPS gateway health checks passed; browser login and new calendar/break controls verified.
  • Regenerated API contract, Nx formatting, git diff --check, and RELEASE_TAG=v1.4.0 pnpm release:verify-tag passed.

Release notes

Country-neutral work policies and regional UI defaults, with migration of existing installations. Full curated notes are in RELEASE_NOTES.md; Solo mode, invoices, and CAUR billing are covered in ROADMAP.md as planned work.

Upgrade impact

  • Database migration: 20260907120000_international_work_policies; atomic migration preserves legacy policies and historical deductions.
  • Compatibility: bundesland can now be null. New records no longer assume German calendars or automatic breaks; setup must explicitly configure the intended policy and leave allowance.
  • Manual operator action: back up database/attachments, retain volume names, and explicitly retain the existing TZ before upgrading. Deploy API 1.4.0 before web 1.4.0. See UPGRADING.md.

Checklist

  • All commits have DCO sign-off.
  • Local lint, typecheck, tests, and builds pass.
  • Behaviour changes have focused regression coverage.
  • Release notes and upgrade impact are documented.
  • Existing Prisma migrations are unchanged; schema changes use a new migration.
  • Existing domain tests were reviewed; no base-instructions.md exists in this checkout.
  • No new third-party dependencies.

Signed-off-by: Patrick Schiller <p@trickschiller.de>
@patrickschiller
patrickschiller merged commit 7820d80 into main Sep 7, 2026
4 checks passed
@patrickschiller
patrickschiller deleted the release/1.4.0-international branch September 7, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant