Effective regulation matters: Join us in the GPL Cooperation Commitment

Today, we’re excited to announce that GitHub has joined 40 other software companies in supporting the GPL Cooperation Commitment. Our hope is that this change will improve fairness and certainty for users of key projects that the developer ecosystem relies on, including Git and the Linux kernel. More broadly, the GPL Cooperation Commitment provides an example of evolving software regulation to better align with social goals, which is urgently needed as developers and policymakers grapple with the opportunities and risks of the software revolution.

What is effective regulation?

Regulations are put in place in order to achieve social goals—like reducing pollution or protecting consumers—but those goals aren’t automatically achieved. An “effective” regulation must direct behavior that will actually further intended goals and not cause too much unintended collateral damage.

But that’s not all: an effective regulation would also have an enforcement mechanism that encourages compliance rather than creates an opportunity to shake businesses down. Under effective regulation, the most severe penalties for non-compliance, like shutting down a line of business, would be reserved for repeat and intentional violators. Less serious failures to comply, or accidental non-compliance, may only result in warnings—if the violation is promptly corrected.

The current state of the GPL as private software regulation

The GNU General Public License (GPL) is a tool for a private regulator (copyright holder) to achieve a social goal: under the license, anyone who receives a covered program has the freedom to run, modify, and share that program. (In contrast, a license like MIT does not regulate what freedoms downstream recipients must be offered. Whether to regulate in this manner or not is up to the developer of a program.)

However, if the developer does want to regulate, version 2 of the GPL (GPLv2) has one bug from the perspective of an effective regulator: non-compliance results in termination of the license, with no provision for reinstatement—making the license marginally more useful to copyright “trolls” who want to force companies to pay rather than come into compliance.

In contrast, version 3 of the GPL (GPLv3) fixed this bug by introducing a “cure provision” under which a violator can usually have their license reinstated—if the violation is promptly corrected. On choosealicense.com, we recommend GPLv3 when developers want to use a regulatory license.

Still, GPLv2 has served the Linux kernel, Git, and other developer communities well since 1991, many of which are unlikely to ever switch to GPLv3, as this would require agreement from all copyright holders, and not everyone agrees with all of GPLv3’s changes. But GPLv3’s cure provision is uncontroversial: could it be backported to GPLv2 licensed projects? In a sense yes, to the extent GPLv2 copyright holders agree.

How the GPL Cooperation Commitment can help

The GPL Cooperation Commitment is a way for a copyright holder to agree to extend GPLv3’s cure provision to all GPLv2 (also LGPLv2 and LGPLv2.1, which have the same bug) licenses offered, giving violators a fair chance to come into compliance and have their licenses reinstated.

And importantly, the GPL Cooperation Commitment is an example of making regulation more effective in advancing a social good, like we discussed above. It also incorporates one of several principles (the others do not relate directly to license terms) for enforcing compliance with the GPL and other copyleft licenses as effective private regulation.

Why we support the GPL Cooperation Commitment

We’re happy to agree to the GPL Cooperation Commitment because it aligns with GitHub’s core values. Everything we build and support is grounded in empowering the people–and the community–behind the technology. We know GPLv2 will likely remain an important private software regulation for decades to come. It’s important to ensure that GPLv2 licensees have the ability to fairly correct license violations, and to support effective regulation that improves open source licensing for everyone. We also want to encourage both private and public policymakers to take similar care for effectiveness when considering regulation that will shape the future of software.

How you can get involved

You can join us in making the GPL Cooperation Commitment as a company or individual. GPLv2 projects can add the GPL Cooperation Commitment as an additional permission.

Five GitHub Field Day organizers share their playbooks for successful events

As a student trying to ship code without a community to help you, small setbacks can add up to a massive feeling of frustration, even isolation. Who can you brainstorm with? What about sharing the brilliant solution you devised, 10 pull requests later? As rewarding as contributing to open source can be, it’s also a challenge to go it alone.

GitHub Field Day, a day-long “unconference”, solves this problem by bringing together students from their local communities to connect and share experiences. This summer marked the first anniversary of GitHub Field Day, which has grown to meet the needs of communities around the world.

