Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
4dce473
Getting tests to work
troels-im May 7, 2025
22f7be6
Updating tests
troels-im May 7, 2025
97b54d1
WiP
troels-im May 8, 2025
c9d1a8b
Getting tests to run
troels-im May 8, 2025
5863644
Updating tests
troels-im May 8, 2025
d55f246
Updating tests
troels-im May 8, 2025
64ded7b
Improving test coverage
troels-im May 8, 2025
2d32f97
Removing garabge
troels-im May 8, 2025
6bbe19d
WiP
May 13, 2025
1b36665
WiP
May 13, 2025
9d4cd54
WiP
May 15, 2025
55b9068
WiP
May 15, 2025
ddc13b6
WiP
May 16, 2025
9910eca
Updating
May 17, 2025
6e28273
Updating
May 17, 2025
81a1613
Refactor
May 17, 2025
fe55746
Refactor Rush CLI Project Structure and Introduce Core Dotenv Functio…
May 17, 2025
bc261e1
feat: Refactor path matching functionality and improve project structure
May 17, 2025
2b84f1f
Refactoring public_env_defs.rs
May 17, 2025
60afc1c
WiP
Jun 20, 2025
477443a
WiP
Jun 20, 2025
b64901b
Getting build of docker images to work
Aug 9, 2025
b0363dc
Making progress in refactor
Aug 9, 2025
7b21692
Getting logs work
Aug 9, 2025
10d16ef
Getting the filewatcher to work
Aug 9, 2025
5e274f6
Getting reload to work
Aug 9, 2025
55a76fa
Improvement on new structure
Aug 10, 2025
9b41871
Minor improvements
Aug 10, 2025
ae3ae34
First working version
Aug 10, 2025
958e87b
Updating with proper naming
Aug 10, 2025
eda9178
Removing garbage
Aug 10, 2025
134c0a6
Fixing where the volumes are mounted
Aug 10, 2025
a42db4f
Initial output structure
Aug 10, 2025
a26095e
Getting redirect of output to work
Aug 10, 2025
9dc26dd
Fixing tests
Aug 10, 2025
7ca6b1f
Fixing bug
Aug 10, 2025
b5005a3
Fixing constants
Aug 10, 2025
03a732f
Fixing exit error
Aug 10, 2025
5abfcfc
Updating with better
Aug 10, 2025
dd58335
feat: Add Docker image caching with git-based tags
Aug 10, 2025
67d8bb8
fix: Fix Docker caching to use proper git tags instead of 'latest'
Aug 10, 2025
3664895
fix: Improve Docker build error handling and stop infinite retry loops
Aug 10, 2025
6507484
fix: Fix Docker build context directory to run from correct working d…
Aug 10, 2025
bec22c3
WiP
Aug 10, 2025
bf44d30
Updating to using directory guards
Aug 10, 2025
4421198
WiP
Aug 10, 2025
e1bf182
Improving docs and tests
Aug 11, 2025
42e4d8d
Improving docs and tests
Aug 11, 2025
7fa6df4
Linting
Aug 11, 2025
6c53f17
Fixing incorrect hash
Aug 11, 2025
58cc609
Updating by making colors work again
Aug 11, 2025
a825003
Improving shutdown signal
Aug 11, 2025
4e639a0
Fixing context path
Aug 11, 2025
a987f05
Fixing context dir issue
Aug 11, 2025
2c4a3f3
Improving working dir
Aug 11, 2025
849f074
Caching doesn't work it appears
Aug 11, 2025
8000523
Updating git tags
Aug 11, 2025
84e644d
Starting up now
Aug 11, 2025
2f0eeb8
First working version (dev only)
Aug 11, 2025
0d3140e
Fixing rebuild
Aug 11, 2025
a91e15c
Fixing tests
Aug 12, 2025
6e34f59
Refactoring
Aug 12, 2025
c561402
Cleaning
Aug 12, 2025
1024d66
Updating with better structure
Aug 12, 2025
345a1d9
Updating README
troels-im Aug 12, 2025
bbb240a
Updating artefact directory
troels-im Aug 12, 2025
7b67608
Adding auto shutdown on failure
troels-im Aug 12, 2025
7256fbc
WiP
troels-im Aug 12, 2025
ff3fb97
Initial services package
troels-im Aug 12, 2025
fd255a2
Updating secrets init such that it works
troels-im Aug 12, 2025
aa668aa
Updating spec and preparing to get env to work
troels-im Aug 12, 2025
fe7f9f0
Getting .env to work again in local development
troels-im Aug 12, 2025
b19e5b5
Updating product:
troels-im Aug 12, 2025
898c3fb
Cleaning files
troels-im Aug 13, 2025
4704543
Fixing services
troels-im Aug 13, 2025
932001f
WiP
troels-im Aug 13, 2025
bd4b15c
Fixing minor issues
troels-im Aug 13, 2025
f4cadd6
Output streams
troels-im Aug 13, 2025
2816c6f
Improveing output
Aug 16, 2025
ac4ae33
WiP
Aug 16, 2025
c623c48
Fixing stream forwarding
Aug 16, 2025
57e89b9
Getting coloring to work
Aug 16, 2025
a9ee1f2
Updating
Aug 16, 2025
ce03fb2
Fixing attachment issue
Aug 16, 2025
cfd5f8f
Extending tests
Aug 16, 2025
75cfcde
Auto-format and fix code style issues
Aug 16, 2025
ab03442
Updating settings
Aug 16, 2025
8f978cc
Auto-format and fix code style issues
Aug 16, 2025
e78f347
Auto-fix clippy issues
Aug 16, 2025
4cd9365
Improviing CI
Aug 16, 2025
702e553
Updating claude
Aug 16, 2025
f193553
Fixing issues
Aug 16, 2025
5f397fb
Cleaning
Aug 16, 2025
5b3476c
Clenaing up
Aug 16, 2025
42d9beb
Auto-format and fix code style issues
Aug 16, 2025
2bbd966
Auto-fix clippy issues
Aug 16, 2025
2a1d535
Auto-format and fix code style issues
Aug 16, 2025
98f02a2
Fixing CI issues
Aug 16, 2025
7260ca7
Finishing CI
Aug 16, 2025
40f5af7
updating with better logs
Aug 16, 2025
6fe039c
Refactoring
Aug 16, 2025
d1f6609
Initial MCP server
Aug 16, 2025
c4764b0
Fixing local services
Aug 16, 2025
10225d4
Fixing how the stripe service starts up
Aug 16, 2025
53b3b27
Fixing tests
Aug 16, 2025
610553f
Removing redundancy
Aug 16, 2025
bdeb95a
Localservices step 1
Aug 17, 2025
7106827
Fixing output of local services
Aug 17, 2025
a46784a
Finalising local services
Aug 17, 2025
74d3e80
Shutting local services correctly down
Aug 17, 2025
609f8f2
Updating
Aug 17, 2025
c7f5cff
Getting secrets injection to work
Aug 17, 2025
39a2c6b
Finalising work on stripe
Aug 17, 2025
1e20941
Fixing tests
Aug 17, 2025
5b994f5
Cleaning up
Aug 18, 2025
f91769c
Fixing local services issue
Aug 22, 2025
cd0188e
Phase 1 of refactor
Aug 23, 2025
58808d7
Done with phase 2
Aug 23, 2025
e1e17e7
Implemented phase 3
Aug 23, 2025
cd1e21f
Finalising phase 4
Aug 23, 2025
d2d1ff7
Removing old implementation
Aug 23, 2025
dc707ba
Finishing step 1 of refactor
Aug 23, 2025
e5d5e00
Executing phase 2
Aug 23, 2025
ba23a2a
Finishing phase 3
Aug 23, 2025
454c06e
Finishing phase for of cleanup
Aug 23, 2025
1c8cfea
Completing phase 5 of the clean up
Aug 23, 2025
410759a
Refactor phase 1
Aug 24, 2025
a8da9fb
Executing phase 2 of refactor
Aug 24, 2025
1de228d
Implementing phase 3 of refactor
Aug 24, 2025
cfe8b56
Implementating phase 4
Aug 24, 2025
8075ece
Implementing phase 5 of refactoring
Aug 24, 2025
6966b2d
Finishing phase 6 of refactor
Aug 24, 2025
072e570
Fixing artefact issue
Aug 25, 2025
594f7c8
Updating .gitignore
Aug 25, 2025
1abc8fc
Implementing phase 1 legacy removal
Aug 25, 2025
cf3047f
Finishing phase 2 of removing legacy code
Aug 25, 2025
f444e9b
Finishing phase 3 of refactor
Aug 25, 2025
db1f530
Implementing phase 4
Aug 25, 2025
b49f3e5
Implementing phase 5
Aug 25, 2025
a764e00
Implementing phase 6
Aug 25, 2025
2cd5641
Migrating to new reactor
Aug 26, 2025
1b3f03b
Finishing refactor
Aug 26, 2025
0bff644
Minor improvements
Aug 26, 2025
441174b
Removing legacy code
Aug 26, 2025
6106e25
Adding working document
Aug 26, 2025
95f0a8e
Finishing phase 1 of deployment
Aug 26, 2025
62d1d50
Revamping docker builds (phase 2)
Aug 27, 2025
90be98c
Implementing phase 3
Aug 27, 2025
dae450e
Implementing phase 4
Aug 27, 2025
d82c1cc
Implementing phase 5
Aug 27, 2025
16cde39
Implementing phase 6
Aug 27, 2025
43bf4dd
Implementing phase 8
Aug 27, 2025
4a9dea6
Fixing terminal output from scripts
Aug 27, 2025
490a7ba
Fixing reload
Aug 27, 2025
5d73294
Fixing rebuild
Aug 27, 2025
80c8fda
Fixing tests
Aug 27, 2025
dd393cb
Getting init to work
Aug 27, 2025
5cd3fbd
Fixing secrets
Aug 27, 2025
4407146
Fixing ingress issue
Aug 27, 2025
bc7b0b2
Fixing ingress
Aug 28, 2025
962e9ad
Fixing shutdown
Aug 28, 2025
8705209
Fixing context dir
Aug 28, 2025
d943afb
Fixing minor issues
Aug 28, 2025
9c1f1f9
Fixing sub domains
Aug 28, 2025
9141349
Updating local services
Aug 30, 2025
4910839
Fixing local services mount point
Aug 31, 2025
518ed3c
Adding after setup commands
Aug 31, 2025
1e7abd3
finishing redis
Sep 13, 2025
322c7e7
More local services
Sep 14, 2025
148c24d
Fixing rollout
Sep 14, 2025
d620eed
Getting describe images to work
Sep 15, 2025
f8d3418
Fixing container naming
Sep 15, 2025
7d58452
Fixing rebuild issue
Sep 16, 2025
62be62e
Fixing tests
Sep 18, 2025
fe638fc
improving tagging with gitignore
Sep 18, 2025
049bcb0
Updating
Sep 20, 2025
2779c7a
Fixing some issues
Sep 23, 2025
4f6f91b
base profiling
Sep 23, 2025
3b8f17e
Performance optimisation
Sep 23, 2025
25690d0
Improving reliability
Sep 24, 2025
63a59e7
Simplifying docker life cycle
Sep 25, 2025
27ed818
cleaning
Sep 25, 2025
a884d1c
Finishing refactor
Sep 25, 2025
7a71421
Getting rid of warnings
Sep 25, 2025
5c3f819
WiP
Sep 25, 2025
137ce56
Better testing
Sep 25, 2025
3c506bb
fix: ci issues
Sep 25, 2025
b46ecd6
fixing ci
Sep 25, 2025
0829bc1
fix: fixing ci
Sep 25, 2025
f644c1c
fix: fixing ci
Sep 25, 2025
d643421
cleaning up
Oct 14, 2025
81b3d6d
Fixing kubernetes secrets
Oct 14, 2025
deb04ca
bug fixes
Oct 15, 2025
db272d3
WiP
Oct 21, 2025
2eb7dee
feat: adding bazel support
troels-im Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
126 changes: 126 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"permissions": {
"allow": [
"Bash(mkdir:*)",
"Bash(cargo build:*)",
"Bash(cargo run:*)",
"Bash(./target/debug/rush:*)",
"Bash(rustup target:*)",
"Bash(mv:*)",
"Bash(./target/release/rush:*)",
"Bash(../rush/target/release/rush io.wonop.helloworld secrets init)",
"Bash(../../../rush/target/release/rush io.wonop.helloworld secrets init)",
"Bash(touch:*)",
"Bash(RUST_LOG=debug ../../../rush/target/release/rush io.wonop.helloworld secrets init)",
"Bash(RUST_LOG=trace ../../../rush/target/release/rush:*)",
"Bash(RUST_LOG=debug ./rush/target/release/rush io.wonop.helloworld secrets init)",
"Bash(rm:*)",
"Bash(timeout:*)",
"Bash(rustc:*)",
"Bash(./test_parse)",
"Bash(find:*)",
"Bash(/Users/tfr/Documents/Projects/rush/rush/target/release/rush io.wonop.helloworld dev --output-format split)",
"Bash(cargo test:*)",
"Bash(echo $?)",
"Bash(echo:*)",
"Bash(/Users/tfr/Documents/Projects/rush/rush/target/debug/rush io.wonop.helloworld dev --output-format split)",
"Bash(/Users/tfr/Documents/Projects/rush/rush/target/debug/rush:*)",
"Bash(true)",
"Bash(cat:*)",
"Bash(pkill:*)",
"Bash(cargo install:*)",
"Bash(cargo:*)",
"Bash(chmod:*)",
"Bash(time cargo test:*)",
"Bash(sed:*)",
"Bash(grep:*)",
"Bash(awk:*)",
"Bash(cp:*)",
"Bash(./test_logging.sh:*)",
"Bash(./rush/target/release/rush:*)",
"Bash(./test_complete_logging.sh:*)",
"Bash(./test_phase_labels.sh:*)",
"Bash(./test_mcp.sh:*)",
"Bash(./test_mcp_direct.sh:*)",
"Bash(docker rm:*)",
"Bash(git checkout:*)",
"Bash(stripe listen:*)",
"Bash(./test_stripe_once.sh:*)",
"Bash(/tmp/test_cleanup.sh:*)",
"Bash(./test_cleanup.sh:*)",
"Bash(kill:*)",
"Bash(/tmp/test_env_injection.sh:*)",
"Bash(docker exec:*)",
"Bash(/tmp/test_complete_injection.sh:*)",
"Bash(/tmp/test_secrets_quick.sh:*)",
"Bash(/tmp/test_final_verification.sh:*)",
"WebSearch",
"Bash(./test_rollout.sh:*)",
"Bash(./test_k8s_gen.sh:*)",
"Bash(RUST_LOG=debug ./rush/target/release/rush:*)",
"Bash(git init:*)",
"Bash(git config:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(export INFRASTRUCTURE_REPOSITORY=\"file:///tmp/test-infra\")",
"Bash(RUST_LOG=info ./rush/target/release/rush --env local io.wonop.helloworld rollout)",
"Bash(export RUST_LOG=debug)",
"Bash(./verify_fixes.sh)",
"Bash(./test_rollout_fix.sh)",
"Bash(export RUST_LOG=info)",
"Bash(RUST_LOG=error ./target/release/rush io.wonop.helloworld describe images)",
"Bash(RUST_LOG=trace ./target/release/rush io.wonop.helloworld describe images)",
"Bash(/Users/tfr/Documents/Projects/rush/rush/target/release/rush io.wonop.helloworld describe images)",
"Bash(xargs:*)",
"Bash(/dev/null docker ps -a)",
"Read(//Users/tfr/Documents/Projects/wonop-ng/products/**)",
"Bash(./test_hash_fix.sh:*)",
"Bash(/Users/tfr/Documents/Projects/rush/test_hash_fix.sh)",
"Bash(/Users/tfr/Documents/Projects/rush/test_hash_changes.sh)",
"Bash(/Users/tfr/Documents/Projects/rush/test_gitignore_module.sh)",
"Bash(LOCAL_CTX=docker-desktop LOCAL_VAULT=test-vault K8S_ENCODER_LOCAL=kubeseal K8S_VALIDATOR_LOCAL=kubeval K8S_VERSION_LOCAL=1.28.0 LOCAL_DOMAIN=localhost LOCAL_INFRA_REPO=https://github.com/test/infra cargo test --package rush-container --lib tagging)",
"Bash(export LOCAL_CTX=docker-desktop LOCAL_VAULT=test-vault K8S_ENCODER_LOCAL=kubeseal K8S_VALIDATOR_LOCAL=kubeval K8S_VERSION_LOCAL=1.28.0 LOCAL_DOMAIN=localhost LOCAL_INFRA_REPO=https://github.com/test/infra)",
"Bash(RUST_BACKTRACE=1 cargo test --package rush-container --lib tagging::tests::test_get_component_directory)",
"Bash(RUST_LOG=debug cargo run -- io.wonop.helloworld describe dependencies)",
"Bash(RUST_LOG=debug ./target/release/rush io.wonop.helloworld dev)",
"Bash(RUST_LOG=info ./target/release/rush io.wonop.helloworld dev)",
"Bash(docker ps:*)",
"Bash(docker logs:*)",
"Bash(docker stop:*)",
"Bash(RUST_LOG=debug ./target/release/rush:*)",
"Bash(RUST_LOG=debug cargo run -- io.wonop.helloworld build)",
"Bash(RUST_LOG=info ./rush/target/release/rush --force-rebuild io.wonop.helloworld build)",
"Bash(RUST_LOG=info ./rush/target/release/rush io.wonop.helloworld profile build)",
"Bash(RUST_LOG=info ./rush/target/release/rush io.wonop.helloworld profile --format chrome-trace --output rush-rebuild build --force-rebuild)",
"Bash(python3:*)",
"Bash(RUST_LOG=trace ./rush/target/release/rush:*)",
"Bash(RUST_LOG=info ./target/release/rush io.wonop.helloworld profile build --force-rebuild --format chrome-trace --output rush-profile-optimized.trace.json)",
"Bash(RUST_LOG=info ./target/release/rush --force-rebuild io.wonop.helloworld profile --format chrome-trace --output rush-profile-optimized.trace.json build)",
"Bash(RUST_LOG=info ./target/release/rush io.wonop.helloworld profile --format chrome-trace --output rush-profile-optimized.trace.json build --force-rebuild)",
"Bash(RUST_LOG=info ./target/release/rush io.wonop.helloworld profile --format chrome-trace --output rush-profile-optimized.trace.json build)",
"Bash(./ci-check.sh:*)",
"Bash(./ci-fix.sh)"
],
"deny": [],
"additionalDirectories": [
"/private/tmp"
]
},
"disabledMcpjsonServers": [
"rush"
],
"mcpServers": {
"rush": {
"command": "/Users/tfr/Documents/Projects/rush/rush/target/release/rush",
"args": [
"mcp",
"serve",
"--stdio"
],
"env": {
"RUSHD_ROOT": "/Users/tfr/Documents/Projects/rush",
"RUST_LOG": "info"
}
}
}
}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ dist-ssr
*.sln
*.sw?
.env
.env.secrets

target/
target/**
Expand All @@ -64,4 +65,5 @@ dev_manifests/
temp_manifests/
postgres.db/
**/postgres.db
postgres.db/**
postgres.db/**
.rush
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Copyright 2024 Wonop ApS
Copyright 2024-2025 Wonop ApS

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.
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.
44 changes: 42 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,57 @@ Before installing `rush`, ensure that you have the following prerequisites insta

### Installing `rush`

To install `rush`, run the following command:
#### Option 1: Install from crates.io

To install the latest published version of `rush` from crates.io:
```bash
cargo install rush-cli
```

To update an existing installation to the latest version:
```bash
cargo install rush-cli --force
```

#### Option 2: Install from Source

To build and install `rush` from the source code:

1. Clone the repository:
```bash
git clone https://github.com/wonop-io/rush.git
cd rush
```

2. Build and install from the local source:
```bash
cargo install --path rush/crates/rush-cli
```

3. For development with automatic rebuilds on code changes:
```bash
cd rush/crates/rush-cli
cargo watch -x 'install --path .'
```

#### Option 3: Install a Specific Version

To install a specific version of `rush-cli`:
```bash
cargo install rush-cli --version 0.1.0
```

#### Post-Installation

Make sure that the cargo binary directory is in your `PATH`:
```sh
source $HOME/.cargo/env
```

If you have already installed `rush`, you can update it by running the installation command again.
Verify the installation:
```bash
rush --version
```

---

Expand Down
Loading
Loading