laravel / telescope

An elegant debug assistant for the Laravel framework.
https://laravel.com/docs/telescope
MIT License
4.88k stars 583 forks source link

Laravel LTS 5.5 #65

Closed zaynbuksh closed 6 years ago

zaynbuksh commented 6 years ago

As an official Laravel project, please add support for Laravel LTS 5.5.

browner12 commented 6 years ago

probably not going to happen. there is no guarantee or expectation that new packages will work with old versions.

deleugpn commented 6 years ago

Agree with Brower12, LTS is only about stability. Telescope makes usage of Laravel features not available in 5.5 and it makes no sense to go through that trouble.

ollieread commented 6 years ago

There are already enough issues with third-party package developers not wanting to introduce LTS for 5.5, without official packages ignoring it.

@deleugpn could you provide some links please to the functionality not present in 5.5?

@browner12 while you are correct for the most part, the entire idea of Laravel LTS is that Laravel will support version 5.5 until the given time, and as an official Laravel package, it makes sense to support it, if, and only if, it's genuinely compatible.

I'm with you @zaynbuksh, 5.5 support should be present if possible.

browner12 commented 6 years ago

forget 5.5, Telescope isn't even compatible with 5.7.6.

https://github.com/laravel/framework/commit/3f68cbe3df82990c69e34309901fcefefdb65c95

zaynbuksh commented 6 years ago

Hi @browner12, thank you for your feedback. I was thinking that it's not necessarily correct that LTS can be considered an old version. It is a Long Term Supported version. So by its very nature, it can't be old (i.e obsolete) until the next LTS.

I agree with @deleugpn that an LTS version is (at least partially) about stability, but Laravel as an organisation has committed to support 5.5 it in the long term, otherwise it DOES just become an "old" version, and we're right back to square one.

It would be fair to expect that official Laravel packages should respect and honour that commitment to an LTS version.

This is part of a larger conversation in Laravel - it's about what LTS really means. It sets up how much Laravel can be relied upon by enterprises, where Long Term Support is a key criteria for their selection and championing of Laravel.

@themsaid @taylorotwell , what are your thoughts?

Also... http://gph.is/10KtNOH

ollieread commented 6 years ago

@browner12 Why is that? Is 5.7.7 the equivalent of 5.8? Were there breaking changes introduced between 5.7.6 and 5.7.7?

bonzai commented 6 years ago

@zaynbuksh:

For LTS releases, such as Laravel 5.5, bug fixes are provided for 2 years and security fixes are provided for 3 years.

https://laravel.com/docs/5.7/releases#support-policy

browner12 commented 6 years ago

These are completely optional packages. Your application does not need them to run in any capacity. laravel/framework 5.5 is still supported, and will continue to be supported until the designated date, but these "official" packages have nothing to do with that. There is no guarantee, no contract, no set expectation that these new packages will work on any version.

@ollieread there was not a breaking change, but rather a new feature/method was added that Telescope depends on.

zaynbuksh commented 6 years ago

Hi @bonzai, thanks for the quote and @browner12 I agree with you that this is an optional "official" package, I also agree that there is no contract that these packages will support the LTS. But that itself is what I would like to see changed. If Laravel has committed to an LTS, then that LTS becomes less meaningful if Laravel's own projects don't support it. "Laravel's excellent new packages don't support their own LTS versions" - this is not ideal.

clnt commented 6 years ago

I agree with @zaynbuksh and @ollieread

Would be nice if Laravel could set an example to other package creators to support LTS, I certainly support it in any packages I create.

Does all of telescope depend on 5.7? or just a particular feature which could be disabled for older Laravel installations?

HDVinnie commented 6 years ago

Also interested what locks telescope to 5.7 only. Would like to be able to use it on 5.6.

Insua commented 6 years ago

as a commercial project ,we only use LTS version,please support lts it make me disappointed for this official package

browner12 commented 6 years ago

@HDVinnie one thing that locks it to 5.7.7+ is the existence of this method.

https://github.com/laravel/framework/blob/5.7/src/Illuminate/Queue/Queue.php#L198

deleugpn commented 6 years ago

Reading through this topic makes me wonder if the problem lies in the support word. To me, LTS made a promise to offer support in the sense that if there is a bug or security problem, Taylor is going to invest his support time into fixing it. That has nothing to do with new development. In fact, as soon as the LTS version is no longer actively developed, it gets no new Laravel feature whatsoever. If Laravel 5.6 can have new features and the LTS cannot, why would a feature (package) developed 1 year after the LTS freeze has to work with it?

A new feature of Laravel 5.8 is support Carbon 2. LTS won't get that because that is a new feature and not a bug or security fix. Same goes for Telescope. Laravel 5.7.7 supports Telescope 1.0

clnt commented 6 years ago

@browner12 This is the only instance of that method in the telescope code https://github.com/laravel/telescope/blob/1.0/src/Watchers/JobWatcher.php#L26

Why can't the JobWatcher just be disabled for older versions? 🤔 Looking at the config file it looks already possible to disable watchers?

Hasnayeen commented 6 years ago

people seems to not understand support system. support means bug fix and security fix not feature addition, that's why we have version system, to differentiate between product features of different version

ollieread commented 6 years ago

I think the problem is not people misunderstanding a support system, it's people not understanding the ramifications.

What is the point in investing effort into providing long-term support for a particular version, when almost nothing else does?

Yay, our version of Laravel is all patched with security fixes and bug fixes. Shame we now have to fork every package we're using so that we can make sure their bug fixes and security patches are present in our version

There are already major issues with a lot of third party packages not wanting to provide LTS versions for 5.5, and while I'm sure there are some that do, a lot don't. Besides that one method, it does appear like it would be compatible with 5.5. It's less about Laravel as a group/company having to provide this support, and more about taking a particular stance and showing other package developers "Hey, we're doing it". By all means, don't support it if it requires an overhaul.

browner12 commented 6 years ago

If you're using v5.5, try out Laravel Debugbar. It provides most of the same functionality as Telescope.

https://github.com/barryvdh/laravel-debugbar

deleugpn commented 6 years ago

I understand what you're saying @ollieread, I just can't get myself to agree with it. By choosing an LTS, you're choosing stability over active development. But you seem to want stability and new shiny toys at the same time. I don't think you can have the cake and eat it too. Active Development brings new features to new Laravel versions while LTS stays stable for a few years.

Hasnayeen commented 6 years ago

yes it is about misunderstanding the support system.

What is the point in investing effort into providing long-term support for a particular version, when almost nothing else does?

The point of LTS is that one can use the software with this trust that if there is any bug or security vulnerability in the framework it'll be resolved. That means they are covered until the end of support line. And "nothing else" is not part of laravel framework, those are provided by individuals and they are responsible for supporting their individual package. You seems to mix these two different things.

It's less about Laravel as a group/company having to provide this support, and more about taking a particular stance and showing other package developers "Hey, we're doing it".

Their is no stance to take here, they are providing support for their framework and packages according to their commitment.

I'm just trying to explain, please don't take it otherwise, I'm also a developer just like you and trying to clear the confusions. Cheers!

clnt commented 6 years ago

It's not about misunderstanding the support system at all, we know what the support system is, we know it is only related to bug and security fixes.

We are sparking discussion on why we think the term "LTS" should be revised when it comes to package support. If a package needs to take advantage of a new Laravel feature for it to work at all, then fine; don't support LTS. We are not asking for new features to be backported to LTS. But when we can clearly see that the only file dependant on 5.7 is JobWatcher, why not just disable it for older versions and let more people take advantage of this awesome new tool?

Yes LTS is picked as a stable platform that receives security updates and bug fixes, but there should also be some peace of mind that included composer packages won't suddenly drop LTS support because "Well, Laravel doesn't support it so why should I".

Take the latest cookie serialization security patch for example, it required a change to be made to laravel/passport but it was only made to a later version (after someone had reported it in an issue). I had to open a PR to backport the security fix into the version Laravel 5.5 uses, but a new version was not tagged so people need to reference the branch directly. See how much of an inconvenience this is: 805 795

This broke a lot of peoples projects and cost them valuable time, but it could be avoided if Laravel was to at least recognise that their packages should be compatible with LTS releases (especially if it was released before said LTS).

ollieread commented 6 years ago

To be honest @deleugpn, I don't care for LTS. I think the whole idea is somewhat redundant and companies that stick to this end up just shafting themselves at a later date.

Choosing LTS is not choosing stability over active development, it's making the choice to forego the relatively simple task of updating the core versions and instead introducing a bunch of active development trying to keep your third-party packages up to date.

Though the question still stands. What is the point of LTS if nothing else honours it?

Cool, my core version is still supported, but everything else is horribly out of date and unsupported. Oh well, glad I got my stability!

oliversarfas commented 6 years ago

Telescope was not released when Laravel 5.5 was initially released.

It does not fall under requirements for support.

LTS is support for existing core functionality and security updates.

Forget the fact that telescope is a Laravel product for a second and was a third-party piece. Would we still be having this same discussion? I doubt it.

garrensweet commented 6 years ago

I agree with @ollieread. LTS is just a trap at this point.

emielmolenaar commented 6 years ago

Why don't you go ahead and create a PR, @zaynbuksh :wink:

themsaid commented 6 years ago

We don't have plans to support older versions at the moment. You can use https://github.com/aschmelyun/larametrics instead if you're working on an older Laravel version.