Inline comments in GitHub for Visual Studio

GitHub for Visual Studio 2.3 adds the ability to comment on pull requests directly from your IDE. Simply open a pull request in the GitHub pane in Visual Studio, and open a compare view, and you'll see existing comments right there in the editor. Click the icon in the margin to add new comments.

Inline comments using without leaving your IDE

The functionality is limited right now to adding single comments, but we're hoping to bring the whole GitHub review experience right into Visual Studio soon!

On top of that, we've shipped a whole bunch of new features and bugfixes. To find out more check out the release notes.

Announcing GitHub Desktop 1.0

Collaborating on GitHub with the power of a GUI application just got easier! GitHub Desktop 1.0 is now available.

1.0!

A few months ago, we completely redesigned and reimplemented GitHub Desktop on Electron to provide a simpler, more unified experience. The public beta launched in May. Since then we've been hard at work fixing bugs, adding features, and responding to feedback—but now we're ready for prime time. Here's an overview of what you'll see in 1.0.

Download now

Image diffs

Image diff example

Easily compare changed images. See the before and after, swipe or fade between the two, or look at just the changed parts.

@mathieudutour implemented image diffs for Kactus, a design review tool forked off GitHub Desktop. Then he was kind enough to submit the work back upstream to us!

Faster cloning

Clone dialog

See all your repositories and clone them with the click of a button. Git LFS assets download in parallel for even faster cloning.

Integrated

Editors and terminals

Open your favorite editor or shell from the app, or jump back to GitHub Desktop from your shell. GitHub Desktop is your springboard for work.

Everywhere

GitHub Desktop works with GitHub Enterprise. Log in to your GitHub Enterprise server, clone, commit, push, and pull. Whether you're working on a personal or company project, GitHub Desktop is here to help.

Open source

GitHub Desktop is open source and we've already received some fantastic contributions from the community. Go check out our roadmap, contribute, and help us make collaboration even easier.

Classic apps

We think GitHub Desktop is a big step forward—but don't worry, we won't force you to update! If you have a good thing going with the classic Mac or Windows app, you can continue to use them and move over to the new app when you're ready.

Download now

Project navigation for the way you work

Today we shipped accessibility enhancements to GitHub Projects that make it easier for everyone to navigate and update their project boards. If you rely on assistive technology or prefer using the keyboard to get work done, you can now use these tools more effectively to manage your projects on GitHub.

animation

With new keyboard shortcuts, you can efficiently move and navigate between cards and columns. Select a card or column using the enter key and move it anywhere
on the board. Commit the change with enter again, or cancel it with escape. Press the ? key on any project board to review the new keyboard shortcuts in more detail.

We're committed to building tools that empower everyone to work better together. The changes we're announcing today are a first step toward more accessible project management on GitHub. We'd love to hear from you about other ways we can help you do your best work.

Introducing Atom-IDE

Atom IDE

In collaboration with Facebook, we're excited to announce Atom-IDE—a set of optional packages that bring IDE-like functionality to Atom. The initial release includes smarter, context-aware auto-completion, navigation features, like outline view and goto-definition, and other useful functions, errors, warnings, and document formatting.

Learn more from the Atom Blog

A look at Atom-IDE

Atom-IDE includes packages for C#, Flow, Java, JavaScript, PHP, and TypeScript that use the power of language servers to provide deep syntactical analysis of your code and projects—but this is just the start of our journey. With the help of our community, we plan to expand the number of languages that Atom-IDE can support and make it possible for you to run and edit applications, making Atom-IDE a true IDE.

Check out our post on the Atom Blog to get started—or to learn how to create an Atom-IDE package for your favorite language.

Extend your workflow with these new Marketplace apps

Whatever you use to build software, chances are there are ways to simplify. GitHub Marketplace brings together your favorite tools to provide the functionality and expertise you need to work better, right where you code.

New apps in GitHub Marketplace

Today, we’re introducing five apps and a new "Deployment" category in GitHub Marketplace. Reduce the complexity of releasing software, minimize the risk of errors, and get features and fixes out to your users.

Meet our new apps

Deployment, Continuous Integration

Easily create delivery automation pipelines with over 50 build, test, and deployment actions using Buddy. It handles both legacy FTP/SFTP uploads and dedicated IaaS/PaaS deployments with all the latest technology: Docker images, containers, microservices, Slack notifications, and Kubernetes clusters.

Semaphore helps teams move faster with hosted continuous integration and delivery. After you push code to GitHub, it quickly runs your tests on a platform with first-class Docker support and more than 100 pre-installed tools. Semaphore lets you parallelize your builds, get feedback right in pull requests, and deploy more often in a unified workflow.

Localization

Crowdin is a web-based localization management platform for developers that integrates with GitHub to provide a seamless file sync with your repositories. Crowdin is designed to ensure timely and quality translations with pre-translation support, advanced reporting, workflow management, and more.

Monitoring

Airbrake silently monitors your apps and instantly alerts you to any new problems affecting your users. You’ll know what’s affected and get all the information you need to quickly fix the problem.

Security

Snyk makes sure you’re immediately aware of any security vulnerabilities in your open source libraries and helps you find, fix, and prevent them as they happen. Snyk includes single-click fix for pull requests and the ability to patch vulnerabilities, no matter your package manager with support for npm, Maven, PyPi, Ruby Gems, and more.

Discover new ways to streamline your development, work better together, and deploy stress-free, so you can focus on your product.

Browse all GitHub.com apps in Marketplace

Release Radar · September 2017

Release Radar September 2017

Welcome to the first edition of the Release Radar, where we share the projects popping up on our radar—from world-changing technologies to weekend side projects. Most importantly, they're all projects shipped by you. Hopefully, we'll find little something for everybody: a new app for your tool belt, a fresh experiment for your free time, or a game to play with on your next coffee break.

This month we’re sharing projects to make your data sizzle 🔥 and add animations to your native apps with ease. Enjoy!

Lottie for iOS 2.0.0

Lottie is an Android, iOS, and React Native library that renders After Effects animations in real time, allowing developers to add animations to native apps just as easily as static assets.

Lottie started as a hackathon project at Airbnb, but @buba447, @therealsalih and @gpeal from the Airbnb Design Team have continued to iterate on it. View the Lottie for iOS 2.0.0 release notes.

Animations created with Lottie

Did you know: Lottie was originally named Lotte after Charlotte Reiniger—an original trailblazer of animation. She made one of the first feature-length animated films, and her work still holds up today.

FlameGraph 1.0

Visualize profiled software with FlameGraph to identify your most frequent code-paths quickly and accurately. The team tagged the 1.0 release to allow package maintainers to grab static versions, but don't let that fool you. FlameGraph has been around for years—and has likely improved performance for products and services you use every day.

"It confuses people at first since the x-axis is not the passage of time; it's an alphabetical sort. People move from 'I don't like it, it's not intuitive' to 'This is amazing, how did I ever live without it?' quickly". - @brendangregg

Mixed-mode FlameGraph spanning kernel and user code

Did you know: Brendan coded the first version of FlameGraph in a single night; he didn't think he could play around with new visualizations at his day job when there were more pressing deliverables. The next day, he used it for work to understand the difference between two massive MySQL profiles that were thousands of pages of text each.

Drupal Console 1.0.0

Drupal Console is a command line interface for Drupal. Add users, debug issues, generate boilerplate code, and more. Version 1.0.0 was just released at Drupal Camp Costa Rica—the largest web development event in the country.

“It’s amazing how a project we started a few years ago as a Drupal 8 learning exercise is now considered for the Drupal community a must-have tool to accelerate Drupal 8 development.” - @jmolivas

Drupal Console terminal output

Did you know: Drupal Console is hitting all the right milestones lately. Last month, they celebrated one million downloads. Congratulations, all around!

Redash 2.0

Redash is an open source tool for teams to query, visualize, and collaborate on data from MySQL, Graphite, Presto, BigQuery, Redshift, and many other data sources. No more exporting data into Excel or spending weeks building dashboards.

Refer to the release notes for some highlights and contributions from the community.

Example Redash data visualizations on

STF 3.0

Smartphone Test Farm (STF) is an open source web application for controlling and debugging smartphones and other devices—right from the comfort of your browser. Testing your latest app or game on all devices has never been easier.

View the 3.0.0 release notes

Animation showing STF's capabilities

Did you know: STF's origins lie at CyberAgent in Tokyo, where it was used to control over 150 devices.

react-map-gl 3.0

react-map-gl is a suite of React components for Mapbox GL JS, a JavaScript library that uses WebGL to render interactive maps. You don't need to have as much data as Uber to create beautiful data visualizations.

View the v3.0.0 release notes

Example showing react-map-gl's dynamic styling

Did you know: This is just one of many frameworks created and maintained by the Visualization Team at Uber. Read more about the entire framework

Starcraft II API v1

The Starcraft II Development Team just announced the release of the Starcraft II API for gamers and researchers advancing the field of Artificial Intelligence (AI). In addition to sample code and bots, they've also included a dataset of replay data from some of the world’s best Starcraft players.

Screenshot of Starcraft II gameplay

Did you know: There's an Annual Starcraft AI Competition, where researchers compete annually with bots, using the the open source Brood War Application Programming Interface (BWAPI) C++ framework. Interested? You can fork a sample bot called UAlbertaBot.

PySC2 1.0

In partnership with Blizzard, Deepmind also released PySC2—a Python wrapper for the new API for reinforcement learning agents to interact with the game. They also share some mini games (which they think of as more of unit tests). In these, agents achieve a level of play comparable to a human player—moving to beacons, building marines, and more.

Simple RL mini-games allowing AI researchers to test the performance of RL agents on key tasks

Did you know: Although bots are currently no match for a human, we might see a bot defeat the world's best human players in the next few years. Learn more

Lumberyard 1.10

Lumberyard, Amazon's AAA game engine integrated with GameLift and Twitch just released 1.10 with over 500 new features, bug fixes, and performance improvements. They also made the source code available, so game developers can customize and optimize the code to suit their needs.

Screenshot showing the new docking system in Lumberyard

.NET Core 2.0

Finally, our friends at the .NET Foundation released .NET Core 2.0—a lightweight, modular platform for creating web applications and services that run on Windows, Linux, and Mac. Learn more from Scott Hunter and members of the .NET Team on Microsoft's Channel 9.

.NET Core 2.0 discussions on Microsoft's Channel 9

Did you know: Microsoft also released ASP.NET Core 2.0, Entity Framework Core 2.0, and the complete .NET Standard 2.0 specification—not a surprise considering Microsoft had the most open source contributors of any organization last year.


This is just a sample of all the awesome things you shipped last month. Are you releasing something exciting soon? We'd love to help you celebrate! Send a note to releaseradar@github.com

Quickly review changed functions in your Python pull requests

Last month, we released a new way to quickly review pull requests by listing the changed functions or methods in the pull request file finder. Now Python enthusiasts can quickly identify changed functions in their pull requests, too.

python-changed-functions

Searching the file finder for the term function or the name of a changed function in a Python file will provide you with a timeline-style view of the results, so you can easily identify and view the most impactful parts of a pull request. Check out the documentation to learn more.

We hope this helps make more of the review process for the Python community more efficient. Let us know if you have any feedback—or if there are other search functions you'd find useful using our help form.

GitHub Classroom now supports deadlines and class rosters

Nathaniel Woodthorpe spent his summer as an Engineering Intern working on GitHub Classroom alongside the Education Team. In this post, he'll share the features and updates he worked on for thousands of teachers and students.

Updates to GitHub Classroom

Teachers can now use GitHub Classroom to set deadlines, track student accounts, and more. Here’s how to use these features in your course and set them up for the first day of class.

Insight into student progress with deadlines

Track student progress leading up to a due date with assignment deadlines. Deadlines fetch the latest commit SHA on the default branch at the time of the deadline, and displays this to the teacher as a “submission”.

View student submissions

If students try to modify previous work, they'll also modify this SHA on GitHub. The submission SHA professors have will then become invalid, alerting them to the changes.

Want students to keep working for partial credit? In this solution, students can work after a deadline. Adding commits on top of an SHA doesn't modify its base.

Easier course set up with Classroom rosters

Classroom rosters provide teachers with a snapshot of course activity at a high level, and an easier way to connect student names with GitHub usernames.

Add student information to Classroom rosters

When a teacher creates a classroom, they have the option of entering student information—email addresses, student numbers, or any other identifying piece of information.

If they haven't already, students can add their personal or contact information when accepting a Classroom invitation, creating a link between their work and their online identities.

And a few more improvements

In addition to these two features, we've shipped some exciting updates this summer. Classroom now has short URLs for assignment invitations, improved assignment views, DataDog instrumentation, and new performance improvements.

Summer internships at GitHub

At GitHub, I got to help improve Classroom and grew as an engineer in the process. Thanks @johndbritton, @tarebyte, @mozzadrella—and everyone else who mentored and worked closely with me.

In two months, I’ll start at GitHub as a full-time Platform Engineer. Though I'll be on another team, I’ll continue to help shape Classroom into an even better experience for the thousands of students and teachers who use it.

