Skip to content

Feature/agile 326 multiple active sprints without sharing#24191

Open
dombesz wants to merge 12 commits into
devfrom
feature/agile-326-multiple-active-sprints-without-sharing
Open

Feature/agile 326 multiple active sprints without sharing#24191
dombesz wants to merge 12 commits into
devfrom
feature/agile-326-multiple-active-sprints-without-sharing

Conversation

@dombesz

@dombesz dombesz commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Ticket

https://community.openproject.org/wp/AGILE-326

What are you trying to accomplish?

Allow multiple sprints inside a project when the project settings permit this.

What approach did you choose and why?

The first commit introduces multiple sprints unconditionally for all the project sharing settings. The second commit adds the project setting called "Allow multiple active sprints" which restricts multiple sprints to projects where this setting is enabled.
The third commit moves the multiple sprints setting to a separate tab in the project settings and adds interaction between sharing and multiple sprints (e.g., deactivate one when the other is enabled).

Todo:

  • enterprise edititon check and banner. See Figma and be aware of the discussion in the epic. The decisions there might not yet have been noted down in the feature ticket. EDIT: basic plan has been confirmed.
  • consider race conditions. Right now, the view might restrict a setting, but the controllers/contracts might not be aware of them for all cases. Ensure there's no issue.

Merge checklist

  • Added/updated tests
  • Added/updated documentation in Lookbook (patterns, previews, etc)
  • Tested major browsers (Chrome, Firefox, Edge, ...)

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Warning

Flaky specs

  • rspec ./modules/overviews/spec/features/managing_dashboard_page_spec.rb[1:1:1]
🤖 Ask Copilot to investigate

Copy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer.

