Skip to content

updates - #167

Merged
mr-git merged 8 commits into
masterfrom
m/updates
Aug 11, 2026
Merged

updates#167
mr-git merged 8 commits into
masterfrom
m/updates

Conversation

@mr-git

@mr-git mr-git commented Aug 11, 2026

Copy link
Copy Markdown
Contributor
  • set version policy
  • introduce and apply scalafmt
  • drop Scala 2.12 support
  • update CI and Release workflows
  • update SBT to 2.0.6
  • update logback-classic to 1.6.1

Summary by CodeRabbit

  • Build and Release

    • Updated automated build and release processes for more consistent validation and tag-based publishing.
    • Modernized project tooling and compatibility checks.
    • Added standardized code-formatting checks and convenient build commands.
    • Updated the logging library and build system versions.
  • Maintenance

    • Applied broad formatting and documentation improvements without changing runtime behavior or public APIs.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@mr-git, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 20 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d0cf747-164e-4569-86f5-66a772ada9d1

📥 Commits

Reviewing files that changed from the base of the PR and between adadfc5 and 2f662b8.

📒 Files selected for processing (2)
  • build.sbt
  • instrumentation/src/main/scala-2.12/com/evolutiongaming/util/dispatchers/OverrideScalaRunnable.scala
📝 Walkthrough

Walkthrough

The pull request modernizes sbt and CI workflows, adds Scalafmt and version-policy configuration, updates selected dependency versions, and applies formatting-only changes across Scala production and test sources.

Changes

Build and formatting modernization

Layer / File(s) Summary
Reusable CI and release workflows
.github/workflows/ci.yml, .github/workflows/release.yml
CI uses a reusable workflow for master pushes and pull requests. Releases use v* tag pushes and reusable workflow v5.
sbt and validation configuration
.scalafmt.conf, build.sbt, project/Dependencies.scala, project/build.properties, project/plugins.sbt
The build uses modern sbt syntax, Scala 2.13-only compilation, binary compatibility checks, formatting validation, updated plugins, and upgraded Logback and sbt versions.
Cluster and instrumentation formatting
cluster/src/main/scala/..., instrumentation/src/main/scala/...
Source files receive formatting, import-order, declaration, and documentation updates without behavior changes.
Persistence, serialization, utility, and test formatting
persistence/src/..., serialization/src/..., test/src/..., util/src/...
Source and test files receive formatting-only updates without changes to runtime behavior or public APIs.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title "updates" is too generic and does not identify the main project changes. Use a specific title that summarizes the main changes, such as adopting Scalafmt, updating SBT, and dropping Scala 2.12 support.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch m/updates

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

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 44.327% (+9.8%) from 34.492% — m/updates into master

1 similar comment
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 44.327% (+9.8%) from 34.492% — m/updates into master

@coveralls

coveralls commented Aug 11, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 44.327% (+9.8%) from 34.492% — m/updates into master

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release.yml:
- Around line 10-11: Update the release workflow reference to the exact commit
b4557d9a82c03596dc2425e19b3cb9a6280a4739 instead of `@v5`, replace secrets:
inherit with an explicit JFROG_ACCESS_TOKEN mapping, and declare
JFROG_ACCESS_TOKEN under the called workflow’s on.workflow_call.secrets
configuration.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 9006f451-39b9-49d7-a030-974f8b1ed3aa

📥 Commits

Reviewing files that changed from the base of the PR and between 7d8a93d and adadfc5.

