Skip to content

Comments

Remove RELEASE_BUILDS_PER_PROFILE feature flag#37391

Merged
nospame merged 12 commits intomasterfrom
ejp/delete-week/release-build-per-profile
Feb 20, 2026
Merged

Remove RELEASE_BUILDS_PER_PROFILE feature flag#37391
nospame merged 12 commits intomasterfrom
ejp/delete-week/release-build-per-profile

Conversation

@nospame
Copy link
Contributor

@nospame nospame commented Feb 18, 2026

Product Description

No user-facing changes. This PR removes deprecated backend code that is no longer in use.

Technical Summary

https://dimagi.atlassian.net/browse/SAAS-19317
This PR removes the deprecated RELEASE_BUILDS_PER_PROFILE feature flag and all associated code. The feature flag was introduced in December 2018 (PR #22736) to enable selective build releases for app profiles, but has been marked as TAG_DEPRECATED and is no longer in use.

This removes all uses of the LatestEnabledBuildProfiles model, ManageReleasesByAppProfile view and forms, related utility functions, and UI elements from templates.

Note: LatestEnabledBuildProfiles model is kept for now and should be removed in a follow-up PR in ~6 weeks, to allow time for self-hosters to deploy this code.

Feature Flag

Removes: RELEASE_BUILDS_PER_PROFILE

Safety Assurance

Safety story

This change is safe because:

  • The feature flag has been marked as TAG_DEPRECATED, indicating it should not be used
  • The changes only remove unused or inaccessible code paths - no active functionality is affected

Tested on staging that:

  • App download (ccz) functionality works correctly
  • Release management flows function as expected
  • Source files view operates normally, including "Build Profile" showing localized multimedia
  • No console errors or broken UI elements

Automated test coverage

  • Updated existing tests to remove references to removed functionality
  • Test suite validates that app download and release management flows continue to work correctly

QA Plan

No formal QA needed.

Rollback instructions

  • This PR can be reverted after deploy with no further considerations

Labels & Review

  • Risk label is set correctly
  • The set of people pinged as reviewers is appropriate for the level of risk of the change

(PR description co-written by Claude)

@nospame nospame added the product/invisible Change has no end-user visible impact label Feb 18, 2026
@nospame nospame force-pushed the ejp/delete-week/release-build-per-profile branch from 015611a to 7a5c578 Compare February 18, 2026 23:46
@nospame nospame force-pushed the ejp/delete-week/release-build-per-profile branch from 43b9f1b to 257967e Compare February 19, 2026 01:02
@nospame nospame requested a review from jingcheng16 February 19, 2026 17:57
@nospame nospame marked this pull request as ready for review February 19, 2026 17:57
@nospame nospame requested a review from esoergel as a code owner February 19, 2026 17:57
@nospame nospame requested a review from kaapstorm February 19, 2026 17:57
Copy link
Contributor

@jingcheng16 jingcheng16 left a comment

Choose a reason for hiding this comment

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

Only one question

('forced', self.build_profile_id, {'value': self.v2_build.version, 'force': True}),
('off', {}),
('on', {'value': self.v3_build.version, 'force': False}),
('forced', {'value': self.v3_build.version, 'force': True}),
Copy link
Contributor

Choose a reason for hiding this comment

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

Seems like you removed test case for v2_build and v2_build is never referenced in this test, thus can be removed from the test class?

Copy link
Contributor

Choose a reason for hiding this comment

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

build_profile_id and build_profiles can be removed as well.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you help me understand what does this test and do we need to make new versions in setupClass()?

Copy link
Contributor Author

@nospame nospame Feb 20, 2026

Choose a reason for hiding this comment

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

Previously it was making a build profile id-specific version, so depending on whether a build profile id was passed in, you'd get back a different version. You're correct that the extra build isn't doing anything special anymore, it's just incrementing the version and can be removed.

@nospame nospame merged commit 0daa9e5 into master Feb 20, 2026
16 checks passed
@nospame nospame deleted the ejp/delete-week/release-build-per-profile branch February 20, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

product/invisible Change has no end-user visible impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants