jwagner / simplex-noise.js

A fast simplex noise implementation in Javascript / Typescript.
MIT License
1.64k stars 131 forks source link

2.3.0 is braking change and should be bumped to 3.0.0 #12

Closed vorg closed 7 years ago

vorg commented 7 years ago

I'm making a game where I was using use 2.2.0 to generate a terrain. After new npm install I've got recently published 2.3.0 and the resulting noise has changed breaking my landscape completely. To follow the semantic versioning I would suggest reverting the changes and publishing 2.4 that's backwards compatible and publishing permutation table as 3.0.0

Before

screen shot 2017-01-12 at 21 00 06

After

screen shot 2017-01-12 at 21 00 49
jwagner commented 7 years ago

First of all: Sorry for braking your game.

Regarding the versioning: As far as I know, the version is referring to the API of the library. Not it's exact inner workings. That was my reasoning for not releasing a new major version. The API is compatible. All it did is expose an additional private method. So I guess strictly speaking this change should have been just a revision.

In practice that's not very clever given that many applications rely on the same seed yielding the same output. I totally agree with that. This was a mistake.

But following that reasoning it would be wrong to release a 2.4 that changes the output again.

So I think the best and most correct thing I can do at this point is to add a note to the README.

vorg commented 7 years ago

Ok, I always understood semantic versioning is about functionality not api but it looks like there is no easy solution and it's too late to unpublish. I hardcoded 2.2 in my app then. Thanks.