Gathering to solve a shared struggle

Intern (and now GitHubber) Wilhelm Klopp (Wil) created Field Day to share information across campuses and learn from mistakes, all while making friends. With an unconference, participants in each session can freely engage in discussions, collaborate, take a break, or decide to move to other sessions.

When you attend a local Field Day, the structure of the event invites you to participate as little (or as much!) as you’d like. Think of it like a “choose your own adventure” game—you control your experience, and you can suggest topics for technical discussions and activities that are timely and relevant to you. More importantly, you’ll have fun, feel welcome, and enjoy meeting other student leaders.

Field Day HQ Student leaders talk about Field Day

Snapshots from Field Day around the world

Every Field Day is different, and each one has something for us to take away to our local communities. Here’s a walkthrough to give you a sense of Field Days from each region, along with some helpful tips.

Field Day 1.0 at GitHub HQ

Sketchnotes Field Day HQ

As a Campus Expert Wil noticed a trend that every Expert reported: when a student leader experienced a problem, who did they turn to? There wasn’t an outlet for them in their local communities. This was how the idea for Field Day started, and Wil set out to launch a beta event.

Inaugural Field Day Inaugural Field Day

One of the key skills you learn as a Campus Expert is how to observe the needs of your community. The first Field Day showed that Wil was onto something—students want this kind of knowledge base, some form of face-to-face support for their shared struggle.

At the time, Field Day’s project name was “Umbrella”—an umbrella event for leaders of technical student communities. Ultimately the name evolved, but the project name still hangs on as part of the branding: the purple umbrella ☔.

First Field Day Schedule The first Field Day unconference schedule included a Pizza programming contest, teaching CS to complete beginners, creating the membership identity, inclusivity of international students, and building an API for students at university

Takeaways:

  • Reflect about what worked and didn’t work so you have a roadmap to work from for future events.
  • Take note of trends you see across proposed talks—they might be signs of what’s missing in your community.

Field Day in Los Angeles, CA

Field Day Los Angeles

Los Angeles Field Day attendees

Campus Expert Catherine Chung at the University of Southern California has a habit of noticing “what’s missing” in her on-campus community. After joining the ACM chapter, and creating an all-female hackathon for schools in her region, AthenaHacks, she saw how schools in Los Angeles could band together, share resources and distribute the work in ways that would help everyone.

In the spirit of coming together for mutual benefit, Catherine connected USC with UCLA to house Field Day Los Angeles in a larger venue. Working side-by-side to plan the event, both schools shaped it to serve their communities.

For next time, Catherine plans to seed the event with content that students want.

Something that could help add more value to the event is polling the attendees (maybe during the application form) to see what topics or issues they’d like to talk about, or pairing people up into more relevant groups for lunch. For example, it would have been interesting to pair up the ACM (Association for Computing Machinery) student leaders from all the schools in one lunch table so they could talk about collaboration or discuss things they’re working on.

Takeaways:

  • Help your community grow: 100 percent get connections from other schools to help with planning and outreach!
  • Tinker with the format: The first Field Day in SF was hosted from 8 am to 6:45 pm, which was a little long for college students to commit to during the school semester. Catherine changed LA’s event to be from 10:00 am to 4:00 pm instead.
  • Feel free to add a little more structure to the event: Catherine was unsure if people would be proactive and suggest discussion topics at the beginning of the event, so she planned a few topics beforehand. This allowed people to create and rehearse presentations prior to the event, which seemed to be pretty helpful for talks like open source and cryptocurrency.

Field Day in Montreal

Field Day Montreal

With 33 attendees, Field Day Montreal (organized by Campus Expert and former Intern kim-codes) was small enough to focus on one track for the entire day.

Student leaders opened up about their common problems: recruiting new members, the onboarding process for their organization, keeping in touch with members, and learning how to work as a team. With this agenda in mind, the discussion bloomed to offer solutions (including a poutine day for recruitment).