📒 Files selected for processing (40)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .scalafmt.conf
  • build.sbt
  • cluster/src/main/scala/com/evolutiongaming/cluster/AddressHelper.scala
  • cluster/src/main/scala/com/evolutiongaming/cluster/LocalSupervisorActor.scala
  • cluster/src/main/scala/com/evolutiongaming/cluster/LogUnreachable.scala
  • cluster/src/main/scala/com/evolutiongaming/cluster/NodesUnreachableException.scala
  • instrumentation/src/main/scala/akka/dispatch/InstrumentedDispatcherMixin.scala
  • instrumentation/src/main/scala/akka/dispatch/OverrideAkkaRunnable.scala
  • instrumentation/src/main/scala/com/evolutiongaming/util/dispatchers/AbstractInstrumentedDispatcher.scala
  • instrumentation/src/main/scala/com/evolutiongaming/util/dispatchers/AbstractInstrumentedPinned.scala
  • instrumentation/src/main/scala/com/evolutiongaming/util/dispatchers/Instrumented.scala
  • instrumentation/src/main/scala/com/evolutiongaming/util/dispatchers/InstrumentedConfig.scala
  • persistence/src/main/scala/akka/persistence/JournalFailure.scala
  • persistence/src/main/scala/akka/persistence/RecoveryBreaker.scala
  • persistence/src/main/scala/akka/persistence/Replicate.scala
  • persistence/src/main/scala/com/evolutiongaming/persistence/PersistenceId.scala
  • persistence/src/main/scala/com/evolutiongaming/sharding/ShardEntry.scala
  • persistence/src/main/scala/com/evolutiongaming/util/DuplicatingJournal.scala
  • persistence/src/test/scala/akka/persistence/DuplicatingActorSpec.scala
  • persistence/src/test/scala/akka/persistence/RecoveryBreakerSpec.scala
  • persistence/src/test/scala/com/evolutiongaming/persistence/PersistenceIdSpec.scala
  • project/Dependencies.scala
  • project/build.properties
  • project/plugins.sbt
  • serialization/src/main/scala/com/evolutiongaming/serialization/BrokenSerializer.scala
  • serialization/src/main/scala/com/evolutiongaming/serialization/SerializerOf.scala
  • test/src/main/scala/com/evolutiongaming/test/ActorSpec.scala
  • test/src/main/scala/com/evolutiongaming/test/PatienceConfiguration.scala
  • test/src/main/scala/com/evolutiongaming/test/TestConfig.scala
  • test/src/main/scala/com/evolutiongaming/test/package.scala
  • util/src/main/scala/com/evolutiongaming/util/BackpressureBuffer.scala
  • util/src/main/scala/com/evolutiongaming/util/BlockingTracker.scala
  • util/src/main/scala/com/evolutiongaming/util/ExecutionThreadTracker.scala
  • util/src/main/scala/com/evolutiongaming/util/FutureSequentialForKey.scala
  • util/src/main/scala/com/evolutiongaming/util/Scheduler.scala
  • util/src/test/scala/com/evolutiongaming/util/BackpressureBufferSpec.scala
  • util/src/test/scala/com/evolutiongaming/util/FutureSequentialForKeySpec.scala
  • version.sbt
💤 Files with no reviewable changes (1)
  • version.sbt

Comment on lines +10 to 11
uses: evolution-gaming/scala-github-actions/.github/workflows/release.yml@v5
secrets: inherit

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="evolution-gaming/scala-github-actions"
sha="$(gh api "repos/$repo/commits/v5" --jq .sha)"
printf 'Current v5 commit: %s\n' "$sha"

gh api "repos/$repo/contents/.github/workflows/release.yml?ref=$sha" \
  --jq .content | base64 --decode

Repository: evolution-gaming/akka-tools

Length of output: 2253


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="evolution-gaming/scala-github-actions"

printf '%s\n' 'Tag reference:'
gh api "repos/$repo/git/ref/tags/v5" --jq '{type: .object.type, sha: .object.sha}'

printf '%s\n' 'Resolved commit:'
tag_obj="$(gh api "repos/$repo/git/ref/tags/v5" --jq '.object | [.type, .sha] | `@tsv`')"
tag_type="${tag_obj%%$'\t'*}"
tag_sha="${tag_obj#*$'\t'}"
if [ "$tag_type" = tag ]; then
  commit_sha="$(gh api "repos/$repo/git/tags/$tag_sha" --jq '.object | select(.type == "commit") | .sha')"
else
  commit_sha="$tag_sha"
