June 12th, 2023 × #GitHub#Project Management#Automation
GitHub Projects, Milestones, Labels, and Actions
Wes and Scott discuss using GitHub Projects, Milestones, Labels, and Actions to organize and automate your workflow.
Transcript
Announcer
Monday. Monday. Monday.
Announcer
Open wide dev fans, get ready to stuff your face with JavaScript, CSS, node modules, barbecue tips, get workflow, breakdancing, soft skill, web development, the hastiest, the craziest, the tastiest TS Webb development treats coming in hot. Here is Wes, Barracuda, Boss, and Scott
Scott Tolinski
key.
Scott Tolinski
Welcome to Syntax on this Monday, hasty treat. We are going to be planning On talking about GitHub projects, it's a fancy.
GitHub Projects overview
Scott Tolinski
It's a wonderfully fleshed out version of what we have kind of used in the past with GitHub issues.
Scott Tolinski
And this was a thing that me personally, I've been wanting in GitHub for so so long, And we all looked at other tools like Trello or Height or Notion or these types of things to accommodate some of these things. But in reality, When we're working with GitHub and GitHub issues and pull requests, it's really super nice to keep it all in one spot. My name is Scott Toleniscum, a developer from Denver. And with me, as always, is Wes Bos. Wes, what's going on, my dude?
Wes Bos
Pretty into merch right now. We just had a meeting about some of the syntax merch stuff, and I'm all excited about all the different possibilities that we could we could do.
Scott Tolinski
Yeah. And I think we wanna keep things fun and maybe short run and interesting, and, don't expect to hit the syntax swag shop and just get our our logo smacked on a bunch of, I don't know. What's that crappy? Crappy, mugs Zinn whatever from those crappy places. I don't I don't remember what they're called.
Scott Tolinski
So I try to avoid avoid those kind of shops. But, yeah, we're we're hopefully, gonna bring you bring you something interesting, you know, and that's very exciting for us.
Scott Tolinski
You know what? This is actually very funny and also unrelated.
Scott Tolinski
But you know what my son said to me yesterday? He just turned 6.
Scott Tolinski
So as a 6 year old, he said, dad, that's sick.
Scott Tolinski
I said, where did you hear sick? He's like, all my friends say it, dad. I was like, did you know that that we say that on our podcast? And he's like, no. Not a clue. So Oh, man. He was able to get to sick just Purely by his friends,
Wes Bos
which I thought was very cute. Oh, man. Our our kids are starting to say stuff like that too. Our littlest one the other day says, oh, you're kidding me.
Kids using adult lingo
Wes Bos
I just died. I melted because he's like 3, you know, and he hears the stuff that we're saying. You're kidding me.
Wes Bos
Oh my goodness. And what else did they say? My oldest daughters are calling me noobs because they they're like, you know what a noob is? I was like, Come on. Like, I invented noob, you know, like, oh my god. I grew up in the age of noob.
Scott Tolinski
I listened to some podcasts And, I'm not gonna reveal what and he was talking about his his daughter is, like, 9, and she has, like, the word of the week in school, whatever the kids are saying that week. And he's like she said she's, like, really into posting. And he's like, what is posting? What are you posting about? And she's like, say all these memes, and he'd be like, can you describe this meme to me? Like, can you playing with this Zach, and she wouldn't have any clue. She just thinks it's funny because everybody thinks it's funny. Or he said that he was doing dishes, and she said, slay daddy or something. Oh, yeah. He was doing dishes, and he's just like, wait. You I'm doing the dishes. I'm not slaying. I'm doing the dishes.
Wes Bos
It's like Kids the kids have no idea what they're talking about either. Like my, middle daughter, we were at a store the other day and she saw Prime, him, which is the, like, Gatorade alternative.
Wes Bos
And, like, the kids at her school must be crazy about it because, like, they don't have YouTube. She's never she She's no idea who Logan Paul is, but she was crazy about Prime. I was like, how do you how do you even know what this is? It's like the kids that older kids at school have it. Yeah. Walk around with their bottles. Mhmm. Wild. Mhmm. You're about to hit that era where the kids gotta have the thing. Yeah. Gotta have it.
Scott Tolinski
Alright. Well, you know what I gotta have, Wes? I gotta have some, really good project management features, and I gotta I gotta have them all connect to GitHub.
GitHub Projects benefits
Scott Tolinski
And let me tell you. In the past, I don't know what kind of tool. I don't necessarily, take you for being the type of guy who does a lot of planning tools. Do you do a lot of planning tools in general. No. Not really. Like, the limitation of my planning is GitHub issues, things that need to get done,
Wes Bos
and To do lists in my things app of just kind of putting things into categories, applying dates to them, but like no, like, formal project management structure. And I've worked in the past with Trello and Asana and Jira and all all of that type of stuff. I've worked on many different projects in my day,
Scott Tolinski
and I've never quite enjoyed it. Yeah. Yeah. Yeah. I I don't know if I have either. You know what? Trello is the one that comes up all the time, and and I gotta say, like, I don't understand, the love of Trello. Some people have. I I personally am not a big fan of it. It feels archaic to use.
Wes Bos
We used all this
Scott Tolinski
this podcast started on Trello. Wasn't it years ago? We did. Yeah. We absolutely did. We would use it for all of our cards before we moved to Notion, and it still feels the exact same. I I don't know if you've been on Trello, but it's felt a user. For, like, the past 10 years or whatever. It it hasn't really changed.
Scott Tolinski
And I've used it. I've never used Jira or anything like that until just recently when I, move to century here. I had to create a Jira account for the very first time, and I was like, oh, this is this is Jira. Alright. But what I always really wanted was a lot of these features baked into GitHub. And and many of the times, what you end up sacrificing when you get off of GitHub is kind of tenuous connections between apps that will then log in to GitHub and then try to manage your your GitHub issues and, you know, I don't wanna say, like, nonstandard, but, I mean, it's not GitHub doing it. Right? It's sending messages to close out and change issues and apply, labels and all sorts of stuff. Well, Luckily for us in the modern era here, we've been given many new wonderful tools from GitHub. So We're gonna be talking a little bit about some of these tools and whether or not, you if you're using them or not using them, maybe why should you give them a look? Because, the projects tab in GitHub is somewhat new. The projects tab is a way to define individual projects and tackle them in an organized manner.
Scott Tolinski
And what's cool about this is after creating a project, you can create a project on an organization itself or you can create a project on a specific actual repo. So I have projects under the Syntax organization that are private, that are like my content calendar. This is the content that I'm planning out. Right? This way I can keep track of it in a a nice organ organized way the same way we would a Notion, but it's all in all in GitHub, which, Hey. I kinda like that way more than working in Notion. I'm sorry, Notion, but, I just I just like it to keep it all in one spot. But what's cool about this is you can connect it all to your GitHub issues. You can connect it all to your project, and you can connect it all to PRs and code. So when you create an item or in in a project. It's not necessarily 1 to 1 with an issue. That said, you can attach one of these to dos or one of these items. You can attack them to issues and have them be 1 to 1. You can have a com Kanban board that automatically changes the status of these things. So that way it can be in progress planning to do, done the types of things that you typically do with one of those, con Kanban boards. And you can also have that automatically linked to PRs and issues. So if I close an issue, It can take that individual item in my to do list and automatically move it into the done column, which granted you can do in all of these other tools that connect to GitHub as well, but this is all within GitHub itself. You can assign and everything like that, and you get the added features of If you start typing in a number for commits or whatever, you get that automatic linkage between commits, PRs, those types of things that you would typically get. So Why might you use this? You'd use it for organizing your tasks, planning your work, automating your workflows, tracking progress, and running things like sprints. Right? You could have a sprint where, everything is labeled and connected. Everybody sees what each other's working on, and those are all connected directly to PR's in code. So I find these tools to be really super nice. Now what's so cool about this is that you can take just like a Notion.
GitHub Projects views
Scott Tolinski
In Notion, you can have a database with data, And you can choose to display that in a table or you can have an alternate view and say, oh, no. You know, actually, I want this in a calendar view. Oh, no. Actually, I want this in a Kanban board view. Right? And you can do that same here where you have access to several different types of view. So the default is basically just a table, then you could have your Kanban board, which is fully customizable. So you're not, like, stuck with whatever tables are are giving you there. You can create your own vertical columns. What I have is to do planning in progress and done.
GitHub Projects like Notion
Scott Tolinski
Those are pretty standard. Right? And then we also have, other views where you can have a timeline view where you can say specifically, I plan on working on this GitHub issue from this time to this time. Now I personally find that feature to be a little less important when there's 2 of us working on the code base. Right? I don't necessarily care that much. It feels like a little overkill. But Yeah. If you're working on a team with several people, You might find it really interesting to see, oh, okay. What's being worked on? How long is it taking? Who's working on these things? And what is the overall progress tracking of these things?
Wes Bos
Yeah. What's that type of graph called? It's funny because I went to school for this.
Wes Bos
We learned about the, like, different times of project management things where things can be worked on at the same time, and and then there's waterfall tasks where Yeah. It's called a,
Scott Tolinski
It's called a Gantt chart. Actually, I'm gonna look up how to Yeah. How to pronounce that. Oh, man. I'm having flashbacks right now. It's it's It's written g a n t t, but I've said it on this podcast before. And people were like, how do you not heard of that before? Because I never really used them.
Gantt charts
Scott Tolinski
But how to pronounce it's Gantt.
Wes Bos
If there's anything that my university training is good for, it's how to pronounce Gantt.
Wes Bos
It's honestly, it's a good review, especially if you're a project manager and you've got 6 employees working on different things. You need to be able to visualize, all right, who's working on what? Where are we at with this type of thing? Our sprint ends in 2 weeks.
Scott Tolinski
How we doing? 30% done, you know? Mhmm. And there's some cool tools here in terms of, like, insights too, which isn't something that I I've really dove into, and it's again, it's gonna be less important in a smaller team. But in a larger team, a lot of people work in a lot of hands on deck. If you click in the top right of a project, there's a little chart. It's kind of even, like, pretty low key.
Scott Tolinski
It looks like a little little graph chart. And if you click on that, it takes you to the insights page where you can see a chart, like actual charts. Like, here's a here's a bar chart of how many issues are currently set to be to do, how many are in planning, how many are in progress, how many are done. And you can create your own custom charts based on anything that you want so you can configure, duplicate, whatever. You can choose all the accesses you can see.
Scott Tolinski
Is Scott pulling his weight right now? It looks like he's been working on this thing forever. Scott has 18 to dos and has only completed one thing. So, oh, we better we better have a talking to to see what's going on there. Right? You can get actual information about what's going on in your project.
Scott Tolinski
So either way, the projects tab inside of your GitHub projects are are overall really super great, and they connect really nicely with everything else, including other things like milestones.
Scott Tolinski
Do you do you use milestones at all, Wes? No. I don't.
Using GitHub milestones
Scott Tolinski
Maybe I should. Well, Oh, oh, listen. We are using them in the new syntax website. So this is all all of this this entire episode should be prefaced with. If you wanna see some of the stuff in action, We're building in public largely for the Syntax website, the new Syntax website. If you go to the repo for the Syntax website, Syntax.fmforward/website, you will see that I have been implementing a lot of this stuff mostly just to give it a try and to get get organized with it, but also, because I want to get more organized with this kind of stuff. So inside of here, we also have, so So we have projects, which is what we just talked about. It's a way to keep track of what's being worked on at any given time. These things can be 1 to 1 with GitHub issues. They don't have to be.
Scott Tolinski
You can also, from an individual issue, by the way, attach a project to that issue. So it's not like you have to create things multiple times or anything like that. If you creating GitHub issue.
Scott Tolinski
You can in that issue, say, what project is this a part of? This is a part of the website 2.0 project. Okay. And then automatically adds it to your to do list essentially, which is great. Everything kind of flows through issues in PRs. Right? Now milestones are kind of very similar, but milestones are less of, less of a project management tracking system and more of a system to see how many outstanding issues are needing to be complete before a release.
Scott Tolinski
So oftentimes, you'll see these milestones being used specifically for releases. So you'll see, like, alright, version 1.0 And then all of the features or issues that you have, then you can attach directly from that issue to be a part of a specific milestone.
Scott Tolinski
That way, you can see at any given point just how many outstanding issues there are. And even if I'm in a specific issue. Right? Like, I opened up the theme engine issue here. I can see a little progress bar for that milestone directly in there, And I can see. Alright.
Scott Tolinski
This is a part of the new website milestone, and we are you know, that's gonna fluctuate because we're gonna be adding and changing issues all the time, but we can see that we're this far along in the progress of it. And if I this issue is a part of that. So when I close that, it's going to move that that forward.
Scott Tolinski
So milestones, our wonderful way to keep track of mostly releases, projects, individual projects, releases, things that are can be grouped into an individual project. Again, you can modify all of these from the issue itself.
Scott Tolinski
Last well, not maybe not lastly, but, I also want to talk about labels as a way to organize your projects.
Using GitHub labels
Scott Tolinski
I love labels. I don't know about you, but I do. Labels, they look pretty, in the, GitHub issues thing, but they also give you a good idea of exactly at a glance what's going on here. For instance, if if anybody can create an issue on the Syntax website, for a feature request. Right? I want this on the website, but, you know, it's really hard if all of that stuff kind of gets mixed in with the actual tasks we have to do. So So you just give it a label. Hey. This is a suggestion.
Scott Tolinski
This is a thing we have chosen to do. This is a thing that we're not going to do. This is the thing for the current Next. Js version of the site. This is a thing for the new site. This is just an exploration. There's not gonna be any code attached to this. This is just me,
Wes Bos
having some place to jot down ideas. Right? Yeah. You know who does a really good job at this is a Versus Code. VSCode has thousands and thousands of issues.
Wes Bos
And if you look at that, you would think, oh, there's lots of problems with VSCode. But In reality, it's just a high volume project. So they do a really good job at auto applying bug Triage needed if it's related to something.
Wes Bos
And then also the labels get updated On things as like I've logged a bug and then you'll see the label simply get updated to April 2023 Sprint. And you go, oh, man, that means they're going to try to work on this thing. And they didn't have to say, hey, we're going to work on this next month. It's just you just know by looking at the labels and not having to go deeper into whatever project management software bug software, I always hate that. Like, My buddy had a issue with Ios Safari the other day. He wanted to, like, you know, like you can share navigator. Share In the browser, it wasn't sharing a generated JPEG that he made in the browser.
Wes Bos
And I went deep into the web project management thing, and I found the bug, and then I found the fix for it. But, like,
Scott Tolinski
I do not like that. Yeah. I know that some of this stuff does feel like, you know, you you can spend so much time on it, But a lot of these systems are really best done, like you said, when things get automated, and then like the issues. Right? You can have, Like I said, if you change the status of a a poll request or a poll request gets completed and issue gets closed, you can have that item you get moved in your project, Kanban board to done. Right? And a lot of these things can be really highly connected, which is one of the since why I love all of these features so much. Just the automation abilities here. And GitHub has done a really great job of this. And and these are things that, like, Seriously didn't exist a couple of years ago. So if you're new ish to this stuff I mean, it used to just be issues, then we got discussions and projects and milestones and all that stuff. Another cool thing is this pin issue thing, which is somewhat new. You can pin 3 issues at the top of an issues thing. So let's say you are working on a big open source project. You get the same question all the time. One of the kind of be in Ramuh. You can pin that single issue to the top and then pray that, the people arriving on your shoes page will actually click on it instead of opening up a new issue for it, that same thing, which, you know, a lot of the the bigger repos, you know, if you wanna see, like, some big open source projects, whether it's any of the big front end frameworks or something, a lot of these Folks have to have really buttoned up, GitHub issues flows. Otherwise, they're just gonna be overwhelmed with the insanity of Just generalized everybody using this thing and submitting things.
Scott Tolinski
Another cool thing is discussions. I I briefly mentioned discussions. Discussions are basically a way to have almost like a forum type of situation for any individual product. You can even do, discussions where things are voted upon so people And vote on feature requests and things like that, which honestly is probably something that we should get going on, to open it up to the community. In fact, When I was talking about the syntax site creation in our Discord channel, people were saying, should I open an issue if I have things that I wanna see out of the site? I said, sure. Whatever. But maybe this is a better way to do it to have it in discussions rather than issue. Right? To open up these things, Get people talking, get people sharing, and and having that type of discussion.
Scott Tolinski
And a lot of the bigger projects that you're seeing will do, really nice discussion pages. This is one of those things that I always really love, because it acts as like a searchable, findable Wiki key kind of for the project where people are asking questions or a FAQ type of deal. So you'll see a lot of, like, Next. Js and Gatsby and node and all these things, Tailwind, and A lot of these people use discussions really well. Right? So that's great. Discussions, issues, projects, milestones.
GitHub wiki
Scott Tolinski
There's even a wiki feature. I don't know if you use wiki at all. Wiki allows you to build your own personal wiki. I don't really use it that much. Yeah. It's handy for
Wes Bos
When you have lots of documentation for here's how to install X, Y, or Z, and you need contributions from people. I honestly prefer a little bit more when people use like a git book or something rather than a wiki, but
Scott Tolinski
maybe there's got to be something in there that Can compile 1 to the other. Yeah. And last but not least, we have GitHub actions. Actions are just kind of a general, x happens, do y. If x then y.
GitHub actions
Scott Tolinski
If a poll request is submitted, then run your type, your type checking, run your test, do whatever. If that passes, make it approved.
Scott Tolinski
These types of things can all work in coordination with your automation, your projects, your milestones, all these things, your issues. And you could really the more time you spend automating this stuff depends on the the project size you're doing. But, really, you could spend, like, a straight up week tweaking on issues or, actions with issues and PRs in projects And have something, like, really pretty amazing at the end of the day with all of this. But you do you do need to spend that time. I don't I don't know about you, Wes, but GitHub actions for me have always been really super nice, but at the same time, annoying to debug, annoying to mess with and tweak. You have to rerun things over and over again.
Scott Tolinski
But, you know, you could you could do a whole ton with them. And the more involved you get into GitHub actions, the more abilities. You'll have to automate how your repo is functioning overall in these kind of
Wes Bos
organizational ways. I have used a package in the past called ACT, which allows you to run your GitHub actions locally, which is great when you're debugging something and trying to get it to work.
Wes Bos
But I have had nothing but painful experiences trying to get GitHub Actions Working on my uses.
Wes Bos
Tech website.
Wes Bos
We do a couple of things with GitHub Actions, including we obviously No, we don't build the site, but we format the the JavaScript that people pull requests, so everyone will pull requests themselves to a JSON file and people Goof up it all the time. And it's annoying to be like, Can you please fix the indentation? So we just have like a it run it through Prettier and it fixes that type of stuff. And then it also Will check if you actually have a user's page. You know, like, it'll ping the URL that you're submitting. Uh-huh. Sometimes people just submit, like, random pages. Like I'll fix it at some point or I'll deploy it at some point. So if it like 404s or it's not a specific URL, It'll deploy it or it'll not deploy, sorry, it'll reject the pull request. So there's all kinds of really neat stuff you can do with that GitHub actions. But
Scott Tolinski
Man, that's a whole another skill set working with those things. It's a whole another skill set, and you gotta spend some time.
Scott Tolinski
Level up tutorials is now free. We, we have a course on GitHub actions from Brian Douglas who worked at GitHub at the time.
Scott Tolinski
So he he he's very knowledgeable about GitHub, GitHub Actions. And if you wanna learn all of the ins and outs there, that that course is free. You can go take that course right now on level up that video. So, check it out. So if you're the type of person, you're in Trello, you're in Notion, you're in Jira, wherever, right, Maybe you haven't looked at GitHub workflows and projects and these type of automation tools. If you haven't given them a try, Maybe now is a good time to take a second look and see exactly what's out there because, hey, they are very full featured. And if your coach there already, might as well everything in the same spot, and I I gotta say I'm a big fan myself. So, check out the syntax repo. We'll have obviously a link to that in the show notes. And if you wanna contribute, I'll open up the discussions on the, we'll we'll get some discussions going before this episode is out. So that way, If you wanna contribute and ask about features or ideas or anything like that with the site or feature requests, those types of things, we can have some place for you to put that. Alright. That's it for today. Thanks everybody for tuning in. We'll catch you on Wednesday.
Wes Bos
Peace.
Scott Tolinski
Head on over choose syntax.fm for a full archive of all of our shows. And don't forget to subscribe in your podcast player or drop a review if you like this show.