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
- Split import version into own task
- Add beta field to Version model
- Add task to import most recent beta version
- Accommodate beta releases in Artifactory downloads
- Fix bug in getting proper download files for beta releases
- Add ability to delete old beta versions when importing new beta version
- Hide release notes link for beta releases
- Comment why we don't get old downloads
- Add management command to get most recent beta release
- Add beta import to boost setup command
- Add docs on beta release import
- Get newest beta release when importing releases
- Add manager method to get most recent beta release
- Skip a couple failing tests after confirming behavior is working as expected
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