Skip to content
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

Collect ideas for libflexport 3.0 #114

Closed
howard opened this issue Dec 16, 2019 · 7 comments
Closed

Collect ideas for libflexport 3.0 #114

howard opened this issue Dec 16, 2019 · 7 comments
Assignees
Milestone

Comments

@howard
Copy link
Collaborator

howard commented Dec 16, 2019

libflexport 3.0 - where are we going?

A new version of PHP with exciting features was released recently, and we've now had quite some time to collect experience about working with libflexport from internal- and customer perspective. It's time to apply this experience and leverage new possibilities to provide the best libflexport so far.

What's (mostly) certain

  • libflexport 3.0 will have PHP 7.4 as minimum requirement.
  • Maintainability level A must be restored.
  • Input validation must stay at the same level, if not increase.
  • All aspects of the library will be strictly typed.

Contributed ideas

  • More consistent handling of groups and usergroups.
  • Support for variants.
  • Possibly tied to XML 2 and CSV 3 export formats.

Impact on 1.x and 2.x

  • Support for both 1.x and 2.x will for now remain at the same level as now.
  • Once 3.x is sufficiently stable, and the adoption of PHP 7.4 has reached a TBD level, the support for 2.x will be reduced to bug fixes.

What we need before getting started

  • What works well with the current structure and usage of libflexport?
  • What can be improved?
    • Which things just outright suck?
    • Where are inconsistencies?
    • What is not intuitive or too complicated?
  • How can we reduce friction when creating an export from scratch?

Call to action

Please comment below if you have any input for the next major version of libflexport. Even the wildest ideas are welcome - they might not be part of the final thing, but at least inform its design. Your input is critical, so the next version is top instead of flop.

@howard howard added this to the v3.0 milestone Dec 16, 2019
@howard howard self-assigned this Dec 16, 2019
@howard howard pinned this issue Dec 16, 2019
@howard howard mentioned this issue Dec 16, 2019
3 tasks
@TheKeymaster
Copy link

TheKeymaster commented Dec 16, 2019

@howard I agree on most points with you, but there is one point where our opinions differ.

libflexport 3.0 will have PHP 7.4 as minimum requirement.

Generally speaking, having a minimum required up-to-date library is always a good thing. You can use all the new features it provides, but there are also some downsides which I want to point out.

Currently no one (or very few) people use PHP 7.4 in production. This would result, when releasing libflexport for PHP7.4-only, in very few testers. Having almost no one using it in production also means that this version is very likely less stable than those before.
It isn't like people do not want to use the library, but rather they are forced to use an out-of-date bug-fixes-only release, even if they just upgraded to PHP7.3 (which still gets updates and everything).

My suggestion is that we should keep being up-to-date with PHP itself (https://www.php.net/supported-versions.php) which would mean we should still support PHP7.2.


Otherwise great idea by wanting to use the new features that PHP provides, but I think it's the wrong way to restrict everyone to only use one version, which is a version that just came out a few weeks ago.

@dblaichinger
Copy link
Contributor

@howard

libflexport 3.0 will have PHP 7.4 as minimum requirement.

Agree with @TheKeymaster, even when using the latest release of our main shopsystems they are not able to use libflexport if it's restricted to PHP 7.4. only.

Current support of latest releases:

  • Shopware 5.6.3
    • PHP 7.2 / 7.3
  • Magento 2.3.3
    • PHP 7.1 / 7.2 / 7.3
  • Oxid 6.1.5
    • PHP 7.0 / 7.1

I suggest to wait for a 3.x libflexport release until those shopsystems making the minimum requirement PHP 7.4. as well otherwise I don't see any benefit.

Cheers,
Daniel

@howard
Copy link
Collaborator Author

howard commented Dec 17, 2019

@TheKeymaster @dblaichinger I understand your concerns, but the plans for libflexport's version roadmap may not have been conveyed sufficiently clearly.

  • libflexport 3.0's release is not imminent, but rather months out, as there is no rush for this and currently no extra resources to work on that, giving us the opportunity to iteratively work out a great design for the next generation of the library.
  • Again, 2.0 will be maintained as it is now with no foreseeable EOL or end of enhancement support.
  • The argument that enhancement support for two major versions takes a lot of effort is moot, as the library can be considered (safe for small things that come up in far intervals) to be functionally complete.
  • Bug fix support for 1.0 will remain in place, although it hasn't had any known bugs for a really long time anyway.

I suggest to wait for a 3.x libflexport release until those shopsystems making the minimum requirement PHP 7.4. as well otherwise I don't see any benefit.

The library is not tied to any specific shop system, and is in fact intended to be independently usable in any PHP-based shop. While the supported versions are a decent indicator of the market situation, I surveyed the shops of our customer exposing the X-Powered-By header to find out their PHP versions, and concluded that a significant number fall way below what those shop systems support. Following that argument, we'd have to in fact resurrect 0.x and extend its support all the way down to PHP 5.3, based on what some of our customers are using.

In any case, thanks for voicing your concerns! Rest assured that support for older PHP versions won't be reduced any time soon, and even if it were, the impact would be negligible given the high stability of the existing major versions.

Cheers,
Chris

@TheKeymaster
Copy link

@howard PSR-0 is deprecated since 2014-10-21. Let's use this opportunity to use PSR-4 autoloading instead.

@howard
Copy link
Collaborator Author

howard commented Aug 10, 2021

#133 shows that it's not obvious that usergroups also refer to groups in the context of CSV exports.

@TobiasGraml11
Copy link
Contributor

@howard I think I implemented everything that was mentioned here, should we close this issue?

@howard
Copy link
Collaborator Author

howard commented Apr 4, 2023

@TobiasGraml11 Yes - thank you very much!

@howard howard closed this as completed Apr 4, 2023
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

4 participants