mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-25 22:17:58 +00:00
46891e849f
Move scripts used in CI to the new location - **./scripts/ci/** * Move github scripts * Move more files * Move ci scripts and fix dependencies * Update docs/node-template-release.md Co-authored-by: João Paulo Silva de Souza <77391175+joao-paulo-parity@users.noreply.github.com> * Remove Cargo.lock * Apply suggestions from code review Co-authored-by: Denis Pisarev <denis.pisarev@parity.io> * Make more paths uniform Co-authored-by: João Paulo Silva de Souza <77391175+joao-paulo-parity@users.noreply.github.com> Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
79 lines
3.5 KiB
Markdown
79 lines
3.5 KiB
Markdown
# Substrate Node Template Release Process
|
|
|
|
1. This release process has to be run in a github checkout Substrate directory with your work
|
|
committed into `https://github.com/paritytech/substrate/`, because the build script will check
|
|
the existence of your current git commit ID in the remote repository.
|
|
|
|
Assume you are in root directory of Substrate. Run:
|
|
|
|
```bash
|
|
cd scripts/ci/
|
|
./node-template-release.sh <output tar.gz file>
|
|
```
|
|
|
|
2. Expand the output tar gzipped file and replace files in current Substrate Node Template
|
|
by running the following command.
|
|
|
|
```bash
|
|
# This is where the tar.gz file uncompressed
|
|
cd substrate-node-template
|
|
# rsync with force copying. Note the slash at the destination directory is important
|
|
rsync -avh * <destination node-template directory>/
|
|
# For dry-running add `-n` argument
|
|
# rsync -avhn * <destination node-template directory>/
|
|
```
|
|
|
|
The above command only copies existing files from the source to the destination, but does not
|
|
delete files/directories that are removed from the source. So you need to manually check and
|
|
remove them in the destination.
|
|
|
|
3. There are actually three packages in the Node Template, `node-template` (the node),
|
|
`node-template-runtime` (the runtime), and `pallet-template`, and each has its own `Cargo.toml`.
|
|
Inside these three files, dependencies are listed in expanded form and linked to a certain git
|
|
commit in Substrate remote repository, such as:
|
|
|
|
```toml
|
|
[dev-dependencies.sp-core]
|
|
default-features = false
|
|
git = 'https://github.com/paritytech/substrate.git'
|
|
rev = 'c1fe59d060600a10eebb4ace277af1fee20bad17'
|
|
version = '3.0.0'
|
|
```
|
|
|
|
We will update each of them to the shortened form and link them to the Rust
|
|
[crate registry](https://crates.io/). After confirming the versioned package is published in
|
|
the crate, the above will become:
|
|
|
|
```toml
|
|
[dev-dependencies]
|
|
sp-core = { version = '3.0.0', default-features = false }
|
|
```
|
|
|
|
P.S: This step can be automated if we update `node-template-release` package in
|
|
`scripts/ci/node-template-release`.
|
|
|
|
4. Once the three `Cargo.toml`s are updated, compile and confirm that the Node Template builds. Then
|
|
commit the changes to a new branch in [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template), and make a PR.
|
|
|
|
> Note that there is a chance the code in Substrate Node Template works with the linked Substrate git
|
|
commit but not with published packages due to the latest (as yet) unpublished features. In this case,
|
|
rollback that section of the Node Template to its previous version to ensure the Node Template builds.
|
|
|
|
5. Once the PR is merged, tag the merged commit in master branch with the version number
|
|
`vX.Y.Z+A` (e.g. `v3.0.0+1`). The `X`(major), `Y`(minor), and `Z`(patch) version number should
|
|
follow Substrate release version. The last digit is any significant fixes made in the Substrate
|
|
Node Template apart from Substrate. When the Substrate version is updated, this digit is reset to 0.
|
|
|
|
## Troubleshooting
|
|
|
|
- Running the script `./node-template-release.sh <output tar.gz file>`, after all tests passed
|
|
successfully, seeing the following error message:
|
|
|
|
```
|
|
thread 'main' panicked at 'Creates output file: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:250:10
|
|
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|
```
|
|
|
|
This is likely due to that your output path is not a valid `tar.gz` filename or you don't have write
|
|
permission to the destination. Try with a simple output path such as `~/node-tpl.tar.gz`.
|