Skip to content

Develop#19

Merged
walmir-silva merged 6 commits intomainfrom
develop
Mar 3, 2026
Merged

Develop#19
walmir-silva merged 6 commits intomainfrom
develop

Conversation

@walmir-silva
Copy link
Contributor

No description provided.

- Update PHP requirement from ^8.3 to ^8.4
- Update kariricode/contract from ^2.7 to ^2.8
- Zero out require-dev (tools now managed by global kcode.phar)
- Add scripts and config sections to composer.json
- Rewrite CI to use kcode.phar from GitHub Releases + kcode quality
- Remove legacy dev infrastructure: Makefile, docker-compose.yml, .php-cs-fixer.php,
  phpunit.xml, phpstan.neon, psalm.xml, phpcs.xml, phpinsights.php, .env.example,
  .vscode/settings.json, .docker/

feat(src): apply PHP 8.4+ refactoring from fixed tar

- Remove dead setAccessible() call in AttributeAnalyzer
- Add clearCache() to AttributeAnalyzer contract interface
- Fix throws annotations in PropertyInspectionException
- Refactor PropertyAccessor and PropertyInspector for PHP 8.4

feat(tests): reorganize into Unit/Integration/Fixture structure

- Add tests/Fixture/ with UserFixture, SpyAttributeHandler, MixedAttributeFixture,
  NoAttributeFixture, PrivatePropertiesFixture and attribute fixtures
- Add tests/Integration/InspectionPipelineTest with full pipeline coverage
- Reorganize unit tests under tests/Unit/{Exception,Utility}/
- Remove legacy benchmarks, application.php and ad-hoc scripts from tests/
- Fix assertion in InspectionPipelineTest: name only has trim sanitizer

docs: add ADRs and SPEC from fixed tar

- ADR-001: Remove setAccessible dead code
- ADR-002: Add clearCache to interface
- ADR-003: Correct throws annotation
- SPEC-001: Property inspection pipeline

BREAKING CHANGE: Makefile removed, use kcode test/analyse/cs:fix instead
Tests: 40 passing, 96 assertions (PHPUnit 12.5.14, PHP 8.4)
Align README with kariricode-dotenv premium pattern:
- Add PHP 8.4+, PHPStan, ARFA badges
- Problem/Solution section with before/after code
- Full Quick Start with working PHP code example
- Feature sections: reflection caching, multi-pass pipeline,
  PropertyAccessor, attribute polymorphism, isolated error handling
- ASCII pipeline diagram (analysis → handler → mutation)
- Architecture table with ADR references
- Integration section (validator, sanitizer, normalizer)
- Project stats table
- Contributing with kcode commands (remove Docker/Makefile references)
- Add cache step for .kcode/vendor to avoid reinstalling on every run
- Use kcode init --skip-install only when cache is hit, full install otherwise
- Split quality into individual steps (cs:fix, analyse, test) for better
  visibility in GitHub Actions UI
- Add fail-fast: false to PHP version matrix
- Trigger CI on develop branch in addition to main
- Fix critical bug: previous CI used --skip-install unconditionally,
  causing kcode quality to fail (no binaries in .kcode/vendor/)
Remove kariri-ci-cd.yml and add the standard KaririCode 3-workflow pattern:

- ci.yml: unified quick pipeline (push/PR to main+develop)
  cs-fixer → phpstan L9 → psalm → phpunit via kcode quality

- code-quality.yml: 5 parallel jobs + quality-summary gate
  dependencies · security · analyse · cs-fixer · tests
  Gate job posts markdown report to GitHub Actions summary

- release.yml: tag-gated release pipeline
  Full kcode quality pass required before publishing GitHub Release
  Release notes include Quick Start and quality metrics

All workflows use wget + kcode.phar pattern from kariricode-dotenv,
PHP 8.4, pcov coverage driver, and kcode init (with full tool install).
…m/phpstan

- Add #[Override] to AttributeAnalyzer::analyzeObject() and clearCache()
- Add #[Override] to PropertyInspector::inspect()
- Add @return type annotation to AttributeAnalyzer::extractValues()
- Apply php-cs-fixer style fixes (native function prefix, trailing commas)
@walmir-silva walmir-silva merged commit 167c3b5 into main Mar 3, 2026
8 of 13 checks passed
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