Skip to content

Instantly share code, notes, and snippets.

@balupton
Last active June 20, 2021 09:54
Show Gist options
  • Save balupton/3e6aaf3b59baceb7113b1b226213e8cc to your computer and use it in GitHub Desktop.
Save balupton/3e6aaf3b59baceb7113b1b226213e8cc to your computer and use it in GitHub Desktop.
Instances of popular open-sourcers duplicating packages and blocking people

It seems some open-sourcers strategies may have been to gain fame from finding existing packages then duplicating them (with the exact same functionality, or a subset or superset) instead of sending PRs or using existing solutions. Package maintainers can want to do this to build up a portfolio of popular packages, to consolidate popularity and power to themselves, and thus gain funding. Willfull ignorance of alternatives at the time of publishing stems from the similar intention. Naivity however may be accidental, in which case consolidation of duplicates can be a desired outcome where possible, as it consolidates maintainership and features for a better user experience. There is valid reason for duplication however, where an original author was not receptive to pull requests.

This gist is to look into such instances. It is not to say whether or a case was accidental or not. Only that such duplication exists, in the hope that it can be noted and hopefully resolved.

Eventually one could do up a programmatic solution for this, to go through the thousands of packages required for a complete listing (including first commit, first changelog entry, first tag, and first npm version, and details of the original versions for direct comparison, as well as download counts). However, until that is done, please add comments of other instances.

Cases of blocking

sindresorhus blocking people

His reasoning for blocking people:

Don't read too much into being blocked. I use the block button generously both here and on Twitter. It just means I for some reason don't want to interact with that person. They might be annoying, sloppy, rude (to me or anyone else), etc. I have to deal with a massive amount of noise on GitHub and this is the biggest reason I've haven't burned out yet. sindresorhus/ama#163 / https://archive.is/Siy5q

Concerns regarding his liberal blocking practice:

  1. His reasons would be better facilitated by the mute button
  2. Blocking someone on GitHub disables someone from interacting with your packages. Considering the popularity of his packages & his blocking strategy, it seems a desire to harm the careers of those he dislikes https://twitter.com/balupton/status/1087292205516021762

People he has blocked:

Cases of duplicated functionality

duplicator their package their package date duplication type original package original package date seems
sindresorhus is-binary-path 2015 subset of istextorbinary 2013 (2012 when part of bal-util) willful
sindresorhus is-text-path 2015 subset of istextorbinary 2013 (2012 when part of bal-util) willful
sindresorhus text-extensions 2015 replica of textextensions 2013 (2012 when part of bal-util) willful
sindresorhus binary-extensions 2015 replica of binaryextensions 2013 (2012 when part of bal-util) willful
sindresorhus is 2017 superset of typechecker 2013 willful
sindresorhus is-fn 2015 subset of typechecker 2013 willful
sindresorhus is-plain-object 2015 subset of typechecker 2013 willful
sindresorhus npm-keyword 2015 subset of getpackages 2013 willful
sindresorhus make-dir 2017 superset of mkdirp 2011 willful yet justified, mkdirp was abandoned
sindresorhus import-fresh 2017 replica of requirefresh 2013 willful
sindresorhus spdx-license-list 2014 replica of spdx-licenses 8 months earlier willful
sindresorhus sort-keys 2014 replica of sortobject 2013 willful
jonschlinkert sort-object 2013 replica of sortobject 6 months earlier willful
jonschlinkert delete 2015 replica of del a week earlier initially incidental
jonschlinkert is-binary-buffer 2017 subset of istextorbinary 2013 (2012 when part of bal-util) willful
gjtorikian isbinaryfile 2012 subset of istextorbinary a month earlier as part of bal-util, 2013 as part of istextorbinary initially incidental

Copies of https://github.com/bevry/getrepos 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment