diff --git a/.github/workflows/rust-clippy.yml b/.github/workflows/rust-clippy.yml index 1e6a866..b77be5c 100644 --- a/.github/workflows/rust-clippy.yml +++ b/.github/workflows/rust-clippy.yml @@ -18,15 +18,18 @@ on: schedule: - cron: '23 2 * * 5' +env: + CARGO_TERM_COLOR: always + jobs: rust-clippy-analyze: name: Run rust-clippy analyzing runs-on: ubuntu-latest - + permissions: contents: read security-events: write - + steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/rust-fmt.yml b/.github/workflows/rust-fmt.yml deleted file mode 100644 index f4eb09c..0000000 --- a/.github/workflows/rust-fmt.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Rust Fmt - -on: - push: - branches: [ "rewrite" ] - -permissions: - pull-requests: write - -env: - CARGO_TERM_COLOR: always - -jobs: - format: - runs-on: ubuntu-latest - - permissions: - contents: write - - steps: - - uses: actions/checkout@v3 - - name: Formatting Code - run: cargo fmt --all --verbose - - name: Create Pull Request - uses: repo-sync/pull-request@v2 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - destination_branch: "rewrite" - source_branch: rewrite diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 7c85fe4..1b288a7 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -20,5 +20,3 @@ jobs: run: cargo build --verbose - name: Run tests run: cargo test --verbose - - name: Check formatting - run: cargo fmt --all -- --check diff --git a/.gitignore b/.gitignore index bac0002..c2819b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,10 @@ # Generated files target/ -# The library shouldn't decide about the exact versions of +# The library shouldn't decide about the exact versions of # its dependencies, but let the downstream crate decide. -Cargo.lock \ No newline at end of file +Cargo.lock + +# We don't want to commit IDE configuration files. +.idea/ +.vscode/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..23a7ce7 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +ci: + skip: [clippy, cargo-check] + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-byte-order-marker + - id: check-case-conflict + - id: check-merge-conflict + - id: check-symlinks + - id: check-yaml + - id: check-toml + - id: end-of-file-fixer + - id: mixed-line-ending + - id: trailing-whitespace + - repo: https://github.com/winapps-org/pre-commit-rust + rev: v1.1 + hooks: + - id: fmt + - id: clippy + - id: cargo-check diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..45d257b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9d4688d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contribution Guidelines + +Thank you for contributing to winapps! Before you can contribute, we ask some things of you: + +- Please follow our Code of Conduct, the Contributor Covenant. You can find a copy in this repository or under https://www.contributor-covenant.org/ +- All Contributors have to sign [a CLA](https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5) for legal reasons. When opening a PR, @cla-assitant will prompt you and guide you through the process. However, if you contribute on behalf of a legal entity, we ask of you to sign [a different CLA](https://gist.github.com/oskardotglobal/75a8cc056e56a439fa6a1551129ae47f). In that case, please contact us. + +## How to contribute + +- Fork this repository +- Create a new branch with a descriptive name +- Make your changes +- Install and run `pre-commit` (see below) +- Open a Pull Request + +## Pre-commit + +pre-commit is a tool which allows to run checks before committing. +It is recommended to install it and run it before committing, since the same checks +are run through github actions on pull request. We will not merge a pull request unless all checks pass. + +Installation instructions can be found here: https://pre-commit.com/#install
+After installing, run `pre-commit install` in the repository root to install the git hooks. + +It is recommended to run `pre-commit run --all-files` before committing to make sure all checks pass. It is also recommended to use the git cli since graphical git solutions do not always play well with pre-commit. diff --git a/Cargo.toml b/Cargo.toml index a54817b..8cd05f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,4 +3,4 @@ members = [ "winapps", "winapps-cli", "winapps-gui", -] \ No newline at end of file +] diff --git a/README.md b/README.md index a5c8847..cc5e8b4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # winapps rewrite [![Rust](https://github.com/winapps-org/winapps/actions/workflows/rust.yml/badge.svg?branch=rewrite)](https://github.com/winapps-org/winapps/actions/workflows/rust.yml) [![Rust Clippy](https://github.com/winapps-org/winapps/actions/workflows/rust-clippy.yml/badge.svg?branch=rewrite)](https://github.com/winapps-org/winapps/actions/workflows/rust-clippy.yml) +[![Rust Check](https://github.com/winapps-org/winapps/actions/workflows/rust-check.yml/badge.svg?branch=rewrite)](https://github.com/winapps-org/winapps/actions/workflows/rust-check.yml) -The winapps rewrite project is a whole rewrite of the legacy winapps in rust. Its goal is to simplify the installation and provide a cleaner codebase. +The winapps rewrite project is a whole rewrite of the legacy winapps in rust. Its goal is to simplify the installation and provide a cleaner codebase. diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index 61ca1ec..a7af7dd 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -24,8 +24,9 @@ fn main() { println!("Connecting to remote"); } Some((_, _)) => { - cli.about("Command not found try existing ones!") - .print_help(); + cli.about("Command not found, try existing ones!") + .print_help() + .expect("Couldn't print help"); } _ => unreachable!(), } diff --git a/winapps-gui/Cargo.toml b/winapps-gui/Cargo.toml index 1ad1b98..771b90c 100644 --- a/winapps-gui/Cargo.toml +++ b/winapps-gui/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -winapps = { path = "../winapps" } \ No newline at end of file +winapps = { path = "../winapps" }