Skip to content

feat(meta): require collaborators to be active - #7775

Merged
avivkeller merged 9 commits into
mainfrom
require-contributions
May 29, 2025
Merged

feat(meta): require collaborators to be active#7775
avivkeller merged 9 commits into
mainfrom
require-contributions

Conversation

@avivkeller

@avivkelleravivkeller commented May 23, 2025

Copy link
Copy Markdown
Member

Fixes#7767

The wording can be changed as needed.

@vercel

vercelBot commented May 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewUpdated (UTC)
nodejs-org✅ Ready (Inspect)Visit PreviewMay 28, 2025 4:57pm

@codecov-commenter

codecov-commenter commented May 23, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.36%. Comparing base (39e3ae1) to head (bf73db8).
Report is 8 commits behind head on main.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@ Coverage Diff @@## main #7775 +/- ##
==========================================
+ Coverage 75.31% 75.36% +0.04% 
==========================================
Files 96 96 Lines 7856 7862 +6 Branches 192 192 ==========================================
+ Hits 5917 5925 +8 + Misses 1938 1936 -2 
Partials 1 1 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@avivkelleravivkeller changed the title feat(meta): require collaborators to me activefeat(meta): require collaborators to be activeMay 23, 2025
@avivkeller
avivkeller marked this pull request as ready for review May 23, 2025 19:37
CopilotAI review requested due to automatic review settings May 23, 2025 19:37
@avivkeller
avivkeller requested review from a team as code ownersMay 23, 2025 19:37
Comment threadapps/site/scripts/find-inactive-collaborators/__tests__/index.test.mjs Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds automation to identify and report inactive collaborators, updates documentation to clarify collaborator maintenance, and schedules a periodic workflow.

  • Introduces a script that searches for collaborator activity over a configurable timeframe and files or updates an issue listing inactive members
  • Provides comprehensive tests for all new utilities and workflows
  • Extends CONTRIBUTING.md with a “Maintaining Collaborator Status” section and adds a GitHub Actions workflow to run the script weekly

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
apps/site/scripts/find-inactive-collaborators/index.mjsNew script to detect inactive collaborators and create/update an issue
apps/site/scripts/find-inactive-collaborators/tests/index.test.mjsTests covering date utilities, activity checks, issue creation/update, and full workflow
CONTRIBUTING.mdAdded “Maintaining Collaborator Status” section and fixed link case
.github/workflows/find-inactive-collaborators.ymlScheduled GitHub Actions workflow to invoke the script weekly
Comments suppressed due to low confidence (1)

CONTRIBUTING.md:6

  • There’s an extra hyphen and inconsistent indentation before the 'Becoming a collaborator' entry, which breaks the list structure; remove the redundant '-' to fix formatting.
- - [Becoming a collaborator]

Comment threadapps/site/scripts/find-inactive-collaborators/index.mjs Outdated
Comment threadapps/site/scripts/find-inactive-collaborators/index.mjs Outdated
Comment thread.github/workflows/find-inactive-collaborators.yml Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Aviv Keller <me@aviv.sh>
@MattIPv4

Copy link
Copy Markdown
Member

This feels very odd to put inside the site app when it is an entirely meta thing to the repo/organisation, nothing to do with the production site?

@avivkeller

Copy link
Copy Markdown
MemberAuthor

I just figured I'd put it in the same directory as lighthouse, but I can move it.

Comment thread.github/scripts/find-inactive-collaborators.mjs Outdated
Comment thread.github/scripts/find-inactive-collaborators.mjs Outdated
Comment thread.github/scripts/__tests__/find-inactive-collaborators.test.mjs Outdated
@ovflowd

Copy link
Copy Markdown
Member

This feels very odd to put inside the site app when it is an entirely meta thing to the repo/organisation, nothing to do with the production site?

I agree. But at the same time, there's no such... hmm.. meta repo for the website team or web-infra team, so no idea where this should live. @bmuenzenmeyer we could create a repo on nodejs/web-team as a meta space for the website and web-infra teams.

@avivkeller

avivkeller commented May 25, 2025

Copy link
Copy Markdown
MemberAuthor

WDYT about storing a list of the current members in the GOVERNANCE file?

That would eliminate the need to use a custom token, and we could just use the default actions token?

(This is what is done in core)

@MattIPv4

Copy link
Copy Markdown
Member

