Skip to content

Publishing a new major version (dropping support for older php versions, finishing TODOs) #329

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
TysonAndre opened this issue Jul 26, 2020 · 4 comments

Comments

@TysonAndre
Copy link
Contributor

  1. This allows using the void and object and nullable types from php 7.2. https://www.php.net/supported-versions.php still officially supports 7.2 for security patches (some third parties backport patches on a best effort basis, e.g. when packaged for Linux)
  2. This allows upgrading phpunit to support php 8.0. Currently, no versions of phpunit support php 8.0, and https://phpunit.de/supported-versions.html indicates phpunit 6 and 7 are no longer maintained. Future phpunit versions require adding :void, which means supporting multiple phpunit versions is inconvenient.
  3. This allows making the backwards incompatible changes that were added in TODOs - e.g. converting exception classes to a list, making types a list for union type support, etc

Related to #328 - it's possible to work around and run php 8.0 in Travis so keeping php 7.0 support is possible

I'm only familiar with a few of the packages depending on this https://github.com/microsoft/tolerant-php-parser/network/dependents?dependent_type=PACKAGE&package_id=UGFja2FnZS01NDI3MTMyOTI%3D

  • php-language-server hasn't received commits recently, but the language server is widely used and the maintainer is active and responsive elsewhere. (requires php ^7.0)
    It may be useful to support new token types in 8.0, but staying on 0.0.x indefinitely might add tech debt.
  • I use this for http://github.com/phan/phan/ as a polyfill/fallback parser (php ^7.2)
  • There are some other major dependents like phptree that I'm less familiar with
@roblourens
Copy link
Member

Thanks for opening the issue on php-language-server. I am ok with removing support for 7.0 and 7.1 but would look for feedback since Felix might have some idea of how many PHP devs are not updating regularly.

@TysonAndre
Copy link
Contributor Author

There's still no feedback on felixfbecker/php-language-server#790 after 5 months, and with the release of php 8.0.0, there's a better idea of what applications would use for a new major release of tolerant-php-parser

@TysonAndre
Copy link
Contributor Author

Thanks for opening the issue on php-language-server. I am ok with removing support for 7.0 and 7.1 but would look for feedback since Felix might have some idea of how many PHP devs are not updating regularly.

@roblourens - some questions before starting work on this

  1. Did you think there should be a new major release for tolerant-php-parser?
  2. If a new major release were to be published, how would the work be done? E.g. would the code changes be implemented by you/your colleagues, or implemented by external contributors such as myself and reviewed by you? (I'd assume the latter since you work on many projects)
    (if it would be done by external contributors, adding a branch such as v1 or next that PRs could target for 1.0.0-dev while working on the various changes may help since the work may be split into multiple smaller PRs taking different amounts of time to review/test out)

@roblourens
Copy link
Member

Sorry for the slow response. I will not have time in the near future to do the development work myself, but if you would like to work on this, I would set up a branch as you suggest, review changes, help out however needed.

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

No branches or pull requests

2 participants