vitaly-t / decomment

:hammer: Removes comments from JSON, JavaScript, CSS, HTML, etc.
75 stars 21 forks source link

breaking changes #7

Closed RnbWd closed 8 years ago

RnbWd commented 8 years ago

removing platform is a breaking change which corresponds to x.0.0 - it was never documented in the strip-comments plugins so I only modified it minor 0.x.0 assuming nobody noticed but regardless of that library which is technically 3rd party and not part of the 'decomment' ecosystem - maintaining the semver protocol is important for the npm ecosystem in general - because inconsistencies (which are very common) prevent libraries from being able to interact seamlessly with the greater ecosystem. It's the reason node.js jumped from 0.12 to 4.2 - there was a huge discussion behind the scenes regarding the adherence to semver - and it's completely dependent on library authors to actually use it - (like the honor system). Ultimately you can version your library any way you want - but as the user base grows - semver becomes more important - and there's thousands of people downloading a plugin that would break because it's based on this library. It's a trivial thing - but it messes with how npm resolves dependencies.

RnbWd commented 8 years ago

actually i programmed the update wrong - mixed up options with methods - nm

vitaly-t commented 8 years ago

The option I removed - i'm sure either nobody used or used it with value auto, which is what it became now. One of the reasons I removed it - it is very often people encode a file on one platform, and then try to decomment it on another platform, which results in issues, unless the auto mode was used.

Practice showed it was a bad idea, not to have auto as the default, which is now corrected.

So, it is not really a breaking change, as it can only fix your code, it cannot break it.

RnbWd commented 8 years ago

yeah i mixed up the methods with options so you're correct it wasn't really a breaking change - I accidentally wrote each option as a method when I updated it a few days ago - it shouldn't have had an impact on anybody using the library normally and it wasn't documented (my option methods would have just returned an error and not had an the real API) - and so I thought a method like html was being removed :P - the only changes that plugins need to keep up with are the methods - changing options shouldn't effect anything for the third party libraries that just pass the object to decomment

edit: unless an option for drastically changes the output of the code so that it's no longer a string, which I suppose some libraries do