laminas / laminas-ci-matrix-action

GitHub Action for creating a CI job matrix.
BSD 3-Clause "New" or "Revised" License
24 stars 15 forks source link

Implement a mechanism to shrink the `vimeo/psalm` baseline, when possible #159

Open Ocramius opened 1 year ago

Ocramius commented 1 year ago

Feature Request

Q A
New Feature yes
RFC yes
BC Break no

Summary

Whenever we make small adjustments to our codebase, we may improve type information.

It may be a good idea to reduce our psalm-baseline.xml accordingly, when possible.

The rough idea is that:

  1. a new change is pushed to the main configured branch (to be detected by CI)
  2. the change removed one type error somewhere
  3. we run vendor/bin/psalm --update-baseline, which should reduce the contents of psalm-baseline.xml (if it exists)
  4. if changes are produced by this pipeline, commit them
  5. push these changes to a reserved branch
  6. run CI on that branch
  7. auto-merge to main branch

This is extremely elaborate, compared to our current CI tasks, so it requires a lot of added engineering work around the pipeline, but it can probably be done :-)

boesing commented 1 year ago

With psalm having the new feature findUnusedBaselineEntry, I'd rather have this being done by the developer who improves types.

Not sure if the CI pipeline is the right place to run code improvements tho. We do require developers to run composer cs-fix, why not add composer baseline-update and let devs run this as well (once we enabled findUnusedBaselineEntry)?