Releases: lune-org/lune
0.6.3
Added
- Added support for instance tags &
CollectionService
in theroblox
built-in.
Currently implemented methods are listed on the docs site.
Fixed
- Fixed accessing a destroyed instance printing an error message even if placed inside a pcall
- Fixed cloned instances not having correct instance reference properties set (
ObjectValue.Value
,Motor6D.Part0
, ...) - Fixed
Instance::GetDescendants
returning the same thing asInstance::GetChildren
(oops)
0.6.2
This release adds some new features and fixes for the roblox
built-in.
Added
- Added
GetAttribute
,GetAttributes
andSetAttribute
methods for instances - Added support for getting & setting properties that are instance references
Changed
- Improved handling of optional property types such as optional cframes & default physical properties
Fixed
- Fixed handling of instance properties that are serialized as binary strings
0.6.1
Fixed
- Fixed
writePlaceFile
andwriteModelFile
in the newroblox
built-in making mysterious "ROOT" instances
0.6.0
Added
-
Added a
roblox
built-inIf you're familiar with Remodel, this new built-in contains more or less the same APIs, integrated into Lune.
There are just too many new APIs to list in this changelog, so head over to the wiki to learn more! -
Added a
serde
built-inThis built-in contains previously available functions
encode
anddecode
from thenet
global.
The plan is for this built-in to contain more serialization and encoding functionality in the future. -
require
has been reimplemented and overhauled in several ways:- New built-ins such as
roblox
andserde
can only be imported usingrequire("@lune/roblox")
,require("@lune/serde")
, ... - Previous globals such as
fs
,net
and others can now also be imported usingrequire("@lune/fs")
,require("@lune/net")
, ... - Requiring a script is now completely asynchronous and will not block lua threads other than the caller.
- Requiring a script will no longer error when using async APIs in the main body of the required script.
All new built-ins will be added using this syntax and new built-ins will no longer be available in the global scope, and current globals will stay available as globals until proper editor and LSP support is available to ensure Lune users have a good development experience. This is the first step towards moving away from adding each library as a global, and allowing Lune to have more built-in libraries in general.
Behavior otherwise stays the same, and requires are still relative to file unless the special
@
prefix is used. - New built-ins such as
-
Added
net.urlEncode
andnet.urlDecode
for URL-encoding and decoding strings
Changed
- Renamed the global
info
function toprintinfo
to make it less ambiguous
Removed
- Removed experimental
net.encode
andnet.decode
functions, since they are now available usingrequire("@lune/serde")
- Removed option to preserve default Luau require behavior
0.5.6
Added
-
Added support for shebangs at the top of a script, meaning scripts such as this one will now run without throwing a syntax error:
#!/usr/bin/env lune print("Hello, world!")
Fixed
- Fixed
fs.writeFile
andfs.readFile
not working with strings / files that are invalid utf-8
0.5.5
Added
- Added support for running scripts by passing absolute file paths in the CLI
- This does not have the restriction of scripts having to use the
.luau
or.lua
extension, since it is presumed that if you pass an absolute path you know exactly what you are doing
- This does not have the restriction of scripts having to use the
Changed
- Improved error messages for passing invalid file names / file paths substantially - they now include helpful formatting to make file names distinct from file extensions, and give suggestions on how to solve the problem
- Improved general formatting of error messages, both in the CLI and for Luau scripts being run
Fixed
- Fixed the CLI being a bit too picky about file names when trying to run files in
lune
or.lune
directories - Fixed documentation misses from large changes made in version
0.5.0
0.5.4
Added
- Added support for reading scripts from stdin by passing
"-"
as the script name - Added support for close codes in the
net
WebSocket APIs:- A close code can be sent by passing it to
socket.close
- A received close code can be checked with the
socket.closeCode
value, which is populated after a socket has been closed - note that usingsocket.close
will not set the close code value, it is only set when received and is guaranteed to exist after closure
- A close code can be sent by passing it to
Changed
- Update to Luau version 0.566
Fixed
- Fixed scripts having to be valid utf8, they may now use any kind of encoding that base Luau supports
- The
net
WebSocket APIs will no longer returnnil
for partial messages being received insocket.next
, and will instead wait for the full message to arrive
0.5.3
Fixed
- Fixed
lune --generate-selene-types
generating an invalid Selene definitions file - Fixed type definition parsing & generation issues on Windows
0.5.2
Fixed
- Fixed crash when using
stdio.color()
orstdio.style()
in a CI environment or non-interactive terminal
0.5.1
Added
-
Added
net.encode
andnet.decode
which are equivalent tonet.jsonEncode
andnet.jsonDecode
, but with support for more formats.WARNING: Unstable API
This API is unstable and may change or be removed in the next major version of Lune. The purpose of making a new release with these functions is to gather feedback from the community, and potentially replace the JSON-specific encoding and decoding utilities.
Example usage:
local toml = net.decode("toml", [[ [package] name = "my-cool-toml-package" version = "0.1.0" [values] epic = true ]]) assert(toml.package.name == "my-cool-toml-package") assert(toml.package.version == "0.1.0") assert(toml.values.epic == true)
Fixed
- Fixed indentation of closing curly bracket when printing tables