Skip to content

Commit

Permalink
Merge branch 'gnolang:master' into kh.add-btree
Browse files Browse the repository at this point in the history
  • Loading branch information
wyhaines authored Nov 13, 2024
2 parents 19699c5 + bd1d76e commit 83a406e
Show file tree
Hide file tree
Showing 129 changed files with 10,575 additions and 1,122 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/build_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ jobs:
generated:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ inputs.go-version }}

- name: Checkout code
uses: actions/checkout@v4

- name: Check generated files are up to date
working-directory: ${{ inputs.modulepath }}
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/gnoland.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ jobs:
uses: ./.github/workflows/main_template.yml
with:
modulepath: "gno.land"
tests-extra-args: "-coverpkg=github.com/gnolang/gno/gno.land/..."
secrets:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/lint_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ inputs.go-version }}
- name: Checkout code
uses: actions/checkout@v4
- name: Lint
uses: golangci/golangci-lint-action@v6
with:
working-directory: ${{ inputs.modulepath }}
args:
--config=${{ github.workspace }}/.github/golangci.yml
version: v1.59 # sync with misc/devdeps
version: v1.59 # sync with misc/devdeps
6 changes: 5 additions & 1 deletion .github/workflows/main_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
modulepath:
required: true
type: string
tests-extra-args:
required: false
type: string
secrets:
codecov-token:
required: true
Expand Down Expand Up @@ -32,6 +35,7 @@ jobs:
modulepath: ${{ inputs.modulepath }}
tests-timeout: "30m"
go-version: "1.22.x"
tests-extra-args: ${{ inputs.tests-extra-args }}
secrets:
codecov-token: ${{ secrets.codecov-token }}


21 changes: 12 additions & 9 deletions .github/workflows/test_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ on:
required: true
type: string
tests-timeout:
required: true
type: string
required: true
type: string
go-version:
required: true
type: string
required: true
type: string
tests-extra-args:
required: false
type: string
secrets:
codecov-token:
required: true
Expand All @@ -18,12 +21,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ inputs.go-version }}
- name: Checkout code
uses: actions/checkout@v4
go-version: ${{ inputs.go-version }}
- name: Go test
working-directory: ${{ inputs.modulepath }}
env:
Expand All @@ -42,7 +45,7 @@ jobs:
# confusing and meticulous. There will be some improvements in Go
# 1.23 regarding coverage, so we can use this as a workaround until
# then.
go test -covermode=atomic -timeout ${{ inputs.tests-timeout }} ./... -test.gocoverdir=$GOCOVERDIR
go test -covermode=atomic -timeout ${{ inputs.tests-timeout }} ${{ inputs.tests-extra-args }} ./... -test.gocoverdir=$GOCOVERDIR
# Print results
(set +x; echo 'go coverage results:')
Expand Down Expand Up @@ -70,7 +73,7 @@ jobs:
# - name: Install Go
# uses: actions/setup-go@v5
# with:
# go-version: ${{ inputs.go-version }}
# go-version: ${{ inputs.go-version }}
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Go race test
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ repository offers more resources to dig into. We are eager to see your first PR!

* [examples](./examples) - Smart-contract examples and guides for new Gno developers.
* [gnovm](./gnovm) - GnoVM and Gnolang.
* [gno.land](./gno.land) - Gno.land blockchain and tools.
* [gno.land](./gno.land) - gno.land blockchain and tools.
* [tm2](./tm2) - Tendermint2.
* [docs](./docs) - Official documentation, deployed under [docs.gno.land](https://docs.gno.land).
* [contribs](./contribs) - Collection of enhanced tools for Gno.
Expand Down
2 changes: 2 additions & 0 deletions contribs/gnodev/pkg/dev/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"fmt"
"log/slog"
"os"
"path/filepath"
"strings"
"sync"
Expand Down Expand Up @@ -576,5 +577,6 @@ func newNodeConfig(tmc *tmcfg.Config, chainid string, appstate gnoland.GnoGenesi
PrivValidator: pv,
TMConfig: tmc,
Genesis: genesis,
VMOutput: os.Stdout,
}
}
6 changes: 3 additions & 3 deletions docs/concepts/namespaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Here's a breakdown of the structure of a package path:
- `p/`: [Package](packages.md)
- `r/`: [Realm](realms.md)
- Namespace: A namespace can be included after the type (e.g., user or organization name). Namespaces are a
way to group related packages or realms, but currently ownership cannot be claimed. (see
way to group related packages or realms, but currently ownership cannot be claimed. (see
[Issue#1107](https://github.com/gnolang/gno/issues/1107) for more info)
- Remaining Path: The remaining part of the path.
- Can only contain alphanumeric characters (letters and numbers) and underscores.
Expand Down Expand Up @@ -74,8 +74,8 @@ After successful registration, you can add a package under the registered namesp

## Anonymous Namespace

Gno.land offers the ability to add a package without having a registered namespace.
You can do this by using your own address as a namespace. This is formatted as `{p,r}/{std.Address}/**`.
gno.land offers the ability to add a package without having a registered namespace.
You can do this by using your own address as a namespace. This is formatted as `{p,r}/{std.Address}/**`.

> ex: with `test1` user adding a package `microblog` using his own address as namespace
```bash
Expand Down
36 changes: 18 additions & 18 deletions docs/concepts/testnets.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ id: testnets
# Gno Testnets

This page documents all gno.land testnets, what their properties are, and how
they are meant to be used. For testnet configuration, visit the
they are meant to be used. For testnet configuration, visit the
[reference section](../reference/network-config.md).

Gno.land testnets are categorized by 4 main points:
gno.land testnets are categorized by 4 main points:
- **Persistence of state**
- Is the state and transaction history persisted?
- **Timeliness of code**
Expand All @@ -21,25 +21,25 @@ Gno.land testnets are categorized by 4 main points:
Below you can find a breakdown of each existing testnet by these categories.

## Portal Loop
Portal Loop is an always up-to-date rolling testnet. It is meant to be used as
Portal Loop is an always up-to-date rolling testnet. It is meant to be used as
a nightly build of the Gno tech stack. The home page of [gno.land](https://gno.land)
is the `gnoweb` render of the Portal Loop testnet.
is the `gnoweb` render of the Portal Loop testnet.

- **Persistence of state:**
- State is kept on a best-effort basis
- State is kept on a best-effort basis
- Transactions that are affected by breaking changes will be discarded
- **Timeliness of code:**
- Packages & realms which are available in the `examples/` folder on the [Gno
monorepo](https://github.com/gnolang/gno) exist on the Portal Loop in matching
monorepo](https://github.com/gnolang/gno) exist on the Portal Loop in matching
state - they are refreshed with every new commit to the `master` branch.
- **Intended purpose**
- Providing access the latest version of Gno for fast development & demoing
- **Versioning strategy**:
- Portal Loop infrastructure is managed within the
[`misc/loop`](https://github.com/gnolang/gno/tree/master/misc/loop) folder in the
[`misc/loop`](https://github.com/gnolang/gno/tree/master/misc/loop) folder in the
monorepo

For more information on the Portal Loop, and how it can be best utilized,
For more information on the Portal Loop, and how it can be best utilized,
check out the [Portal Loop concept page](./portal-loop.md). Also, you can find
the Portal Loop faucet on [`gno.land/faucet`](https://gno.land/faucet).

Expand Down Expand Up @@ -76,7 +76,7 @@ Staging is a testnet that is reset once every 60 minutes.
These testnets are deprecated and currently serve as archives of previous progress.

### Test3
Test3 is the most recent persistent Gno testnet. It is still being used, but
Test3 is the most recent persistent Gno testnet. It is still being used, but
most packages, such as the AVL package, are outdated.

- **Persistence of state:**
Expand All @@ -85,28 +85,28 @@ most packages, such as the AVL package, are outdated.
- Test3 is at commit [1ca2d97](https://github.com/gnolang/gno/commit/1ca2d973817b174b5b06eb9da011e1fcd2cca575)
of Gno, and it can contain new on-chain code
- **Intended purpose**
- Running a full node, building an indexer, showing demos, persisting history
- Running a full node, building an indexer, showing demos, persisting history
- **Versioning strategy**:
- There is no versioning strategy for test3. It will stay the way it is, until
the team chooses to shut it down.

Since gno.land is designed with open-source in mind, anyone can see currently
available code by browsing the [test3 homepage](https://test3.gno.land/).
Since gno.land is designed with open-source in mind, anyone can see currently
available code by browsing the [test3 homepage](https://test3.gno.land/).

Test3 is a single-node testnet, ran by the Gno core team. There is no plan to
upgrade test3 to a multi-node testnet.
Test3 is a single-node testnet, ran by the Gno core team. There is no plan to
upgrade test3 to a multi-node testnet.

Launch date: November 4th 2022
Launch date: November 4th 2022
Release commit: [1ca2d97](https://github.com/gnolang/gno/commit/1ca2d973817b174b5b06eb9da011e1fcd2cca575)

### Test2 (archive)
The second Gno testnet. Find archive data [here](https://github.com/gnolang/tx-exports/tree/main/test2.gno.land).

Launch date: July 10th 2022
Release commit: [652dc7a](https://github.com/gnolang/gno/commit/652dc7a3a62ee0438093d598d123a8c357bf2499)
Launch date: July 10th 2022
Release commit: [652dc7a](https://github.com/gnolang/gno/commit/652dc7a3a62ee0438093d598d123a8c357bf2499)

### Test1 (archive)
The first Gno testnet. Find archive data [here](https://github.com/gnolang/tx-exports/tree/main/test1.gno.land).

Launch date: May 6th 2022
Launch date: May 6th 2022
Release commit: [797c7a1](https://github.com/gnolang/gno/commit/797c7a132d65534df373c63b837cf94b7831ac6e)
2 changes: 1 addition & 1 deletion docs/getting-started/local-setup/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ go run ./cmd/gno --help

### `gnodev`
`gnodev` is the go-to Gno development helper tool - it comes with a built in
Gno.land node, a `gnoweb` server to display the state of your smart contracts
gno.land node, a `gnoweb` server to display the state of your smart contracts
(realms), and a watcher system to actively track changes in your code. Read more
about `gnodev` [here](../../gno-tooling/cli/gnodev.md).

Expand Down
22 changes: 11 additions & 11 deletions docs/getting-started/playground-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ id: playground-start

## Overview

The Gno Playground is an innovative web-based editor and sandbox that enables developers to
The Gno Playground is an innovative web-based editor and sandbox that enables developers to
interactively work with the Gno language. It makes coding, testing,
and deploying simple with its diverse set of tools and features. Users can
share code, run tests, and deploy projects to gno.land networks,
share code, run tests, and deploy projects to gno.land networks,
making it the perfect tool to get started with Gno development.

## Prerequisites

- **A gno.land compatible wallet**
- Currently, [Adena](https://www.adena.app/) is the preferred wallet for
Gno.land, with more wallets being introduced in the future.
gno.land, with more wallets being introduced in the future.

## Playground Features

Expand Down Expand Up @@ -44,25 +44,25 @@ ensuring the shared code remains accessible over an extended period.

### Deploy

The **Deploy** feature allows users to seamlessly deploy their Gno code to the
chain. After connecting a gno.land wallet, users can select their desired
The **Deploy** feature allows users to seamlessly deploy their Gno code to the
chain. After connecting a gno.land wallet, users can select their desired
package path and network for deployment.

![default_deploy](../assets/getting-started/playground/default_deploy.png)

After inputting your desired package path, you can select the network you would
After inputting your desired package path, you can select the network you would
like to deploy to, such as [Portal Loop](../concepts/portal-loop.md) or local,
and click deploy.

:::info
The Playground will automatically provide enough test tokens to cover the gas
The Playground will automatically provide enough test tokens to cover the gas
cost at the time of deployment, removing the need for using a faucet.
:::

### Format

The **Format** feature utilizes the Monaco editor and
[`gofmt`](https://pkg.go.dev/cmd/gofmt) to automatically refine and standardize
[`gofmt`](https://pkg.go.dev/cmd/gofmt) to automatically refine and standardize
your Gno code's syntax.

### Run
Expand All @@ -82,7 +82,7 @@ View the code [here](https://play.gno.land/p/nBq2W8drjMy).

### Test

The **Test** feature will look for `_test.gno` files in your playground and run
The **Test** feature will look for `_test.gno` files in your playground and run
the`gno test -v` command on them. Testing your code will open a terminal that
will show you the output of the test. Read more about how Gno tests work
[here](../concepts/gno-test.md).
Expand All @@ -95,10 +95,10 @@ It provides a command-line interface for hands-on learning, iterative testing, a
## Learning about gno.land & writing Gno code

If you're new here, don't worry—content is regularly produced to breakdown
Gno.land to explain its features. Dive into the essentials of gno.land by
gno.land to explain its features. Dive into the essentials of gno.land by
exploring the [Concepts](../concepts/concepts.md) section.

To get started writing Gno code, check out the
[How-to](../how-to-guides/how-to-guides.md) section, the `examples/` folder on
the [Gno monorepo](https://github.com/gnolang/gno), or one of many community projects and tutorials found in the
the [Gno monorepo](https://github.com/gnolang/gno), or one of many community projects and tutorials found in the
[awesome-gno](https://github.com/gnolang/awesome-gno/blob/main/README.md) repo on GitHub.
8 changes: 4 additions & 4 deletions docs/gno-infrastructure/validators/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ id: validators-faq

### What is a gno.land validator?

Gno.land is based on [Tendermint2](https://docs.gno.land/concepts/tendermint2) that relies on a set of validators
gno.land is based on [Tendermint2](https://docs.gno.land/concepts/tendermint2) that relies on a set of validators
selected based on [Proof of Contribution](https://docs.gno.land/concepts/proof-of-contribution) (PoC) to secure the
network. Validators are tasked with participating in consensus by committing new blocks and broadcasting votes.
Validators are compensated with a portion of transaction fees generated in the network. In gno.land, the voting power of
Expand Down Expand Up @@ -45,7 +45,7 @@ network.

### What stage is the gno.land project in?

Gno.land is currently in Testnet 3, the single-node testnet stage. The next version, Testnet 4, is scheduled to go live
gno.land is currently in Testnet 3, the single-node testnet stage. The next version, Testnet 4, is scheduled to go live
in Q3 2024, which will include a validator set implementation for a multinode environment.

## Becoming a Validator
Expand All @@ -69,11 +69,11 @@ validators for their work. All validators fairly receive an equal amount of rewa

The exact plans for mainnet are still TBD. Based on the latest discussions between contributors, the mainnet will likely
have an inital validator set size of 20~50, which will gradually scale with the development and decentralization of the
Gno.land project.
gno.land project.

### How do I make my first contribution?

Gno.land is in active development and external contributions are always welcome! If you’re looking for tasks to begin
gno.land is in active development and external contributions are always welcome! If you’re looking for tasks to begin
with, we suggest you visit
the [Bounties &](https://github.com/orgs/gnolang/projects/35/views/3) [Worx](https://github.com/orgs/gnolang/projects/35/views/3)
board and search for open tasks up for grabs. Start from small challenges and work your way up to the bigger ones. Every
Expand Down
Loading

0 comments on commit 83a406e

Please sign in to comment.