Skip to content

Packaging and distributing apps #8

Open
@killercup

Description

@killercup

(moderated summary by @epage)

Context:

  • "Rust makes writing crossplatform, tested, modern command line applications frictionless while incorporating industry best practices and providing great documentation." (goal)
  • Focus is on CLI apps (see README for definition)

Assumptions and Implications

  • Majority of CLIs will at more than just Rust developers (for targeting rust-developers, see Improving binary distribution through cargo. #20)
  • Users of CLIs will be somewhat technical considering they are using a terminal
  • Use case priorities
    1. Using the app on the command line via the path
    2. Glued together with other apps in a script
    3. Drag and drop files onto an icon for the CLI
  • Examples of content to distribute

Other solutions

Plan of attack

  1. "How to package" documentation
  1. Automation
  • Implement stager
  • Reach out to binary packaging tools to consolidate effort with stager

In-ecosystem resources

Open Issues

Open Questions

  • Prioritized list of package formats per platform?
    • Linux: deb, rpm, flatpak, snap
      • Are flatpak / snap's apps added to PATH?
    • Windows: MSI via wix, chocolatey
    • Mac: homebrew
      • How easily are pkg's available from command line?
  • PPAs?
  • Use case, challenges, and priority of source packages?
  • Importance of remote administration and provisioning?

@killercup's original post

In the first meeting, we identified packaging and distributing CLI apps a something we should improve.

We need to have a best-practice solution for getting from "I have a crate with a binary" to "I can ship this app and don't have to worry about cross-platform installation stuff".

Edit 2018-03-19: This issue is about distribution of rust binaries without using cargo-install.

Metadata

Metadata

Assignees

Labels

A-distributionArea: Licensing, packaging, etcC-tracking-issueCategory: A tracking issue for an unstable feature

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions