flex-layout icon indicating copy to clipboard operation
flex-layout copied to clipboard

Stop beta

Open RichardC64 opened this issue 6 years ago • 39 comments

Proposal

Stop beta

What is the summary of the proposal?

This "excellent" package is still in beta. I know that the product can still be improved but a lot of company refused to use beta product. So i think it would be nice to publish a real release, event if there is still some "small bugs"

What is the proposal?

Publish a "first" release.

RichardC64 avatar Sep 06 '18 17:09 RichardC64

@RichardC64, maybe this comment helps you to figure out the long-term picture: https://github.com/angular/flex-layout/issues/674#issuecomment-374866400

julianobrasil avatar Sep 06 '18 21:09 julianobrasil

Also seems like a duplicate of https://github.com/angular/flex-layout/issues/752.

From reading #674, it looks like Angular v8 may be the proper time frame for a possible GA of @angular/flex-layout. That could be sometime around April 2019 if I'm not mistaken.

Splaktar avatar Sep 23 '18 21:09 Splaktar

With reference to #871 I also find it unusual for a minor version upgrade to require a major upgrade of a subsystem - in this case Typescript. It means we remain - for a while - on a version of Flex which has some bug fixes, but isn't "version 7", but isn't the latest version of "version 6". Can the team also adopt the policy that subsystems are not upgraded except when a major version implemented? In other words, minor increments should only be for bug fixes.

inthegarage avatar Oct 23 '18 19:10 inthegarage

With reference to #871 I also find it unusual for a minor version upgrade to require a major upgrade of a subsystem - in this case Typescript. It means we remain - for a while - on a version of Flex which has some bug fixes, but isn't "version 7", but isn't the latest version of "version 6". Can the team also adopt the policy that subsystems are not upgraded except when a major version implemented? In other words, minor increments should only be for bug fixes.

It's to keep in line with Angular's major versioning. That way you know that Flex layout 7 works with Angular 7, 6 works with 6, etc. I think there's a lot more value by not having to guess at major versions than to stick with purely semantic versioning. I totally see your point though.

willyboy avatar Dec 19 '18 12:12 willyboy

Response https://github.com/angular/flex-layout/issues/674#issuecomment-374866400 is one year old!

RichardC64 avatar Apr 01 '19 07:04 RichardC64

@richardC64, Ivy hasn't landed yet so IMHO that answer remains valid and up to date. I'm not sure Ivy will be the default renderer before @angular 9.0.0+. Be prepared for some more beta period until... 2020?

julianobrasil avatar Apr 01 '19 11:04 julianobrasil

This library has been in 'beta' far far longer than anything else I've ever seen. Doesn't it lose meaning at this point? Why not just make it official?

jpike88 avatar Sep 07 '19 14:09 jpike88

@jpike88 because more breaking and likely significant changes are coming before the team is ready to call this project GA.

Users of this project need to understand that. The beta tag accomplishes this.

https://github.com/angular/flex-layout/issues/674#issuecomment-374866400 has the full explanation that is still relevant today.

Splaktar avatar Sep 07 '19 17:09 Splaktar

Although I've read https://github.com/angular/flex-layout/issues/674#issuecomment-374866400 I 'm starting to believe that this project will never be released. Also, how is possible to figure out which versions of the other @angular libs this project is compatible with?

takahser avatar Sep 16 '19 12:09 takahser

This library is major-version aligned with the versions of Angular (v8->v8). We keep it current with all future releases once Angular CDK issues a compatible release (since we depend on them).

As for stable release, if you don’t believe we’ll ever make it there that’s fine. Plenty of people have chosen not to stick around and wait. You have to make the right choices for your project. However, stable release or not, we believe this library provides tremendous value. Not only that, just because you don’t believe we’ll make it doesn’t mean we never will 😄 .

Personally, I’m waiting until the v9 release to restart efforts towards the redesign. Doing so earlier means likely getting crushed by the freight train that is Ivy.

CaerusKaru avatar Sep 16 '19 13:09 CaerusKaru

Now angular v9 is also released with default Ivy. When are you planning to do stable release? I saw the library v9 version updated 7 days ago still in beta.

chetankhilosiya avatar Feb 13 '20 13:02 chetankhilosiya

Angular 9 has been out for 3 months now... this library has to be record breaking in how long it has been 'beta' in name only. @CaerusKaru this 'redesign', are there any blueprints, scopes, roadmaps etc etc that can indicate to what degree breakage will occur? Can people expect this library to go stable this year or is it going to continue as is?

jpike88 avatar May 07 '20 14:05 jpike88

Somehow I doubt that in the history of software, this library sets the record for longest beta, but point taken. The redesign is in #1185, and comments of all types are welcome. It is an enormous departure from the current library, and even with Angular schematics, I doubt it's an easy feat to introduce. Add to that the fact that the framework team has not seen or discussed this new proposal yet.

I can't offer a tangible update at this time, except to say that I share your frustrations. I'm not going to stop pressuring the team to pick this up, but it's difficult given their shifting priorities.

CaerusKaru avatar May 07 '20 23:05 CaerusKaru

@CaerusKaru Why don't you just remove the word "beta" from the release schedule. Beta in my mind is to proffer a piece of software to gain further customer feedback before going live. I know for certain that flex-layout is inside multi-million pound software applications, hardly beta. I don't think anyone would really know or indeed care what is around the corner, even if it is a complete redesign.

inthegarage avatar May 09 '20 12:05 inthegarage

@inthegarage You've been following this thread long enough to be aware of our rationale for keeping the beta moniker. That rationale has not changed. We have a whole list of applications that use this library in production at the ultra high-exposure level. Beta in our case has nothing to do with stability, but unfortunately there is no tag we can provide that conveys what we actually are, so beta it is.

