From b530e022f8db2bb8c23448684c01de60746b8091 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 1 Jan 2026 03:57:42 +0000 Subject: [PATCH] feat: Add Rust project infrastructure This commit introduces the foundational infrastructure for creating and managing standardized Rust repositories within the jbcom organization, as part of the Rust Ecosystem Integration Initiative. Key changes include: - A new `rust` configuration in `sync-files` for templating. - A standard CI workflow for Rust projects (`.github/workflows/rust.yml`). - Default repository settings (`.github/settings.yml`). - Template `.gitignore` and `README.md` files for new Rust projects. - An updated `repos.json` to register the Tier 1 Rust repositories. - The `README.md` template now uses distinct `REPO_NAME` and `CRATE_NAME` placeholders to ensure correct link and name generation. --- repos.json | 17 ++++ sync-files/rust/.github/settings.yml | 51 ++++++++++ sync-files/rust/.github/workflows/rust.yml | 26 +++++ sync-files/rust/.gitignore | 108 +++++++++++++++++++++ sync-files/rust/README.md | 34 +++++++ 5 files changed, 236 insertions(+) create mode 100644 repos.json create mode 100644 sync-files/rust/.github/settings.yml create mode 100644 sync-files/rust/.github/workflows/rust.yml create mode 100644 sync-files/rust/.gitignore create mode 100644 sync-files/rust/README.md diff --git a/repos.json b/repos.json new file mode 100644 index 0000000..c3fdfac --- /dev/null +++ b/repos.json @@ -0,0 +1,17 @@ +{ + "rust-ai-client": { + "extends": "rust", + "repo_name": "rust-ai-client", + "crate_name": "ai-client-rs" + }, + "rust-bevy-ai": { + "extends": "rust", + "repo_name": "rust-bevy-ai", + "crate_name": "bevy-ai-toolkit" + }, + "rust-bevy-combat": { + "extends": "rust", + "repo_name": "rust-bevy-combat", + "crate_name": "bevy-combat" + } +} diff --git a/sync-files/rust/.github/settings.yml b/sync-files/rust/.github/settings.yml new file mode 100644 index 0000000..e5605a6 --- /dev/null +++ b/sync-files/rust/.github/settings.yml @@ -0,0 +1,51 @@ +# Settings for Rust repositories in the jbcom organization +_extends: .github + +repository: + # See https://docs.github.com/en/rest/reference/repos#update-a-repository for all available settings. + + # The name of the repository. + # name: repo-name + + # A short description of the repository that will show up on GitHub. + # description: description of repo + + # A URL with more information about the repository. + # homepage: https://example.github.io/ + + # A comma-separated list of topics to set on the repository. + # topics: rust, bevy + + # Either `true` to make the repository private, or `false` to make it public. + private: false + + # Either `true` to enable issues for this repository, `false` to disable them. + has_issues: true + + # Either `true` to enable projects for this repository, or `false` to disable them. + # If projects are enabled, the default projects templates will be used. + has_projects: true + + # Either `true` to enable the wiki for this repository, `false` to disable it. + has_wiki: true + + # Either `true` to enable downloads for this repository, `false` to disable them. + has_downloads: true + + # Updates the default branch for this repository. + default_branch: main + + # Either `true` to allow squash-merging pull requests, or `false` to prevent + # squash-merging. + allow_squash_merge: true + + # Either `true` to allow merging pull requests with a merge commit, or `false` + # to prevent merging pull requests with merge commits. + allow_merge_commit: true + + # Either `true` to allow rebase-merging pull requests, or `false` to prevent + # rebase-merging. + allow_rebase_merge: true + + # Either `true` to automatically delete head branches when pull requests are merged, or `false` to prevent this. + delete_branch_on_merge: true diff --git a/sync-files/rust/.github/workflows/rust.yml b/sync-files/rust/.github/workflows/rust.yml new file mode 100644 index 0000000..29ba09f --- /dev/null +++ b/sync-files/rust/.github/workflows/rust.yml @@ -0,0 +1,26 @@ +name: Rust CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Format + run: cargo fmt -- --check + - name: Lint + run: cargo clippy -- -D warnings + - name: Test + run: cargo test --verbose + - name: Build + run: cargo build --verbose --release diff --git a/sync-files/rust/.gitignore b/sync-files/rust/.gitignore new file mode 100644 index 0000000..a1e6d19 --- /dev/null +++ b/sync-files/rust/.gitignore @@ -0,0 +1,108 @@ +# This file should only ignore things that are generated during a `x.py` build, +# generated by common IDEs, and optional files controlled by the user that +# affect the build (such as bootstrap.toml). +# +# In particular, things like `mir_dump` should not be listed here; they are only +# created during manual debugging and many people like to clean up instead of +# having git ignore such leftovers. You can use `.git/info/exclude` to +# configure your local ignore list. + +## File system +.DS_Store +desktop.ini + +## Editor +*.swp +*.swo +Session.vim +.cproject +.idea +*.iml +.vscode +.project +.vim/ +.helix/ +.zed/ +.favorites.json +.settings/ +.vs/ +.dir-locals.el + +## Tool +.valgrindrc +.cargo +# Included because it is part of the test case +!/tests/run-make/thumb-none-qemu/example/.cargo + +## Configuration +/bootstrap.toml +/config.toml +/Makefile +config.mk +config.stamp +no_llvm_build + +## Build +/dl/ +/doc/ +/inst/ +/llvm/ +/mingw-build/ +/build +/build-rust-analyzer +/dist/ +/unicode-downloads +/target +/library/target +/src/bootstrap/target +/src/ci/citool/target +/src/tools/x/target +# Created by `x vendor` +/vendor +# Created by default with `src/ci/docker/run.sh` +/obj/ +# Created by nix dev shell +/ .envrc +src/tools/nix-dev-shell/flake.lock + +## ICE reports +rustc-ice-*.txt + +## Temporary files +*~ +\#* +\#*\# +.#* + +## Tags +tags +tags.* +TAGS +TAGS.* + +## Python +__pycache__/ +*.py[cod] +*$py.class + +## Node +node_modules +/src/doc/rustc-dev-guide/mermaid.min.js + +## Rustdoc GUI tests +tests/rustdoc-gui/**.lock + +## Test dashboard +.citool-cache/ +test-dashboard/ + +## direnv +/.envrc +/.direnv/ + +## nix +/flake.nix +flake.lock +/default.nix + +# Before adding new lines, see the comment at the top. diff --git a/sync-files/rust/README.md b/sync-files/rust/README.md new file mode 100644 index 0000000..f9bb324 --- /dev/null +++ b/sync-files/rust/README.md @@ -0,0 +1,34 @@ +# {{CRATE_NAME}} + + + +[![Latest version](https://img.shields.io/crates/v/{{CRATE_NAME}}.svg)](https://crates.io/crates/{{CRATE_NAME}}) +[![Documentation](https://docs.rs/{{CRATE_NAME}}/badge.svg)](https://docs.rs/{{CRATE_NAME}}) +[![CI](https://github.com/jbcom/{{REPO_NAME}}/actions/workflows/rust.yml/badge.svg)](https://github.com/jbcom/{{REPO_NAME}}/actions/workflows/rust.yml) + +## Overview + +(insert high-level overview of the package) + +## Usage + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +{{CRATE_NAME}} = "0.1.0" +``` + +## Development + +Run tests with: + +```bash +cargo test +``` + +## License + +This project is licensed under the terms of the MIT license.