Revery Packager Save

Helper utility to package Revery applications into installable app bundles

Project README

revery-packager

Utility inspired by electron-builder for bundling Revery applications into installable application packages.

This is extracted out from the Onivim 2 packaging scripts, and provides a way to get redistributable executables from your Revery projects.

This packager takes care of some of the heavy lifting, like:

  • Windows: Bringing in the proper set of runtime DLL dependencies
  • OS X: Bundling dylibs and remapping rpaths to be relocatable
  • Linux: Bundling so libs and remapping rpath's to be relocatable.

...but you don't have to worry about that - you can just run revery-packager and be good to go.

Installation

npm install -g revery-packager`

Usage

  1. Ensure your Revery project is built and up-to-date (esy install, esy build).
  2. Run revery-packager at the root of your Revery project.

You'll find the release artifacts for the current platform in the _release folder.

NOTE: Today, revery-packager doesn't support 'cross-platform' packaging - meaning you need to run revery-packager on each platform you wish to distribute builds. We recommend Azure Devops CI as a way build and get packages for all platforms - see our revery-quick-start pipeline for an example.

Configuration

You can customize the behavior of the packager by adding a revery-packager section to your package.json, like:

package.json

  "name": "revery-quick-start",
  "version": "1.3.0",
  "description": "Revery quickstart",
  "license": "MIT",
  "esy": {
    "build": "refmterr dune build -p App",
    "buildsInSource": "_build"
  },
  "revery-packager": {
    "bundleName": "ExampleApp",
    "bundleId": "com.example.app",
    "displayName": "Revery Example App",
    "mainExecutable": "App",
    "windows": {
      "packages": ["zip"],
      "iconFile": "assets/icon.ico"
    },
    "darwin": {
      "packages": ["tar", "dmg"],
      "iconFile": "assets/icon.icns"
    },
    "linux": {
      "packages": ["tar", "appimage"]
    }
  },
  ...

The following properties are configurable:

  • bundleName - The bundle name of the application. Used for manifests and for the filename.
  • bundleId - An identifier for the application. Used as the CFBundleIdentifier for Mac.
  • displayName - Display name of the application, used for installers, desktop entries, etc.
  • mainExecutable - The entry point for the application. There should be no .exe suffix added.
  • packages - per-platform list of packages to build:
  • dmgBackground - MAC-ONLY - background to use for DMG installer
  • appImageType - LINUX-ONLY - type to use in the desktop entry for the AppImage
  • appImageCategory - LINUX_ONLY - category to use for the desktop entry for the AppImage
  • iconFile
    • Windows - an .ico file to use for the executable
    • Linux - a .png file to use the desktop entry
    • Mac - an .icns file to use for the app icon

You can also specify per-platform settings by using the windows, darwin, and linux sections - you probably want to do this for settings like iconFile.

Roadmap

  • Windows
    • Code signing
    • zip package
    • exe installer
    • msi installer
  • OSX
    • Code signing
    • Notarization
    • tar package
    • dmg package
  • Linux
    • GPG signature
    • tar package
    • appimage package

License

MIT License

Copyright 2019 Outrun Labs, LLC

Open Source Agenda is not affiliated with "Revery Packager" Project. README Source: revery-ui/revery-packager
Stars
38
Open Issues
4
Last Commit
10 months ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating