-
Notifications
You must be signed in to change notification settings - Fork 1
Welcome
Hi! Thanks for your interest into the Common Package Specification (CPS). These documents are intended to supplement the specification itself with community-editable tutorials, guides, and other explanations.
Specific steps to solve specific problems!
How do I write a CPS file for a given type of project?
In a file called fmt.cps
:
{
"name": "fmt",
"description": "An open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.",
"license": "MIT",
"version": "10.2.1",
"default_components": [ "fmt" ],
"components": {
"fmt": {
"type": "archive",
"definitions": ["FMT_HEADER_ONLY=0"],
"requires": [],
"includes": "@prefix@/include",
"location": "@prefix@/lib64/libfmt.a"
}
}
}
Concepts, context, and other ways to grow understanding.
See the CppCon 2023 talk called Libraries: A First Step Toward Standard C++ Dependency Management by Bill Hoffman and Bret Brown to understand the motivation and goals for CPS.
Facts, specifics, and other information
Reference documentation for CPS is maintained in the CPS specification. Since precision and review are important to maintaining a specification, those documents are maintained using a more structured pull request workflow. Please use PRs and issues on the CPS repo itself to contribute to the CPS specification.
It can be challenging to write documentation that serves all purposes for all readers. The documentation for CPS is instead structured into the documentation system described by Divio. It's expected that approach will be more approachable both for readers and for contributors to the documentation. If you have ideas, questions, or concerns, please open an issue on this repo describing what you expected and what happened instead.