Skip to content
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 November 2016 #4946

Closed
coffeescriptbot opened this issue Feb 19, 2018 · 14 comments
Closed

CS2 Discussion: Project: Progress as of November 2016 #4946

coffeescriptbot opened this issue Feb 19, 2018 · 14 comments

Comments

@coffeescriptbot
Copy link
Collaborator

From @GeoffreyBooth on 2016-11-04 05:34

Just starting a thread to review where we are, and discuss next steps. So as of 2016-11-12 there has been progress on the jashkenas/coffeescript 2 branch:

I’ve updated our project tracker. I think there’s no question that the top priority on the current list is classes. A lot of progress was made in #4330, but that branch has a lot of broken tests (especially after the arrow-functions PR was merged in) and the last commit was a month ago. @connec, would you appreciate some help with this? Do you still think the approach you took in this PR is the most promising one? Would anyone else be up for helping implement classes?

Update: #4354 is a PR that will hopefully add ES class support.

I think classes are so important that we should release our first alpha of CoffeeScript 2 as soon as classes are supported. We could even approach class support iteratively, perhaps supporting the minimum at first and later on adding back in executable class bodies or whatever other Coffee-only features we’re struggling with.

I think the next-most-important feature, and the only other one that concerns interoperability, is tagged template literals. @greghuc, have you made any progress on this? If so, would you mind pushing a branch somewhere, even if it’s a work in progress? You’re welcome to use https://github.com/GeoffreyBooth/coffeescript if you want a central place for people to collaborate. Is anyone else eager to see tagged template literals supported, and has time to help with this? As part of implementing this, we would implement outputting interpolated strings using ES2015 syntax, and hopefully also fix the bug regarding backticks inside embedded JavaScript.

Other features:

We’ve made tremendous progress. Great thanks to all those who have contributed so far, and if you’ve been watching from the sidelines, now’s your chance to be a part of CoffeeScript 2 😄

@coffeescriptbot
Copy link
Collaborator Author

From @greghuc on 2016-11-04 08:10

@GeoffreyBooth, regarding tagged template literals, I haven't made a start on this as I've had no time for open-source work in the last month. However, I should be able to make a start next Monday, and will update accordingly after that. Help from others is also appreciated.

My main priority is getting a crash course on the Coffeescript compiler. Useful links I know about:

All, congrats on progress!

@coffeescriptbot
Copy link
Collaborator Author

From @connec on 2016-11-04 11:14

@GeoffreyBooth, I still think the approach outlined in #4330 (compile constructors to classes, leave everything else as-is) is the best approach for maximum backwards compatibility whilst still fixing extending ES2015 classes. This should make it a 'no-brainer' for v2, and we can make additional changes (e.g. super) down the line.

I plan to update the PR this weekend. Honestly I might just reset --hard 2 and work forward from there 😄

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-11-04 15:36

@greghuc, others: I would be happy to host a webchat this weekend where I walk through what I understand about the CoffeeScript codebase. I certainly don’t understand all of it, really only the parts I touched in the PRs I implemented, but I’m happy to explain those as best I can. Would that help?

Both @greghuc and @connec, how would you feel about working in branches where multiple people can contribute? We can host them on your repos or mine; the owner would just need to add the various other contributors. I would be happy to help with either of your efforts.

@coffeescriptbot
Copy link
Collaborator Author

From @greghuc on 2016-11-04 18:46

@GeoffreyBooth a webchat would be great. Sunday would be best, as that gives me tomorrow Saturday to get my head round things.

Do you want to suggest a time + webchat-host that works?
I'm in the UK on GMT timezone.

I've just emailed you my contact details (used the email address on your geoffreybooth.com website).

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-11-04 21:27

I can do Sunday, anyone else interested? I’m in California so it would probably be morning my time, evening UK time.

@coffeescriptbot
Copy link
Collaborator Author

From @mrmowgli on 2016-11-05 09:25

I got bogged down fairly early, and then got too busy to keep up. I have some more time coming up, and started going through the #4330 - are there any other threads I need to know about to help with the classes? I can also make sunday, depending on time. Also in California

@coffeescriptbot
Copy link
Collaborator Author

From @greghuc on 2016-11-05 22:13

@GeoffreyBooth I started work on tagged template literals, and opened a new WIP branch+pull request in your repo: #4352

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-11-05 23:52

@greghuc that’s fine, thanks for starting a branch.

I have a few suggestions to help make getting PRs accepted go smoothly:

  • If a branch isn’t ready for merging yet, but you want to open a PR for discussion, please put [WIP] at the start of the PR name. Not that we’re likely to merge it in accidentally anyway, but it can’t hurt.
  • Features intended for CoffeeScript 2 should be submitted against the 2 branch. Only improvements that aren’t breaking changes should be submitted against master. I’ll keep 2 up-to-date with anything merged into master.
  • Please don’t commit things you don’t intend to be merged. For example if you comment out a bunch of tests, please take care not to commit that change. Don’t commit console.logs, etc.
  • Please follow idiomatic CoffeeScript whenever possible. So is, not ==, and so on. This is the CoffeeScript codebase, we should be setting a good example 😄

@mrmowgli the most current threads related to classes are coffeescript6/discuss#22 and #4330. Other useful ones are #4233 and decaffeinate/decaffeinate#397. @connec if you do end up going git reset for classes, can you please maybe start a new branch or a new PR? You wrote a lot of great inline notes in #4330, and I wouldn’t want those to get lost or hidden if you push a new branch into that PR. You could maybe just open a new PR for the new branch, and that way the notes in 4330 would be preserved.

@mrmowgli and anyone else who wants to join the video chat tomorrow, please send an email to my name at gmail. Thanks!

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-11-07 00:21

BTW if anyone reading this is itching to get their first contribution into the CoffeeScript codebase, there’s a five-year-old PR that is sitting open just because it needs a little documentation: #1808

No coding required. Just write a good example.

@coffeescriptbot
Copy link
Collaborator Author

coffeescriptbot commented Feb 19, 2018

From @GeoffreyBooth on 2016-11-16 06:38

Update, 2016-11-16: Even since the beginning of the month, there’s been a lot of progress! The following PRs are almost ready to be merged; they just need a little more review before we feel confident that they’re up to snuff. Anyone have time to look them over and give notes?

These aren’t done yet, but they’re close; please help get them over the finish line!

@coffeescriptbot
Copy link
Collaborator Author

From @danielbayley on 2016-11-26 15:26

Say I want to stick to functional programming; favouring composition over inheritance, avoiding classes and @/this as much as possible… am I right in thinking that CS2 [branch] is usable in place of ES6 as it stands right now?

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-11-26 16:18

Say I want to stick to functional programming; favouring composition over inheritance, avoiding classes and @/this as much as possible… am I right in thinking that CS2 [branch] is usable in place of ES6 as it stands right now?

Either branch of CoffeeScript should be fine for this purpose, just don’t use class or =>. Most of the improvements in 2 have to do with outputting ES2015+ syntax; many of the new features built as part of the CS2 effort, like modules and tagged template literals, have been added to the 1.x branch too. See project board. One big feature that’s only in 2 that might pull you to 2 is support for async/await functions.

Keep in mind though that 2 hasn’t been released yet even into alpha, so it comes with absolutely no warranties as to its stability.

@coffeescriptbot
Copy link
Collaborator Author

From @GeoffreyBooth on 2016-12-02 05:25

It’s a new month, so I’m closing this in favor of coffeescript6/discuss#56

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant