From 8a2a03f7c37248e7fa00bfe21d587baa48d5c37e Mon Sep 17 00:00:00 2001 From: notmagniill <87795739+notmagniill@users.noreply.github.com> Date: Sun, 2 Aug 2026 22:10:06 +0800 Subject: [PATCH 1/2] docs: create CHANGELOG.md --- CHANGELOG.md | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f59afce --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,239 @@ +# Changelog + +All notable changes to Asphalt are documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [2.0.2] - 2026-07-07 + +- Updated the `rbx-binary` and `rbx-xml` dependencies. + +## [2.0.1] - 2026-06-01 + +- Fixed a race condition that allowed duplicate assets on the `cloud` and `studio` targets. +- Fixed the Studio target using the wrong asset URI scheme, which produced duplicate Studio assets. + +## [2.0.0] - 2026-04-30 + +The sync pipeline was rewritten for concurrency and split into walking and processing phases. Integration tests were added. + +### Added + +- A `--project` argument to point Asphalt at a project directory other than the current directory. +- Config schema generation into `schema.json` via the hidden `generate-config-schema` command; the schema is now referenced in the README example. +- Integration tests under `tests/` covering the sync flow. + +### Changed + +- Rewrote the sync pipeline to walk and process files concurrently, passing events over a channel between a walker and a collector. +- Wrapped asset hashes in a dedicated `Hash` newtype. +- Assets are processed (SVG rasterization, alpha-bleed) right before a sync rather than during walking, reducing data cloning. +- The lockfile and codegen are keyed/processed per input; an obsolete config key was removed. +- SVG `currentColor` fills now default to white before conversion. +- `sync` no longer errors partway through on a single failed asset; it reports the failure and stops after the run. + +### Deprecated / Removed + +- Removed the `ROBLOX_CONTENT_PATH` environment variable. +- Removed the now-unused `thiserror` dependency. + +### Fixed + +- Brace glob sync walk pruning. + +## [1.2.0] - 2025-10-23 + +### Added + +- Support for CurveAnimation (curves). +- `aarch64-unknown-linux-gnu` build target. + +### Changed + +- Replaced cookie-based authentication with Open Cloud API-key authentication for animation and model uploads. +- Switched path handling to the `relative-path` crate. +- Upgraded dependencies. + +### Removed + +- All cookie handling and the `ROBLOX_CONTENT_PATH` environment variable. + +## [1.1.0] - 2025-09-13 + +### Added + +- A `codegen.content` option to emit a `Content` instance instead of a `string`. + +### Changed + +- Updated the author name and email in `Cargo.toml` and the license. + +## [1.0.0] - 2025-09-02 + +The 1.0 release. Major rewrite of the sync pipeline and a versioned lockfile format. + +### Added + +- `asphalt upload`, which uploads a single asset and returns its asset ID (or a link with `--link`). +- Video uploads via a `--expected-price` CLI flag. +- The `migrate-lockfile` command (help text split into a head and body). +- Parallel file walking. +- Snapshot tests for codegen. +- Local Studio sync outputs files named by content hash. + +### Changed + +- Rewrote the sync pipeline; `sync` now has explicit `cloud` / `studio` / `debug` targets and a `--dry-run` that exits nonzero if any asset would change. +- The lockfile is now keyed by file hash rather than file path, and is read/written in a versioned format that distinguishes V0/V1/V2. +- The project now targets the Rust 2024 edition. +- Asset processing now happens at sync time instead of at walk time. + +### Fixed + +- Studio sync no longer clears the lockfile. +- The API key is no longer required for non-cloud targets or dry runs. +- Codegen flat paths on Windows, and duplicate assets that didn't generate code. +- A nonexistent lockfile was allowed; trailing backslashes in local sync paths were replaced; skipped-file warnings became debug logs. + +### Removed + +- The `checksum` key from the lockfile (set to an empty array for compatibility). +- Manual cookie handling for asset delivery. + +## [0.9.1] - 2025-02-12 + +- Bleed the entire image rather than only its alpha edges during processing. + +## [0.9.0] - 2025-02-06 + +- Fixed the alpha-bleeding algorithm. + +## [0.8.4] - 2025-01-13 + +- Added FLAC and WAV audio support. +- Set up Homebrew install and updated the README. + +## [0.8.3] - 2024-12-27 + +- Added a command to migrate a `tarmac-manifest.toml` lockfile. +- Properly handled animation upload errors. +- Set up Homebrew (cargo-dist) install. + +## [0.8.2] - 2024-11-18 + +- Retry uploads when Roblox returns a 429 rate-limit error. +- Switched to `WalkDir` for directory traversal. +- Added a note about Foreman incompatibility. + +## [0.8.1] - 2024-08-05 + +- Reworked code generation onto an AST-based style, with a `style` option (`flat` / `nested`). +- Joined the asset directory with existing asset entries. +- Added README instructions for ignoring generated files in linters/formatters and for building from source. + +## [0.8.0] - 2024-06-30 + +- Added sync targets: `cloud`, `studio`, and `debug`. +- Luau output is now standard and always generated (removed the opt-in Luau option). +- CI now fails on lint/format warnings. + +## [0.7.2] - 2024-06-15 + +- Added an asset exclude glob. +- Updated resvg. + +## [0.7.1] - 2024-06-06 + +- Automatically detect the cookie using `rbx_cookie`. + +## [0.7.0] - 2024-06-06 + +- Added animation (KeyframeSequence) upload support. + +## [0.6.3] - 2024-06-04 + +- Fixed a missing `?` in the file-check error format string. + +## [0.6.2] - 2024-06-03 + +- Added verbose logging (`-v` / `-vv`). +- Added alpha bleeding for TGA images. + +## [0.6.1] - 2024-05-28 + +- Added an `init` command. +- Improved error contexts and removed unused dependencies. + +## [0.6.0] - 2024-05-26 + +- Split the CLI into subcommands. + +## [0.5.1] - 2024-05-03 + +- Alpha-bleed images (`bleed` option). +- Use Rustls for TLS. +- Added the `strip_extensions` codegen option. + +## [0.5.0] - 2024-04-25 + +- Added nested codegen support, controlled by the codegen `style` option (`flat` / `nested`). +- Reorganized codegen into its own `[codegen]` config section with a style argument. +- Documented how to obtain an API key. + +## [0.4.2] - 2024-04-14 + +- Added support for configuring existing assets (the `web` section). +- Added codegen tests. + +## [0.4.1] - 2024-04-04 + +- Improved error context. + +## [0.4.0] - 2024-03-29 + +- Configure Asphalt with an `asphalt.toml` project file instead of CLI flags. +- Use file names instead of file paths for asset names. + +## [0.3.5] - 2024-03-29 + +- Cache the font database across SVG renders and avoid reading files twice. + +## [0.3.4] - 2024-03-29 + +- Added SVG support (converted to PNG). + +## [0.3.3] - 2024-03-28 + +- Error-message polish. + +## [0.3.2] - 2024-03-28 + +- Better error handling with no more recursion. + +## [0.3.1] - 2024-03-25 + +- Support a Luau file extension with `--luau`. +- Fixed file paths on Windows. +- Retry-with-backoff when uploading. +- Configurable output name. + +## [0.3.0] - 2024-03-11 + +- Use `rbxcloud`'s extension-based asset type detection. +- Support nested directories and auto-created output directories. + +## [0.2.1] - 2024-03-07 + +- Support `.tga` images. + +## [0.2.0] - 2024-03-07 + +- Support Roblox groups (creator type and ID). + +## [0.1.1] - 2024-03-07 + +- Hotfix: removed a hardcoded user ID. + +## [0.1.0] - 2024-03-07 + +- Initial release. From b44985d991653feac36dfd9f71fe8320b52abe83 Mon Sep 17 00:00:00 2001 From: notmagniill <87795739+notmagniill@users.noreply.github.com> Date: Thu, 27 Aug 2026 22:11:48 +0800 Subject: [PATCH 2/2] docs: update CHANGELOG.md to match release notes Sorry... --- CHANGELOG.md | 358 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 251 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f59afce..f237415 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,234 +6,378 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [2.0.2] - 2026-07-07 -- Updated the `rbx-binary` and `rbx-xml` dependencies. +This release updates our `rbx-binary` and `rbx-xml` dependencies, which should fix issues users are having with syncing animations. ## [2.0.1] - 2026-06-01 -- Fixed a race condition that allowed duplicate assets on the `cloud` and `studio` targets. -- Fixed the Studio target using the wrong asset URI scheme, which produced duplicate Studio assets. +Fixed duplicate Studio asset URI scheme by @revvy02 in #160 + +Fixed duplicate asset race conditions on Cloud and Studio targets causing inconsistencies between output of the first and following sync runs ## [2.0.0] - 2026-04-30 -The sync pipeline was rewritten for concurrency and split into walking and processing phases. Integration tests were added. +No changes have been made since the last RC, but if you're coming from 1.2.0: -### Added +Assets are now synced concurrently. This will result in significant speedups when syncing many new assets at once -- A `--project` argument to point Asphalt at a project directory other than the current directory. -- Config schema generation into `schema.json` via the hidden `generate-config-schema` command; the schema is now referenced in the README example. -- Integration tests under `tests/` covering the sync flow. +Only files with supported extensions are read -### Changed +The --target flag has been changed to a subcommand under sync -- Rewrote the sync pipeline to walk and process files concurrently, passing events over a channel between a walker and a collector. -- Wrapped asset hashes in a dedicated `Hash` newtype. -- Assets are processed (SVG rasterization, alpha-bleed) right before a sync rather than during walking, reducing data cloning. -- The lockfile and codegen are keyed/processed per input; an obsolete config key was removed. -- SVG `currentColor` fills now default to white before conversion. -- `sync` no longer errors partway through on a single failed asset; it reports the failure and stops after the run. +- `asphalt sync` remains valid to sync using the cloud target +- Breaking: `asphalt sync --target [cloud|studio|debug]` is now `asphalt sync [cloud|studio|debug]` +- Breaking: `asphalt sync --dry-run` is now `asphalt sync cloud --dry-run` -### Deprecated / Removed +Web client properly uses Roblox's rate limit headers and works with concurrent uploads -- Removed the `ROBLOX_CONTENT_PATH` environment variable. -- Removed the now-unused `thiserror` dependency. +Web client permanently gives up when it encounters an unknown error (like when the user has been moderated) -### Fixed +The progress bar is nicer and gives some statistics -- Brace glob sync walk pruning. +Supported providing an argument for the "project" (which is really just the working directory that contains asphalt.toml). Useful for monorepos. -## [1.2.0] - 2025-10-23 +Removed the `ROBLOX_CONTENT_PATH` environment variable in favor of `ROBLOX_STUDIO_PATH`. -### Added +When rendering SVGs, a stylesheet is now added with currentColor set to white (thanks @askfalse in #158) -- Support for CurveAnimation (curves). -- `aarch64-unknown-linux-gnu` build target. +## [2.0.0-rc.5] - 2026-03-21 -### Changed +Fixed a sync bug where brace-style glob paths could be pruned during directory traversal and match zero assets. In cloud sync, that could incorrectly clear Asphalt's lockfile. -- Replaced cookie-based authentication with Open Cloud API-key authentication for animation and model uploads. -- Switched path handling to the `relative-path` crate. -- Upgraded dependencies. +## [2.0.0-rc.4] - 2026-03-16 -### Removed +### Changes since the last RC -- All cookie handling and the `ROBLOX_CONTENT_PATH` environment variable. +- When rendering SVGs, a stylesheet is now added with currentColor set to white (thanks @askfalse in #158) -## [1.1.0] - 2025-09-13 +## [2.0.0-rc.3] - 2026-01-20 + +### Changes since the last RC + +- Only processes assets that are about to be synced + +## [2.0.0-rc.2] - 2026-01-09 + +### Changes since the last RC -### Added +- Supported providing an argument for the "project" (which is really just the working directory that contains asphalt.toml). Useful for monorepos. +- Removed the `ROBLOX_CONTENT_PATH` environment variable in favor of `ROBLOX_STUDIO_PATH`. -- A `codegen.content` option to emit a `Content` instance instead of a `string`. +## [2.0.0-rc.1] -### Changed +- Assets are now synced concurrently. This will result in significant speedups when syncing many new assets at once +- Only files with supported extensions are read +- The `--target` flag has been changed to a subcommand under sync + - `asphalt sync` remains valid to sync using the cloud target + - Breaking: `asphalt sync --target [cloud|studio|debug]` is now `asphalt sync [cloud|studio|debug]` + - Breaking: `asphalt sync --dry-run` is now `asphalt sync cloud --dry-run` +- Web client properly uses Roblox's rate limit headers and works with concurrent uploads +- Web client permanently gives up when it encounters an unknown error (like when the user has been moderated) +- The progress bar is nicer and gives some statistics + +## [1.2.0] + +- Roblox model uploads (.rbxm/.rbxmx) are now supported! +- Animation uploads no longer require a cookie! As such, Asphalt has dropped support for cookie authentication. +- GLTF models are now supported (but.. you're going to use the 3D Importer, right?) +- We now build for `aarch64-unknown-linux-gnu`. + +The README has been refreshed with new information about supported asset types. + +## [1.1.0] - 2025-09-13 -- Updated the author name and email in `Cargo.toml` and the license. +Asphalt can now output the `Content` data type in place of string URIs. This can be toggled in config with `codegen.content`. Thanks to @daimond113 in #146. ## [1.0.0] - 2025-09-02 -The 1.0 release. Major rewrite of the sync pipeline and a versioned lockfile format. +This marks the full release of Asphalt 1.0! A lot has changed since 0.9.1 that I won't describe here, but feel free to check the previous release notes. + +Most users have been using the pre-release since now, but if you haven't (idk how considering 0.9.1 hasn't worked in months), this is a breaking change, so check the README to make sure you're using the correct configuration format. + +## [1.0.0-pre.16] - 2025-09-02 + +Made some internal changes to the sync process. + +Fixed the dry run mode making changes to files. + +## [1.0.0-pre.15] - 2025-08-14 + +Videos are now properly supported. + +Added the `--expected-price` arg to the sync and upload commands. This provides Roblox with the amount of Robux that you are willing to spend on each non-free asset upload (such as videos). + +Asphalt now reads your files much quicker. + +## [1.0.0-pre.14] - 2025-07-29 + +Files copied used for the Studio sync target are now named by their hashes, causing Studio to correctly reload the asset. Thanks to @iminlikewithyou in #139. + +Changed the file skip warning to a debug log. + +## [1.0.0-pre.13] - 2025-07-21 + +Implemented parallel file walking (more faster!) + +Added disclaimer comments to the top of generated files + +The CLI sync argument `suppress-duplicate-warnings` has been removed in favor of the `warn_each_duplicate` input config option, which has the same, but inverted behavior, and is defaulted to true. + +## [1.0.0-pre.12] - 2025-07-19 + +This release includes a rewrite of the upload code, which brings some changes: + +- Images are no longer downloaded, so web requests when uploading images are effectively halved. +- Cookies are no longer required for non-animation uploads. They are still required for animation uploads. +- We hit the Roblox API a little less hard to reduce rate limiting. + +It should work okay, but I've only tested it lightly. Let me know. I'm also unsure if rbxmx animations are uploaded, but I don't have access to one right now. Also, let me know. + +## [1.0.0-pre.11] - 2025-06-14 + +Fixed sync runs with nonexistent lockfiles not working. + +## [1.0.0-pre.10] - 2025-05-31 + +This release fixes an issue where brand new lockfiles were being detected as out of date. + +## [1.0.0-pre.9] - 2025-05-22 + +Codegen configuration is now optional + +When using flat codegen style, asset key paths are now normalized to Unix-style on Windows + +`Migrate-lockfile` command doesn't clog up `--help` output (thanks to @wackbyte in #124) + +## [1.0.0-pre.8] - 2025-04-29 + +Fixes a bug introduced in the previous release that caused code to not generate for duplicate assets. + +## [1.0.0-pre.7] - 2025-04-29 + +The lockfile structure has changed. Asset entries are now keyed by file hashes instead of file paths. Users can now freely restructure their assets without re-uploads! -### Added +Inputs are still saved in the lockfile separately, so moving a file from one input to another, or renaming an input, would still cause a re-upload. -- `asphalt upload`, which uploads a single asset and returns its asset ID (or a link with `--link`). -- Video uploads via a `--expected-price` CLI flag. -- The `migrate-lockfile` command (help text split into a head and body). -- Parallel file walking. -- Snapshot tests for codegen. -- Local Studio sync outputs files named by content hash. +This feature has not been extensively tested, so give it a whirl and let me know if you have any problems! -### Changed +Asphalt will migrate your lockfile for you with the `asphalt migrate-lockfile` command. No reupload required. -- Rewrote the sync pipeline; `sync` now has explicit `cloud` / `studio` / `debug` targets and a `--dry-run` that exits nonzero if any asset would change. -- The lockfile is now keyed by file hash rather than file path, and is read/written in a versioned format that distinguishes V0/V1/V2. -- The project now targets the Rust 2024 edition. -- Asset processing now happens at sync time instead of at walk time. +As an added benefit of the above change, we now detect duplicate files, skip them, and warn you about each one. -### Fixed +To disable the warnings, use the `--suppress-duplicate-warnings` flag. -- Studio sync no longer clears the lockfile. -- The API key is no longer required for non-cloud targets or dry runs. -- Codegen flat paths on Windows, and duplicate assets that didn't generate code. -- A nonexistent lockfile was allowed; trailing backslashes in local sync paths were replaced; skipped-file warnings became debug logs. +Added documentation for `bleed` field on input configs. -### Removed +## [1.0.0-pre.6] - 2025-04-24 -- The `checksum` key from the lockfile (set to an empty array for compatibility). -- Manual cookie handling for asset delivery. +Fixed an issue where Asphalt could no longer update to groups. The caveat is that Asphalt now requires both an API key and a cookie for the cloud target. See the authentication section of the README for more info. + +As far as I know, there is no other feasible way to grab image IDs without cookie authentication for groups. Please check out my DevForum post on the issue. More attention may motivate Roblox to fix this problem. + +## [1.0.0-pre.5] - 2025-04-06 + +Adapted to Roblox's new Asset Delivery API–image uploads should now be fixed. + +You now need the `legacy-asset:manage` permission scope on your API key in order to upload image assets. + +## [1.0.0-pre.4] - 2025-03-30 + +Fixed an issue where changed assets weren't being re-uploaded. + +## [1.0.0-pre.3] - 2025-03-28 + +Fixed issue with API Keys being required where they shouldn't again + +## [1.0.0-pre.2] - 2025-03-27 + +Fixes codegen configuration being required + +Fixes the API key being required when the context doesn't involve assets being uploaded + +Fixes Studio target clearing the lockfile + +## [1.0.0-pre.1] - 2025-03-26 + +Asset display names are now properly trimmed to avoid errors. + +## [1.0.0-pre.0] - 2025-03-26 + +Asphalt has been rewritten from the ground up to better support large projects. + +Here's a list of the key end-user changes: + +- It now supports multiple asset inputs and outputs. +- Assets are now hashed prior to processing (such as alpha bleeding and SVG conversion). This means that updates to Asphalt's processing algorithms in future versions will not cause a re-upload. Unforeseen re-uploads should now be treated as breaking. I felt this was the best and simplest solution. If you wish to re-upload your assets in any case, you're welcome to delete their lockfile entries. +- Work has been done to facilitate concurrent reading, processing, and syncing of assets. There is more room for improvement here, but it should be faster. +- The terminal UI has been improved and now features progress spinners and bars. +- The dry run feature actually works now, and will error if your assets are not up-to-date. +- There's a new command to directly upload an asset, independently from the lockfile. The asset ID or link will be returned. + +This is a pre-release, has not undergone much testing, and bugs are inevitable. Please report any issues you encounter to the Asphalt project thread in the ROSS server. + +**Migration guide:** + +1. Install this version using whatever method you prefer. +2. Adhere to the new configuration format. See the README for details. +3. Run `asphalt migrate-lockfile ` to update your lockfile to the new format. +4. Run `asphalt sync`. In theory, nothing should re-upload. ## [0.9.1] - 2025-02-12 -- Bleed the entire image rather than only its alpha edges during processing. +Bleed entire image by @EgoMoose in #94 ## [0.9.0] - 2025-02-06 -- Fixed the alpha-bleeding algorithm. +Fixes & adjustments were made to the alpha bleeding algorithm. See the pull request for more details. Thanks to @EgoMoose in #93. + +This is a breaking change. Your images may be re-uploaded if you update to 0.9.0. ## [0.8.4] - 2025-01-13 -- Added FLAC and WAV audio support. -- Set up Homebrew install and updated the README. +Added support for FLAC and WAV audio file formats, thanks to @Zidiam in #92. ## [0.8.3] - 2024-12-27 -- Added a command to migrate a `tarmac-manifest.toml` lockfile. -- Properly handled animation upload errors. -- Set up Homebrew (cargo-dist) install. +This is a re-release. + +Added a command to migrate a Tarmac manifest, thanks to @Kampfkarren in #88. + +Animation upload errors are now propagated, by @jackTabsCode in 0af498c + +Asphalt can now be installed with Homebrew!: + +``` +brew install jacktabscode/tap/asphalt +``` ## [0.8.2] - 2024-11-18 -- Retry uploads when Roblox returns a 429 rate-limit error. -- Switched to `WalkDir` for directory traversal. -- Added a note about Foreman incompatibility. +Asphalt now naively retries uploads that are rate limited. + +Due to multiple image-related dependency upgrades, some decals may be re-uploaded as their output will have changed. ## [0.8.1] - 2024-08-05 -- Reworked code generation onto an AST-based style, with a `style` option (`flat` / `nested`). -- Joined the asset directory with existing asset entries. -- Added README instructions for ignoring generated files in linters/formatters and for building from source. +Reworked code generation onto an AST-based style, with a `style` option (`flat` / `nested`). + +Joined the asset directory with existing asset entries. + +Added README instructions for ignoring generated files in linters/formatters and for building from source. ## [0.8.0] - 2024-06-30 -- Added sync targets: `cloud`, `studio`, and `debug`. -- Luau output is now standard and always generated (removed the opt-in Luau option). -- CI now fails on lint/format warnings. +Sync targets by @paradoxuum in #64 + +Please have a look at the README under `asphalt sync` for information on this new feature! + +Removed `.lua` codegen support by @jackTabsCode in 95bfcdc. `.luau` files are now generated, and the `luau` setting will not do anything anymore. ## [0.7.2] - 2024-06-15 -- Added an asset exclude glob. -- Updated resvg. +A new configuration option `exclude_assets` is available to skip processing files in the sync command. This option takes an array of glob patterns. Any files that match this glob will be completely skipped. ## [0.7.1] - 2024-06-06 -- Automatically detect the cookie using `rbx_cookie`. +The cookie for uploading animations will now be automatically detected from your Roblox Studio installation, if available. ## [0.7.0] - 2024-06-06 -- Added animation (KeyframeSequence) upload support. +Animations are now supported! Please read the documentation to see how to sync them. + +Improved verbosity of the output. ## [0.6.3] - 2024-06-04 -- Fixed a missing `?` in the file-check error format string. +Fixes an issue where errors caught during the sync process would not show their cause. ## [0.6.2] - 2024-06-03 -- Added verbose logging (`-v` / `-vv`). -- Added alpha bleeding for TGA images. +Minor release that allows customizing logging with the `-v` flag. ## [0.6.1] - 2024-05-28 -- Added an `init` command. -- Improved error contexts and removed unused dependencies. +New command: `asphalt init`! Getting started with Asphalt has never been easier. ## [0.6.0] - 2024-05-26 -- Split the CLI into subcommands. +Breaking: Asphalt's CLI has been split into subcommands. To sync, run `asphalt sync`. + +Subcommand added to list uploaded assets: `asphalt list`. ## [0.5.1] - 2024-05-03 -- Alpha-bleed images (`bleed` option). -- Use Rustls for TLS. -- Added the `strip_extensions` codegen option. +We now alpha bleed images by default (@jackTabsCode in #39) + +We now support stripping file extensions (thanks to @paradoxuum in #38) + +We now use Rustls for TLS, this should improve Linux compatibility (thanks to @paradoxuum in #37) ## [0.5.0] - 2024-04-25 -- Added nested codegen support, controlled by the codegen `style` option (`flat` / `nested`). -- Reorganized codegen into its own `[codegen]` config section with a style argument. -- Documented how to obtain an API key. +We now support nested code generation, similar to Tarmac. (thanks to @karuzumi in #33) + +Breaking: The configuration structure has changed. All options related to code generation now go in the `[codegen]` section. See the README for more details. ## [0.4.2] - 2024-04-14 -- Added support for configuring existing assets (the `web` section). -- Added codegen tests. +We now support defining existing assets in `asphalt.toml`. This is helpful if you rely on Roblox marketplace assets that you don't want to reupload, but want to keep everything in the same place. ## [0.4.1] - 2024-04-04 -- Improved error context. +Better error handling, again ## [0.4.0] - 2024-03-29 -- Configure Asphalt with an `asphalt.toml` project file instead of CLI flags. -- Use file names instead of file paths for asset names. +Breaking: Asphalt is now configured with a config file! See the README for details. + +File names instead of paths are used for Roblox asset display names. ## [0.3.5] - 2024-03-29 -- Cache the font database across SVG renders and avoid reading files twice. +Don't load font database for every SVG ## [0.3.4] - 2024-03-29 -- Added SVG support (converted to PNG). +SVG support is here! It is recommended to use static SVGs with rasterized text as font rendering won't always work, especially if you don't have the font installed on your system. ## [0.3.3] - 2024-03-28 -- Error-message polish. +Much better error handling! + +More performant (no more recursion, uses a ring buffer for looking through files) + +Binaries available for more systems, thanks to cargo dist ## [0.3.2] - 2024-03-28 -- Better error handling with no more recursion. +Better error handling with no more recursion. ## [0.3.1] - 2024-03-25 -- Support a Luau file extension with `--luau`. -- Fixed file paths on Windows. -- Retry-with-backoff when uploading. -- Configurable output name. +Support generating `.luau` file extensions with flag `--luau` + +Fixed file paths on Windows systems ## [0.3.0] - 2024-03-11 -- Use `rbxcloud`'s extension-based asset type detection. -- Support nested directories and auto-created output directories. +Nested folder support. This does not create nested tables in the outputted files, instead making the keys the file path of the asset, which now include the extension-hence the breaking change. ## [0.2.1] - 2024-03-07 -- Support `.tga` images. +Errors when we receive no response from the get asset API ## [0.2.0] - 2024-03-07 -- Support Roblox groups (creator type and ID). +Support for group owners. Use `--user-id ` or `--group-id ` to specify the asset creator. + +Fixes a panic on files with no extension ## [0.1.1] - 2024-03-07 -- Hotfix: removed a hardcoded user ID. +Hotfix to remove my hardcoded user ID. Whoops. ## [0.1.0] - 2024-03-07 -- Initial release. +Initial release 🎉! + +Good luck