Add support for Redmine 7.0.0 - #480
Conversation
📝 WalkthroughWalkthroughRedmine 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. ChangesRedmine versioned testing
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
- 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.
- 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)
There was a problem hiding this comment.
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
📒 Files selected for processing (11)
.github/workflows/tests.ymlCHANGELOG.mdREADME.mdcomposer.jsondocker-compose.ymltests/Behat/Bootstrap/FeatureContext.phptests/Behat/README.mdtests/Behat/behat.ymltests/Behat/features/user.featuretests/Behat/features/wiki.featuretests/RedmineExtension/RedmineVersion.php
|
|
||
| ### Changed | ||
|
|
||
| - Behaviour-driven tests are run against Redmine 7.0.0, 6.1.3, 6.0.10, 5.1.12. |
There was a problem hiding this comment.
📐 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.
| - 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.
| .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 && |
There was a problem hiding this comment.
🎯 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: createredmine-50113_data.docker-compose.yml#L97-L106: useredmine:5.1.13and mountredmine-50113_data.tests/Behat/behat.yml#L29-L34: update the default profile to5.1.13andredmine-50113_data.tests/Behat/behat.yml#L56-L60: update the GitHub Actions profile to5.1.13andredmine-50113_data..github/workflows/tests.yml#L64-L67: useredmine-50113_data.
📍 Affects 3 files
docker-compose.yml#L7-L10(this comment)docker-compose.yml#L97-L106tests/Behat/behat.yml#L29-L34tests/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.
| 1. Tag features or scenarios e.g. with `@since60000`. | ||
| 1. Tag features e.g. with `@since70000`. | ||
|
|
||
| ``` |
There was a problem hiding this comment.
📐 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.0Also 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
| 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" |
There was a problem hiding this comment.
🎯 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.
closes #479, closes #477, requires #476
Summary by CodeRabbit
New Features
Changed
Documentation