156 Commits

Author SHA1 Message Date
daveoconnor
c980879935 Release Report Enhancements (#1750) (#1992) 2025-11-04 14:14:20 -08:00
daveoconnor
65fdf7c91a Correct documentation URL issues (#1975) 2025-10-17 13:14:07 -07:00
daveoconnor
2b392f8538 Add /libraries/x.x.x redirect (#1937) (#1949) 2025-10-08 14:48:45 -07:00
daveoconnor
cb5c4ab492 Added module flagging from libraries.json (#1900) (#1926) 2025-09-30 14:35:26 -07:00
daveoconnor
6dbfb017bc Release report changes (#1862) 2025-08-04 19:26:52 -07:00
daveoconnor
4b8b554b58 Added override functionality for github issues links (#1594) 2025-01-13 08:34:59 -08:00
Brian Perrett
2981976b80 Add functionality to track LibraryVersion dependencies (#1524) 2024-12-16 14:28:33 -05:00
daveoconnor
91f36c3eeb Simplified/centralised version dropdowns population (#1500) (#1510) 2024-12-10 09:29:50 -08:00
Greg Kaleka
f85c533dde Consolidate version dropdown code and fix library detail dropdown (#1498) 2024-11-26 21:39:49 -05:00
daveoconnor
f6a5f4fbcf Make URLs more consistent, refactor libraries/releases (#1489) 2024-11-25 16:08:38 -05:00
Greg Kaleka
5d9da9e486 Code formatting fix (#1437)
Co-authored-by: Greg Kaleka <gkaleka@energy-solution.com>
2024-11-12 16:12:45 -05:00
Greg Kaleka
e9ed0aabc9 Add missing README message (#1350) 2024-11-12 15:51:31 -05:00
daveoconnor
1d31bef1e4 Library Version Based CPP versions and descriptions (#1422) 2024-11-12 15:49:16 -05:00
Greg Kaleka
fed0291d9e Libraries by category view only show populated categories for selected version (#1417)
Fixes #1224 

- In libraries-by-category view, filter categories to only ones with
libraries in the selected version
- Added a prefetch to the query to fix the N+1 query (minor performance
improvement)

Before:
<img width="1275" alt="Screenshot 2024-11-05 at 3 54 18 PM"
src="https://github.com/user-attachments/assets/fadd4e56-7101-46bb-ab4f-68d7d01a8879">

After:
<img width="1266" alt="Screenshot 2024-11-05 at 3 53 58 PM"
src="https://github.com/user-attachments/assets/b54f4e20-5928-477e-88c2-dc0082babfc0">

---------

Co-authored-by: Greg Kaleka <gkaleka@energy-solution.com>
2024-11-06 12:21:58 -05:00
Greg Kaleka
44829f1556 Add category override mapping and use it in library update method (#1411)
Fixes #1034

- Adds a `CATEGORY_OVERRIDES` mapping
- Uses the override in `update_libraries` management command

### Manual testing
- Ran `./manage.py import_versions`
- Ran `./manage.py update_libraries`
- Static String had the correct category
<img width="440" alt="Screenshot 2024-11-04 at 5 24 05 PM"
src="https://github.com/user-attachments/assets/4b0cf4cb-15e2-4337-9284-7659afd40643">

### Post-deploy tasks
- Ensure `update_libraries` is run
- Verify **Container** category is orphaned
- Delete **Container** category

Co-authored-by: Greg Kaleka <gkaleka@energy-solution.com>
2024-11-05 13:49:00 -05:00
Brian Perrett
bb28aa2d12 Remove calls to deleted tasks. (#1345) 2024-10-25 11:43:48 -07:00
Brian Perrett
fdeb79b8e3 Sync EmailData from hyperkitty. (#1366)
- 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.
2024-10-21 09:39:09 -07:00
daveoconnor
463112e5af fixed issues with releases page and versioning (#1300)
* Fixed issues with releases page and versioning
* Added latest support and version alert
* Updated version alert to link to /release and clarify most recent vs
vs "release" selection
* Refactored Libraries and Releases pages to align similar code for
reuse.
2024-10-07 15:42:18 -07:00
Brian Perrett
48c09d3d5e Import commits per release and create release reports (#1263)
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
2024-09-25 15:09:07 -07:00
daveoconnor
50559609e9 fixed issues with libraries navigation, refactors (#1213) (#1250)
There's a good amount of refactoring in this, so this is going to look
like a much bigger change than it is. In reality it makes the dispatch
code simpler.

Fixes: 
1. Resolved the issue with the libraries pages not redirecting correctly
2. Resolved an issue around categories not being preserved moving from
page to page.

The issue with the redirects was there was a tug of war on arriving on
/library between the various ways of determining where the user should
end up.
I added a `/libraries/grid/` url and now `/libraries/` determines which
list page the user should end up on based on 1) url 2) cookie, 3) the
default, same for version preference. We can probably get rid of
dispatch() later. This has the added bonus of allowing reliable linking
to a specific list view (e.g. for users to bookmark one type)

Refactors:
1. Separated the navigation on the three library pages into a standalone
template.
2. Moved some constants to constants.py
3. Moved a lot of the views methods which were only used by the
dispatch() call to utils.py .
4. At that stage there were circular imports so I moved the docs
generation functions which were only used in constants.py to
constants_utils.py. utils.py is more general.
2024-09-19 12:06:36 -07:00
Kenneth Reitz
32a8d122d7 Sticky libraries view (#1129)
This pull request solves #1106.
2024-07-02 16:24:06 -04:00
Kenneth Reitz
633d5601ed Fix documentation URL generation for library versions 2024-04-04 10:33:20 -04:00
Kenneth Reitz
13377a045a Update documentation URLs in test cases 2024-04-04 10:33:20 -04:00
Kenneth Reitz
3273d1179b Add library_version parameter to test_library_docs_redirect function 2024-03-25 16:09:35 -04:00
Kenneth Reitz
9cdfdcf746 Refactor test_library_docs_redirect function signature 2024-03-25 16:09:35 -04:00
Kenneth Reitz
3b7ffdbde0 Add test for library documentation redirection 2024-03-25 16:09:35 -04:00
Lacey Williams Henschel
65cfeb2ace Mark libraries that we know are missing docs as such
- Create a constants file for the library exceptions
- Add version docs missing constant and logic
- Add function to check if version docs are missing
- Add range to missing library-version docs
- Add function to check if library-version docs are missing
2024-02-20 13:51:25 -08:00
Lacey Williams Henschel
9e9c6bb6b6 Add field missing_docs to LibraryVersion model
- Add new field to the admin
- Add logic for missing library-version docs to view
- Add tests
2024-02-17 16:54:54 -08:00
Lacey Williams Henschel
2ed461d294 Add exception logic for some versions of Member Function docs; fix tests 2024-02-09 11:42:30 -08:00
Lacey Williams Henschel
881def7147 Add exception logic for Math Common Factor docs 2024-02-09 11:42:30 -08:00
Lacey Williams Henschel
ba19df67aa Add exception logic for Typed In Place docs 2024-02-09 11:42:30 -08:00
Lacey Williams Henschel
eab88eb401 Add exception logic for Identity Type docs 2024-02-09 10:01:44 -08:00
Lacey Williams Henschel
f3262f1de6 Add exception logic for even older Circular Buffer versions 2024-02-09 10:01:44 -08:00
Lacey Williams Henschel
4156a188c4 Fix exception logic -- html vs htm 2024-02-08 14:21:34 -08:00
Lacey Williams Henschel
d865cf2711 Add exception logic for Multi Array, Multi Index, and Smart Ptr docs 2024-02-08 14:02:33 -08:00
Lacey Williams Henschel
57e1de2db6 Add exception logic for older Interval docs 2024-02-08 13:36:57 -08:00
Lacey Williams Henschel
b9d8778976 Add exception logic for older Compressed Pair docs 2024-02-08 13:20:25 -08:00
Lacey Williams Henschel
759d2d9c28 Add exception logic for older Dynamic Bitset docs 2024-02-08 13:08:00 -08:00
Lacey Williams Henschel
4f80c1871a Add exception logic for older Call Traits docs 2024-02-08 11:33:06 -08:00
Lacey Williams Henschel
c95e5407db Add exception logic for Any library
- Fix bug when a libraries.json file is not found
2024-02-07 13:17:48 -08:00
Lacey Williams Henschel
4a7200472b Add exception logic for StringView docs 2024-02-07 10:29:11 -08:00
Lacey Williams Henschel
17da0c8610 Fix docs urls for string-ref 1.77.0 and prior 2024-02-07 09:21:26 -08:00
Lacey Williams Henschel
2ec3702f4e Fix documentation urls for IO library
- Refactor to allow for multiple documentation paths for a single library
- Add more helper functions

Also did a live test
2024-02-05 17:06:54 -08:00
Lacey Williams Henschel
c9cc3c49b3 Add exception logic to load the Detail docs links
- Add a button to the LibraryVersion admin to reload the docs links
- Add some minimal docs on the admin features
2024-02-05 14:14:55 -08:00
Lacey Williams Henschel
6755f76753 Replace relative image URLs with absolute URLs in static content files
- Add function to replace relative image paths with absolute paths
- Add docs on static content and adding shortcuts to the config file
- Add url and view for rendering static image data
2024-02-02 12:24:19 -08:00
Lacey Williams Henschel
e28fbfef81 Add better messaging, more graceful handling when no data has been imported
- Change mixin to allow for no versions or libraries
- Show message when there is no data, and hide rest of template
- Hide featured library block if there is no featured library
2023-10-18 16:41:25 -07:00
Lacey Williams Henschel
4f4e44ae1a Only show beta releases in drop-down selectively
- Add docs on dependency management
- Add manager method for versions in drop-down
- Add model method for getting version parts
- Standardize version names in fixtures
- Change manager method used to get versions for dropdown
- Change where ordering happens
- Fix test
2023-10-18 13:25:28 -07:00
Lacey Williams Henschel
c251ff9671 Import most recent beta release
- 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
2023-10-13 09:32:16 -07:00
Lacey Williams Henschel
d7ad619d3f Remove unused url, unused template logic 2023-09-20 08:47:13 -07:00
Lacey Williams Henschel
214f37986b Streamline import commands and add docs
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
2023-09-19 11:17:05 -07:00