Skip to content

Bump RabbitMQ containers from 4.2.x to 4.3.0-management#84

Draft
niemyjski wants to merge 1 commit into
mainfrom
upgrade-rabbitmq-4.3.0
Draft

Bump RabbitMQ containers from 4.2.x to 4.3.0-management#84
niemyjski wants to merge 1 commit into
mainfrom
upgrade-rabbitmq-4.3.0

Conversation

@niemyjski
Copy link
Copy Markdown
Member

Summary

  • Upgrade the standard Docker container (docker-compose.yml) from 4.2.5 to 4.3.0-management
  • Pin the Aspire AppHost AddRabbitMQ resource to 4.3.0 via .WithImageTag("4.3.0")
  • Upgrade chaos cluster nodes from 4.2.2-management to 4.3.0-management
  • The delayed exchange container (build/Dockerfile) remains on 4.2.5 since the rabbitmq_delayed_message_exchange plugin is incompatible with RabbitMQ 4.3 (Mnesia removed)

Supersedes #74 (dependabot PR that only touches docker-compose.yml).

Notes

The existing code already handles 4.3 compatibility:

  • _delayedExchangePluginIncompatibleVersion gates the plugin probe on >= 4.3
  • _globalQosRemovedVersion handles per-channel QoS changes
  • Features like ConsumerTimeout, DelayedRetries, MessagePriority already validate server version >= 4.3

No source code changes needed -- this is purely a container version bump.

Test plan

  • dotnet build succeeds with 0 warnings
  • dotnet test passes all non-infrastructure-dependent tests (118 passed, 0 failed)
  • CI passes with the new 4.3.0 containers (integration tests)

…ructure

- Upgrade Aspire AppHost and chaos cluster to RabbitMQ 4.3.0-management
- Remove docker-compose.yml (Aspire AppHost handles all container orchestration)
- Remove build/Dockerfile and delayed_message_exchange plugin (incompatible with 4.3)
- Remove delayed exchange test classes and fixture wiring
- Remove --delayed CLI option from sample apps
- Clean up dependabot, solution items, and VS Code tasks
@niemyjski niemyjski force-pushed the upgrade-rabbitmq-4.3.0 branch from 002572a to 92ce2fb Compare May 28, 2026 21:44
@niemyjski niemyjski requested a review from Copilot May 28, 2026 21:47
@niemyjski niemyjski self-assigned this May 28, 2026
@niemyjski niemyjski marked this pull request as draft May 28, 2026 21:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the test/apphost RabbitMQ container versions to RabbitMQ 4.3.0 and removes the repository’s docker-compose + delayed-exchange Docker image/test harness paths (including the delayed-exchange sample CLI switches), consolidating container orchestration around the Aspire AppHost.

Changes:

  • Pin Aspire AppHost RabbitMQ resource to 4.3.0 and bump chaos-cluster nodes to 4.3.0-management.
  • Remove the delayed-exchange container wiring from the Aspire test fixture/AppHost and delete the delayed-exchange “shim” test classes.
  • Delete local Docker assets (docker-compose.yml, build/Dockerfile), remove the VS Code “docker: rabbitmq” task, and remove Dependabot Docker update configs.

Reviewed changes

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

Show a summary per file
File Description
tests/Foundatio.RabbitMQ.Tests/Messaging/RabbitMqMessageBusDelayedExchangeTests.cs Deleted delayed-exchange fixture-based test entrypoint.
tests/Foundatio.RabbitMQ.Tests/Messaging/RabbitMqMessageBusClassicDelayedExchangeTests.cs Deleted classic delayed-exchange fixture-based test entrypoint.
tests/Foundatio.RabbitMQ.Tests/AspireFixture.cs Removes delayed-exchange connection string/resource wait; retains core messaging + chaos availability.
tests/Foundatio.RabbitMQ.AppHost/Program.cs Pins RabbitMQ to 4.3.0 and bumps chaos nodes to 4.3.0-management; removes delayed container.
samples/Foundatio.RabbitMQ.Subscribe/Program.cs Removes --delayed option and port-rewrite behavior.
samples/Foundatio.RabbitMQ.Publish/Program.cs Removes --delayed option and port-rewrite behavior.
Foundatio.RabbitMQ.slnx Removes docker-compose/Dockerfile from Solution Items.
docker-compose.yml Deleted.
build/Dockerfile Deleted (previously built delayed-exchange plugin image).
.vscode/tasks.json Removes the “docker: rabbitmq” task.
.github/dependabot.yml Removes Docker/docker-compose update configurations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 5 to 8
builder.AddRabbitMQ("messaging")
.WithImageTag("4.3.0")
.WithManagementPlugin();

Comment on lines 15 to 19
private DistributedApplication? _app;
public DistributedApplication App => _app ?? throw new InvalidOperationException("Fixture not initialized - Aspire AppHost failed to start");
public string? MessagingConnectionString { get; private set; }
public string? MessagingDelayedConnectionString { get; private set; }
public bool ChaosClusterAvailable { get; private set; }
public bool IsAvailable => _app is not null && MessagingConnectionString is not null;
Comment thread Foundatio.RabbitMQ.slnx
Comment on lines 6 to 11
<Folder Name="/Solution Items/">
<File Path=".editorconfig" />
<File Path="build/common.props" />
<File Path="build/Dockerfile" />
<File Path="docker-compose.yml" />
<File Path="README.md" />
<File Path="tests/Directory.Build.props" />
</Folder>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants