Comments (3)
FWIW right now our plan is to follow Roblox version releases, as this is where the majority of the changes are going to come from. It's essentially major.minor where major is always zero.
from luau.
SemVer, if implemented, would most likely be for header file / ABI compatibility, not for Luau source code compatibility. I don't think Luau needs SemVer, personally. I think the current strategy of following Roblox releases is the best one, especially since it doesn't discourage contributors from making breaking changes to the API for soundness reasons or refactoring (method signatures and etc.)
Right now the main usage of Luau is in Roblox, maybe once luau-rs
is out it'll become more accessible to other applications, but the goal is that even if Luau changes out from underneath, those changes won't bubble up to the public API unless they're pretty darn big. luau-sys
contains all the unsafe, raw bindings, and luau
consumes them and smooths over them with a consistent & safe Rust layer.
I don't see breaking changes hurting my library too much, as I can simply update; I don't imagine the situation is too different for most others either, though maybe they have some thoughts on this too. It might take a bit for them to show up again after interactions became re-enabled on the repository.
from luau.
I think the conclusion here is that for now, semver as in "non-0 major version" is too early for us to decide on and switch to. When the language matures we could choose to bump the major version, but we'd need to decide what exact compatibility guarantees that provides (including embedding APIs etc.). We're unlikely to get there in the next year or so so I'm going to close this for now.
from luau.
Related Issues (20)
- Difference types HOT 4
- Type 'T' could not be converted into 'T' HOT 3
- intersecting class type by shape type results in `never` and causes loss of type inference - new solver bug
- Metamethods with generics having their generics infered as the self type if the self type isn't a generic itself
- First argument of setmetable throws a type error, if the variable is annotated to be a metatable in the new solver
- Setting a key to nil in a table errors in the new solver
- Can't define function in lua script after calling luaL_sandbox in host HOT 2
- `buffer` library doesn't accept `buffer`s in new type solver's non-strict mode HOT 3
- `any` as generic `T` incompatible with `{T}` in new type solver's strict mode
- Variable's type sometimes unions with `nil` due to `if` statement with new type solver's strict mode HOT 1
- For loop variable types not inferred from generic iterator with new type solver
- `and` `or` expression causes type pack error with new type solver's strict mode
- `table.freeze` returns type `{+ +}` with new solver's strict mode HOT 1
- failed assert in script file crashes repl HOT 1
- Stack overflow in parser HOT 3
- `buffer` library `TypeError` when buffer is function parameter with new solver's non-strict mode
- Cyclic union with upvalue not reducing `TypeError` with new solver's strict mode
- TypeError: Type pack '...any' could not be converted into 'a...' in new solver's strict mode
- Comment in lgc.h wrongly describes the GC invariant? HOT 1
- Test doesn't do what it says it does HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luau.