Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Database of extensions format #1

Open
dacap opened this issue Apr 20, 2024 · 3 comments
Open

Database of extensions format #1

dacap opened this issue Apr 20, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@dacap
Copy link
Member

dacap commented Apr 20, 2024

We should have a file format for the database of extensions. Could we just the package.json of each extension? Probably we need some extra information (purchase/download link, checksum).

Some points we need/want:

  1. Modifications (new extensions/new versions/deleted extensions) in the registry must be done through PRs
  2. Extensions might be downloaded directly (if a link is provided) or a link to purchase it (e.g. itch)
  3. We should have a checksum to check that the extension is the same that the registered one (probably only useful if the extension can be downloaded directly)

It would be nice to be able to register a simple script from its GitHub repository: The README can has some information about the extension, there could be a .lua script, and the GitHub repo SHA can act as a checksum for the specific published version.

I think the easier path to achieve access this registry of extensions is:

  1. Create a fetch()-like method to send HTTPS requests from Lua scripts
  2. Create a minimal "Aseprite Extensions" extension to access this DB
  3. Add the same "Aseprite Extensions" in this DB (so we can update it from here)
  4. Register the first third-party extension
  5. Call for other authors to register their own extensions here
@projectitis
Copy link

I would support adding a package.json (or similar) in the correct format to each script/extension repo. Then registering the script just by supplying the github link.

Would be great to be able to search for and install scripts/extensions directly from within Aseprite :)

@fabi-co
Copy link

fabi-co commented Apr 20, 2024

Sounds nice !

Agreed that the package.json could be used to contain all the information by adding the extra fields mentioned. I'd add some other optional information ideas :

  • Tags : would be useful for filtering scripts and extensions
  • Features : A simple listing of features might be useful in complement to the already existing description.
  • Changelog

Simple scripts could also have their package.json (or equivalent, just changing the name?), it might be easier than digging information in Readme.

+1 for registering from github repo and its SHA for checksum.

@projectitis
Copy link

projectitis commented Apr 20, 2024

Simple scripts could contain a docblock of some sort at the start with the same info as package.json?

For example, if it should be json to make parsing consistent:

--[[
{
    "name": "my script",
    "version": "0.1",
    "author": "Projectitis"
}
]]--

-- Rest of script

Or without json:

--[[
name: my script
version: 0.1
author: Projectitis
}
]]--

-- Rest of script

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants