|
| 1 | +# News |
| 2 | + |
| 3 | +We follow SemVer as most of the Julia ecosystem. Below you might see the "breaking" label even for minor version bumps -- we use it a bit more loosely to denote things that are not breaking by SemVer's definition but might cause breakage to people using internal or experimental APIs or undocumented implementation details. |
| 4 | + |
| 5 | +## unreleased |
| 6 | +- `is_articulation(g, v)` for checking whether a single vertex is an articulation point |
| 7 | + |
| 8 | + |
| 9 | +## v1.14.0 - 2026-02-26 |
| 10 | +- **(breaking)** `neighbors`, `inneighbors`, and `outneighbors` now return an immutable `FrozenVector` instead of `Vector` |
| 11 | +- Louvain community detection algorithm |
| 12 | +- Graph views: `ReverseView` and `UndirectedView` for directed graphs |
| 13 | +- New graph products: `strong_product`, `disjunctive_product`, `lexicographic_product`, `homomorphic_product` |
| 14 | +- `maximum_clique`, `clique_number`, `maximal_independent_sets`, `maximum_independent_set`, `independence_number` |
| 15 | +- `regular_tree` generator |
| 16 | +- `kruskal_mst` now accepts weight vectors |
| 17 | +- `is_planar` planarity test and `planar_maximally_filtered_graph` (PMFG) algorithm |
| 18 | +- `count_connected_components` for efficiently counting connected components without materializing them |
| 19 | +- `connected_components!` is now exported and accepts an optional `search_queue` argument to reduce allocations |
| 20 | +- `is_connected` optimized to avoid allocating component vectors |
| 21 | + |
| 22 | +## v1.13.0 - 2025-06-05 |
| 23 | +- **(breaking)** Julia v1.10 (LTS) minimum version requirement |
| 24 | +- Non-allocating `enumerate_paths!` |
| 25 | + |
| 26 | +## v1.12.0 - 2024-09-29 |
| 27 | +- New options for `BFSIterator` |
| 28 | + |
| 29 | +## v1.11.0 - 2024-05-05 |
| 30 | +- DFS and BFS iterators |
| 31 | +- Dorogovtsev-Mendes graph generator optimization |
| 32 | + |
| 33 | +## v1.10.0 - 2024-04-05 |
| 34 | +- Longest path algorithm for DAGs |
| 35 | +- All simple paths algorithm |
| 36 | + |
| 37 | +## v1.9.0 - 2023-09-28 |
| 38 | +- Rewrite of `edit_distance` with edge costs |
| 39 | +- Eulerian cycles/trails for undirected graphs |
| 40 | +- `mincut` implementation |
| 41 | +- `strongly_connected_components_tarjan` |
| 42 | + |
| 43 | +## v1.8.0 - 2023-02-10 |
| 44 | +- `newman_watts_strogatz` graph generator |
| 45 | +- Prufer coding for trees |
| 46 | +- `isdigraphical` |
| 47 | + |
| 48 | +## v1.7.0 - 2022-06-19 |
| 49 | +- Hierarchical documentation structure |
| 50 | + |
| 51 | +## v1.6.0 - 2022-02-09 |
| 52 | +- **(breaking)** Requires Julia >= v1.6 |
| 53 | +- **(breaking)** `Base.zero` no longer mandatory for `AbstractGraph` |
| 54 | +- Simplified `AbstractGraph` interface |
| 55 | + |
| 56 | +## v1.5.0 - 2022-01-09 |
| 57 | +- **(breaking)** `merge_vertices` now only works on subtypes of `AbstractSimpleGraph` |
| 58 | +- `rich_club` function |
| 59 | +- `induced_subgraph` with boolean indexing |
| 60 | +- Optional start vertex for `maximum_adjacency_search` |
| 61 | + |
| 62 | +## v1.4.0 - 2021-10-17 |
| 63 | +- Initial release as Graphs.jl (successor to LightGraphs.jl) |
| 64 | + |
| 65 | +The _Graphs.jl_ project is a reboot of the _LightGraphs.jl_ package (archived in October 2021), which remains available on GitHub at [sbromberger/LightGraphs.jl](https://github.com/sbromberger/LightGraphs.jl). If you don't need any new features developed since the fork, you can continue to use older versions of _LightGraphs.jl_ indefinitely. New versions will be released here using the name _Graphs.jl_ instead of _LightGraphs.jl_. There was an older package also called _Graphs.jl_. The source history and versions are still available in this repository, but the current code base is unrelated to the old _Graphs.jl_ code and is derived purely from _LightGraphs.jl_. To access the history of the old _Graphs.jl_ code, you can start from [commit 9a25019](https://github.com/JuliaGraphs/Graphs.jl/commit/9a2501948053f60c630caf9d4fb257e689629041). |
| 66 | + |
| 67 | +### Transition from LightGraphs to Graphs |
| 68 | + |
| 69 | +_LightGraphs.jl_ and _Graphs.jl_ are functionally identical, still there are some steps involved making the change: |
| 70 | + |
| 71 | +- Change `LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"` to `Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"` in your Project.toml. |
| 72 | +- Update your `using` and `import` statements. |
| 73 | +- Update your type constraints and other references to `LightGraphs` to `Graphs`. |
| 74 | +- Increment your version number. Following semantic versioning, we suggest a patch release when no graphs or other `Graphs.jl`-objects can be passed through the API of your package by those depending on it, otherwise consider it a breaking release. "Passed through" entails created outside and consumed inside your package and vice versa. |
| 75 | +- Tag a release. |
| 76 | + |
| 77 | +### About versions |
| 78 | + |
| 79 | +- The master branch of _Graphs.jl_ is generally designed to work with versions of Julia starting from the [LTS release](https://julialang.org/downloads/#long_term_support_release) all the way to the [current stable release](https://julialang.org/downloads/#current_stable_release), except during Julia version increments as we transition to the new version. |
| 80 | +- Later versions: Some functionality might not work with prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue. |
| 81 | +- The project was previously developed under the name _LightGraphs.jl_ and older versions of _LightGraphs.jl_ (≤ v1.3.5) must still be used with that name. |
| 82 | +- There was also an older package also called _Graphs.jl_ (git tags `v0.2.5` through `v0.10.3`), but the current code base here is a fork of _LightGraphs.jl_ v1.3.5. |
| 83 | +- All older _LightGraphs.jl_ versions are tagged using the naming scheme `lg-vX.Y.Z` rather than plain `vX.Y.Z`, which is used for old _Graphs.jl_ versions (≤ v0.10) and newer versions derived from _LightGraphs.jl_ but released with the _Graphs.jl_ name (≥ v1.4). |
| 84 | +- If you are using a version of Julia prior to 1.x, then you should use _LightGraphs.jl_ at `lg-v.12.*` or _Graphs.jl_ at `v0.10.3` |
0 commit comments