Want to build great things together next summer? Applications are opening soon for summer 2018 internships in engineering, data science, marketing, and more.

Sign up for updates

Introducing embedded code snippets

Your team can get more done when they have all of the information they need in one place. Now, you can see helpful references in issues you're already working in (or start a new issue) with embedded code snippets. Include the code snippets that will push your projects forward without making your team leave the conversation.

You'll just need the permalink to specific lines you want to reference. Then, you can paste the code snippet into the place it will be most helpful.

Paste the snippet into a conversation

To add a code snippet: select the lines you want to reference, open the inline toolbar, click Copy permalink, and paste it anywhere.

snippet-from-permalink-for-blog-v2

Open a new issue

You can also use the toolbar to open a new issue when you select the code by clicking Open new issue.

create-issues-from-code

To learn more, check out the documentation for embedded code snippets and opening issues from code.

Updates to GitHub Terms of Service are in effect

Earlier this month, we asked for your feedback on a new set of changes to our Terms of Service and Corporate Terms of Service. You responded overwhelmingly! Thank you so much to everyone who commented and opened issues or pull requests. The Terms of Service that you helped us create is now in effect.

Your feedback

During this comment period, you opened 45 issues and 17 pull requests, helping us fine tune and clarify a bunch of our policies. The updates we made based on your feedback are documented in the "Community Feedback" section below.

If you missed out on this comment period, check out the Site Policy repo README and Contributing Guidelines to find out how you can participate. Watch the repo to keep an eye out for future updates.

An overview of changes to our site Terms

  • In our last blog post, we told you about the changes we were making to our Terms of Service, Corporate Terms of Service, Business Plan Addendum, and Amendment to GitHub Terms of Service Applicable to U.S. Federal Government Users. We kept those changes, but some of the language may have been tweaked, based on your feedback.

  • Community Feedback: Thanks to your feedback, we made a number of changes to the terms, for example:

    • Clarifications in our new Private Repositories section
    • Updates to the "Federal Government" Amendment
    • Updates to the new Publicity section in the Corporate Terms of Service
    • Multiple typo corrections and grammar fixes

We also received some great ideas that we couldn't implement in this comment period. We expect to address those them in the next few months.

What this means for you

The new Terms of Service are in effect as of August 7. You can accept them by continuing to use GitHub. Thank you again, you've helped us make our Terms better. Please let us know if you have questions about the new Terms or if you would like to contribute to our policies.

Introducing seven new apps to GitHub Marketplace

marketplace-monthly-blog-image

Whether you’re working on an open source project or building a software company, chances are you can simplify your work with GitHub Apps. In May, we launched GitHub Marketplace—a place where you can easily discover, purchase, and integrate new tools that customize your workflow. Today, we’re launching seven new apps in Marketplace and four new categories: Dependency Management, Localization, Security, and Time Tracking.

Code quality, Code review

Better Code Hub provides development teams with immediate, relevant feedback on code quality. It checks a code base against ten guidelines for maintainable software, delivering actionable recommendations and helping your team get to a shared definition of done. A score of ten out of ten indicates you’re performing among top development teams within the industry.

Code Climate provides automated code review, analyzing every commit, branch, and pull request for complexity, duplication, security, and more. It also combines line-by-line test coverage reports, technical debt assessments, and style checks in every pull request so your team merges only clear, maintainable, and well-tested code.

Coveralls helps teams deliver code confidently by providing test coverage history and statistics to show which parts of your code aren’t covered by your test suite. It works with your CI server to sift through new code and reveal changes in overall coverage. Coveralls can also stop deployments that contain newly untested code to protect your live application.

StyleCI is a PHP coding style service that automatically analyzes the code you push to GitHub. If something is amiss, it will immediately notify you through the GitHub Status integration. You can also configure StyleCI to automatically create a pull request with fixes.

Dependency management, Security

Gemnasium monitors project dependencies and alerts you to updates and security vulnerabilities, providing information about all of your repositories in a single interface.

Localization

GitLocalize is a continuous localization tool built for communities and teams that want to simplify their workflow when translating content. GitLocalize automatically syncs with your repository so you can keep your workflow on GitHub. It also keeps you updated on what needs to be translated.

Project management, Time tracking

WakaTime provides you with metrics, insights, and time tracking automatically generated from your programming activity. Compete with your friends on private leaderboards, and improve your productivity with your own personal dashboard.

