Skip to content

Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (IMemberService.GetMembersByPropertyValue)#22678

Merged
lauraneto merged 2 commits into
v18/devfrom
v18/task/further-todos-and-obsoletes-9
May 4, 2026
Merged

Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (IMemberService.GetMembersByPropertyValue)#22678
lauraneto merged 2 commits into
v18/devfrom
v18/task/further-todos-and-obsoletes-9

Conversation

@AndyButland

@AndyButland AndyButland commented May 2, 2026

Copy link
Copy Markdown
Contributor

Description

This continues the v18 cleanup series, removing the four IMemberService.GetMembersByPropertyValue overloads. All four were [Obsolete("Please use Search (Examine) instead, scheduled for removal in Umbraco 18.")] and had no production callers — the only consumers were 14 tests in MemberServiceTests that exercised the deprecated API directly.

Removed

From Umbraco.Cms.Core.Services.IMemberService and its implementation Umbraco.Cms.Core.Services.MemberService:

  • GetMembersByPropertyValue(string propertyTypeAlias, string value, StringPropertyMatchType matchType = StringPropertyMatchType.Exact)
  • GetMembersByPropertyValue(string propertyTypeAlias, int value, ValuePropertyMatchType matchType = ValuePropertyMatchType.Exact)
  • GetMembersByPropertyValue(string propertyTypeAlias, bool value)
  • GetMembersByPropertyValue(string propertyTypeAlias, DateTime value, ValuePropertyMatchType matchType = ValuePropertyMatchType.Exact)

Tests

The 14 corresponding tests in tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs (Get_By_Property_String_Value_*, Get_By_Property_Int_Value_*, Get_By_Property_Date_Value_*) have been removed. No replacement coverage is needed — the recommended path is search via Examine, which has its own dedicated test coverage.

Breaking changes

Testing

Solution builds and tests pass.

Copilot AI review requested due to automatic review settings May 2, 2026 14:57
@claude

claude Bot commented May 2, 2026

Copy link
Copy Markdown

Claude finished @AndyButland's task in 1m 24s —— View job


PR Review

Target: origin/v18/dev · Based on commit: 0ea741f6 · Classified as: Deletion-only cleanup

Removes the four IMemberService.GetMembersByPropertyValue overloads (interface + implementation + 14 tests) that were obsoleted in a prior version and scheduled for removal in Umbraco 18.

  • Modified public API: IMemberService — removed GetMembersByPropertyValue(string, string, StringPropertyMatchType), GetMembersByPropertyValue(string, int, ValuePropertyMatchType), GetMembersByPropertyValue(string, bool), GetMembersByPropertyValue(string, DateTime, ValuePropertyMatchType)
  • Breaking changes: All four removed overloads were [Obsolete("...scheduled for removal in Umbraco 18.")]. Current version is 18.0.0-beta1, so removal is correctly timed. Any external IMemberService implementations will need to remove these methods; any callers must migrate to Examine search. This is the intended v18 breaking change.

No Critical, Important, or Suggestion findings. The cleanup is thorough:

  • Zero remaining references to GetMembersByPropertyValue anywhere in src/ or tests/
  • The sole IMemberService implementation in the repo (MemberService) is updated consistently
  • Unused using directives (Examine, Examine.Search, Umbraco.Cms.Core.Sync, Umbraco.Cms.Infrastructure.Examine) correctly removed from the test file
  • No mock implementations of IMemberService in the test suite reference the removed methods

Approved

This looks good to be merged as-is, but please do a manual sanity check and testing before merging.

Copilot AI left a comment

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.

Pull request overview

Removes the previously-obsoleted IMemberService.GetMembersByPropertyValue overloads as part of the Umbraco 18 cleanup, along with the integration tests that exercised those deprecated APIs.

Changes:

  • Removed 4 obsolete GetMembersByPropertyValue overloads from IMemberService.
  • Removed the corresponding implementations from MemberService.
  • Deleted the 14 integration tests that directly covered the deprecated API (and cleaned up now-unused usings).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs Removes integration tests that exercised the deprecated GetMembersByPropertyValue API and drops now-unused Examine/Sync usings.
src/Umbraco.Core/Services/MemberService.cs Removes the obsolete GetMembersByPropertyValue method implementations from the concrete service.
src/Umbraco.Core/Services/IMemberService.cs Removes the obsolete GetMembersByPropertyValue overloads from the public service contract.

@claude claude Bot added the area/backend label May 2, 2026
@lauraneto lauraneto enabled auto-merge (squash) May 4, 2026 14:16
@lauraneto lauraneto merged commit 7eb586f into v18/dev May 4, 2026
28 checks passed
@lauraneto lauraneto deleted the v18/task/further-todos-and-obsoletes-9 branch May 4, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants