Skip to content

Commit d1048ba

Browse files
committed
docs: update README with comprehensive project overview and usage guide
1 parent dd4e61d commit d1048ba

File tree

2 files changed

+104
-6
lines changed

2 files changed

+104
-6
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.idea
22
.env
33
.cli
4-
dist
4+
dist
5+
.DS_Store

README.md

+102-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,104 @@
1-
# runx
1+
# runx 🚀
22

3-
`runx` is a monorepo management tool written in Deno and compiled into a
4-
standalone executable file. It helps you run scripts across multiple projects in
5-
your monorepo efficiently and with minimal configuration.
3+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
64

7-
> The project is under development and not ready for production use!
5+
> ATTENTION! The project is under development and not ready for production use!
6+
7+
A lightning monorepo task runner written in Deno. `runx` helps you manage and
8+
execute tasks across multiple packages in your monorepo with minimal
9+
configuration and maximum efficiency.
10+
11+
## 🌟 Key Features
12+
13+
- **Zero Configuration**: Works out of the box with your existing monorepo
14+
structure
15+
- **Smart Workspace Detection**: Automatically detects and works with workspace
16+
patterns defined in your root `package.json`
17+
- **Intelligent Dependency Management**:
18+
- Builds and validates dependency relationships between packages
19+
- Detects and prevents circular dependencies
20+
- Executes tasks in correct topological order
21+
- **Flexible Execution Modes**:
22+
- Run commands across all packages
23+
- Target specific packages
24+
- Execute only in affected packages (Git-aware)
25+
26+
## 📦 Installation
27+
28+
> TODO. Stay tuned!
29+
30+
## 🚀 Quick Start
31+
32+
1. Navigate to your monorepo root:
33+
34+
```bash
35+
cd your-monorepo
36+
```
37+
38+
2. Run a script in all packages:
39+
40+
```bash
41+
runx test
42+
```
43+
44+
## 💡 Usage
45+
46+
### Basic Commands
47+
48+
```bash
49+
# Run a command in all packages
50+
runx <task-name>
51+
52+
# Run a command only in specific packages
53+
runx <task-name> package1 package2
54+
55+
# Run a command only in affected packages (compared to main branch)
56+
runx <task-name> --affected
57+
58+
# Run a command in packages affected since a specific branch
59+
runx <task-name> --affected feature-branch
60+
```
61+
62+
### Command Options
63+
64+
- `-a, --affected [base]` - Run command only for affected packages since the
65+
specified base branch (defaults to 'main')
66+
- `--version` - Show version information
67+
- `-h, --help` - Display help information
68+
69+
## 🔧 How It Works
70+
71+
1. **Workspace Detection**: `runx` reads your root `package.json` to understand
72+
your workspace structure
73+
2. **Dependency Analysis**: Builds a complete dependency graph of your packages
74+
3. **Task Execution**:
75+
- Validates the dependency graph for circular dependencies
76+
- Determines the correct execution order
77+
- Executes tasks while maintaining proper working directories and environment
78+
variables
79+
80+
## 🤝 Contributing
81+
82+
Contributions are welcome! Please feel free to submit a Pull Request. For major
83+
changes, please open an issue first to discuss what you would like to change.
84+
85+
1. Fork the repository
86+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
87+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
88+
4. Push to the branch (`git push origin feature/amazing-feature`)
89+
5. Open a Pull Request
90+
91+
## 📝 License
92+
93+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
94+
for details.
95+
96+
## 🙏 Acknowledgments
97+
98+
Built with:
99+
100+
- [Deno](https://deno.land/) - A modern runtime for JavaScript and TypeScript
101+
- [Cliffy](https://cliffy.io/) - A framework for building command line
102+
applications
103+
- [dax](https://github.com/dsherret/dax) - The friendly shell scripting library
104+
for Deno

0 commit comments

Comments
 (0)