431

February 14th, 2022 × #Open Source#JavaScript#Web Development

Code Explorers

Scott and Wes discuss how to stay up-to-date on changes and new features in open source projects you use by looking at RFCs, issues, pull requests, and following project contributors on Twitter.

or
Topic 0 00:00

Transcript

Scott Tolinski

Oh, welcome to syntax. In this Monday, hasty treat. We're gonna be us. The repos. That's right. We're gonna be diving. We're gonna be crawling. We're gonna be finding tight spaces, and we're gonna be seeing the future of code, as you work on your projects by showing you how you can stay up to date with what's going on in the projects and repos that you care about. My name is Scott Talinski. I'm a full stack developer from Denver, Colorado. And with me, as always, is Wes Bos. Hey, everybody.

Wes Bos

I am I think this is kind of an interesting topic that you came up with. And, yeah, I really like this idea because people always ask, like, How do you stay up to date? But, like, there's a flip side to that is, what if you're curious about what's coming down the pipe?

Scott Tolinski

How do you figure that out? Yeah. And I I feel like the The better programming I get, the more, not only the more curious I get about these types of things, but the more I'm capable of understanding.

Scott Tolinski

You know, it's like, for one thing, it's like, yeah, you can kinda see a bunch of noise, but, I think what we're gonna try to do here is help you help you cut through some of the noise and really understand And find places where you can see what's going on in your photos.

Scott Tolinski

Yeah. This episode is sponsored by 2 amazing companies, LogRocket and retool. Now LogRocket is the perfect place to see your errors and exceptions happening in a Scrubbable video replay. Yeah. That's right. A literal video replay. This thing is so dang cool because you can see what the user did to actually cause the error That is in your system.

Scott Tolinski

And if the user clicked on the thing and the thing didn't work and it popped up with the error message and they say, hey. Maybe I I clicked on this thing and this error message came up. You could say, okay. Well, let me actually dive in there, and you can look in LogRocket. And I not only see the the actual a scrubbable video of the user doing the thing, but you actually get access to the network request. So maybe that network request failed for some reason.

Scott Tolinski

Maybe there was an error in the console you could investigate. All of those things are available to you, all of that and more. I know LogRocket has recently added, like, performance, performance tracking tools, Wes. I don't know if you've seen that, but a lot of cool new stuff like customer engagement and retaining customer features as well. So, it. LogRocket adding a ton of new stuff, and we'll have to dive in deeper to some of those new features in other ad reads. So if you wanna check out LogRocket, head on over to logrocket.

Scott Tolinski

Forward slash syntax. Sign up, and you'll get 14 days for free.

Scott Tolinski

This episode is also sponsored by Retool.

Scott Tolinski

Now Yeah. Oh, no. That's good. You were just pulling up less.

Wes Bos

I'm excited about this one.

Wes Bos

It It's almost unbelievable that this is a thing. And so Retool is like like, I'm not just saying that because they're sponsoring it. Like, this looks awesome. Like, this looks Like, I maybe should be using this. So what retails is, I know, you hook it up to your existing data provider, Whether that's a database, MongoDB, MySQL, they've got tons of them, or an existing API, and they will Allow you to create, it looks like they're focusing on internal tools for your, your product. And, like, for me, I have an entire application that is it. Stats, how many I've sold, filtering by by day, being able to get analytics on what's going on, doing refunds, partial refunds, hooking up to the Stripe API, the PayPal API.

Wes Bos

And it looks like this does All of that for you. So you just hook it up to your data source and you can sort of click together all these different internal tools, which is amazing because we always know, like, Both of them that people in marketing will come to you and be like, hey. We need an internal tool to do this. And internal tools are a beast of their own. It. And this is really cool. They get integrations with tons of different data sources. They've got all kinds of different templates. They've got template for doing Stripe refunds and arrest API, hookups. They've got charts, GitHub PR, Slack Notifier, s 3 File Explorer.

Wes Bos

You name it. Check it out at retool.comforward/syntax.

Wes Bos

You could try it for free. Thank you, retool, for sponsoring.

Scott Tolinski

Sick. Alright. Awesome. Cool.

Scott Tolinski

So let's get into this episode.

Scott Tolinski

I wanted to say that like this is something that I've been definitely doing more and And the more I do it, the more I I think I I I'm like very interested in following along with product projects more so than like So I mean, you can only contribute to so much. Right? And how you know, you have a limited time for things. So even more so than contributing, I'm really interested in really Keeping up to date with what's going on with projects that I'm interested in because that way nothing's going to surprise me. If it's a breaking change, If it's a new API, it's a new feature. I'm feeling nice and ready prepared for this. Now sometimes it's just for Just for fun. Right? It's just for laughs. You know? Just, oh, just to go and check and see what's going on in here. I think this is pretty neat stuff.

Scott Tolinski

In other times, it's a little bit more. I have a specific issue that I'm trying to solve, and I wanna stay up to date on, the progress of something if I'm not the one who's

Wes Bos

Actively working on it. Totally. And it's worth diving into these things as well because people love to complain when something is released And they say, oh, why did they do it this way or why is it done this way? And like, you had equal opportunity to actually dip into this. If you care very strongly about How something is doing. You should probably attach yourself to that issue and chime in where it's needed. I specifically have done this a lot in the past where There is a proposal for something to a framework or a library or even the language, and I have a bit of a perspective from, like, a beginner point of view because I I work with so many beginners that it. My courses, I can sort of understand where people might get tripped up or, where they might need something or or something that's too hard because sometimes people building these things are extremely smart. And it doesn't look like a big deal to code out entire feature for a file upload. But it's like, it would be nice if that was included or It'd be nice if I could do this, cheaply instead of having to pay for a service. Yeah. Totally.

Topic 1 05:41

Wes thinks commenting +1 is not helpful

Scott Tolinski

Cool. Okay. So If you want to, like, really get a handle on something new that's coming to a library or even a project in general, The 1st place that I think you should go would be to simply head to Google and type in the project name and then the letters RFCs after it. In fact, I've linked 3 of them. 1 for Svelte, 1 for React, and one for Vue All in this, and I found all 3 of these. Not I mean, I have some of these start already, but I found all 3 of these just by typing in Into Google, React RFCS.

Topic 2 07:20

RFC stands for Request for Comments

Scott Tolinski

Now RFCS or RFC stands for request for comments, And so people usually add the s on there. It's like request.

Scott Tolinski

I I think that I don't think the s is actually part of the acronym here. I could be wrong about that. I think it's just RFCs. CSDs. Yeah. Okay. When they're listed, it's RFC is capitalized, and then the s is not. So it's definitely just RFCs. I I always wonder why it's just why they don't make it our It stands for a request for comments.

Scott Tolinski

Mhmm. They're literally asking for you to chime in. Yeah. Right. That that's really it. A a request for comments is basically a thing that's been around since, like, the I don't I don't know if it's been around before this, but it's been around since the start of the Internet In the start of computing, when people were trying to work on features. So it's been around forever as a as a technique, and maybe it's been around for longer than that even. It says once published it. An RFC is reviewed by various technical groups and given a one of 5 classifications required, recommended, elective, limited use, Or not recommended.

Scott Tolinski

Now it's not exactly, you know, super common to see that standardized, required recommended elective limited use not recommended, but that's definitely how they used to do it. Basically, RFCs are just a a place where people can have issues and ideas, and they're frequently they're done as GitHub issues or pull requests.

Topic 3 08:45

RFCs are places for people to discuss issues and ideas

Scott Tolinski

What will happen is if somebody has an idea for the language, they'll open up an RFC that is usually structured and organized pretty well to say, here's what I'm thinking. Here's what it would look like, and here's what kind of the practical implications of this. And then that gives everyone the the chance to look at it and say, Oh, hey. This is kind of neat or, no, this is not this is not the direction we want this to go in or Yeah. Or maybe, like, this is this is worth exploring or not worth Blurring, essentially.

Wes Bos

Do you ever paw through our seas west? Yeah. I really like doing it. Specifically, I really like the The ones in node land, in npm land, a lot of the, like, foundational ones, either at a language level or at a low level tool, Because it's it's at that point where you can actually it's it's kind of interesting. Like, you can literally have input into how the things that all developers are using and building the applications are used. So It's really fun. I don't chime in as much because, A, sometimes I'm wrong because I could be thinking like, oh, that's not how I do it. And But, like, I don't know. Maybe I just need to have a bit of a a correction in terms of how I view something, Or b, I don't necessarily know what's the best way to do that. Right? Like, I might not be able to chime in on how you can memoize Best memoirs a function, but maybe I will chime in on, like, API ergonomics or something like that makes makes it easy to use or, Hey. It's this is really awesome in Svelte land.

