Skip to content

JRiggles/Aseprite-Extension-Updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aseprite Extension Updater

Warning

This project is on hold until I can find a suitable solution for updating paid Aseprite extensions such as those hosted on itch.io, and expand its functionality beyond relying solely on GitHub releases

icon

An Aseprite extension

This Aseprite extension allows you to easily check participating1 Aseprite extensions for updates and download them.

Important

This extension will only be able to update Aseprite extensions which have been specifically designed to work with it (see note 1)

current release: v0.2.0

Latest Changes

  • Feature: Added the option to check for extension updates when Aseprite starts (thanks to Lospec Discord user @Astropulse for the idea!)
  • Feature: Added the ability to refresh the updater dialog
  • Fixed: GUI tweaks and dialog improvements
  • Fixed: Download + Install dialog behavior

Known Limitations / Issues

  • Due to the reliance on GitHub Releases, paywalled extensions are not currently supported (and consequently neither are paid updates)

Requirements

This extension has been tested on both Windows and Mac OS (specifically, Windows 11 and Mac OS Sequoia 15.1.1)

It should also work for Linux, but that hasn't been tested.

It is intended to run on Aseprite version 1.3 or later and requires API version 1.3-rc5 (as long as you have the latest version of Aseprite, you should be fine!)

Permissions

When you run this plugin for the first time, you'll be aked to grant some permissions.

When prompted, select the "Give full trust to this script" checkbox and then click "Give Script Full Access" (you'll only need to do this once)

security dialog

Features & Usage

Once installed, you can find the updater in Aseprite's File menu.

file menu

Simply click on Check for Extension Updates... to check for updates and download the latest versions of compatible installed extensions.

You can also configure the updater to check for extension updates automatically when Aseprite starts!

If any updates are available, you'll see them listed in a dialog like this:

updates available

  • Clicking Download will open your default browser and download the extension. Once the extension is downloaded, you can install it manually

  • Clicking Download & Install will download the extension and then Aseprite will prompt you to install it

If everything is already up to date, you'll see this instead:

no updates available

Installation

You can download this extension from itch.io as a "pay what you want" tool

If you find this extension useful, please consider donating via itch.io to support further development! ♥

For Extension Developers

Adding Your Extension

To add updater compatibility to your extension, you'll need to make a few changes to your package.json file and use GitHub releases for versioning.

Important

The updater understands and uses Semantic Versioning for version comparison. Prefixes like version or v, (e.g. v1.2.3), and affixes like -alpha (e.g. v4.2.0-alpha) are ignored. The updater only looks for the latest stable release (for now)

Changes to package.json

Add the following to the root of your package.json:

"asepriteExtensionUpdater": {
    "updateUrl": "https://api.github.com/repos/<your-github-username>/<your-extension-repo>/releases/latest"
}

asepriteExtensionUpdater.updateUrl is the URL that the updater extension checks for the latest release. This should point to the latest release API endpoint of your GitHub repository. Be sure to include your-github-username and your-extension-repo in the URL!

Tip

You can add this JSON snippet anywhere between the opening and closing brackets {} in your extension's package.json file - just be mindful of commas!

Using GitHub Releases

  1. Create a new release: Go to your GitHub repository, click on "Releases" on the right sidebar, and then click "Draft a new release".
  2. Tag the release: Set the tag version (e.g., v1.0.0) and ensure it matches the version field in your package.json.
  3. Release title and description: Provide a title and description for your release. This can include details about the changes and new features. (This isn't required by the updater, but it is good practice!)
  4. Attach files: Upload the extension file (e.g., <your extension>.aseprite-extension) to the release. If you forget to attach the *.aseprite-extension file to your release, users will see a dialog like this when they attempt to update (where "Extension Updater" is replaced with your extension's name): no bundle
  5. Publish the release: Click "Publish release" to make it available.

By following these steps, your extension will be compatible with the Aseprite Extension Updater, allowing users to easily check for and download updates!

Once you've made the changes to your extension's package.json, you just need to create a GitHub release whenever you update your Aseprite extension.

Show Your Support

Use this badge to let others know your extension supports the updater

badge

Note

For more detailed information on how to create and manage releases on GitHub, please refer to the GitHub Releases documentation

Tip

You don't need to have the Aseprite Extension Updater extension installed in order to add updater compatibility to your own extension(s), but it does help with testing!

TODO

  • Support for other release sources, like GitLab or itch.io
  • Support for paywalled release sources?
  • Allow -alpha / -beta / unstable updates
  • Add link to release notes / changelogs (or display them in a separate dialog?)

Footnotes

  1. For information on how to add compatibility with the updater to your extension, please refer to Adding Your Extension.

About

Framework for easy updates of Aseprite extensions

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages