Skip to content

Commit

Permalink
Simplify readme, add contextual warnings to dojoup (#1938)
Browse files Browse the repository at this point in the history
  • Loading branch information
tarrencev authored May 7, 2024
1 parent 8367fa0 commit fdcf1d4
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 99 deletions.
28 changes: 20 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
# Contributing to Dojo

First of all, thank you for considering contributing to Dojo. It's people like you that make Dojo such a great tool.
Thank you for considering contributing to Dojo. It's people like you that make Dojo such a great project and community.

Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
Please follow the following guidelines in order to streamline your contribution. It helps communicate that you respect the time of the developers maintaining this open source project. In return, maintainers will reciprocate that respect when addressing your issue, assessing your changes, and helping you finalize your pull requests.

## Getting Started
### Check existing issues

### Check the Issues
Before you start contributing, please check the [Issue Tracker](https://github.com/dojoengine/dojo/issues) to see if there are any existing issues that match what you are intending to do. If the issue doesn't exist, please create it.

Before you start contributing, please check the [Issue Tracker](https://github.com/dojoengine/dojo/issues) to see if there are any existing issues that match what you're intending to do. If the issue doesn't exist, please create it.

If you're creating a new issue, please provide a descriptive title and detailed description. If possible, include a code sample or an executable test case demonstrating the expected behavior that is not occurring.
If you are creating a new issue, please provide a descriptive title and detailed description. If possible, include a code sample or an executable test case demonstrating the expected behavior that is not occurring.

### Fork and Clone the Repository

Once you've found an issue to work on, the next step is to fork the Dojo repo and clone it to your local machine. This is necessary because you probably won't have push access to the main repo.

### Setting up your environment

You will need the [Rust](https://rust-lang.org) compiler and Cargo, the Rust package manager.
The easiest way to install both is with [`rustup.rs`](https://rustup.rs/).

On Windows, you will also need a recent version of [Visual Studio](https://visualstudio.microsoft.com/downloads/),
installed with the "Desktop Development With C++" Workloads option.

## Architecture

At the top level, dojo is composed of different folders:
Expand Down Expand Up @@ -81,11 +87,17 @@ Additionally, when you push your changes, the built-in Continuous Integration (C

The CI uses a `devcontainer` to have all the dependencies installed and to run the tests. You can find more information about the devcontainer in the [`.devcontainer.json`](.devcontainer/devcontainer.json) file and see the latest releases on [GitHub package](https://github.com/dojoengine/dojo/pkgs/container/dojo-dev).

## Releasing

Propose a new release by manually triggering the `release-dispatch` github action. The version value can be an semver or a level: `[patch, minor, major]`.

Once run, the workflow will create a PR with the versioned repo which will trigger the release flow and the creation of a draft release on merge.

## Documentation

We strive to provide comprehensive, up-to-date documentation for Dojo. If your changes require updates to the documentation, please include those in your pull request.

The [dojo book repository](https://github.com/dojoengine/book) is where you should submit your changes to the documentation.
The [Dojo Book repository](https://github.com/dojoengine/book) is where you should submit your changes to the documentation.

## Final Notes

Expand Down
38 changes: 13 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,34 @@
![Dojo Feature Matrix](.github/feature_matrix.png)

# Dojo: Provable Game Engine [![discord](https://img.shields.io/badge/join-dojo-green?logo=discord&logoColor=white)](https://discord.gg/PwDa2mKhR4) [![Telegram Chat][tg-badge]][tg-url] ![Github Actions][gha-badge]
# Dojo: Provable Games and Applications [![discord](https://img.shields.io/badge/join-dojo-green?logo=discord&logoColor=white)](https://discord.gg/PwDa2mKhR4) [![Telegram Chat][tg-badge]][tg-url] ![Github Actions][gha-badge]

[gha-badge]: https://img.shields.io/github/actions/workflow/status/dojoengine/dojo/ci.yml?branch=main
[tg-badge]: https://img.shields.io/endpoint?color=neon&logo=telegram&label=chat&style=flat-square&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fdojoengine
[tg-url]: https://t.me/dojoengine

Dojo provides a developer friendly framework for developing and scaling onchain games and autonomous worlds that are composable, extensible, permissionless and persistent. We do so by providing a ~zero-cost abstraction for developers to succinctly define their onchain world using [Cairo](https://github.com/starkware-libs/cairo) and a robust toolchain for building, migrating, deploying, proving and settling these worlds in production. Leveraging execution sharding and fractal scaling, we're able to scale computation to meet the needs of complex, interactive experiences, while maintaining the security properties of Ethereum.
Dojo is a developer friendly framework for building **provable** Games, Autonomous Worlds and other Applications that are natively composable, extensible, permissionless and persistent. It is an extension of [Cairo](https://www.cairo-lang.org/), an efficiently provable language, that supports generation of zero-knowledge proofs attesting to a computations validity and enables exponential scaling of onchain computation while maintaining the security properties of Ethereum.

## 🚀 Quick Start
It is designed to significantly reduce the complexity of developing provable applications that can be deployed to and verified by blockchains. It does so by providing a ~zero-cost abstraction for developers to succinctly define provable applications and a robust toolchain for building, migrating, deploying, proving and settling these worlds in production.

See the [installation guide](https://book.dojoengine.org/getting-started/quick-start) in the Dojo book.
## Getting Started

## ⛩️ Built with Dojo

- [Awesome Dojo](https://github.com/dojoengine/awesome-dojo)
- [Origami](https://github.com/dojoengine/origami)

## 🗒️ Documentation
See the [getting started](https://book.dojoengine.org/getting-started/quick-start) section in the Dojo book to start building provable applications with Dojo.

You can find more detailed documentation in the Dojo Book [here](https://book.dojoengine.org/).

## ❓ Support

If you encounter issues or have questions, you can [submit an issue on GitHub](https://github.com/dojoengine/dojo/issues). You can also join our [Discord](https://discord.gg/PwDa2mKhR4) for discussion and help.
## Development

## 🏗️ Contributing
We welcome contributions of all kinds from anyone. See our [Contribution Guide](/CONTRIBUTING.md) for more information on setting up your developer environment and how to get involved.

We welcome contributions of all kinds from anyone. See our [Contribution Guide](/CONTRIBUTING.md) for more information on how to get involved.
If you encounter issues or have questions, you can [submit an issue on GitHub](https://github.com/dojoengine/dojo/issues). You can also join our [Discord](https://discord.gg/dojoengine) for discussion and help.

## ✏️ Environment
## Built with Dojo

See our [Environment setup](https://book.dojoengine.org/getting-started) for more information.
- [Awesome Dojo](https://github.com/dojoengine/awesome-dojo)
- [Origami](https://github.com/dojoengine/origami)

## 🛡️Audit
## Audit

Dojo core smart contracts have been audited:

- feb-24: [Nethermind security](https://github.com/NethermindEth/PublicAuditReports/blob/main/NM0159-FINAL_DOJO.pdf)

## Releasing

Propose a new release by manually triggering the `release-dispatch` github action. The version value can be an semver or a level: `[patch, minor, major]`.

Once run, the workflow will create a PR with the versioned repo which will trigger the release flow and the creation of a draft release on merge.
- Feb-24: [Nethermind Security](https://github.com/NethermindEth/PublicAuditReports/blob/main/NM0159-FINAL_DOJO.pdf)
98 changes: 32 additions & 66 deletions dojoup/dojoup
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
#!/usr/bin/env bash

# Check if the platform is Windows
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
echo "Note: Dojoup does not support Powershell or Cmd on Windows."
echo "Please use Git BASH (https://gitforwindows.org/) or WSL (https://learn.microsoft.com/en-us/windows/wsl/install)."
fi

set -e

BASE_DIR=${XDG_CONFIG_HOME:-$HOME}
Expand Down Expand Up @@ -34,8 +41,9 @@ main() {
esac; shift
done

# Print the banner after successfully parsing args
banner
if [ -n "$DOJOUP_BRANCH" ] || [ -n "$DOJOUP_PR" ] || [ -n "$DOJOUP_COMMIT" ] || [ -n "$DOJOUP_LOCAL_REPO" ] || [ -n "$DOJOUP_REPO" ]; then
err "Rust is required for building from source. Please install Rust from https://www.rust-lang.org/tools/install."
fi

if [ -n "$DOJOUP_PR" ]; then
if [ -z "$DOJOUP_BRANCH" ]; then
Expand Down Expand Up @@ -231,12 +239,12 @@ USAGE:
OPTIONS:
-h, --help Print help information
-v, --version Install a specific version
-b, --branch Install a specific branch
-P, --pr Install a specific Pull Request
-c, --commit Install a specific commit
-r, --repo Install from a remote GitHub repo (uses default branch if no other options are set)
-p, --path Install a local repository
-v, --version Install a specific version (e.g., `dojoup --version nightly`)
-b, --branch Install a specific branch (e.g., `dojoup --branch release/0.1.0`)
-P, --pr Install a specific Pull Request (e.g., `dojoup --pr 1071`)
-c, --commit Install a specific commit (e.g., `dojoup -c 94bfdb2`)
-r, --repo Install from a remote GitHub repo (uses default branch if no other options are set) (e.g., `dojoup --repo tarrencev/dojo`)
-p, --path Install a local repository (e.g., `dojoup --path ./git/dojo`)
EOF
}

Expand Down Expand Up @@ -289,31 +297,6 @@ download() {
fi
}

# Banner Function for Dojo
banner() {
printf '
═════════════════════════════════════════════════════════════════════════
██████╗ ██████╗ ██╗ ██████╗
██╔══██╗██╔═══██╗ ██║██╔═══██╗
██║ ██║██║ ██║ ██║██║ ██║
██║ ██║██║ ██║██ ██║██║ ██║
██████╔╝╚██████╔╝╚█████╔╝╚██████╔╝
╚═════╝ ╚═════╝ ╚════╝ ╚═════╝
Repo : https://github.com/dojoengine/dojo
Book : https://book.dojoengine.org/
Chat : https://discord.gg/dojoengine
https://t.me/dojoengine
═════════════════════════════════════════════════════════════════════════
'
}

# Welcome message printed after having installed Dojo.
welcome_msg() {
dojo='\033[1;34m'
Expand All @@ -324,47 +307,30 @@ welcome_msg() {

printf "
═════════════════════════════════════════════════════════════════════════
Ohayo!
Congratulations on successfully installing ${dojo}Dojo${clear} ${DOJOUP_VERSION}! 🎉
Here’s how you can get started:
${title}1. Explore the Dojo Toolkit${clear}
Familiarize yourself with the newly installed components:
- ${emphasis}Katana${clear}: High performance sequencer for onchain games.
- ${emphasis}Sozo${clear}: World contract migration planning and execution.
- ${emphasis}Torii${clear}: Automatic indexer for accessing your world state over gRPC and Graphql.
${title}2. Create Your First Project${clear}
Jump straight into action by creating your first project with Dojo.
Use the command below to get started:
${command}sozo init <project-name>${clear}
${title}3. Access Documentation${clear}
For comprehensive guides and documentation, visit ${emphasis}https://book.dojoengine.org${clear}.
Here, you'll find everything from getting started tutorials to advanced usage examples.
${title}4. Join the Community${clear}
██████╗ ██╗ ██╗ █████╗ ██╗ ██╗ ██████╗
██╔═══██╗██║ ██║██╔══██╗╚██╗ ██╔╝██╔═══██╗
██║ ██║███████║███████║ ╚████╔╝ ██║ ██║
██║ ██║██╔══██║██╔══██║ ╚██╔╝ ██║ ██║
╚██████╔╝██║ ██║██║ ██║ ██║ ╚██████╔╝
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝
Become a part of the Dojo community. Connect with other developers, get help, and share your experiences.
Join us on Discord (${emphasis}https://discord.gg/dojoengine${clear}) or GitHub (${emphasis}https://github.com/dojoengine/dojo${clear})
${title}5. Stay Updated${clear}
Repo : https://github.com/dojoengine/dojo
Book : https://book.dojoengine.org/
Chat : https://discord.gg/dojoengine
https://t.me/dojoengine
Keep your Dojo installation up to date. Check for updates regularly to ensure you have the latest features and improvements:
${command}dojoup${clear}
Congratulations on successfully installing ${dojo}Dojo${clear} ${DOJOUP_VERSION}! 🥷
${title}6. Feedback & Support${clear}
For more info on how to get started, check out the Dojo Getting Started Guide: https://book.dojoengine.org/getting-started/quick-start
Your feedback is invaluable. If you encounter any issues or have suggestions, please open an issue on our GitHub Issues page: ${emphasis}https://github.com/dojoengine/dojo/issues${clear}
═════════════════════════════════════════════════════════════════════════
Happy terraforming with ${dojo}Dojo${clear}! 🚀
"
}

main "$@" || exit 1

Empty file modified dojoup/install
100644 → 100755
Empty file.

0 comments on commit fdcf1d4

Please sign in to comment.