Skip to content

Latest commit

 

History

History
122 lines (86 loc) · 6.27 KB

File metadata and controls

122 lines (86 loc) · 6.27 KB

Contributing to OneLauncher/OneClient

Welcome!

Please read our Code of Conduct to keep our community approachable and respectable.

New Contributor Guide

To familiarize yourself with the project, please read the README. Here are some resources to help you get started with open-source contributions:

Getting Started

Issues

Creating a New Issue

If you come across an issue or have a feature request for OneLauncher/OneClient, please search if a related issue has already been reported. If no relevant issue exists, you can open a new issue using the appropriate issue form.

Solving an Issue

To find an issue that interests you, you can browse through our existing issues and use the available labels to narrow down your search (See Labels for more information). As a general rule, if you find an issue you want to work on, you are welcome to open a PR with a fix.

Making Changes

Making Changes Locally

This project is a pure Rust Cargo workspace (edition 2024). Make sure you have a recent Rust toolchain (rustc 1.97+) installed before proceeding - the easiest way is via rustup.

To make changes locally, follow these steps:

  1. Clone the repository: git clone https://github.com/Polyfrost/OneLauncher
  2. Navigate to the project directory: cd OneLauncher
  3. Configure your system environment for OneLauncher/OneClient development:
    1. Install a Rust toolchain that supports edition 2024: rustup toolchain install stable
    2. Freya renders with Skia; on Linux you may also need system libraries such as a C compiler, pkg-config, and the usual GUI/graphics dev packages. See the Freya setup guide for platform-specific prerequisites.

Running

The app crate is oneclient_app:

  • cargo run -p oneclient_app - Runs the OneClient desktop application.
  • cargo build --release -p oneclient_app - Builds an optimized release binary.

After you finish making your changes and committed them to your branch, run cargo fmt and cargo clippy to fix style inconsistencies and catch lints.

Packaging

Installers are built with cargo-packager (config in packages/oneclient_app/Cargo.toml under [package.metadata.packager]):

  • cargo install cargo-packager --locked
  • cargo build --release -p oneclient_app
  • cargo packager --release -p oneclient_app --formats <nsis|app,dmg|deb,appimage>

Releases are cut by dispatching the OneClient Release Build GitHub Actions workflow. See the Packaging / Releasing section of the README for details and per-OS prerequisites.

Pull Request

Once you have finished making your changes, create a pull request (PR) to submit them.

  • Fill out the template to help reviewers understand your changes and the purpose of your PR.
  • If you are addressing an existing issue, don't forget to link your PR to the issue.
  • Enable the checkbox to allow maintainer edits so that the branch can be updated for merging.
  • Once you submit your PR, a team member will review your proposal. They may ask questions or request additional information.
  • You may be asked to make changes before the PR can be merged, either through suggested changes or pull request comments. You can apply suggested changes directly through the UI. For other changes, you can make them in your fork and commit them to your branch.
  • As you update your PR and apply changes, mark each conversation as resolved.
  • If you run into any merge issues, refer to this git tutorial to help you resolve merge conflicts and other issues.

Your PR is Merged!

Congratulations! 🎉🎉 Polyfrost thanks you for your contribution! ✨ Once your PR is merged, your changes will be included in the next release.

Common Errors

macOS errors with Xcode command line tools

Build errors can occur when the Xcode command line tools are not installed or not in your PATH.

Run xcode-select --install in the terminal to install them. If they are already installed, ensure that macOS is updated to the latest version available.

Credits

This CONTRIBUTING.md file was inspired by the github/docs CONTRIBUTING.md file, and we extend our gratitude to the original authors.