bobluppes / bobluppes/graaf

Publish Graaf to vcpkg and Conan package registries

Open
#320 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
413
Forks
67
Avg merge
7h 24m
Merged PRs (30d)
53

Description

## Summary

Graaf is not currently published on any C/C++ package registry (vcpkg, Conan Center, Homebrew, etc.). The only documented installation methods ([docs/docs/quickstart/installation/installation.md](../blob/main/docs/docs/quickstart/installation/installation.md)) are: manually copying the `graaflib` directory, or CMake `FetchContent` pointed at the GitHub repo.

## Current state

- No `vcpkg.json` / port file exists in the repository or in the [microsoft/vcpkg](https://github.com/microsoft/vcpkg) ports directory.
- No `conanfile.py` exists in the repository, and there is no listing under [conan-center-index](https://github.com/conan-io/conan-center-index).
- `packaging/graaf.pc.in` generates a pkg-config file on install, but the library itself is not distributed through any registry that would let a pkg-config-based dependency manager pull it automatically.

## Why this matters

Teams building on C++ increasingly manage dependencies through vcpkg or Conan rather than vendoring source or hand-rolling `FetchContent` declarations, both because it gives them reproducible, auditable dependency graphs and because it fits existing internal artifact/proxy setups. A dependency that isn't available through any of the mainstream registries adds friction and manual review overhead for adopting teams, and complicates keeping the library up to date.

## Suggested resolution

- Add a `vcpkg.json` manifest and a port definition, and submit it to `microsoft/vcpkg`.
- Add a `conanfile.py` (or `conanfile.txt` reference) and submit a recipe to `conan-io/conan-center-index`.
- Document both installation paths in the installation guide alongside the existing methods.
- Consider a Homebrew formula for macOS/Linuxbrew users, given the library is header-only and has minimal build requirements.

## Acceptance criteria

- [ ] Graaf can be installed via `vcpkg install graaf` (or equivalent) once the vcpkg PR is merged.
- [ ] Graaf can be consumed via a Conan recipe once the Conan Center PR is merged.
- [ ] Installation docs list these methods.

Contributor guide

Open the contributing guide

Research direction

The repository's CMake configuration and packaging files are the starting point. Examine the existing CMakeLists.txt and the packaging/graaf.pc.in file. Research vcpkg and Conan documentation to understand how to create a port file (vcpkg.json) and a conanfile.py. The acceptance criteria require submitting PRs to external registries (microsoft/vcpkg and conan-io/conan-center-index), so understanding their contribution guidelines is essential. Success means Graaf can be installed via `vcpkg install graaf` and consumed via Conan, with updated installation documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system, developer-experience, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.