Repository navigation
What's Changed
✨ New Features
- Add basic
treeclass by @bobluppes in #278 - Add support for laying out graphs horizontally in
to_dotby @mlyoung101 in #301
⚡ Performance
- Use a binary heap instead of a full rescan in Prim's MST by @bobluppes in #387
- Add a hash combiner for improved hashing performance by @laurence-atomic in #250
🐛 Fixes
- Fix potential race for file access in
DotTestby @joweich in #249 - Fix missing standard library includes for gcc 16 / clang 23 by @bobluppes in #373
- Fix missing
<algorithm>includes for gcc-14 compatibility by @bobluppes in #374 - Make the Kruskal comparator impose strict weak ordering by @bobluppes in #281
- Fix
floyd_warshall_shortest_pathsbreaking afterremove_vertex(non-breaking) by @bobluppes in #388
📦 Packaging & Build
- Prepare library for CMake
FetchContentby @FlorianXXIV in #217, fixed up by @FredericSabot in #312 - Add pkg-config (
.pc) install support by @mccakit in #306 - Remove the
fmtdependency from the library itself by @mccakit in #305 - Generate
compile_commands.jsonby default - Make headers self-contained in
.tppfiles, for a better out-of-the-box experience with default-configured LSPs by @bobluppes in #279
🧹 Other
- Add missing include in
tarjan_test.cppby @hxmus in #201 - Apply clang-format by @bobluppes in #218
A note on this release
This release deliberately excludes a number of known bug fixes that were merged to main alongside the above: fixes for add_edge/remove_edge exception behavior, get_neighbors's return signature, A*'s reported path cost, self-loop degree counting, get_transposed_graph dropping isolated vertices, and directed-graph coloring correctness. Each of these changes the observable output, exception type, or signature for existing correct callers, so shipping them as part of a minor release would violate semver.
They've been held back on a next-major branch and will ship together with a larger planned API restructuring as a single v2.0.0, with full migration notes, rather than arriving as two separate breaking releases in quick succession.
Full Changelog: v1.1.1...v1.2.0