Repository navigation
Releases: melentev-av/opmin
Releases · melentev-av/opmin
Release list
v0.4.0
v0.3.1
v0.3.0
0.3.0 (2026-10-10)
Features
- config: cache.driver memory keeps counts and references for one run (#17) (4c08fd5)
- config: cache.driver sqlite, used automatically when pdo_sqlite is loaded (d0d0815), closes #9
- config: cache.recreate_corrupt deletes a corrupt SQLite cache and starts anew (421a2f5)
- config: the commands that analyze a project need opmin.yaml (fc34ebc)
- optimize: stop when the project's tests fail on the original code (add2ac9)
- optimize: the git clean check is off by default and covers only the run's files (#15) (70f2daf), closes #12
- report: explain every section, column and reason of report.md (7bc7a5b)
Bug Fixes
- analysis: index files with names that are not utf-8 (cd06802)
- analysis: keep hidden directories out of the reference index (#19) (9bf9746), closes #18
- config: resolve a relative cache.dir next to the config in use (#16) (b7f3f81)
- count: an arrow function ends on the line of the next token (f6bea2b)
- count: anonymous classes the compiler drops have no block in the dump (#23) (c8b7925)
- count: closures of frameless calls are dumped twice (8a100be)
- count: closures the compiler drops have no block in the dump (591342e)
- docker: intl and bcmath in the image (a7ab7a5)
- harness: no deadlock between a long request and output of the worker (bdd5321)
- harness: read the tail of stderr before reporting a crash (#22) (447b440)
- harness: talk to the worker over sockets on Windows (#11) (f4afaec), closes #10
- init: take the code paths from the autoload of composer.json (708a116)
- package: keep the download cache of composer between runs (346a75e)
- package: ship harness/ in the composer dist archive (#13) (ecf5975)
- package: show why composer install of a package failed (56e6432)
- project: keep the config's directory as the root of a monorepo package (#14) (4e04ea9)
- project: skip test files next to the code by default (38ebac1)
- rector: let a call of a known pure built-in function count as pure (#21) (d2737a1), closes #20
- self-update: end the process right after the file is replaced (06e0ebc)
- skill: opcode-minimize — unrendered version, run branch, patterns in PATTERNS.md (#7) (9d7e5e8)
- tests: a filter of thousands of tests fits into the command line (c7cf4b0)
- tests: read junit and coverage reports without ext-dom (ea0eea5)
Documentation
v0.2.0
0.2.0 (2026-10-08)
Features
- analysis: flag dynamic constructs per function and write the flags to count (81aa32e)
- analysis: index the functions and constants that shadow global ones (f72a5a0)
- baseline: write opmin.baseline.json with the opcode counts (2455071)
- check: fail ci when opcodes grow compared to the baseline (f5d5b43)
- count: count opcodes per function under php.binary, compare reports with diff (cf32dbb)
- docker: image with the static binary and the php of production (2756494)
- doctor: check php.binary, opcache, the harness, tests and phpstan (3e66b00)
- harness: add the PHP 8.1 worker that calls one version of a function (7ce4e06)
- ignore: add the Opmin\Ignore attribute class and plain comment marks (d51589b)
- init: detect php target, paths, test runner, formatter and phpstan (0efb58e)
- llm: add apply-candidate and the LLM session commands (3ed9f56)
- opcode counting, verification, optimization, ci guard and delivery (m1–m7) (543506a)
- optimize: add --review with declined changes in opmin.baseline.yaml (2ac89f7)
- optimize: allow a dirty git tree with --dry-run (abcfb1e)
- optimize: apply Rector rules one by one with counting and verification (9267772)
- optimize: resume interrupted runs and stop cleanly on signals (c7d81ad)
- package: optimize a git package by url in docker (08ba2b1)
- phar: composer package of the phar and a test in a project with other rector (8c51eb7)
- rector: add ExtractRepeatedArrayDimFetchRector and HoistLoopInvariantCountRector (fdbe92e)
- rector: add ExtractRepeatedPropertyFetchRector (98aa2d6)
- rector: add FullyQualifyGlobalCallsRector (0c3cb09)
- release: pin the opmin version per project and hand over to a local opmin (db8e6af)
- report: write report.md and a versioned report.json for every run (919a120)
- self-update: signed releases, self-update and install.sh (def0f09)
- skill: ship the Claude Code skill opcode-minimize (1e52b7d)
- tests: add test runner adapters, the static check and counterexample tests (4f36568)
- tests: check coverage maps live, make Pest filter by its descriptions (cf940dd)
- verification: compare call results and keep harness workers alive (6842f1b)
- verification: drive property-testing-core through a thin runner adapter (375f12e)
- verification: generate inputs, measure coverage and diff-test a function (cf986cd)
- verification: leave branches PHPStan proves dead out of the coverage (1aec0be)
- verifier: roll back slower changes with --guard-perf (66af8ce)
- verify: verify a changed file on all three levels (632643d)
Bug Fixes
- count: sort php versions with a typed callback, psalm on php 8.3 rejected version_compare (adc6f31)
- harness: extract the harness from the phar and the static binary (a21a40a)
- harness: keep fuzzed code from writing into the project (f285ec0)
- infection: create the report directories before the first write (bdbce89)
- optimize: describe a step of an executed-gain rule without a static gain (fd9adba)
- optimize: give every Rector rule a cache of its own (d975542)
- optimize: replace files through a rename and report why a file is not counted (1816ee1)
- phar: run rector and phpstan from the phar and the static binary (0054cab)
- playground: wait for Docker Desktop to see files rewritten just now (f1400b8)
- rector: let arithmetic between repeated reads count as pure (6ca4d12)
- release: cache key of static-php-cli without commas (eee39f3)
- release: no external php in the smoke tests of the macos intel binary (724bb8d)
- release: php 8.4 as php.binary of the macos smoke tests (5c1d04b)
- report: show no coverage for functions the differential test did not run (55cdc4c)
- tests: run PHPStan as a bare PHAR in the dead-branch test (d93cb41)
- verification: repair bugs that mutation testing brought out (444055c)
- verify: accept absolute paths outside the current directory (968f618)
Documentation
- readme: ci guard with github actions and gitlab ci examples (f2de34a)
- readme: describe the Rector stage of optimize (c73c987)
- readme: installation, quick start, git packages, verifying a release (ace945a)
- rector: measure the standard Rector rules and keep only those that save opcodes (52f7622)
- testing: describe the tests of the rules and of the optimize pipeline (a67a1ea)