Skip to content

Fix: deploy documentation workflow#3101

Merged
ckeshava merged 15 commits into
XRPLF:mainfrom
ckeshava:fixDocsGen
Oct 18, 2025
Merged

Fix: deploy documentation workflow#3101
ckeshava merged 15 commits into
XRPLF:mainfrom
ckeshava:fixDocsGen

Conversation

@ckeshava
Copy link
Copy Markdown
Collaborator

@ckeshava ckeshava commented Oct 3, 2025

High Level Overview of Change

The current deploy-docs-pages Github workflow does not function correctly. The docs at js.xrpl.org have not been updated for the last few months. This PR fixes the conflicting conditional checks in this workflow.

Presently, the PR is configured to deploy documentation, only upon tag pushes. The tags must conform to the regex: ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$. Furthermore, the developers need to specify the exact tag name under the Github-Pages: Deployment Tag Protection Rules Section (inside the Github repository settings)

There is an alternative solution: Every commit into the main branch can be configured to deploy the documentation. However, developers cannot indicate the pre-release/release-version of the documentation. The docs will reflect the state of affairs in the main branch, not the latest released version. If the team prefers this solution, let me know.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (non-breaking change that only restructures code)
  • Tests (You added tests for code that already exists, or your new feature included in this PR)
  • Documentation Updates
  • Release

Did you update HISTORY.md?

  • Yes
  • No, this change does not impact library users

Test Plan

This workflow has been tested on my personal fork of the xrpl.js repository.

  • This is an example workflow where documentation is correctly deployed. The below picture shows the Deployment protection rules on my personal fork of the xrpl.js repository. Future release tags will need to be manually added into this list.
image

This is an example of a failed workflow owing to the Tag-Deployment-Rule violation.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Oct 3, 2025

Warning

Rate limit exceeded

@ckeshava has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 5 minutes and 22 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e654a5a and 4c14207.

📒 Files selected for processing (2)
  • .github/workflows/release.yml (1 hunks)
  • CONTRIBUTING.md (1 hunks)

Walkthrough

Extracted documentation generation and Pages deployment from the main NodeJS workflow into a new reusable workflow, added a release job that invokes it, updated CONTRIBUTING.md to document tag-trigger behavior, and removed the generate/deploy jobs from the original nodejs.yml.

Changes

Cohort / File(s) Summary of change
CI: NodeJS workflow
.github/workflows/nodejs.yml
Removed generate-documentation and deploy-docs-pages jobs; preserved existing browser job steps (including Stop docker container) and other jobs.
CI: New reusable workflow
.github/workflows/generate-documentation.yml
Added a reusable workflow_call that checks out a specified git_ref, sets up Node.js 22.x, caches deps, builds, runs docgen, uploads pages artifact, and exposes a deployment job to publish to GitHub Pages with required permissions and environment.
CI: Release workflow
.github/workflows/release.yml
Added generate-documentation job that calls the new reusable workflow (passes git_ref, gated on npmjs_dist_tag == 'latest') and sets appropriate permissions; wired after existing get_version/release jobs.
Docs: contributor guide
CONTRIBUTING.md
Updated to state doc generation is performed by the generate-documentation workflow and that pushing tags like xrpl@A.B.C triggers generate-documentation and deploy-docs-pages to update js.xrpl.org (notes added in Step 14 and Release).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • Patel-Raj11
  • khancode
  • mvadari

Poem

I hop through CI with nimble paws,
I bundle docs and mind the laws,
A tag pops up — I send them far,
Pages shine bright like carrot-star 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "Fix: deploy documentation workflow" is directly related to the main objective of this changeset. The PR addresses a nonfunctional documentation deployment workflow that has prevented js.xrpl.org from updating for several months by reorganizing workflow jobs and fixing conflicting conditional checks. The title is concise, specific, and clearly communicates that this is a fix to the documentation deployment process, making it clear to reviewers scanning the history what the primary change entails.
Description Check ✅ Passed The pull request description follows the required template structure and includes all essential sections: High Level Overview of Change (explaining the broken workflow and conflicting conditions), Context of Change (detailing the regex pattern requirements and alternative deployment approach), Type of Change (marked as "Documentation Updates"), HISTORY.md confirmation (marked as "No, this change does not impact library users"), and a comprehensive Test Plan with example workflow runs and deployment protection rule screenshots. The description provides sufficient technical context and testing evidence to support the changes being made.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a 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

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ba23d95 and b20ac6a.

📒 Files selected for processing (1)
  • .github/workflows/nodejs.yml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: mvadari
PR: XRPLF/xrpl.js#2788
File: .github/workflows/nodejs.yml:25-25
Timestamp: 2024-09-26T21:14:56.813Z
Learning: In `.github/workflows/nodejs.yml`, the `build-and-lint` job's actions `actions/setup-node` and `actions/cache` are updated to `v4`.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: integration (20.x)
  • GitHub Check: browser (22.x)
  • GitHub Check: unit (22.x)
  • GitHub Check: unit (20.x)
  • GitHub Check: integration (22.x)
  • GitHub Check: build-and-lint (22.x)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan

Comment thread .github/workflows/nodejs.yml Outdated
Comment thread .github/workflows/nodejs.yml Outdated
- name: Detect version tag
id: check-tag
run: |
if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ckeshava

  1. What steps does one needs to take to generate and upload the docs? Do they run nodejs.yml workflow manually on the tag that release pipeline has generated post a release?
  2. Release pipeline will generate the tags like xrpl@4.4.2. Will the regex match even if I run the workflow manually on it?
  3. The workflow seems to be failing for each pull request. If we plan to trigger this manually on the tag that release pipeline generates, should we move this workflow out of nodejs.yml into a separate workflow like jsdoc.yml and fix the REGEX to check for the release tag?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What steps does one needs to take to generate and upload the docs? Do they run nodejs.yml workflow manually on the tag that release pipeline has generated post a release?

