crankshaft

module
v0.0.0-...-95e8c34 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2022 License: GPL-3.0

README

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:

Crankshaft on Windows 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

Directories

Path Synopsis
cmd
Package patcher handles patching of Steam client resources.
Package patcher handles patching of Steam client resources.
Package pathutil implements utilities for handing file paths.
Package pathutil implements utilities for handing file paths.
rpc
tags exports build tags.
tags exports build tags.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL