codefog/contao-haste

Preparing the release of version 5.0

Closed this issue · 8 comments

Hello fellow Contao developers!

Haste 5.0 beta1 has just been tagged. There are a few things we still need to check but we would like to get feedback of the broader Contao community before a stable release.

Ideally, you'll start to adjust your extensions now in order to see if things are working for you.
All the changes are documented in our UPGRADE.md but here are the most important design decisions:

  • Haste 5.0 is going to be compatible with Contao ^4.13 || ^5.0 only. We will not support 4.9 anymore. That's one of the only things that's carved in stone, we will not change our opinion on that (so no need to ask for it!). You can read more on the reasoning here.
  • Haste 5.0 changed its namespace so we don't pollute the vendor namespace anymore. It's no longer Haste but Codefog\HasteBundle.
  • This means, if you want to be compatible to Contao 5 and you need Haste components, you cannot support Contao 4.9 anymore. If you absolutely want to do so, you will have to be compatible to Haste 4 and 5 as well and thus use class_exists() and other switches in your code.
  • Static helper methods have beeen transformed to services. We defined most of them public though, so you can still access them in older, non-DI code using System::getContainer()->get(...).
  • 90% of the code was dropped because Haste predates the world of Composer. Now we have Packagist and acccess to a wonderful world of libraries that are way better, well tested and used by millions of projects. We have added a few recommendations for replacement libraries in our UPGRADE.md.

ToDos before 5.0 stable:

  • Probably make the back end scripts independent from MooTools as that's going to die in the future anyways.

Mentioning people based on my own knowledge and https://packagist.org/packages/codefog/contao-haste/dependents:
@qzminski @aschempp @fritzmg @m-vo @ausi @bytehead @leofeyer @koertho @dmolineus @markocupic @richardhj @denniserdmann @do-while @doishub @fiedsch @Tastaturberuf @MDevster @blairwinans @janborg @felixpfeiffer @christianbarkowsky @ameotoko

(feel free to notify other people if you think they are affected :))

By the way: when I say "we" I'm talking about @qzminski. I just did concept stuff here :P

Many thanks for this important Info!
Do you have an expected date, when version 5 will be released as stable version?

For us @terminal42, haste is a dependency of quite a few extensions so in order to make these extensions compatible with Contao 5, we'll have to wait for haste 5.0. Which means, we would like to release haste 5.0 rather soonish. However, we also want to make sure, we get things right for haste 5.0 and ensure all the other developers have enough time to work on their extensions too so we can adjust things preferably before the release of 5.0 stable in case anything goes wrong.

So we kind of have contradictory goals here. On one hand, the faster, the better. On the other hand, we need to allow other developers to test their extensions.

We're currently aiming at probably around the end of November for a stable release. Which also means that no other extension that requires haste is going to be compatible with Contao 5.0 any earlier.

Just require "codefog/contao-haste": "^5@dev". Anyone installing your extension will then either have to reduce the minimum-stability to dev - or also require "codefog/contao-haste": "^5@dev" in their project.

m-vo commented

👏 Thanks for the hard work! The diff just shows a tad bit how much changes were made.

IMHO it's a very good move to reduce the extension to a smaller feature set again. Did you consider going a step further and splitting each component its own bundle (e.g. monorepo + split)? I'm not too involved into the code base but it always appeared to me that the features were quite independent. I feel it's likely more helpers will be included in the future and others replaced. This way composer could handle this and developers could be more expressive in what they actually require.

We did but there are mainly three areas for which haste will remain the go-to helper:

  • n:m relations
  • form handling with Contao widgets
  • formatting based on DCA settings

All of which will probably become irrelevant at some point too if the Core itself can provide alternatives.
And splitting those 3 areas in separate bundles was just not worth the hassle for us.

We're currently aiming at probably around the end of November for a stable release. Which also means that no other extension that requires haste is going to be compatible with Contao 5.0 any earlier.

Adjusting ETA to end of October unless there are any objections from the community.

Haste 5.0.0 has been just released in #180.