All notable changes to AssignColorsByDayOfWeek will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.3 - 2026-04-02
- CodeQL workflow — CodeQL CLI dropped its PHP extractor so the workflow could never succeed; CI pipeline already covers linting, static analysis, and tests
0.2.2 - 2026-04-02
- Bump
actions/checkoutfrom 4.3.1 to 6.0.2 across all GitHub Actions workflows (ci.yml,codeql.yml,release.yml) - Widen
phpstan/phpstanComposer requirement from^1.10to^1.10 || ^2.0
0.2.1 - 2026-03-31
- GitHub Actions CI workflow mirroring the existing Gitea pipeline (lint, Composer install, PHPCS, PHPStan, PHPUnit)
- GitHub Actions release workflow: builds distributable plugin ZIP
(
AssignColorsByDayOfWeek-{version}.zip) and publishes a GitHub Release on semver tags; supports prerelease suffixes (e.g.v0.2.1-rc.1) - CodeQL SAST workflow — PHP
security-extendedquery suite on push/PR tomainand weekly schedule; results surface in GitHub Security tab .github/dependabot.yml— weekly Dependabot PRs forgithub-actionsandcomposerecosystemsSECURITY.md— supported versions table, private disclosure email, 72 h acknowledgement / 14-day resolution SLA
- All GitHub Actions
uses:references pinned to full commit SHAs (supply-chain hardening; Dependabot will keep them current) - Release job now requires manual approval via a
releaseGitHub environment before any artifact is published
- Enabled GitHub vulnerability alerts and automated security-fix PRs
- Applied branch protection on
main: force-pushes blocked, required status checkCI / cimust pass before merge - Added tag protection ruleset (
deletion+non_fast_forwardrules onrefs/tags/v*): existing release tags cannot be deleted or moved - Disabled unused repository surface area (wiki, projects)
0.2.0 - 2026-03-29
- Saturday and Sunday color parameters — all seven days now configurable; a "No change" sentinel option lets users leave weekend tasks untouched (GAP-07)
- Configurable timezone action parameter backed by PHP's full IANA identifier list;
"Server default" sentinel falls back to
date_default_timezone_get()— hardcodedAmerica/New_Yorkremoved entirely (GAP-06) - Day-of-week guard in
hasRequiredCondition()— resolves day fromdate_dueand returnsfalsewhen no color is configured for that day; prevents silentnullwrites tocolor_idfor weekend due dates (GAP-02, GAP-05) - PHPDoc blocks on all classes and methods —
@package,@author,@param,@return(GAP-09) composer.jsonwithphpunit/phpunit ^11.0andphpstan/phpstan ^1.10dev dependencies, PSR-4 autoloading, and atestComposer script (GAP-13)phpunit.xml.dist,phpstan.neonconfiguration filestests/Action/AssignColorsByDayOfWeekTest.php— 6 unit tests, 8 assertions coveringhasRequiredCondition()anddoAction()across all fixed behavior pathstests/Stubs/KanboardStubs.php— minimal Kanboard class stubs for local development without the Docker imagetests/bootstrap.php— loads Kanboard autoloader in Docker or local stubs otherwise.gitea/workflows/ci.yml— Gitea Actions CI pipeline with 5 stages: lint, Composer install, PHPCS, PHPStan, PHPUnit (GAP-14)LICENSE— MIT license file (year 2026, Brad Campbell) (GAP-15)docs/tasks/001-gap-analysis.md— comprehensive gap analysis with 16 gaps and 15 prioritized remediation tasks.ralphi/config.yaml— ralphi project configuration with Docker entrypoint caveat and project coding rulesscripts/docker-{lint,phpcs,phpstan,test}.sh— Docker-based quality check scripts
⚠️ BREAKING Fix i18n parameter key mismatch (GAP-03):getActionRequiredParameters()now uses fixed English strings ('Monday'…'Sunday') instead oft('Monday')etc. as parameter keys; lookup also uses fixed English strings matchingDateTime::format('l'). Existing configurations saved under a non-English Kanboard installation must be re-saved after upgrading.- Replace raw SQL helpers with
getParam()API (GAP-01, GAP-04): removedprojectHasCustomColors()andgetColorSettings();getColorForDay()reads colors via$this->getParam($day)with no DB queries;use PDOimport removed - Normalize all indentation to PSR-12 4-space style in both PHP files (GAP-08)
- Remove phantom
use Kanboard\Model\ColorModelimport; replaced with@property \Kanboard\Model\ColorModel $colorModelclass PHPDoc annotation (GAP-10) - Change loose
==to strict===inhasRequiredCondition()color comparison (GAP-11) getDescription()now explicitly states "based on the day of the week of the task's due date" (GAP-12)getPluginHomepage()now returns the repository URL instead of the author's personal site (GAP-16)docs/001-architecture.mdupdated to reflect corrected implementation; statusactive
0.1.0 - 2026-03-29
- Initial plugin implementation
Plugin.php— registersAssignColorsByDayOfWeekaction with Kanboard's ActionManagerAction/AssignColorsByDayOfWeek.php— assigns task card colors based on the day of week of the task's due date (Mon–Fri), triggered onEVENT_CREATE- Configurable per-project day→color mapping via Kanboard's automatic action UI