chore(deps): update phpstan/phpstan requirement from ^1.10 to ^1.10 || ^2.0 - #2
Closed
dependabot[bot] wants to merge 33 commits into
Closed
chore(deps): update phpstan/phpstan requirement from ^1.10 to ^1.10 || ^2.0#2dependabot[bot] wants to merge 33 commits into
dependabot[bot] wants to merge 33 commits into
Conversation
Covers prerequisites, getting started, dev workflow (branch, change, test, lint, commit, push), project structure, testing strategy, code quality tools, git hooks setup, CI recommendations, release checklist, and common troubleshooting.
Defines front-matter schema, directory purposes, numbered filename convention, writing style guide by audience, document type templates (spec, ADR, task, research), and a creation checklist.
Human-facing overview covering features, installation (plugin directory naming caveat), usage walkthrough, documentation index, development quickstart, contributing guide, and versioning notes.
Covers repository structure, conventional commit types and project- specific scopes, branching strategy, code style, documentation rules, versioning, task decomposition guidance, key pitfalls (SQL injection, plugin dir naming, hardcoded timezone), and current work items.
PHP/PSR-12 style rules, import conventions, PHPUnit testing patterns, conventional commit examples for this project, file creation conventions, patterns to follow (extend Base, use lifecycle methods), anti-patterns to avoid (raw SQL interpolation, bypassing conditions), and common task recipes.
Keep a Changelog format with v0.1.0 initial entry (Plugin.php and action implementation) and [Unreleased] scaffold for bootstrap artifacts.
Configures ralphi check commands (lint, phpcs, phpstan, test via docker-*.sh scripts), coding rules derived from the gap analysis, and a standing rule to override the kanboard/kanboard Docker image entrypoint — the default starts Apache and runs forever.
Adds scripts/docker-{lint,phpcs,phpstan,test}.sh. Each mounts the
plugin directory into kanboard/kanboard with --entrypoint /bin/sh to
run one-off commands without starting the web server. Require
vendor/ (composer install) except docker-lint.sh.
16 gaps identified across critical/high/medium/low severity: Critical (GAP-01..03): SQL injection via raw string interpolation, weekend due dates silently writing null color_id, and complete i18n failure in non-English installations due to translated param keys stored in DB but English day names used in lookup. High (GAP-04..05): bypasses Kanboard's getParam() API by re-querying action_has_params directly (returns all instances, not current one); no day-of-week guard in hasRequiredCondition() allowing doAction() to run against unconfigured days. Medium (GAP-06..11): hardcoded America/New_York timezone, no Sat/Sun support, mixed tabs/spaces, no PHPDoc, phantom ColorModel import, loose == comparison. Low (GAP-12..16): date_due semantics undocumented, no tests, no CI, no LICENSE file, homepage points to personal site. 15 concrete tasks (T-01..T-15) with dependency graph and acceptance criteria. Verified against Kanboard source via kanboard/kanboard Docker image (entrypoint overridden: --entrypoint /bin/sh).
Converts docs/tasks/001-gap-analysis.md into 11 user stories for the ralph autonomous loop (branch: ralph/gap-analysis-remediation). Critical path: US-001 (getParam API) → US-002 (i18n keys) → US-003 (weekend guard) → US-004/005 (Sat/Sun + timezone). Quality pass US-006..008 sequenced after core fixes stabilise. Infrastructure US-009..011 (LICENSE, tests, CI) close out the backlog.
- hasRequiredCondition() now resolves the day of week from date_due timestamp and returns false when getParam($day) is null or empty - Weekends (Saturday/Sunday) have no configured parameter so getParam() returns null — condition returns false, doAction() is never called, task color is left unchanged - doAction() is now fully unconditional: it trusts the condition guards every failure path (closes GAP-02, GAP-05) - Updated CHANGELOG.md under [Unreleased]
…son fixes - Remove phantom 'use Kanboard\Model\ColorModel' import (GAP-10): colorModel is resolved via DI container __get, not this use statement; add @Property \Kanboard\Model\ColorModel $colorModel annotation to class PHPDoc for static-analysis visibility instead - Add class-level PHPDoc block to AssignColorsByDayOfWeek - Change loose == to strict === in hasRequiredCondition() color_id check (GAP-11) - All PHP files confirmed tab-free and PSR-12 compliant (GAP-08) - cytopia/phpcs: 0 violations; lint: clean
- AGENTS.md: mark all US-001..US-011 work items complete - docs/002-development-guide.md: update project structure tree (tests/, scripts/, .gitea/, composer.json, phpunit.xml.dist, phpstan.neon, LICENSE, .gitignore); update tool table and lint/test commands to reference docker-*.sh scripts; remove 'if composer.json is added' caveat from getting started; switch PHPUnit version to 11 - docs/tasks/001-gap-analysis.md: status deprecated → all 15 tasks delivered in v0.2.0; add deprecation notice at top of file
Full gap-analysis remediation: SQL injection fixes, i18n key strategy (breaking), weekend crash fix, Sat/Sun support, configurable timezone, PSR-12 cleanup, PHPDoc, tests (6/8), CI pipeline, LICENSE.
Add two GitHub Actions workflows as corollaries to the existing .gitea/workflows/ci.yml pipeline: - .github/workflows/ci.yml: direct port of the Gitea CI — same 5-stage pipeline (lint, composer install, phpcs, phpstan, phpunit) using the same docker-based scripts. Triggers on push/PR to main. - .github/workflows/release.yml: creates a GitHub Release when a semver tag (v*.*.* ) is pushed. Builds a distributable plugin ZIP with the required root directory name AssignColorsByDayOfWeek (Kanboard plugin installer convention). vendor/ is intentionally excluded — this plugin has no production Composer dependencies. Uses gh CLI with --generate-notes for auto-generated release notes.
Extend the release trigger to match tags with a prerelease suffix (e.g. v0.2.1-rc.1). Detect the prerelease flag at runtime and pass --prerelease to gh release create so GitHub marks the release correctly.
Supply-chain (H3): - Pin actions/checkout to SHA 34e11487 (v4.3.1) in all three workflows - Pin github/codeql-action/init and /analyze to SHA 5c8a8a64 (v3.35.1) Dependency scanning (H2): - Add .github/dependabot.yml — weekly updates for github-actions and composer ecosystems; will open PRs to bump pinned SHAs automatically CodeQL SAST (M4): - Add .github/workflows/codeql.yml — PHP analysis with security-extended query suite on push/PR to main and weekly schedule Release gate (M1): - Add 'release' environment to release.yml job; environment configured with required reviewer (geekmuse) via GitHub API so every tag-triggered release requires manual approval before the job runs Security policy (M3): - Add SECURITY.md with supported versions, private disclosure email, and response SLA
--- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.1.45 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Owner
|
Resolved in commit c47b251 on main — phpstan/phpstan requirement widened to ^1.10 || ^2.0. |
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
dependabot
Bot
deleted the
dependabot/composer/phpstan/phpstan-tw-1.10or-tw-2.0
branch
April 2, 2026 03:22
geekmuse
added a commit
that referenced
this pull request
Apr 2, 2026
Allow PHPStan 2.x alongside 1.x to stay current with upstream releases. Closes #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)