Skip to content

Instantly share code, notes, and snippets.

View infinnie's full-sized avatar
🙃
Actively ignorant.

joan xie infinnie

🙃
Actively ignorant.
View GitHub Profile
@xiaoxiangmoe
xiaoxiangmoe / react-16-6.d.ts
Last active March 14, 2022 01:58
DefinitelyTyped @types/react
import * as React from "react";
declare module "react" {
function memo<P>(
Component:React.SFC<P>,
propsAreEqual?:((
prevProps: Readonly<P & { children?: ReactNode }>,
nextProps: Readonly<P & { children?: ReactNode }>
)=>boolean
@jashkenas
jashkenas / semantic-pedantic.md
Last active July 13, 2024 04:25
Why Semantic Versioning Isn't

Spurred by recent events (https://news.ycombinator.com/item?id=8244700), this is a quick set of jotted-down thoughts about the state of "Semantic" Versioning, and why we should be fighting the good fight against it.

For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release (x.1.x) was minor, and a patch release was just a small patch. You could evaluate a given piece of software by name + version, and get a feeling for how far away version 2.0.1 was from version 2.8.0.

But Semantic Versioning (henceforth, SemVer), as specified at http://semver.org/, changes this to prioritize a mechanistic understanding of a codebase over a human one. Any "breaking" change to the software must be accompanied with a new major version number. It's alright for robots, but bad for us.

SemVer tries to compress a huge amount of information — the nature of the change, the percentage of users that wil