nodejs / code-and-learn

A series of workshop sprints for Node.js.
164 stars 79 forks source link

Bangalore, November 17th #88

Closed gireeshpunathil closed 6 years ago

gireeshpunathil commented 6 years ago

We (@thefourtheye, @ryzokuken and me) are planning to run a code & learn in Bangalore on November 17th (I guess this is the second one in India, after #76).

The exercise will be run as part of the next instance of Polyglot-Languages-Runtimes meetup. IBM office space will be used for the event. Count of expected participants is unknown at the moment.

Request your support in hand-holds and reviews, thanks in advance. Some of the changes we have ear-marked are:

Suggestions on any other useful and interesting refactoring suggestions are appreciated.

[EDIT]: As of 11/05, 39 people going for the meetup As of 11/09 : 65 As of 11/11: 102 As of 11/13: 135 As of 11/15: 184

Trott commented 6 years ago

replace instances of typeof 'x' === 'y' constructs in tests with util.isY(x) constructs [ ~600 instances spread across ~200 test files ]

All the relevant util.is*() funcitons are deprecated. I don't think we should be using them in test code. I prefer typeof checks myself. Is there something I'm missing?

Trott commented 6 years ago

I have some leftover tasks from the Vancouver Code & Learn. It's also possible that there will be some leftover after the NodeConf EU Code & Learn. Do you have an idea how many attendees you expect?

Trott commented 6 years ago

If you want to help out ChakraCore, there are tests where they float patches to make them pass with ChakraCore because the error message text is different than provided by V8. In my opinion, we should not rely on error message text that originates from the JS engine as it can change any time we update the engine to a new version. So, a good task might be removing the message text checks and replacing with a simple check that something is a RangeError or TypeError or whatever, or else changing them to regular expression or String.prototype.includes() checks that are unlikely to break.

You'll have to either get the list of tests where this is relevant from @nodejs/node-chakracore or else maybe look at their repo to figure out which tests are modified.

gireeshpunathil commented 6 years ago

@Trott - thanks, I did not check that util.is* are deprecated, realized now. So will skip that.

leftover tasks from the Vancouver Code & Learn

are those the correcting the order or assert parameters? or something else? please let me know, so I will dig those out and see how many are there.

leftover after the NodeConf EU Code & Learn

sure, I will check with @BridgeAR to see if there are TODO items from those, after that event.

Chakaracore - thanks for the suggestion, I will review that and see if we can include that as well.

count of attendees - at this point I have no idea, will get a clear picture in a week's time.

thanks once again!

Trott commented 6 years ago

are those the correcting the order or assert parameters?

@gireeshpunathil That's probably a lot of them, maybe even most of them. And I suspect @BridgeAR will be using those at NodeConf EU, so maybe wait until after NodeConf EU to try to see how many are left?

ZYSzys commented 6 years ago

Suggestions on any other useful and interesting refactoring suggestions are appreciated.

@gireeshpunathil Maybe you can promote v8 name spaces with using v8:: in src directory. Things like those https://github.com/nodejs/node/pull/23934, https://github.com/nodejs/node/pull/22641

gireeshpunathil commented 6 years ago

thanks @ZYSzys ! makes sense, will do! thanks.

gireeshpunathil commented 6 years ago

given the RSVP count has reached 65, I am thinking of

test: convert anonymous closure functions into arrow functions

to be used as fillers, in case of scarcity.

/cc @Trott to see if this is indeed a good candidate and has no side effects. (IIRC we used it in the past, but don't remember when)

BridgeAR commented 6 years ago

@gireeshpunathil I'll send you a list of tasks later on that are still open from the ones that I created for NodeConf EU but there are only very few left.

In #86 you find a short FAQ for things that are commonly asked. Please feel free to expand that list in case you come among anything new.

I also created #89 as an example how to actually solve the tasks.

As a recommendation: go through the coverage mid next week and create new tasks that people could solve. These have been quite popular and it is nice to have more of these instead of only the super simple ones.

gireeshpunathil commented 6 years ago

thanks @BridgeAR - that will be really helpful! #89 looks really impressive, agree that it is a real win-win in terms of satisfaction and quality.

antsmartian commented 6 years ago

@gireeshpunathil @BridgeAR Thanks for this. By the way, I thought we can also tackle this issue: https://github.com/nodejs/node/issues/22492, in the meet up. It already have list of code blocks, which might need test cases. This in fact, gives the folks an idea to navigate around the codebase and see if a test case is present or not. If not add them (certain things might not be easy). Thoughts? 🤔

I guess this a win-win situation too.

gireeshpunathil commented 6 years ago

@antsmartian - thanks for this insight! definitely looks promising. I will go through it in detail to figure out how to extract PRs from that.

Trott commented 6 years ago

If you need issues, especially slightly more challenging ones than the usual initial issues, there are a few PRs that seem really close, but have been abandoned. A couple examples are https://github.com/nodejs/node/pull/21372 and https://github.com/nodejs/node/pull/22315.

gireeshpunathil commented 6 years ago

Code & Learn BLR about to start in one hour from now. 50 participants in the room to be on-boarded . Request @nodejs/collaborators to support this with reviews and hand-holding. thanks!

targos commented 6 years ago

Code & Learn review mode: ON

gireeshpunathil commented 6 years ago

New contributors are absolutely excited about this, few of them sent me emails and shared their happiness. Few of them are picking up work items on their own.

Thank you all the mentors who reviewed PRs with absolute receptiveness, approachability and kindness. Your guidance created a great open source experience to them that they can leverage!

Closing this issue as its purpose is met, having most of the PRs in the codebase; and giving way for #92