Skip to content

Commit

Permalink
Merge branch 'ignite:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
asikam authored Nov 30, 2023
2 parents 8a58f70 + e510a29 commit ad5b5c1
Show file tree
Hide file tree
Showing 315 changed files with 10,821 additions and 10,184 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/cl-enforcer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ jobs:
- uses: dangoslen/changelog-enforcer@v3
with:
changeLogPath: 'changelog.md'
missingUpdateErrorMessage: 'Please fill the changelog.md file or add the "Skip-Changelog" label'
missingUpdateErrorMessage: 'Please add an entry to the changelog.md file or add the "skip-changelog" label'
skipLabels: 'skip-changelog'
versionPattern: ''
2 changes: 1 addition & 1 deletion .github/workflows/docs-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
consecutiveness:
runs-on: ubuntu-latest
steps:
- uses: mktcode/consecutive-workflow-action@v1
- uses: ignite/consecutive-workflow-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/md-link-checker-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
},
{
"pattern": "^index.md"
},
{
"pattern": "^https://docs.starport.network"
}
],
"replacementPatterns": [
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/md-link-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- "**.*.md"
branches:
- main
- release/*

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/proto-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Protobuf Files

on:
pull_request:
paths:
- "proto/**"

permissions:
contents: read

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v3
- uses: bufbuild/[email protected]
- uses: bufbuild/buf-lint-action@v1
with:
input: "proto"

# TODO: Uncomment after PR#3529 is merged
# break-check:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: bufbuild/[email protected]
# - uses: bufbuild/buf-breaking-action@v1
# with:
# input: "proto"
# against: "https://github.com/${{ github.repository }}.git#branch=${{ github.event.pull_request.base.ref }},ref=HEAD~1,subdir=proto"
2 changes: 1 addition & 1 deletion .github/workflows/release-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
consecutiveness:
runs-on: ubuntu-latest
steps:
- uses: mktcode/consecutive-workflow-action@v1
- uses: ignite/consecutive-workflow-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
consecutiveness:
runs-on: ubuntu-latest
steps:
- uses: mktcode/consecutive-workflow-action@v1
- uses: ignite/consecutive-workflow-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- '**.md'
branches:
- main
- release/*

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- '**.md'
branches:
- main
- release/*

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
scripts/**/nodetime-*
**/testdata/**/go.sum
dist/
node_modules
.DS_Store
apps/
.idea
.vscode
docs/.vuepress/dist
Expand Down
26 changes: 25 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,35 @@ format:

## lint: Run Golang CI Lint.
lint:
@echo Running gocilint...
@echo Running golangci-lint...
@go run github.com/golangci/golangci-lint/cmd/golangci-lint run --out-format=tab --issues-exit-code=0

lint-fix:
@echo Running golangci-lint...
@go run github.com/golangci/golangci-lint/cmd/golangci-lint run --fix --out-format=tab --issues-exit-code=0

.PHONY: govet format lint

## proto-all: Format, lint and generate code from proto files using buf.
proto-all: proto-format proto-lint proto-gen

## proto-gen: Run buf generate.
proto-gen:
@echo Generating code from proto...
@buf generate --template ./proto/buf.gen.yaml --output ./

## proto-format: Run buf format and update files with invalid proto format>
proto-format:
@echo Formatting proto files...
@buf format --write

## proto-lint: Run buf lint.
proto-lint:
@echo Linting proto files...
@buf lint

.PHONY: proto-all proto-gen proto-format proto-lint

## test-unit: Run the unit tests.
test-unit:
@echo Running unit tests...
Expand Down
3 changes: 3 additions & 0 deletions buf.work.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
version: v1
directories:
- proto
26 changes: 21 additions & 5 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,26 @@

### Features

- [#3694](https://github.com/ignite/cli/pull/3694) Query and Tx AutoCLI support
- [#3544](https://github.com/ignite/cli/pull/3544) Add bidirectional communication to plugin system
- [#3561](https://github.com/ignite/cli/pull/3561) Add GetChainInfo method to plugin system API
- [#3626](https://github.com/ignite/cli/pull/3626) Add logging levels to relayer
- [#3476](https://github.com/ignite/cli/pull/3476) Use `buf.build` binary to code generate from proto files
- [#3614](https://github.com/ignite/cli/pull/3614) feat: use DefaultBaseappOptions for app.New method
- [#3536](https://github.com/ignite/cli/pull/3536) Change app.go to v2 and add AppWiring feature
- [#3659](https://github.com/ignite/cli/pull/3659) cosmos-sdk `v0.50.x`
- [#3670](https://github.com/ignite/cli/pull/3670) Remove nodetime binaries
- [#3724](https://github.com/ignite/cli/pull/3724) Add or vendor proto packages from Go dependencies
- [#3715](https://github.com/ignite/cli/pull/3715) Add test suite for the cli tests
- [#3756](https://github.com/ignite/cli/pull/3756) Add faucet compatibility for latest sdk chains

### Changes

- [#3701](https://github.com/ignite/cli/pull/3701) Bump `go` version to 1.21
- [#3529](https://github.com/ignite/cli/pull/3529) Refactor plugin system to use gRPC
- [#3750](https://github.com/ignite/cli/pull/3750) Update default Ignite network app to `v0.2.0`
- [#3751](https://github.com/ignite/cli/pull/3751) Rename label to skip changelog check
- [#3745](https://github.com/ignite/cli/pull/3745) Set tx fee amount as option
- [#3748](https://github.com/ignite/cli/pull/3748) Change default rpc endpoint to a working one
- [#3621](https://github.com/ignite/cli/pull/3621) Change `pkg/availableport` to allow custom parameters in `Find` function and handle duplicated ports
- [#3559](https://github.com/ignite/cli/pull/3559) Bump network plugin version to `v0.1.1`
- [#3581](https://github.com/ignite/cli/pull/3581) Bump cometbft and cometbft-db in the template
Expand Down Expand Up @@ -41,20 +52,25 @@
- [#3726](https://github.com/ignite/cli/pull/3726) Update TS client dependencies. Bump vue/react template versions
- [#3728](https://github.com/ignite/cli/pull/3728) Fix wrong parser for proto package names
- [#3729](https://github.com/ignite/cli/pull/3729) Fix broken generator due to caching /tmp include folders
- [#3767](https://github.com/ignite/cli/pull/3767) Fix `v0.50` ibc genesis issue

## [`v0.27.2`](https://github.com/ignite/cli/releases/tag/v0.27.2)

### Changes

- [#3701](https://github.com/ignite/cli/pull/3701) Bump `go` version to 1.21

## [`v0.27.0`](https://github.com/ignite/cli/releases/tag/v0.27.0)
## [`v0.27.1`](https://github.com/ignite/cli/releases/tag/v0.27.1)

### Features

-
- [#3505](https://github.com/ignite/cli/pull/3505) Auto migrate dependency tools
- [#3538](https://github.com/ignite/cli/pull/3538) bump sdk to `v0.47.3` and ibc to `v7.1.0`
- [#2736](https://github.com/ignite/cli/issues/2736) Add `--skip-git` flag to skip git repository initialization.
- [#3381](https://github.com/ignite/cli/pull/3381) Add `ignite doctor` command
- [#3446](https://github.com/ignite/cli/pull/3446) Add `gas-adjustment` flag to the cosmos client.
- [#3439](https://github.com/ignite/cli/pull/3439) Add `--build.tags` flag for `chain serve` and `chain build` commands.
- [#3524](https://github.com/ignite/cli/pull/3524) Apply auto tools migration to other commands
- [#3636](https://github.com/ignite/cli/pull/3626) Add logging levels to relayer
- Added compatibility check and auto migration features and interactive guidelines for the latest versions of the SDK

### Changes
Expand Down Expand Up @@ -772,4 +788,4 @@ Our new name is **Ignite CLI**!

## `v0.0.9`

Initial release.
Initial release.
37 changes: 17 additions & 20 deletions docs/docs/01-welcome/01-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,34 @@ slug: /

import ProjectsTable from '@site/src/components/ProjectsTable';

# Introduction to Ignite
# Introduction to Ignite CLI: Your Gateway to Blockchain Innovation

[Ignite CLI](https://github.com/ignite/cli) offers everything you need to build, test, and launch your blockchain with a
decentralized worldwide community. Ignite CLI is built on top of [Cosmos SDK](https://docs.cosmos.network), the world’s
most popular blockchain framework. Ignite CLI accelerates chain development by scaffolding everything you need so you
can focus on business logic.
[Ignite CLI](https://github.com/ignite/cli) is a powerful tool that simplifies the journey of building, testing, and launching diverse blockchain applications. Developed on top of the [Cosmos SDK](https://docs.cosmos.network), the leading framework for blockchain technology, Ignite CLI is pivotal in streamlining the development process. It enables developers to focus on the unique aspects of their projects, from DeFi and NFTs to supply chain solutions and smart contracts.
Beyond these, Ignite has been instrumental in a wide array of blockchain applications, ranging from VPNs and gaming platforms to blogs, oracle systems, and innovative consensus mechanisms. This demonstrates its versatility in supporting a broad spectrum of blockchain-based solutions.

## What is Ignite CLI?
## Key Features of Ignite CLI

Ignite CLI is an easy-to-use CLI tool for creating and maintaining sovereign application-specific blockchains.
Blockchains created with Ignite CLI use Cosmos SDK and Tendermint. Ignite CLI and the Cosmos SDK modules are written in
the Go programming language. The scaffolded blockchain that is created with Ignite CLI includes a command line interface
that lets you manage keys, create validators, and send tokens.

With just a few commands, you can use Ignite CLI to:

- Create a modular blockchain written in Go
- Scaffold modules, messages, types with CRUD operations, IBC packets, and more
- Start a blockchain node in development with live reloading
- Connect to other blockchains with a built-in IBC relayer
- Use generated TypeScript/Vuex clients to interact with your blockchain
- Use the Vue.js web app template with a set of components and Vuex modules
- **Simplified Blockchain Development:** Ignite CLI, leveraging Cosmos SDK, makes building sovereign application-specific blockchains intuitive and efficient.
- **Comprehensive Scaffolding:** Easily scaffold modules, messages, CRUD operations, IBC packets, and more, expediting the development of complex functionalities.
- **Development with Live Reloading:** Start and test your blockchain node with real-time updates, enhancing your development workflow.
- **Frontend Flexibility:** Utilize pre-built templates for Vue.js, React, Typescript or Go, catering to diverse frontend development needs.
- **Inter-Blockchain Communication (IBC):** Seamlessly connect and interact with other blockchains using an integrated IBC relayer, a key feature of the Cosmos SDK.
- **CometBFT Integration:** Built with the CometBFT consensus engine (formerly Tendermint), ensuring robust consensus mechanisms in your blockchain solutions.
- **Cross-Domain Applications:** Ignite is perfectly suited for developing a diverse array of use cases across various sectors. These include DeFi, NFTs, supply chain management, smart contracts (both EVM and WASM), and decentralized exchanges (DEXes).

## Install Ignite CLI

To install the `ignite` binary in `/usr/local/bin` run the following command:
Get started with Ignite CLI by running this simple installation command:

```
curl https://get.ignite.com/cli! | bash
```

## Embracing the Cosmos Ecosystem

Ignite CLI is your entry point into the vibrant Cosmos ecosystem, a hub of innovation where you can explore a range of applications, from wallets and explorers to smart contracts and DEXes, all powered by CometBFT and the Cosmos SDK.
This ecosystem is home to over [$50 billion worth of blockchain projects](https://cosmos.network/ecosystem/tokens/), showcasing the scalability and versatility of the technologies at play.

## Projects using Tendermint and Cosmos SDK

Many projects already showcase the Tendermint BFT consensus engine and the Cosmos SDK. Explore
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/01-welcome/02-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Ignite CLI is supported for the following operating systems:

Ignite CLI is written in the Go programming language. To use Ignite CLI on a local system:

- Install [Go](https://golang.org/doc/install) (**version 1.19** or higher)
- Install [Go](https://golang.org/doc/install) (**version 1.21.1** or higher)
- Ensure the Go environment variables are [set properly](https://golang.org/doc/gopath_code#GOPATH) on your system

## Verify your Ignite CLI version
Expand Down
61 changes: 31 additions & 30 deletions docs/docs/02-guide/00-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,34 @@ title: Introduction
slug: /guide
---

# Introduction

Developer tutorials provide step-by-step instructions to help you build blockchain developer skills.

By following these developer tutorials you will learn how to:

* Install Ignite CLI on your local machine
* Create a new blockchain and start a node locally for development
* Make your blockchain say "Hello, World!"
* Scaffold a Cosmos SDK query
* Modify a keeper method to return a static string
* Use the blockchain CLI to make a query
* Write and read blog posts to your chain in the Blog tutorial
* Scaffold a Cosmos SDK message
* Define new types in protocol buffer files
* Write keeper methods to write data to the store
* Read data from the store and return it as a result a query
* Use the blockchain CLI to broadcast transactions
* Build a blockchain for buying and selling names in the Nameservice tutorial
* Scaffold CRUD logic with `map`
* Use other module methods in your custom module
* Send tokens between addresses
* Build a guessing game with rewards
* Use an escrow account to store tokens
* Use the Inter-Blockchain Communication (IBC) protocol
* Scaffold an IBC-enabled module
* Send and receive IBC packets
* Configure and run a built-in IBC relayer
* Build a decentralized order-book token exchange
* Build an advanced IBC-enabled module
# Introduction to Ignite's Developer Tutorials

Welcome to the Ignite Developer Tutorials, your gateway to mastering blockchain development. These comprehensive tutorials are designed for learners at all levels, from beginners to seasoned developers, offering both foundational knowledge and hands-on experience.

## What You Will Learn

- **Getting Started with Ignite CLI**: Install the Ignite CLI and set up your development environment. This foundational step is necessary for all the tutorials that follow.

- **Create and Run Your First Blockchain**: Learn to create and run your own blockchain, understanding how to start and manage a node locally for development purposes.

- **Hello World Tutorial**: Engage in the excitement of blockchain development by making your blockchain respond with "Hello, World!" This includes learning to scaffold a Cosmos SDK query and modify keeper methods.

- **Blog Tutorial**: Step into decentralized applications (dApps) with the ability to write and read blog posts on your blockchain. This tutorial covers everything from defining new types in protocol buffer files to writing and reading data from the store.

- **DeFi Loan Tutorial**: Dive into Decentralized Finance (DeFi) by building a blockchain for managing loans. Gain insights into CRUD logic, module method integration, and token transaction management.

- **Token Factory Tutorial**: Master the creation and management of digital assets on your blockchain by building a token factory module, learning module development, CRUD operations without delete functionality, and native denomination integration.

- **Inter-blockchain Communication (IBC) Basics**: Explore the interconnected world of blockchains with the IBC protocol. Learn how to scaffold an IBC-enabled module, manage IBC packets, and configure a built-in IBC relayer.

- **Interchange Module**: Advance your IBC knowledge by building a module for decentralized token exchanges and order books.

- **Debugging a Blockchain**: Develop essential skills in debugging to maintain efficient and effective blockchain development.

- **Running in a Docker Container**: Learn how to use Docker to containerize your blockchain environment, ensuring consistency and portability across development stages.

- **Chain Simulation**: Understand the importance and method of simulating blockchain environments for testing and validating functionality under various scenarios.

Each tutorial builds upon the previous, enhancing your understanding and skills progressively. By completing these tutorials, you will gain a robust understanding of blockchain principles, the Cosmos SDK, and practical experience in developing and managing blockchain projects.

Embark on your journey to become a proficient blockchain developer with Ignite's Developer Tutorials!
Loading

0 comments on commit ad5b5c1

Please sign in to comment.