build(deps): Bump fmtlib version to 11.2.0.#153
Conversation
WalkthroughBumps the fmt dependency to 11.2.0 and updates includes across headers, sources, build and taskfiles to use Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (6)
💤 Files with no reviewable changes (1)
🧰 Additional context used📓 Path-based instructions (1)**/*.{cpp,h,hpp,java,js,jsx,tpp,ts,tsx}⚙️ CodeRabbit configuration file
Files:
🧠 Learnings (10)📚 Learning: 2024-11-18T16:45:46.073ZApplied to files:
📚 Learning: 2024-11-13T20:02:13.737ZApplied to files:
📚 Learning: 2024-11-13T22:25:54.168ZApplied to files:
📚 Learning: 2024-11-02T09:18:31.046ZApplied to files:
📚 Learning: 2024-11-27T22:25:35.608ZApplied to files:
📚 Learning: 2024-10-24T15:54:19.228ZApplied to files:
📚 Learning: 2024-10-24T15:54:35.193ZApplied to files:
📚 Learning: 2025-08-15T12:07:58.626ZApplied to files:
📚 Learning: 2025-08-15T01:04:03.681ZApplied to files:
📚 Learning: 2024-11-02T09:13:56.755ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
🔇 Additional comments (5)
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 5
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (10)
README.md(1 hunks)src/log_surgeon/finite_automata/Dfa.hpp(1 hunks)src/log_surgeon/finite_automata/DfaState.hpp(1 hunks)src/log_surgeon/finite_automata/DfaTransition.hpp(1 hunks)src/log_surgeon/finite_automata/Nfa.hpp(1 hunks)src/log_surgeon/finite_automata/NfaSpontaneousTransition.hpp(1 hunks)src/log_surgeon/finite_automata/NfaState.hpp(1 hunks)src/log_surgeon/finite_automata/RegexAST.hpp(1 hunks)src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp(1 hunks)taskfiles/deps.yaml(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{cpp,h,hpp,java,js,jsx,tpp,ts,tsx}
⚙️ CodeRabbit configuration file
- Prefer
false == <expression>rather than!<expression>.
Files:
src/log_surgeon/finite_automata/NfaState.hppsrc/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hppsrc/log_surgeon/finite_automata/RegexAST.hppsrc/log_surgeon/finite_automata/DfaState.hppsrc/log_surgeon/finite_automata/Nfa.hppsrc/log_surgeon/wildcard_query_parser/QueryInterpretation.cppsrc/log_surgeon/finite_automata/DfaTransition.hpp
🧠 Learnings (15)
📚 Learning: 2024-11-13T20:02:13.737Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#48
File: src/log_surgeon/finite_automata/RegexNFAState.hpp:0-0
Timestamp: 2024-11-13T20:02:13.737Z
Learning: In `src/log_surgeon/finite_automata/RegexNFAState.hpp`, the constructor `RegexNFAState(std::set<Tag const*> tags, RegexNFAState const* dest_state)` has been updated to use `std::vector<Tag const*> tags` instead of `std::set`.
Applied to files:
src/log_surgeon/finite_automata/NfaState.hppsrc/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hppsrc/log_surgeon/finite_automata/RegexAST.hppsrc/log_surgeon/finite_automata/DfaState.hppsrc/log_surgeon/finite_automata/Nfa.hppsrc/log_surgeon/finite_automata/DfaTransition.hpp
📚 Learning: 2024-10-24T15:54:35.193Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#42
File: src/log_surgeon/finite_automata/RegexNFA.hpp:442-456
Timestamp: 2024-10-24T15:54:35.193Z
Learning: In the C++ file `src/log_surgeon/finite_automata/RegexNFA.hpp`, for the `RegexNFA::serialize()` function, prioritize code clarity over efficiency when handling string operations.
Applied to files:
src/log_surgeon/finite_automata/NfaState.hppsrc/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hppsrc/log_surgeon/finite_automata/RegexAST.hppsrc/log_surgeon/finite_automata/Nfa.hpp
📚 Learning: 2024-11-18T16:45:46.073Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#50
File: src/log_surgeon/finite_automata/Tag.hpp:0-0
Timestamp: 2024-11-18T16:45:46.073Z
Learning: The class `TagPositions` was removed from `src/log_surgeon/finite_automata/Tag.hpp` as it is no longer needed.
Applied to files:
src/log_surgeon/finite_automata/NfaState.hppsrc/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hppsrc/log_surgeon/finite_automata/RegexAST.hppsrc/log_surgeon/finite_automata/DfaState.hppsrc/log_surgeon/finite_automata/Nfa.hppsrc/log_surgeon/finite_automata/DfaTransition.hpp
📚 Learning: 2024-10-24T15:54:19.228Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#42
File: src/log_surgeon/finite_automata/RegexNFA.hpp:99-105
Timestamp: 2024-10-24T15:54:19.228Z
Learning: In `src/log_surgeon/finite_automata/RegexNFA.hpp`, it's acceptable to have constructors without the `explicit` specifier. Do not suggest adding `explicit` to constructors in this file.
Applied to files:
src/log_surgeon/finite_automata/NfaState.hppsrc/log_surgeon/finite_automata/RegexAST.hppsrc/log_surgeon/finite_automata/Nfa.hpp
📚 Learning: 2024-11-13T22:25:54.168Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#48
File: tests/test-tag.cpp:10-10
Timestamp: 2024-11-13T22:25:54.168Z
Learning: In the log-surgeon codebase (C++), particularly in the finite automata components involving the `Tag` class (`src/log_surgeon/finite_automata/Tag.hpp`), it's important to ensure that `Tag*` pointers in other objects cannot be `nullptr`. Test cases should focus on validating that these `Tag*` pointers are not null where they are used, and handle `nullptr` appropriately.
Applied to files:
src/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hppsrc/log_surgeon/finite_automata/RegexAST.hpp
📚 Learning: 2024-11-02T09:18:31.046Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#47
File: src/log_surgeon/finite_automata/TaggedTransition.hpp:16-37
Timestamp: 2024-11-02T09:18:31.046Z
Learning: In `src/log_surgeon/finite_automata/TaggedTransition.hpp`, the classes `PositiveTaggedTransition` and `NegativeTaggedTransition` currently do not share enough functionality to justify refactoring into a common base class.
Applied to files:
src/log_surgeon/finite_automata/NfaSpontaneousTransition.hppsrc/log_surgeon/finite_automata/Dfa.hpp
📚 Learning: 2025-08-15T12:07:58.626Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#150
File: tests/test-expression-view.cpp:7-7
Timestamp: 2025-08-15T12:07:58.626Z
Learning: In tests/test-expression-view.cpp, the `<catch2/catch_message.hpp>` header is required for clang-tidy to pass, even though it may not be directly used in the visible code.
Applied to files:
README.md
📚 Learning: 2024-10-11T16:16:02.866Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#38
File: src/log_surgeon/finite_automata/RegexAST.hpp:663-669
Timestamp: 2024-10-11T16:16:02.866Z
Learning: In `RegexASTLiteral::serialize()`, to properly handle Unicode characters beyond the ASCII range, cast `m_character` to `char32_t` and use `U"{}{}"` in `fmt::format`.
Applied to files:
src/log_surgeon/finite_automata/RegexAST.hpp
📚 Learning: 2024-11-02T09:13:56.755Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#47
File: src/log_surgeon/finite_automata/RegexNFAState.hpp:127-128
Timestamp: 2024-11-02T09:13:56.755Z
Learning: `RegexNFAUTF8State` is defined as a type alias for `RegexNFAState<RegexNFAStateType::UTF8>`.
Applied to files:
src/log_surgeon/finite_automata/DfaState.hpp
📚 Learning: 2024-11-27T22:25:35.608Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#56
File: src/log_surgeon/finite_automata/RegisterHandler.hpp:0-0
Timestamp: 2024-11-27T22:25:35.608Z
Learning: In the `RegisterHandler` class in `src/log_surgeon/finite_automata/RegisterHandler.hpp`, the methods `add_register` and `append_position` rely on `emplace_back` and `m_prefix_tree.insert` to handle exceptions correctly and maintain consistent state without requiring additional exception handling.
Applied to files:
src/log_surgeon/finite_automata/Nfa.hppsrc/log_surgeon/finite_automata/DfaTransition.hpp
📚 Learning: 2025-08-08T10:21:56.571Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#144
File: src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp:57-77
Timestamp: 2025-08-08T10:21:56.571Z
Learning: In src/log_surgeon/wildcard_query_parser/QueryInterpretation.hpp/.cpp (C++), for QueryInterpretation::append_query_interpretation, prefer a single overload taking QueryInterpretation const&; do not suggest adding an rvalue/move overload in future reviews for this method.
Applied to files:
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp
📚 Learning: 2025-08-08T10:22:26.739Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#144
File: src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp:98-120
Timestamp: 2025-08-08T10:22:26.739Z
Learning: In C++ file src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp, for QueryInterpretation::serialize(), prefer explicit std::holds_alternative/std::get branching over std::visit for readability; do not suggest refactoring to std::visit in future reviews.
Applied to files:
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp
📚 Learning: 2025-08-08T10:23:06.281Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#144
File: src/log_surgeon/wildcard_query_parser/QueryInterpretation.hpp:80-88
Timestamp: 2025-08-08T10:23:06.281Z
Learning: In y-scope/log-surgeon (C++), small function definitions are allowed to remain inline in headers. For src/log_surgeon/wildcard_query_parser/QueryInterpretation.hpp, do not suggest moving small methods like QueryInterpretation::append_variable_token to the .cpp for “consistency” in future reviews.
Applied to files:
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp
📚 Learning: 2025-08-08T10:00:20.963Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#144
File: src/log_surgeon/wildcard_query_parser/VariableQueryToken.hpp:28-31
Timestamp: 2025-08-08T10:00:20.963Z
Learning: In src/log_surgeon/wildcard_query_parser/QueryInterpretation.hpp (C++), do not default the comparison operators: the class stores std::vector<std::variant<StaticQueryToken, VariableQueryToken>>, which yields only a weak ordering. A custom operator<=> that maps the variant’s weak ordering to std::strong_ordering is required; avoid suggesting defaulting there in future reviews.
Applied to files:
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp
📚 Learning: 2025-08-08T10:17:43.495Z
Learnt from: SharafMohamed
PR: y-scope/log-surgeon#144
File: src/log_surgeon/wildcard_query_parser/VariableQueryToken.hpp:28-31
Timestamp: 2025-08-08T10:17:43.495Z
Learning: In src/log_surgeon/wildcard_query_parser/VariableQueryToken.hpp/.cpp (C++), do not suggest defaulting operator<=>. The project prefers a custom out-of-line comparator that explicitly handles the bool member (via explicit cast) to avoid implicit conversions; keep the current manual implementation.
Applied to files:
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: lint (ubuntu-24.04)
- GitHub Check: lint (macos-15)
- GitHub Check: build (ubuntu-24.04, debug)
- GitHub Check: build (macos-15, release)
- GitHub Check: build (macos-15, debug)
🔇 Additional comments (5)
src/log_surgeon/finite_automata/RegexAST.hpp (1)
22-25: Header switch to fmt/format.h is correct for fmt 11.x; xchar/ranges coverage looks complete.fmt::format is required (join support comes via fmt/ranges.h and U-literals/char32_t via fmt/xchar.h). This aligns with the dependency bump and keeps Unicode serialisation intact.
src/log_surgeon/wildcard_query_parser/QueryInterpretation.cpp (1)
12-14: Adding fmt/ranges.h is appropriate for fmt::join usage.The file already includes fmt/format.h; together these ensure the serialisation at Lines 93–97 formats correctly. No behavioural change.
src/log_surgeon/finite_automata/NfaState.hpp (1)
23-25: Replacing fmt/core.h with fmt/ranges.h matches the code’s fmt::join usage.fmt/format.h remains for fmt::format, so this is the right combination for fmt 11.2.0.
src/log_surgeon/finite_automata/NfaSpontaneousTransition.hpp (1)
14-16: Including fmt/ranges.h is necessary here due to views + fmt::join.This matches the transform(view) pattern in serialize() and the project-wide update.
src/log_surgeon/finite_automata/DfaTransition.hpp (1)
15-15: Adding fmt/ranges.h is correct for join-based serialisation.This aligns with fmt ≥ 11 behaviour and local usage.
Description
CLPis bumping fmtlib version to 11.2.0, so we need to do the same for log-surgeon to stay consistent across projects.Bumps
fmtlibversion and cleans up fmt headers. In11.2.0:fmt::formatshould be brought in by<fmt/format.h>fmt::joinshould be brought in by<fmt/ranges.h>.<fmt/core.h>is obsolete.Checklist
breaking change.
Validation performed
Summary by CodeRabbit
No user-facing behaviour changes.