Do we actually need package manager? & Scope of exemplar

Hey, there are efforts in exemplar to integrate vcpkg into exexmplar.

I am researching how to set this up on the CI part and while I was searching around this thought hits me, do we actually need a package manager?

The nature of us implementing standard library papers do mean we are building near fundamental construct of C++ language features. Aside from std::linalg, I am struggling to find a paper that have to have external dependencies. Aside from implementations of base proposals, which tools like git submodule/ FetchContent maybe more appropriate/ easier to manage.

Taking a step back, I think libraries that have enough complex dependencies that needs tools like vcpkg is the minority, will we really benefit by adding vcpkg into the examplar repository?

Devil’s advocate: maybe testing section would need to have dependencies? e. g. Compare against reference implementation?

I haven’t looked closely, yet, so large grain of salt. There are two sides, consuming from and providing to a package manager. Exemplar has one fairly lightweight dependency, which ironically means it’s a good time to introduce pulling from a package manager, before it becomes a complicated mess, or necessary to figure out how to do it for higher level, more complicated, facilities.
Being driven by a package manager also requires some cooperation, although the requirements are a bit lighter for open managers like vcpkg and Conan. Basically being able to take the toolchain that a package manager requires of a consistent distro, although it should also then take dependencies from the same distro.
Also, with working with a package manager, failure IS and option. If you require ver 3.x, or C++26, and the package manager provides ver 1.5 and c++11, the right answer is to fail, rather than silently producing a different thing.

If we want it at all, we probably should do it for a project that barely needs it. It’s not as if we’re shipping exemplar because people want a new std:: identity.

1 Like

Agree on if we want to do it at all, exemplar is a good start.

My $.02 was that the point of the package manager involvement was largely for the consumer side. That is we want our libraries in vcpkg and conan so that people using those managers have direct access to them. Of course what I’m seeing is the iterator interfaces library is already a dependency of optional and utf_view – so it’s already the case that these initial libraries have at least one dependency to manage.

This makes sense, I am finding projects to implement and I am realizing the usefulness of projects like iterator interfaces. I agree with this.

I guess I am going to go back and try to figure out how to build vcpkg in CI then…