Scope Brainstorming #2
Replies: 10 comments 24 replies
-
Banging out some requirements:
Note that I'm not bringing up packages as such. We want this to work in contexts where a package manager is involved, but also in contexts where the origin of files on disk is not obvious (i.e., libraries installed under the user home directory). EDIT: Wording |
Beta Was this translation helpful? Give feedback.
-
Following on the above:
I suppose this would allow for complete paths or a combination of a name and a search path (that is, |
Beta Was this translation helpful? Give feedback.
-
I'm flexible on whether the paths are relative to the metadata file like But I expect rewriting |
Beta Was this translation helpful? Give feedback.
-
My preference would be to require explicitly that zero include directories be enumerated in the case of a library with no header files, just to give the affirmative demonstration that that is the case. |
Beta Was this translation helpful? Give feedback.
-
Similar to include directories, I would like a set of zero dependencies when that is the case. |
Beta Was this translation helpful? Give feedback.
-
This one has a lot of implications, but we'll need some sort of requirements about identity to be fleshed out. This is a starting point for discussion. Someone feel free to branch of a dedicated discussion about what to do about identities. I'm OK with "just use the basename of the file" as an approach because, in my experiences at least, the 'name' of a library (i.e., what would be passed to |
Beta Was this translation helpful? Give feedback.
-
Choosing this requirement based on a straw poll we took in the hallway at CppCon 2022. The goal here is to provide a starting point for a serious proof-of-concept. It's possible the file format will change or more options for file formats will need to be added as we gain more experience. |
Beta Was this translation helpful? Give feedback.
-
Of course, generally speaking, moving |
Beta Was this translation helpful? Give feedback.
-
Yes, I know, I mentioned the elephant in the room. But this is a key aspect for building Boost. As it generates a handful of ABIs in one build. The big question is... Is this something for now or for down the road? Can we live without this initially? |
Beta Was this translation helpful? Give feedback.
-
This is actually a new one in most (all?) contexts. But I was just trying to design a link-what-you-include tool and I'm coming up against the fact that there's no canonical way to look at a It should also prove handy when sorting out what headers go with what in an omnibus include directory, especially when you want higher order tools like IDEs describing libraries as such. See above about link-what-you-include. Even in the case of header-only libraries, having the headers clearly associated with the library name will allow systems to identify needed build flags, dependencies, etc. |
Beta Was this translation helpful? Give feedback.
-
It occurs to me that the initial challenge with this project will be defining scope. There are a wide range of needs and technologies in packaging that can and eventually should be discussed. We'll need to provide ways to organize all that information and carve out a reasonably sized initial subset of all that to create a minimum viable product for packaging standards.
I'm open to better ideas here, but perhaps we should start with fairly simple mechanisms and refine our work habits and culture from there.
To provide focus, I think we should start by describing relevant use cases and requirements in text.
What would I like to see? An ideal description would be clear enough to be objectively achieved or not by a given tool or technology. Merits aside, I like this as a requirement because it's clearly achieved or not:
In contrast, I think this needs more refinement:
Where would I like to see these descriptions? Replies in this thread should work fine. We'll treat this as a thread for brainstorming. If certain ideas need extra work, we can move them into a separate discussion or issue.
Eventually I would like to see these requirements captured in design documents and even tests in this repository. Given we don't have either yet, I'd be happy just having a place to capture thoughts initially. Once we have a certain amount of mass here, I think converting the requirements into some sort of structured design document will be more straightforward. I could see incremental issues and pull requests carrying the work forward from there.
Beta Was this translation helpful? Give feedback.
All reactions