Skip to content

Commit d9b1c26

Browse files
author
larp-agent
committed
Add repository improvements and enhancements
1 parent 15e1872 commit d9b1c26

File tree

8 files changed

+854
-0
lines changed

8 files changed

+854
-0
lines changed

.github/dependabot.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
version: 2
2+
updates:
3+
# Enable version updates for Cargo
4+
- package-ecosystem: "cargo"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
open-pull-requests-limit: 10
9+
labels:
10+
- "dependencies"
11+
- "rust"
12+
commit-message:
13+
prefix: "cargo"
14+
include: "scope"
15+
16+
# Enable version updates for GitHub Actions
17+
- package-ecosystem: "github-actions"
18+
directory: "/"
19+
schedule:
20+
interval: "weekly"
21+
open-pull-requests-limit: 10
22+
labels:
23+
- "dependencies"
24+
- "github-actions"
25+
commit-message:
26+
prefix: "github-actions"
27+
include: "scope"

.github/workflows/release.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
create-release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
- name: Create Release
14+
id: create_release
15+
uses: actions/create-release@v1
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
with:
19+
tag_name: ${{ github.ref }}
20+
release_name: Release ${{ github.ref }}
21+
draft: false
22+
prerelease: false
23+
body: |
24+
## svmai CLI ${{ github.ref }} Release
25+
26+
### Features
27+
- Solana wallet management with secure keychain storage
28+
- Multi-threaded wallet file search
29+
- Vanity wallet generation with "ai" prefix
30+
- Text-based user interface with ratatui
31+
- Batch operations for token transfers
32+
- Token mixing simulation
33+
34+
### Installation
35+
Download the appropriate binary for your platform and make it executable.
36+
37+
```bash
38+
chmod +x svmai-<platform>
39+
./svmai-<platform>
40+
```
41+
42+
See the [README](https://github.com/openSVM/svmai-cli/blob/master/README.md) for more details.
43+
44+
build-release:
45+
needs: create-release
46+
name: Build Release - ${{ matrix.os }}
47+
runs-on: ${{ matrix.os }}
48+
strategy:
49+
matrix:
50+
include:
51+
- os: ubuntu-latest
52+
artifact_name: svmai
53+
asset_name: svmai-linux-amd64
54+
- os: macos-latest
55+
artifact_name: svmai
56+
asset_name: svmai-macos-amd64
57+
- os: windows-latest
58+
artifact_name: svmai.exe
59+
asset_name: svmai-windows-amd64.exe
60+
61+
steps:
62+
- uses: actions/checkout@v3
63+
64+
- name: Install dependencies (Ubuntu)
65+
if: matrix.os == 'ubuntu-latest'
66+
run: |
67+
sudo apt-get update
68+
sudo apt-get install -y libssl-dev pkg-config build-essential
69+
70+
- name: Build
71+
run: cargo build --release
72+
73+
- name: Upload Release Asset
74+
uses: actions/upload-release-asset@v1
75+
env:
76+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77+
with:
78+
upload_url: ${{ needs.create-release.outputs.upload_url }}
79+
asset_path: ./target/release/${{ matrix.artifact_name }}
80+
asset_name: ${{ matrix.asset_name }}
81+
asset_content_type: application/octet-stream

.github/workflows/rust.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Rust CI
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v3
17+
- name: Install dependencies
18+
run: |
19+
sudo apt-get update
20+
sudo apt-get install -y libssl-dev pkg-config build-essential
21+
- name: Build
22+
run: cargo build --verbose
23+
- name: Run tests
24+
run: cargo test --verbose
25+
- name: Generate coverage report
26+
run: |
27+
cargo install cargo-tarpaulin
28+
cargo tarpaulin --verbose --workspace --timeout 120 --out Xml
29+
- name: Upload coverage to Codecov
30+
uses: codecov/codecov-action@v3
31+
with:
32+
token: ${{ secrets.CODECOV_TOKEN }}
33+
fail_ci_if_error: false
34+
verbose: true
35+
36+
clippy:
37+
runs-on: ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v3
40+
- name: Install dependencies
41+
run: |
42+
sudo apt-get update
43+
sudo apt-get install -y libssl-dev pkg-config build-essential
44+
- name: Run clippy
45+
run: |
46+
rustup component add clippy
47+
cargo clippy -- -D warnings
48+
49+
format:
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v3
53+
- name: Check formatting
54+
run: |
55+
rustup component add rustfmt
56+
cargo fmt -- --check

CONTRIBUTING.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Contributing to svmai-cli
2+
3+
Thank you for your interest in contributing to the svmai CLI tool! This document provides guidelines and instructions for contributing to the project.
4+
5+
## Code of Conduct
6+
7+
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
8+
9+
## How to Contribute
10+
11+
There are many ways to contribute to svmai-cli:
12+
13+
1. **Reporting Bugs**: If you find a bug, please create an issue with a detailed description.
14+
2. **Suggesting Enhancements**: Have an idea for a new feature? Open an issue to discuss it.
15+
3. **Code Contributions**: Submit pull requests for bug fixes or new features.
16+
4. **Documentation**: Help improve or translate documentation.
17+
5. **Testing**: Help test the application on different platforms.
18+
19+
## Development Setup
20+
21+
### Prerequisites
22+
23+
* Rust and Cargo (latest stable version)
24+
* Git
25+
* Build essentials (for your platform)
26+
* OpenSSL development libraries
27+
28+
### Getting Started
29+
30+
1. Fork the repository on GitHub
31+
2. Clone your fork locally:
32+
```bash
33+
git clone https://github.com/YOUR-USERNAME/svmai-cli.git
34+
cd svmai-cli
35+
```
36+
3. Add the upstream repository as a remote:
37+
```bash
38+
git remote add upstream https://github.com/openSVM/svmai-cli.git
39+
```
40+
4. Create a new branch for your changes:
41+
```bash
42+
git checkout -b feature/your-feature-name
43+
```
44+
5. Build the project:
45+
```bash
46+
cargo build
47+
```
48+
6. Run tests:
49+
```bash
50+
cargo test
51+
```
52+
53+
## Making Changes
54+
55+
1. Make your changes in your feature branch
56+
2. Add tests for your changes
57+
3. Run the test suite to ensure everything passes:
58+
```bash
59+
cargo test
60+
```
61+
4. Format your code:
62+
```bash
63+
cargo fmt
64+
```
65+
5. Run clippy to catch common mistakes:
66+
```bash
67+
cargo clippy
68+
```
69+
70+
## Submitting Changes
71+
72+
1. Commit your changes with a descriptive commit message:
73+
```bash
74+
git commit -m "Add feature: description of your changes"
75+
```
76+
2. Push your branch to your fork:
77+
```bash
78+
git push origin feature/your-feature-name
79+
```
80+
3. Submit a pull request to the main repository
81+
82+
## Pull Request Guidelines
83+
84+
* Include a clear description of the changes
85+
* Link to any related issues
86+
* Include tests for new functionality
87+
* Ensure all tests pass
88+
* Follow the project's code style
89+
* Keep pull requests focused on a single topic
90+
91+
## Code Style
92+
93+
* Follow Rust's official style guide
94+
* Use `cargo fmt` to format your code
95+
* Use `cargo clippy` to catch common mistakes
96+
* Write clear, descriptive comments
97+
* Document public API functions with rustdoc comments
98+
99+
## Testing
100+
101+
* Write unit tests for all new functionality
102+
* Ensure existing tests continue to pass
103+
* Consider edge cases in your tests
104+
* For UI changes, include manual testing steps
105+
106+
## Documentation
107+
108+
* Update documentation for any changed functionality
109+
* Document new features thoroughly
110+
* Use clear, concise language
111+
* Include examples where appropriate
112+
113+
## Release Process
114+
115+
The project maintainers will handle the release process, which includes:
116+
117+
1. Updating the version number
118+
2. Creating a changelog entry
119+
3. Building and publishing releases
120+
4. Announcing the new release
121+
122+
## Getting Help
123+
124+
If you need help with the contribution process, feel free to:
125+
126+
* Open an issue with your question
127+
* Reach out to the maintainers
128+
129+
Thank you for contributing to svmai-cli!

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 openSVM
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)