Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require all feature flags introduced before 3.11.1 #7219

Merged
merged 1 commit into from
Feb 9, 2023

Conversation

ansd
Copy link
Member

@ansd ansd commented Feb 8, 2023

RabbitMQ 3.12 requires feature flag feature_flags_v2 which got introduced in 3.11.0 (see #6810).

Therefore, we can mark all feature flags that got introduced in 3.11.0
or before 3.11.0 as required because users will have to upgrade to
3.11.x first, before upgrading to 3.12.x

The advantage of marking these feature flags as required is that we can
start deleting any compatibliy code for these feature flags, similarly
as done in #5215

This list shows when a given feature flag was first introduced:

classic_mirrored_queue_version 3.11.0
stream_single_active_consumer 3.11.0
direct_exchange_routing_v2 3.11.0
listener_records_in_ets 3.11.0
tracking_records_in_ets 3.11.0

empty_basic_get_metric 3.8.10
drop_unroutable_metric 3.8.10

In this commit, we also force all required feature flags in Erlang
application rabbit to be enabled in mixed version cluster testing
and delete any tests that were about a feature flag starting as disabled.

Furthermore, this commit already deletes the callback (migration) functions
given they do not run anymore in 3.12.x.

All other clean up (i.e. branching depending on whether a feature flag
is enabled) will be done in separate commits.

@ansd ansd added this to the 3.12.0 milestone Feb 8, 2023
deps/rabbit/src/rabbit_core_ff.erl Outdated Show resolved Hide resolved
deps/rabbit/src/rabbit_core_ff.erl Outdated Show resolved Hide resolved
deps/rabbit/src/rabbit_core_ff.erl Outdated Show resolved Hide resolved
RabbitMQ 3.12 requires feature flag `feature_flags_v2` which got
introduced in 3.11.0 (see
#6810).

Therefore, we can mark all feature flags that got introduced in 3.11.0
or before 3.11.0 as required because users will have to upgrade to
3.11.x first, before upgrading to 3.12.x

The advantage of marking these feature flags as required is that we can
start deleting any compatibliy code for these feature flags, similarly
as done in #5215

This list shows when a given feature flag was first introduced:

```
classic_mirrored_queue_version 3.11.0
stream_single_active_consumer 3.11.0
direct_exchange_routing_v2 3.11.0
listener_records_in_ets 3.11.0
tracking_records_in_ets 3.11.0

empty_basic_get_metric 3.8.10
drop_unroutable_metric 3.8.10
```

In this commit, we also force all required feature flags in Erlang
application `rabbit` to be enabled in mixed version cluster testing
and delete any tests that were about a feature flag starting as disabled.

Furthermore, this commit already deletes the callback (migration) functions
given they do not run anymore in 3.12.x.

All other clean up (i.e. branching depending on whether a feature flag
is enabled) will be done in separate commits.
@ansd ansd marked this pull request as ready for review February 8, 2023 16:28
@ansd ansd requested a review from dumbbell February 8, 2023 16:28
ansd added a commit that referenced this pull request Feb 8, 2023
Remove compatibility code for feature flags
* drop_unroutable_metric
* empty_basic_get_metric

since they are required in 3.12.0.

See #7219
@dumbbell dumbbell merged commit 869f861 into main Feb 9, 2023
@dumbbell dumbbell deleted the require-feature-flags branch February 9, 2023 09:10
ansd added a commit that referenced this pull request Feb 9, 2023
Remove compatibility code for feature flags
* drop_unroutable_metric
* empty_basic_get_metric

since they are required in 3.12.0.

See #7219
ansd added a commit that referenced this pull request Feb 13, 2023
Remove compatibility code for feature flag `stream_single_active_consumer`
because this feature flag is `required` in 3.12.

See #7219
ansd added a commit that referenced this pull request Feb 13, 2023
Remove compatibility code for feature flag direct_exchange_routing_v2
because this feature flag is required in 3.12.

See #7219
ansd added a commit that referenced this pull request Feb 13, 2023
Remove compatibility code for feature flag `stream_queue`
because this feature flag is required in 3.12.

See #7219
ansd added a commit that referenced this pull request Feb 13, 2023
Remove compatibility code for feature flag `stream_queue`
because this feature flag is required in 3.12.

See #7219
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants