`compressed_sparse_row_graph` has orphaned `add_vertex()` / `add_vertices()` from removed interface
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
Research direction
Start by reading compressed_sparse_row_graph.hpp and test/csr_graph_test.cpp, then compare the old and new CSR documentation and the cited history. Determine whether the orphaned add_vertex() and add_vertices() interface should remain; done means the header, documentation, and tests consistently reflect the decided interface.
Written by the indexing model from the issue text.
Description
Problem
compressed_sparse_row_graph.hpp contains four public add_vertex / add_vertices functions that were part of an old interface deliberately removed in 2009:
Vertex add_vertex(compressed_sparse_row_graph& g);
Vertex add_vertex(compressed_sparse_row_graph& g, const vertex_bundled& p); // directed
Vertex add_vertex(compressed_sparse_row_graph& g, const vertex_bundled& p); // bidirectional
Vertex add_vertices(vertices_size_type count, compressed_sparse_row_graph& g); // directed
These are not in the HTML documentation, not tested in test/csr_graph_test.cpp, and not used anywhere in BGL internally.
Meanwhile, the documentation states: "The CSR graph is immutable after construction. You cannot call add_vertex()."
The related add_edges() and add_edges_sorted() functions are documented and tested.
History
- 2005 (
0e2f4646): Jeremiah Willcock addedadd_vertex(),add_vertices(), andadd_edges()as "incremental construction functions." All three were documented and tested. - 2009 (
b2636ec3, "Removed old CSR interface; fixes #3135 "):add_vertex()andadd_vertices()were removed from documentation and tests, but the implementations were left in the header. - 2012 (
849d1538):add_edges()was separately removed from bidirectional CSR as "broken and not documented."
Question
Should add_vertex() / add_vertices() be tested and documented, or removed? Probably removed I guess, but I find it odd the implementation was never actually removed.
- Dominant language
- C++
- Stars
- 396
- Forks
- 244
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 29
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from boostorg/graph
-
beginner friendly
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
boostorg/graph#593 · 34 comments ·
Maintainers usually reply within 1 day
-
algorithm beginner friendly priority: high
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
boostorg/graph#231 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
boostorg/graph#599 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
Maintainers usually reply within 1 day
-
State of warnings in CI `develop`May be free again @Becheler claimed this 120 days ago, and no pull request is open. Openpriority: high warning
boostorg/graph#496 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
upstream update
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
conan-io/conan-center-index#31098 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
ml-explore/mlx-c#136 ·
-
bug chart-audit
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day