|
1 |
| -# checkers |
2 |
| -**checkers** is a blockchain built using Cosmos SDK and Tendermint and created with [Ignite CLI](https://ignite.com/cli). |
| 1 | +# Checkers tutorial project |
3 | 2 |
|
4 |
| -## Get started |
| 3 | +This is a companion project of the Cosmos SDK tutorials. Its object is to show various features of the Cosmos SDK and of Ignite, along with the progression of the code as elements and features are added. |
5 | 4 |
|
6 |
| -``` |
7 |
| -ignite chain serve |
| 5 | +The progression of the code is demonstrated via the help of branches and diffs. |
| 6 | + |
| 7 | +## Build steps taken |
| 8 | + |
| 9 | +All the build steps were run inside the Docker container. |
| 10 | + |
| 11 | +```sh |
| 12 | +$ ignite scaffold chain github.com/b9lab/checkers |
8 | 13 | ```
|
9 | 14 |
|
10 |
| -`serve` command installs dependencies, builds, initializes, and starts your blockchain in development. |
| 15 | +## Progressive feature branches |
11 | 16 |
|
12 |
| -### Configure |
| 17 | +The project is created with a clean list of commits in order to demonstrate the natural progression of the project. In this sense, there is no late commit that fixes an error introduced earlier. If there is a fix for an error introduced earlier, the fix should be squashed with the earlier commit that introduced the error. This may require some conflict resolution. |
13 | 18 |
|
14 |
| -Your blockchain in development can be configured with `config.yml`. To learn more, see the [Ignite CLI docs](https://docs.ignite.com). |
| 19 | +Having a clean list of commits makes it possible to do meaningful `compare`s. |
15 | 20 |
|
16 |
| -### Web Frontend |
| 21 | +To make it easier to link to the content at the different stages of the project's progression, a number of branches have been created at commits that have `Add branch the-branch-name` as message. Be careful with the commit message as it depends on it matching the `"Add branch [0-9a-zA-Z\-]*"` regular expression. |
17 | 22 |
|
18 |
| -Ignite CLI has scaffolded a Vue.js-based web app in the `vue` directory. Run the following commands to install dependencies and start the app: |
| 23 | +The script `push-branches.sh` is used to extract these commits and force push them to the appropriate branch in the repository. After having made changes, you should run this script, and also manually force push to `main`. |
19 | 24 |
|
20 |
| -``` |
21 |
| -cd vue |
22 |
| -npm install |
23 |
| -npm run serve |
24 |
| -``` |
| 25 | +Versions used here are: |
25 | 26 |
|
26 |
| -The frontend app is built using the `@starport/vue` and `@starport/vuex` packages. For details, see the [monorepo for Ignite front-end development](https://github.com/ignite-hq/web). |
| 27 | +* Go: 1.18.3 |
| 28 | +* Ignite (formerly Starport): 0.22.1 |
| 29 | +* Cosmos SDK: v0.45.4 |
27 | 30 |
|
28 |
| -## Release |
29 |
| -To release a new version of your blockchain, create and push a new tag with `v` prefix. A new draft release with the configured targets will be created. |
| 31 | +Branches: |
30 | 32 |
|
31 |
| -``` |
32 |
| -git tag v0.1 |
33 |
| -git push origin v0.1 |
34 |
| -``` |
| 33 | +* [`ignite-start`](../../tree/ignite-start) |
35 | 34 |
|
36 |
| -After a draft release is created, make your final changes from the release page and publish it. |
| 35 | +## Version 1 progressive tags |
37 | 36 |
|
38 |
| -### Install |
39 |
| -To install the latest version of your blockchain node's binary, execute the following command on your machine: |
| 37 | +Versions used in version 1 are: |
40 | 38 |
|
41 |
| -``` |
42 |
| -curl https://get.ignite.com/b9lab/checkers@latest! | sudo bash |
43 |
| -``` |
44 |
| -`b9lab/checkers` should match the `username` and `repo_name` of the Github repository to which the source code was pushed. Learn more about [the install process](https://github.com/allinbits/starport-installer). |
| 39 | +* Go: 1.16.15 |
| 40 | +* Ignite (formerly Starport): 0.17.3 |
| 41 | +* Cosmos SDK: v0.42.6 |
| 42 | +* NodeJs: 16.x |
45 | 43 |
|
46 |
| -## Learn more |
| 44 | +Tags: |
47 | 45 |
|
48 |
| -- [Ignite CLI](https://ignite.com/cli) |
49 |
| -- [Tutorials](https://docs.ignite.com/guide) |
50 |
| -- [Ignite CLI docs](https://docs.ignite.com) |
51 |
| -- [Cosmos SDK docs](https://docs.cosmos.network) |
52 |
| -- [Developer Chat](https://discord.gg/ignite) |
| 46 | +* [`v1-starport-start`](../../tree/v1-starport-start) |
| 47 | +* [`v1-rules-added`](../../tree/v1-rules-added), [diff](../../compare/v1-starport-start..v1-rules-added) |
| 48 | +* [`v1-stored-game`](../../tree/v1-stored-game), [diff](../../compare/v1-rules-added..v1-stored-game) |
| 49 | +* [`v1-full-game-object`](../../tree/v1-full-game-object), [diff](../../compare/v1-stored-game..v1-full-game-object) |
| 50 | +* [`v1-create-game-msg`](../../tree/v1-create-game-msg), [diff](../../compare/v1-full-game-object..v1-create-game-msg) |
| 51 | +* [`v1-create-game-handler`](../../tree/v1-create-game-handler), [diff](../../compare/v1-create-game-msg..v1-create-game-handler) |
| 52 | +* [`v1-play-move-msg`](../../tree/v1-play-move-msg), [diff](../../compare/v1-create-game-handler..v1-play-move-msg) |
| 53 | +* [`v1-play-move-handler`](../../tree/v1-play-move-handler), [diff](../../compare/v1-play-move-msg..v1-play-move-handler) |
| 54 | +* [`v1-two-events`](../../tree/v1-two-events), [diff](../../compare/v1-play-move-handler..v1-two-events) |
| 55 | +* [`v1-reject-game-msg`](../../tree/v1-reject-game-msg), [diff](../../compare/v1-two-events..v1-reject-game-msg) |
| 56 | +* [`v1-reject-game-handler`](../../tree/v1-reject-game-handler), [diff](../../compare/v1-reject-game-msg..v1-reject-game-handler) |
| 57 | +* [`v1-game-fifo`](../../tree/v1-game-fifo), [diff](../../compare/v1-reject-game-handler..v1-game-fifo) |
| 58 | +* [`v1-game-deadline`](../../tree/v1-game-deadline), [diff](../../compare/v1-game-fifo..v1-game-deadline) |
| 59 | +* [`v1-game-winner`](../../tree/v1-game-winner), [diff](../../compare/v1-game-deadline..v1-game-winner) |
| 60 | +* [`v1-forfeit-game`](../../tree/v1-forfeit-game), [diff](../../compare/v1-game-winner..v1-forfeit-game) |
| 61 | +* [`v1-game-wager`](../../tree/v1-game-wager), [diff](../../compare/v1-forfeit-game..v1-game-wager) |
| 62 | +* [`v1-payment-winning`](../../tree/v1-payment-winning), [diff](../../compare/v1-game-wager..v1-payment-winning) |
| 63 | +* [`v1-gas-meter`](../../tree/v1-gas-meter), [diff](../../compare/v1-payment-winning..v1-gas-meter) |
| 64 | +* [`v1-can-play-move-query`](../../tree/v1-can-play-move-query), [diff](../../compare/v1-gas-meter..v1-can-play-move-query) |
| 65 | +* [`v1-can-play-move-handler`](../../tree/v1-can-play-move-handler), [diff](../../compare/v1-can-play-move-query..v1-can-play-move-handler) |
| 66 | +* [`v1-wager-denomination`](../../tree/v1-wager-denomination), [diff](../../compare/v1-can-play-move-handler..v1-wager-denomination) |
| 67 | +* [`v1-cosmjs-elements`](../../tree/v1-cosmjs-elements), [diff](../../compare/v1-wager-denomination..v1-cosmjs-elements) |
| 68 | +* [`v1-player-info-object`](../../tree/v1-player-info-object), [diff](../../compare/v1-cosmjs-elements..v1-player-info-object) |
| 69 | +* [`v1-player-info-handling`](../../tree/v1-player-info-handling), [diff](../../compare/v1-player-info-object..v1-player-info-handling) |
| 70 | +* [`v1-leaderboard-object`](../../tree/v1-leaderboard-object), [diff](../../compare/v1-player-info-handling..v1-leaderboard-object) |
| 71 | +* [`v1-leaderboard-handling`](../../tree/v1-leaderboard-handling), [diff](../../compare/v1-leaderboard-object..v1-leaderboard-handling) |
| 72 | +* [`v1-genesis-migration`](../../tree/v1-genesis-migration), [diff](../../compare/v1-leaderboard-handling..v1-genesis-migration) |
0 commit comments