Standard Library Stability #4749
Sgregory42
started this conversation in
General
Replies: 1 comment 6 replies
-
All breaking changes get a deprecation cycle, during which warnings are emitted for their use. Several months are given during which to fix any issues. The two proposals you've given would mean an immediate breaking changes and no migration period. This would make the problem much worse. Deprecation cycles will continue until the stdlib stabilises. This will likely be in the autumn. |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
(note I used an llm for formatting, the thoughts are my own)
Standard Library Stability Discussion
I want to open a discussion about a backward incompatible change in Gleam's stdlib and why IMHO it shouldn't happen again.
What Happened
From my understanding, some of the
dynamic/decode
library were deprecated and then removed in the same minor versions (0.59 to 0.61).The Issue
I agree that a library before a v1 release is prone to API changes, but a standard library is not just a random library. It's the library that everyone depends on. With Gleam being v1, there is an expectation of stability with the standard library.
I want to raise awareness that the stdlib should have the same care as Gleam itself in terms of stability and consideration when making changes.
Impact
The Gleam libraries ecosystem is small and this change just fractured it even more.
As a new dev in Gleam, as I finally reach an acceptable level of productivity with just the language, it gets shattered whenever I want to use a package and I have to deal with dependency issues. (Maybe I am the only one having these issues 🤷 )
In a business environment where dev time is of the essence, it is very hard to justify time lost on this kind of issues especially in a
new language. The goal is to show how productive we are and how this amazing language solves business problems.
Solving business problems means more adoption, which means contributing back to the language and supporting it.
Possible solution
From my basic understanding, erlang allows to only have one module for the app, hence each library can't have their own version of the stdlib. (correct me if I am wrong)
Obviously easiest is to not make any non backward compatible change until V1, but if there is a need to:
(Those are not ideal but kinda works until V1)
Any other way to prevent breaking changes within a same minor version ?
Beta Was this translation helpful? Give feedback.
All reactions