Hey Micah,
npm allows you to set the version to anything you wish, but semantic
versioning[1] is the convention. A few large-ish packages don't follow
this (closure-compiler uses a timestamp as its version), but the tooling
strongly nudges package owners and consumers towards semver.
1.0.0 releases are a significant milestone to npm. Before 1.0.0, npm
enforces strict versioning -- users who depend on `^0.8.0` will receive
0.8.0, even if there's a `0.9.0` or `0.9.1` available. After 1.0.0,
users who depend on `^1.0.0` will receive any newer minor and patch
releases (but not major version bumps). In this sense, Arrow doing major
version bumps is fine, if a bit foreign to most node devs.
I worry more about releasing a 1.0.0 with type definitions that require
library consumers use a TypeScript compiler that's a year old (aka a
decade in JavaScript-years ;]). Bumping to 1.0.0 communicates a level of
maturity the JS project still needs to achieve IMO.
I'm personally ambivalent and will defer to the Arrow community on
versioning, but these are the general expectations of larger packages in
the node community as I understand them.
Best,
Paul
1. https://docs.npmjs.com/about-semantic-versioning
On 7/9/20 10:34 PM, Micah Kornfield wrote:
Hi Paul,
I'm not sure if this was ever resolved, but I think the plan going
forward is to start bumping major versions on each release. Would NPM
allow such changes in that case?
Cheers,
Micah
On Wed, Jul 1, 2020 at 9:23 AM Paul Taylor <ptaylor.apa...@gmail.com
<mailto:ptaylor.apa...@gmail.com>> wrote:
The TypeScript compiler has made breaking changes in recent releases,
meaning we can't easily upgrade past 3.5 and projects on 3.6+ can't
compile our types.
I'm working on upgrading our tsc dependency to 3.9. The fixes could
include a few backwards-incompatible API changes, and might not be
done
in time for the general Arrow 1.0 release.
JS shouldn't block the 1.0 release, so can we exclude JS from 1.0
if the
fixes aren't ready by then? npm's semantic versioning allows breaking
changes in any version before 1.0, but not between minor versions
after
1.0. I've heard directly from some of our JS users who'd prefer if we
made these changes before bumping to 1.0 on npm.
Thanks,
Paul