fi
gh api "repos/$repo/commits/$commit_sha" --jq .sha
printf 'v5 commit: %s\n' "$commit_sha"

printf '%s\n' 'Caller workflow:'
cat -n .github/workflows/release.yml | sed -n '1,35p'

printf '%s\n' 'Workflow references and secret declarations:'
rg -n --hidden -g '.github/workflows/*.yml' -g '.github/workflows/*.yaml' \
  'scala-github-actions/.github/workflows/release\.yml|secrets:|JFROG_ACCESS_TOKEN|GITHUB_TOKEN' .

Repository: evolution-gaming/akka-tools

Length of output: 846


🌐 Web query:

GitHub Actions reusable workflow secrets inherit explicit secrets workflow_call declaration caller passing secret not defined

💡 Result:

In GitHub Actions, a reusable workflow does not automatically inherit secrets from the calling workflow [1][2][3]. To make secrets available, you must explicitly configure how they are passed. There are two primary methods to achieve this, depending on whether you want to pass specific secrets or grant access to all available secrets [1][4]. 1. Explicit Passing (Recommended for Security): You can pass specific secrets by mapping them in the calling workflow's job definition [4][5][6]. - In the caller workflow, use the secrets keyword: jobs: call_workflow: uses: owner/repo/.github/workflows/reusable.yml@main secrets: SECRET_NAME: ${{ secrets.SECRET_NAME }} - In the reusable workflow, you must define these expected secrets under the on.workflow_call.secrets block [7][1][2]: on: workflow_call: secrets: SECRET_NAME: required: true 2. Inheritance (secrets: inherit): For workflows within the same organization or enterprise, you can use the inherit keyword to automatically pass all secrets available to the calling workflow to the reusable workflow [8][9]. - In the caller workflow: jobs: call_workflow: uses: owner/repo/.github/workflows/reusable.yml@main secrets: inherit - Important Behavior: When using secrets: inherit, you are not required to explicitly define the secrets in the reusable workflow's on.workflow_call block to access them [8][10][11]. However, this method is less secure because it exposes all secrets available to the caller to the reusable workflow, increasing the potential blast radius if the downstream workflow is compromised [5][3][6]. Key Considerations: - Secret Scope: Secrets are only passed to the directly called workflow [9][3]. In a chain of workflows (A -> B -> C), secrets must be passed from A to B, and then from B to C [9][3]. - Environment Secrets: Environment-level secrets cannot be passed using on.workflow_call [8][11]. If a reusable workflow job specifies an environment, it will use the environment's secrets rather than any secrets passed from the caller [8][11]. - Best Practice: Explicitly naming and passing only the necessary secrets is considered the best practice to maintain the principle of least privilege [5][3][6]. Use secrets: inherit only when the reusable workflow is fully trusted and requires broad secret access [5][3].

Citations:


Pin the release workflow and scope its secrets.

Pin @v5 to b4557d9a82c03596dc2425e19b3cb9a6280a4739. Replace secrets: inherit with an explicit JFROG_ACCESS_TOKEN mapping, and declare that secret in the called workflow’s on.workflow_call.secrets section.

🧰 Tools
🪛 zizmor (1.29.0)

[warning] 10-10: secrets unconditionally inherited by called workflow (secrets-inherit): this reusable workflow

(secrets-inherit)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release.yml around lines 10 - 11, Update the release
workflow reference to the exact commit b4557d9a82c03596dc2425e19b3cb9a6280a4739
instead of `@v5`, replace secrets: inherit with an explicit JFROG_ACCESS_TOKEN
mapping, and declare JFROG_ACCESS_TOKEN under the called workflow’s
on.workflow_call.secrets configuration.

Source: Linters/SAST tools

@sonarqubecloud

Copy link
Copy Markdown

@mr-git
mr-git merged commit bf2d09e into master Aug 11, 2026
5 of 6 checks passed
@mr-git
mr-git deleted the m/updates branch August 11, 2026 08:07
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.

2 participants