2023-01-19 18:28:01 +00:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ),
and this project adheres to [Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
2023-01-24 07:05:54 +00:00
## Unreleased
### Changed
- `require` now uses paths relative to the file instead of being relative to the current directory, which is consistent with almost all other languages but not original Lua / Luau - this is a breaking change but will allow for proper packaging of third-party modules and more in the future.
2023-01-24 07:09:12 +00:00
- **_NOTE:_** _If you still want to use the default Lua behavior instead of relative paths, set the environment variable `LUAU_PWD_REQUIRE` to `true` _
2023-01-24 07:05:54 +00:00
- Improved error message when an invalid file path is passed to `require`
- Much improved error formatting and stack traces
### Fixed
- Process termination will now always make sure all lua state is cleaned up before exiting, in all cases
2023-01-24 01:14:01 +00:00
## `0.0.6` - January 23rd, 2023
2023-01-23 18:18:48 +00:00
2023-01-24 00:07:37 +00:00
### Added
- Initial implementation of [Roblox's task library ](https://create.roblox.com/docs/reference/engine/libraries/task ), with some caveats:
- Minimum wait / delay time is currently set to 10ms, subject to change
- It is not yet possible to pass arguments to tasks created using `spawn` / `delay` / `defer`
- Timings for `defer` are flaky and deferred tasks are not (yet) guaranteed to run after spawned tasks
With all that said, everything else should be stable!
- Mixing and matching the `coroutine` library with `task` works in all cases
- `process.exit()` will stop all spawned / delayed / deferred threads and exit the process
- Lune is guaranteed to keep running until there are no longer any waiting threads
If any of the abovementioned things do not work as expected, it is a bug, please file an issue!
2023-01-23 18:18:48 +00:00
### Fixed
2023-01-24 00:07:37 +00:00
- Potential fix for spawned processes that yield erroring with "attempt to yield across metamethod/c-call boundary"
2023-01-23 18:18:48 +00:00
2023-01-23 02:51:02 +00:00
## `0.0.5` - January 22nd, 2023
2023-01-21 03:21:31 +00:00
2023-01-21 06:41:00 +00:00
### Added
2023-01-23 02:51:02 +00:00
- Added full test suites for all Lune globals to ensure correct behavior
2023-01-21 06:41:00 +00:00
- Added library version of Lune that can be used from other Rust projects
2023-01-21 03:21:31 +00:00
### Changed
2023-01-23 02:46:30 +00:00
- Large internal changes to allow for implementing the `task` library.
2023-01-21 22:02:49 +00:00
- Improved general formatting of errors to make them more readable & glanceable
2023-01-21 03:21:31 +00:00
- Improved output formatting of non-primitive types
- Improved output formatting of empty tables
2023-01-21 22:02:49 +00:00
### Fixed
- Fixed double stack trace for certain kinds of errors
2023-01-21 02:18:11 +00:00
## `0.0.4` - January 21st, 2023
2023-01-20 20:21:20 +00:00
### Added
- Added `process.args` for inspecting values given to Lune when running (read only)
- Added `process.env` which is a plain table where you can get & set environment variables
### Changed
- Improved error formatting & added proper file name to stack traces
### Removed
- Removed `...` for process arguments, use `process.args` instead
- Removed individual functions for getting & setting environment variables, use `process.env` instead
2023-01-21 02:16:31 +00:00
## `0.0.3` - January 20th, 2023
2023-01-19 22:56:12 +00:00
### Added
- Added networking functions under `net`
Example usage:
```lua
local apiResult = net.request({
url = "https://jsonplaceholder.typicode.com/posts/1",
method = "PATCH",
headers = {
["Content-Type"] = "application/json",
},
body = net.jsonEncode({
title = "foo",
body = "bar",
}),
})
local apiResponse = net.jsonDecode(apiResult.body)
assert(apiResponse.title == "foo", "Invalid json response")
assert(apiResponse.body == "bar", "Invalid json response")
```
2023-01-20 03:10:34 +00:00
- Added console logging & coloring functions under `console`
This piece of code:
```lua
local tab = { Integer = 1234, Hello = { "World" } }
console.log(tab)
```
Will print the following formatted text to the console, **_with syntax highlighting_** :
```lua
{
Integer = 1234,
Hello = {
"World",
}
}
```
Additional utility functions exist with the same behavior but that also print out a colored
tag together with any data given to them: `console.info` , `console.warn` , `console.error` -
These print out prefix tags `[INFO]` , `[WARN]` , `[ERROR]` in blue, orange, and red, respectively.
2023-01-19 22:56:12 +00:00
### Changed
- The `json` api is now part of `net`
- `json.encode` becomes `net.jsonEncode`
- `json.decode` become `net.jsonDecode`
### Fixed
- Fixed JSON decode not working properly
2023-01-19 20:08:38 +00:00
## `0.0.2` - January 19th, 2023
2023-01-19 18:28:01 +00:00
### Added
- Added support for command-line parameters to scripts
These can be accessed as a vararg in the root of a script:
```lua
local firstArg: string, secondArg: string = ...
print(firstArg, secondArg)
```
- Added CLI parameters for downloading type definitions:
- `lune --download-selene-types` to download Selene types to the current directory
- `lune --download-luau-types` to download Luau types to the current directory
These files will be downloaded as `lune.yml` and `luneTypes.d.luau`
respectively and are also available in each release on GitHub.
2023-01-19 20:08:38 +00:00
## `0.0.1` - January 18th, 2023
2023-01-19 18:28:01 +00:00
Initial Release