Add a test package and docs for the "C/C++ lib with optional Python bindings" use case

Offen
#744 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Dokumentation
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
c, cpp, python

Rechercherichtung

Beginne mit der verlinkten Pull-Request-Diskussion und der im Issue beschriebenen Projektstruktur und prüfe anschließend die vorhandenen Testpakete und die Dokumentation auf verwandte Anwendungsfälle. Füge ein Testpaket hinzu, das eine C/C++-Bibliothek mit Python-Bindings in einem Unterverzeichnis abdeckt, sowie Hinweise zur Struktur und zur Handhabung von sdist. Als erledigt gilt die Aufgabe, wenn die Pakettests die Bibliothek auf oberster Ebene bauen und linken und der dokumentierte Workflow klar ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

documentation tests

This follows up on the discussion at https://github.com/mesonbuild/meson-python/pull/728#discussion_r2069077299. The use case is multi-language projects, like the Arrow projects, where the root of the repo contains a core C/C++ library and bindings for Python (and perhaps other languages) are present in sub-directories. This is a fairly common layout:

meson.build
src/
    <some_c_sources>
    meson.build
python/
    <some_python_sources>
    pyproject.toml
    meson.build

The challenge here is to get the top-level library built and linked against. The idea in the linked discussion is to add:

python/
    dist_script.py  # replaces symlink with a copy for sdist generation
    subprojects/
        <symlink with content `../..`>

We've seen other people struggle with this puzzle when trying to adopt meson-python, e.g. in https://github.com/mesonbuild/meson-python/discussions/674. It would be good to have a test package for this project structure, and a bit of documentation to point out how this can be handled.

Vorherrschende Sprache
Python
Sterne
182
Forks
97
Ø Merge
4 Std. 52 Min.
Gemergte PRs (30 T.)
2

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus mesonbuild/meson-python

Alle Issues in mesonbuild/meson-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.