The Lotus Release Tool is a CLI (Command Line Interface) utility designed to facilitate interactions with the Lotus Node and Miner metadata. This tool allows users to retrieve version information in either JSON or text format. The Lotus Release Tool was initially developed as a part of the 2024Q2 release process automation initiative and is used in the GitHub Actions workflows related to the release process.
Features
- List all projects with their expected version information.
- Create a new release issue from a template.
- Output logs in JSON or text format.
Installation
To install the Lotus Release Tool, you need to have Go installed on your system.
- Build the tool:
go build -o release ./cmd/release
Usage
The release tool provides several commands and options to interact with the Lotus Node and Miner.
Commands
- List Projects: List all projects with their version information.
./release list-projects
- Create Issue: Create a new release issue from a template.
./release create-issue
Global Options
- --json: Format output as JSON.
./release --json
Examples
List Lotus Node and Lotus Miner version information with JSON formatted output:
./release --json list-projects
Create a new release issue from a template:
./release create-issue --type node --tag 1.30.1 --level patch --release-flow auto --stable-date 2023-05-01
Create a network-upgrade release issue with RC mode:
./release create-issue --type node --tag 1.31.0 --level minor --release-flow auto --network-upgrade 25 --discussion-link https://github.com/filecoin-project/lotus/discussions/12010 --changelog-link https://github.com/filecoin-project/lotus/blob/v1.31.0/CHANGELOG.md --rc1-date 2023-04-01 --stable-date 2023-05-01
Creating a Release Issue via GitHub Actions
Instead of running create-issue locally, you can trigger the Create Release Issue workflow, which runs create-issue in CI with the same parameters. Unlike the local examples above, the workflow passes --create-on-github=true (so it actually opens the issue rather than just printing its content) and --repo to target this repository.