diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml deleted file mode 100644 index 79f80719a..000000000 --- a/.github/workflows/buf-lint.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Lint proto files - -on: - push: - paths: - - 'proto/**/*.proto' - - '.github/workflows/buf-lint.yml' - -permissions: - contents: read - -jobs: - buf-lint: - runs-on: lux-build-amd64 - steps: - - uses: actions/checkout@v4 - - name: Check for .proto files - id: proto-check - run: | - if find proto -name '*.proto' -type f 2>/dev/null | grep -q .; then - echo "has_proto=true" >> $GITHUB_OUTPUT - else - echo "has_proto=false" >> $GITHUB_OUTPUT - echo "No .proto files found — skipping buf-lint (node is ZAP-native by default; protobuf is opt-in)." - fi - - uses: bufbuild/buf-setup-action@v1 - if: steps.proto-check.outputs.has_proto == 'true' - with: - github_token: ${{ github.token }} - version: "1.47.2" - - uses: bufbuild/buf-lint-action@v1 - if: steps.proto-check.outputs.has_proto == 'true' - with: - input: "proto" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bf5aa3e8..012b9bf01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,53 +94,6 @@ jobs: - name: Run actionlint shell: bash run: scripts/actionlint.sh - buf-lint: - name: Protobuf Lint - runs-on: lux-build-amd64 - steps: - - uses: actions/checkout@v4 - - name: Install buf - shell: bash - run: | - BUF_VERSION="1.47.2" - curl -sSL "https://github.com/bufbuild/buf/releases/download/v${BUF_VERSION}/buf-Linux-x86_64" -o /usr/local/bin/buf - chmod +x /usr/local/bin/buf - buf --version - - name: Lint protobuf - shell: bash - run: buf lint proto - check_generated_protobuf: - name: Up-to-date protobuf - runs-on: lux-build-amd64 - continue-on-error: true - env: - GOPRIVATE: github.com/luxfi/* - GONOSUMDB: github.com/luxfi/* - GOWORK: off - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-go-for-project - - name: Configure Git for private modules - shell: bash - run: git config --global url."https://${{ github.token }}@github.com/".insteadOf "https://github.com/" - - name: Install buf - shell: bash - run: | - BUF_VERSION="1.47.2" - curl -sSL "https://github.com/bufbuild/buf/releases/download/v${BUF_VERSION}/buf-Linux-x86_64" -o /usr/local/bin/buf - chmod +x /usr/local/bin/buf - - name: Install protoc-gen-go tools - shell: bash - run: | - go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35.1 - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 - go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest - - shell: bash - run: scripts/protobuf_codegen.sh - env: - CGO_ENABLED: '0' - - shell: bash - run: .github/workflows/check-clean-branch.sh check_mockgen: name: Up-to-date mocks runs-on: lux-build-amd64 diff --git a/Taskfile.yml b/Taskfile.yml index db277d3fa..42dd272f9 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -73,12 +73,6 @@ tasks: - task: generate-mocks - task: check-clean-branch - check-generate-protobuf: - desc: Checks that generated protobuf is up-to-date (requires a clean git working tree) - cmds: - - task: generate-protobuf - - task: check-clean-branch - check-go-mod-tidy: desc: Checks that go.mod and go.sum are up-to-date (requires a clean git working tree) cmds: @@ -101,10 +95,6 @@ tasks: - cmd: grep -lr -E '^// Code generated - DO NOT EDIT\.$' tests/load/c | xargs -r rm - cmd: go generate ./tests/load/c/... - generate-protobuf: - desc: Generates protobuf - cmd: ./scripts/protobuf_codegen.sh - ginkgo-build: desc: Runs ginkgo against the current working directory cmd: ./bin/ginkgo build {{.USER_WORKING_DIR}} diff --git a/proto/Dockerfile.buf b/proto/Dockerfile.buf deleted file mode 100644 index 6e214f5c2..000000000 --- a/proto/Dockerfile.buf +++ /dev/null @@ -1,22 +0,0 @@ -FROM bufbuild/buf:1.26.1 AS builder - -FROM ubuntu:20.04 - -RUN apt-get update && apt -y install bash curl unzip git -WORKDIR /opt - -RUN \ - curl -L https://golang.org/dl/go1.24.5.linux-amd64.tar.gz > golang.tar.gz && \ - mkdir golang && \ - tar -zxvf golang.tar.gz -C golang/ - -ENV PATH="${PATH}:/opt/golang/go/bin" - -COPY --from=builder /usr/local/bin/buf /usr/local/bin/ - -# any version changes here should also be bumped in scripts/protobuf_codegen.sh -RUN \ - go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.30.0 && \ - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 - -ENV PATH="${PATH}:/root/go/bin/" diff --git a/proto/README.md b/proto/README.md deleted file mode 100644 index 7184c26f6..000000000 --- a/proto/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Lux gRPC - -Now Serving: **Protocol Version 42** - -Protobuf files are hosted at -[https://buf.build/luxfi/lux](https://buf.build/luxfi/lux) and -can be used as dependencies in other projects. - -Protobuf linting and generation for this project is managed by -[buf](https://github.com/bufbuild/buf). - -Please find installation instructions on -[https://docs.buf.build/installation/](https://docs.buf.build/installation/). - -Any changes made to proto definition can be updated by running -`protobuf_codegen.sh` located in the `scripts/` directory of Lux Node. - -`buf` Quickstart -[https://buf.build/docs/cli/quickstart](https://buf.build/docs/cli/quickstart) - -## Protocol Version Compatibility - -The protobuf definitions and generated code are versioned based on the -[RPCChainVMProtocol](../version/version.go#L13) defined for the RPCChainVM. -Many versions of a Lux client can use the same -[RPCChainVMProtocol](../version/version.go#L13). But each Lux client and -chain VM must use the same protocol version to be compatible. - -## Publishing to Buf Schema Registry - -- Checkout appropriate tag in Lux Node `git checkout v1.10.1` -- Change to proto/ directory `cd proto`. -- Publish new tag to buf registry. `buf push -t v26` - -Note: Publishing requires auth to the luxfi org in buf -https://buf.build/luxfi/repositories diff --git a/proto/buf.gen.yaml b/proto/buf.gen.yaml deleted file mode 100644 index 046f039ca..000000000 --- a/proto/buf.gen.yaml +++ /dev/null @@ -1,8 +0,0 @@ -version: v1 -plugins: - - name: go - out: pb - opt: paths=source_relative - - name: go-grpc - out: pb - opt: paths=source_relative diff --git a/proto/buf.md b/proto/buf.md deleted file mode 100644 index 7184c26f6..000000000 --- a/proto/buf.md +++ /dev/null @@ -1,36 +0,0 @@ -# Lux gRPC - -Now Serving: **Protocol Version 42** - -Protobuf files are hosted at -[https://buf.build/luxfi/lux](https://buf.build/luxfi/lux) and -can be used as dependencies in other projects. - -Protobuf linting and generation for this project is managed by -[buf](https://github.com/bufbuild/buf). - -Please find installation instructions on -[https://docs.buf.build/installation/](https://docs.buf.build/installation/). - -Any changes made to proto definition can be updated by running -`protobuf_codegen.sh` located in the `scripts/` directory of Lux Node. - -`buf` Quickstart -[https://buf.build/docs/cli/quickstart](https://buf.build/docs/cli/quickstart) - -## Protocol Version Compatibility - -The protobuf definitions and generated code are versioned based on the -[RPCChainVMProtocol](../version/version.go#L13) defined for the RPCChainVM. -Many versions of a Lux client can use the same -[RPCChainVMProtocol](../version/version.go#L13). But each Lux client and -chain VM must use the same protocol version to be compatible. - -## Publishing to Buf Schema Registry - -- Checkout appropriate tag in Lux Node `git checkout v1.10.1` -- Change to proto/ directory `cd proto`. -- Publish new tag to buf registry. `buf push -t v26` - -Note: Publishing requires auth to the luxfi org in buf -https://buf.build/luxfi/repositories diff --git a/proto/buf.yaml b/proto/buf.yaml deleted file mode 100644 index 504dfaa24..000000000 --- a/proto/buf.yaml +++ /dev/null @@ -1,30 +0,0 @@ -version: v1 -name: buf.build/luxfi/lux -build: - excludes: [] -breaking: - use: - - FILE -# deps removed - now using local io/metric/client/metrics.proto -lint: - use: - - STANDARD - except: - - SERVICE_SUFFIX # service requirement of +Service - - RPC_REQUEST_STANDARD_NAME # explicit +Request naming - - RPC_RESPONSE_STANDARD_NAME # explicit +Response naming - - PACKAGE_VERSION_SUFFIX # versioned naming .v1beta - ignore: - # TODO: how will fixing this affect functionality. Multiple fields are used as the request - # or response type for multiple RPCs - - aliasreader/aliasreader.proto - - net/conn/conn.proto - # Third-party proto from prometheus/client_model - don't lint - - io/metric/client/metrics.proto - # allows RPC requests or responses to be google.protobuf.Empty messages. This can be set if you - # want to allow messages to be void forever, that is they will never take any parameters. - rpc_allow_google_protobuf_empty_requests: true - rpc_allow_google_protobuf_empty_responses: true - # allows the same message type to be used for a single RPC's request and response type. - # TODO: this should not be tolerated and if it is only perscriptivly. - rpc_allow_same_request_response: true diff --git a/scripts/protobuf_codegen.sh b/scripts/protobuf_codegen.sh deleted file mode 100755 index c80ca48b9..000000000 --- a/scripts/protobuf_codegen.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -if ! [[ "$0" =~ scripts/protobuf_codegen.sh ]]; then - echo "must be run from repository root" - exit 255 -fi - -# the versions here should match those of the binaries installed in the nix dev shell - -## ensure the correct version of "buf" is installed -BUF_VERSION='1.47.2' -if [[ $(buf --version | cut -f2 -d' ') != "${BUF_VERSION}" ]]; then - echo "could not find buf ${BUF_VERSION}, is it installed + in PATH?" - exit 255 -fi - -## ensure the correct version of "protoc-gen-go" is installed -PROTOC_GEN_GO_VERSION='v1.35.1' -if [[ $(protoc-gen-go --version | cut -f2 -d' ') != "${PROTOC_GEN_GO_VERSION}" ]]; then - echo "could not find protoc-gen-go ${PROTOC_GEN_GO_VERSION}, is it installed + in PATH?" - exit 255 -fi - -## ensure the correct version of "protoc-gen-go-grpc" is installed -PROTOC_GEN_GO_GRPC_VERSION='1.3.0' -if [[ $(protoc-gen-go-grpc --version | cut -f2 -d' ') != "${PROTOC_GEN_GO_GRPC_VERSION}" ]]; then - echo "could not find protoc-gen-go-grpc ${PROTOC_GEN_GO_GRPC_VERSION}, is it installed + in PATH?" - exit 255 -fi - -BUF_MODULES=("proto" "connectproto") - -REPO_ROOT=$PWD -for BUF_MODULE in "${BUF_MODULES[@]}"; do - TARGET=$REPO_ROOT/$BUF_MODULE - if [ -n "${1:-}" ]; then - TARGET="$1" - fi - - # move to buf module directory - cd "$TARGET" - - echo "Generating for buf module $BUF_MODULE" - echo "Running protobuf fmt for..." - buf format -w - - echo "Running protobuf lint check..." - if ! buf lint; then - echo "ERROR: protobuf linter failed" - exit 1 - fi - - echo "Re-generating protobuf..." - if ! buf generate; then - echo "ERROR: protobuf generation failed" - exit 1 - fi -done diff --git a/version/constants.go b/version/constants.go index 4648dad38..829c56ca0 100644 --- a/version/constants.go +++ b/version/constants.go @@ -77,7 +77,7 @@ var ( const ( defaultMajor = 1 defaultMinor = 36 - defaultPatch = 10 + defaultPatch = 11 ) func init() {