-
Notifications
You must be signed in to change notification settings - Fork 97
feat(ci): Add package support to archlinux variant #7277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughThe version string in the Changes
Possibly related PRs
Suggested labels
Suggested reviewers
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR bumps the hopr-lib package version to a release candidate to test the close release pipelines.
- Updated
version
in Cargo.toml from3.0.0
to3.0.0-rc.1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
README.md (3)
25-26
: Typos & grammar in new TOC entriesConsider capitalizing “Debian” for consistency and fixing minor grammar:
- - [Install via debian package manager](#install-via-debian-package-manager) + - [Install via Debian package manager](#install-via-debian-package-manager)
147-152
: Fix wording & misspellings in the RPM instructionsThe sentence is currently broken and “addres” is miss-spelled. A quick patch:
-# You can the Safe address and the Module addres from https://hub.hoprnet.org +# You can find the Safe address and the Module address at https://hub.hoprnet.org
168-172
: Repeat the wording fix for the Alpine sectionSame typo / grammar issue as above:
-# You can the Safe address and the Module addres from https://hub.hoprnet.org +# You can find the Safe address and the Module address at https://hub.hoprnet.org
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/workflows/bencher.yaml
(1 hunks).github/workflows/build-binaries.yaml
(1 hunks).github/workflows/build-dappnode.yaml
(1 hunks).github/workflows/merge.yaml
(1 hunks)README.md
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .github/workflows/build-dappnode.yaml
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.702Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.974Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
README.md (1)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.643Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
.github/workflows/build-binaries.yaml (10)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github.event_name context may inherit from the parent workflow rather than being set to 'workflow_call', allowing conditions like 'github.event_name == 'pull_request'' to work correctly when the parent workflow was triggered by a pull_request event.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:08:43.091Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:08:43.091Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:0-0
Timestamp: 2024-11-26T17:47:21.777Z
Learning: In `.github/workflows/build-binaries.yaml`, when writing shell scripts in GitHub Actions workflows, the user prefers to set environment variables individually rather than grouping them together.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/add-labels.yaml:49-57
Timestamp: 2025-05-27T16:21:03.705Z
Learning: GitHub CLI (gh) accepts GITHUB_TOKEN as an environment variable for authentication in GitHub Actions workflows, not just GH_TOKEN. The environment variable GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} works correctly with gh commands like "gh pr edit".
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.702Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
.github/workflows/merge.yaml (5)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github.event_name context may inherit from the parent workflow rather than being set to 'workflow_call', allowing conditions like 'github.event_name == 'pull_request'' to work correctly when the parent workflow was triggered by a pull_request event.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
.github/workflows/bencher.yaml (8)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github.event_name context may inherit from the parent workflow rather than being set to 'workflow_call', allowing conditions like 'github.event_name == 'pull_request'' to work correctly when the parent workflow was triggered by a pull_request event.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:08:43.091Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:08:43.091Z
Learning: In GitHub Actions reusable workflows, the github context from the caller workflow is inherited by the called workflow, so github.event_name reflects the original triggering event (e.g., 'pull_request') rather than being set to 'workflow_call'. Conditions like 'github.event_name == 'pull_request'' work correctly in reusable workflows when the parent workflow was triggered by that event type.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.974Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
⏰ Context from checks skipped due to timeout of 90000ms (10)
- GitHub Check: hoprd / docker
- GitHub Check: hopli / docker
- GitHub Check: Docs / Rust
- GitHub Check: Audit / Audit
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Lint / Lint
- GitHub Check: tests-unit-nightly
- GitHub Check: Build Candidate Binaries (hopli)
- GitHub Check: tests-unit
- GitHub Check: Build Candidate Binaries (hoprd)
🔇 Additional comments (3)
.github/workflows/merge.yaml (1)
194-195
: LGTM – better failure linkThe updated Zulip message now points directly to failed
merge.yaml
runs, which is more actionable for maintainers..github/workflows/build-binaries.yaml (1)
64-78
: Event-name switch looks correctChanging the guard from
pull_request
topull_request_target
keeps the workflow consistent with the caller. No further issues spotted..github/workflows/bencher.yaml (1)
44-49
: Consistent event handlingThe script now checks for
pull_request_target
, matching other workflows. Logic remains intact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
deploy/nfpm/package-post-install.sh (1)
256-256
: Quote the password to avoid unintended word-splitting / globbing
HOPRD_PASSWORD
is unlikely to contain spaces, but quoting it costs nothing and prevents subtle bugs if that assumption ever changes.- node_address=$(IDENTITY_PASSWORD=${HOPRD_PASSWORD} hopli identity read -d /etc/hoprd/ | grep "Identity addresses:" | awk -F '[\\[\\]]' '{print $2}') + node_address=$(IDENTITY_PASSWORD="${HOPRD_PASSWORD}" hopli identity read -d /etc/hoprd/ | grep "Identity addresses:" | awk -F '[\\[\\]]' '{print $2}')Minor, yet improves robustness.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
deploy/nfpm/package-post-install.sh
(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: tolbrino
PR: hoprnet/hoprnet#6366
File: hoprd/rest-api/src/token_authentication.rs:48-51
Timestamp: 2024-07-11T20:14:37.286Z
Learning: The TODO comment in the `authenticate` function in `hoprd/rest-api/src/token_authentication.rs` regarding the JavaScript workaround for authentication headers will be addressed in future releases.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6366
File: hoprd/rest-api/src/token_authentication.rs:48-51
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The TODO comment in the `authenticate` function in `hoprd/rest-api/src/token_authentication.rs` regarding the JavaScript workaround for authentication headers will be addressed in future releases.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.702Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
deploy/nfpm/package-post-install.sh (2)
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-10-09T06:16:18.170Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-09-30T22:09:43.172Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
⏰ Context from checks skipped due to timeout of 90000ms (10)
- GitHub Check: hoprd / docker
- GitHub Check: hopli / docker
- GitHub Check: Docs / Rust
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Audit / Audit
- GitHub Check: Lint / Lint
- GitHub Check: Build Candidate Binaries (hopli)
- GitHub Check: Build Candidate Binaries (hoprd)
- GitHub Check: tests-unit-nightly
- GitHub Check: tests-unit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🧹 Nitpick comments (7)
deploy/nfpm/README.md (1)
4-6
: Fix typos in supported lists.
operativa
→operating
,readhat
→redhat
. Small but glaring and can confuse readers using copy-paste searches.- - Supported operativa systems: `linux` and `darwin` - - Supported linux distributions: `debian`, `readhat` and `archlinux` + - Supported operating systems: `linux` and `darwin` + - Supported Linux distributions: `debian`, `redhat` and `archlinux`README.md (1)
147-153
: Minor wording / grammar fixes in Red Hat section.
# You can the Safe address …
→# You can get the Safe address …
Also “Module addres” → “Module address”.deploy/nfpm/install-hoprd-package.sh (2)
11-27
: Non-uniform privilege escalation & Debian install command.
apt install
is not recommended in scripts; useapt-get install
for stability.- Only the rpm branch uses
sudo
; the others assume root. Pick one strategy to avoid surprises.- deb) - apt-get update - apt install -y "/tmp/hoprd.${DISTRIBUTION}" + deb) + sudo apt-get update + sudo apt-get install -y "/tmp/hoprd.${DISTRIBUTION}"Repeat
sudo
(or drop it everywhere if the script always runs as root).
29-35
: Early failure visibility.If
systemctl
is unavailable (e.g. minimal container), the script exits with false negative. Consider checkingcommand -v systemctl
first and skipping the health check when absent.deploy/nfpm/test-package-tool.sh (3)
5-10
: Consider making GCP configuration more flexible.The hard-coded GCP project and network settings may limit reusability across different environments. Consider making these configurable via environment variables or parameters.
-PROJECT_ID="hopr-staging" -ZONE="europe-west3-a" -MACHINE_TYPE_x86="e2-medium" -MACHINE_TYPE_ARM="t2a-standard-2" -NETWORK="vpc-network" -SUBNET="private-subnet" +PROJECT_ID="${HOPRD_GCP_PROJECT_ID:-hopr-staging}" +ZONE="${HOPRD_GCP_ZONE:-europe-west3-a}" +MACHINE_TYPE_x86="${HOPRD_GCP_MACHINE_TYPE_X86:-e2-medium}" +MACHINE_TYPE_ARM="${HOPRD_GCP_MACHINE_TYPE_ARM:-t2a-standard-2}" +NETWORK="${HOPRD_GCP_NETWORK:-vpc-network}" +SUBNET="${HOPRD_GCP_SUBNET:-private-subnet}"
34-38
: Improve architecture handling logic.The architecture comparison logic could be more robust and clearer. Consider using a case statement for better maintainability.
- if [ "${ARCHITECTURE}" == "aarch64" ]; then - machine_type="$MACHINE_TYPE_ARM" - else - machine_type="$MACHINE_TYPE_x86" - fi + case "${ARCHITECTURE}" in + aarch64-linux) + machine_type="$MACHINE_TYPE_ARM" + ;; + x86_64-linux) + machine_type="$MACHINE_TYPE_x86" + ;; + *) + echo "Unsupported architecture: ${ARCHITECTURE}" + exit 1 + ;; + esac
128-129
: Update error message to include all supported actions.The error message only mentions 'create' and 'delete' but the script supports 'copy' and 'install' actions as well.
- echo "Invalid action specified. Use 'create' or 'delete'." + echo "Invalid action specified. Use 'create', 'copy', 'install', or 'delete'."
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/build-binaries.yaml
(1 hunks).github/workflows/build.yaml
(0 hunks).github/workflows/close-release.yaml
(1 hunks).github/workflows/package.yaml
(3 hunks)README.md
(2 hunks)deploy/nfpm/README.md
(1 hunks)deploy/nfpm/install-hoprd-package.sh
(1 hunks)deploy/nfpm/nfpm.yaml
(2 hunks)deploy/nfpm/package-post-install.sh
(2 hunks)deploy/nfpm/test-package-tool.sh
(1 hunks)justfile
(1 hunks)
💤 Files with no reviewable changes (1)
- .github/workflows/build.yaml
✅ Files skipped from review due to trivial changes (1)
- .github/workflows/close-release.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
- .github/workflows/build-binaries.yaml
- deploy/nfpm/package-post-install.sh
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
.github/workflows/package.yaml (10)
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7280
File: .github/workflows/checks-pre-commit.yaml:30-36
Timestamp: 2025-07-01T13:09:08.718Z
Learning: In the hoprnet repository's GitHub Actions workflow architecture, ausias-armesto prefers to centralize input resolution and fallback logic in the main checks.yaml workflow, which then calls individual reusable workflows like checks-pre-commit.yaml. The individual workflows are designed to be called primarily through the main workflow rather than directly, so fallback values in the individual workflows may be considered redundant.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6502
File: flake.nix:12-14
Timestamp: 2024-09-30T08:27:16.849Z
Learning: The project already has CI workflows that automatically check for compatibility issues when updating dependencies, including compiling smart contracts with new Solidity versions, running the test suite, checking for compiler warnings or deprecation notices, and reviewing changelogs for breaking changes.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6502
File: flake.nix:12-14
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The project already has CI workflows that automatically check for compatibility issues when updating dependencies, including compiling smart contracts with new Solidity versions, running the test suite, checking for compiler warnings or deprecation notices, and reviewing changelogs for breaking changes.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:28-28
Timestamp: 2025-06-19T10:07:29.649Z
Learning: In GitHub Actions reusable workflows, the github.event_name context may inherit from the parent workflow rather than being set to 'workflow_call', allowing conditions like 'github.event_name == 'pull_request'' to work correctly when the parent workflow was triggered by a pull_request event.
justfile (2)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
deploy/nfpm/install-hoprd-package.sh (5)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
deploy/nfpm/nfpm.yaml (11)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: common/primitive-types/Cargo.toml:24-24
Timestamp: 2024-11-01T09:32:55.651Z
Learning: In the hoprnet project, dependency versions are defined in the workspace Cargo.toml, so it's not necessary to specify them in individual package Cargo.toml files.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6576
File: hoprd/rest-api/src/lib.rs:251-251
Timestamp: 2024-10-28T14:29:25.598Z
Learning: In the HOPRd project, the path `/api-docs2/openapi.json` is used instead of `/api-docs/openapi.json` to avoid conflicts.
deploy/nfpm/test-package-tool.sh (2)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
README.md (11)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
deploy/nfpm/README.md (8)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
🪛 Shellcheck (0.10.0)
deploy/nfpm/test-package-tool.sh
[warning] 31-31: Declare and assign separately to avoid masking return values.
(SC2155)
🪛 markdownlint-cli2 (0.17.2)
README.md
163-163: Bare URL used
(MD034, no-bare-urls)
🪛 LanguageTool
deploy/nfpm/README.md
[uncategorized] ~11-~11: Possible missing comma found.
Context: ... ## Generate package ### Development Locally the package can be generated by executi...
(AI_HYDRA_LEO_MISSING_COMMA)
⏰ Context from checks skipped due to timeout of 90000ms (6)
- GitHub Check: hoprd / docker
- GitHub Check: Lint / Lint
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Build Candidate Binaries (hoprd)
- GitHub Check: tests-unit-nightly
- GitHub Check: tests-unit
🔇 Additional comments (6)
.github/workflows/package.yaml (1)
117-122
: Upload path uses non-standard extension.archlinux
.Unless
just package
purposely renames the file, this path will not exist and the upload will silently upload an empty artefact. Confirm the real filename produced by nfpm.README.md (1)
161-174
: Incorrect Arch Linux uninstall command & bare URL.
pacman del hoprd
is not valid. Usepacman -Rns hoprd
(or-R
for simple remove).- Consider wrapping the bare URL (line 163) in
<>
to silence markdownlint MD034.- pacman del hoprd + sudo pacman -Rns hoprd⛔ Skipped due to learnings
Learnt from: ausias-armesto PR: hoprnet/hoprnet#7251 File: .github/workflows/package.yaml:66-68 Timestamp: 2025-06-19T10:10:00.368Z Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto PR: hoprnet/hoprnet#7251 File: .github/workflows/package.yaml:0-0 Timestamp: 2025-06-19T11:37:27.410Z Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto PR: hoprnet/hoprnet#7251 File: deploy/nfpm/install.sh:68-68 Timestamp: 2025-06-19T10:11:36.259Z Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
deploy/nfpm/nfpm.yaml (1)
30-32
: Service file destination may break on Debian/Ubuntu.Systemd searches
/lib/systemd/system
(Debian/Ubuntu) and/usr/lib/systemd/system
(Arch/Fedora). nfpm does not relocate automatically for deb packages, so the service might not be enabled on Debian.Would it be safer to install to
/lib/systemd/system
(works everywhere) or add a deb-specific override?justfile (2)
52-52
: LGTM: ArchLinux support added correctly.The change from
apk
toarchlinux
packager aligns perfectly with the PR objective to add ArchLinux package support.
54-61
: Well-implemented package testing automation.The new
test-package
recipe provides comprehensive automated testing with:
- Proper cleanup via EXIT trap
- Complete logging to distribution-specific files
- Sequential execution of create, copy, install operations
- Clear success messaging
This integrates well with the new GCP VM testing infrastructure.
deploy/nfpm/test-package-tool.sh (1)
12-28
: Well-structured distribution mapping.The
get_vm_image
function correctly maps package formats to appropriate GCP VM image families for Debian, CentOS, and ArchLinux.
…oprnet into ausias/alpine-packages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (3)
deploy/nfpm/test-package-tool.sh (2)
31-33
: SC2155: split declaration & assignment forimage
ShellCheck warns that combining declaration and command substitution can mask the command’s exit status. Declare first, assign next.(Identical to a previous comment you acknowledged.)
81-83
: Remote install command vulnerable to word-splitting & needs env-var validation
- Parameters (
${HOPRD_PASSWORD}
…) are expanded locally and transmitted unquoted, so spaces or special chars will break the SSH command line.- The script never checks that these env vars are set (raised in an earlier review).
-gcloud compute ssh --tunnel-through-iap --project=${PROJECT_ID} --zone=${ZONE} "${INSTANCE_NAME}" --command="sudo bash /tmp/install-hoprd-package.sh ${DISTRIBUTION} ${HOPRD_PASSWORD} ${HOPRD_SAFE_ADDRESS} ${HOPRD_MODULE_ADDRESS} ${HOPRD_PROVIDER}" +required_vars=(HOPRD_PASSWORD HOPRD_SAFE_ADDRESS HOPRD_MODULE_ADDRESS HOPRD_PROVIDER) +for v in "${required_vars[@]}"; do + [ -z "${!v:-}" ] && { echo "Error: \$${v} not set"; exit 1; } +done +gcloud compute ssh --tunnel-through-iap --project="${PROJECT_ID}" --zone="${ZONE}" "${INSTANCE_NAME}" \ + --command="sudo bash /tmp/install-hoprd-package.sh '${DISTRIBUTION}' '${HOPRD_PASSWORD}' '${HOPRD_SAFE_ADDRESS}' '${HOPRD_MODULE_ADDRESS}' '${HOPRD_PROVIDER}'"deploy/nfpm/README.md (1)
19-20
: Typo:holi
should behopli
Same issue was flagged previously; replace
holi
withhopli
in both blocks.-nix build -L .#holi-x86_64-linux +nin build -L .#hopli-x86_64-linux-nix build -L .#holi-aarch64-linux +nin build -L .#hopli-aarch64-linuxAlso applies to: 29-30
🧹 Nitpick comments (4)
deploy/nfpm/test-package-tool.sh (2)
41-52
: Quote variable expansions ingcloud
call to prevent word-splittingSeveral unquoted expansions (
${PROJECT_ID}
,${ZONE}
,${machine_type}
…) may break if any variable ever contains spaces (e.g., a network name like “vpc prod”).
Wrap them in double quotes; gcloud options are safe with quotes.
126-128
: Help text out-of-sync with supported actionsDefault branch says “Use 'create' or 'delete'” but the script also supports
copy
andinstall
. Update to avoid misleading users.- echo "Invalid action specified. Use 'create' or 'delete'." + echo "Invalid action specified. Use 'create', 'copy', 'install', or 'delete'."deploy/nfpm/README.md (2)
6-7
: Spelling & distro name errors
- “operativa systems” → “operating systems”
- “readhat” → “redhat”
-- Supported operativa systems: `linux` and `darwin` -- Supported linux distributions: `debian`, `readhat` and `archlinux` +- Supported operating systems: `linux` and `darwin` +- Supported Linux distributions: `debian`, `redhat` and `archlinux`
13-14
: Missing comma after introductory clauseLanguageTool points out a minor punctuation nit:
-Locally the package can be generated by executing just commands: +Locally, the package can be generated by executing just commands:
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
deploy/nfpm/README.md
(1 hunks)deploy/nfpm/test-package-tool.sh
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
deploy/nfpm/test-package-tool.sh (10)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:0-0
Timestamp: 2024-11-26T17:47:21.777Z
Learning: In `.github/workflows/build-binaries.yaml`, when writing shell scripts in GitHub Actions workflows, the user prefers to set environment variables individually rather than grouping them together.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-10-09T06:16:18.170Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-09-30T22:09:43.172Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
deploy/nfpm/README.md (8)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6651
File: nix/rust-package.nix:35-39
Timestamp: 2024-11-20T08:43:53.099Z
Learning: In the `nix/rust-package.nix` file, replacing hardcoded interpreter paths with `${stdenv.hostPlatform.platform.dynamicLinker}` doesn't work as intended, so hardcoded interpreter paths are necessary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
🪛 LanguageTool
deploy/nfpm/README.md
[uncategorized] ~12-~12: Possible missing comma found.
Context: ... ## Generate package ### Development Locally the package can be generated by executi...
(AI_HYDRA_LEO_MISSING_COMMA)
⏰ Context from checks skipped due to timeout of 90000ms (9)
- GitHub Check: tests-unit-nightly
- GitHub Check: Build Candidate Binaries (hoprd)
- GitHub Check: tests-unit
- GitHub Check: Build Candidate Binaries (hopli)
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Lint / Lint
- GitHub Check: Audit / Audit
- GitHub Check: hoprd / docker
- GitHub Check: hopli / docker
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
deploy/nfpm/README.md (2)
5-7
: Fix typos and pluralisation in the feature-matrix list
operativa systems
→operating systems
readhat
→redhat
(or the official “Red Hat”)
Architecture supported:
→Architectures supported:
-- Architecture supported: `x86_64` and `aarch64` -- Supported operativa systems: `linux` and `darwin` -- Supported linux distributions: `debian`, `readhat` and `archlinux` +- Architectures supported: `x86_64` and `aarch64` +- Supported operating systems: `linux` and `darwin` +- Supported Linux distributions: `debian`, `redhat` and `archlinux`
13-14
: Add a comma after the leading adverbThe sentence reads smoother (and satisfies the linter hint) with a comma after “Locally”.
-Locally the package can be generated by executing just commands: +Locally, the package can be generated by executing `just` commands:
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.github/workflows/package.yaml
(3 hunks)deploy/nfpm/README.md
(1 hunks)deploy/nfpm/install-hoprd-package.sh
(1 hunks)deploy/nfpm/test-package-tool.sh
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- .github/workflows/package.yaml
- deploy/nfpm/install-hoprd-package.sh
- deploy/nfpm/test-package-tool.sh
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
deploy/nfpm/README.md (15)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6651
File: nix/rust-package.nix:35-39
Timestamp: 2024-11-20T08:43:53.099Z
Learning: In the `nix/rust-package.nix` file, replacing hardcoded interpreter paths with `${stdenv.hostPlatform.platform.dynamicLinker}` doesn't work as intended, so hardcoded interpreter paths are necessary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
🪛 LanguageTool
deploy/nfpm/README.md
[uncategorized] ~12-~12: Possible missing comma found.
Context: ... ## Generate package ### Development Locally the package can be generated by executi...
(AI_HYDRA_LEO_MISSING_COMMA)
⏰ Context from checks skipped due to timeout of 90000ms (10)
- GitHub Check: hoprd / docker
- GitHub Check: hopli / docker
- GitHub Check: tests-unit-nightly
- GitHub Check: Build Candidate Binaries (hopli)
- GitHub Check: Build Candidate Binaries (hoprd)
- GitHub Check: tests-unit
- GitHub Check: Lint / Lint
- GitHub Check: Audit / Audit
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Pre-commit / Pre-commit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
README.md (2)
25-26
: Minor ToC polishing for consistency
Both new bullets use title-case (“Red Hat”, “Archlinux”), while the existing Debian item is lowercase (“debian”). Consider normalising the casing (or placing them alphabetically) to keep the table of contents tidy.
148-151
: Typos in explanatory comment
The sentence is missing words and has a typo (“addres”). It should read “You can get the Safe address and the Module address …”.-# You can the Safe address and the Module addres from https://hub.hoprnet.org +# You can get the Safe address and the Module address from https://hub.hoprnet.org
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
README.md
(2 hunks)deploy/nfpm/hoprd.initd
(0 hunks)justfile
(1 hunks)
💤 Files with no reviewable changes (1)
- deploy/nfpm/hoprd.initd
🚧 Files skipped from review as they are similar to previous changes (1)
- justfile
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
README.md (11)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
🪛 markdownlint-cli2 (0.17.2)
README.md
164-164: Bare URL used
(MD034, no-bare-urls)
⏰ Context from checks skipped due to timeout of 90000ms (5)
- GitHub Check: tests-smart-contracts
- GitHub Check: tests-unit-nightly
- GitHub Check: hoprd / docker
- GitHub Check: hopli / docker
- GitHub Check: Lint / Lint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
README.md (1)
179-181
: Uninstall command still uses invalid pacman sub-command
The previous review already flagged this; the line is still unchanged.-sudo pacman del hoprd +sudo pacman -Rns hoprd
pacman del
is not a valid operation and will fail. Replace it with-Rns
(remove, include orphans & configs).
🧹 Nitpick comments (1)
README.md (1)
147-152
: Fix grammar & typos in environment-setup commentsTwo issues repeat in both the Red Hat and Arch Linux snippets:
- “You can the Safe address and the Module addres …” – missing verb and misspelled address.
- “addres” → “address”.
-# You can the Safe address and the Module addres from https://hub.hoprnet.org +# You can get the Safe address and the Module address from https://hub.hoprnet.orgPlease apply the same correction in both blocks to keep the installation docs professional and clear.
Also applies to: 169-173
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
README.md
(2 hunks)deploy/nfpm/install-hoprd-package.sh
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- deploy/nfpm/install-hoprd-package.sh
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
README.md (16)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
🪛 markdownlint-cli2 (0.17.2)
README.md
164-164: Bare URL used
(MD034, no-bare-urls)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (5)
deploy/nfpm/test-package-tool.sh (1)
60-62
: Stale comment – automatic deletion was removedThe header still claims “Automatically delete the VM after 1 hour” but no code
implements this anymore. Update or drop the comment to avoid confusion.README.md (1)
124-126
: Minor grammar & linter nit“on specific distribution” → “on a specific distribution”.
Also consider wrapping the bare URL in angle brackets or markdown link to satisfy MD034.deploy/nfpm/README.md (3)
5-8
: Typos in capability list
- “operativa” → “operating”
- “readhat” → “redhat”
These appear in user-visible documentation.
51-57
: Wrong variable name: “addres”
Module addres
is missing an “s”. Same typo appears in CentOS block above.
82-88
: Spelling & clarity“identifiy file” → “identity file”.
Also applies to: 103-109
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
.github/workflows/package.yaml
(2 hunks)README.md
(2 hunks)deploy/compose/prometheus/metricspusher.sh
(1 hunks)deploy/nfpm/README.md
(1 hunks)deploy/nfpm/install-hoprd-package.sh
(1 hunks)deploy/nfpm/test-package-tool.sh
(1 hunks)justfile
(1 hunks)scripts/notify-matrix.sh
(0 hunks)
💤 Files with no reviewable changes (1)
- scripts/notify-matrix.sh
✅ Files skipped from review due to trivial changes (1)
- deploy/compose/prometheus/metricspusher.sh
🚧 Files skipped from review as they are similar to previous changes (3)
- justfile
- deploy/nfpm/install-hoprd-package.sh
- .github/workflows/package.yaml
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6630
File: crypto/packet/src/por.rs:84-84
Timestamp: 2024-11-13T17:56:37.536Z
Learning: In PR #6630, the changes include the removal of ticket validation from the last hop and fixes for Index Offset handling as specified in the PR objectives.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6886
File: nix/rust-package.nix:84-84
Timestamp: 2025-02-25T00:35:33.437Z
Learning: When transitioning from vendored dependencies to a private proxy registry in Rust projects, GitHub Actions workflows need to be refactored to accommodate the new update strategy, particularly workflows handling dependency updates like renovate-cargo-update.yaml.
deploy/nfpm/test-package-tool.sh (21)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:0-0
Timestamp: 2024-11-26T17:47:21.777Z
Learning: In `.github/workflows/build-binaries.yaml`, when writing shell scripts in GitHub Actions workflows, the user prefers to set environment variables individually rather than grouping them together.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-10-09T06:16:18.170Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6511
File: tests/test_integration.py:204-225
Timestamp: 2024-09-30T22:09:43.172Z
Learning: In test code, it's acceptable to use sensitive environment variables like `PRIVATE_KEY` and `IDENTITY_PASSWORD` without additional security measures, as they are testing values.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6772
File: scripts/generate-python-sdk.sh:1-10
Timestamp: 2025-01-15T16:14:10.492Z
Learning: In shell scripts, make paths configurable by using environment variables with default values using parameter expansion (e.g., `${VAR:-default}`). This allows users to override the default behavior without modifying the script.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7280
File: .github/workflows/checks-pre-commit.yaml:30-36
Timestamp: 2025-07-01T13:09:08.718Z
Learning: In the hoprnet repository's GitHub Actions workflow architecture, ausias-armesto prefers to centralize input resolution and fallback logic in the main checks.yaml workflow, which then calls individual reusable workflows like checks-pre-commit.yaml. The individual workflows are designed to be called primarily through the main workflow rather than directly, so fallback values in the individual workflows may be considered redundant.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/build-dappnode.yaml:40-40
Timestamp: 2025-05-27T16:23:08.868Z
Learning: In the hoprnet repository's GitHub workflows, labels are passed from build.yaml to build-dappnode.yaml with a trailing comma using `format('{0},', join(github.event.pull_request.labels.*.name, ','))`. Therefore, the condition checks in build-dappnode.yaml correctly use `format('package:{0},', inputs.dappnode_repository)` with a trailing comma to match the exact label format and prevent false positives.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7231
File: flake.nix:599-608
Timestamp: 2025-06-11T13:34:45.385Z
Learning: The repository intentionally relies on Commitizen’s default configuration; absence of a `.cz.*` file or `[tool.commitizen]` section is expected and should not be flagged in future reviews.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6366
File: ethereum/contracts/contracts-addresses.json:0-0
Timestamp: 2024-07-11T10:39:11.293Z
Learning: The user has asked to add a Git pre-commit hook to the PR to prevent changes to the `contracts-addresses.json` file.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6366
File: ethereum/contracts/contracts-addresses.json:0-0
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The user has asked to add a Git pre-commit hook to the PR to prevent changes to the `contracts-addresses.json` file.
README.md (17)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: README.md:166-171
Timestamp: 2025-06-30T10:14:33.666Z
Learning: The maintainer ausias-armesto prefers to keep environment variable configuration steps directly within installation instructions rather than separating them into different sections, as demonstrated with the Alpine package manager installation section in the README.md.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#7142
File: README.md:154-157
Timestamp: 2025-05-22T21:00:05.773Z
Learning: The HOPR codebase follows a specific naming convention where CLI flags use camelCase (e.g., --noKeepLogs), Rust struct fields use snake_case (e.g., no_keep_logs), and environment variables use uppercase with underscores (e.g., HOPRD_INDEXER_DISABLE_KEEP_LOGS).
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6576
File: hoprd/rest-api/src/lib.rs:251-251
Timestamp: 2024-10-28T14:29:25.598Z
Learning: In the HOPRd project, the path `/api-docs2/openapi.json` is used instead of `/api-docs/openapi.json` to avoid conflicts.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6307
File: deploy/compose/.env.example:13-17
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The HOPR admin service functions as a proxy nginx service and does not require a high memory limit.
deploy/nfpm/README.md (18)
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:66-68
Timestamp: 2025-06-19T10:10:00.368Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), the `just package` command creates a single distribution package that includes all binaries (hoprd and hopli) for the target architecture. The workflow downloads both hoprd and hopli artifacts, extracts them to ./dist/bin, and nfpm packages both binaries together into one .deb, .rpm, or .apk file per target.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: .github/workflows/package.yaml:0-0
Timestamp: 2025-06-19T11:37:27.410Z
Learning: In the HOPR packaging workflow (.github/workflows/package.yaml), both hoprd and hopli binaries are downloaded and used together in a single package creation process. The `just package` command creates one distribution package (.deb, .rpm, or .apk) per target that contains both binaries, which is why the workflow only uploads one package per format rather than separate packages for each binary.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6576
File: hoprd/rest-api/src/lib.rs:251-251
Timestamp: 2024-10-28T14:29:25.598Z
Learning: In the HOPRd project, the path `/api-docs2/openapi.json` is used instead of `/api-docs/openapi.json` to avoid conflicts.
Learnt from: tolbrino
PR: hoprnet/hoprnet#7070
File: nix/testShell.nix:22-23
Timestamp: 2025-04-15T19:24:23.570Z
Learning: In the HOPR project, the `autoPatchelf` command from Nix can handle the case where the target directory (like ./.venv) doesn't exist, so no additional directory existence check is needed before running it.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6972
File: .github/workflows/audit-pr.yaml:25-32
Timestamp: 2025-04-02T11:36:56.281Z
Learning: For HOPR projects, auditing tools like cargo-audit should be managed through the Nix environment rather than installed separately to ensure consistency and reproducibility.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6651
File: nix/rust-package.nix:35-39
Timestamp: 2024-11-20T08:43:53.099Z
Learning: In the `nix/rust-package.nix` file, replacing hardcoded interpreter paths with `${stdenv.hostPlatform.platform.dynamicLinker}` doesn't work as intended, so hardcoded interpreter paths are necessary.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6545
File: transport/p2p/src/swarm.rs:491-494
Timestamp: 2024-10-11T10:43:34.869Z
Learning: When reviewing revert pull requests in the `hoprnet/hoprnet` repository, avoid making code recommendations or suggestions.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:34-43
Timestamp: 2025-06-30T08:33:20.991Z
Learning: In the hoprnet repository, the maintainer ausias-armesto prefers to add commit types to the semantic PR validation workflow incrementally as needed, rather than preemptively adding all possible types. This conservative approach keeps the workflow configuration lean.
Learnt from: mjadach-iv
PR: hoprnet/hoprnet#6663
File: deploy/compose/.env.sample:57-57
Timestamp: 2024-11-21T13:58:22.345Z
Learning: In code reviews for this project, focus comments on the changes made in the PR, and avoid discussing unrelated code.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7251
File: deploy/nfpm/install.sh:68-68
Timestamp: 2025-06-19T10:11:36.259Z
Learning: In the HOPR project, the user ausias-armesto prefers interactive installation prompts that give users full control over configuration rather than automated defaults, especially for initial versions of installation scripts.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#6681
File: .github/workflows/build-binaries.yaml:61-97
Timestamp: 2024-11-26T17:47:32.384Z
Learning: The code in the 'Set environment variables' step in `.github/workflows/build-binaries.yaml` is obsolete and should not be reviewed in future code reviews.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-10-09T06:16:18.170Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: NumberFour8
PR: hoprnet/hoprnet#6244
File: transport/protocol/src/ack/processor.rs:31-32
Timestamp: 2024-07-28T07:26:06.634Z
Learning: The GitHub issue to standardize the usage of `METRIC_TICKETS_COUNT` across the codebase was successfully created and can be tracked at https://github.com/hoprnet/hoprnet/issues/6245.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7277
File: .github/workflows/package.yaml:91-102
Timestamp: 2025-07-02T15:47:44.111Z
Learning: In the hoprnet repository packaging workflow (.github/workflows/package.yaml), the "Test Package centos" step correctly uses `just test-package rpm` because CentOS is Red Hat-based and uses RPM package format. Additionally, ArchLinux packages are built with a `.archlinux` file extension but uploaded as artifacts with `.pkg.tar.zst` naming convention - this is the intended design and not a mismatch.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6345
File: hopr-socks/hopr-socks-server/Cargo.toml:20-20
Timestamp: 2024-06-21T20:51:35.871Z
Learning: All code and packages in the `hoprnet` project should use the workspace level dependency of `reqwest`.
Learnt from: tolbrino
PR: hoprnet/hoprnet#6399
File: db/entity/Cargo.toml:4-4
Timestamp: 2024-10-21T14:58:45.665Z
Learning: In the HOPR project, crate versions are intentionally kept separate and do not need to be aligned across related packages.
Learnt from: Teebor-Choka
PR: hoprnet/hoprnet#6546
File: transport/p2p/src/lib.rs:224-228
Timestamp: 2024-10-11T13:09:01.392Z
Learning: In the HOPR project, basic libp2p transport configurations should be configurable via environment variables.
Learnt from: ausias-armesto
PR: hoprnet/hoprnet#7191
File: .github/workflows/open-pr.yaml:83-95
Timestamp: 2025-06-30T08:36:01.731Z
Learning: The self-hosted-hoprnet-small runners in the hoprnet repository have GitHub CLI (gh) pre-installed and available for use in workflows.
🪛 LanguageTool
README.md
[uncategorized] ~126-~126: You might be missing the article “a” here.
Context: ...t/hoprnet/releases/latest To install on specific distribution, see [detailed information...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
deploy/nfpm/README.md
[uncategorized] ~68-~68: Possible missing comma found.
Context: ...o pacman del hoprd ``` ## Development Locally the package can be generated by executi...
(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
README.md
125-125: Bare URL used
(MD034, no-bare-urls)
deploy/nfpm/README.md
11-11: Bare URL used
(MD034, no-bare-urls)
27-27: Bare URL used
(MD034, no-bare-urls)
48-48: Bare URL used
(MD034, no-bare-urls)
⏰ Context from checks skipped due to timeout of 90000ms (7)
- GitHub Check: hopli / docker
- GitHub Check: hoprd / docker
- GitHub Check: tests-unit
- GitHub Check: Build Candidate Binaries (hoprd)
- GitHub Check: tests-unit-nightly
- GitHub Check: Zizmor / Zizmor
- GitHub Check: Lint / Lint
Improves package pipeline by adding support to ArchLinux and also provides testing mechanisms.