Fwiw, I'm fine with this living in .github/scripts -- I think this repo is still canonically the right place, and that directory seems like a logical location to me 👍

@MattIPv4

Copy link
Copy Markdown
Member

WDYT about storing a list of the current members in the GOVERNANCE file?

This does seem easier than needing a custom token. I do wonder if something should be done more centrally to have all the (public) teams in code somewhere.

@bmuenzenmeyer

bmuenzenmeyer commented May 25, 2025

Copy link
Copy Markdown
Contributor

We have a monorepo now. It would be easy to make a module here that only serves as a tooling/scripts location.

Heck, api-docs-tooling could even migrate.
The more we add to the monorepo the more value it (theoretically) provides

@ovflowd

Copy link
Copy Markdown
Member

We have a monorepo now. It would be easy to make a module here that only serves as a tooling/scripts location.

Heck, api-docs-tooling could even migrate. The more we add to the monorepo the more value it (theoretically) provides

I don't think the website repo should be a "fit everything" in one repository. There should be separation of concerns IMO. And I do prefer having a meta-repo for the administrative side of things of the web teams.

@ovflowd

Copy link
Copy Markdown
Member

I'd like to formally block this PR (the PR itself is fine) -- I just want to have the @nodejs/nodejs-website and @nodejs/web-infra team to give a 👍 or 👎 if this should live here or within a meta repository.

  • 👍 if you want this script on the WEBSITE repository
  • 👎 if you want this script on a meta management repository for the WEBSITE TEAM

Signed-off-by: Aviv Keller <me@aviv.sh>
@avivkeller

avivkeller commented May 26, 2025

Copy link
Copy Markdown
MemberAuthor

Also, currently, this only checks commits, since there isn't a decent way to check the timestamp of a PR contribution.

We can check if they've commented on a PR/issue that's been updated in the past twelve months, or we can leave it as it (leaving it as is matches node core).

As is matching: 8 inactive
w/ additional check: 1 inactive

@avivkeller

avivkeller commented May 27, 2025

Copy link
Copy Markdown
MemberAuthor

@ovflowd Are you satisfied with the outcome of the vote?

Personally, I think we should land this here, setup a common repository to store all of our re-used actions (i.e. dependency-review and scorecard, etc). Once that's all setup, we can migrate this there (although, since it's not really re-used, it might not belong there).

@github-actions

github-actionsBot commented May 27, 2025

Copy link
Copy Markdown
Contributor

Lighthouse Results

URLPerformanceAccessibilityBest PracticesSEOReport
/en🟢 100🟢 100🟢 100🟢 91🔗
/en/about🟢 100🟢 100🟢 100🟠 82🔗
/en/about/previous-releases🟢 100🟢 100🟢 100🟠 83🔗
/en/download🟢 96🟢 100🟢 100🟢 91🔗
/en/blog🟢 100🟢 100🟢 96🟢 92🔗

@ovflowd

Copy link
Copy Markdown
Member

@ovflowd Are you satisfied with the outcome of the vote?

Personally, I think we should land this here, setup a common repository to store all of our re-used actions (i.e. dependency-review and scorecard, etc). Once that's all setup, we can migrate this there.

There wasn't even enough time yet. Not everyone has voted. Let's wait 48 more hours.

Comment threadGOVERNANCE.md

@bmuenzenmeyerbmuenzenmeyer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

non blocking comments but perhaps worth adding

Comment threadGOVERNANCE.md Outdated
Comment thread.github/scripts/report-inactive-collaborators.mjs Outdated
Comment thread.github/workflows/find-inactive-collaborators.yml Outdated
@ovflowd

Copy link
Copy Markdown
Member

Alrighty, vote passed. @avivkeller feel free to merge :)

@avivkelleravivkeller added the github_actions:pull-request Trigger Pull Request Checks label May 29, 2025
@avivkeller
avivkeller enabled auto-merge May 29, 2025 10:46
@github-actionsgithub-actionsBot removed the github_actions:pull-request Trigger Pull Request Checks label May 29, 2025
@avivkeller
avivkeller added this pull request to the merge queueMay 29, 2025
Merged via the queue into main with commit 1f9c6e4May 29, 2025
@avivkeller
avivkeller deleted the require-contributions branch May 29, 2025 10:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

@nodejs/nodejs-website contribution requirements

8 participants

@avivkeller@codecov-commenter@MattIPv4@ovflowd@bmuenzenmeyer@AugustinMauroy@bjohansebas