[ANN] PkgDashboards

PkgDashboards.jl helps you create a markdown page or html page with all your badges from travis, Codecov, PkgEval, commit activity, stars and stars over time graphs.

The exported functions are

  • dashboard(target_users; output=:markdown, autoopen=true, stargazers=false, githubci=false, stars=true, activity=false)
  • pkgdashboard(packagenames; kwargs...)

Arguments:

  • target_users: a string or a vector of strings with github usernames or org names
  • output: :markdown or :html
  • autoopen: indicate whether or not the result is opened in editor or browser
  • githubci: Also add a Badge for github CI
  • activity: display number of commits per month
  • stars: Add github stars badge
  • stargazers: include a plot with github stars over time

Usage:

dashboard("github_username")
dashboard(["username1", "username2"])
dashboard("github_username", output= :html, autoopen=true)

Result

dashboard("baggepinnen"):

28 Likes

Thank you! I wanted something like this. I’ve been using ugly oneliner [1] which is not really easy to use.

By the way, it’d be nice if dashboard returns a PkgDashboard object that implements 3-arg show with text/markdown, text/plain, and text/html. It would then be opened automatically in user’s preferred display; e.g., ElectronDisplay.jl: [ANN] ElectronDisplay.jl v1.0.0 released

Also, is it possible to link to https://github.com/JuliaCI/NanosoldierReports/tree/master/pkgeval/by_date/$YYYY-$MM/$DD/logs/$packagename from the PkgEval badge? I guess figuring out the correct day is a bit tricky, though. (Maybe just use the latest day that does not return 404?)

[1] cd ~/.julia/registries/General; grep --files-with-matches '\btkf\b' */*/Package.toml | sort | xargs dirname | sed -E 's#(.*)/(.*)#| [![PkgEval \2](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/\0.svg)](https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html) | \2 |#'

1 Like

The correct approach is to use the latest symlink that points to the latest day: https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by_date/latest

1 Like

Thanks, that’s good to know. Is there an easy way to resolve symlink and open the relevant page? It looks like GitHub’s web page do not resolve/redirect symlink: e.g., https://github.com/JuliaCI/NanosoldierReports/blob/master/pkgeval/by_date/latest/logs/ThreadTools is 404

Maybe the easiest approach is to just fetch the “raw” content https://raw.githubusercontent.com/JuliaCI/NanosoldierReports/master/pkgeval/by_date/latest ?

If all you want is a clickable link, the best (and recommended) way is to use the following link, which will always redirect to the latest report:

https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html

Try it out: https://juliaci.github.io/NanosoldierReports/pkgeval_badges/report.html

1 Like

If you want a clickable link that redirects to the specific package, that is harder.

You need to manually fetch the raw content and construct the correct link yourself.

You may also be interested in my feature request here: Link that brings you automatically to latest report for specific package · Issue #5 · JuliaCI/NanosoldierReports · GitHub

1 Like

Thanks for opening the issue!

That’s a pretty cool idea, I’ll see what I can do :slight_smile:

1 Like

I hope the show methods work as intended. I pretty much only use Juno so I’m not sure how they are supposed to display, but the following should produce a nice output now

electrondisplay(dashboard("tkf", stargazers=true, activity=true))

Edit: In IJulia the display looks like crap for some reason unknown to me, but electrondisplay handles it well.
Edit2: Problem fixed :slight_smile:

1 Like

Beautiful table! Thanks a lot!

I love this idea @baggepinnen ! Taking some inspiration from you I just created

https://myshields.io/#q=user%3Abaggepinnen

The business logic is just a regex on the raw README.md. Code is on github if anyone is interested :slight_smile:

5 Likes

That could potentially be used in PkgDashboards as well to extract other insteresting badges from the readme :slight_smile:

Are you sure it’s working as it’s supposed to, is travis.com hardcoded for the travis badge? All build status badges show up as unknown.

Also, it looks like myshields.io is not showing the PkgEval badges.

True. We can just add a regex here. I’ll probably get to that soon (or feel free to beat me to it by sending a pull request).

Looks like an issue with the regex; it captures all non-space characters following /travis-ci\.org/ but in your readmes (and many others) the links are not separated by spaces. I’ll fix that too.