blake-mealey / mantle

An infrastructure-as-code and deployment tool for Roblox.
https://mantledeploy.vercel.app/
MIT License
85 stars 11 forks source link

Different image paths generate the same alias #205

Open jeparlefrancais opened 8 months ago

jeparlefrancais commented 8 months ago

Describe the bug

When I setup some images in directory structure like this:

In my mantle config, I specify my images like this:

assets:
  - assets/images/**/*.png

Mantle tries to generate the same asset alias for both button.png. It is worth noting that image are successfully published, it's just the asset alias part that fails.

To Reproduce Steps to reproduce the behavior:

  1. Setup some images like described above
  2. Run mantle deploy
  3. See error Failed: Roblox error (409 Conflict): An alias with the provided name already exists.

Expected behavior

I have not used mantle a lot, but it seems like the alias could probably be made up from the image path instead of just the image name?

Side question: what is even the alias used for? I can already get the image id from the mantle outputs using the image path. In my setup I don't think I even need the alias.

Environment (please complete the following information):

Etheroit commented 1 month ago

Side question: what is even the alias used for? I can already get the image id from the mantle outputs using the image path. In my setup I don't think I even need the alias.

Aliases are a way to mark the images (and other assets) as your game's assets and name them. You may browse those "aliased" assets in Asset Manager widget within studio. You may also reference those assets within that game by an alias instead of asset id, eg: rbxgameasset://Images/people structure is rbxgameasset://Images/(imageAliasHere) [Images is not an asset folder name but a default category assigned by Roblox] instead of rbxassetid://(asset id which changes everytime) This way you can keep the images in-game kept up to date without redeploying the game few times everytime (1st to push assets, then 2nd to update the asset ids)

I'm not sure why mantle does not use the full path to generate the alias though (Roblox limits perhaps?)

blake-mealey commented 1 month ago

This definitely feels like a bug. I do not remember why I made that decision initially - is it possible that aliases are not allowed to have additional / characters? Even if that is the case, we should probably use the full path and replace slashes with dashes or something.

Etheroit commented 1 month ago

@blake-mealey / characters appear to be allowed in the aliases (at least in Studio) They also seem to work correctly when used in asset paths image