One interesting challenge Field Day Montreal posed was around language: how do you run a conference for student leaders in multiple languages? Perhaps offer slides in English and French, or ask for translation services from student leaders who are multilingual.

Takeaways

  • If you have trouble recruiting new members: use the school’s Association or Club Days. These are great in helping to inform new students about your event. You can also stream sessions with Twitch so that people who are unable to attend can catch up.
  • To train and retain members: try offering small projects/homework, and be clear about membership expectations and requirements.
  • Learn how to teach people to work as a team: no one learns or works the same way. Hold a scrum meetings, or change up the executive teams based on particular projects. Don’t forget to plan a team outing with your members to foster team spirit.
  • Don’t forget to keep in touch: make videos, use Facebook, or even ship a newsletter.

Field Day in Mexico City

Field Day Mexico City Speakers at Field Day in Mexico

Two of the seven Campus Experts in Mexico, Juan Pablo Flores and Fernanda Ochoa Ramirez, organized Field Day Mexico City in February 2018 for both newcomers and seasoned coders.

For Fernanda, organizing Field Day “changed my life”—she saw ways to improve efficiency, use new communication channels, and bring together 35-50 different communities who previously operated independently. The different clubs shared how to work with universities, sponsors, and the media.

Sketchnotes Mexico City

They are currently discussing where to host the next Field Day, and Juan would like to nurture communities outside of Mexico City to grow the ecosystem.

Collaboration at Mexico City

Takeaways

  • Share your pain points: With dozens of groups represented, there is a ton of expertise to draw from.
  • Identify how you can make Field Day a consistent feeling: Juan and other experts are even considering doing a meetup every two to three months to follow up on events people are doing.
  • Look beyond startups and apps: you’re more likely to see problems the community can solve. Juan is looking to diversify their events and bring real problems to solve, such as hackathons on Agrotech.

Field Day in New York City

Field Day NYC

Campus Expert Teresa Luz Miller held Field Day NYC at the offices of Major League Hacking (dubbed “MLHQ”) in Manhattan.

The NYC Field Day started with a kickoff icebreaker activity called “A Cold Wind Blows”, which is a sort of musical chairs game to help people get to know each other. The organizer structured the unconference by asking every attendee to make three post-it notes of what they needed help with—an idea she learned from Maintainerati, the unconference for open source maintainers—and then clustered related ideas together into a schedule. Each small breakout group appointed a facilitator to capture the conversation on the whiteboard, which aided in comprehension and collaboration.

Takeaways:

  • Use the whiteboard: Highlight best concepts while making it bite-sized and aesthetically pleasing.
  • Be flexible with the schedule: The more interactive an event is, the more energy it requires. Like Los Angeles, NYC also ended early because of the (wonderful) intensity of the event.

Help for your student community

GitHub Field Day has connected students from as far as London and the Midlands in the UK to Mexico City. We would love for you to join us at the next Field Day near you!

Are you a technical student leader in your community? Find a GitHub Field Day or contact your local Campus Expert.

Git LFS v2.6.0 is now available

Announcing Git LFS 2.6.0

A new version of Git LFS, the open source Git extension for versioning large files, is now available. Git LFS v2.6.0 comes with a more robust authentication mechanism, new options to git lfs checkout, a handful of bug fixes, new platforms, and more.

Download Git LFS v2.6.0

Authentication improvements

Git LFS can make two types of HTTP(s) requests: API requests (which allow the client to retrieve any metadata it might need), and storage requests (which allow the client to upload or download data to external storage).

Previously, Git LFS would determine how it should authenticate LFS API requests, then use the same method to authenticate transfer requests. However, API requests and transfer requests generally go to different places and aren’t guaranteed to require the same authentication method.

Git LFS now treats those requests as requiring different authentication and will determine the correct mode for each.

New git lfs checkout options

Git is designed to handle merge conflicts as best it can without the need for human intervention, but often it’s built-in merge facilities do not resolve conflicts correctly for large files. When that’s the case, it can be useful to compare the contents of both sides of the conflict by hand.

git lfs checkout now provides convenient options for doing just that: you can ask it to resolve “our” side of a merge, “their” side, or the merge base. Here’s an example:

$ git lfs checkout --ours --to=conflict.psd.ours -- conflict.psd 
$ git lfs checkout --theirs --to=conflict.psd.theirs -- conflict.psd 
$ git lfs checkout --base --to=conflict.psd.base -- conflict.psd 
$ ls -la
-rw-r--r--@  1 user  group   16789 Oct 22 18:59 conflict.psd.base
-rw-r--r--@  1 user  group   19810 Oct 22 18:59 conflict.psd.ours
-rw-r--r--@  1 user  group   18303 Oct 22 18:59 conflict.psd.theirs

From here, you can open each side of the conflict and resolve the differences however you see fit.

And all of the rest

You’ll see a handful of other new features and bug fixes in v2.6.0 like new release targets including arm64, enhanced support for more configuration options from Git, and more.

For instructions on configuring Git LFS, read the documentation.

Suggested changes—what we've learned so far

Two weeks ago we released suggested changes, a feature that allows you to suggest changes to code in a pull request. Once changes are suggested, the author or assignees can accept (and commit) suggestions with the click of a button.

Before

A code review comment before suggested changes

After

A code review comment with a suggested change

Since its release, more than 10 percent of all reviewers suggested at least one change, totaling over 100,000 suggestions—and nearly four percent of all review comments created included a suggestion. Based on these early numbers, we see you’re quick to adopt suggested changes and make them a natural part of your code review workflow.

Between the number of suggestions created and the feedback we received from over 2,500 people who have used the feature, you’ve helped us understand what we can improve moving forward.

By far the most frequent requests were:

  1. The ability to suggest changes to multiple lines at once.
  2. The ability to accept multiple changes in a single commit.

We want to make suggested changes the best feature it can possibly be. Your feedback is valuable and will inform our next steps. Until then, we encourage you to try out suggested changes and tell us what you think.

Game Off 2018 theme announcement

GitHub Game Off 2018

Game Off is our annual month-long game jam (hackathon for building games). This year’s theme is HYBRID.

You’re welcome to interpret the theme however you wish, but if you need some ideas to kickstart your creativity, think about how your game could:

How to participate

Participate by yourself or as a team. Multiple submissions are welcome, and of course, the use of open source software is encouraged.

Voting

Shortly after the jam ends, voting will be open to everyone who has submitted a game. Don’t worry—there will be plenty of time to play and vote on the entries. As always, we’ll highlight some of our favorites on the GitHub Blog, and the world will get to enjoy (and maybe even contribute to or learn from) your creations.

It’s dangerous to go alone

If you’re new to Git, GitHub, or version control

Don’t worry, we have several resources for you, from how to use Git to all things GitHub. You’ll “Git” it in no time.

  • Git Documentation: everything you need to know about version control and how to get started with Git
  • GitHub Help: everything you need to know about GitHub

More questions about GitHub? Contact our Support Team. They’d be happy to help.

Did you know? You don’t have to use Git on the command line. You can use GitHub Desktop (our client for macOS and Windows), or bring Git and GitHub to your favorite editors:

If you’re new to itch.io or game development

The itch.io community feature is enabled for this jam—it’s a great place to ask Game Off-specific questions, share tips, and more.

With so many free, open source game engines and tutorials available online, there’s never been an easier (or more exciting!) time to try out game development.

Are you…

  • Into JavaScript? You might be interested in Phaser.
  • Comfortable with Python, C++ or C#? Godot might be a good match for you.
  • Proficient with Python? Check out Pygame.
  • Dangerous with Java? Take a look at libGDX.
  • In love with Lua? Check out LÖVE or Defold. Like retro games too? Drop everything and check out LIKO-12!

Do you really like retro games? Maybe you can…

The official Twitter hashtag for the Game Off is #GitHubGameOff. We can’t wait to see what you build.

Octocat pixel art animation

Changelog

Subscribe

Discover new ways to build better

Try Marketplace apps free for 14 days

Learn more