Releases: Anaminus/rbxmk
rbxmk v0.9.1
Highlights:
- Add support for
.luau
extension.- Add
luau
format. - Add
client.luau
format. - Add
localscript.luau
format. - Add
modulescript.luau
format. - Add
script.luau
format. - Add
server.luau
format.
- Add
- When a descriptor is set while encoding or decoding an instance, the service status is determined by the Service tag from instance's class descriptor instead of the instance's IsService field.
- This improves conversion from XML Roblox formats to binary Roblox formats.
- Add support for Optional types.
- If a descriptor is set, optional properties are handled transparently by accepting either nil (for None), or a value of the optional's type (for Some).
- Add types.none to create an empty Optional exprim.
- Add types.some to create an Optional exprim that contains a value.
- Currently, this only affects the "Model.WorldPivotData" property, which is an optional CFrame.
- Add support for UniqueId type.
- Improve interface of the doc command.
- Frag mode is the default. List mode is enabled with the
--list
flag.
- Frag mode is the default. List mode is enabled with the
- Add RootDesc.Copy method.
Fixes:
- Fix descriptor IsA checks failing when superclass matches current class.
- Fix encoding of PhysicalProperties type in rbxl format.
- Fix options not working for the rbx formats.
- Fix SetAttribute throwing an error when setting an attribute to nil.
- Fix SetAttributes pulling wrong argument for dictionary.
- Fix nondeterministic order of encoded SharedStrings in rbxl format.
Internal:
- Switch to cobra for handling CLI.
- When the program is executed from a GUI, a message is displayed indicating that it is a command-line tool.
- Adds
completion
command for generating autocompletion scripts for various shells.
See a comparison with the previous version for a thorough list of changes.
The Documentation page provides a complete reference for this version of rbxmk.
rbxmk v0.9.0
Botched release. See v0.9.1.
rbxmk v0.8.0
Incompatibilities
- Remove DataModel.new in favor of Instance.new("DataModel").
- Move os library functions to path library.
- Move os.clean to path.clean
- Move os.expand to path.expand
- Move os.join to path.join
- Move os.split to path.split
- os.getenv is unchanged.
- Refactor descriptors.
- Element types are represented as dictionaries containing the fields of the element.
- Add RootDesc.new for creating new RootDesc types.
- Remove rbxmk.newDesc.
- All operations to get and set descriptor information are contained in RootDesc.
- The methods of RootDesc are updated to reflect this change.
- Move rbxmk.diffDesc function to RootDesc.Diff method.
- Move rbxmk.patchDesc function to RootDesc.Patch method.
- Move rbxmk.newCookie to Cookie.new.
- Move rbxmk.cookiesFrom to Cookie.from.
- Move rbxmk.newAttrConfig to AttrConfig.new.
Highlights:
- Improve handling of values in the rbx formats.
- Add "Desc" option to the rbx formats to set a descriptor used when encoding or decoding.
- Add "DescMode" option to the rbx formats to set how deviations from the descriptor are handled.
- Including
--desc-*
flags causes the "Enum" global variable to be set to the enums generated from the resulting descriptor. - Implement members for the DescAction type.
- Add DescAction.new constructor.
- xpcall can receive extra arguments that are passed to the called function.
- Add path.clean function to clean file paths.
- Add Enum field to rbxmk library to contain enums defined by rbxmk. Note that there are currently no such enums.
Fixes:
- Fix missing properties from sym.Properties when instance has a descriptor.
- Fix unexpected conversion failures when getting certain property types while an instance has descriptor.
- Fix type conversion error when encoding
desc-patch.json
format. - Fix type conversion error when encoding Objects with rbx formats.
- Fix encoding of SharedStrings in rbxlx/rbxmx formats.
- Fix incorrect use of CDATA sections in rbxlx/rbxmx formats.
- Fix interactive command not having descriptor flags.
- Fix Cookie.from returning incorrect values when no cookies are found.
- Fix Instance.new handling DataModel incorrectly.
- Fix Instance.ClassName being settable to "DataModel".
- Fix typeof returning "userdata" for Symbol values.
- Fix incorrect behavior when select is called with index 0.
- Fix Envelope field being printed as Time field when ColorSequenceKeypoint or NumberSequenceKeypoint is converted to a string.
- Fix bounds error when calling ColorSequence.new or NumberSequence.new.
- Fix ColorSequence.new and NumberSequence.new not verifying order of keypoints.
- Fix NumberRange.new not verifying interval.
See a comparison with the previous version for a thorough list of changes.
The Documentation page provides a complete reference for this version of rbxmk.
rbxmk v0.7.2
Fixes:
- Fix fragments failing to resolve due to case-sensitivity.
See a comparison with the previous version for a thorough list of changes.
The Documentation page provides a complete reference for this version of rbxmk.
rbxmk v0.7.1
Highlights:
- Add Instance[sym.Properties] to get or set all properties of an instance at once.
- Add
rbxmk i
command to enter an interactive prompt. - Add flags to
run
command that preset a global descriptor.- The
--desc-latest
flag uses the latest API dump from Roblox. - The
--desc-file
flag uses a file in the descriptor format (API dump). - The
--desc-patch
flag uses a file in the descriptor patch format.
- The
- Add
--libraries
flag torun
andi
to include and exclude libraries.
Fixes:
- Fix
download-asset
flags not working. - Fix error handling in
download-asset
. - Fix error when getting certain string exprim types.
- Fix path security error when running a file outside of working directory.
- Fix runtime error produced by os.split.
See a comparison with the previous version for a thorough list of changes.
The Documentation page provides a complete reference for this version of rbxmk.
rbxmk v0.7.0
Botched release. See v0.7.1.
rbxmk v0.6.2
Highlights:
- Add
rbxmk download-asset
command to quickly download an asset from the Roblox website. - Add
rbxmk upload-asset
command to quickly upload an asset to the Roblox website. - Add
rbxmk dump
command to dump the rbxmk Lua API in various formats.- Supports generic JSON and minified JSON format.
- Supports selene TOML format.
- Add Instance.Descend as an alternative to child indexing, which rbxmk deliberately does not implement.
- Add
--include-root
flag to run command to include paths as root directories. - Add
--allow-insecure-paths
flag to run command to disable path restrictions. - Add CFrame.lookAt constructor.
- Implementations of Axes.new and Faces.new match Roblox API.
- Previous implementations exist as Axes.fromComponents and Faces.fromComponents.
- Implement face fields on Axes, matching Roblox API.
- Rename AttrConfig.new to rbxmk.newAttrConfig.
- Improve speed of table.clear.
- Entries returned by fs.dir contain only Name and IsDir fields.
- For large directories, getting files is much faster.
- Use fs.stat to get full metadata of a file.
Fixes:
- Fix version displayed by rbxmk.
- Fix error when assigning a property to a DataModel.
- Fix type of BrickColor properties decoded by Roblox XML formats.
- Fixes to encoding of Roblox file formats.
- Fix RBXAssetOptions.Cookies not being optional.
- Fix missing properties encoded by Roblox binary formats in certain cases.
- Fix Instance.FindFirstAncestor behaving as FindFirstAncestorOfClass.
- Fix equality of Enums, Enum, and EnumItem types.
- Fix tostring of Enums, Enum, and EnumItem types.
- Fix handling of nil Instance properties.
- Fix Instance properties not checking inherited classes.
- Fix handling of nil PhysicalProperties properties.
- Fix handling of arguments in fs.mkdir, fs.remove, and fs.rename.
- Fix FormatSelectors being received incorrectly in clipboard.read and clipboard.write.
- Fix userdata caching. Immutable types like Vector3 which were equal would incorrectly produce the same userdata. Makes creation of such types faster.
- Fix os.getenv not returning all variables when no value is passed.
Internal:
- Automated tests run on Windows in addition to Linux.
- Add tool for automatically incrementing version number.
- Improve documentation.
- Remove concept of "sources"; they're just libraries.
See a comparison with the previous version for a thorough list of changes.
The Documentation page provides a complete reference for this version of rbxmk.
rbxmk v0.6.1
Botched release. See v0.6.2.
rbxmk v0.6.0
Botched release. See v0.6.2.
rbxmk v0.5.1
First automated release.
The Documentation page provides a complete reference on this version of rbxmk.