karma-runner / karma-runner/karma

Centralize the `update-contributors` utility

Open
#3,776 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
12k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

Updating the contributors in the corresponding field of the `package.json` file is one of the tasks that CD undertakes in every release of at least the [Karma core][karma-core-uc] and the [Karma Chrome Launcher plugin][karma-chrome-launcher-uc]. However, the implementation for that tool is duplicated in at least each of the aforementioned repositories; code duplication is a bad practice and the proposal would be to centralize the implementation of the tool under the Karma Runner org and release it as an npm module under the @karma [scope][npm-scope] (e.g. @karma/update-contributors). An alternative is to use an existing npm module that does this; a list of potential options follows, but they have been stale for a while.

Some existing tools for this task already exist:
* https://github.com/flo-sch/semantic-release-contributors
* https://github.com/doowb/update-contributors

[karma-core-uc]: https://github.com/karma-runner/karma/blob/master/release.config.js#L11
[karma-chrome-launcher-uc]: https://github.com/karma-runner/karma-chrome-launcher/blob/master/release.config.js#L9
[npm-scope]: https://docs.npmjs.com/cli/v8/using-npm/scope

Contributor guide

Open the contributing guide

Research direction

Start with the update-contributors entries in release.config.js for Karma core and Karma Chrome Launcher, then compare the existing implementations and the listed npm modules. Define whether to centralize a new @karma/update-contributors package or adopt an existing module; done means the duplicated release logic is replaced consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
release, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.