Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# 🀝 Contributing Guidelines

Thank you for showing interest in contributing to **Rusticle**! πŸ¦€βœ¨
We welcome contributions that make this interpreter more robust, user-friendly, and fun to use.

Whether you are fixing a bug, improving the interpreter, enhancing the documentation, or experimenting with new features, your contributions are highly valued!

---

## πŸ›  How to Contribute

### 1. Fork the repository
Click on the **Fork** button at the top-right of this repository.

### 2. Clone your fork
Clone your forked repository to your local machine:

```bash
git clone https://github.com/<your-username>/rusticle.git
cd rusticle
```

### 3. Add the upstream remote (one-time setup)
To keep your fork updated with the original repository:

```bash
git remote add upstream https://github.com/thedevyashsaini/rusticle.git
```

### 4. Create a new branch
Always create a new branch before making changes:

```bash
git checkout -b feature-name
```

### 5. Make your changes
- Follow the existing folder and module structure.
- Test your code changes using:

```bash
cargo run --quiet -- example.lin
```
Comment on lines +37 to +43
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optional but useful - maybe suggest contributors run cargo fmt and cargo clippy before committing, helps keep code clean and consistent.


### 6. Commit your changes
Use clear and meaningful commit messages:

```bash
git add .
git commit -m "Add: description of your change"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

align the commit example with conventional commit format - like feat: add foo interpreter command

```

### 7. Keep your branch updated
Before pushing, sync with upstream:

```bash
git fetch upstream
git rebase upstream/main
```

Resolve any conflicts if they appear.

### 8. Push and Open a Pull Request
Push your branch:

```bash
git push origin feature-name
```

Open a Pull Request (PR) from your fork to the **main** branch of the original repository.

---

## πŸ’‘ Where Can You Contribute?

- **Fix Bugs:** Resolve issues in the interpreter logic, CLI, or syntax handling.
- **Add Features:** Implement new language features or commands.
- **Improve Docs:** Make the README, Syntax guide, or Contributing guide better.
- **Refactor Code:** Clean up and optimize existing Rust code.
- **Testing:** Write additional tests to make the interpreter more stable.

---

## πŸ§ͺ Development Tips

- Use `cargo run` frequently to test your changes.
- Write modular and well-documented Rust code.
- Check `Syntax.md` for how the language is structured.

---

## πŸ“œ Code of Conduct

By contributing to this repository, you agree to follow our [Code of Conduct](CODE_OF_CONDUCT.md) to maintain a friendly and inclusive community.

---

## 🀝 Need Help?

- Open a **GitHub Issue** for bugs or feature suggestions.
- Join discussions or contact maintainers if you have doubts.

---

## πŸš€ Quick Checklist for PRs

- [ ] Code tested and works locally
- [ ] Clear and descriptive commit message
- [ ] Documentation updated if required

---

Thank you for contributing to **Rusticle**!
Let’s build something cool together! πŸŽ‰