-
Notifications
You must be signed in to change notification settings - Fork 698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework material on library components in Cabal Users Guide #9370
Conversation
675d474
to
92e5cf9
Compare
@ffaf1, I'd be happy to rebase this once yours is merged. |
92e5cf9
to
a076f5c
Compare
I have rebased on #9371, but also made some further changes, namely:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, I had a read through this and had some ideas for improving this already really nice PR.
I'm not a maintainer so feel free to take my suggestions with a pinch of salt.
It might seem like a lot of comments but a lot of the suggestions are the same thing repeated a couple of times.
If you have the chance to take a look at one thing then it's having another look at the internal library example. I think some information is lost in your edits
"to vendor" normally means to include some external source code, eg, if you are writing bindings to a C library you can vendor that library by including the C source as part of your source tarball. In the example we are vendoring parts of attoparsec by including their source in our library rather than depending on attoparsec from Hackage, eg, because it would lead to a cyclic dependency |
I don't think this use of the word "vendor" is universally recognized. So, I think, it should be either explained or replaced with something (macro-expanded with your explanation, perhaps). |
It's pretty widely recognized in the developer community. |
I was unsure about its meaning before this conversation, had to check [Wiktionary](https://en.wiktionary.org/wiki/vendor#Verb).
I find “to bundle” to be more understandable as a non-native English speaker. Is this an appropriate synonym?
Il 28 ottobre 2023 alle 11:55 brandon s allbery kf8nh ha scritto:
… It's pretty widely recognized in the developer community.
--
Reply to this email directly or view it on GitHub:
#9370 (comment)
You are receiving this because you were mentioned.
Message ID: ***@***.***>
|
Perhaps both ( |
On the use of terms such as 'to vendor', I don't know what audience the Cabal Users Guide has in mind. When I edit the Stack Users Guide, I try to have in mind somebody leaving school and about to start a degree course on computer science at university; it helps me with the 'assumed prior knowledge of the reader'. I substituted 'to incorporate' for 'to vendor'. EDIT: I'm helped in that (in imagining my hypothetical undergraduate-to-be) by the pre-reading list of the University of Oxford: https://www.cs.ox.ac.uk/admissions/undergraduate/why_oxford/reading.html, which includes books on Haskell. |
I'll wait to see what views other people have before attempting to assimilate them all in a revised proposal. |
a076f5c
to
6302412
Compare
On reflection, I have force pushed an alternative now. @TeofilC's comments have encourged me to be more muscular in rephrasing existing content. I have now:
|
6302412
to
0d6d714
Compare
0d6d714
to
b2d1901
Compare
Rebased on |
You all are doing an amazing job here! ❤️ |
b2d1901
to
1430518
Compare
Rebased on |
Thanks for the ping! I'll take another look either Tuesday or Wednesday |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I read over the latest version and it looks great to me! Thanks for all your work on this!
I elevated permissions for @TeofilC to Write so that his review counts towards the threshold. |
1430518
to
34d523f
Compare
The existing material in the Cabal Users Guide on library components is written up as incremental 'developments' on top of the 'history'. This reworking aims to recast the existing material to describe the current state of affairs.
It also aims to eliminate duplication and be consistent in the terminology used, as follows: a library component can be the 'main' unnamed library or a named library (which can be referred to as a 'sublibrary'). A sublibrary can be 'public' or 'private'. A private sublibrary can be referred to as an 'internal' library.
It moves
pkg-field:: visibility: visibility specifiers
to the top of the discussion oflibrary
section fields, as whether a library component is 'public' or 'private' is a fundamental characteristic of the component.It also clears the existing
TODO inline the blog post
. I consider that all of the substance in the blog post is now to be found in the Users Guide.