3 ms·
According to [1], the previously accepted syntax was never documented as being valid. That means that code affected by this change was relying on undocumented b
by Zr40 12y ago
According to [1], the previously accepted syntax was never documented as being valid. That means that code affected by this change was relying on undocumented behavior.
[1]: https://github.com/jashkenas/coffeescript/issues/3819 https://github.com/jashkenas/coffeescript/issues/3819
- xtrumanx 12y agoWell that adds a much needed bit of context to the conversation. Someone decided to use undocumented behaviour in a production application and got bit. Worded as such it doesn't make Coffeescript to sound so ridiculous.
- jrochkind1 12y ago"decided" implies they knew they were using undocumented behavior and chose to do it anyway. The use of the word 'undocumented' also implies that unless a behavior is explicitly mentioned in the documentation, it should be considered 'private' and 'subject to change' -- also not a safe assumption with many projects, whose documentation is far from completely covering all intended behavior.
- xtrumanx 12y agoSorry, I'm not a Coffeescript user so I'm familiar with its idioms. I looked up the Coffeescript website and it says: > As a shortcut for this.property, you can use @property. It also said that since March 2010 according to the Internet Archive's Wayback Machine. Why did this fellow decide to use `property` instead? I don't know but I wouldn't hold this specific situation against the Coffeescript team. But that's just like my opinion, man.
- davidbanham 12y agoCompletely agree that the particular bit of code shouldn't have been relying on that functionality. A totally reasonable response would be "Oh, sorry, I had no idea people were using that in that manner." Fine, fair enough. But! It was known that people were relying on that behaviour and it was mentioned in the changelog. That is a big point in favour of Jeremy as a package maintainer. Not only does he know how his code should be used, but he has an understanding of how people are using it in the wild. That's wonderful and praiseworthy. Where I get grumpy is that this was seen as a significant enough event to mention to the humans who happen to be reading the changelog. Yet, it wasn't deemed appropriate to tell all of the computers that are installing dependencies about it.
- lmm 12y agoDoes coffeescript have a formal spec? In languages with only one implementation it can be very hard to tell whether a feature is officially supported.
- dmethvin 12y agoThis is why semver is not a silver bullet. It only covers what the project maintainers think are breaking changes. Their unit tests don't consist of all programs that use their code. When you use undocumented behavior, is it correct to blame the project and take no blame for yourself? That seems to be what happened here.