- Add basic line change counts for each x.x.0 library versions.
- import line change counts during `import_commits` task.
- Add `update_issues` management command for importing Issues for each
LibraryVersion.
- Add update issues runnable command in `Issue` admin.
- Build word cloud using mailinglist content.
- Update release report with new data.
- This work is a prerequisite for #1290 and #1289
- Create an `EmailData` model which holds email counts per
(CommitAuthor, Version).
- Add management command `sync_mailinglist_stats` to query data from the
hyperkitty database and build `EmailData` objects from it
- EmailData.count is calculated between x.x.0 release_dates
- Add button in EmailData admin to trigger task
- Update the `merge_author` method to update EmailData with the Summed
counts per version and delete EmailData which pointed to the
`CommitAuthor` being merged from.
Instead of parsing out the HTML body from the full HTML document.
All adoc parsing now goes through `convert_adoc_to_html`. I removed the
`adoc_to_html` task because it was never `.delay`ed, probably because it
doesn't necessarily work: it expects content to be passed in a temp
file, which might not exist on the worker processing the task. The new
function passes the content as a string instead of a temp file.
This removes the `div#header` and `div#content` containers from the
output. It's wrong to have IDs in embeddable html because multiple
asciidoc outputs might be included on the same page, resulting in
duplicate IDs. I couldn't find a place where these containers are
necessary, though, because markdown output doesn't include them,
resulting in a discrepancy in the output for markdown vs asciidoc that
is now fixed. If we need to include the containers, I'd wrap the
asciidoc output in the template where it is used rather than expecting
it to be returned by `convert_adoc_to_html`.
Fixes#1302
- fixes#1325
- reuses the logic that imports authors for libraries to do the same for
LibraryVersions.
- Authors are only added if an email is listed for the author in the
metadata
View stats per release, we do this by
doing log diffs between release tags. Ex: `git log
boost-1.78.0..boost-1.79.0`. The output is parsed and the commits
are saved with a foreign key to the `LibraryVersion` it relates to.
- commits are imported by doing "bare" clones (no project files, only
git data) of repos into temporary directories, as created by python's
bulitin `tempfile.TemporaryDirectory`
- Added Commit model
- Added CommitAuthor model
- Added CommitAuthorEmail model
- One CommitAuthor can have many emails.
- Added task for importing commits. (and admin link to trigger it)
- Added task for importing CommitAuthor github data (avatar and profile
url, with admin link to trigger it)
- Added a basic Library stat page which can be viewed by going to the
admin -> library -> view stats.
- Added a `Get Release Report` button in the `LibraryAdmin` which allows
a staff member to select a boost version and up to 8 libraries to
generate a report for. The report is just a webpage which attempts to
convert cleanly to a pdf using the browser's print to pdf functionality.
- Updated the Library Detail page to show commits per release instead of
per month.
- Updated the Library Detail page to show `Maintainers & Contributors`
sorted by maintainers, then the top contributors for the selected
release, then the top contributors overall by commits descending.
- Removed CommitData, which was tracking monthly commit stats
- Add LibraryVersion inline to LibraryAdmin for easier debugging
- Add convenience function to generate random string
- Adjust Library slug so it functions as unique without being unique
- Add exception logic for older Container Hash versions
- Fix bugs in management commands
- Add exception logic for older Container Hash docs
- Add exception logic for Functional/Overloaded Function docs
- Add task to import all library-versions, and add that to existing admin refresh buttons
- Add logic to import github_url if we dont have it
- Remove the kwargs from the call to update_libraries
- Add placeholder task for commit counts
- Refactor to simplify the commit count logic and pull it out of the management command and into a task
- Adjust schedule
- Add a separate task to update current month commit counts
- Add CommitData to admin, and add functionality to update the CommitData from the admin via button, like other admin features
- Add `created` and `modified` fields to `RenderedContent` models
- Add caching and RenderedContent docs
- Change cache key for library description rendered content
- Add `CLEAR_STATIC_CONTENT_CACHE_DAYS` setting
- Add manager method and task to clear static content cache
- Move task scheduler to main app
- Add daily task to clear rendered content cache
- Use created date and not updated date
Add data JSONField to LibraryVersion model
Add fields to library list admin display
Add commands to update authors and maintainers individually
Exclude data JSONField from view querysets
Silence some output from the library-version import management command
Remove unused field from the library-version import management command
Save library-versions more cleanly in the library-version import management command
Remove loading maintainers from the import command, since they now have their own command
Add docs for new commands
Add boost_setup command to run one command to import all data
Add docs on first-time data import
Better exception handling, quieter flow, reduce GH API calls
Graceful handling if there is not a github repo
Pass most recent 12 months to commit counts command
Add some user-friendly output to setup command
- Add featured library to context of home page
- Add the featured library to the homepage template
- Return a random library if no library is marked as featured
- Add link to library detail page
- Add default author image
- Add hover text with author name
- Limit "random" featured library to libraries within the most recent Boost version
- Add documentation_url to LibraryVersion table
- Retrieve the documentation_url in the view
- If the documentation_url is not present, show the Version documentation_url
- Hide the "https://" in the template
- Add Celery task to retrieve the documentation_urls from the libraries page in S3 and match them to import_library_versions
- Add HTML helper function to extract the libraries and docs URLs from the HTML
- Add one-time command to import docs urls
- Load the documentation_urls in the command that loads all library-versions
- Add a min-release option to the command that loads library-versions
- Document the new command and changes to the existing command
(Part of #394 and #252)
- Add method to the GitHub API class to retrieve a specific file from a repo by its tag and path (to retrieve README or adocc files)
- Add method to Library model to retrieve the description content and render it
- Fail gracefully if no content is found
- Add caching logic for redis and database caching