Skip to content

Long term planning, refactoring, breaking backwards compatibility and new features #39

@coenjacobs

Description

@coenjacobs

It's been a while since I've given this project the attention it deserves. Today, I've checked all fixes that you all have contributed in the past couple months and pushed everything that was ready in the 1.1.0 tag that is now available. If no bugs are found, that is going to be the last 1.x release for this library.

To push this project further and make it even easier for plugin developers to enforce a minimum and recommended version of PHP, some fundamental parts of the library need to change. The next version of this library will be version 2.0 and is going to be a full overhaul.

Refactoring is going to be the core purpose of this new release, where some of our long standing issues will take priority in finally being resolved.

Roadmap for 2.0

  • #8 Internationalisation has been on our radar since pretty much day one. Since this library will be bundled inside a plugin, it's impossible to ship our own textdomain. In one of the comments of earlier this year, @grappler proposed passing the strings to the main object, so we can translate them using the textdomain of the plugin itself. I'm a fan of this approach and want to make this happen for 2.0.
  • #22 Hide recommended version admin notice could perhaps be part of a 1.x feature release, but it's easier and cleaner if we do this at the same time as we do the meat of the refactoring in Multiple classes #35. Splitting the functionality up in multiple smaller parts makes the code cleaner and easier to refactor, but also more prone to class collisions (proven by Conflicts between plugins #37).

I'd like to continue using this issue as a discussion platform, where we can toy around with some new ideas or discuss the refactor in general. As soon as the dust has settled, I'll make sure the changes required for this release are properly specced out in separate issues.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions