Tag-locked APIs block deprecation of tag-based interior properties

Open
#476 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cpp

Research direction

Start by reading the declarations and existing overloads for maximum_weighted_matching, subgraph, randomize_property, and read_dimacs_max_flow/_min_cut. Trace how each currently obtains its interior property tags, then add property-map entry points for the listed weight, index, capacity, residual, and reverse data. Done means all four entry points work with external property maps so tag-based properties can be deprecated without breaking them.

Written by the indexing model from the issue text.

Description

api

Four public APIs can only be driven through interior property tags (edge_weight_t, edge_index_t, edge_capacity_t, etc.).
They do not accept an external property map, so users who model their data with bundled properties have no way to call them.

  1. maximum_weighted_matching : would need a WeightMap parameter
  2. subgraph : would need an EdgeIndexMap ctor arg
  3. randomize_property<Tag> : would need an overload with a property map
  4. read_dimacs_max_flow / _min_cut : would need capacity/residual/reverse args

Until each grows an overload accepting property maps, tag-based interior properties cannot be deprecated (even if deprecation happens only in the documentation, that is hiding tags from new users) without breaking these four entry points.

Dominant language
C++
Stars
395
Forks
239
Avg merge
18h 50m
Merged PRs (30d)
20

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from boostorg/graph

All issues in boostorg/graph

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.