-
Notifications
You must be signed in to change notification settings - Fork 4
CS2 Discussion: Project: Progress as of April 2017: 2.0.0-beta1! #80
Comments
Congratulations to everyone involved on this! How is linting and other ecosysten projects coming along on fhe CoffeeScript 2 front? |
CoffeeLint has a PR in progress to support CS2, but it could use some help. |
Nice work @GeoffreyBooth et al! I'm already using the new beta in Rails with Webpacker, and it's just wonderful. |
@mikeyhew Thanks for the feedback! Anyone else using this on real projects? I’m feeling beta1 is probably stable enough to release as 2.0.0? Can anyone think of any additional breaking changes we want to slip in before leaving beta? |
I have an idea about reserving the word You would declare a mixin with
which would compile to
|
Another really cool thing would be using Just thought I'd mention it. |
@mikeyhew I think the place for proposals is as new issues in this repo. Want to post these ideas there? For whole-cloth new features, presumably we would create a syntax for them that isn’t a breaking change, like you were mentioning with Are there any other potential features on the horizon that pose a breaking-change threat? I’m thinking specifically of new or upcoming ES features that we might want to adopt, that would imply a certain syntax if we want to mirror the ES syntax. |
I'm loathe to bring it up... but we might want to have a plan for dealing with ES' class public fields Stage 2 proposal. The syntax that's currently under discussion conflicts with executable class bodies: class A {
own_property = 1
own_method = function () {}
own_bound_method = () => {}
} Compare this with the below, currently valid CoffeeScript code: class A
own_property = 1
own_method = ->
own_bound_method = => If we want to avoid breaking changes in the future it would make sense to have a plan for how to deal with these without breaking ECBs, or else let go of ECBs and patch them out of |
Another one to possibly have a plan for is decorators (even if the plan is to ignore them). These are also Stage 2. |
@connec We could have a section in the docs specifically about executable class bodies, warning people that their output will likely change in the future. It looks like the CoffeeScript syntax won’t be changing, but we’ll eventually be outputting ES output for these things as ES catches up to us. That shouldn’t break things, assuming the features’ implementations are equivalent to what we’re doing now, and if that’s the case then it’s not actually a breaking change (just a, you know, change). But we could warn people that there might be slight differences, which would be breaking changes. |
@GeoffreyBooth understood. I opened #81 to talk about mixins. I still think that reserving |
Do we need a new keyword? The ES proposal doesn’t use one. Say we released 2.0.0-beta1 as 2.0.0 now, and wanted to add mixins later. Couldn’t we add them, and it wouldn’t be a breaking change? |
@GeoffreyBooth I'm not aware of an ES proposal for mixins. Can you post a link in #81? |
Migrated to jashkenas/coffeescript#4973 |
Hey everyone,
CoffeeScript 2.0.0-beta1 is released! Install it via:
npm install coffeescript@next
Yes,
coffeescript
, notcoffee-script
. I hope to release the 2.x versions oncoffee-script
once we determine that it’s safe to do so. More on that here.Since the last update and the 2.0.0-alpha1 release, as of 2017-04-14 the following has been merged into the jashkenas/coffeescript
2
branch:get
andset
keywords now throw an error, preserving the option of supporting them as keywords in the future; thanks to @GeoffreyBooth.let
/const
andget
/set
, as well as address why CoffeeScript in an ES2015+ world, thanks to @mrmowgli and @GeoffreyBooth.As of February, we had accomplished:
class
andsuper
keywords, thanks to @connec.As of December, we had accomplished:
And as of November, we had accomplished:
for…of
is implemented, thanks to @atg.This wraps up all the features we had planned to be in scope for CoffeeScript 2! Hence this is the first beta release. The plan from here to 2.0.0 is to fix any bugs that people find, and release 2.0.0 out of beta as soon as we feel confident that it is stable.
That doesn’t mean development needs to stop! There’s still time for new features, both before and after 2.0.0 is released; though if your new feature is a breaking change, it should come before. Foremost among the upcoming features in progress is destructuring object spreads.
Please try 2.0.0-beta1 in your projects! And let us know if you encounter any issues, after first reviewing the breaking changes. If you think there’s a bug, please open an issue with “[CS2]“ in the title. Please don’t comment bug reports on this thread. Thanks!
The text was updated successfully, but these errors were encountered: