Closed frankwiles closed 1 year ago
Related issues:
@frankwiles what should the refresh schedule be for the various library-adjacent objects? I can start breaking those out into smaller issues.
objects:
Casually broken out into separate API calls, and we'll just refresh whatever data is there when we grab it.
Fields to make available in template:
library.name
https://
, only the remaining URL. Not sure yet how we get this.~ Forced a link that is "good enough" but not valid for all libraries. will need to fix. libraries.json
. libraries.json
as cxxstd
. I need to confirm what we call it but I think it's the same library.description
library.categories
user.image
for authors and maintainers that have profile photos. Otherwise use a static image. asciidoc
data but need to confirm main
?See #254
@williln I'm thinking daily is probably the right cadence. Just wanted to make sure it wasn't weekly or monthly.
@sdarwin already has this data by the way. I settled on the number of commits because it is super easy to get
git rev-list --count <branch-name>
and also because it is efficient.
In terms of tracking, once a month is more than enough, there's no need for dailies or partially filled months... the signal to noise ratio at high sampling rates is too low. There should always be 12 months in the monthly graph for libraries that are at least 12 months old. Otherwise those older months would just show as zero.
For the yearly, only full years count, going back since the library was added.
The graphs are the lowest priority, if we just hide them and put a solid tinted rectangle in their place I am happy for the Debut, and we can make them actually work later. Everything else needs to work though.
@vinniefalco For the C++ version display, should we display exactly what is in meta/libraries.json
or should we use the display names here? https://docs.cppalliance.org/user-guide/prev/library_metadata.html
For the display year, should we use the year of the earliest GitHub tag? Example: for asio
it would be boost-1.35.0-rc1 in 2008: https://github.com/boostorg/asio/tags?after=boost-1.35.0-rc3
In the lozenge prefer "03" and "14" to "C++03" and "C++14" if for no other reason than the repetition of "C++" weakens the design language of the page.
If we are talking about the library detail page then I think it would be ok to say "C++11", "C++14", and so on.
@vinniefalco For the "Since 2019" display year on the library details page, should we use the year of the earliest GitHub tag? Example: for asio
it would be 2008 in the boost-1.35.0-rc1 tag
earliest repository tag is a good start. a library might be older (for example in the SVN days), but the author would have to submit a request to manually update the database or something.
Render the asciidoc in the body of the details page -- @vinniefalco where do I get that content?
I was thinking of having it come out of a directory in the library repository. for example
doc/library-detail.adoc
or if that file is not present, then it could come from the root:
README.adoc
alternatively, we can just show nothing if "doc/library-detail.adoc" is missing, and if it is present and is also a symbolic link to another file in the repo then we can resolve the link and use that file. This will allow the repository owner to create README.adoc in the root of the repository for GitHub to preview on the repository landing page, and also allow the repository owner to link doc/library-detail.adoc to README.md so that the same content appears on the corresponding library detail page.
This would have to use the right commit or branch. If the user has selected an older version then it needs to use the git tag corresponding to that version. The user can select "latest version" which is just the highest semantically valued tag. But there are also the "develop" and "master" choices which correspond to the library repository's commit-id in the superproject.
Render library.adoc in the root of the repository to HTML and save it into the database in a TextField which will be rendered below the graphs and other header/link elements.
where do I get that content?
To complement Vinnie's answer, the pages are in the revsys buckets under s3://***/site-pages/{branch}
. For instance, s3://***/site-pages/develop/help.adoc
for the FAQ page. The "?" icon currently links to https://www.boost.revsys.dev/support/ though.
@vinniefalco @alandefreitas Thanks for your explanations. So for the library documentation --
Render the asciidoc in the body of the details page -- @vinniefalco where do I get that content?
I was thinking of having it come out of a directory in the library repository. for example
Do the asciidoc files for the library descriptions not exist in the library repos yet? Or if they do, can you point me to the one I should be using for asio
, just as an example? https://github.com/boostorg/asio
The files do not exist yet :) Alan could you please copy README.md to library-detail.adoc (and convert to Asciidoc) for URL, JSON, and Beast? And ask the Boost.Redis and Boost.MySQL authors do to the same (and merge to develop)?
@williln library-detail.adoc is in boostorg/json/doc and boostorg/url/doc. I'll still do the other libs.
@alandefreitas Thank you! I'll use those as test cases when working on the asciidoc conversion.
@alandefreitas @vinniefalco The code to convert and cache asciidoc content is now in place, so I'm circling back around to load the doc/library-details.adoc
content into the body of the Library Details page for the pages that have it.
For versions of the library that predate when that file was added or that otherwise don't have it, what should we show for the library description?
Local example of a library with that file:
And without that file:
library.adoc
in the root of the repository to HTML and save it into the database in a TextField which will be rendered below the graphs and other header/link elements.