Skip to content

Fix & Modernize CI: upgrade to RabbitMQ 4.3.0 and bump other deps#114

Merged
michalovits merged 1 commit into
bloomberg:mainfrom
flamble:fix-ci-modernize
May 22, 2026
Merged

Fix & Modernize CI: upgrade to RabbitMQ 4.3.0 and bump other deps#114
michalovits merged 1 commit into
bloomberg:mainfrom
flamble:fix-ci-modernize

Conversation

@flamble
Copy link
Copy Markdown
Contributor

@flamble flamble commented May 21, 2026

When raising #113, I realised we needed to do some CI updates to get the tests passing again and generally modernise some of the testing dependencies.

Integration Dockerfile:

  • Upgrade from rabbitmq:3.7.28 (EOL) to 4.3.0
  • Replace python3.8 (EOL) with system python3
  • Use apt python3-pip instead of curl get-pip.py (fixes PyYAML build)
  • Combine apt-get update and install into single RUN layer
  • Enable RabbitMQ file logging (4.x defaults to console-only in Docker)
  • Disable rabbitmq_prometheus plugin (port conflict with multi-node tests)
  • Set NODE_OPTIONS=--dns-result-order=ipv4first (Node 17+ IPv6 fix)

Build system (Conan 1 to Conan 2):

  • Use CMakeDeps + CMakeToolchain generators instead of cmake generator
  • Replace conanbuildinfo.cmake/conan_basic_setup() with find_package()
  • Link explicit Boost component targets instead of CONAN_LIBS
  • Simplify bootstrap script (Conan 2 profile handles compiler settings)
  • Pass CMAKE_TOOLCHAIN_FILE to cmake via Makefile
  • Default CMAKE_BUILD_TYPE to Release for Conan 2 toolchain
  • Remove CONAN_BIN_DIRS workaround in authproto (fixed in Conan 2)

Acceptance tests:

  • Replace python3.8 with python3 throughout
  • Use RABBITMQ_NODENAME=@localhost for predictable log filenames
  • Create /tmp/logs before starting RabbitMQ (4.x doesn't auto-create)
  • Set RABBITMQ_LOGS explicitly (4.x requires it for file logging)
  • Update amqplib/amqp-connection-manager (frame_max >= 8192 for RabbitMQ 4.x)

CI workflow:

  • Replace turtlebrowser/get-conan with setup-python + pip install conan
  • Update actions/checkout from v2 to v4

@flamble flamble marked this pull request as draft May 21, 2026 19:56
@michaelklishin
Copy link
Copy Markdown

FWIW the latest RabbitMQ release is 4.3.1, the latest 4.2 release is 4.2.7.

@flamble
Copy link
Copy Markdown
Contributor Author

flamble commented May 21, 2026

FWIW the latest RabbitMQ release is 4.3.1, the latest 4.2 release is 4.2.7.

Thanks, that's a good point. I'd agree there's no reason no to use the latest of 4.3.1 here. (I had been testing something else with 4.2.3 which is why I'd picked that).

@flamble flamble force-pushed the fix-ci-modernize branch from 6e6622a to d797a93 Compare May 21, 2026 20:40
@flamble flamble changed the title Fix & Modernize CI: upgrade to RabbitMQ 4.2.3 and bump other deps Fix & Modernize CI: upgrade to RabbitMQ 4.3.1 and bump other deps May 21, 2026
@flamble flamble force-pushed the fix-ci-modernize branch 3 times, most recently from 2308d0f to acda40c Compare May 22, 2026 09:30
@flamble flamble marked this pull request as ready for review May 22, 2026 09:31
@flamble flamble force-pushed the fix-ci-modernize branch 2 times, most recently from 899bed5 to e8650ca Compare May 22, 2026 09:45
@flamble flamble changed the title Fix & Modernize CI: upgrade to RabbitMQ 4.3.1 and bump other deps Fix & Modernize CI: upgrade to RabbitMQ 4.3.0 and bump other deps May 22, 2026
@flamble flamble force-pushed the fix-ci-modernize branch 2 times, most recently from 090012a to 137da6d Compare May 22, 2026 10:01
@flamble flamble force-pushed the fix-ci-modernize branch from 137da6d to 5b2fbd2 Compare May 22, 2026 10:38
Integration Dockerfile:
- Upgrade from rabbitmq:3.7.28 (EOL) to 4.3.0
- Replace python3.8 (EOL) with system python3
- Use apt python3-pip instead of curl get-pip.py (fixes PyYAML build)
- Combine apt-get update and install into single RUN layer
- Enable RabbitMQ file logging (4.x defaults to console-only in Docker)
- Disable rabbitmq_prometheus plugin (port conflict with multi-node tests)
- Set NODE_OPTIONS=--dns-result-order=ipv4first (Node 17+ IPv6 fix)

Build system (Conan 1 to Conan 2):
- Use CMakeDeps + CMakeToolchain generators instead of cmake generator
- Replace conanbuildinfo.cmake/conan_basic_setup() with find_package()
- Link explicit Boost component targets instead of CONAN_LIBS
- Simplify bootstrap script (Conan 2 profile handles compiler settings)
- Pass CMAKE_TOOLCHAIN_FILE to cmake via Makefile
- Default CMAKE_BUILD_TYPE to Release for Conan 2 toolchain
- Remove CONAN_BIN_DIRS workaround in authproto (fixed in Conan 2)

Acceptance tests:
- Replace python3.8 with python3 throughout
- Use RABBITMQ_NODENAME=<name>@localhost for predictable log filenames
- Create /tmp/logs before starting RabbitMQ (4.x doesn't auto-create)
- Set RABBITMQ_LOGS explicitly (4.x requires it for file logging)
- Update amqplib/amqp-connection-manager (frame_max >= 8192 for RabbitMQ 4.x)

CI workflow:
- Replace turtlebrowser/get-conan with setup-python + pip install conan
- Update actions/checkout from v2 to v4
@flamble flamble force-pushed the fix-ci-modernize branch from 5b2fbd2 to ec89dd9 Compare May 22, 2026 10:40
@michalovits michalovits merged commit b29376b into bloomberg:main May 22, 2026
3 checks passed
@flamble flamble deleted the fix-ci-modernize branch May 22, 2026 11:24
@flamble
Copy link
Copy Markdown
Contributor Author

flamble commented May 22, 2026

@michaelklishin - I used 4.3.0 since it doesn't look like 4.3.1 has an image yet. Welcome to bump it up once it does!

michalovits pushed a commit that referenced this pull request May 28, 2026
Restore `set(Protobuf_USE_STATIC_LIBS ON)` in authproto/CMakeLists.txt.
This was inadvertently removed in PR #114 when modernising the
find_package call. Without it, protobuf is linked dynamically, causing
runtime failures on systems without the shared library installed.

Also pre-build the Rust performance tester binary in the integration
Dockerfile and require the PERF_TESTER_BIN environment variable in
integration-tests.py. This avoids needing a full Rust toolchain in the
test runtime environment and gives explicit control over the binary
being tested.
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.

3 participants