Push a tag, no other action is needed from your end. No, running the workflow manually will not aid in updating the docs. This workflow will be triggered upon tag pushes.

Release pipeline will generate the tags like xrpl@4.4.2. Will the regex match even if I run the workflow manually on it?

No. I wrote this regex before the updates to the xrpl.js release process. Should I update it to match ^refs/heads/release[-/] ? Presently, it matches values such as v1.2.3.

The workflow seems to be failing for each pull request. If we plan to trigger this manually on the tag that release pipeline generates, should we move this workflow out of nodejs.yml into a separate workflow like jsdoc.yml and fix the REGEX to check for the release tag?

The workflow is failing because I have raised this PR from my personal fork. Hence it fails the environment publish protection rules. It will work correctly if a developer pushes a tag into the main branch of the repository.

Please check the "Test Plan" section of this Github PR. I have given examples of both passing and failing workflows in that section.

If we plan to trigger this manually on the tag that release pipeline generates, should we move this workflow out of nodejs.yml into a separate workflow like jsdoc.yml and fix the REGEX to check for the release tag?
I can update the regex. However, what is the benefit of moving this workflow into a seperate file?

There is no need to run the workflow manually, it is triggered on every tag push.

Copy link
Copy Markdown
Collaborator

@Patel-Raj11 Patel-Raj11 Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is failing because I have raised this PR from my personal fork. Hence it fails the environment publish protection rules. It will work correctly if a developer pushes a tag into the main branch of the repository.

How about if a developer raises a PR from a branch that is in xrpl.js repo itself? Will the nodejs.yml workflow fail at the docgen part? If you are not sure, can you close this PR and raise one from a branch in this repo?

Furthermore, the developers need to specify the exact tag name under the Github-Pages: Deployment Tag Protection Rules Section (inside the Github repository settings)

Can you share what rule have you configured for this repo? Is it a REGEX of the form xrpl@x.y.z tag? From the PR description it looks like your fork have it specific to v4.4.2 tag, which will not work for any other releases. official-release deployments has a regex on the release branch name, you can refer that to replicate a similar one for tags.

No. I wrote this regex before the updates to the xrpl.js release process. Should I update it to match ^refs/heads/release[-/] ? Presently, it matches values such as v1.2.3.

Tags follows the convention of package-name@x.y.z for stable releases. So for xrpl package, the tag that release pipeline would generate will be of the form xrpl@x.y.z. We should adjust the REGEX.

nodejs.yml workflow is for linting and testing and it runs on every commit of a pull request irrespective of tags. We should move the docgen specific steps to a separate workflow and make sure that it only runs on xrpl@x.y.z tags otherwise it gets skipped. This refactoring would prevent resource wastage that is caused by Upload documentation files as artifact on every push event and make both of these workflows purpose specific.

Upload documentation files as artifact -> This has retention period of 10 days, can you reduce it to 1 day for testing purposes and run this workflow on your personal fork to see if js.xrpl.org still shows the updated docs after ~2 days?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about if a developer raises a PR from a branch that is in xrpl.js repo itself? Will the nodejs.yml workflow fail at the docgen part? If you are not sure, can you close this PR and raise one from a branch in this repo?

Even if a developer creates a branch in the XRPLF/xrpl.js repository, the said branch needs to have the permissions to publish into Github Pages environment. I have showed an example permissions configuration in the "Test Plan" section of this Github PR description.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you share what rule have you configured for this repo? Is it a REGEX of the form xrpl@x.y.z tag? From the PR description it looks like your fork have it specific to v4.4.2 tag, which will not work for any other releases. official-release deployments has a regex on the release branch name, you can refer that to replicate a similar one for tags.

Here is an example with regex pattern branch+tag protection rules:

  • The deploy-docs-page workflow executes correctly for the tag xrpl@4.4.2-beta.
  • The deploy-docs-page workflow is not triggered for the tag unofficial-release/xrpl@4.4.2-beta because it does not conform to the tag protection rules.
image

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could move the docs-generation steps into the release.yml file. In this way, we can generate documentation after the release job is completed. Is this acceptable?

This is a good idea.

  1. Make sure to only trigger this docgen steps once the package publishing step to npm is completed.
  2. The docgen step should not be triggered if this is a beta/feature specific release. You would find such checks in the release workflow.
  3. To test your changes, run the release workflow in your personal fork (if needed comment out the steps that publishes to npm or talks to vulnerability scanning tools for testing purposes). Two tests should be run one for stable release (which updates the docs generated) and another with a beta release (which does not update the docs).

On another note: Triggering another workflow is possible from release.yml file. See here. Leave it up to you how you want to handle this.

Copy link
Copy Markdown
Collaborator Author

@ckeshava ckeshava Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Patel-Raj11

Here is an example run of the successful documentation publish workflow on my personal fork: https://github.com/ckeshava/xrpl.js/actions/runs/18604073125. The docs are published here and I have verified the existence of Vault-related concepts in the docs.

Two tests should be run one for stable release (which updates the docs generated) and another with a beta release (which does not update the docs).

What do you mean by a beta release? Developers do not push any tags to trigger a workflow. We are only allowed to provide the following four inputs -- are you referring to the Release branch name (third input) in this image?
image

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your branch if out of date with latest main branch. The textbox is removed on main branch.
For beta releases, have package.json for xrpl package something like x.y.z-beta.1 and the npm distribution tag should be some other random text (not latest).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. I will initiate the docs generation, depending on the value of the npm distribution tag.

If (npm-distribution-tag == latest) -> initiate docs generation
else do not generate/publish new docs.

This appears to be an easy way to determine beta versus official release branch.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are examples of Github Actions workflow executions from my personal fork:

  1. npm-dist-tag is empty (defaults to latest): A new version of docs is generated and published.
  2. npm-dist-tag == latest -> docs are published.
  3. npm-dist-tag != latest -> docs are not published.