I also think it's dangerous to say that no one would care about the redesign; the aforementioned high-profile apps come to mind in terms of maintaining relative stability. Like I said, it's still our desire to lobby the Angular team to support our official release, but that is still yet to happen.

CaerusKaru avatar May 10 '20 04:05 CaerusKaru

Wouldn't a redesign as drastic as shown in that PR be better off as a separate repo?

jpike88 avatar May 10 '20 05:05 jpike88

@jpike88 Yes. Full transparency here, the Angular team has basically two schools of thought right now regarding this library. Either a) they support it fully, meaning that it must follow the strict standards of Angular first-party libraries, or b) they do not support it fully, and this goes into community-management (e.g. as ngx-layout).

In the case of a), it's most likely at this point that they would take the RFC design as the new implementation of Angular Layout (#713), and then deprecate this library fully. Those willing to migrate can and should at that point.

In the case of b), it's also likely that we would launch the RFC, though there's a possibility we would continue to support the legacy version for a predetermined period of time.

In either case, Angular Flex Layout will likely never exit beta in its current format, unless something drastic happens. The Angular team just does not believe in its current implementation enough to issue such an endorsement. The RFC in my opinion is our best bet towards legitimacy, but that is also not fully determined. At the very least, it gives us more options.

This issue remains open to lobby the team and show that the community desperately wants a library that is not just some weird side project. I also want to acknowledge that in no scenario does this library get thrown away completely; we are committed to supporting it 100% for the foreseeable future, whether it's the current state, or the RFC if/when it lands.

CaerusKaru avatar May 10 '20 05:05 CaerusKaru

@CaerusKaru is there any ETA on that decision?

kuncevic avatar May 20 '20 23:05 kuncevic

@kuncevic Not at this time

CaerusKaru avatar May 21 '20 01:05 CaerusKaru

@CaerusKaru no probs!

kuncevic avatar May 21 '20 03:05 kuncevic

The Angular team is currently editing/reviewing a new roadmap and evaluating the scope of the team's responsibilities. There should be some news about this over the northern hemisphere's summer. That doesn't necessarily mean that a decision on this library will be made at that time, but hopefully that helps you understand part of the process that is underway.

Splaktar avatar May 26 '20 23:05 Splaktar

Any news you can share on this matter?

qortex avatar Sep 09 '20 09:09 qortex

None as of yet. I promise you, the second I know, work will begin one way or the other depending on which direction we choose to go. I understand the anxiety around not knowing, but unfortunately there isn't more I can share on this right now.

CaerusKaru avatar Sep 11 '20 03:09 CaerusKaru

Staying in "beta" version has further implications: it is considered by many "not yet fit for public consumption" link to node-semver pre-release tags. In many companies, the policy is not to use pre-releases versions in productive environments. This automatically disqualifies this library.

I would encourage you to release a final version because:

  • Keeping beta has undesirable implications, and the result is basically we cannot use it.
  • Four years in beta is not understandable.
  • Expecting having something perfect and finished is unrealistic.
  • Major refactor and future breaking changes is completely acceptable each time you increase the major versions.

I understand you are at a crossroads and you want to prevent breaking the web choosing the wrong path, but from my point of view there is no excuse for not releasing it now and then (if necessary) breaking it in the future, following semver.

CrlsMrls avatar Oct 05 '20 12:10 CrlsMrls

It's weird because it's a library that works so damn well...

jpike88 avatar Oct 05 '20 12:10 jpike88

I understand your frustration, no one more than I would love to see as many people use (and benefit from using) Angular Layout. Unfortunately, the factors you've laid out are not enough to sway the project planning for the Angular team.

  • The Angular team is not interested at this time in garnering interest towards or driving up use of this library
  • The length of time in beta is immaterial to the Angular team, since they don't have an interest in fully supporting it anyway
  • While no solution is perfect, there are solutions that are deemed "acceptable" and not, by the standards endorsed by the Angular team
  • We're not talking about just minor breaking changes here. The breaking changes could change the entire structure and usage of the library itself. See #1185 for more detail.

The "excuse" here is that the Angular team is finite, and its resources finite. My, and our consumers', will is not enough to override this simple fact. I'm sure if 100% of respondents ranked Angular Layout as their number one priority in the annual Angular survey, that might change. Until then, this project remains in beta unless announced otherwise.

CaerusKaru avatar Oct 06 '20 01:10 CaerusKaru

it is considered by many "not yet fit for public consumption"

@CrlsMrls that is intended.

And +1 to everything that @CaerusKaru said above.

Splaktar avatar Oct 06 '20 03:10 Splaktar

Ok thanks for the clarification. It helps.

Then, what would you advise as a stable replacement for this library?

I've been using it with great success, but I'm open to consider switching to the supported way if it's not suitable for production on the long run.

qortex avatar Oct 06 '20 06:10 qortex

@CaerusKaru thank you for spending the time with your clarifications. Very appreciated.

CrlsMrls avatar Oct 07 '20 15:10 CrlsMrls

@qortex https://material.angularjs.org/latest/migration#changes-to-layout-features does a pretty good job of breaking this down and was reviewed/approved/published by the Angular team.

I've done this for a few apps now and it basically boils down to

  • Directly apply the same CSS (Flexbox, Grid, Media Queries, etc) that Angular Flex Layout currently applies in your app
  • Use CDK Layout for observing breakpoint changes in TS

This may also end up being one of the safest ways to move towards the new "Angular Layout" redesign as you would then be free to start using those new APIs when they are stable w/o worrying about having two layout libraries in the app or having conflicting directives.

Splaktar avatar Oct 07 '20 22:10 Splaktar