@copilot The following spec(s) are flaky in CI (first seen on PR #24191, linked for reference only):

- `rspec ./modules/overviews/spec/features/managing_dashboard_page_spec.rb[1:1:1]`

Treat this as a standalone task, unrelated to PR #24191. Create a new branch from origin/dev and open a new pull request targeting dev — do not stack it on PR #24191 or reuse that branch.

Follow the playbook in docs/development/testing/handling-flaky-tests/README.md to find the root cause and fix the underlying race — do not skip, delete, or weaken the spec to make it pass; disabling is a last resort per the playbook, and only with a bug ticket. Verify the fix by running the spec(s) repeatedly (e.g. `script/bulk_run_rspec --run-count 10`).

If you cannot reproduce the flake or are not confident in a fix after reasonable investigation, do not fabricate a change or skip the spec to force CI green. Instead, leave the pull request in draft and document what you tried, the suspected cause, and any leads in its description, then assign @dombesz to take over.

Once the fix is verified, title the PR after the spec(s) it fixes, and use the PR description to explain the root cause, how the change resolves it, and the before/after results. Label the PR `flaky-spec`, assign @dombesz, and request a review from @dombesz.
On every commit, set @dombesz as the sole co-author with a `Co-authored-by:` trailer (use their GitHub no-reply email so it links to their account), so it is traceable who dispatched the fix.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Warning

Flaky specs

  • rspec ./modules/wikis/spec/features/admin/internal_provider_spec.rb[1:1]
🤖 Ask Copilot to investigate

Copy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer.

@copilot The following spec(s) are flaky in CI (first seen on PR #24191, linked for reference only):

- `rspec ./modules/wikis/spec/features/admin/internal_provider_spec.rb[1:1]`

Treat this as a standalone task, unrelated to PR #24191. Create a new branch from origin/dev and open a new pull request targeting dev — do not stack it on PR #24191 or reuse that branch.

Follow the playbook in docs/development/testing/handling-flaky-tests/README.md to find the root cause and fix the underlying race — do not skip, delete, or weaken the spec to make it pass; disabling is a last resort per the playbook, and only with a bug ticket. Verify the fix by running the spec(s) repeatedly (e.g. `script/bulk_run_rspec --run-count 10`).

If you cannot reproduce the flake or are not confident in a fix after reasonable investigation, do not fabricate a change or skip the spec to force CI green. Instead, leave the pull request in draft and document what you tried, the suspected cause, and any leads in its description, then assign @dombesz to take over.

Once the fix is verified, title the PR after the spec(s) it fixes, and use the PR description to explain the root cause, how the change resolves it, and the before/after results. Label the PR `flaky-spec`, assign @dombesz, and request a review from @dombesz.
On every commit, set @dombesz as the sole co-author with a `Co-authored-by:` trailer (use their GitHub no-reply email so it links to their account), so it is traceable who dispatched the fix.

@EinLama EinLama force-pushed the feature/agile-326-multiple-active-sprints-without-sharing branch from 3770dc0 to 5ded453 Compare July 9, 2026 15:23
@EinLama EinLama force-pushed the feature/agile-326-multiple-active-sprints-without-sharing branch from 5c4b8f4 to 447a1bb Compare July 10, 2026 12:48
@github-actions

Copy link
Copy Markdown

Warning

Flaky specs

  • rspec ./spec/features/types/subtypes_index_spec.rb[1:5]
🤖 Ask Copilot to investigate

Copy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer.

@copilot The following spec(s) are flaky in CI (first seen on PR #24191, linked for reference only):

- `rspec ./spec/features/types/subtypes_index_spec.rb[1:5]`

Treat this as a standalone task, unrelated to PR #24191. Create a new branch from origin/dev and open a new pull request targeting dev — do not stack it on PR #24191 or reuse that branch.

Follow the playbook in docs/development/testing/handling-flaky-tests/README.md to find the root cause and fix the underlying race — do not skip, delete, or weaken the spec to make it pass; disabling is a last resort per the playbook, and only with a bug ticket. Verify the fix by running the spec(s) repeatedly (e.g. `script/bulk_run_rspec --run-count 10`).

If you cannot reproduce the flake or are not confident in a fix after reasonable investigation, do not fabricate a change or skip the spec to force CI green. Instead, leave the pull request in draft and document what you tried, the suspected cause, and any leads in its description, then assign @dombesz to take over.

Once the fix is verified, title the PR after the spec(s) it fixes, and use the PR description to explain the root cause, how the change resolves it, and the before/after results. Label the PR `flaky-spec`, assign @dombesz, and request a review from @dombesz.
On every commit, set @dombesz as the sole co-author with a `Co-authored-by:` trailer (use their GitHub no-reply email so it links to their account), so it is traceable who dispatched the fix.

@EinLama EinLama force-pushed the feature/agile-326-multiple-active-sprints-without-sharing branch from d31ec11 to b262276 Compare July 10, 2026 13:58
@EinLama EinLama force-pushed the feature/agile-326-multiple-active-sprints-without-sharing branch from b262276 to 8361ba1 Compare July 10, 2026 13:59
EinLama and others added 8 commits July 13, 2026 13:34
sprint_sharing_changed? checks whether the key "sprint_sharing" appears
anywhere in the settings_change diff array. A project with MAS enabled
and settings={} (sprint_sharing never explicitly saved, reads as
'no_sharing') has nil in the raw store. An API call that explicitly
sends sprint_sharing='no_sharing' writes
{"sprint_sharing"=>"no_sharing"} into the store, making the key appear
in the diff — sprint_sharing_changed? returns true. The second guard
model.allow_multiple_active_sprints? is also true, so the validator adds
:locked_by_multiple_active_sprints and rejects the update — even though
the effective sprint_sharing value did not change. A project managed via
API that ever explicitly names no_sharing while MAS is on is permanently
locked out of non-MAS updates through the normal UpdateService path.
… during perform in order to avoid concurrent service call race conditions.
@github-actions

Copy link
Copy Markdown

Warning

Flaky specs

  • rspec ./modules/backlogs/spec/features/inbox_column_spec.rb[1:6:1]
  • rspec ./spec/features/projects/lists/filters_spec.rb[1:6:1]
🤖 Ask Copilot to investigate

Copy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer.

@copilot The following spec(s) are flaky in CI (first seen on PR #24191, linked for reference only):

- `rspec ./modules/backlogs/spec/features/inbox_column_spec.rb[1:6:1]`
- `rspec ./spec/features/projects/lists/filters_spec.rb[1:6:1]`

Treat this as a standalone task, unrelated to PR #24191. Create a new branch from origin/dev and open a new pull request targeting dev — do not stack it on PR #24191 or reuse that branch.

Follow the playbook in docs/development/testing/handling-flaky-tests/README.md to find the root cause and fix the underlying race — do not skip, delete, or weaken the spec to make it pass; disabling is a last resort per the playbook, and only with a bug ticket. Verify the fix by running the spec(s) repeatedly (e.g. `script/bulk_run_rspec --run-count 10`).

If you cannot reproduce the flake or are not confident in a fix after reasonable investigation, do not fabricate a change or skip the spec to force CI green. Instead, leave the pull request in draft and document what you tried, the suspected cause, and any leads in its description, then assign @dombesz to take over.

Once the fix is verified, title the PR after the spec(s) it fixes, and use the PR description to explain the root cause, how the change resolves it, and the before/after results. Label the PR `flaky-spec`, assign @dombesz, and request a review from @dombesz.
On every commit, set @dombesz as the sole co-author with a `Co-authored-by:` trailer (use their GitHub no-reply email so it links to their account), so it is traceable who dispatched the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants