-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CS2 Discussion: Project: Progress as of February 2017: 2.0.0-alpha1! #4964
Comments
From @jiyinyiyong on 2017-02-22 08:14 Any clarification for
|
From @GeoffreyBooth on 2017-02-22 16:33 The 99 versions are leftovers from the previous package, which was just a warning that you had misspelled CoffeeScript. |
From @jiyinyiyong on 2017-02-22 16:45 Will it affect |
From @lydell on 2017-02-22 16:55
|
From @nickdima on 2017-02-22 23:22 Great job everybody! I'm curious what new oportunities will CS2 bring around tooling (stuff like linting, auto-formatting, etc.) and how it could benefit from the babel & co. ecosystem. |
From @scottwarren on 2017-02-23 05:42 What are your guys thoughts on outputting something when people install |
From @GeoffreyBooth on 2017-02-23 05:59 @scottwarren Maybe after 2.0.0 final is released, that's a thought. |
From @lydell on 2017-02-23 06:44 @nickdima Basically none. CS2 uses the same architecture as CS1. |
From @DomVinyard on 2017-02-24 10:34 awesome! well done guys, we're lucky to have you. Now, I guess I need to start a new project to test all this stuff out on! Hmmm... choices, choices... x |
From @YamiOdymel on 2017-02-24 13:44 I'm using CoffeeScript 2 with WebPack and Vue.js and it works great! (except for the spread operator) |
From @laurentpayot on 2017-02-24 17:52 To use CS2 with webpack I simply had to create a symbolic link from |
From @GeoffreyBooth on 2017-02-24 18:03 @YamiOdymel Thanks! As for the spread operator, that seems like something that should be implemented as part of destructuring (coffeescript6/discuss#69) which I’ve started a branch for if you’d like to take a crack at it . . . 😉 |
From @GeoffreyBooth on 2017-02-26 16:00 Has anyone tried CS2 on an existing project? What changes, if any, did you need to make to your code? |
From @joeldrapper on 2017-02-26 19:51 @GeoffreyBooth I was going to integrate it into an existing Rails app, but the coffee-script-source gem doesn’t have the alpha yet. I’d submit a PR, but it appears to be closed source? |
From @GeoffreyBooth on 2017-02-26 20:19 @joeldrapper I don’t know anything about that gem. We probably won’t be submitting CoffeeScript to upstream packages like that one until 2.0.0 final is released. Could you perhaps install the gem and then manually replace the CoffeeScript |
From @JavascriptIsMagic on 2017-02-26 21:10 Yes! 2.0.0 is approaching! Thank you guys so much for giving coffeescript some much needed attention! I switched to CS2 on a few I do have to point out that it's extremely unfortunate that CS2 is going to be published to a different package name instead of using version semantics. That just means that there are 5,178 packages that may have been compatible with CS2, including IDE things like linters and such, but if you want to use them in your own CS2 you need to use a workaround like symlinking to This seems like a huge barrier to entry. Anyways, again, thank you guys so much! I love seeing coffeescript developing again! |
From @bd82 on 2017-02-26 21:20
This also means that dependency management services like:
Will not be able to recognize that there is a new version of CoffeeScript out. |
From @GeoffreyBooth on 2017-02-27 00:43 The The thought behind not releasing 2 on the |
From @bd82 on 2017-02-27 09:00 Thanks for the explanation @GeoffreyBooth. I understand the desire to reduce unexpected breaking changes Or is the intent here to avoid breaking changes even for those npm users which did not specify a version number in their dependencies? "devDependencies": {
"coffee-script": "*"
} |
From @jashkenas on 2017-02-27 15:28 @GeoffreyBooth — You can make the decision about how you'd like to handle it ... but I'd personally be fine with both |
From @edemaine on 2017-02-27 15:39 FWIW, I do feel like it's somewhat expected that arbitrary upgrading of NPM packages will lead to breakage, especially to a new major version number -- that's why we have version-number-specific dependencies. And it seems there are some benefits to putting 2 on I should probably turn this into a separate issue, but can we have a tool (not sure if it belongs in |
From @jashkenas on 2017-02-27 16:23
I think that's called "CoffeeScript 1". |
From @GeoffreyBooth on 2017-02-27 18:43
Not quite. CS1 doesn’t support async/await and a few other features added in CS2. There is a place for a build chain that involves the CS2 compiler → Babel → ES3. There are so many ways to implement this, though, and I feel like most people would want to do it within the context of a full-featured tool like Gulp or Webpack. I think we should document at least the simplest way, if there’s some way of doing this as a command-line one-liner (i.e.
And that’s probably what we should do. I’m not opposed—but I’m a lot more worried about breaking people’s builds, until we can be confident that releasing 2.0.0 on |
From @mrmowgli on 2017-02-27 18:47 What if we throw some deprecation warnings on the 1.x branches? That would On Feb 27, 2017 10:43 AM, "Geoffrey Booth" [email protected] wrote:
|
From @billymoon on 2017-02-27 18:51 Perhaps use coffeescript for CS2 right now, and defer the decision of what to do with coffee-script until bugs/tweaks/general response/learnings from CS2 have settled. That way it doesn't break the internet right now, and the decision can be made with more info at hand, also - as @mrmowgli suggests, it gives time for deprecation notice to be acted upon. |
From @balupton on 2017-02-28 08:10 Sweet. Can't wait to update the 60+ official DocPad repos over to it. /cc @sdomagala |
From @MaxPleaner on 2017-03-06 23:07 Can someone please put a little more detailed instructions on how to get this working with |
From @ryansolid on 2017-03-07 05:30 I've migrated a few personal projects to start to test it out (server and client). Once I got past the webpack build not much in the way of changes. Mostly just having to doing find and replaces on argument-less constructor super calls. That has been the most common "breaking" change I've hit so far, but it's fairly trivial to fix even if it is very widespread in my projects. Anyway thank you guys for the great work. It's extremely exciting to see a path where we can continue to use coffeescript in a post ES6 world. |
From @laurentpayot on 2017-03-07 08:08 @MaxPleaner here are my webpack rules related to CoffeeScript. I'm using Vue. {
test: /\.vue$/,
loader: 'vue-loader',
options: {
postcss: cssUtils.postcss,
loaders: merge({js: 'babel-loader', coffee: ['babel-loader', 'coffee-loader']}, cssUtils.styleLoaders({
sourceMap: useCssSourceMap,
extract: env.prod
}))
}
},
{
test: /\.coffee$/,
loaders: ['babel-loader', 'coffee-loader'],
include: projectRoot,
exclude: /node_modules/
} Remember not to use eslint with CoffeeScript. And create a symbolic link to |
From @YamiOdymel on 2017-03-07 08:26 @MaxPleaner I'm actually downloaded the - var coffee = require("coffee-script");
+ var coffee = require("coffeescript"); and save it as resolveLoader: {
alias: {
'coffee-loader': path.join(__dirname, 'coffee2-loader'),
}
}, so I can use it as normal coffee loader in Vue.js: <script lang="coffee">
.... |
From @light24bulbs on 2017-03-10 00:49 AWESOME you guys! What about decorators? Some libs are starting to depend on them somewhat. I realize it's basically a total syntax collision as a decorator Looks exactly like a this.function to coffeescript. Maybe there could be some special syntax to denote that it is a decorator, instead of the @ symbol, since we have already used that for class variables. |
From @GeoffreyBooth on 2017-03-10 03:41 Let’s discuss decorators in coffeescript6/discuss#9 |
From @mrmowgli on 2017-03-12 06:00 Hrmmm. Is there a way to tag @next on the npm coffee-script repo? I'm trying to dig into coffeelint, but I realize there are some deep dependencies that I want to try and break. Didn't Geoffrey mention we can have tagged versions that wont get pulled up with npm upgrade? |
From @GeoffreyBooth on 2017-03-13 16:20 @mrmowgli yes, |
From @GeoffreyBooth on 2017-03-13 18:36 Happy to see some issues appearing in https://github.com/jashkenas/coffeescript! I mean, not that happy to see bugs, but at least it’s gratifying to see people using the new code 😄 I would consider only two features to-do before we can shift from alpha to beta:
Once these are in, the intended features of 2.0.0 will all be in, and we should be able to shift into beta because there shouldn’t be any further breaking changes (unless changes are forced on us in order to fix bugs). Then the beta period will be all about bugfixing and trying to get to 2.0.0. I’m hoping not to have too long of an alpha/beta period, to try to spur adoption of CS2. |
From @YamiOdymel on 2017-03-13 18:41 @GeoffreyBooth I'm sorry, I've spent two days on trying to find out how does the parser, lexer work (for example: [CS2] Compile all super calls to ES2015 super), but I still have no idea.. |
From @jashkenas on 2017-03-13 19:22
Before we add getters and setters it would be nice to see examples of how they're necessary & desirable in modern JS. They were always an intentional omission, despite popular support, from CoffeeScript. In my opinion, they're a "bad part" of JS. Previously, in JavaScript, the reader could tell when they were calling a function and when they were reading a property. It's one thing in languages like Ruby, where direct property accesses don't exist, and everything is a function call — but JavaScript isn't Ruby. Getters and setters just add a level mystery and surprise to potentially every bit of code, and don't allow you to do anything you couldn't already. |
From @GeoffreyBooth on 2017-03-13 19:58 @jashkenas Can we take that discussion to coffeescript6/discuss#17? I wrote about it here. |
From @connec on 2017-03-13 20:10
I don't think that would be easy at all, unfortunately. We could do some shenanigans in @YamiOdymel my advice would be to not get too distracted by the parser and lexer, and focus on |
From @GeoffreyBooth on 2017-03-13 20:20 @YamiOdymel All of the destructuring action happens in |
From @GeoffreyBooth on 2017-03-29 05:13 I’ve started work on destructuring: #4478 Help wanted! Please let me know if you’re interested and I’ll add you to the repo. The only other issue to address before we go to 2.0.0-beta is the decision made in coffeescript6/discuss#17 (comment), where what looks like the We’re very close to the finish line, but the core contributors to the CS2 effort don’t have as much free time as we used to. We could really use additional help to get 2.0.0 out the door. Don’t just lurk in this repo, read this and get hacking! 😄 Ask not what CoffeeScript can do for you . . . 🙋 |
From @GeoffreyBooth on 2017-04-04 05:58 Mini-update: The last two tasks for 2.0.0 are submitted as PRs for review and testing: If you have time please take a look, and/or try them out in your codebases. Once these land, we will be at 2.0.0-beta1. |
From @GeoffreyBooth on 2017-04-14 04:05 |
From @GeoffreyBooth on 2017-02-22 06:03
Hey everyone,
CoffeeScript 2.0.0-alpha1 is released! Install it via:
npm install coffeescript@next
You may notice that it’s not at
coffee-script
. The powers that be at NPM were kind enough to release thecoffeescript
package name to us. Since no one really spells CoffeeScript with a hyphen anymore, it seemed a better choice. It has both the old versions and 2.0.0-alpha1, and will be the home for future versions.coffee-script
will stay 1.x-only, in case anyone installscoffee-script
and expects a compiler that outputs ES3.Since the last update, as of 2017-02-21 the following has been merged into the jashkenas/coffeescript
2
branch: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.There are still a handful of features yet to implement, including destructuring and getters/setters. Help with those is most welcome, but if you don’t have time for that, you could also help out by trying 2.0.0-alpha1 in your projects. Please review the breaking changes first, and 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: