Closed llaville closed 1 year ago
@llaville it looks excellent, and I think we can drop the old PHP version support(7.4).
and I think we can drop the old PHP version support(7.4).
I'm 👍 with you, but I'm not sure if all community has still migrated to PHP 8.
As I said with a unique branch and source code, it will be more easy to maintain and change it quickly
Ok
Ok
Cool
I'll begin shortly (next hours), to revert source code on current branches.
Revert changes on 7.4
branch is over (commits f544718b674809bd47929eb19c51c6dc1f892c1f, 74a47d77f9452acfc54f91b8a8c692a082b6b2fe, d38276ec128237ab1efab9ed0f635c020c7321d4, 1cf71bf8abd5f41308fcf5f375e22bdd778df833) and ready for a new release 3.4.0
Release draft content is :
3.4.0
**CAUTION** This version is equivalent to v3.2.0 with following changes.
- Github Actions : Workflows changes from 3.3.0 until 3.3.2 were kept.
- Drop support to PHP 5 [#155](https://github.com/overtrue/phplint/issues/155), PHP 7.0, 7.1, 7.2, and 7.3
- Highlight PHP code in terminal package migration by @llaville : [#157](https://github.com/overtrue/phplint/issues/157)
- Short option `nf` did not work by @llaville : [#167](https://github.com/overtrue/phplint/issues/167)
- PHP-CS-Fixer migration to v3 by @llaville : [#156](https://github.com/overtrue/phplint/issues/156)
- Cosmetic fix with `php-parallel-lint/php-console-highlighter` dependency by @llaville : [#172](https://github.com/overtrue/phplint/issues/172)
- Add instructions for Gitlab CI usage by @matheusab : [#161](https://github.com/overtrue/phplint/pull/161)
PS: @overtrue if you have time to check/validate it before we push the new release 3.4.0
Revert changes on 8.0
branch is over and ready for a new release 4.5.0
Release draft content is :
4.5.0
**CAUTION** This version is equivalent to v4.3.0 with following changes.
- Github Actions : Workflows changes from 4.4.0 until 4.4.1 were kept.
- Highlight PHP code in terminal package migration by @llaville : [#157](https://github.com/overtrue/phplint/issues/157)
- Short option `nf` did not work by @llaville : [#167](https://github.com/overtrue/phplint/issues/167)
- Add instructions for Gitlab CI usage by @matheusab : [#160](https://github.com/overtrue/phplint/pull/160)
- Cosmetic fix with `php-parallel-lint/php-console-highlighter` dependency by @llaville : [#172](https://github.com/overtrue/phplint/issues/172)
- Raise symfony component constraints to latest LTS (5.4) by @llaville
PS: @overtrue if you have time to check/validate it before we push the new release 4.5.0
It's OK
Revert changes on 8.1
branch is over and ready for a new release 5.5.0
Release draft content is :
5.5.0
**CAUTION** This version is equivalent to v5.3.0 with following changes.
- Github Actions : Workflows changes from 5.3.0 until 5.4.2 were kept.
- Highlight PHP code in terminal package migration by @llaville : [#157](https://github.com/overtrue/phplint/issues/157)
- Short option `nf` did not work by @llaville : [#167](https://github.com/overtrue/phplint/issues/167)
- Add instructions for Gitlab CI usage by @matheusab : [#158](https://github.com/overtrue/phplint/pull/158)
- Cosmetic fix with `php-parallel-lint/php-console-highlighter` dependency by @llaville : [#172](https://github.com/overtrue/phplint/issues/172)
- Raise symfony component constraints to latest LTS (5.4) by @llaville
PS: @overtrue if you have time to check/validate it before we push the new release 5.5.0
Revert changes on 8.2
branch is over and ready for a new release 6.1.0
Release draft content is :
6.1.0
**CAUTION** This version is equivalent to v6.0.0 with following changes.
- Github Actions : Workflows changes from 6.0.0 until 6.0.4 were kept.
- Highlight PHP code in terminal package migration by @llaville : [#157](https://github.com/overtrue/phplint/issues/157)
- Short option `nf` did not work by @llaville : [#167](https://github.com/overtrue/phplint/issues/167)
- Add instructions for Gitlab CI usage by @matheusab : [#162](https://github.com/overtrue/phplint/pull/162)
- Cosmetic fix with `php-parallel-lint/php-console-highlighter` dependency by @llaville : [#172](https://github.com/overtrue/phplint/issues/172)
- Raise symfony component constraints to latest LTS (5.4) by @llaville
PS: @overtrue if you have time to check/validate it before we push the new release 6.1.0
@llaville it looks excellent, and I think we can drop the old PHP version support(7.4).
Finally, I'm agree with you @overtrue : upcoming version 7.0 will drop support to PHP 7 At least, if there are still users that don't have migrate yet to PHP 8, they will have ability to use PHPLint with version 3.
I've just finished to write the new base code, and will be available to push it to the new main
branch in few hours this day.
It'll let you time to explore and review it before we create a new official release 7.0
As promised, tests (unit and e2e) are included. That will avoid regressions for future version !
I also want to create a dedicated documentation. I'm confident to be able to produce a Material for MkDocs support quickly if you are agree ?
I think it's good @llaville
Sorry no code to push today. I want to make it almost perfect, and I found a possible regression. Need to investigate more (but I've no more free time today). Delay to tomorrow.
Good new ! I've found regression detected yesterday. I'm now ready to push code to repository (main
branch).
I'm prepraring a comparaison between versions (v4 or v5 or v6) and v7 (features changes or new, and minor issues fixed)
Finally upcoming major release will be 9.0 rather than 7.0 to follow composer branch aliases rules (https://packagist.org/packages/overtrue/phplint#dev-main)
All code are now pushed to the repository on main
branch (https://github.com/overtrue/phplint/tree/main)
I've splitted code on many commits to easy follows what I've changed.
By introducing Changie, we are able to produce release body report easily :
Here is what we may obtains currently with following command : docker run --rm --user $(id -u):$(id -g) --mount type=bind,source=$PWD,target=/src -w /src ghcr.io/miniscruff/changie:v1.10.2 batch major -d -k
### Added
- introduces [Changie](https://github.com/miniscruff/changie) for changelog automation
- add declare strict_types directive on top of each php script
- introduces test automation with PHPUnit
- introduces Finder component to find source files to analyse
- introduces Logger component (basic PSR-3) for cache debugging purpose
- introduces Dispatcher component with events to allow extensible code more easy
- introduces extensions to display checking progress
- introduces ConfigResolver component to resolve configuration with options
### Changed
- raise minimum version constraint on Symfony Components to use the current LTS (5.4)
- update `jetbrains/phpstorm-stubs` requirement to accept v2022
- update `brainmaestro/composer-git-hooks` requirement to accept v3.0 alpha1 : that will allow to update psr/log to v3 and symfony/console to v6
- code-rewrites to use Symfony Cache Component
- Lint process class was renamed and some minor type declaration were fixed
- Remove [n98/junit-xml](https://packagist.org/packages/n98/junit-xml) dependency and replace it by new JunitXmlReporter extension (about 30 lines of code)
- JsonReporter extension is specialized to produce JSON output results (see `--json` option)
- ConsoleReporter extension is specialized to produce CLI output
### Removed
- remove platform emulation by Composer [config/platform directive](https://getcomposer.org/doc/06-config.md#platform)
What's Features Changed
--json
or --xml
options. It was not possible with previous versions.declare(strict_types=1);
on all PHP source files. Allows to fix some type declaration issues.--progress=printer
by default without needed to invoke it)--progress=bar
)tests
folder for PHPUnit to avoid future regression.@overtrue I know nothing is perfect, but I've work hard to have a major version more easy to maintain and be extensible. Especially with Extension feature, and Event driven capability (thanks to Symfony EventDispatcher)
Documentation is still missing, but this new base code allow to anyone that want to try it, a chance to compare versions !
All feeback are welcome.
Forgot to said :
that the Cache component used now the Symfony Cache component with :
--no-cache
option.phplint.cache
directory rather than single file .phplint-cache
Still need to fix the Docker version with latest
tag (not yet functional)
Docker version is now fixed and we can get it with following command docker pull overtrue/phplint:latest
.
Issue was related to dependency not explicitly defined, and fixed by commit https://github.com/overtrue/phplint/commit/d0cc4d541215d2431e8ba5d765ea73b8467768de
With recent big commit 4761f236425f922ed27c34913141d5c696f741a0, PHPLint 9.0 reach a new more stable milestone.
@overtrue I'm ready for a new release (perharps a pre-release 9.0.0-rc.1, before a stable). I'll let you review all code, doc, tests. Your feedback are welcome
@overtrue 7 more commits since big commit, just to clean-up code.
@llaville Thank you for the heartfelt refactoring, I've looked at the code and it's really great 👍🏻 Thanks!
@overtrue I know the new version is a big refactoring : code, docs, tests So keep me aware, when you think you 'll have finished your review, and tell me your strategy about pushing new release. Thanks
Hi, @llaville, I've looked at all the code for the main branch, I can't go through it line by line for time reasons, but I think it's pretty good, my only suggestion is the name suggestions I gave you yesterday (https://github.com/overtrue/phplint/commit/4761f236425f922ed27c34913141d5c696f741a0#r100238743). Everything else is pretty good.
Also regarding versions, I think we can consider deprecating PHP with 7.X support when we release 9.x. Or do we follow the official rhythm of PHP? When PHP officially stops maintaining a certain version, we also drop the corresponding maintenance.
As release 9.x support PHP 8.0 or greater and because PHP 7 was official unsupported anymore, I agree with you and we should drop PHP 7.4 branch. But as I'm pretty sure not everybody has migrated to PHP 8, we could keep amount of time, time to get feedback for new major version 9.0
I'll apply your recommandation about option constants names in few minutes, and I'll be ready to publish 9.0
Name suggestions about options was applied with commit 5d60a7e76f63aca14835a66d3f9d31d29263c885
Closing this report as PHPLint 9.0.0 has just been released ! Even if PHAR distribution is not yet available : see issue #175
I am aware that I have been too quickly released the new versions v6.0.x, v5.4.x, v4.4.x and v3.3.x which reveal some regressions. As it is not my habit to provide such results, I wished :
main
branch that will support the new, more stable and compliant development for future version 7.07.4
) to avoid dupplicated code (hard to maintain)Hope @overtrue you're agree with my roadmap !
What does it means :
cache
option in YAML config file to disable cache subsystem, but rather the--no-cache
optionnf
did not work, and will not be restored (see issue #167)