godotengine / godot-asset-library

PHP frontend for Godot Engine's asset library
https://godotengine.org/asset-library
MIT License
284 stars 85 forks source link

Can't submit asset to library #313

Open blackears opened 7 months ago

blackears commented 7 months ago

I'm trying to submit an addon I've wriiten to the library, but the submission keeps failing:

https://github.com/blackears/terrain_layered_shader

The problem is that the submission form is asking for:

The commit hash that should be downloaded. Expects 40 or 64 hexadecimal digits fully specifying a Git commit.

When using the Custom download provider, this must be set to the full download URL instead of a commit hash.

The problem here is that there is a lot of stuff on the Github page that should not be downloaded. I've created a .zip file with the actual files that should be part of the archive (https://github.com/blackears/terrain_layered_shader/raw/master/export/terrain_layered_shader.zip). However, I can give a commit hash since that suggests to me that you are trying to download the entire GIthub repo, not just this one file. When I provide the URL of the .zip file, it fails too.

How do I submit this? All I can think of is creating a second Github repo that just contains the files from the addon.

Calinou commented 7 months ago

The problem here is that there is a lot of stuff on the Github page that should not be downloaded.

You can use a .gitattributes file to do this automatically with GitHub-generated ZIPs: https://docs.godotengine.org/en/stable/community/asset_library/submitting_to_assetlib.html

After doing this, keep using the GitHub download provider as usual.

blackears commented 7 months ago

The problem with this is that I want users to be able to download the other stuff too. The Github page is not intendeded to exist exclusively for the Godot Asset Library. Isn't there some way to tell the library to download a particular file rather than having to hamstring the entire repo just to fit the GAL requirements?

Edit: I am trying to use the Custom option now, but am running into different errors.

YuriSizov commented 6 months ago

Isn't there some way to tell the library to download a particular file

There is not, we don't store any metadata about the contents of the asset and rely exclusively on ZIPs generated by GitHub, GitLab, and other providers. You can, as you've figured out, use the custom provider setting and submit any URL you want, e.g. one for your GitHub releases entry.

betalars commented 5 months ago

Isn't there some way to tell the library to download a particular file

There is not, we don't store any metadata about the contents of the asset and rely exclusively on ZIPs generated by GitHub, GitLab, and other providers. You can, as you've figured out, use the custom provider setting and submit any URL you want, e.g. one for your GitHub releases entry.

No, currently you cannot link to a zip file included in a release. It may be intended to work, but it does not work.

I had the same issue @blackears described.

Calinou commented 5 months ago

No, currently you cannot link to a zip file included in a release. It may be intended to work, but it does not work.

You can do this if you switch to the Custom download provider. Otherwise, you can only link to the automatically generated ZIP for each tag.

daveTheOldCoder commented 4 months ago

All I can think of is creating a second Github repo that just contains the files from the addon.

The problem with this is that I want users to be able to download the other stuff too.

My solution was to use a .gitattributes file that limits the contents of the automatically generated .zip to only the addon, and to add a GitHub workflow action script that adds a .zip on the GitHub Releases page that contains the full repository. It took me a while to figure out how to do that.

Here's an example:

.gitattributes file: https://github.com/daveTheOldCoder/Godot3To4FileConversion/blob/master/.gitattributes

GitHub workflow action script https://github.com/daveTheOldCoder/Godot3To4FileConversion/blob/master/.github/workflows/create-release-archive.yml

IceflowRE commented 2 months ago

Like already suggested you should release zip files with just the content the addon should contain. This link can be then used with the custom provider. I also have a repository with multiple addons and other stuff and generate the addon zips on each new addon release. GitHub Workflow The publisher software Might be helpful.

blackears commented 2 months ago

I think it would be better if the Godot Asset Library server could just host the binaries. It would make things more straight forward and users wouldn't have to worry about what is stored at the links changing.

Calinou commented 2 months ago

I think it would be better if the Godot Asset Library server could just host the binaries. It would make things more straight forward and users wouldn't have to worry about what is stored at the links changing.

We don't have the space/bandwidth on the server to host large binaries, and the current asset library is in maintenance mode anyway.