DEV Community

Cover image for GitHub Universe 2021 Recap - All You NEED to Know
Davide 'CoderDave' Benvegnù
Davide 'CoderDave' Benvegnù

Posted on

GitHub Universe 2021 Recap - All You NEED to Know

GitHub's flagship event, GitHub Universe 2021, has just closed its virtual doors after 2 days packed of information, announcements, and releases.

In this video I'm gonna go through all the announcements and new features you need to know from the event

Video

As usual, if you are a visual learner, or simply prefer to watch and listen instead of reading, here you have the video with the whole explanation and demos, which to be fair is much more complete than this post.

Link to the video: https://youtu.be/HJYpzyUsjKc

If you rather prefer reading, well... Let's dive straight into the first couple of announcements.

New Projects

Let's start with the new Projects. GitHub has announced this a while back as part as the Issues revamp that contained also the new Issues Forms, Task lists, etc. But differently from those features, which went live publicly, the new Projects where kept under private beta.

Now this feature graduates from private beta to public beta, and as such it will be available to everyone.

New Projects

Built like a spreadsheet, the new projects tables give you a live canvas to filter, sort, and group issues, pull requests, and cards.

You can also extend issues with custom fields with support for text, number, date, and single-select types; filter, sort, and group by any field; and instantly switch between project tables and boards.

Boards

Differently from the limited beta, in which the new projects were available only for selected organization, with this announcement Projects will be available for everyone, including individual users, and it is now possible to also create public projects (before they were only private).

Project Automation

And there is also a new automation capability embedded into the new Projects. Before this, to automate a project board and the related issues you had to rely on GitHub Actions.

Projects Automation

Now instead users will be able to simply turn on automation that helps them keep their project boards up-to-date without needing any manual intervention.

Cumulative Flow Diagrams

And finally, still talking about issues and projects, GitHub is introducing CFDs - cumulative flow diagrams - into the projects experience.

Cumulative Flow Diagram

Thanks to this, users will be able to visualize progress, remaining work, and throughput of a specific project

It is unclear when the chart will be available to everyone, but I can't wait to have it and use it and see what other reports and charts will be available in the future.

Command Palette

Alright, second announcement that I want to talk about is the Public Beta for the Command Palette.

Command Palette

The Command Palette is a new GitHub surface designed to improve how users navigate around GitHub and execute time saving commands. You can quickly jump to your organizations and repositories, and search within them for pull requests, issues, projects, files, and more.

You can access the Command Palette using ctrl + k on Windows or command + k on Mac, and just start typing.

Command Mode

And if you then press > (greater than) you enter the "command mode", where you can execute commands to optimize your workflows, all without lifting your hands from the keyboard.

What do you think of this? I love it, it's really cool. Let me know in the comment below your thoughts.

New Releases

Next up, let's talk about Releases, because two improvements to the release process on GitHub are generally available. A redesigned UI, and automatically generated release notes.

Releases UI

The Releases UI refresh gives more clarity into what’s included in a given release and recognition for contributors in the community. GitHub has also made pagination significantly better and introduced new search functionality.

Releases Comparison

And we now have a handy comparison feature right in the UI, to be able to compare 2 releases.

Automatically Generated Release Notes

But it is not all, because as I've already mentioned we now also have the possibility to automatically generate release notes.

Automatic Release Notes

This provides an automated alternative to manually writing release notes for your GitHub releases. With automatically generated release notes, you can quickly generate an overview of the contents of a release. You can also customize your automated release notes, using labels to create custom categories to organize pull requests you want to include, and exclude certain labels and users from appearing in the output.

You can also customize the automatically generated release notes by creating a template for them.

Releases YAML Template

This template is a YAML file, as you can see above, which must be called release.yml and placed in the .github folder in the root of your repo.

Codespaces

Next series of announcements are about Codespaces. Some are somewhat minor, like the support for Codespaces from the GitHub CLI to help integrate Codespaces with user workflows, or the availability (in beta) of REST APIs to manage Codespaces.

I called those minor features, even though I'm sure a lot of users and sysadmins will rejoice for having them, because the next ones I will talk about are even more exciting.

Devcontainer Feature Composition

First, the Devcontainer features. The name may not be very exciting, but this is huge.

Codespaces DevContainer

To customize your Codespaces experience and include custom tools and other configuration you had to create a devcontainer.json file and edit it, perhaps adding different container images and post creation scripts. Which frankly is not the best in terms of user experience. Now, instead, this feature enables users to more easily install common tools to their devcontainers instead of having to manually script the installation in their Dockerfiles or postCreate scripts.

Feature Composition

Just add a template devcontainer definition through the Add development container configuration files… workflow in Codespaces and you will see the new feature selection, which change and depend on the previous selections.

Features YAML

The selected features will be added to a new features section of the devcontainer.json file and the Codespaces engine will take care of them for you.

This is super cool, but there's more: Codespaces users can use the Copilot technical preview

Copilot 4 Codespaces

Until now, only users that have been accepted into the private beta were able to use Copilot. Now instead all Codespaces users can use Copilot by installing the Copilot extension in VS Code without having to apply to the Copilot technical preview waiting list.

Copilot

And speaking of Copilot, we do have some announcements for this service as well.

GitHub in fact announced the support for more languages, including Java, support for additional IDEs thanks to the plugin for the JetBrains editors (like Pycharm, IntelliJ, WebStorm, and more), and an enhanced OpenAI model that makes the service even more accurate than it was before.

Copilot JetBrain Plugin

Custom Repository Roles

Next announcement will make organization admins happy. GitHub has indeed announced that we now get Custom Repository Roles.

Custom Repo Roles

The Custom Repository Roles feature allows organization admins to create custom permission levels that can be applied to teams, organization members, and outside collaborators. They must inherit from one of the predefined roles but can extend them because you can pick and choose the permissions you want. Custom Repo Roles apply to all repositories in an organization.

Change Repo Default Role

And once you have the custom roles, it is even possible to assign one of those as default role for a repo.

Pull Request Merge Queue

Ok, last one. This is an improvement to the Pull Request experience, especially when working on big projects or busy branches. It is called Pull Request Merge Queue.

Merge Queue

Once a pull request has passed all its usual required checks and approvals, instead of the developer trying to merge the pull request (which can turn into a race with other developers --- all trying to avoid the dreaded "your branch is out of date, please update" also triggering a new round of CI checks), the developer simply adds the pull request to the merge queue. The queue then creates a temporary branch with that pull request and the pull requests ahead of it in the queue and triggers CI. Once CI passes, the pull request is merged by fast-forwarding the main branch.

This feature is in a private beta access for organization accounts at the moment, but I hope this will be soon open to more accounts because it's a really good feature for big projects and busy branches.

Conclusions

Alright, that's it for today. So what do you think of this year's GitHub Universe and of these new features and announcements? Let me know in the comment section below, and also let me know which is your favorite announcement.

And if you are into new features, you may also want to watch this video, in which I cover the recently announced Reusable Workflows in GitHub Actions.

Like, share and follow me 🚀 for more content:

📽 YouTube
Buy me a coffee
💖 Patreon
📧 Newsletter
🌐 CoderDave.io Website
👕 Merch
👦🏻 Facebook page
🐱‍💻 GitHub
👲🏻 Twitter
👴🏻 LinkedIn
🔉 Podcast

Buy Me A Coffee

Discussion (0)