Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

removal: contributors script #1669

Merged
merged 4 commits into from
Nov 9, 2020

Conversation

consideRatio
Copy link
Member

@consideRatio consideRatio commented May 15, 2020

Running this script typically takes more than an hour, it takes quite a
while to make all the required requests, but it can also require waiting
for refreshed GitHub API quota.

I'd like delete it or make adjustments to how it is used currently, this
relates to:

  • running it is a cumbersome step as part of the release process
  • running it takes 30-120 minutes to execute
  • it includes jupyterhub, kubespawner, oauthenticator as well
  • it requires instructions to use and perserverence to use successfully
    • specific python libraries needs to be installed
    • a GitHub API key needs to be configured
    • dates since last use needs to be adjusted
  • PR authors are already credited separately

Ping @yuvipanda as the author of this script and @choldgraf @bitnik as contributor to this script.

@yuvipanda
Copy link
Collaborator

Thanks for opening this, @consideRatio!

I think it's important to credit all the people who have contributed in any form to z2jh, which includes all the subprojects this relies on & all the ways they have done so. To that end, I'd like to keep this script. If the speed is the issue, I'm sure we can find ways to make it faster - or replace it with another script.

What do you think?

@consideRatio
Copy link
Member Author

consideRatio commented May 15, 2020

@yuvipanda my biggest concern is that it slows down and makes the release process more complicated. If we would define a way to publish this separately from the release itself, make it run at least fast enough to not need to await GitHub API quota or similar, that would be sufficient to make me happy.

There is some related work to do with regards the CHANGELOG.md file. The changelog currently acts to provide release notes, the actual changelog, upgrade instructions, contributor credits - all in one place. We also have a section in the docs about upgrading. I'm to blame for this split if I recall correctly, I don't really remember what I was thinking any longer though.

@manics
Copy link
Member

manics commented May 15, 2020

I think there are two issues here:

  • difficulty in running the script
  • overall burden on the person, and it is often one person, making the release (which is not limited to this script, it also includes all the things leading up to the release).

Do you think the latter is worth a separate team discussion?

@choldgraf
Copy link
Member

choldgraf commented May 15, 2020

Is this something that we could use github-activity for? It can return markdown lists of contributors between dates as well. E.g., for me, running:

github-activity jupyterhub/zero-to-jupyterhub-k8s -s 0.7.0 -u 0.8.0

takes about 5-10 seconds, and results in the list at the bottom of this comment.

see here for how github-activity defines "contributor"


Contributors to this release

(GitHub contributors page for this release)

@01100010011001010110010101110000 | @ablekh | @Aisuko | @alanjcastonguay | @amanda-tan | @arokem | @azbones | @betatim | @bitnik | @boileaum | @BrianVanEtten | @cam72cam | @camilo-nunez | @canhtran | @cbjuan | @cboettig | @chaoleili | @choldgraf | @clancychilds | @clkao | @consideRatio | @dalonlobo | @danyx23 | @dhirschfeld | @djgagne | @dkipping | @easel | @Edward-liang | @eric-leblouch | @evertrol | @frouzbeh | @GergelyKalmar | @guoshimin | @h4gen | @henchc | @hnykda | @jgerardsimcock | @joshbode | @jrmlhermitte | @jtlz2 | @jzf2101 | @kalaytan | @lesteve | @manics | @manycoding | @mathematicalmichael | @mhuttner | @minrk | @moschlar | @nicorikken | @nscozzaro | @rahuldave | @ryanlovett | @satra | @scivm | @sgloutnikov | @stefansedich | @stevenstetzler | @tianhuil | @TiemenSch | @tjcrone | @tmshn | @trallard | @vilhelmen | @willingc | @wydwww | @yugushihuang | @yuvipanda | @zonca | @zxcGrace

@consideRatio
Copy link
Member Author

consideRatio commented May 16, 2020

I really like github-activitys ability to use tags instead of dates and its greatly improved performance. Looking up dates and waiting for thousands of web requests took quite a while, and now that can be reduced to something far more manageable.

This is my idea of an action plan now.

  1. We use github-activity's definition of contribution, and to collect contributors.
  2. We attribute everyone in z2jh part of its version bump ...
  3. ... and recursively attribute every contributor to a Jupyter ecosystem project part of a version bump in z2jh's version bump.
  4. We clearly define what Jupyter ecosystem projects to inspect if they were version bumped as part of a release, and where to do it.
    • Thanks to @minrk, the python dependencies is quite easy by looking at how images/hub/requirements.txt has changed since last z2jh release.
    • configurable-http-proxy's tag can be inspected as well in jupyterhub/values.yaml
    • jupyter/docker-stacks for the k8s-singleuser-sample image, do we attribute it as well?
  5. We let step 3 to be manual when it comes to inspecting versions bumped.
  6. We develop a way to combine the various subprojects' contributors to a final list.
  7. We make sure to have documentation allowing any jupyterhub team member to generate this without prior experience in less than 30 minutes.
  8. We remove the old tools/contributors.py script.

@yuvipanda
Copy link
Collaborator

@consideRatio I LOVE IT! \o/ <3. I appreciate your efforts to consistently make processes better for everyone involved.

@choldgraf
Copy link
Member

this sounds great to me!

(also just a note that github-activity will work with just a github organization, at which point it list contributors across all repositories in the org within a window of time)

@consideRatio
Copy link
Member Author

@yuvipanda @choldgraf I have released 0.10.0-beta.1 of the Helm chart, but I just used github-activity straight up. I'm feeling it is too much work to manually combine oauthenticator / kubespawner / jupyterhub / configurable-http-proxy contributions with github-activity or use the contributions.py script which have taken multiple 30 minute attempts in sequence with pauses for rate-limiting in between as well as a manual process of deciding on exactly what versions and dates etc to use for various repos.

I'd like to reduce the maintenance burden in general for JupyterHub org repos, so I'd suggest that a distribution like this highlights that this is an open source project built from other important pieces of open source software within the JupyterHub org, and link to those projects changelogs with their dedicated attribution etc. We could do that next to a version map where we can highlight how thie z2jh release bumped KubeSpawner from version X to version Y for example.

Hmmm...

@choldgraf
Copy link
Member

If this is a significant maintainer burden to run these scripts, I think that we should find alternatives. I like the approach that you mention @consideRatio - to ensure that we follow best-practices for thanking contributors in sub-projects, and then make sure we link to those projects from the more central ones like z2jh. Perhaps more infrequently (1 / 2 times a year?) we can write an aggregate "thank you" post that aggregates across all of the repositories in the jupyterhub org. WDYT?

@consideRatio
Copy link
Member Author

Perhaps more infrequently (1 / 2 times a year?) we can write an aggregate "thank you" post that aggregates across all of the repositories in the jupyterhub org. WDYT?

Ohhh perhaps we can have a appreciation day, like a birth day for JupyterHub org contributors, perhaps twice a year? :)

Running this script typically takes more than an hour, it takes quite a
while to make all the required requests, but it can also require waiting
for refreshed GitHub API quota.

I'd like delete it or make adjustments to how it is used currently, this
relates to:
- running it is a cumbersome step as part of the release process
- running it takes 30-120 minutes to execute
- it includes jupyterhub, kubespawner, oauthenticator as well
- it requires instructions to use and perserverence to use successfully
  - specific python libraries needs to be installed
  - a GitHub API key needs to be configured
  - dates since last use needs to be adjusted
- PR authors are already credited separately
@consideRatio
Copy link
Member Author

consideRatio commented Oct 28, 2020

@yuvipanda @choldgraf I have updated the RELEASE.md file as part of this PR, which now includes a bullet point about celebrating projects z2jh depends on to be fleshed out a bit soon as part of the final 0.10.0 release. In other words, I aim to follow this idea...

a distribution like this highlights that this is an open source project built from other important pieces of open source software within the JupyterHub org, and link to those projects changelogs with their dedicated attribution etc.

Merge?

I suggest that we merge this at this point and accept the changes in the release section as they are, I have validated that they are reasonable for me at least as part of #1880.

Build failure note

I cancelled the build as its only documentation related and travis has a massive backlock of jobs.

RELEASE.md Outdated Show resolved Hide resolved
Copy link
Member

@choldgraf choldgraf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general this looks great - I'm glad that the new instructions seem shorter and less-involved :-)

I had one quick comment in there but IMO it's good to go

Co-authored-by: Chris Holdgraf <choldgraf@gmail.com>
@consideRatio
Copy link
Member Author

This is the outcome of my work to improve the attribution to other projects so far in #1886.

image

image

@yuvipanda are you okay to sunset the contributions script?

@choldgraf
Copy link
Member

I love that table 👍

@yuvipanda
Copy link
Collaborator

This is awesome work, @consideRatio! <3 thank you :)

@yuvipanda yuvipanda merged commit a3ba518 into jupyterhub:master Nov 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants