Files
pezkuwi-sdk/bizinikiwi/docs/pez-node-template-release.md
T
pezkuwichain 830dcc9bba Development (#172)
* docs: Add CLAUDE_RULES.md with strict rebrand protection rules

- Define immutable rebrand rules that cannot be violated
- Prohibit reverting rebrand for cargo check convenience
- Establish checkpoint and audit trail requirements
- Document correct error handling approach

* refactor: Complete kurdistan-sdk to pezkuwi-sdk rebrand

- Update README.md with pezkuwi-sdk branding
- Replace all kurdistan-sdk URL references with pezkuwi-sdk
- Replace kurdistan-tech with pezkuwichain in workflows
- Update email domains from @kurdistan-tech.io to @pezkuwichain.io
- Rename tool references: kurdistan-tech-publish → pezkuwi-publish
- Update runner names: kurdistan-tech-* → pezkuwichain-*
- Update analytics/forum/matrix domains to pezkuwichain.io
- Keep 'Kurdistan Tech Institute' as organization name
- Keep tech@kurdistan.gov as official government contact
2025-12-19 23:30:43 +03:00

66 lines
3.3 KiB
Markdown

# Bizinikiwi Node Template Release Process
## This release process has to be run in a github checkout Bizinikiwi directory with your work committed into
`https://github.com/pezkuwichain/pezkuwi-sdk/`, 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 Bizinikiwi. Run:
```bash
cd scripts/ci/ ./pez-node-template-release.sh <output tar.gz file>
```
## Expand the output tar gzipped file and replace files in current Bizinikiwi Node Template by running the following
command.
```bash
# This is where the tar.gz file uncompressed cd bizinikiwi-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.
## There is a `Cargo.toml` file in the root directory. Inside, dependencies are listed form and linked to a certain git
commit in Bizinikiwi remote repository, such as:
```toml
toml pezsp-core = { version = "7.0.0", git = "https://github.com/pezkuwichain/pezkuwi-sdk.git", rev =
"de80d0107336a9c7a2efdc0199015e4d67fcbdb5", default-features = false }
```
e will update each of them to link to the Rust [crate registry](https://crates.io/). After confirming the versioned
package is published in the crate, the above will become:
```toml
[workspace.dependencies] pezsp-core = { version = "7.0.0", default-features = false }
```
P.S: This step can be automated if we update `pez-node-template-release` package in `scripts/ci/pez-node-template-release`.
## Once the `Cargo.toml` is updated, compile and confirm that the Node Template builds. Then commit the changes to a new
branch in [Bizinikiwi Node Template](https://github.com/bizinikiwi-developer-hub/bizinikiwi-node-template), and make a PR.
> Note that there is a chance the code in Bizinikiwi Node Template works with the linked Bizinikiwi 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.
## 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 Bizinikiwi release version. The last digit is any
significant fixes made in the Bizinikiwi Node Template apart from Bizinikiwi. When the Bizinikiwi version is updated, this
digit is reset to 0.
## Troubleshooting
- Running the script `./pez-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`.