Skip to content

Add support for Redmine 7.0.0 - #480

Merged
Art4 merged 7 commits into
v2.xfrom
479-redmine-7
Jul 26, 2026
Merged

Add support for Redmine 7.0.0#480
Art4 merged 7 commits into
v2.xfrom
479-redmine-7

Conversation

@Art4

@Art4 Art4 commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

closes #479, closes #477, requires #476

Summary by CodeRabbit

  • New Features

    • Added support for Redmine 7.0.0.
    • Expanded compatibility coverage for newer Redmine releases.
    • Updated API behavior and response expectations for version-specific differences.
  • Changed

    • Updated supported-version documentation with a compatibility matrix.
    • Added Redmine 7.0.0 to automated behavior-driven testing.
    • Refreshed test coverage for user and wiki API responses across supported versions.
  • Documentation

    • Updated guidance and examples for version-specific API features and endpoints.

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Redmine 7.0.0 is added to Docker, Behat, Composer, and GitHub Actions test coverage. Existing Redmine suites use newer patch releases, while Behat assertions and documentation now account for version-specific API responses and supported-version compatibility.

Changes

Redmine versioned testing

Layer / File(s) Summary
Version-aware assertion support
tests/RedmineExtension/RedmineVersion.php, tests/Behat/Bootstrap/FeatureContext.php
Adds recognized Redmine versions and centralizes version comparison handling for conditional Behat assertions.
Redmine test environment wiring
docker-compose.yml, tests/Behat/behat.yml, composer.json, .github/workflows/tests.yml
Adds Redmine 7.0 services and suites, updates existing patch versions, and aligns ports and data directories.
Version-specific API expectations
tests/Behat/features/user.feature, tests/Behat/features/wiki.feature, tests/Behat/README.md
Updates user and wiki response property assertions and version-specific Behat guidance for Redmine 7.0 boundaries.
Support matrix and release documentation
README.md, CHANGELOG.md
Documents Redmine 7.0 support, updated tested versions, and library compatibility combinations.

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

Possibly related PRs

Suggested reviewers: kbsali

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: adding Redmine 7.0.0 support.
Linked Issues check ✅ Passed The changes update Behat coverage, version handling, and references for Redmine 7.0.0 and the newer 6.1.3/6.0.10/5.1.13 releases, matching #479 and #477.
Out of Scope Changes check ✅ Passed The modified files all support Redmine version coverage, docs, or test configuration, with no obvious unrelated changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 479-redmine-7

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.

@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.72%. Comparing base (de2eaa4) to head (8e79027).
⚠️ Report is 8 commits behind head on v2.x.

Additional details and impacted files
@@            Coverage Diff            @@
##               v2.x     #480   +/-   ##
=========================================
  Coverage     98.72%   98.72%           
  Complexity      783      783           
=========================================
  Files            29       29           
  Lines          2275     2275           
=========================================
  Hits           2246     2246           
  Misses           29       29           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Art4
Art4 changed the base branch from v2.x to behat-tests-in-github-actions July 25, 2026 08:23
Art4 added 2 commits July 25, 2026 12:09
- Add version range support with new private isVersionMatch() method
  supporting syntax like ">= 6.0.0 < 7.0.0"
- Add root-level (XML) version-specific step definition for property matching
- Split user data assertions into 3 version ranges (>= 7.0.0, >= 6.0.0 < 7.0.0, < 6.0.0)
- Fix admin email: admin@dummy.invalid (Redmine 7.0) vs admin@example.net (< 7.0.0)
- Add project property to wiki page assertions for Redmine 7.0
Add Redmine 5.1 back to the Behat test matrix, docker-compose,
and behat configuration. Introduce V5_1_12 version constant.
Add version compatibility table to README.
@Art4
Art4 marked this pull request as ready for review July 25, 2026 12:54
Base automatically changed from behat-tests-in-github-actions to v2.x July 26, 2026 05:46
@Art4 Art4 added this to the v2.10.0 milestone Jul 26, 2026
- Add Redmine 5.1.12 to changelog version list
- Remove empty ### Removed section from unreleased changelog
- Update behat README examples from @since60000/@until60000 to
  @since70000/@until70000
- Add version range example to modified responses section
- Fix typos (Theses, the a)

@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: 4

🤖 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 `@CHANGELOG.md`:
- Line 16: Update the Redmine version list in the changelog entry to replace
5.1.12 with the supported 5.1.13 version, matching the value defined by
RedmineVersion.

In `@docker-compose.yml`:
- Around line 7-10: The executable Redmine 5.1 suite still targets 5.1.12
instead of 5.1.13. In docker-compose.yml lines 7-10, create redmine-50113_data;
in docker-compose.yml lines 97-106, use redmine:5.1.13 and mount that volume;
update the default and GitHub Actions profiles in tests/Behat/behat.yml lines
29-34 and 56-60 to 5.1.13 with redmine-50113_data; and update
.github/workflows/tests.yml lines 64-67 to use redmine-50113_data.

In `@tests/Behat/README.md`:
- Around line 83-92: Update the Behat configuration example in the relevant
README section to show the ~`@since70000` tag filter for every pre-7.0 suite,
including redmine_6_1, redmine_6_0, and redmine_5_1, so tagged scenarios are
excluded from each suite.
- Line 77: Add language identifiers to all four fenced code blocks in the Behat
README: use gherkin for feature/scenario examples and yaml for the configuration
example, including the fences referenced near the related sections. Preserve the
example contents unchanged.
🪄 Autofix (Beta)

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: 1f8a279f-2038-4d2b-ad6b-aa07c1d9fe98

📥 Commits

Reviewing files that changed from the base of the PR and between a921a98 and 8e79027.

📒 Files selected for processing (11)
  • .github/workflows/tests.yml
  • CHANGELOG.md
  • README.md
  • composer.json
  • docker-compose.yml
  • tests/Behat/Bootstrap/FeatureContext.php
  • tests/Behat/README.md
  • tests/Behat/behat.yml
  • tests/Behat/features/user.feature
  • tests/Behat/features/wiki.feature
  • tests/RedmineExtension/RedmineVersion.php

Comment thread CHANGELOG.md

### Changed

- Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.12.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the documented Redmine 5.1 test version.

Line 16 says 5.1.12, but the supported test version is 5.1.13 (tests/RedmineExtension/RedmineVersion.php). Change the changelog entry to keep the release documentation accurate.

Proposed fix
-- Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.12.
+- Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.13.
📝 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
- Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.12.
Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.13.
🤖 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 `@CHANGELOG.md` at line 16, Update the Redmine version list in the changelog
entry to replace 5.1.12 with the supported 5.1.13 version, matching the value
defined by RedmineVersion.

Comment thread docker-compose.yml
Comment on lines +7 to +10
.docker/redmine-70000_data/files .docker/redmine-70000_data/sqlite
.docker/redmine-60103_data/files .docker/redmine-60103_data/sqlite
.docker/redmine-60010_data/files .docker/redmine-60010_data/sqlite
.docker/redmine-50112_data/files .docker/redmine-50112_data/sqlite &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align the executable 5.1 suite with Redmine 5.1.13.

The PR objective calls for 5.1.13, but all runnable configuration still targets 5.1.12, so the intended maintenance/security release is not covered.

  • docker-compose.yml#L7-L10: create redmine-50113_data.
  • docker-compose.yml#L97-L106: use redmine:5.1.13 and mount redmine-50113_data.
  • tests/Behat/behat.yml#L29-L34: update the default profile to 5.1.13 and redmine-50113_data.
  • tests/Behat/behat.yml#L56-L60: update the GitHub Actions profile to 5.1.13 and redmine-50113_data.
  • .github/workflows/tests.yml#L64-L67: use redmine-50113_data.
📍 Affects 3 files
  • docker-compose.yml#L7-L10 (this comment)
  • docker-compose.yml#L97-L106
  • tests/Behat/behat.yml#L29-L34
  • tests/Behat/behat.yml#L56-L60
  • .github/workflows/tests.yml#L64-L67
🤖 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 `@docker-compose.yml` around lines 7 - 10, The executable Redmine 5.1 suite
still targets 5.1.12 instead of 5.1.13. In docker-compose.yml lines 7-10, create
redmine-50113_data; in docker-compose.yml lines 97-106, use redmine:5.1.13 and
mount that volume; update the default and GitHub Actions profiles in
tests/Behat/behat.yml lines 29-34 and 56-60 to 5.1.13 with redmine-50113_data;
and update .github/workflows/tests.yml lines 64-67 to use redmine-50113_data.

Comment thread tests/Behat/README.md
1. Tag features or scenarios e.g. with `@since60000`.
1. Tag features e.g. with `@since70000`.

```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add language identifiers to the fenced examples.

markdownlint reports MD040 on these four fences.

Proposed fix
-```
+```gherkin
 `@since70000`
 Feature: Interacting with a REST API endpoint added in 7.0.0

-```
+```yaml
 default:
     suites:

-```
+```gherkin
 `@until70000`
 Feature: Interacting with a REST API endpoint removed in 7.0.0

-```
+```gherkin
     `@until70000`
     Scenario: Using a feature removed in 7.0.0

Also applies to: 85-85, 104-104, 112-112

🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 77-77: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 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 `@tests/Behat/README.md` at line 77, Add language identifiers to all four
fenced code blocks in the Behat README: use gherkin for feature/scenario
examples and yaml for the configuration example, including the fences referenced
near the related sections. Preserve the example contents unchanged.

Source: Linters/SAST tools

Comment thread tests/Behat/README.md
Comment on lines 83 to +92
2. Exclude the tag from the specific suite in the `behat.yml` (note the `~` prefix):

```
default:
suites:
[...]
redmine_5_1:
redmine_6_1:
[...]
filters:
tags: "~@since60000"
tags: "~@since70000"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Exclude @since70000 from every pre-7.0 suite.

The example filters only redmine_6_1; redmine_6_0 and redmine_5_1 will still run the tagged scenario. Show the equivalent filter on both suites.

🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 85-85: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 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 `@tests/Behat/README.md` around lines 83 - 92, Update the Behat configuration
example in the relevant README section to show the ~`@since70000` tag filter for
every pre-7.0 suite, including redmine_6_1, redmine_6_0, and redmine_5_1, so
tagged scenarios are excluded from each suite.

@Art4
Art4 merged commit f1f4ccf into v2.x Jul 26, 2026
34 checks passed
@Art4
Art4 deleted the 479-redmine-7 branch July 26, 2026 11:31
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.

Update the Behat tests: Redmine 7.0.0 is now available Update the Behat tests: Redmine 6.1.3, 6.0.10 and 5.1.13 released

1 participant