-
Notifications
You must be signed in to change notification settings - Fork 17
docs: refresh README and CONTRIBUTING #199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -2,74 +2,63 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [crates-shield]: https://img.shields.io/crates/v/soar-cli | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [crates-url]: https://crates.io/crates/soar-cli | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [downloads-shield]: https://img.shields.io/github/downloads/pkgforge/soar/total?label=downloads | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [downloads-url]: https://github.com/pkgforge/soar/releases | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [discord-shield]: https://img.shields.io/discord/1313385177703256064?logo=%235865F2&label=discord | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [discord-url]: https://discord.gg/djJUs48Zbu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [doc-shield]: https://img.shields.io/badge/docs-soar.qaidvoid.dev-blue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [doc-url]: https://soar.qaidvoid.dev | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [license-shield]: https://img.shields.io/github/license/pkgforge/soar.svg | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [license-url]: https://github.com/pkgforge/soar/blob/main/LICENSE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Soar | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [![Crates.io][crates-shield]][crates-url] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [![Downloads][downloads-shield]][downloads-url] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [![Discord][discord-shield]][discord-url] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [![Documentation][doc-shield]][doc-url] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [![License: MIT][license-shield]][license-url] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **A fast, modern, distro-independent package manager that _just works_.** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <h4 align="center"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <a href="https://soar.qaidvoid.dev">📘 Documentation</a> | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </h4> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Install static binaries, AppImages, and other portable formats | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (AppBundle, FlatImage, RunImage, onelf, and more) on any Linux distribution. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <p align="center"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| A fast, modern, bloat-free distro-independent package manager that <i>just works</i><br> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Supports static binaries, AppImages, and other Portable formats (AppBundle, FlatImage, RunImage, Wrappe, etc.) on any Linux distribution. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </p> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 📦 What is Soar? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Soar installs packages; it does not build or host them. Repositories publish | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| metadata in a standard format, and Soar reads that metadata to search, install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| and update packages under your home directory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| metadata in a standard format, and Soar reads that metadata to search, install, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| and update packages right under your home directory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| That split is the point: [soarpkgs](https://github.com/pkgforge/soarpkgs) is | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| the default repository, but Soar is not tied to it. Add a third-party one, or | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [run your own](https://soar.qaidvoid.dev/configuration#custom-repository-support). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| That split is the whole point. [soarpkgs](https://github.com/pkgforge/soarpkgs) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| is the default repository, but Soar is not tied to it. Add a third-party one, or | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [run your own](https://soar.qaidvoid.dev/configuration#repositories). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Runs on any Linux distribution, on **x86_64**, **aarch64** and **riscv64**. No | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| superuser, no runtime dependencies, no distribution packages touched. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| It runs on any Linux distribution, with no superuser, no runtime dependencies, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| and no distribution packages touched. What you can install depends on the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| repository. soarpkgs publishes packages for **x86_64**, **aarch64**, and | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **riscv64**. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🪄 Quickstart | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🪄 Install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > [!TIP] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Soar comes as a single-file, statically-linked executable with no dependencies that you can simply [download](https://github.com/pkgforge/soar/releases/latest) & run. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - The [install script](https://github.com/pkgforge/soar/blob/main/install.sh) does this & more automatically for you. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Soar is a single statically-linked binary. Grab it with the install script: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # cURL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # curl | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -fsSL "https://raw.githubusercontent.com/pkgforge/soar/main/install.sh" | sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # wget | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| wget -qO- "https://raw.githubusercontent.com/pkgforge/soar/main/install.sh" | sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > [!NOTE] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Please read & verify what's inside the script before running it | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - The script is also available through https://soar.qaidvoid.dev/install.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Additionally, if you want to customize your installation, please read the docs @ https://soar.qaidvoid.dev/installation.html | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Next, check [Configuration](https://soar.qaidvoid.dev/configuration) & [Usage](https://soar.qaidvoid.dev/package-management) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🌟 Key Features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Feature | Description | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |:--:|:--| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Universal** | Single statically-linked binary. No dependencies, no superuser, works on any Linux distribution. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Portable Formats** | Install static binaries, AppImages, and other self-contained archives with ease. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **System Integration** | Adds desktop entries and icons, and links manual pages and shell completions where your system already looks for them. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Install From Anywhere** | Install from a repository, a direct URL, or a local file. A package installed from a GitHub or GitLab release is then kept up to date from that release. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Delta Updates** | An AppImage advertising a zsync feed is updated by fetching only the parts that changed. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Security First** | Enforces security through checksums and signature verification for package installations. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Fast & Efficient** | Minimal overhead with parallel downloads and efficient package operations. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Read and verify the script before piping it to a shell. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - It is also served from https://soar.qaidvoid.dev/install.sh. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - Prefer to do it yourself? [Download a release](https://github.com/pkgforge/soar/releases/latest) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > and drop the binary on your `PATH`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > - To customize the install, see the [installation docs](https://soar.qaidvoid.dev/installation). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
56
to
+61
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Tell manual installers to rename the release asset. The release workflow publishes names such as Suggested wording- and drop the binary on your `PATH`.
+ make it executable, rename it to `soar`, and place it on your `PATH`.📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🚀 Usage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -91,25 +80,34 @@ from a GitHub or GitLab release keeps tracking that release: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| soar install https://github.com/owner/repo/releases/download/v1/tool | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| `soar --help` lists the rest. Full documentation is at | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| `soar --help` lists the rest. Full documentation lives at | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [soar.qaidvoid.dev](https://soar.qaidvoid.dev/package-management). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🌟 Features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Feature | Description | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |:--|:--| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Universal** | One statically-linked binary. No dependencies, no superuser, any Linux distribution. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Portable formats** | Static binaries, AppImages, and other self-contained formats, installed the same way. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Install from anywhere** | From a repository, a direct URL, or a local file. Releases installed from GitHub or GitLab stay up to date. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Delta updates** | AppImages advertising a zsync feed update by fetching only the parts that changed. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **System integration** | Desktop entries, icons, man pages, and shell completions land where your system already looks. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Secure by default** | Checksums and signatures are verified before anything is installed. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
rg -n -i \
--glob '*.rs' \
'signature|verify_signature|sigstore|cosign|gpg|ed25519|checksum' \
crates install.sh .githubRepository: pkgforge/soar Length of output: 27279 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- install integrity gate and verification flow ---'
sed -n '840,975p;1080,1200p;1260,1340p' crates/soar-operations/src/install.rs
printf '%s\n' '--- installation entry points and bypass options ---'
rg -n -C 3 \
'install_packages|install_package|no_verify|NoVerify|verify_integrity|signature_verification|verify_signatures' \
crates/soar-operations crates/soar-core crates/soar-cli
printf '%s\n' '--- package installation paths ---'
sed -n '1,130p;850,925p;1035,1090p;1270,1340p' crates/soar-core/src/package/install.rs
sed -n '1,150p' crates/soar-core/src/package/local.rsRepository: pkgforge/soar Length of output: 50369 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- repository signature defaults and config resolution ---'
sed -n '1,75p;430,485p;750,815p' crates/soar-config/src/config.rs
sed -n '1,70p;90,125p' crates/soar-config/src/repository.rs
sed -n '85,110p;225,245p' crates/soar-cli/src/cli.rs
printf '%s\n' '--- package source exceptions and download verification ---'
rg -n -C 5 \
'source_skips_integrity_gate|ghcr_pkg|local_path_from_url|expected_checksum|download_package|install_extras' \
crates/soar-operations/src/install.rs crates/soar-core/src/package/install.rs crates/soar-config/src/packages.rs
printf '%s\n' '--- README claim context ---'
sed -n '88,101p' README.mdRepository: pkgforge/soar Length of output: 26173 Correct the security claim The installer verifies a checksum or a valid package signature, not both. Local packages and 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | **Fast** | Parallel downloads and low-overhead package operations. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🔑 Forge Tokens | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Installing or updating from a release uses that forge's API, which is rate | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| limited. GitHub's limit of 60 requests an hour is easy to reach, so setting | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| `GITHUB_TOKEN` or `GH_TOKEN` is worth doing if you track several packages that | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| limited. GitHub allows 60 requests an hour unauthenticated, which is easy to | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| reach, so set `GITHUB_TOKEN` or `GH_TOKEN` if you track several packages that | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| way. GitLab counts per minute and is rarely a problem, but honours | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| `GITLAB_TOKEN` and `GL_TOKEN` all the same. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🤝 Contributing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| We welcome contributions! Please feel free to fork the repository and submit pull requests. See [CONTRIBUTING.md](https://github.com/pkgforge/soar/blob/main/CONTRIBUTING.md) for contribution guidelines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 💬 Contact | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| We have a growing community on discord to discuss not only Soar/Pkgforge but also other cool projects, feel free to join & hangout anytime. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [](https://discord.gg/djJUs48Zbu) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Contributions are welcome. Fork the repository, open a pull request, and see | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [CONTRIBUTING.md](https://github.com/pkgforge/soar/blob/main/CONTRIBUTING.md) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| for the guidelines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Minimum Supported Rust Version (MSRV) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Do not make commit compliance depend on an assumption about squash.
Line 56 allows looser headers when a contributor expects the commits to be squashed. Maintainers may merge without squashing. State that the exception applies only when maintainers confirm the squash, and require the final squashed commit to conform.
Suggested wording
📝 Committable suggestion
🤖 Prompt for AI Agents