Wes Bos

Maybe we could have that in this other framework because I really like how they approach that type of thing. Yeah. Totally. I definitely get that too. And, you know, I almost always like my means of

Scott Tolinski

of contributing to these things is is almost Always via supportive emoji. I'm not using the thumbs down on the somebody's, like, being rude or something like that. But if Mhmm. If, like, there is something that I I think is Pretty pretty sweet. I'll I'll throw a little heart emoji on there in the reactions.

Scott Tolinski

You know, what's not helpful is is commenting with things like plus 1 or something like that. That's why we have the heart Or or or thumbs up emojis. Right? Those emojis are there. Those reactions are there to avoid unnecessary comments like plus 1 or whatever.

Scott Tolinski

You know? And and and don't go in there and comment like, I think this is dumb without having, like, it. You know, proper, good arguments to back up what you're saying, but also being way more respectful. Right? Like, maybe this isn't the direction we should go for these following reasons. But for the most part, I I really stay out of commenting. I just kinda like to snoop around, And that's really, really good. You know what? One thing that you can do to maybe identify, RFCs that might be a little bit more thing is to look at the comments.

Scott Tolinski

How many comments he has. This kind of a neat little hack because if something is something that people are actually considering or there's conversation around it. There's gonna be a lot of back and forth and a lot of comments between the creators. I mean, there's 1 here on the looking at these felt Explicitly typing props, slots, events, plus generics.

Scott Tolinski

And and there's a whole lot of discussion about how they're wanting to do that. There's, like, Forty some comments. There's a ton of PRs mentioning this thing, and you just know that maybe, because of that, they're Actually working on it or that something is going to happen from that, so then you can dive in a little bit further and read into that.

Topic 4 12:18

RFCs show future direction of projects

Scott Tolinski

So RFCs These are a great place to really get an idea of future. Right? What what could be worked on? What what are things that We might be wanting to see in this or or might be happening, but what about, like, things that are happening? What about Changes that are actively being worked on.

Scott Tolinski

And this is where just diving into the repo comes into play. Now there are 2 different places to look really.

Topic 5 12:44

Active changes happen in issues and pull requests

Scott Tolinski

Nowadays, more people are having, like, discussion boards too, but discussions is probably not where the active changes are taking place. The active changes are gonna be in the poll request and then the issues.

Scott Tolinski

Now again with the issues, just like with the the RFCs in general, If you find things with a lot of comments associated with them because, like, some some path some projects have a ton of issues. That's just like the nature of it. But if you find some issues that have a lot of conversation or PRs associated to them because if you look at the table, there'll be a little, Like merge icon if there's a PR associated with it. So if you find 1, like, here has 8 value or 8 comments and a PR associated with it, That might be something that could actually be happening whether or not it's a bug fix or a feature. Right? So really being able to dive through these issues and see which things are being discussed, is a big skill, but also, like, knowing who, creating issues can also be a big one too. Right? If it's Joe Schmo creating an issue saying my thing doesn't work, then it's not helpful. It's not interesting. Right? But if, Let's say Rich Harris has created an issue on this felt repo, then maybe that's something you'd want to look at a little bit more closely because, somebody like that Has not only more sway over the project, obviously, because he's the creator of it. But, they also Probably have a little bit more insight into things that are actually going to be changing or actual issues or actual things to work on. So Knowing and understanding who the core contributors are in a repo, seeing if they've opened an issue or seeing what issues they've opened in reading those is also a great way. Again, I like to just kind of snoop around and stay on the sidelines here than to, really get too involved unless it's with supportive emoji.

Topic 6 14:31

Managing RFC conversations is a skill

Wes Bos

Yeah. Yeah. And, like and shout out to people that are able to manage all of that. That's a whole another skill set of being able to take Everybody's concerns and opinions and also the way that people use a piece of tech like you. We have this language JavaScript, But people use it in so many different ways. And you have to remember that the apps I've built are not necessarily The opinions of the entire world. Yeah. Yeah. Absolutely.

Scott Tolinski

And and just being, I don't know, respectful and cool is is a good one. Now one neat thing about PR is, especially, like, everyone has a different way of doing this. So you kinda have to be, like, on the level of what the repo is you're looking at. But it. Sometimes, you know, for instance, like, the Svelte repo. Right? The repo for Svelte, not even Svelte kit. They have labels for their PRs. If it's a feature, if it's a fix, if it's a docs, you can see at a quick glance. And, again, if you see something that has a lot of comments or something that was created By one of the core main train maintainers, if it was created by a core maintainer and, has a lot of comments, then, boy, you just found yourself something.

