Skip to content

Commit

Permalink
feat: add the template for rust
Browse files Browse the repository at this point in the history
  • Loading branch information
upupnoah committed Apr 27, 2024
0 parents commit 4a131df
Show file tree
Hide file tree
Showing 14 changed files with 610 additions and 0 deletions.
55 changes: 55 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: build

on:
push:
branches:
- main
tags:
- v*
pull_request:
branches:
- main

permissions:
contents: write

jobs:
build-rust:
strategy:
matrix:
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Install Rust
run: rustup toolchain install stable --component llvm-tools-preview
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: install nextest
uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2
- name: Check code format
run: cargo fmt -- --check
- name: Check the package for errors
run: cargo check --all
- name: Lint rust sources
run: cargo clippy --all-targets --all-features --tests --benches -- -D warnings
- name: Execute rust tests
run: cargo nextest run --all-features
- name: Generate a changelog
uses: orhun/git-cliff-action@v2
id: git-cliff
if: startsWith(github.ref, 'refs/tags/')
with:
config: cliff.toml
args: -vv --latest --strip header
env:
OUTPUT: CHANGES.md
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
body: ${{ steps.git-cliff.outputs.content }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/target
.DS_Store
/.vscode
61 changes: 61 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
fail_fast: false
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-byte-order-marker
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
- repo: local
hooks:
- id: cargo-fmt
name: cargo fmt
description: Format files with rustfmt.
entry: bash -c 'cargo fmt -- --check'
language: rust
files: \.rs$
args: []
- id: cargo-deny
name: cargo deny check
description: Check cargo dependencies
entry: bash -c 'cargo deny check -d'
language: rust
files: \.rs$
args: []
- id: typos
name: typos
description: check typo
entry: bash -c 'typos'
language: rust
files: \.*$
pass_filenames: false
- id: cargo-check
name: cargo check
description: Check the package for errors.
entry: bash -c 'cargo check --all'
language: rust
files: \.rs$
pass_filenames: false
- id: cargo-clippy
name: cargo clippy
description: Lint rust sources
entry: bash -c 'cargo clippy --all-targets --all-features --tests --benches -- -D warnings'
language: rust
files: \.rs$
pass_filenames: false
- id: cargo-test
name: cargo test
description: unit test for the project
entry: bash -c 'cargo nextest run --all-features'
language: rust
files: \.rs$
pass_filenames: false
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Changelog

All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.

---
## [unreleased]

### Miscellaneous Chores

- initialize basic structure for the repo - ([2436bec](https://github.com/tyrchen/qdrant-lib/commit/2436bec4a02caac64f6c1f97ca79b6ce745b4f53)) - Tyr Chen

### Other

- init the project and add the assets - ([6a3ca0a](https://github.com/tyrchen/qdrant-lib/commit/6a3ca0a900451c55969cc8dec20afb5351d86599)) - Tyr Chen

<!-- generated by git-cliff -->
16 changes: 16 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[package]
name = "template"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow = "1.0.82"
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Noah

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
88 changes: 88 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Rust Template

## 环境设置

### 安装 Rust

```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

### 安装 VSCode 插件

- crates: Rust 包管理
- Even Better TOML: TOML 文件支持
- Better Comments: 优化注释显示
- Error Lens: 错误提示优化
- GitLens: Git 增强
- Github Copilot: 代码提示
- indent-rainbow: 缩进显示优化
- Prettier - Code formatter: 代码格式化
- REST client: REST API 调试
- rust-analyzer: Rust 语言支持
- Rust Test lens: Rust 测试支持
- Rust Test Explorer: Rust 测试概览
- TODO Highlight: TODO 高亮
- vscode-icons: 图标优化
- YAML: YAML 文件支持

### 安装 cargo generate

cargo generate 是一个用于生成项目模板的工具。它可以使用已有的 github repo 作为模版生成新的项目。

```bash
cargo install cargo-generate
```

新的项目会使用 `upupnoah/rust-template` 模版生成基本的代码:

```bash
cargo generate upupnoah/rust-template
```

### 安装 pre-commit

pre-commit 是一个代码检查工具,可以在提交代码前进行代码检查。

```bash
pipx install pre-commit
```

安装成功后运行 `pre-commit install` 即可。

### 安装 Cargo deny

Cargo deny 是一个 Cargo 插件,可以用于检查依赖的安全性。

```bash
cargo install --locked cargo-deny
```

### 安装 typos

typos 是一个拼写检查工具。

```bash
cargo install typos-cli
```

### 安装 git cliff

git cliff 是一个生成 changelog 的工具。

```bash
cargo install git-cliff
```

### 安装 cargo nextest

cargo nextest 是一个 Rust 增强测试工具。

```bash
cargo install cargo-nextest --locked
```

## 模版使用方法
1. cargo generate upupnoah/rust-template
2. 进入目录, 修改 cliff.toml 文件, 将 replace=后面的 URL 改为自己的仓库地址
3. pre-commit install
4 changes: 4 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[default.extend-words]

[files]
extend-exclude = ["CHANGELOG.md", "notebooks/*"]
3 changes: 3 additions & 0 deletions assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Assets

- [juventus.csv](./juventus.csv): dataset from [The-Football-Data](https://github.com/buckthorndev/The-Football-Data).
28 changes: 28 additions & 0 deletions assets/juventus.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Name,Position,DOB,Nationality,Kit Number
Wojciech Szczesny,Goalkeeper,"Apr 18, 1990 (29)",Poland,1
Mattia Perin,Goalkeeper,"Nov 10, 1992 (26)",Italy,37
Gianluigi Buffon,Goalkeeper,"Jan 28, 1978 (41)",Italy,77
Carlo Pinsoglio,Goalkeeper,"Mar 16, 1990 (29)",Italy,31
Matthijs de Ligt,Centre-Back,"Aug 12, 1999 (20)",Netherlands,4
Leonardo Bonucci,Centre-Back,"May 1, 1987 (32)",Italy,19
Daniele Rugani,Centre-Back,"Jul 29, 1994 (25)",Italy,24
Merih Demiral,Centre-Back,"Mar 5, 1998 (21)",Turkey,28
Giorgio Chiellini,Centre-Back,"Aug 14, 1984 (35)",Italy,3
Alex Sandro,Left-Back,"Jan 26, 1991 (28)",Brazil,12
Danilo,Right-Back,"Jul 15, 1991 (28)",Brazil,13
Mattia De Sciglio,Right-Back,"Oct 20, 1992 (27)",Italy,2
Emre Can,Defensive Midfield,"Jan 12, 1994 (25)",Germany,23
Miralem Pjanic,Central Midfield,"Apr 2, 1990 (29)",Bosnia-Herzegovina,5
Aaron Ramsey,Central Midfield,"Dec 26, 1990 (28)",Wales,8
Adrien Rabiot,Central Midfield,"Apr 3, 1995 (24)",France,25
Rodrigo Bentancur,Central Midfield,"Jun 25, 1997 (22)",Uruguay,30
Blaise Matuidi,Central Midfield,"Apr 9, 1987 (32)",France,14
Sami Khedira,Central Midfield,"Apr 4, 1987 (32)",Germany,6
Cristiano Ronaldo,Left Winger,"Feb 5, 1985 (34)",Portugal,7
Marko Pjaca,Left Winger,"May 6, 1995 (24)",Croatia,15
Federico Bernardeschi,Right Winger,"Feb 16, 1994 (25)",Italy,33
Douglas Costa,Right Winger,"Sep 14, 1990 (29)",Brazil,11
Juan Cuadrado,Right Winger,"May 26, 1988 (31)",Colombia,16
Paulo Dybala,Second Striker,"Nov 15, 1993 (25)",Argentina,10
Gonzalo Higuaín,Centre-Forward,"Dec 10, 1987 (31)",Argentina,21
Mario Mandzukic,Centre-Forward,"May 21, 1986 (33)",Croatia,17
Loading

0 comments on commit 4a131df

Please sign in to comment.