~avery/crankshaft

Steam client plugin framework

#61 Booting with no internet connection causes the icon to disappear

~olyve filed ticket on crankshaft todo

7 hours ago

57c2cda Update HandyPT to v0.2.0

21 hours ago

#crankshaft

#Steam client plugin manager and framework

Crankshaft lets you install and create plugins to add more functionality to your Steam client.

builds.sr.ht status

#Usage

See installation instructions at crankshaft.space.

#Development

Crankshaft requires the following dependencies:

To set up your development environment:

  • Clone this repo: git clone https://git.sr.ht/~avery/crankshaft
  • Set up Git commit hooks: make configure-git-hooks
  • Install Javascript dependencies: make install-js-deps
  • Compile and run Crankshaft: make run

#Distribution

Currently, Crankshaft is only distributed as a Flatpak. Crankshaft is available on Flathub.

To create a new Flatpak release:

  • Bump the version number in build/build.go
  • Add a new releases to the releases section in the Appstream metadata
    • Add release notes, you can generate a list of commits since the previous version to help:
    • git log --pretty=format:'%s' $(git describe --tags --abbrev=0)..HEAD
    • Validate the metadata: flatpak run --env=G_DEBUG=fatal-criticals org.freedesktop.appstream-glib validate desktop/space.crankshaft.Crankshaft.metainfo.xml
  • Commit these changes
  • Create a tag for the new version
    • git tag -a X.Y.Z
    • In the message, paste the release notes you made earlier
  • Push your commit and tag to main
  • Update the archive URL and checksum in the Flatpak manifest
  • Push the manifest change and wait for it to be built and released
  • Release new version of @crankshaft/types NPM package
    • make api-extractor
    • cd injected/crankshaft-types
    • yarn publish --access public
      • Bump version number to match new Crankshaft version