These changes have been introduced at the tip of 646e6e1

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a 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)
CONTRIBUTING.md (1)

244-245: Clarify whether Step 4 is still a manual action

The sentence says the workflow already runs npm run docgen, yet the checklist still tells contributors to execute it. Please reword to either remove the manual command or make it explicit that it's optional (e.g., “normally handled by the workflow; run locally only if you need to verify the output”).

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1878fd3 and fefa385.

📒 Files selected for processing (1)
  • CONTRIBUTING.md (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: browser (22.x)
  • GitHub Check: integration (20.x)
  • GitHub Check: integration (22.x)
  • GitHub Check: unit (20.x)
  • GitHub Check: unit (22.x)
  • GitHub Check: build-and-lint (22.x)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a 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

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fefa385 and 2096913.

📒 Files selected for processing (1)
  • .github/workflows/nodejs.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: unit (22.x)
  • GitHub Check: integration (22.x)
  • GitHub Check: browser (22.x)
  • GitHub Check: integration (20.x)
  • GitHub Check: unit (20.x)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan

Comment thread .github/workflows/nodejs.yml Outdated
Comment thread CONTRIBUTING.md Outdated
- [ ] Update the version number and release date, and ensure it lists the changes since the previous release.

4. Run `npm run docgen` if the docs were modified in this release to update them (skip this step for a beta).
4. (This step is performed by `generate-documentation` nodejs.yml Github Actions workflow. This is not required to be done manually) Run `npm run docgen` if the docs were modified in this release to update them (skip this step for a beta).
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then, should we remove this step since documentation generation will never be initiated by developers?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorporated this suggestion in e654a5a

Comment thread CONTRIBUTING.md Outdated

13. Run `git tag <tagname> -m <tagname>`, where `<tagname>` is the new package and version (e.g. `xrpl@2.1.1`), for each version released.
14. Run `git push --follow-tags`, to push the tags to Github.
Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` and `deploy-docs-pages` workflow in the `nodejs.yml` Github Actions workflow. This updates the documentation in js.xrpl.org to match the code changes in the checked out git branch.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can someone exploit this by repeatedly pushing tags like xrpl@A.B.C?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm hoping the admins of this github repo have enabled tag-protection rules. Non-authorized users should not be able to push tags (or) create branches in the XRPLF/xrpl.js repository. However, I can't be sure if that is the current state of the settings.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, the changes in nodejs.yml looks good to me, and thus I will approve the PR.

I'm hoping the admins of this github repo have enabled tag-protection rules.

If this is necessary, can you check with Cheng and ensure that the tag protection rule are in place if we never expect a human to create tags used for release? Thanks!

Copy link
Copy Markdown
Collaborator Author

@ckeshava ckeshava Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per the latest changes, the generate-documentation workflow is not triggered upon tag-push events. So this discussion does not have any bearing on the current task.

@ckeshava ckeshava requested a review from Patel-Raj11 October 17, 2025 20:53
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a 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

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bdbfdd3 and 45f6005.

📒 Files selected for processing (3)
  • .github/workflows/generate-documentation.yml (1 hunks)
  • .github/workflows/nodejs.yml (0 hunks)
  • .github/workflows/release.yml (1 hunks)
💤 Files with no reviewable changes (1)
  • .github/workflows/nodejs.yml
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-09T20:16:27.834Z
Learnt from: ckeshava
PR: XRPLF/xrpl.js#3101
File: .github/workflows/nodejs.yml:220-221
Timestamp: 2025-10-09T20:16:27.834Z
Learning: In `.github/workflows/nodejs.yml`, the `generate-documentation` job intentionally uses `if: startsWith(github.ref, 'refs/tags/xrpl@')` instead of `env.GIT_REF` to ensure documentation is only generated and deployed on actual tag push events, not when the workflow is called via `workflow_call` with a tag reference.

Applied to files:

  • .github/workflows/generate-documentation.yml
🪛 actionlint (1.7.8)
.github/workflows/release.yml

641-641: property "release_branch" is not defined in object type {npmjs_dist_tag: string; package_name: string}

(expression)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.github/workflows/release.yml (1)

636-645: Verify: Conditional check for tag-based documentation deployment.

Per the retrieved learnings, the generate-documentation job in the original workflow used if: startsWith(github.ref, 'refs/tags/xrpl@') to ensure documentation is only deployed on actual tag push events, not on workflow_call invocations. The new reusable workflow does not include this conditional. Verify whether the new implementation should apply such filtering.

If tag-based filtering is still needed, consider adding a conditional to the generate-documentation job in release.yml, or document why it is no longer necessary in this integrated release workflow.

Comment on lines +65 to +77
deploy-docs-pages:
permissions:
id-token: write # Needed for OIDC authentication
pages: write # this permission is needed for deploying into Github Pages
environment:
name: github-pages
url: ${{ steps.docs-artifact.outputs.page_url }}
runs-on: ubuntu-latest
needs: generate-documentation
steps:
- name: Deploy to Documentation to GitHub Pages
id: docs-artifact
uses: actions/deploy-pages@v4
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Invalid inter-job output reference and missing job output exposure.

Line 71 attempts to reference ${{ steps.docs-artifact.outputs.page_url }} from the generate-documentation job within the deploy-docs-pages job environment configuration. This is invalid because:

  1. Cross-job step references require needs.job_id.outputs.key syntax, not steps.*.outputs.*.
  2. The generate-documentation job does not expose page_url as a job-level output—only the step defines it.
  3. The deploy-docs-pages job redefines id: docs-artifact (line 76), creating confusion with the upstream step.

The actions/deploy-pages@v4 action outputs page_url, which will be available as steps.docs-artifact.outputs.page_url within the deploy-docs-pages job after the deployment step executes. The environment URL should reference the output from the current step after it runs, but environment URLs are evaluated before step execution.

Proposed fix:

-  deploy-docs-pages:
-    permissions:
-      id-token: write  # Needed for OIDC authentication
-      pages: write # this permission is needed for deploying into Github Pages
-    environment:
-      name: github-pages
-      url: ${{ steps.docs-artifact.outputs.page_url }}
-    runs-on: ubuntu-latest
-    needs: generate-documentation
-    steps:
-      - name: Deploy to Documentation to GitHub Pages
-        id: docs-artifact
-        uses: actions/deploy-pages@v4
+  deploy-docs-pages:
+    permissions:
+      id-token: write  # Needed for OIDC authentication
+      pages: write # this permission is needed for deploying into Github Pages
+    environment:
+      name: github-pages
+      url: ${{ steps.deployment.outputs.page_url }}
+    runs-on: ubuntu-latest
+    needs: generate-documentation
+    steps:
+      - name: Deploy to Documentation to GitHub Pages
+        id: deployment
+        uses: actions/deploy-pages@v4

This defers the URL evaluation to after the deployment step completes, allowing it to reference the current step's output. Also rename the step ID to deployment to avoid confusion with the artifact upload step.

🤖 Prompt for AI Agents
.github/workflows/generate-documentation.yml around lines 65-77: the job
currently sets environment.url to a step output from another job (invalid) and
reuses the step id docs-artifact causing confusion; remove the environment.url
entry from the deploy-docs-pages job, rename the deploy step id from
docs-artifact to deployment, and expose the deployment step output as a
job-level output by adding outputs: page_url: ${{
steps.deployment.outputs.page_url }} so the URL is available after the step runs
(and if you need the page_url from generate-documentation instead, update the
generate-documentation job to emit a job output and reference it with
needs.generate-documentation.outputs.page_url).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The step-id values across different jobs need not be identical. Here is an example tutorial from the Github Actions readme file: https://github.com/actions/upload-pages-artifact?tab=readme-ov-file#usage

Furthermore, this Github Actions works correctly. I have verified the correct generation of docs in the target docs website.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ckeshava, you're absolutely correct, and I apologize for the confusion. Step IDs only need to be unique within a single job, not across jobs. In the deploy-docs-pages job, steps.docs-artifact.outputs.page_url correctly references the actions/deploy-pages@v4 step within that same job, which does output page_url as documented.

The implementation is valid, and I appreciate you clarifying this and confirming that the workflow has been tested successfully. Thank you for the link to the official example as well!


🧠 Learnings used
Learnt from: ckeshava
PR: XRPLF/xrpl.js#3101
File: .github/workflows/nodejs.yml:220-221
Timestamp: 2025-10-09T20:16:27.834Z
Learning: In `.github/workflows/nodejs.yml`, the `generate-documentation` job intentionally uses `if: startsWith(github.ref, 'refs/tags/xrpl@')` instead of `env.GIT_REF` to ensure documentation is only generated and deployed on actual tag push events, not when the workflow is called via `workflow_call` with a tag reference.

Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a 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

♻️ Duplicate comments (1)
.github/workflows/release.yml (1)

636-646: Critical: Undefined workflow input release_branch causes deployment failure.

The issue is verified. Line 642 references ${{ github.event.inputs.release_branch }}, but this input is not defined in the workflow_dispatch inputs (lines 8–14). The only defined inputs are package_name and npmjs_dist_tag. This will cause git_ref to be empty, and the checkout action in generate-documentation.yml (which expects required: true) will fail.

The release_branch must come from either:

Option 1: Add release_branch as a workflow_dispatch input (recommended for explicit control)

 on:
   workflow_dispatch:
     inputs:
       package_name:
         description: 'Package folder (Name of the package directory under packages/ folder. e.g., xrpl, ripple-address-codec)'
         required: true
       npmjs_dist_tag:
         description: 'npm distribution tag(Read more https://docs.npmjs.com/adding-dist-tags-to-packages)'
         default: 'latest'
+      release_branch:
+        description: 'Release branch to deploy documentation from (e.g., main, release-v3)'
+        required: true
+        type: string

Then update line 642 to use the new input (it will already work once the input is added).

Option 2: Compute release_branch from git and expose as output from get_version job

Modify the get_version job to expose release_branch as an output:

  get_version:
     runs-on: ubuntu-latest
     name: Get release version from package.json
     outputs:
       package_version: ${{ steps.get_version.outputs.version }}
+      release_branch: ${{ env.RELEASE_BRANCH }}
     steps:
       - name: Checkout code
         uses: actions/checkout@v4
         with:
           fetch-depth: 0
 
       - name: Validate inputs
         run: |
           set -euo pipefail
           RELEASE_BRANCH="$(git branch --show-current || true)"
           if [[ -z "$RELEASE_BRANCH" ]]; then
             RELEASE_BRANCH="${{ github.ref_name }}"
           fi
+
+          echo "RELEASE_BRANCH=$RELEASE_BRANCH" >> "$GITHUB_ENV"

Then update line 642:

-      git_ref: ${{ github.event.inputs.release_branch }}
+      git_ref: ${{ needs.get_version.outputs.release_branch }}

Option 1 is recommended to ensure the correct branch is explicitly specified by the release operator.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 45f6005 and e654a5a.

📒 Files selected for processing (2)
  • .github/workflows/release.yml (1 hunks)
  • CONTRIBUTING.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-09T20:16:27.834Z
Learnt from: ckeshava
PR: XRPLF/xrpl.js#3101
File: .github/workflows/nodejs.yml:220-221
Timestamp: 2025-10-09T20:16:27.834Z
Learning: In `.github/workflows/nodejs.yml`, the `generate-documentation` job intentionally uses `if: startsWith(github.ref, 'refs/tags/xrpl@')` instead of `env.GIT_REF` to ensure documentation is only generated and deployed on actual tag push events, not when the workflow is called via `workflow_call` with a tag reference.

Applied to files:

  • .github/workflows/release.yml
🪛 actionlint (1.7.8)
.github/workflows/release.yml

642-642: property "release_branch" is not defined in object type {npmjs_dist_tag: string; package_name: string}

(expression)

🪛 LanguageTool
CONTRIBUTING.md

[uncategorized] ~267-~267: The official name of this software platform is spelled with a capital “H”.
Context: ...ocs-pagesworkflow in thenodejs.yml` Github Actions workflow. This updates the docu...

(GITHUB)


[grammar] ~267-~267: Use a hyphen to join words.
Context: ...to match the code changes in the checked out git branch. 15. On GitHub, click th...

(QB_NEW_EN_HYPHEN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: integration (22.x)
  • GitHub Check: integration (24.x)
  • GitHub Check: browser (24.x)
  • GitHub Check: unit (22.x)
  • GitHub Check: integration (20.x)
  • GitHub Check: unit (20.x)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan

Comment thread CONTRIBUTING.md Outdated

13. Run `git tag <tagname> -m <tagname>`, where `<tagname>` is the new package and version (e.g. `xrpl@2.1.1`), for each version released.
14. Run `git push --follow-tags`, to push the tags to Github.
Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` and `deploy-docs-pages` workflow in the `nodejs.yml` Github Actions workflow. This updates the documentation in js.xrpl.org to match the code changes in the checked out git branch.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Update workflow reference and fix capitalization/grammar issues.

The note references nodejs.yml but based on the PR changes, the documentation generation and deployment jobs have been moved to a separate generate-documentation.yml workflow. Additionally, there are minor styling issues to address:

  1. "Github" should be capitalized as "GitHub"
  2. "checked out" should be hyphenated as "check-out"

Apply this diff:

-Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` and `deploy-docs-pages` workflow in the `nodejs.yml` Github Actions workflow. This updates the documentation in js.xrpl.org to match the code changes in the checked out git branch.
+Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` workflow, which updates the documentation in js.xrpl.org to match the code changes in the checked-out git branch.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` and `deploy-docs-pages` workflow in the `nodejs.yml` Github Actions workflow. This updates the documentation in js.xrpl.org to match the code changes in the checked out git branch.
Note: Pushing a tag in the format of `xrpl@A.B.C` triggers the `generate-documentation` workflow, which updates the documentation in js.xrpl.org to match the code changes in the checked-out git branch.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~267-~267: The official name of this software platform is spelled with a capital “H”.
Context: ...ocs-pagesworkflow in thenodejs.yml` Github Actions workflow. This updates the docu...

(GITHUB)


[grammar] ~267-~267: Use a hyphen to join words.
Context: ...to match the code changes in the checked out git branch. 15. On GitHub, click th...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In CONTRIBUTING.md around line 267, update the note to reference the correct
workflow file and fix capitalization/grammar: change the workflow reference from
`nodejs.yml` to `generate-documentation.yml`, capitalize "GitHub", and hyphenate
"check-out" so the sentence reads that pushing a tag like `xrpl@A.B.C` triggers
the `generate-documentation` and `deploy-docs-pages` workflows in the
`generate-documentation.yml` GitHub Actions workflow and updates the
documentation to match the code in the checked-out git branch (use "check-out"
where needed).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in 4c14207

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ckeshava, thank you for addressing the feedback and fixing the workflow reference along with the capitalization and grammar issues! 🎉

    /l、
  (゚、 。7
    l、 ~ヽ
   じしf_,)ノ
   Happy bunny!

🧠 Learnings used
Learnt from: ckeshava
PR: XRPLF/xrpl.js#3101
File: .github/workflows/nodejs.yml:220-221
Timestamp: 2025-10-09T20:16:27.834Z
Learning: In `.github/workflows/nodejs.yml`, the `generate-documentation` job intentionally uses `if: startsWith(github.ref, 'refs/tags/xrpl@')` instead of `env.GIT_REF` to ensure documentation is only generated and deployed on actual tag push events, not when the workflow is called via `workflow_call` with a tag reference.

If you found this review helpful, would you consider giving us a shout-out on X?

Thank you for using CodeRabbit!

@ckeshava ckeshava requested a review from Patel-Raj11 October 17, 2025 22:07
@ckeshava
Copy link
Copy Markdown
Collaborator Author

Thank you for the detailed reviews @kuan121 @Patel-Raj11

@ckeshava ckeshava merged commit e2ce10d into XRPLF:main Oct 18, 2025
12 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Oct 31, 2025
9 tasks
@coderabbitai coderabbitai Bot mentioned this pull request Dec 8, 2025
9 tasks
dangell7 pushed a commit to Transia-RnD/xrpl.js that referenced this pull request Apr 2, 2026
#1)

* Release 4.4.2: release-xrpl-4.4.2 → main (XRPLF#3093)

* update package version

* update release date

---------

Co-authored-by: Raj Patel <rajp@ripple.com>

* Fix serialization of Issue type when asset is MPT (XRPLF#3090)

* WIP commit

* WIP commit

* fix serialization for Issue

* update HISTORY

* fix flaking oracle tests

* export VaultFlags and some code comments

* fix fromParser parsing

* update slack message and update step description (XRPLF#3098)

* build(deps-dev): bump webpack from 5.101.0 to 5.102.0 (XRPLF#3104)

* Trigger from release branch (XRPLF#3100)

* run pipeline from release branch to fix provenance

* update release instructions

* check branch name at validate input step

* ci: support Node 24 (XRPLF#3105)

Support Node 24 in CI

* Fix: deploy documentation workflow (XRPLF#3101)

* refactor: migrate docs generation and publish step into the Release workflow

* feat: Introduce conditional trigger of docs generation; Docs are generated only for npm_dist_tag == latest (official non-beta releases)

* remove the manual instructions for updating the docs

* update the instructions on contributing doc

* update slack message/add version tag for owsap project (XRPLF#3110)

Co-authored-by: rippled-automation <102213836+rippled-automation@users.noreply.github.com>

* feat: add batch transaction exports to public API (XRPLF#3064)

* feat: add batch transaction exports to public API

* docs: add Batch transaction exports to HISTORY.md

* refactor: remove unnecessary BatchInnerTransaction export

* fix: lint error

* Release 2.5.1: release-rbc-2.5.1 → main (XRPLF#3125)

update version to 2.5.1

Co-authored-by: Raj Patel <rajp@ripple.com>

* Add encodeMPTokenMetadata and decodeMPTokenMetadata utility functions (XRPLF#3117)

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* fix tests

* update history

* add more tests

* add JSDOC tag

* add stable stringify

* fix JSDoc comments

* refactor utility functions

* fix test name

* add encode deocde in integration test

* Fix failed integration tests due to the removal of amendments (XRPLF#3128)

* Release 4.4.3: release-xrpl-4.4.3 → main (XRPLF#3130)

* xrpl.js version 4.4.3

* Update release date for xrpl@4.4.3

---------

Co-authored-by: Kuan Lin <klin@ripple.com>

* build(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 (XRPLF#3132)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chores: Set free-form CI inputs as env vars (XRPLF#3133)

fix: GitHub Actions script injection vulnerability

- Move all ${{ github.* }} and ${{ inputs.* }} from run: scripts to env: blocks
- Use Shell-style ${VAR} pattern in run: blocks for better readability
- Remove redundant env redefinitions
- Follows rippled PR #5822 best practices

* chores: assorted fixes for `release.yaml` (XRPLF#3134)

Address some outstanding comments in XRPLF#3133.
Changes include:

Use env variable names PKG_NAME, PKG_VERSION, and NPM_DIST_TAG consistently within the script and remove unnecessary intermediate variables.
Write package version in line https://github.com/XRPLF/xrpl.js/blob/main/.github/workflows/release.yml#L122 into $GITHUB_OUTPUT instead of $GITHUB_ENV to be used in other jobs (instead of the same job).
Fix line https://github.com/XRPLF/xrpl.js/blob/main/.github/workflows/release.yml#L526 to just use ${{ needs.get_version.outputs.package_name }} directly since this should be available and && operator does not make much sense in this context.

* update ripple-binary-codec to 2.5.1 (XRPLF#3126)

* update version

* update history

* VoD minor bug fixes (XRPLF#3137)

* VoD link fix code samples

* Update UNIQUE_SETUPS.md remove deno special steps

* fix: better formatting handling in definitions script (XRPLF#3123)

* add newlines

* fix typo

* Update definitions.json

* fix test

* fix: improve faucet error handling (XRPLF#3118)

* improve faucet erroring

* update history

* fix tests

* fix history

* test: make connections.test.ts run faster (XRPLF#3113)

* Change dependabot frequency to monthly (XRPLF#3139)

* update depandabot frequency

* change freq to monthly

* build(deps-dev): bump typedoc from 0.28.5 to 0.28.15 (XRPLF#3147)

Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.28.5 to 0.28.15.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](TypeStrong/typedoc@v0.28.5...v0.28.15)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-version: 0.28.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as Optional (XRPLF#3153)

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as optional

* Add support for lending protocol xls-66d (XRPLF#3138)

* WIP commit

* WIP commit

* WIP commit

* add LoanBrokerSet transaction

* update definitions.json

* update history

* add LoanBrokerCoverDeposit

* add LoanBrokerCoverWithdraw

* add LoanBrokerCoverClawback

* add LoanSet transaction

* add loan transactions

* WIP commit

* WIP commit

* WIP commit

* fix models

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* fix types

* fix autofill for VaultCreate

* implement autofill for LoanSet

* WIP commit

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as optional

* Update HISTORY.md

* assert objects in test cases

* test autofill for LoanSet tx

* improve warning message

* change to console.warn

* address codarabbit suggestions

* add unit test for encodeForMultisigning with SigningPubKey present

* address code-review comments and LoanSet autofill default

* add conditions on flags

* address codarabbit suggestions

* enable PermissionDelegationV1_1

---------

Co-authored-by: Kuan Lin <klin@ripple.com>

* feat: export more helper functions (XRPLF#3157)

* Release 2.6.0: release-rbc-2.6.0 → main (XRPLF#3159)

update package version

Co-authored-by: Raj Patel <rajp@ripple.com>

* Release 4.5.0: release-xrpl-4.5.0 → main (XRPLF#3161)

update package version

Co-authored-by: Raj Patel <rajp@ripple.com>

* build(deps-dev): bump expect from 29.7.0 to 30.2.0 (XRPLF#3148)

Bumps [expect](https://github.com/jestjs/jest/tree/HEAD/packages/expect) from 29.7.0 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/expect)

---
updated-dependencies:
- dependency-name: expect
  dependency-version: 30.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Upgrade lerna to v8 (XRPLF#3156)

update the lerna version

* Set dependabot version update frequency to quarterly (XRPLF#3169)

change freq

* build(deps-dev): bump @eslint/js from 9.35.0 to 9.39.2 (XRPLF#3170)

Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.35.0 to 9.39.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.39.2/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 (XRPLF#3178)

Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump webpack from 5.102.0 to 5.104.1 (XRPLF#3166)

Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.104.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack@v5.102.0...v5.104.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.104.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump ts-jest from 29.4.1 to 29.4.6 (XRPLF#3162)

Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.1 to 29.4.6.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](kulshekhar/ts-jest@v29.4.1...v29.4.6)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.4.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump eslint-plugin-n from 17.21.3 to 17.23.1 (XRPLF#3143)

Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.21.3 to 17.23.1.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](eslint-community/eslint-plugin-n@v17.21.3...v17.23.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.23.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0 (XRPLF#3173)

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0

Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.39.0 to 8.52.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.52.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.52.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0 (XRPLF#3181)

* Initial plan

* Initial plan for fixing typescript-eslint linting issues

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Fix typescript-eslint linting issues from 8.52.0 upgrade

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Disable import/no-unresolved for isomorphic test files using module subpaths

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Fix st-number.ts logic and revert import/no-unresolved disable

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Update typescript-eslint version in package.json to 8.52.0

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>
Co-authored-by: Mayukha Vadari <mvadari@ripple.com>

* build(deps-dev): bump webpack-bundle-analyzer from 4.10.2 to 5.1.0 (XRPLF#3171)

Bumps [webpack-bundle-analyzer](https://github.com/webpack/webpack-bundle-analyzer) from 4.10.2 to 5.1.0.
- [Changelog](https://github.com/webpack/webpack-bundle-analyzer/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-bundle-analyzer@v4.10.2...v5.1.0)

---
updated-dependencies:
- dependency-name: webpack-bundle-analyzer
  dependency-version: 5.1.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump ws from 8.18.3 to 8.19.0 (XRPLF#3172)

Bumps [ws](https://github.com/websockets/ws) from 8.18.3 to 8.19.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@8.18.3...8.19.0)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump eslint from 9.35.0 to 9.39.2 (XRPLF#3163)

Bumps [eslint](https://github.com/eslint/eslint) from 9.35.0 to 9.39.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v9.35.0...v9.39.2)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump jest-mock from 29.7.0 to 30.2.0 (XRPLF#3174)

Bumps [jest-mock](https://github.com/jestjs/jest/tree/HEAD/packages/jest-mock) from 29.7.0 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest-mock)

---
updated-dependencies:
- dependency-name: jest-mock
  dependency-version: 30.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Beta release workflow (XRPLF#3131)

* release pipeline change for beta release

* release pipeline change for beta release

* release pipeline change for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* update workflow for beta release

* fix sending failure notification

* fix sending failure notification

* fix sending failure notification

* revert changes

* revert changes

* revert changes

* test release 4.4.21

* resove conflict

* resove conflict

* resove conflict

* resove conflict

* revert slack channel

* fix git ref for generate document

* resolve beta release PR comments

* update slack channel

* fix beta dist tag

* update RELEASE.md

* update RELEASE.md

* resolve comments on RELEASE.md

* update RELEASE.md and only unit test for beta release

* only run unit tests for beta releaes

* only run unit tests for beta releaes

* change back slack channel

* fix owasp project name

* add back PR auto creation

* test release after add back pr auto creation

* auto raise PR as draft

* auto raise PR as draft

* auto raise PR as draft

* auto raise PR as draft

* auto raise PR as draft

* update RELEASE.md

* revert slack channel

* update integration/faucet trigger

* fix: better formatting handling in definitions script (XRPLF#3123)

* add newlines

* fix typo

* Update definitions.json

* fix test

* fix: improve faucet error handling (XRPLF#3118)

* improve faucet erroring

* update history

* fix tests

* fix history

* test: make connections.test.ts run faster (XRPLF#3113)

* Change dependabot frequency to monthly (XRPLF#3139)

* update depandabot frequency

* change freq to monthly

* build(deps-dev): bump typedoc from 0.28.5 to 0.28.15 (XRPLF#3147)

Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.28.5 to 0.28.15.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](TypeStrong/typedoc@v0.28.5...v0.28.15)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-version: 0.28.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as Optional (XRPLF#3153)

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as optional

* Add support for lending protocol xls-66d (XRPLF#3138)

* WIP commit

* WIP commit

* WIP commit

* add LoanBrokerSet transaction

* update definitions.json

* update history

* add LoanBrokerCoverDeposit

* add LoanBrokerCoverWithdraw

* add LoanBrokerCoverClawback

* add LoanSet transaction

* add loan transactions

* WIP commit

* WIP commit

* WIP commit

* fix models

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* WIP commit

* fix types

* fix autofill for VaultCreate

* implement autofill for LoanSet

* WIP commit

* Mark AssetsAvailable, AssetsTotal and LossUnrealized of Vault object as optional

* Update HISTORY.md

* assert objects in test cases

* test autofill for LoanSet tx

* improve warning message

* change to console.warn

* address codarabbit suggestions

* add unit test for encodeForMultisigning with SigningPubKey present

* address code-review comments and LoanSet autofill default

* add conditions on flags

* address codarabbit suggestions

* enable PermissionDelegationV1_1

---------

Co-authored-by: Kuan Lin <klin@ripple.com>

* feat: export more helper functions (XRPLF#3157)

* Release 2.6.0: release-rbc-2.6.0 → main (XRPLF#3159)

update package version

Co-authored-by: Raj Patel <rajp@ripple.com>

* Release 4.5.0: release-xrpl-4.5.0 → main (XRPLF#3161)

update package version

Co-authored-by: Raj Patel <rajp@ripple.com>

* build(deps-dev): bump expect from 29.7.0 to 30.2.0 (XRPLF#3148)

Bumps [expect](https://github.com/jestjs/jest/tree/HEAD/packages/expect) from 29.7.0 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/expect)

---
updated-dependencies:
- dependency-name: expect
  dependency-version: 30.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Upgrade lerna to v8 (XRPLF#3156)

update the lerna version

* Set dependabot version update frequency to quarterly (XRPLF#3169)

change freq

* build(deps-dev): bump @eslint/js from 9.35.0 to 9.39.2 (XRPLF#3170)

Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.35.0 to 9.39.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.39.2/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 (XRPLF#3178)

Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump webpack from 5.102.0 to 5.104.1 (XRPLF#3166)

Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.104.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack@v5.102.0...v5.104.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.104.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump ts-jest from 29.4.1 to 29.4.6 (XRPLF#3162)

Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.1 to 29.4.6.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](kulshekhar/ts-jest@v29.4.1...v29.4.6)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.4.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump eslint-plugin-n from 17.21.3 to 17.23.1 (XRPLF#3143)

Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.21.3 to 17.23.1.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](eslint-community/eslint-plugin-n@v17.21.3...v17.23.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.23.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0 (XRPLF#3173)

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0

Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.39.0 to 8.52.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.52.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.52.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump typescript-eslint from 8.39.0 to 8.52.0 (XRPLF#3181)

* Initial plan

* Initial plan for fixing typescript-eslint linting issues

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Fix typescript-eslint linting issues from 8.52.0 upgrade

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Disable import/no-unresolved for isomorphic test files using module subpaths

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Fix st-number.ts logic and revert import/no-unresolved disable

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Update typescript-eslint version in package.json to 8.52.0

Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>
Co-authored-by: Mayukha Vadari <mvadari@ripple.com>

* build(deps-dev): bump webpack-bundle-analyzer from 4.10.2 to 5.1.0 (XRPLF#3171)

Bumps [webpack-bundle-analyzer](https://github.com/webpack/webpack-bundle-analyzer) from 4.10.2 to 5.1.0.
- [Changelog](https://github.com/webpack/webpack-bundle-analyzer/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-bundle-analyzer@v4.10.2...v5.1.0)

---
updated-dependencies:
- dependency-name: webpack-bundle-analyzer
  dependency-version: 5.1.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump ws from 8.18.3 to 8.19.0 (XRPLF#3172)

Bumps [ws](https://github.com/websockets/ws) from 8.18.3 to 8.19.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@8.18.3...8.19.0)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump eslint from 9.35.0 to 9.39.2 (XRPLF#3163)

Bumps [eslint](https://github.com/eslint/eslint) from 9.35.0 to 9.39.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v9.35.0...v9.39.2)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump jest-mock from 29.7.0 to 30.2.0 (XRPLF#3174)

Bumps [jest-mock](https://github.com/jestjs/jest/tree/HEAD/packages/jest-mock) from 29.7.0 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest-mock)

---
updated-dependencies:
- dependency-name: jest-mock
  dependency-version: 30.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update trigger for integration test and faucet test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mayukha Vadari <mvadari@ripple.com>
Co-authored-by: Raj Patel <rajp@ripple.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kuan Lin <klin@ripple.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chenna Keshava B S <21219765+ckeshava@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>

* Makes fundWallet method work with locally running faucet server (XRPLF#3186)

* add faucetProtocol option

* improve doc

* update history

* build(deps-dev): bump react from 19.1.1 to 19.2.3 (XRPLF#3165)

Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 19.1.1 to 19.2.3.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.3/packages/react)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.2.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump lodash from 4.17.21 to 4.17.23 (XRPLF#3189)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump bignumber.js from 9.1.2 to 9.3.0 (XRPLF#2988)

* Update linter dev-dependencies (XRPLF#3192)

This commit upgrades the following developer-dependencies in the xrpl.js monorepo: "@xrplf/eslint-config": "^3.0.0", "eslint-plugin-array-func": "^5.0.0" and "eslint-plugin-tsdoc": "^0.5.0".

* Upgrade chai dev-dependency to v6.2.2 (XRPLF#3193)

* Fix STNumber serialization and add counterparty signing helper functions (XRPLF#3191)

* WIP

* WIP

* update history

* WIP

* add helper functions

* fix lint

* add proper rounding

* WIP

* add tests

* temp fix node start issue

* remove detach

* WIP

* add detach

* fix error object

* remove rounding

* add 99e20 test

* remove trailing zeroes from mantissa

* add comment

* add rounding as rippled

* address review comments

* remove MAX_MANTISSA check

* address edge case

* fix: add integer check for UInt types in binary codec (XRPLF#3179)

* Add missing field types to lending protocol related objects and support Int32 serialized type (XRPLF#3198)

* WIP

* update history

* fix lint errors

* add Int32 type

* add encode decode test

* update history

* fix tests

* use typeName

* fix lint errors

* Release 2.7.0: release-rbc-2.7.0 → main (XRPLF#3202)

update version

Co-authored-by: Raj Patel <rajp@ripple.com>

* Release 4.6.0: release-xrpl-4.6.0 → main (XRPLF#3204)

update version

Co-authored-by: Raj Patel <rajp@ripple.com>

* build(deps-dev): bump lerna from 8.2.4 to 9.0.3 (XRPLF#3175)

* build(deps-dev): bump lerna from 8.2.4 to 9.0.3

Bumps [lerna](https://github.com/lerna/lerna/tree/HEAD/packages/lerna) from 8.2.4 to 9.0.3.
- [Release notes](https://github.com/lerna/lerna/releases)
- [Changelog](https://github.com/lerna/lerna/blob/main/packages/lerna/CHANGELOG.md)
- [Commits](https://github.com/lerna/lerna/commits/v9.0.3/packages/lerna)

---
updated-dependencies:
- dependency-name: lerna
  dependency-version: 9.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* run lerna repair

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Phu Pham <ppham@ripple.com>

* update definitions.json

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Raj Patel <rajp@ripple.com>
Co-authored-by: Shi Cheng <97218929+shichengripple001@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Chenna Keshava B S <21219765+ckeshava@users.noreply.github.com>
Co-authored-by: rippled-automation <102213836+rippled-automation@users.noreply.github.com>
Co-authored-by: Nabe3 <108178480+nabe3m@users.noreply.github.com>
Co-authored-by: Kuan Lin <klin@ripple.com>
Co-authored-by: pdp2121 <71317875+pdp2121@users.noreply.github.com>
Co-authored-by: achowdhry-ripple <achowdhry@ripple.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com>
Co-authored-by: Phu Pham <ppham@ripple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants