Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

This PR pins networkx to the latest release 3.6.

Changelog

3.6

We're happy to announce the release of networkx 3.6!

New Features

- ENH: add normalize option for `subgraph_centrality` and its `_exp` version ([8340](https://github.com/networkx/networkx/pull/8340)).

API Changes

- Replace `random_lobster` with `random_lobster_graph` ([8067](https://github.com/networkx/networkx/pull/8067)).
- Replace `maybe_regular_expander` with `maybe_regular_expander_graph` ([8050](https://github.com/networkx/networkx/pull/8050)).
- Rm networkx.algorithms.threshold.swap_d ([8213](https://github.com/networkx/networkx/pull/8213)).
- Expire deprecation of compute_v_structures ([8281](https://github.com/networkx/networkx/pull/8281)).
- Rm unused dissuade_hubs kwarg from forceatlas2 ([8293](https://github.com/networkx/networkx/pull/8293)).
- Expire deprecation of link kwarg in node_link fns ([8282](https://github.com/networkx/networkx/pull/8282)).
- DEP: Deprecate metric_closure ([8304](https://github.com/networkx/networkx/pull/8304)).

Enhancements

- Improve error message for removed `random_tree` function ([8105](https://github.com/networkx/networkx/pull/8105)).
- Update approx current_flow betweenness to use k directly ([8007](https://github.com/networkx/networkx/pull/8007)).
- Proposal: update semantics for nonisomorphic trees with order 0 or 1 ([8083](https://github.com/networkx/networkx/pull/8083)).
- SCC benchmarks and use of `G._adj` in Tarjan algorithm ([8064](https://github.com/networkx/networkx/pull/8064)).
- Performance improvement and tests for `edges_equal` ([8077](https://github.com/networkx/networkx/pull/8077)).
- optimise `is_reachable()` ([8112](https://github.com/networkx/networkx/pull/8112)).
- Optimise harmonic centrality ([8158](https://github.com/networkx/networkx/pull/8158)).
- feat(drawing): add missing connection styles in `draw_networkx_edge_labels` and `display` ([8108](https://github.com/networkx/networkx/pull/8108)).
- Optimizing Dijkstra's paths to target (~50x faster for graphs with multiple-hops shortest path) ([8023](https://github.com/networkx/networkx/pull/8023)).
- Add `all_triangles` generator yielding all unique triangles in a graph ([8135](https://github.com/networkx/networkx/pull/8135)).
- refactor: simplify `k_factor` ([8139](https://github.com/networkx/networkx/pull/8139)).
- feat: add directed star graph ([8151](https://github.com/networkx/networkx/pull/8151)).
- Faster `intersection_array` computation for checking distance-regularity ([7181](https://github.com/networkx/networkx/pull/7181)).
- enh: short-circuit in `is_regular` for directed graphs ([8138](https://github.com/networkx/networkx/pull/8138)).
- Avoid re-exploring nodes in Kosaraju's SCC algorithm ([8056](https://github.com/networkx/networkx/pull/8056)).
- trust rank implementation and testing ([8165](https://github.com/networkx/networkx/pull/8165)).
- Add hyper_wiener_index function ([8184](https://github.com/networkx/networkx/pull/8184)).
- Bidirectional dijkstra optimization: from 1.1x to 25x faster ([8206](https://github.com/networkx/networkx/pull/8206)).
- Implement the algorithm to find the centroid(s) of a tree ([8089](https://github.com/networkx/networkx/pull/8089)).
- Set length threshold in FR and use np.clip ([8145](https://github.com/networkx/networkx/pull/8145)).
- Add panther++ ([4400](https://github.com/networkx/networkx/pull/4400)).
- maint: use `nx.circulant_graph` to generate Harary graphs ([8189](https://github.com/networkx/networkx/pull/8189)).
- ENH: add `directed` kwarg to `edges_equal` ([8192](https://github.com/networkx/networkx/pull/8192)).
- Optimizing Dijkstra's path construction for all targets case ([8218](https://github.com/networkx/networkx/pull/8218)).
- ENH: adds ISMAGS support for directed and multigraph with tests and refactor ([8274](https://github.com/networkx/networkx/pull/8274)).
- Dispatch classes such as `nx.Graph(backend=...)` ([7760](https://github.com/networkx/networkx/pull/7760)).
- ENH: Add is_perfect_graph using SPGT (follow-up to 8111) ([8318](https://github.com/networkx/networkx/pull/8318)).
- Add benchmark suite for shortest path algorithms on weighted graphs ([8059](https://github.com/networkx/networkx/pull/8059)).
- Adding Generalized Petersen Graph ([8147](https://github.com/networkx/networkx/pull/8147)).
- ENH: add normalize option for `subgraph_centrality` and its `_exp` version ([8340](https://github.com/networkx/networkx/pull/8340)).
- FEAT: Add a describe method for some basic info about graphs ([8338](https://github.com/networkx/networkx/pull/8338)).

Bug Fixes

- Add Python 3.14 to testing matrix ([8096](https://github.com/networkx/networkx/pull/8096)).
- Fix round-trip to and from pygraphviz.AGraph setting spurious graph attributes ([8121](https://github.com/networkx/networkx/pull/8121)).
- Add input validation to `non_randomness()` and clarify its behavior ([8057](https://github.com/networkx/networkx/pull/8057)).
- Ensure that backend names are valid Python identifiers ([8160](https://github.com/networkx/networkx/pull/8160)).
- fix: resolve failure to pickle.loads(pickle.dumps(PlanarEmbedding())) ([8186](https://github.com/networkx/networkx/pull/8186)).
- Add GEXF 1.3 to the recognized GEXF versions ([8196](https://github.com/networkx/networkx/pull/8196)).
- BUG: Raise on directed graphs in `nx.find_cliques_recursive` ([8211](https://github.com/networkx/networkx/pull/8211)).
- fix `optimize_edit_paths` handling of self-loops ([8207](https://github.com/networkx/networkx/pull/8207)).
- BUG: add check for isolated nodes in `degree_sequence_tree` ([8235](https://github.com/networkx/networkx/pull/8235)).
- Mehlorn Steiner Tree ([8052](https://github.com/networkx/networkx/pull/8052)).
- BUG/MAINT: fix edge betweenness centrality scaling when `k<N` and merge all b.c. rescale helper functions ([8256](https://github.com/networkx/networkx/pull/8256)).
- Fix node attributes on lattice graphs ([8311](https://github.com/networkx/networkx/pull/8311)).
- BUG: allow graphs with nonstandard node labels in FISTA ([8332](https://github.com/networkx/networkx/pull/8332)).
- Make dominance functions consistent with definitions ([8061](https://github.com/networkx/networkx/pull/8061)).
- Pin last value to 1.0 in `cumulative_distribution` to address floating-point errors ([8342](https://github.com/networkx/networkx/pull/8342)).

Documentation

- Fix `min_weight_matching` ([8062](https://github.com/networkx/networkx/pull/8062)).
- Update deploy-docs yml to use Python 3.12 when deploying the docs ([8102](https://github.com/networkx/networkx/pull/8102)).
- DOC: Add missing params to bfs_layout docstring ([8086](https://github.com/networkx/networkx/pull/8086)).
- Add input validation to `non_randomness()` and clarify its behavior ([8057](https://github.com/networkx/networkx/pull/8057)).
- doc: improve docstring for hypercube_graph ([8012](https://github.com/networkx/networkx/pull/8012)).
- Improved documentation for boundary_expansion function ([7905](https://github.com/networkx/networkx/pull/7905)).
- DOC: Add docstring example count number of unique triangles ([8144](https://github.com/networkx/networkx/pull/8144)).
- Add function bfs_labeled_edges to docs ([8149](https://github.com/networkx/networkx/pull/8149)).
- Fix issues with urls in HITS reference docs ([8156](https://github.com/networkx/networkx/pull/8156)).
- Correct the docs for `display()` keyword `node_pos` ([8153](https://github.com/networkx/networkx/pull/8153)).
- Adding Notes on Multi-Target Shortest Path Queries ([8169](https://github.com/networkx/networkx/pull/8169)).
- 3d facebook plot example ([6893](https://github.com/networkx/networkx/pull/6893)).
- trust rank implementation and testing ([8165](https://github.com/networkx/networkx/pull/8165)).
- Improve docs for `all_neighbors()` ([8166](https://github.com/networkx/networkx/pull/8166)).
- Adding shortest-paths documentation ([8187](https://github.com/networkx/networkx/pull/8187)).
- Add Linux Foundation health score badge to README ([8219](https://github.com/networkx/networkx/pull/8219)).
- DOC: Add docstring for `number_of_cliques` ([8216](https://github.com/networkx/networkx/pull/8216)).
- DOC: add docstring for `degree_sequence_tree` ([8236](https://github.com/networkx/networkx/pull/8236)).
- DOC: Add examples to contracted_nodes ([7856](https://github.com/networkx/networkx/pull/7856)).
- DOC: fix wrong reference in `leiden` docs ([8277](https://github.com/networkx/networkx/pull/8277)).
- Fix over-indentation of list in chordless_cycles docstring ([8288](https://github.com/networkx/networkx/pull/8288)).
- Add iplotx to network drawing documentation ([8289](https://github.com/networkx/networkx/pull/8289)).
- Fix sphinx build errors ([8303](https://github.com/networkx/networkx/pull/8303)).
- DOC: Move deprecation procedure from contributing->dev guide ([8308](https://github.com/networkx/networkx/pull/8308)).
- DOC: add gallery example for metric_closure ([8306](https://github.com/networkx/networkx/pull/8306)).
- Cross-link Platonic graphs in See Also section ([8307](https://github.com/networkx/networkx/pull/8307)).
- Add seealso crosslinks between lattice graphs ([8310](https://github.com/networkx/networkx/pull/8310)).
- CI,DOC: Only run one parallel betweenness example ([8305](https://github.com/networkx/networkx/pull/8305)).
- DOC: rework betweenness centrality docstrings ([8264](https://github.com/networkx/networkx/pull/8264)).
- Rm 3D layout and animation from greedy_color example ([8315](https://github.com/networkx/networkx/pull/8315)).
- DOC: Clarify node and edge removal behavior in tutorial ([8321](https://github.com/networkx/networkx/pull/8321)).
- Improving connected module docs ([8267](https://github.com/networkx/networkx/pull/8267)).
- Docs: add nx-neptune backend documentation ([8258](https://github.com/networkx/networkx/pull/8258)).
- Improving shortest paths docs when there is no path between source and target ([8327](https://github.com/networkx/networkx/pull/8327)).
- Adding floating point considerations to tutorial ([8324](https://github.com/networkx/networkx/pull/8324)).
- Adding Dijkstra's algo specific doc ([8286](https://github.com/networkx/networkx/pull/8286)).
- Minor documentation build improvements ([8329](https://github.com/networkx/networkx/pull/8329)).
- Clarify the meaning of the cutoff parameter in some path-finding functions ([7487](https://github.com/networkx/networkx/pull/7487)).
- Switch to the NumFOCUS Code of Conduct ([8320](https://github.com/networkx/networkx/pull/8320)).
- Fix formatting for release docs ([8336](https://github.com/networkx/networkx/pull/8336)).
- DOC: Add warning about special GEXF reserved keywords ([8343](https://github.com/networkx/networkx/pull/8343)).
- Adding amcandio as contributor ([8345](https://github.com/networkx/networkx/pull/8345)).
- Fix sphinx warnings 3.6rc ([8352](https://github.com/networkx/networkx/pull/8352)).

Maintenance

- Rm extraneous print from nx.display ([8084](https://github.com/networkx/networkx/pull/8084)).
- Remove structuralholes.py from `needs_(num|sci)py` ([8088](https://github.com/networkx/networkx/pull/8088)).
- Refactor image comparison tests ([8097](https://github.com/networkx/networkx/pull/8097)).
- Update deploy-docs yml to use Python 3.12 when deploying the docs ([8102](https://github.com/networkx/networkx/pull/8102)).
- Fix typo in extra name ([8103](https://github.com/networkx/networkx/pull/8103)).
- MAINT: Support PEP 639 for license metadata ([8100](https://github.com/networkx/networkx/pull/8100)).
- Use `scipy.sparse` array versions where applicable ([8080](https://github.com/networkx/networkx/pull/8080)).
- pass numpy seed by value not index ([8116](https://github.com/networkx/networkx/pull/8116)).
- Maintenance for broadcasting.py ([8082](https://github.com/networkx/networkx/pull/8082)).
- Bump the actions group across 1 directory with 6 updates ([8085](https://github.com/networkx/networkx/pull/8085)).
- Revert dict comprehensions -> dict.fromkeys accidentally introduced in 8017 ([8018](https://github.com/networkx/networkx/pull/8018)).
- refactor: improve `generate_adjlist` ([8146](https://github.com/networkx/networkx/pull/8146)).
- MAINT: Weekly cron job to run dispatch test with an extensive matrix ([8154](https://github.com/networkx/networkx/pull/8154)).
- Add benchmarks for multisrc_dijkstra over many small graphs ([8164](https://github.com/networkx/networkx/pull/8164)).
- test: clean up `k_factor` tests ([8140](https://github.com/networkx/networkx/pull/8140)).
- Use `pytest.raises` as a context ([8170](https://github.com/networkx/networkx/pull/8170)).
- Testing sentinel-node trick ([8171](https://github.com/networkx/networkx/pull/8171)).
- chore: make benchmarking and release requirements extras in `pyproject.toml` ([8172](https://github.com/networkx/networkx/pull/8172)).
- Add benchmarks for is_regular ([8173](https://github.com/networkx/networkx/pull/8173)).
- MAINT: use `matrix_power` from `scipy.sparse` in `number_of_walks` ([8197](https://github.com/networkx/networkx/pull/8197)).
- MAINT: remove `try except` for `tomllib` in `generate_requirements` ([8198](https://github.com/networkx/networkx/pull/8198)).
- MAINT: Ignore graph hashing warnings in tests ([8205](https://github.com/networkx/networkx/pull/8205)).
- STY: Variable rename proposal in bidirectional_dijkstra ([8210](https://github.com/networkx/networkx/pull/8210)).
- MAINT: Rm print from threshold_graph ([8212](https://github.com/networkx/networkx/pull/8212)).
- feat(api): update non-tree check in `_tree_center`  and move to `tree` subpackage ([8174](https://github.com/networkx/networkx/pull/8174)).
- TST: add seed for `random_cograph` test ([8228](https://github.com/networkx/networkx/pull/8228)).
- Update links for broken testing badge in README ([8234](https://github.com/networkx/networkx/pull/8234)).
- Clarifying `_dispatchable(name=` ([8168](https://github.com/networkx/networkx/pull/8168)).
- MAINT/TST: increase non-`slow` coverage in `k_components` ([8239](https://github.com/networkx/networkx/pull/8239)).
- MAINT/TST: clean up tests for `degree_seq` ([8257](https://github.com/networkx/networkx/pull/8257)).
- Use CircleCI for coverage workflow ([8178](https://github.com/networkx/networkx/pull/8178)).
- Bump the actions group across 1 directory with 5 updates ([8261](https://github.com/networkx/networkx/pull/8261)).
- BUG/MAINT: fix edge betweenness centrality scaling when `k<N` and merge all b.c. rescale helper functions ([8256](https://github.com/networkx/networkx/pull/8256)).
- DOC/MAINT: Use `itertools.pairwise` in `pairwise` and add docstring ([8201](https://github.com/networkx/networkx/pull/8201)).
- Optimizing is_connected ([8266](https://github.com/networkx/networkx/pull/8266)).
- Rm outdated codecov badge from README ([8272](https://github.com/networkx/networkx/pull/8272)).
- CI: Move slow tests from coverage to dedicated run ([8273](https://github.com/networkx/networkx/pull/8273)).
- Move coverage configuration to pyproject.toml ([8287](https://github.com/networkx/networkx/pull/8287)).
- Making weakly connected logic consistent with connected logic ([8285](https://github.com/networkx/networkx/pull/8285)).
- Bump scientific-python/circleci-artifacts-redirector-action from 1.2.0 to 1.3.1 in the actions group ([8309](https://github.com/networkx/networkx/pull/8309)).
- CI: Add nicer rendering of env contents ([8301](https://github.com/networkx/networkx/pull/8301)).
- CI: Install ffmpeg in circleci docs pipeline ([8291](https://github.com/networkx/networkx/pull/8291)).
- Add/bump Python 3.14 to testing matrices ([8319](https://github.com/networkx/networkx/pull/8319)).
- Rm 3D layout and animation from greedy_color example ([8315](https://github.com/networkx/networkx/pull/8315)).
- MAINT: Remove unused sphinx extensions from conf.py ([8314](https://github.com/networkx/networkx/pull/8314)).
- optimize _single_shortest_path function ([6337](https://github.com/networkx/networkx/pull/6337)).
- Add autoflake and pyupgrade as manual pre-commit hooks ([7870](https://github.com/networkx/networkx/pull/7870)).
- ignore autoflake and pyupgrade changes ([8333](https://github.com/networkx/networkx/pull/8333)).
- Revert "ignore autoflake and pyupgrade changes" ([8334](https://github.com/networkx/networkx/pull/8334)).
- Bump actions/upload-artifact from 4 to 5 in the actions group ([8335](https://github.com/networkx/networkx/pull/8335)).

Other

- TST: improve coverage for `generators/deg_seq.py` ([8226](https://github.com/networkx/networkx/pull/8226)).
- TST: test `max_iter` in `asyn_fluidc` ([8224](https://github.com/networkx/networkx/pull/8224)).
- MAINT: clean up tests for `steiner_tree` ([8259](https://github.com/networkx/networkx/pull/8259)).
- TST: add non-`slow` coverage for random graph generators ([8252](https://github.com/networkx/networkx/pull/8252)).
- TST: Add a nonslow test for `all_node_cuts` with shortest augmenting path flow function ([8230](https://github.com/networkx/networkx/pull/8230)).
- TST/MAINT: add non-slow coverage for random generators ([8233](https://github.com/networkx/networkx/pull/8233)).
- TST: add coverage for `isomorphvf2` ([8251](https://github.com/networkx/networkx/pull/8251)).
- TST: ensure determinism in `nx_pylab` drawing tests ([8232](https://github.com/networkx/networkx/pull/8232)).
- TST: add `random_k_out_graph` to tests to hit `try except` path ([8231](https://github.com/networkx/networkx/pull/8231)).
- TST: add coverage for some branches in `internet_as_graphs.py` ([8225](https://github.com/networkx/networkx/pull/8225)).
- TST: test `topo_sort` skips visited nodes in `goldberg_radzik` ([8279](https://github.com/networkx/networkx/pull/8279)).
- CI: Use tag protection rulesets to control releases ([8337](https://github.com/networkx/networkx/pull/8337)).

Contributors

40 authors added to this release (alphabetically):

- [Aka2210](https://github.com/Aka2210)
- [dean985](https://github.com/dean985)
- [georako](https://github.com/georako)
- [georakom](https://github.com/georakom)
- [ishrathtahaseen-9](https://github.com/ishrathtahaseen-9)
- [rudyarthur](https://github.com/rudyarthur)
- [sourabh-sudesh-paradeshi](https://github.com/sourabh-sudesh-paradeshi)
- Aditi Juneja ([Schefflera-Arboricola](https://github.com/Schefflera-Arboricola))
- Adriano Meligrana ([Tortar](https://github.com/Tortar))
- akshita  ([akshitasure12](https://github.com/akshitasure12))
- Albert Koppelmaa ([albastardoto](https://github.com/albastardoto))
- Alejandro Candioti ([amcandio](https://github.com/amcandio))
- Andrew Carbonetto ([acarbonetto](https://github.com/acarbonetto))
- Anthony Labarre ([alabarre](https://github.com/alabarre))
- Casper van Elteren ([cvanelteren](https://github.com/cvanelteren))
- Colman Bouton ([LorentzFactor](https://github.com/LorentzFactor))
- Dan Schult ([dschult](https://github.com/dschult))
- dgpb ([dg-pb](https://github.com/dg-pb))
- Erik Welch ([eriknw](https://github.com/eriknw))
- Fabio Zanini ([iosonofabio](https://github.com/iosonofabio))
- Fei Pan ([fei0319](https://github.com/fei0319))
- Florian2Richter ([Florian2Richter](https://github.com/Florian2Richter))
- Gilles Peiffer ([Peiffap](https://github.com/Peiffap))
- Gustavo Ataide ([gustavo-ataide](https://github.com/gustavo-ataide))
- Hadrien Crassous ([Hadrien-Cr](https://github.com/Hadrien-Cr))
- Jarrod Millman ([jarrodmillman](https://github.com/jarrodmillman))
- Jeff Bradberry ([jbradberry](https://github.com/jbradberry))
- Jonathan Reimer ([jonathimer](https://github.com/jonathimer))
- Maninder Dhanauta ([Maninder-sd](https://github.com/Maninder-sd))
- Marcus Fedarko ([fedarko](https://github.com/fedarko))
- Mauricio Souza de Alencar ([mdealencar](https://github.com/mdealencar))
- Michael Recachinas ([mrecachinas](https://github.com/mrecachinas))
- Mridul Seth ([MridulS](https://github.com/MridulS))
- Peter Cock ([peterjc](https://github.com/peterjc))
- Ross Barnowski ([rossbar](https://github.com/rossbar))
- Stefano Vallodoro ([ilvallod](https://github.com/ilvallod))
- Supreeth Mysore Venkatesh ([supreethmv](https://github.com/supreethmv))
- Till Hoffmann ([tillahoffmann](https://github.com/tillahoffmann))
- Yasser El Haddar ([YasserElHaddar16](https://github.com/YasserElHaddar16))
- Yasser El Haddar ([Yasserelhaddar](https://github.com/Yasserelhaddar))

24 reviewers added to this release (alphabetically):

- [Aka2210](https://github.com/Aka2210)
- [dean985](https://github.com/dean985)
- [georakom](https://github.com/georakom)
- [ishrathtahaseen-9](https://github.com/ishrathtahaseen-9)
- Aditi Juneja ([Schefflera-Arboricola](https://github.com/Schefflera-Arboricola))
- akshita  ([akshitasure12](https://github.com/akshitasure12))
- Alejandro Candioti ([amcandio](https://github.com/amcandio))
- Anthony Labarre ([alabarre](https://github.com/alabarre))
- Christian Clauss ([cclauss](https://github.com/cclauss))
- Colman Bouton ([LorentzFactor](https://github.com/LorentzFactor))
- Dan Schult ([dschult](https://github.com/dschult))
- dgpb ([dg-pb](https://github.com/dg-pb))
- Erik Welch ([eriknw](https://github.com/eriknw))
- Fei Pan ([fei0319](https://github.com/fei0319))
- Gilles Peiffer ([Peiffap](https://github.com/Peiffap))
- Hiroki Hamaguchi ([HirokiHamaguchi](https://github.com/HirokiHamaguchi))
- Jarrod Millman ([jarrodmillman](https://github.com/jarrodmillman))
- Jeff Bradberry ([jbradberry](https://github.com/jbradberry))
- Marcus Fedarko ([fedarko](https://github.com/fedarko))
- Michael Recachinas ([mrecachinas](https://github.com/mrecachinas))
- Mridul Seth ([MridulS](https://github.com/MridulS))
- Ross Barnowski ([rossbar](https://github.com/rossbar))
- Supreeth Mysore Venkatesh ([supreethmv](https://github.com/supreethmv))
- Yasser El Haddar ([YasserElHaddar16](https://github.com/YasserElHaddar16))

_These lists are automatically generated, and may not be complete or may contain
duplicates._

3.6rc0

We're happy to announce the release of networkx 3.6rc0!

API Changes

- Replace `random_lobster` with `random_lobster_graph` ([8067](https://github.com/networkx/networkx/pull/8067)).
- Replace `maybe_regular_expander` with `maybe_regular_expander_graph` ([8050](https://github.com/networkx/networkx/pull/8050)).
- Rm networkx.algorithms.threshold.swap_d ([8213](https://github.com/networkx/networkx/pull/8213)).
- Expire deprecation of compute_v_structures ([8281](https://github.com/networkx/networkx/pull/8281)).
- Rm unused dissuade_hubs kwarg from forceatlas2 ([8293](https://github.com/networkx/networkx/pull/8293)).
- Expire deprecation of link kwarg in node_link fns ([8282](https://github.com/networkx/networkx/pull/8282)).
- DEP: Deprecate metric_closure ([8304](https://github.com/networkx/networkx/pull/8304)).

Enhancements

- Improve error message for removed `random_tree` function ([8105](https://github.com/networkx/networkx/pull/8105)).
- Update approx current_flow betweenness to use k directly ([8007](https://github.com/networkx/networkx/pull/8007)).
- Proposal: update semantics for nonisomorphic trees with order 0 or 1 ([8083](https://github.com/networkx/networkx/pull/8083)).
- SCC benchmarks and use of `G._adj` in Tarjan algorithm ([8064](https://github.com/networkx/networkx/pull/8064)).
- Performance improvement and tests for `edges_equal` ([8077](https://github.com/networkx/networkx/pull/8077)).
- optimise `is_reachable()` ([8112](https://github.com/networkx/networkx/pull/8112)).
- Optimise harmonic centrality ([8158](https://github.com/networkx/networkx/pull/8158)).
- feat(drawing): add missing connection styles in `draw_networkx_edge_labels` and `display` ([8108](https://github.com/networkx/networkx/pull/8108)).
- Optimizing Dijkstra's paths to target (~50x faster for graphs with multiple-hops shortest path) ([8023](https://github.com/networkx/networkx/pull/8023)).
- Add `all_triangles` generator yielding all unique triangles in a graph ([8135](https://github.com/networkx/networkx/pull/8135)).
- refactor: simplify `k_factor` ([8139](https://github.com/networkx/networkx/pull/8139)).
- feat: add directed star graph ([8151](https://github.com/networkx/networkx/pull/8151)).
- Faster `intersection_array` computation for checking distance-regularity ([7181](https://github.com/networkx/networkx/pull/7181)).
- enh: short-circuit in `is_regular` for directed graphs ([8138](https://github.com/networkx/networkx/pull/8138)).
- Avoid re-exploring nodes in Kosaraju's SCC algorithm ([8056](https://github.com/networkx/networkx/pull/8056)).
- trust rank implementation and testing ([8165](https://github.com/networkx/networkx/pull/8165)).
- Add hyper_wiener_index function ([8184](https://github.com/networkx/networkx/pull/8184)).
- Bidirectional dijkstra optimization: from 1.1x to 25x faster ([8206](https://github.com/networkx/networkx/pull/8206)).
- Implement the algorithm to find the centroid(s) of a tree ([8089](https://github.com/networkx/networkx/pull/8089)).
- Set length threshold in FR and use np.clip ([8145](https://github.com/networkx/networkx/pull/8145)).
- Add panther++ ([4400](https://github.com/networkx/networkx/pull/4400)).
- maint: use `nx.circulant_graph` to generate Harary graphs ([8189](https://github.com/networkx/networkx/pull/8189)).
- ENH: add `directed` kwarg to `edges_equal` ([8192](https://github.com/networkx/networkx/pull/8192)).
- Optimizing Dijkstra's path construction for all targets case ([8218](https://github.com/networkx/networkx/pull/8218)).
- ENH: adds ISMAGS support for directed and multigraph with tests and refactor ([8274](https://github.com/networkx/networkx/pull/8274)).
- Dispatch classes such as `nx.Graph(backend=...)` ([7760](https://github.com/networkx/networkx/pull/7760)).
- ENH: Add is_perfect_graph using SPGT (follow-up to 8111) ([8318](https://github.com/networkx/networkx/pull/8318)).
- Add benchmark suite for shortest path algorithms on weighted graphs ([8059](https://github.com/networkx/networkx/pull/8059)).

Bug Fixes

- Add Python 3.14 to testing matrix ([8096](https://github.com/networkx/networkx/pull/8096)).
- Fix round-trip to and from pygraphviz.AGraph setting spurious graph attributes ([8121](https://github.com/networkx/networkx/pull/8121)).
- Add input validation to `non_randomness()` and clarify its behavior ([8057](https://github.com/networkx/networkx/pull/8057)).
- Ensure that backend names are valid Python identifiers ([8160](https://github.com/networkx/networkx/pull/8160)).
- fix: resolve failure to pickle.loads(pickle.dumps(PlanarEmbedding())) ([8186](https://github.com/networkx/networkx/pull/8186)).
- Add GEXF 1.3 to the recognized GEXF versions ([8196](https://github.com/networkx/networkx/pull/8196)).
- BUG: Raise on directed graphs in `nx.find_cliques_recursive` ([8211](https://github.com/networkx/networkx/pull/8211)).
- fix `optimize_edit_paths` handling of self-loops ([8207](https://github.com/networkx/networkx/pull/8207)).
- BUG: add check for isolated nodes in `degree_sequence_tree` ([8235](https://github.com/networkx/networkx/pull/8235)).
- Mehlorn Steiner Tree ([8052](https://github.com/networkx/networkx/pull/8052)).
- BUG/MAINT: fix edge betweenness centrality scaling when `k<N` and merge all b.c. rescale helper functions ([8256](https://github.com/networkx/networkx/pull/8256)).
- Fix node attributes on lattice graphs ([8311](https://github.com/networkx/networkx/pull/8311)).
- BUG: allow graphs with nonstandard node labels in FISTA ([8332](https://github.com/networkx/networkx/pull/8332)).
- Make dominance functions consistent with definitions ([8061](https://github.com/networkx/networkx/pull/8061)).

Documentation

- Fix `min_weight_matching` ([8062](https://github.com/networkx/networkx/pull/8062)).
- Update deploy-docs yml to use Python 3.12 when deploying the docs ([8102](https://github.com/networkx/networkx/pull/8102)).
- DOC: Add missing params to bfs_layout docstring ([8086](https://github.com/networkx/networkx/pull/8086)).
- Add input validation to `non_randomness()` and clarify its behavior ([8057](https://github.com/networkx/networkx/pull/8057)).
- doc: improve docstring for hypercube_graph ([8012](https://github.com/networkx/networkx/pull/8012)).
- Improved documentation for boundary_expansion function ([7905](https://github.com/networkx/networkx/pull/7905)).
- DOC: Add docstring example count number of unique triangles ([8144](https://github.com/networkx/networkx/pull/8144)).
- Add function bfs_labeled_edges to docs ([8149](https://github.com/networkx/networkx/pull/8149)).
- Fix issues with urls in HITS reference docs ([8156](https://github.com/networkx/networkx/pull/8156)).
- Correct the docs for `display()` keyword `node_pos` ([8153](https://github.com/networkx/networkx/pull/8153)).
- Adding Notes on Multi-Target Shortest Path Queries ([8169](https://github.com/networkx/networkx/pull/8169)).
- 3d facebook plot example ([6893](https://github.com/networkx/networkx/pull/6893)).
- trust rank implementation and testing ([8165](https://github.com/networkx/networkx/pull/8165)).
- Improve docs for `all_neighbors()` ([8166](https://github.com/networkx/networkx/pull/8166)).
- Adding shortest-paths documentation ([8187](https://github.com/networkx/networkx/pull/8187)).
- Add Linux Foundation health score badge to README ([8219](https://github.com/networkx/networkx/pull/8219)).
- DOC: Add docstring for `number_of_cliques` ([8216](https://github.com/networkx/networkx/pull/8216)).
- DOC: add docstring for `degree_sequence_tree` ([8236](https://github.com/networkx/networkx/pull/8236)).
- DOC: Add examples to contracted_nodes ([7856](https://github.com/networkx/networkx/pull/7856)).
- DOC: fix wrong reference in `leiden` docs ([8277](https://github.com/networkx/networkx/pull/8277)).
- Fix over-indentation of list in chordless_cycles docstring ([8288](https://github.com/networkx/networkx/pull/8288)).
- Add iplotx to network drawing documentation ([8289](https://github.com/networkx/networkx/pull/8289)).
- Fix sphinx build errors ([8303](https://github.com/networkx/networkx/pull/8303)).
- DOC: Move deprecation procedure from contributing->dev guide ([8308](https://github.com/networkx/networkx/pull/8308)).
- DOC: add gallery example for metric_closure ([8306](https://github.com/networkx/networkx/pull/8306)).
- Cross-link Platonic graphs in See Also section ([8307](https://github.com/networkx/networkx/pull/8307)).
- Add seealso crosslinks between lattice graphs ([8310](https://github.com/networkx/networkx/pull/8310)).
- CI,DOC: Only run one parallel betweenness example ([8305](https://github.com/networkx/networkx/pull/8305)).
- DOC: rework betweenness centrality docstrings ([8264](https://github.com/networkx/networkx/pull/8264)).
- Rm 3D layout and animation from greedy_color example ([8315](https://github.com/networkx/networkx/pull/8315)).
- DOC: Clarify node and edge removal behavior in tutorial ([8321](https://github.com/networkx/networkx/pull/8321)).
- Improving connected module docs ([8267](https://github.com/networkx/networkx/pull/8267)).
- Docs: add nx-neptune backend documentation ([8258](https://github.com/networkx/networkx/pull/8258)).
- Improving shortest paths docs when there is no path between source and target ([8327](https://github.com/networkx/networkx/pull/8327)).
- Adding floating point considerations to tutorial ([8324](https://github.com/networkx/networkx/pull/8324)).
- Adding Dijkstra's algo specific doc ([8286](https://github.com/networkx/networkx/pull/8286)).
- Minor documentation build improvements ([8329](https://github.com/networkx/networkx/pull/8329)).
- Clarify the meaning of the cutoff parameter in some path-finding functions ([7487](https://github.com/networkx/networkx/pull/7487)).
- Switch to the NumFOCUS Code of Conduct ([8320](https://github.com/networkx/networkx/pull/8320)).

Maintenance

- Rm extraneous print from nx.display ([8084](https://github.com/networkx/networkx/pull/8084)).
- Remove structuralholes.py from `needs_(num|sci)py` ([8088](https://github.com/networkx/networkx/pull/8088)).
- Refactor image comparison tests ([8097](https://github.com/networkx/networkx/pull/8097)).
- Update deploy-docs yml to use Python 3.12 when deploying the docs ([8102](https://github.com/networkx/networkx/pull/8102)).
- Fix typo in extra name ([8103](https://github.com/networkx/networkx/pull/8103)).
- MAINT: Support PEP 639 for license metadata ([8100](https://github.com/networkx/networkx/pull/8100)).
- Use `scipy.sparse` array versions where applicable ([8080](https://github.com/networkx/networkx/pull/8080)).
- pass numpy seed by value not index ([8116](https://github.com/networkx/networkx/pull/8116)).
- Maintenance for broadcasting.py ([8082](https://github.com/networkx/networkx/pull/8082)).
- Bump the actions group across 1 directory with 6 updates ([8085](https://github.com/networkx/networkx/pull/8085)).
- Revert dict comprehensions -> dict.fromkeys accidentally introduced in 8017 ([8018](https://github.com/networkx/networkx/pull/8018)).
- refactor: improve `generate_adjlist` ([8146](https://github.com/networkx/networkx/pull/8146)).
- MAINT: Weekly cron job to run dispatch test with an extensive matrix ([8154](https://github.com/networkx/networkx/pull/8154)).
- Add benchmarks for multisrc_dijkstra over many small graphs ([8164](https://github.com/networkx/networkx/pull/8164)).
- test: clean up `k_factor` tests ([8140](https://github.com/networkx/networkx/pull/8140)).
- Use `pytest.raises` as a context ([8170](https://github.com/networkx/networkx/pull/8170)).
- Testing sentinel-node trick ([8171](https://github.com/networkx/networkx/pull/8171)).
- chore: make benchmarking and release requirements extras in `pyproject.toml` ([8172](https://github.com/networkx/networkx/pull/8172)).
- Add benchmarks for is_regular ([8173](https://github.com/networkx/networkx/pull/8173)).
- MAINT: use `matrix_power` from `scipy.sparse` in `number_of_walks` ([8197](https://github.com/networkx/networkx/pull/8197)).
- MAINT: remove `try except` for `tomllib` in `generate_requirements` ([8198](https://github.com/networkx/networkx/pull/8198)).
- MAINT: Ignore graph hashing warnings in tests ([8205](https://github.com/networkx/networkx/pull/8205)).
- STY: Variable rename proposal in bidirectional_dijkstra ([8210](https://github.com/networkx/networkx/pull/8210)).
- MAINT: Rm print from threshold_graph ([8212](https://github.com/networkx/networkx/pull/8212)).
- feat(api): update non-tree check in `_tree_center`  and move to `tree` subpackage ([8174](https://github.com/networkx/networkx/pull/8174)).
- TST: add seed for `random_cograph` test ([8228](https://github.com/networkx/networkx/pull/8228)).
- Update links for broken testing badge in README ([8234](https://github.com/networkx/networkx/pull/8234)).
- Clarifying `_dispatchable(name=` ([8168](https://github.com/networkx/networkx/pull/8168)).
- MAINT/TST: increase non-`slow` coverage in `k_components` ([8239](https://github.com/networkx/networkx/pull/8239)).
- MAINT/TST: clean up tests for `degree_seq` ([8257](https://github.com/networkx/networkx/pull/8257)).
- Use CircleCI for coverage workflow ([8178](https://github.com/networkx/networkx/pull/8178)).
- Bump the actions group across 1 directory with 5 updates ([8261](https://github.com/networkx/networkx/pull/8261)).
- BUG/MAINT: fix edge betweenness centrality scaling when `k<N` and merge all b.c. rescale helper functions ([8256](https://github.com/networkx/networkx/pull/8256)).
- DOC/MAINT: Use `itertools.pairwise` in `pairwise` and add docstring ([8201](https://github.com/networkx/networkx/pull/8201)).
- Optimizing is_connected ([8266](https://github.com/networkx/networkx/pull/8266)).
- Rm outdated codecov badge from README ([8272](https://github.com/networkx/networkx/pull/8272)).
- CI: Move slow tests from coverage to dedicated run ([8273](https://github.com/networkx/networkx/pull/8273)).
- Move coverage configuration to pyproject.toml ([8287](https://github.com/networkx/networkx/pull/8287)).
- Making weakly connected logic consistent with connected logic ([8285](https://github.com/networkx/networkx/pull/8285)).
- Bump scientific-python/circleci-artifacts-redirector-action from 1.2.0 to 1.3.1 in the actions group ([8309](https://github.com/networkx/networkx/pull/8309)).
- CI: Add nicer rendering of env contents ([8301](https://github.com/networkx/networkx/pull/8301)).
- CI: Install ffmpeg in circleci docs pipeline ([8291](https://github.com/networkx/networkx/pull/8291)).
- Add/bump Python 3.14 to testing matrices ([8319](https://github.com/networkx/networkx/pull/8319)).
- Rm 3D layout and animation from greedy_color example ([8315](https://github.com/networkx/networkx/pull/8315)).
- MAINT: Remove unused sphinx extensions from conf.py ([8314](https://github.com/networkx/networkx/pull/8314)).
- optimize _single_shortest_path function ([6337](https://github.com/networkx/networkx/pull/6337)).
- Add autoflake and pyupgrade as manual pre-commit hooks ([7870](https://github.com/networkx/networkx/pull/7870)).
- ignore autoflake and pyupgrade changes ([8333](https://github.com/networkx/networkx/pull/8333)).
- Revert "ignore autoflake and pyupgrade changes" ([8334](https://github.com/networkx/networkx/pull/8334)).

Other

- TST: improve coverage for `generators/deg_seq.py` ([8226](https://github.com/networkx/networkx/pull/8226)).
- TST: test `max_iter` in `asyn_fluidc` ([8224](https://github.com/networkx/networkx/pull/8224)).
- MAINT: clean up tests for `steiner_tree` ([8259](https://github.com/networkx/networkx/pull/8259)).
- TST: add non-`slow` coverage for random graph generators ([8252](https://github.com/networkx/networkx/pull/8252)).
- TST: Add a nonslow test for `all_node_cuts` with shortest augmenting path flow function ([8230](https://github.com/networkx/networkx/pull/8230)).
- TST/MAINT: add non-slow coverage for random generators ([8233](https://github.com/networkx/networkx/pull/8233)).
- TST: add coverage for `isomorphvf2` ([8251](https://github.com/networkx/networkx/pull/8251)).
- TST: ensure determinism in `nx_pylab` drawing tests ([8232](https://github.com/networkx/networkx/pull/8232)).
- TST: add `random_k_out_graph` to tests to hit `try except` path ([8231](https://github.com/networkx/networkx/pull/8231)).
- TST: add coverage for some branches in `internet_as_graphs.py` ([8225](https://github.com/networkx/networkx/pull/8225)).
- TST: test `topo_sort` skips visited nodes in `goldberg_radzik` ([8279](https://github.com/networkx/networkx/pull/8279)).

Contributors

38 authors added to this release (alphabetically):

- [Aka2210](https://github.com/Aka2210)
- [dean985](https://github.com/dean985)
- [georako](https://github.com/georako)
- [georakom](https://github.com/georakom)
- [ishrathtahaseen-9](https://github.com/ishrathtahaseen-9)
- [sourabh-sudesh-paradeshi](https://github.com/sourabh-sudesh-paradeshi)
- Aditi Juneja ([Schefflera-Arboricola](https://github.com/Schefflera-Arboricola))
- Adriano Meligrana ([Tortar](https://github.com/Tortar))
- akshita  ([akshitasure12](https://github.com/akshitasure12))
- Albert Koppelmaa ([albastardoto](https://github.com/albastardoto))
- Alejandro Candioti ([amcandio](https://github.com/amcandio))
- Andrew Carbonetto ([acarbonetto](https://github.com/acarbonetto))
- Anthony Labarre ([alabarre](https://github.com/alabarre))
- Casper van Elteren ([cvanelteren](https://github.com/cvanelteren))
- Colman Bouton ([LorentzFactor](https://github.com/LorentzFactor))
- Dan Schult ([dschult](https://github.com/dschult))
- dgpb ([dg-pb](https://github.com/dg-pb))
- Erik Welch ([eriknw](https://github.com/eriknw))
- Fabio Zanini ([iosonofabio](https://github.com/iosonofabio))
- Fei Pan ([fei0319](https://github.com/fei0319))
- Florian2Richter ([Florian2Richter](https://github.com/Florian2Richter))
- Gilles Peiffer ([Peiffap](https://github.com/Peiffap))
- Gustavo Ataide ([gustavo-ataide](https://github.com/gustavo-ataide))
- Hadrien Crassous ([Hadrien-Cr](https://github.com/Hadrien-Cr))
- Jarrod Millman ([jarrodmillman](https://github.com/jarrodmillman))
- Jeff Bradberry ([jbradberry](https://github.com/jbradberry))
- Jonathan Reimer ([jonathimer](https://github.com/jonathimer))
- Maninder Dhanauta ([Maninder-sd](https://github.com/Maninder-sd))
- Marcus Fedarko ([fedarko](https://github.com/fedarko))
- Mauricio Souza de Alencar ([mdealencar](https://github.com/mdealencar))
- Michael Recachinas ([mrecachinas](https://github.com/mrecachinas))
- Mridul Seth ([MridulS](https://github.com/MridulS))
- Peter Cock ([peterjc](https://github.com/peterjc))
- Ross Barnowski ([rossbar](https://github.com/rossbar))
- Stefano Vallodoro ([ilvallod](https://github.com/ilvallod))
- Supreeth Mysore Venkatesh ([supreethmv](https://github.com/supreethmv))
- Yasser El Haddar ([YasserElHaddar16](https://github.com/YasserElHaddar16))
- Yasser El Haddar ([Yasserelhaddar](https://github.com/Yasserelhaddar))

24 reviewers added to this release (alphabetically):

- [Aka2210](https://github.com/Aka2210)
- [dean985](https://github.com/dean985)
- [georakom](https://github.com/georakom)
- [ishrathtahaseen-9](https://github.com/ishrathtahaseen-9)
- Aditi Juneja ([Schefflera-Arboricola](https://github.com/Schefflera-Arboricola))
- akshita  ([akshitasure12](https://github.com/akshitasure12))
- Alejandro Candioti ([amcandio](https://github.com/amcandio))
- Anthony Labarre ([alabarre](https://github.com/alabarre))
- Christian Clauss ([cclauss](https://github.com/cclauss))
- Colman Bouton ([LorentzFactor](https://github.com/LorentzFactor))
- Dan Schult ([dschult](https://github.com/dschult))
- dgpb ([dg-pb](https://github.com/dg-pb))
- Erik Welch ([eriknw](https://github.com/eriknw))
- Fei Pan ([fei0319](https://github.com/fei0319))
- Gilles Peiffer ([Peiffap](https://github.com/Peiffap))
- Hiroki Hamaguchi ([HirokiHamaguchi](https://github.com/HirokiHamaguchi))
- Jarrod Millman ([jarrodmillman](https://github.com/jarrodmillman))
- Jeff Bradberry ([jbradberry](https://github.com/jbradberry))
- Marcus Fedarko ([fedarko](https://github.com/fedarko))
- Michael Recachinas ([mrecachinas](https://github.com/mrecachinas))
- Mridul Seth ([MridulS](https://github.com/MridulS))
- Ross Barnowski ([rossbar](https://github.com/rossbar))
- Supreeth Mysore Venkatesh ([supreethmv](https://github.com/supreethmv))
- Yasser El Haddar ([YasserElHaddar16](https://github.com/YasserElHaddar16))

_These lists are automatically generated, and may not be complete or may contain
duplicates._

3.5

We're happy to announce the release of networkx 3.5!

API Changes

- Save Layouts on Graphs ([7571](https://github.com/networkx/networkx/pull/7571)).
- Expire d_separated and minimum_d_separator functions ([7830](https://github.com/networkx/networkx/pull/7830)).
- Expire all_triplets deprecation ([7828](https://github.com/networkx/networkx/pull/7828)).
- Expire random_triad deprecation ([7829](https://github.com/networkx/networkx/pull/7829)).
- DEP: Raise an exception for k_core functions with multigraphs ([7831](https://github.com/networkx/networkx/pull/7831)).
- Deprecate graph_could_be_isomorphic ([7826](https://github.com/networkx/networkx/pull/7826)).
- Expire total_spanning_tree_weight deprecation ([7843](https://github.com/networkx/networkx/pull/7843)).
- Expire deprecation of create kwarg in nonisomorphic_trees ([7847](https://github.com/networkx/networkx/pull/7847)).
- New draw API ([7589](https://github.com/networkx/networkx/pull/7589)).

Enhancements

- perf: optimise `random_k_out_graph` ([7702](https://github.com/networkx/networkx/pull/7702)).
- Clausets local community detection algorithm ([7691](https://github.com/networkx/networkx/pull/7691)).
- `find_asteroidal_triple` improvement ([7736](https://github.com/networkx/networkx/pull/7736)).
- Add `weight` to harmonic_diameter ([7636](https://github.com/networkx/networkx/pull/7636)).
- Densest Subgraph Problem: Greedy Peeling and Greedy++ Implementations ([7731](https://github.com/networkx/networkx/pull/7731)).
- single_source_all_shortest_paths: don't loop over all nodes ([7762](https://github.com/networkx/networkx/pull/7762)).
- Error message improvement for nbunch_iter ( NetworkXError raised with specific message on TypeError with "iter" in msg ) ([7790](https://github.com/networkx/networkx/pull/7790)).
- Faster computation of energy in Laplacian centrality ([7793](https://github.com/networkx/networkx/pull/7793)).
- Make `forceatlas2_layout` dispatchable ([7794](https://github.com/networkx/networkx/pull/7794)).
- Update dispatchable for `forceatlas2_layout` ([7798](https://github.com/networkx/networkx/pull/7798)).
- Enable backend-only functions where NetworkX is just an API ([7690](https://github.com/networkx/networkx/pull/7690)).
- Steinertree kou enhancement in response to issue 5889 type:Enhancements ([7767](https://github.com/networkx/networkx/pull/7767)).
- Add Leiden as a backend-only algorithm ([7743](https://github.com/networkx/networkx/pull/7743)).
- Bipartite layout nodes optional ([7756](https://github.com/networkx/networkx/pull/7756)).
- Densest Subgraph Problem: FISTA based algorithm + Large scale tests ([7770](https://github.com/networkx/networkx/pull/7770)).
- Dispatch `get_node_attributes` and a few more from `nx.classes.function` ([7824](https://github.com/networkx/networkx/pull/7824)).
- Faster `could_be_isomorphic` and `number_of_cliques` ([7855](https://github.com/networkx/networkx/pull/7855)).
- Add square_clustering to algorithm benchmarks ([7857](https://github.com/networkx/networkx/pull/7857)).
- Faster Implementation of Structural Holes ([7249](https://github.com/networkx/networkx/pull/7249)).
- Improve runtime of number_of_nonisomorphic_trees() ([7917](https://github.com/networkx/networkx/pull/7917)).
- Fix write_gexf timeformat for dynamic Graphs ([7914](https://github.com/networkx/networkx/pull/7914)).
- Consolidate could_be_isomorphic ([7852](https://github.com/networkx/networkx/pull/7852)).
- Improving rooted_tree_isomorphism for deep trees ([7945](https://github.com/networkx/networkx/pull/7945)).
- Fixing nx.diameter inconsistent results with usebounds=True ([7954](https://github.com/networkx/networkx/pull/7954)).
- Faster `square_clustering` ([7810](https://github.com/networkx/networkx/pull/7810)).
- Avoid repeated cache conversion failures for backends ([7768](https://github.com/networkx/networkx/pull/7768)).
- Improve _sparse_fruchterman_reingold with L-BFGS ([7889](https://github.com/networkx/networkx/pull/7889)).
- Improve Performance of Tree Isomorphism and Center Calculation ([7946](https://github.com/networkx/networkx/pull/7946)).
- Add option for `biadjacency_matrix` to be returned as a dense NumPy array ([7973](https://github.com/networkx/networkx/pull/7973)).
- Add Functions for Finding Connected Dominating Sets ([7774](https://github.com/networkx/networkx/pull/7774)).
- Add feature to make storing node contraction data optional ([7902](https://github.com/networkx/networkx/pull/7902)).
- Added "initial_node" param to generate_random_paths() to allow a starting node to be specified for generated walks ([8002](https://github.com/networkx/networkx/pull/8002)).
- Fix behavior for iterable `sources` argument in `bfs_layers` ([8013](https://github.com/networkx/networkx/pull/8013)).
- Speed up `connected_components` and `weakly_connected_components` ([7971](https://github.com/networkx/networkx/pull/7971)).
- BiRank Algorithm Implementation ([7978](https://github.com/networkx/networkx/pull/7978)).
- Enforce correct graph types for graph matchers ([8043](https://github.com/networkx/networkx/pull/8043)).

Bug Fixes

- Update `_raise_on_directed` to work with `create_using` pos arg ([7695](https://github.com/networkx/networkx/pull/7695)).
- trophic_levels now checks for paths from each node to a basal node ([7453](https://github.com/networkx/networkx/pull/7453)).
- Fix TSP weight parameter issues ([7721](https://github.com/networkx/networkx/pull/7721)).
- Fix for filtered MultiGraph views from `edge_subgraph` (7724) ([7729](https://github.com/networkx/networkx/pull/7729)).
- BUG: fixed the `if` condition in `asadpour_atsp` ([7753](https://github.com/networkx/networkx/pull/7753)).
- Implement Bar ConnectionStyle for labels ([7739](https://github.com/networkx/networkx/pull/7739)).
- Fixed a divide by zero error in forceatlas2 ([7791](https://github.com/networkx/networkx/pull/7791)).
- Fix for issue 7645: Do not preserve 'cw' and 'ccw' attributes in PlanarEmbedding.to_undirected() ([7750](https://github.com/networkx/networkx/pull/7750)).
- fix typo in ramanujan branch ([7804](https://github.com/networkx/networkx/pull/7804)).
- Fix `with nx.config(backend_priority=backends):` ([7814](https://github.com/networkx/networkx/pull/7814)).
- Fix handling of faux_infinite values in network_simplex ([7796](https://github.com/networkx/networkx/pull/7796)).
- Fixed the return type from an empty dict to an empty set ([7910](https://github.com/networkx/networkx/pull/7910)).
- Add `edge_attrs="weight"` to `forceatlas2_layout` dispatch decorator ([7918](https://github.com/networkx/networkx/pull/7918)).
- Fix graph_hash iteration counts and DiGraph handling ([7834](https://github.com/networkx/networkx/pull/7834)).
- Refactored the working of chordless_cycles to handle self loops ([7901](https://github.com/networkx/networkx/pull/7901)).
- Fix bc scale with k endpoints ([7908](https://github.com/networkx/networkx/pull/7908)).
- Fix BC scaling for source nodes with k and endpoints=False ([7949](https://github.com/networkx/networkx/pull/7949)).
- BUG: graph6 format invariant to trailing newline ([7941](https://github.com/networkx/networkx/pull/7941)).
- Fix `random_degree_sequence_graph` when input is an iterator ([7979](https://github.com/networkx/networkx/pull/7979)).
- Improve special cases in dispatch testing (paying off tech debt) ([7982](https://github.com/networkx/networkx/pull/7982)).
- Fix bug when assigning list to `nx.config.backend_priority` ([8034](https://github.com/networkx/networkx/pull/8034)).
- A minimal fix for `is_aperiodic` ([8029](https://github.com/networkx/networkx/pull/8029)).
- fix bug of _sparse_fruchterman_reingold and remove try/except idiom ([8041](https://github.com/networkx/networkx/pull/8041)).
- Fix edge case in ISMAGS symmetry detection ([8055](https://github.com/networkx/networkx/pull/8055)).

Documentation

- set nx-arangodb link to github ([7694](https://github.com/networkx/networkx/pull/7694)).
- Re-submission of gh-7087 with better file provenance ([7681](https://github.com/networkx/networkx/pull/7681)).
- Fix code formatting of some examples ([7730](https://github.com/networkx/networkx/pull/7730)).
- Add examples for custom graph in the doc of `soft_random_geometric_graph` and `thresholded_random_geometric_graph` ([7749](https://github.com/networkx/networkx/pull/7749)).
- Gallery example: bipartite a/b-core motif ([7757](https://github.com/networkx/networkx/pull/7757)).
- Add blurb about pytest-mpl dependency to contributing guide ([7741](https://github.com/networkx/networkx/pull/7741)).
- Minor updates to `single_source_shortest_path_length` docstring ([7637](https://github.com/networkx/networkx/pull/7637)).
- Added a note to the contributor guideline to avoid numpy scalars as a… ([7773](https://github.com/networkx/networkx/pull/7773)).
- Correcting the example given under subgraph_is_monomorphic.py ([7779](https://github.com/networkx/networkx/pull/7779)).
- [easy] Add to Contributor List ([7801](https://github.com/networkx/networkx/pull/7801)).
- doc: mention the second major update ([7782](https://github.com/networkx/networkx/pull/7782)).
- DOC: Add details about more grants ([7823](https://github.com/networkx/networkx/pull/7823)).
- Refactor: Moving backend docs from `backends.py` to `backends.rst` ([7776](https://github.com/networkx/networkx/pull/7776)).
- Update readwrite docstrings for the `path` parameter ([7835](https://github.com/networkx/networkx/pull/7835)).
- Fix docstring example of `nx.generate_random_paths(index_map=...)` ([7832](https://github.com/networkx/networkx/pull/7832)).
- Adds NVIDIA Corporation to list of supporters ([7846](https://github.com/networkx/networkx/pull/7846)).
- Fix use of triple backticks in docstrings ([7845](https://github.com/networkx/networkx/pull/7845)).
- Add paragraph about university classes to mentored projects ([7838](https://github.com/networkx/networkx/pull/7838)).
- Fix pygraphviz_layout example ([7849](https://github.com/networkx/networkx/pull/7849)).
- Add test-extras to optional dependencies ([7854](https://github.com/networkx/networkx/pull/7854)).
- doc: hash size are in bytes ([7866](https://github.com/networkx/networkx/pull/7866)).
- DOC: Clean up mentored projects page: move visualization project to completed section ([7881](https://github.com/networkx/networkx/pull/7881)).
- added 2 projects for GSoC 2025 ([7880](https://github.com/networkx/networkx/pull/7880)).
- Add missing usebounds param descr to distance docstrings ([7703](https://github.com/networkx/networkx/pull/7703)).
- Add examples to graph_atlas_g docstring ([7900](https://github.com/networkx/networkx/pull/7900)).
- Add missing `weight` and `gravity` attribute to `forceatlas2_layout` docstring ([7915](https://github.com/networkx/networkx/pull/7915)).
- DOC: Update first docstring example and add a serialization example ([7928](https://github.com/networkx/networkx/pull/7928)).
- DOC: Remove myself from the mentor list for projects ([7943](https://github.com/networkx/networkx/pull/7943)).
- Fix typo in forceatlas2_layout ([7966](https://github.com/networkx/networkx/pull/7966)).
- Add `tournament_matrix` to docs ([7968](https://github.com/networkx/networkx/pull/7968)).
- Add function descriptions in the threshold.py file ([7906](https://github.com/networkx/networkx/pull/7906)).
- bugfix: use supergraph to compute superpos in plot_clusters example ([7997](https://github.com/networkx/networkx/pull/7997)).
- More `random_paths` docstring improvements ([7841](https://github.com/networkx/networkx/pull/7841)).
- Add nx-guides link to navbar without dropdown ([8015](https://github.com/networkx/networkx/pull/8015)).
- Clarifying backend graph class interface is_directed+is_multigraph ([8032](https://github.com/networkx/networkx/pull/8032)).
- Fix all sphinx build warnings ([8047](https://github.com/networkx/networkx/pull/8047)).
- Add a new gallery spring layout ([8042](https://github.com/networkx/networkx/pull/8042)).
- Add note about cycles in `maximum_flow()` ([8058](https://github.com/networkx/networkx/pull/8058)).
- Clarify subgraph node/edge order is not preserved ([8069](https://github.com/networkx/networkx/pull/8069)).
- Fix typo in `min_edge_cover` docstring ([8075](https://github.com/networkx/networkx/pull/8075)).

Maintenance

- MAINT: wrapping `partial` with `staticmethod()` in `test_link_prediction.py` ([7673](https://github.com/networkx/networkx/pull/7673)).
- Updating `pip install`s in benchmarking workflow ([7647](https://github.com/networkx/networkx/pull/7647)).
- Mv changelist to release deps ([7708](https://github.com/networkx/networkx/pull/7708)).
- Drop support for Python 3.10 ([7668](https://github.com/networkx/networkx/pull/7668)).
- Update minimum dependencies (SPEC 0) ([7711](https://github.com/networkx/networkx/pull/7711)).
- Remove print statements and comments from test suite ([7715](https://github.com/networkx/networkx/pull/7715)).
- Refactor closeness centrality tests ([7712](https://github.com/networkx/networkx/pull/7712)).
- Add Python fallback to random_k_out_graph + document dependencies ([7718](https://github.com/networkx/networkx/pull/7718)).
- Fix sphinx warnings from numpydoc parsing ([7742](https://github.com/networkx/networkx/pull/7742)).
- MAINT: Updating geospatial example to be compatible with `osmnx=2.0.0` ([7746](https://github.com/networkx/networkx/pull/7746)).
- Add more tests for `nx.lowest_common_ancestor` ([7726](https://github.com/networkx/networkx/pull/7726)).
- Update `shortest_path` and `single_target_shortest_path_length` for 3.5 ([7754](https://github.com/networkx/networkx/pull/7754)).
- Parametrize edge_subgraph multigraph test ([7737](https://github.com/networkx/networkx/pull/7737)).
- Add filters for LOBPCG convergence warnings ([7778](https://github.com/networkx/networkx/pull/7778)).
- MAINT: Close mpl figures in tests to clear up test env ([7783](https://github.com/networkx/networkx/pull/7783)).
- Update pre-commit linting ([7797](https://github.com/networkx/networkx/pull/7797)).
- Small dispatching refactor: simple `__call__` when no backends ([7761](https://github.com/networkx/networkx/pull/7761)).
- Benchmarking: graph atlas ([7766](https://github.com/networkx/networkx/pull/7766)).
- Improve square clustering test derived from Zhang paper (reference 2) ([7811](https://github.com/networkx/networkx/pull/7811)).
- Fix exception for backend-only functions ([7812](https://github.com/networkx/networkx/pull/7812)).
- Add a subplot fixture to automate test cleanup ([7799](https://github.com/networkx/networkx/pull/7799)).
- MAINT: use nx.layout instead of importing layouts ([7819](https://github.com/networkx/networkx/pull/7819)).
- MAINT: Move stub func in the correct scope for pickle test ([7818](https://github.com/networkx/networkx/pull/7818)).
- Ensure standard import conventions are used ([7821](https://github.com/networkx/networkx/pull/7821)).
- Clean up pygrep pre-commit for import convention checks ([7822](https://github.com/networkx/networkx/pull/7822)).
- Add a few more square clustering test cases ([7825](https://github.com/networkx/networkx/pull/7825)).
- Don't use `assert` when using `pytest.raises` ([7833](https://github.com/networkx/networkx/pull/7833)).
- Update doc requirements ([7837](https://github.com/networkx/networkx/pull/7837)).
- Update developer requirements ([7839](https://github.com/networkx/networkx/pull/7839)).
- MAINT: Minus not underscore in the dep package name ([7840](https://github.com/networkx/networkx/pull/7840)).
- Update readwrite docstrings for the `path` parameter ([7835](https://github.com/networkx/networkx/pull/7835)).
- Fix docstring example of `nx.generate_random_paths(index_map=...)` ([7832](https://github.com/networkx/networkx/pull/7832)).
- Fix use of triple backticks in docstrings ([7845](https://github.com/networkx/networkx/pull/7845)).
- Add .mailmap file to consilidate contributors ([7853](https://github.com/networkx/networkx/pull/7853)).
- TST: Refactor example test case generation functions ([7844](https://github.com/networkx/networkx/pull/7844)).
- Refactor network_simplex test of faux_infinity ([7858](https://github.com/networkx/networkx/pull/7858)).
- Change CRLF format of two files ([7861](https://github.com/networkx/networkx/pull/7861)).
- Fix some typos ([7863](https://github.com/networkx/networkx/pull/7863)).
- Pre commit hooks to check line endings and trailing whitespace ([7862](https://github.com/networkx/networkx/pull/7862)).
- MAINT: replace the SHAs for blame and move the changes within pre-commit ([7869](https://github.com/networkx/networkx/pull/7869)).
- Rm stray instances of sparse matrices from test suite ([7860](https://github.com/networkx/networkx/pull/7860)).
- Remove unused imports ([7864](https://github.com/networkx/networkx/pull/7864)).
- Remove unnecessary `dict(...)` for SSSP algos that return dicts ([7878](https://github.com/networkx/networkx/pull/7878)).
- Change function calls to address pandas linting ([7885](https://github.com/networkx/networkx/pull/7885)).
- Activate pycodestyle in linting pre-commit ([7859](https://github.com/networkx/networkx/pull/7859)).
- Correct sphinx warnings from doc build ([7888](https://github.com/networkx/networkx/pull/7888)).
- `effective_size` of nodes with only self-loop edges is undefined ([7347](https://github.com/networkx/networkx/pull/7347)).
- DOC: docstring changes to `to_dict_of_dicts` and `attr_matrix` and input name change in `min_fill_in_heuristic` ([7883](https://github.com/networkx/networkx/pull/7883)).
- Update layout.py ([7939](https://github.com/networkx/networkx/pull/7939)).
- Tree isomorphism input validation ([7920](https://github.com/networkx/networkx/pull/7920)).
- Tweaks and notes from a dive into backends.py ([7884](https://github.com/networkx/networkx/pull/7884)).
- MAINT: Follow-up to 7945 - rm helper function ([7952](https://github.com/networkx/networkx/pull/7952)).
- Some light refactoring to make the tree isomorphism tests more readable ([7924](https://github.com/networkx/networkx/pull/7924)).
- new try at will_call_mutate_inputs ([7959](https://github.com/networkx/networkx/pull/7959)).
- MAINT: rm debug print from similarity module ([7937](https://github.com/networkx/networkx/pull/7937)).
- Improve special cases in dispatch testing (paying off tech debt) ([7982](https://github.com/networkx/networkx/pull/7982)).
- Remove unused import in convert_matrix.py (networkx.utils.not_implemented_for) ([7983](https://github.com/networkx/networkx/pull/7983)).
- Use `-n auto` from pytest-xdist for dispatch and coverage CI jobs ([7987](https://github.com/networkx/networkx/pull/7987)).
- Make test file names unique to be threadsafe ([7998](https://github.com/networkx/networkx/pull/7998)).
- Update pre-commit repos ([8017](https://github.com/networkx/networkx/pull/8017)).
- Minor follow-up to gh-8002 tests ([8016](https://github.com/networkx/networkx/pull/8016)).
- Add linting for line length in docstrings and comments ([7938](https://github.com/networkx/networkx/pull/7938)).
- Add sg_execution_times.rst to gitignore ([8025](https://github.com/networkx/networkx/pull/8025)).
- Support both pydot v3 and pydot v4 ([8027](https://github.com/networkx/networkx/pull/8027)).
- Update copyright license years ([8038](https://github.com/networkx/networkx/pull/8038)).
- Fix all sphinx build warnings ([8047](https://github.com/networkx/networkx/pull/8047)).
- Fix intermittent test failures in expander graph generator tests ([8048](https://github.com/networkx/networkx/pull/8048)).
- Refactor tree_isomorphism to improve code reuse and readability ([7929](https://github.com/networkx/networkx/pull/7929)).
- STY: Rm local variable remapping of heappush and heappop ([8051](https://github.com/networkx/networkx/pull/8051)).
- TST: Minor improvements to layout test suite ([8049](https://github.com/networkx/networkx/pull/8049)).
- Minor refactor to cleanup/improve matching test suite ([8068](https://github.com/networkx/networkx/pull/8068)).

Contributors

56 authors added to this release (alphabetically):

- [Bigstool](https://github.com/Bigstool)
- [Celelibi](https://github.com/Celelibi)
- [Frankwii](https://github.com/Frankwii)
- [lmeNaN](https://github.com/lmeNaN)
- [nelsonaloysio](https://github.com/nelsonaloysio)
- [Schwarf](https://github.com/Schwarf)
- [vtrifonov-altos](https://github.com/vtrifonov-altos)
- [vttrifonov](https://github.com/vttrifonov)
- [xavieronassis](https://github.com/xavieronassis)
- Aditi Juneja ([Schefflera-Arboricola](https://github.com/Schefflera-Arboricola))
- akshita  ([akshitasure12](https://github.com/akshitasure12))
- Alejandro Candioti ([amcandio](https://github.com/amcandio))
- Andrew Knyazev, Professor Emeritus ([lobpcg](https://github.com/lobpcg))
- Anthony Labarre ([alabarre](https://github.com/alabarre))
- Anthony Mahanna ([aMahanna](https://github.com/aMahanna))
- Christian Clauss ([cclauss](https://github.com/cclauss))
- Colman Bouton ([LorentzFactor](https://github.com/LorentzFactor))
- Dan Schult ([dschult](https://github.com/dschult))
- dgpb ([dg-pb](https://github.com/dg-pb))
- Elfarouk Harb ([FaroukY](https://github.com/FaroukY))
- Erik Welch ([eriknw](https://github.com/eriknw))
- Fei Pan ([fei0319](https://github.com/fei0319))
- Fernando Pérez ([fperez](https://github.com/fperez))
- Gilles Peiffer ([Peiffap](https://github.com/Peiffap))
- gmichaeli ([GalMichaeli](https://github.com/GalMichaeli))
- Hesam Sheikh ([hesamsheikh](https://github.com/hesamsheikh))
- Hiroki Hamaguchi ([HirokiHamaguchi](https://github.com/HirokiHamaguchi))
- Jarrod Millman ([jarrodmillman](https://github.com/jarrodmillman))
- Jason Mitchell ([oestej](https://github.com/oestej))
- Juanita Gomez ([juanis2112](https://github.com/juanis2112))
- Keith Hughitt ([khughitt](https://github.com/khughitt))
- Matt Schwennesen ([mjschwenne](https://github.com/mjschwenne))
- Matt Thorne ([MattThorne](https://github.com/MattThorne))
- Maverick18 ([Aditya-Shandilya1182](https://github.com/Aditya-Shandilya1182))
- Michael Weinold ([michaelweinold](https://github.com/michaelweinold))
- Morteza24 ([Morteza-24](https://github.com/Morteza-24))
- Mridul Seth ([MridulS](https://github.com/MridulS))
- Nikolaos Chatzikonstantinou ([createyourpersonalaccount](https://github.com/createyourpersonalaccount))
- Peter C Kroon ([pckroon](https://github.com/pckroon))
- Po-Lin Cho ([berlincho](https://github.com/berlincho))
- Qian Zhang ([QianZhang19](https://github.com/QianZhang19))
- Raj Pawar ([Raj3110](https://github.com/Raj3110))
- Ralph Liu ([nv-rliu](https://github.com/nv-rliu))
- Ratan Kulshreshtha ([RatanShreshtha](https://github.com/RatanShreshtha))
- Ricardo Bittencourt ([ricbit](https://github.com/ricbit))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants