Skip to content

Commit

Permalink
cli-wrapper: updated CONTRIBUTING.md and README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinjaypatel committed Dec 4, 2024
1 parent 8d23ced commit 365df77
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 167 deletions.
123 changes: 14 additions & 109 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,127 +1,32 @@
# Contribution Guide
## Contributing

[GitPR]: https://github.com/susam/gitpr
[Issues]: https://github.com/calimero-network/core/issues
[Issues]: https://github.com/kevinjaypatel/core/issues
[README]: README.mdx

Thank you for dedicating your time to contribute to our project.

This guide outlines the contribution workflow to make the process smooth and
effective for everyone.

Start by reading the [README][] to understand the project better.

## Project Status

This project is actively being developed.

You can check out the open [Issues][], monitor the development progress, and
contribute.

## Getting Started

There are several ways you can contribute:

- Solve open [Issues][]
- Report bugs or suggest features
- Enhance the documentation

Contributions are managed via Issues and Pull Requests (PRs). Here are some
general guidelines:

- Before creating a new Issue or PR, search for [existing ones][Issues].

- Contributions should focus on either functionality or style in the PR, not
both.

- If you encounter an error, provide context. Explain what you are trying to do
and how to reproduce the error.

- Follow the repository’s formatting guidelines.

- Update the [README][] file if your changes affect it.

## Issues

Use [Issues][] to report problems, request features, or discuss changes before
creating a PR.

### Solving an Issue

Browse [existing issues][Issues] to find one that interests you.

## Contribution Guidelines for Working on Issues

If someone is already working on an issue, they will either be officially
assigned to it or have left a comment indicating they are working on it. If you
would like to work on an issue, please follow these steps:

1. **Comment on the Issue**: Leave a comment on the issue expressing your
intention to work on it. For example, "I would like to work on this issue."

2. **Wait for Confirmation**: A project maintainer will confirm your assignment
by officially assigning the issue to you or by acknowledging your comment.

3. **Start Working**: Once you have received confirmation, you can start working
on the issue.

4. **Open a Pull Request**: When your work is ready, open a pull request (PR)
with your solution. Make sure to mention in the PR that you are working on
the issue by referencing the issue number in the PR description (e.g., "This
PR addresses issue #123").

By following this process, we can avoid duplication of efforts and ensure clear
communication among all contributors.

### Creating a New Issue

If no related issue exists, you can create a new one.

Here are some tips:

- Provide detailed context to make it clear for others.
- Include steps to reproduce the issue or the rationale for a new feature.
- Attach screenshots, videos, etc., if applicable.

## Pull Requests

### Pull Request Workflow

We use the ["fork-and-pull"][GitPR] Git workflow:
Contributions are welcome! 🎉

### Pull Requests Workflow
1. Fork the repository.

2. Clone the project.

3. Create a new branch with a descriptive name.
3. Create a new branch with a descriptive name, or checkout the `cli-wrapper` branch. Source code can be found here: `./crates/merow/src`

4. Commit your changes to this new branch.
4. Commit your changes to this branch.

5. Push your changes to your fork.

6. Create a pull request from your fork to our repository. Use the `master`
branch as the base branch.

7. Tag a maintainer to review your PR.

### Tips for a Quality Pull Request

- Title your PR to clearly describe the work done.

- Structure the description for easy reading, using bullet points and
screenshots if necessary.

- Link to the related issue, if applicable.

- Write a concise commit message summarizing the work.

### After Submitting Your PR

- We might ask questions, request more details, or ask for changes before
merging your PR. This ensures clarity and smooth interaction.
## Issues
- Please see the open [Issues][]

- As you update your PR, resolve each conversation.
## Ideas for Contributions:
- **Standard I/O handling**: Implement support for standard input/output handling for the Calimero Node during runtime using the CLI wrapper.
- **Tab completion**: Add support for tab completion to enhance the user experience.
- **Admin Dashboard deployment**: Develop a feature to deploy the Admin Dashboard upon successfully starting the node.
- **Error handling**: Improve error handling to ensure a node is initialized and started successfully.
- **Multi-node deployment**: Implement support for deploying multiple nodes (e.g., node1, node2, ... nodeN).

- Once approved, we will "squash-and-merge" to keep the commit history clean.

Thank you for your contributions!
36 changes: 7 additions & 29 deletions README.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Core Cli Wrapper (crate::merow)
[CONTRIBUTING]: CONTRIBUTING.md
[setting up a calimero node]: https://calimero-network.github.io/getting-started/setup/

A CLI wrapper for setting up a Calimero Node that provides a custom node configuration file for initializing and running a node.
A CLI wrapper for [setting up a calimero node] that provides a custom node configuration file for initializing and running a node.

*This project is forked from the [original core repository](https://github.com/calimero-network/core) from the Calimero Network, and actively syncs the fork at midnight.*
*This project is forked from the [original core repository](https://github.com/calimero-network/core) from the Calimero Network, and actively syncs every hour.*
## Features

- Custom Node Configuration File
- Simple Commands to Initialize and Run a Calimero Node
- Creates a Node Home Directory at the root (if it doesn't already exist)
- Creates a Node Home Directory at the root (if it doesn't exist)

## Prerequisites
- Rust: [Official Rust Installation](https://www.rust-lang.org/tools/install)
Expand Down Expand Up @@ -37,16 +39,8 @@ swarm_port = 2528 // swarm port
home = "data" // name of the home directory
```

Initialize a node
`$ merow -- init-node`

Start a running node
`$ merow -- start-node`


## How to Run (from project root)

### Build the Rust Package
Build the Rust Package
```bash
cargo build
```
Expand All @@ -67,22 +61,6 @@ Start a running node
http://localhost:<node.server_port>/admin-dashboard/
```

## Issues
- Standard I/O for handling the Calimero Node during runtime


## Contributing
Contributions are welcome! 🎉

#### Steps to Contribute:
1. Fork the repository: Create a fork of this repository to start making changes.
2. Checkout the `cli-wrapper` branch, or alternatively create a new branch. Source code for the `cli-wrapper` can be found here `./crates/merow/src`
3. Create a pull request: Submit a pull request with your updates to the main branch.


#### Ideas for Contributions:
- Standard I/O handling: Implement support for standard input/output handling for the Calimero Node during runtime using the CLI wrapper.
- Tab completion: Add support for tab completion to enhance the user experience.
- Admin Dashboard deployment: Develop a feature to deploy the Admin Dashboard upon successfully starting the node.
- Error handling: Improve error handling to ensure a node is initialized and started successfully.
- Multi-node deployment: Implement support for deploying multiple nodes (e.g., node1, node2, ... nodeN).
- Please see [CONTRIBUTING][]
36 changes: 7 additions & 29 deletions crates/merow/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Core Cli Wrapper (crate::merow)
[CONTRIBUTING]: CONTRIBUTING.md
[setting up a calimero node]: https://calimero-network.github.io/getting-started/setup/

A CLI wrapper for setting up a Calimero Node that provides a custom node configuration file for initializing and running a node.
A CLI wrapper for [setting up a calimero node] that provides a custom node configuration file for initializing and running a node.

*This project is forked from the [original core repository](https://github.com/calimero-network/core) from the Calimero Network, and actively syncs the fork at midnight.*
*This project is forked from the [original core repository](https://github.com/calimero-network/core) from the Calimero Network, and actively syncs every hour.*
## Features

- Custom Node Configuration File
- Simple Commands to Initialize and Run a Calimero Node
- Creates a Node Home Directory at the root (if it doesn't already exist)
- Creates a Node Home Directory at the root (if it doesn't exist)

## Prerequisites
- Rust: [Official Rust Installation](https://www.rust-lang.org/tools/install)
Expand Down Expand Up @@ -37,16 +39,8 @@ swarm_port = 2528 // swarm port
home = "data" // name of the home directory
```

Initialize a node
`$ merow -- init-node`

Start a running node
`$ merow -- start-node`


## How to Run (from project root)

### Build the Rust Package
Build the Rust Package
```bash
cargo build
```
Expand All @@ -67,22 +61,6 @@ Start a running node
http://localhost:<node.server_port>/admin-dashboard/
```

## Issues
- Standard I/O for handling the Calimero Node during runtime


## Contributing
Contributions are welcome! 🎉

#### Steps to Contribute:
1. Fork the repository: Create a fork of this repository to start making changes.
2. Checkout the `cli-wrapper` branch, or alternatively create a new branch. Source code for the `cli-wrapper` can be found here `./crates/merow/src`
3. Create a pull request: Submit a pull request with your updates to the main branch.


#### Ideas for Contributions:
- Standard I/O handling: Implement support for standard input/output handling for the Calimero Node during runtime using the CLI wrapper.
- Tab completion: Add support for tab completion to enhance the user experience.
- Admin Dashboard deployment: Develop a feature to deploy the Admin Dashboard upon successfully starting the node.
- Error handling: Improve error handling to ensure a node is initialized and started successfully.
- Multi-node deployment: Implement support for deploying multiple nodes (e.g., node1, node2, ... nodeN).
- Please see [CONTRIBUTING][]

0 comments on commit 365df77

Please sign in to comment.