Whether you’d like to automatically build and test your code as you push it to GitHub, measure performance, track errors, or manage projects, GitHub Apps give you flexibility across your development process. And our ecosystem is always growing. Discover new tools on GitHub Marketplace and start using them in minutes.

Quickly review changed methods and functions in your pull requests

The biggest barrier to code review is often time, but there's a new way to easily understand how changes impact your code. Now you can navigate to changed methods and functions right from your pull request file finder.

Changed methods and functions

Searching the file finder for a method or function in a Go, JavaScript, Ruby, Python, or TypeScript file will provide you with a timeline-style view of the results, so you can skip to the most impactful parts of a pull request. Check out the documentation to learn more.

We hope this helps make your review process even more efficient. Let us know if you have any feedback—or if there are other search functions you'd find useful using our help form.

Making it easier to grow communities on GitHub

Open source is all about building communities around shared challenges. Thanks to some subtle (and not so subtle) improvements in the past few months, it's now easier to make your first contribution, launch a new project, or grow your community on GitHub:

Contributor badges

One of the best ways to grow your community is to welcome new contributors. To make it easier to identify when a user is new to your project, maintainers now see a "first-time contributor" badge when reviewing pull requests from users that have not previously contributed to the project.

screen shot 2017-07-24 at 3 14 45 pm

Once the pull request is merged, you will see a "contributor" badge on the user's comments. In addition to being a badge of pride for contributors, the additional flag can also help maintainers better separate signal from noise in lengthy or heated discussions. This information is also exposed via the GraphQL API as the issue, pull request, or comment's authorAssociation.

Easier open source licensing

You've been able to select an open source license template for a while. Now, when you click the "add a license" button from your community profile, or begin adding a LICENSE file via the web editor, you'll be presented with a new license picker:

Open source license picker

The license picker offers a brief overview of the license as well as the full text, and allows you to customize any applicable fields before committing the file or opening a pull request.

Simpler email privacy

Joining a community and making your first contribution can be intimidating. For one, not everyone wants their personal information to be public, often inadvertently the default workflow for many Git online tutorials.

While you've been able to hide your email while performing web-based commits for a number of years, and block pushes that expose your email address more recently, now, when you check the "keep your email address private" option in your email settings, we'll also prevent your email from displaying in places like on your profile, in search results, or via the API so that you can contribute more confidently.

email privacy settings

We've also made "keep my email private" the default for new users going forward, and regardless of your email privacy settings, your email address will never be visible to logged out users.

Better blocking

Not every open source interaction is a positive one. If you navigate to a repository and someone you've blocked is a prior contributor, we'll show you a warning so that you can make an informed decision if you'd like to contribute to the project or not:

blocked prior contributor warning

In addition to repositories you own, blocked users are now no longer able to comment on issues or pull requests you author in repositories owned by organizations or other users.

We hope these improvements will help you make your first contribution, start a new project, or grow your community. If you have any questions, check out the building a strong community documentation or get in touch.

SUPPORT file support

You write software so that others can use it, but no software is perfect, and sometimes users have questions or run into trouble. To better direct users to dedicated support channels, you can now describe your project's support resources in a SUPPORT file.

SUPPORT files work just like CONTRIBUTING files. They can live in your repository root, .github/, or docs/ folder, and will be displayed throughout GitHub such as above the new issue form:

screenshot of the pre-issue SUPPORT file prompt

Instead of describing how to contribute to the project like CONTRIBUTING files do, SUPPORT files can be used to direct users to dedicated support resources, such as community forums, FAQ documents, or corporate support channels.

For more information, see the SUPPORT file documentation, and of course, you can always contact GitHub Support if you have any questions.

Manage issues and pull requests with keyword updates

Manage your repositories' incoming issues more efficiently with a few new updates: a keyword and saved reply to mark duplicate issues, along with a clearer, more informative style for keywords.

Marking an issue as a duplicate

Sometimes your users report the same bug, or your teammates share the same idea. No matter why a redundant issue was posted, you can now mark it as a duplicate of another issue.

Marking an issue as a duplicate

To flag a duplicate, add a comment using the duplicate of keyword followed by the issue number or URL. A "Marked as duplicate" timeline event will appear in the timelines of the referenced issues.

Learn more about duplicate issues

Improved keyword styling

We've updated the way keywords are displayed in issues and pull request to give you more information. Keywords like closes are highlighted, and when you hover over them, you'll see a tooltip explaining what the keyword means. For closes, you'll learn that the referenced issue will close when the pull request is merged.

Improved keyword styling

Learn more about using keywords