parkr / auto-reply

:loop: Handle GitHub webhooks and manage issues on your repositories. Used to run @jekyllbot, now at github.com/jekyll/jekyllbot
https://byparker.com/go/auto-reply
BSD 3-Clause "New" or "Revised" License
69 stars 13 forks source link

Add cmd/nudge-maintainers-to-release #36

Closed parkr closed 6 years ago

parkr commented 6 years ago

The purpose of this command is simply to nudge maintainers towards good release cycles of at minimum every 2 months when new commits have come in.

Current output:

nudge-maintainers-to-release: main.go:71: jekyll/plugins has no releases
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-sass-converter would have been nudged for date=2016-11-14 21:27:37 +0000 UTC commits=6
nudge-maintainers-to-release: main.go:91: jekyll/jemoji would have been nudged for date=2017-09-21 17:44:54 +0000 UTC commits=4
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-coffeescript would have been nudged for date=2016-12-15 20:24:00 +0000 UTC commits=14
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-watch would have been nudged for date=2016-07-20 19:29:07 +0000 UTC commits=14
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-redirect-from would have been nudged for date=2017-01-12 14:45:00 +0000 UTC commits=32
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-feed would have been nudged for date=2017-03-28 15:42:16 +0000 UTC commits=11
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-seo-tag would have been nudged for date=2017-08-24 19:07:27 +0000 UTC commits=15
nudge-maintainers-to-release: main.go:94: jekyll/jekyll-import is not in need of a release
nudge-maintainers-to-release: main.go:91: jekyll/minima would have been nudged for date=2017-04-13 15:05:31 +0000 UTC commits=17
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-sitemap would have been nudged for date=2017-04-12 00:33:42 +0000 UTC commits=25
nudge-maintainers-to-release: main.go:91: jekyll/github-metadata would have been nudged for date=2017-09-07 22:48:03 +0000 UTC commits=6
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-admin would have been nudged for date=2017-09-24 10:17:37 +0000 UTC commits=46
nudge-maintainers-to-release: main.go:94: jekyll/jekyll-compose is not in need of a release
nudge-maintainers-to-release: main.go:91: jekyll/jekyll-gist would have been nudged for date=2017-06-21 15:01:39 +0000 UTC commits=6
nudge-maintainers-to-release: main.go:85: jekyll/jekyll would have been nudged for commits=191

/cc @ashmaroli @dirtyf @mattr- @pathawks

ashmaroli commented 6 years ago

can the message be simplified to: ?

- ... jekyll/minima would have been nudged for date=2017-04-13 15:05:31 +0000 UTC commits=17
+ ... jekyll/minima would have been nudged on 2017-04-13 15:05:31 +0000 UTC for 17 commits
DirtyF commented 6 years ago

Could @jekyllbot create an issue after two months or after a configurable amount of commits per repo?

👋 Hi maintainers,

Time to push a new release of {{ repo.name}} ! 

💎  {{ repo.latest_release }} was released {{ days_since_release }} days ago and {{ commits_since_latest_release }} commits have been added since.
...

We already have unreleased commits on https://dashboard.jekyllrb.com/, we could also had latest release date there in relative format (eg. 1 month ago).

parkr commented 6 years ago

@ashmaroli The output just goes to the Heroku logs, so it's not important how it's formatted (none of us will see it unless something went horribly wrong). The date there is the CreatedAt date, so for makes more sense to me, because it wouldn't be nudged on a given date, it'd be nudged because a given date is over 2 month old, etc.

@DirtyF Why configure per-repo?

DirtyF commented 6 years ago

@parkr If we only do +2months for all repos, I don't think we'll release e.g, jekyll-sass-converter updates as often as jekyll. We can do without custom release cycle for now, it's already a huge help to be able to have reminders about releases. 🎗

Next step: automated date-based releases? 📆

parkr commented 6 years ago

@parkr If we only do +2months for all repos, I don't think we'll release e.g, jekyll-sass-converter updates as often as jekyll. We can do without custom release cycle for now, it's already a huge help to be able to have reminders about releases. 🎗

The date check ensures that there is at least 1 unreleased commit. I'd argue jekyll-sass-converter could be released more quickly than jekyll, so leaving any unreleased commits is work that our users aren't benefitting from. I think 2 months of no release is a good threshold when there are changes to go out! It won't file the issue if there have been 0 commits on master since the last release.

ashmaroli commented 6 years ago

because it wouldn't be nudged on a given date, it'd be nudged because a given date is over 2 month old

makes sense :+1:

DirtyF commented 6 years ago

It's working fine 😄

jekyllbot-new-release