Deviations from the upstream pybind11
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.8k
- Forks
- 899
- PR merge metrics
- No merged PRs in 30d
Description
TLDR:
pybind_utils.hassume different template signatures than upstream- cmake links to
pybind11instead ofpybind11::module, confusing cmake sometimes to try and-lpybind11(which it needn't and which fails) instead of using the pybind11 cmake target - cmake links to
pybind11evenpybind11_add_moduletargets (these link automatically)
The pinned pybind11 submodule is relatively old. In the upstream pybind11 there already are provided some of the utilities from pybind_utils.h, like make_value_iterator, iterator_state, but they have different signatures (e.g. 5 template parameters against 4). I hoped to build OpenSfM without submodules with the (newer) pybind11 version pinned outside the repo, but this would require modifications to the template definitions
- Would you consider updating to the newer pybind11 before the next release?
- Do you need the in-tree pybind11 in the first place?
Contributor 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.
Research direction
Start by reading pybind_utils.h and the CMake configuration that links pybind11, then compare them with the newer upstream pybind11 interfaces and CMake targets. The work is done when the newer dependency can be used without signature conflicts and CMake uses the appropriate target without redundant or erroneous linking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100