|
1 | | -# Alpen Labs Rust Template |
| 1 | +# Strata ASM (Anchor State Machine) |
2 | 2 |
|
3 | 3 | [](https://opensource.org/licenses/MIT) |
4 | 4 | [](https://opensource.org/licenses/apache-2-0) |
5 | | -[](https://github.com/alpenlabs/rust-template/actions) |
6 | | -[](https://docs.rs/rust-template) |
| 5 | +[](https://github.com/alpenlabs/asm/actions) |
7 | 6 |
|
8 | | -This repo is a template for easy setup of a Rust project within |
9 | | -[`AlpenLabs` GitHub organization](https://github.com/alpenlabs). |
10 | | -If you are looking for the workspace template, you can find it at |
11 | | -[`alpenlabs/rust-template-workspace`](https://github.com/alpenlabs/rust-template-workspace). |
12 | | - |
13 | | -- It comes with a preconfigured `.justfile` for common tasks. |
14 | | -- Licensing is taken care of, with dual MIT-Apache 2.0 licenses. |
15 | | -- Continuous Integration is already set up with the common GitHub actions jobs |
16 | | -hardened with [`zizmor`](https://docs.zizmor.sh). |
17 | | -- Dependabot is enabled to automatically bump Rust and GitHub actions dependencies monthly. |
18 | | -- There are 1 pull request template and 2 issues templates for bug reports and feature requests. |
19 | | -- Proper lints for code maintainability are added to `Cargo.toml`. |
20 | | -- If you need to publish crates to `crates.io`, you can use the `just publish` command, |
21 | | - and it will be automatically triggered by CI on every new tag release. |
22 | | - You just need to add a crates.io token to the `CARGO_REGISTRY_TOKEN` repository secret variable. |
23 | | - |
24 | | -This template has a lot of `CHANGEME` placeholders that you should replace with your own values. |
25 | | -Please do a repository-wide search and replace all occurrences of `CHANGEME` with your own values. |
26 | | - |
27 | | -## Settings and Branch Protection Rules |
28 | | - |
29 | | -Note that settings and branch protection rules are not ported over to new repositories |
30 | | -created using templates. |
31 | | -Hence, you'll need to change settings and add branch protection rules manually. |
32 | | -Here's a suggestion for branch protection rules for the default branch, |
33 | | -i.e. `main`: |
34 | | - |
35 | | -```json |
36 | | -{ |
37 | | - "id": 2405180, |
38 | | - "name": "Main Branch Protection", |
39 | | - "target": "branch", |
40 | | - "source_type": "Repository", |
41 | | - "source": "alpenlabs/NAME", |
42 | | - "enforcement": "active", |
43 | | - "conditions": { |
44 | | - "ref_name": { |
45 | | - "exclude": [], |
46 | | - "include": [ |
47 | | - "~DEFAULT_BRANCH" |
48 | | - ] |
49 | | - } |
50 | | - }, |
51 | | - "rules": [ |
52 | | - { |
53 | | - "type": "deletion" |
54 | | - }, |
55 | | - { |
56 | | - "type": "non_fast_forward" |
57 | | - }, |
58 | | - { |
59 | | - "type": "pull_request", |
60 | | - "parameters": { |
61 | | - "required_approving_review_count": 1, |
62 | | - "dismiss_stale_reviews_on_push": true, |
63 | | - "require_code_owner_review": false, |
64 | | - "require_last_push_approval": false, |
65 | | - "required_review_thread_resolution": false, |
66 | | - "automatic_copilot_code_review_enabled": false, |
67 | | - "allowed_merge_methods": [ |
68 | | - "merge", |
69 | | - "squash", |
70 | | - "rebase" |
71 | | - ] |
72 | | - } |
73 | | - }, |
74 | | - { |
75 | | - "type": "required_status_checks", |
76 | | - "parameters": { |
77 | | - "strict_required_status_checks_policy": false, |
78 | | - "do_not_enforce_on_create": false, |
79 | | - "required_status_checks": [ |
80 | | - { |
81 | | - "context": "Check that lints passed", |
82 | | - "integration_id": 15368 |
83 | | - }, |
84 | | - { |
85 | | - "context": "Check that unit tests pass", |
86 | | - "integration_id": 15368 |
87 | | - } |
88 | | - ] |
89 | | - } |
90 | | - }, |
91 | | - { |
92 | | - "type": "merge_queue", |
93 | | - "parameters": { |
94 | | - "merge_method": "SQUASH", |
95 | | - "max_entries_to_build": 5, |
96 | | - "min_entries_to_merge": 1, |
97 | | - "max_entries_to_merge": 5, |
98 | | - "min_entries_to_merge_wait_minutes": 5, |
99 | | - "grouping_strategy": "ALLGREEN", |
100 | | - "check_response_timeout_minutes": 60 |
101 | | - } |
102 | | - } |
103 | | - ], |
104 | | - "bypass_actors": [ |
105 | | - { |
106 | | - "actor_id": 5, |
107 | | - "actor_type": "RepositoryRole", |
108 | | - "bypass_mode": "pull_request" |
109 | | - } |
110 | | - ] |
111 | | -} |
112 | | -``` |
113 | | - |
114 | | -## Features |
115 | | - |
116 | | -- Feature 1 |
117 | | -- Feature 2 |
118 | | - |
119 | | -## Usage |
120 | | - |
121 | | -```rust |
122 | | -// How to use the library/binary. |
123 | | -``` |
| 7 | +Rust workspace for Strata's Anchor State Machine (ASM): transaction parsing, subprotocol execution, state transitions, manifest/log generation, and worker orchestration. |
124 | 8 |
|
125 | 9 | ## Contributing |
126 | 10 |
|
127 | | -Contributions are generally welcome. |
128 | | -If you intend to make larger changes please discuss them in an issue |
129 | | -before opening a PR to avoid duplicate work and architectural mismatches. |
130 | | - |
131 | | -For more information please see [`CONTRIBUTING.md`](/CONTRIBUTING.md). |
132 | | - |
133 | | -## License |
| 11 | +Contributions are generally welcome. If you intend to make larger changes, please discuss them in an issue before opening a PR to avoid duplicate work and architectural mismatches. |
134 | 12 |
|
135 | | -This work is dual-licensed under MIT and Apache 2.0. |
136 | | -You can choose between one of them if you use this work. |
| 13 | +For more information please see [`CONTRIBUTING.md`](/CONTRIBUTING.md). |
0 commit comments