Scott Tolinski

So there's a lot of really great ways to find things. Another one is to check the milestones tab. If you're in a poll request section, actually, I wonder if this is is it an issues too? Yeah. It is.

Scott Tolinski

If you're an issues or poll request, there's a little tab that says milestones next to the search box. If you click that, oftentimes, when people are creating a release for a new version of something And they have a feature that's already going to be added to the project. It's determined that it will be. They'll assign it to a milestone. Like, right now in this felt Repo. I'm just I'm using this as an example because I have it open. But, there are 2 things that are attached to the milestones of post launch version 3 features.

Scott Tolinski

So, like, more aggressive inner HTML optimization.

Scott Tolinski

Bind group does not work with nested components. Those are 2 issues that are very firmly going to be worked on because they're attached to that milestone.

Scott Tolinski

And likewise, there's a version of 4, like version 4 of Svelte Milestone. Now That's not something that you could say, like, oh, this is what Svelte 4 is gonna look like. Let me break the news.

Scott Tolinski

But it It kinda gives you an idea about what things they're at least thinking about or working on. I got really used to this with the meteor because I always wanted to see what was coming up in the pipeline.

Scott Tolinski

So PRs, issues, those are great places to check. Check the milestones, see what's attached here. Again, always be respectful.

Scott Tolinski

The last place to really get a handle on where some of the stuff is coming from and what new features are coming out or what's being worked on is Twitter.

Topic 7 17:05

Twitter is a good place to learn about new features

Scott Tolinski

There's a lot of great things you can find out on Twitter. In fact, I follow all of the core contributors for all of the projects that I'm interested in on Twitter, And I think it it's a great way to learn about stuff. For instance, I found out very early that, Node was getting fetched from Matteo Colina.

Scott Tolinski

I'm hope I pronounce that right, Matteo. Matteo is one of the core contributors to Node. He's fantastic, And he's a great place for information. He's also the creator of Fastify. So just an awesome, awesome JavaScript creator. But Finding people like that on Twitter who are always posting what they're into or what they're working on is just an amazing it's amazing resource.

Wes Bos

Well said. I I don't think I have anything else to to add to that, but definitely worth I I have one thing to add to it. What? When you're looking at PRs,

Scott Tolinski

This is stay, in addition to the pull request things. If you go to the files changed section of things so if you open up a PR, You can go directly to the files changed.

Scott Tolinski

So I I find an interesting PR. It's this improved types for style interface. I'm gonna click files changed, which is one of the tabs there. You can see exactly what the person has been modifying for any particular PR.

Scott Tolinski

So just another little tip there is that if you want to see exactly, like, what's happening and that's also a great place to learn a little bit about, like, it. The actual code base of a project. But if you click files changed, you can kind of get an idea of what's going on. Now that is a skill it. That really is something that needs to be tuned with your growth as a programmer in general. Sometimes this is going to look like, Who knows? Like, right, you know, might be a little bit too over the top or over your head, but it's also a great place to practice reading code because you can see exactly What is going on in the repos and projects that you're using? So, yeah, that's it. Now that I have that out of the way. Beautiful. Alright. I think that's good for today. Thank you so much for tuning in, and we will catch you on Wednesday. Yeah. And let us know if you find any fun code things. There's a lot of cool code stuff coming, and, I know a bunch of people have found some recently some interesting features coming to SvelteKit. It's funny. I found them at one point, and I was just, like, waiting for other people to notice them. And then I saw the Twitter threads come in a couple weeks later. So I'm like, alright.

Scott Tolinski

Other people are looking. So, yeah, look at look at some stuff and see what you can find. Who knows? It could be a lot of fun.

Scott Tolinski

As always, thanks so much for listening. Peace.

Scott Tolinski

Peace.

Scott Tolinski

Head on over to syntax.fm for a full archive of all of our shows, and don't forget to subscribe in your podcast player it. Or drop a review if you like this show.

Share

Play / pause the audio
Minimize / expand the player
Mute / unmute the audio
Seek backward 30 seconds
Seek forward 30 seconds
Increase playback rate
Decrease playback rate
Show / hide this window