From 64e119a26b762e7be43d997b20e1b1f9de39eb36 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Tue, 18 Feb 2025 05:46:01 -0500 Subject: [PATCH 1/2] feat(q): adding a new rust crate. --- .github/workflows/resuable/.keep | 0 Cargo.lock | 4 +++ Cargo.toml | 1 + packages/rust/q/Cargo.toml | 8 ++++++ packages/rust/q/project.json | 46 ++++++++++++++++++++++++++++++++ packages/rust/q/src/lib.rs | 8 ++++++ 6 files changed, 67 insertions(+) create mode 100644 .github/workflows/resuable/.keep create mode 100644 packages/rust/q/Cargo.toml create mode 100644 packages/rust/q/project.json create mode 100644 packages/rust/q/src/lib.rs diff --git a/.github/workflows/resuable/.keep b/.github/workflows/resuable/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/Cargo.lock b/Cargo.lock index b7f41ab8c..f321c32e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5518,6 +5518,10 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "q" +version = "0.1.0" + [[package]] name = "qoi" version = "0.4.1" diff --git a/Cargo.toml b/Cargo.toml index 78c736409..940c5e951 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ members = [ 'apps/experimental/rust_wasm_embed', 'apps/experimental/rust_p16_gameserver', 'apps/rentearth/rust_godot_towerdefense', + 'packages/rust/q', ] [profile.dev] diff --git a/packages/rust/q/Cargo.toml b/packages/rust/q/Cargo.toml new file mode 100644 index 000000000..d4f82cb83 --- /dev/null +++ b/packages/rust/q/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "q" +version = "0.1.0" +edition = "2021" + +[dependencies] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/rust/q/project.json b/packages/rust/q/project.json new file mode 100644 index 000000000..9552b7f9d --- /dev/null +++ b/packages/rust/q/project.json @@ -0,0 +1,46 @@ +{ + "name": "q", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "sourceRoot": "packages/rust/q/src", + "targets": { + "build": { + "executor": "@monodon/rust:build", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + }, + "configurations": { + "production": { + "release": true + } + } + }, + "test": { + "executor": "@monodon/rust:test", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + }, + "configurations": { + "production": { + "release": true + } + } + }, + "lint": { + "executor": "@monodon/rust:lint", + "outputs": [ + "{options.target-dir}" + ], + "options": { + "target-dir": "dist/target/q" + } + } + }, + "tags": [] +} diff --git a/packages/rust/q/src/lib.rs b/packages/rust/q/src/lib.rs new file mode 100644 index 000000000..1b4a90c93 --- /dev/null +++ b/packages/rust/q/src/lib.rs @@ -0,0 +1,8 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + let result = 2 + 2; + assert_eq!(result, 4); + } +} From 85afa77cdebb8f2b0fb4ef3c80ac33ac87a3cdc5 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Tue, 18 Feb 2025 06:00:29 -0500 Subject: [PATCH 2/2] ci(q): updating the crate for q. --- .github/workflows/ci-main.yml | 15 ++++++- .github/workflows/resuable/packages/.keep | 0 .../resuable/packages/rust-publish-crate.yml | 35 +++++++++++++++ Cargo.lock | 16 +++++++ packages/rust/q/Cargo.toml | 45 ++++++++++++++++++- packages/rust/q/README.md | 3 ++ 6 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/resuable/packages/.keep create mode 100644 .github/workflows/resuable/packages/rust-publish-crate.yml create mode 100644 packages/rust/q/README.md diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 1097bff1d..fce9ce136 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -59,7 +59,7 @@ jobs: fudster: ${{ steps.delta.outputs.fudster_any_changed }} laser: ${{ steps.delta.outputs.laser_any_changed }} worker: ${{ steps.delta.outputs.worker_any_changed }} - + q: ${{ steps.delta.outputs.q_any_changed }} steps: - name: Checkout the repository using git uses: actions/checkout@v4 @@ -111,6 +111,8 @@ jobs: - 'apps/cryptothrone.com/src/**' laser: - 'packages/laser/package.json' + q: + - 'packages/rust/q/README.md' debug: needs: ['alter', 'globals'] @@ -750,6 +752,17 @@ jobs: # pull_request_title: 'jedi-crates-minor-version-bump-${{ needs.globals.outputs.sha256head }}' # pull_request_body: 'Bumping up the minor version of the jedi package.' +# Q Release + + qrelease: + needs: ['deploy', 'alter', 'globals'] + if: needs.alter.outputs.q == 'true' + uses: ./.github/workflows/resuable/packages/rust-publish-crate.yml + with: + package: q + secrets: + CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} + python_atlas_publish: needs: ['deploy', 'alter', 'python_atlas_build'] name: Atlas KBVE Pypi Publish diff --git a/.github/workflows/resuable/packages/.keep b/.github/workflows/resuable/packages/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/resuable/packages/rust-publish-crate.yml b/.github/workflows/resuable/packages/rust-publish-crate.yml new file mode 100644 index 000000000..83e879a8e --- /dev/null +++ b/.github/workflows/resuable/packages/rust-publish-crate.yml @@ -0,0 +1,35 @@ +name: Rust Crate Publish + +on: + workflow_call: + inputs: + package: + required: true + type: string + secrets: + CRATES_TOKEN: + required: true + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: write + packages: write + issues: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Rust ToolChain + uses: dtolnay/rust-toolchain@stable + + - name: Cargo Login + run: cargo login ${{ secrets.CRATES_TOKEN }} + + - name: Cargo Publish + run: | + cargo publish -p ${{ inputs.package }} diff --git a/Cargo.lock b/Cargo.lock index f321c32e4..e4e0ccd5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5521,6 +5521,22 @@ dependencies = [ [[package]] name = "q" version = "0.1.0" +dependencies = [ + "bevy_ecs", + "godot", + "http 1.1.0", + "infer", + "objc2 0.6.0", + "papaya", + "rand 0.8.5", + "raw-window-handle 0.6.2", + "rstar", + "serde", + "serde_json", + "windows 0.59.0", + "wry 0.46.3", + "wry 0.48.1", +] [[package]] name = "qoi" diff --git a/packages/rust/q/Cargo.toml b/packages/rust/q/Cargo.toml index d4f82cb83..c844ad507 100644 --- a/packages/rust/q/Cargo.toml +++ b/packages/rust/q/Cargo.toml @@ -1,8 +1,51 @@ [package] name = "q" +authors = ["kbve", "h0lybyte"] version = "0.1.0" edition = "2021" +license = "MIT" +description = "Q is a Godot Helper Crate." +homepage = "https://kbve.com/" +repository = "https://github.com/KBVE/kbve/tree/main/packages/erust" +readme = "README.md" +rust-version = "1.75" + +[lib] +crate-type = ["cdylib"] [dependencies] +rand = "0.8" +godot = { version = "0.2.2", features = ["experimental-wasm", "lazy-function-tables"] } +bevy_ecs = { version = "0.15.1", features = ["default"] } +rstar = "0.12.2" +papaya = "0.1.8" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + + +[target."cfg(target_os = \"macos\")".dependencies] +objc2 = "0.6.0" +wry = { version = "0.46.2", features = ["transparent", "devtools"] } +raw-window-handle = "0.6.2" +http = "1.1.0" +infer = "0.16.0" + + +[target."cfg(target_os = \"windows\")".dependencies] +windows = { version = "0.59", features = [ + "Data_Xml_Dom", + "Win32_Security", + "Win32_System_Threading", + "Win32_UI_WindowsAndMessaging", +] } +wry = { version = "0.48.1", features = ["transparent", "devtools"] } +raw-window-handle = "0.6.2" +http = "1.1.0" +infer = "0.16.0" + -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[profile.release] +opt-level = 'z' +lto = "fat" +codegen-units = 1 +debug = false diff --git a/packages/rust/q/README.md b/packages/rust/q/README.md new file mode 100644 index 000000000..67eb6e187 --- /dev/null +++ b/packages/rust/q/README.md @@ -0,0 +1,3 @@ +## Q + +Q is a Godot Extensions Helper Library \ No newline at end of file