Displaying posts by Will Hawkins
Looking Back on Homebrew’s First Year with Conservancy
byon February 2, 2017
This series covers new developments and exciting projects taken on by Conservancy member projects. To learn more about Conservancy member projects, or the non-profit infrastructure support and services offered by Conservancy, check out Conservancy’s Projects page. Please support Conservancy so we can continue to help all this important software.
There’s an app for that.
Need a way to download and save that cute cat video from YouTube so you can watch it offline? There’s an app for that. Want to collaborate with others using GitHub? There’s an app for that, too. But neither are in the App Store. Every day, hundreds of thousands of Mac users turn to Homebrew to download one of more than 3,000 useful software packages for their desktops and laptops that Apple does not include in its operating system and can’t be found in the App Store.
Since Max Howell began Homebrew in 2009 with the goal of creating an efficient package manager, over 6,000 people have contributed to the project. Max built the package manager to rely on software and libraries that come preinstalled in OS X and chose to limit support to recent versions of the Mac operating system so that the packages could be optimized as much as possible. Max delivered an early implementation and shepherded the project through 2013.
Mike McQuaid started contributing to Homebrew because he was an avid user. After employing Homebrew to outfit his work laptop with vital FLOSS software, he saw that there were ways that Homebrew could be improved. Mike rose from occasional contributor to maintainer to eventually become the project’s lead maintainer. Mike coordinates the technical aspects of the project, manages the vibrant community of volunteer contributors to the project and serves as Homebrew’s primary liaison with the Software Freedom Conservancy.
Software Freedom Conservancy recognized Homebrew’s technical and social successes and invited them to join as a member project in 2016. Software Freedom Conservancy was excited that they accepted the invitation and is proud to support them.
Mike was kind enough to spend some time answering questions about the project’s past success and its future goals.
We began the interview talking about the importance of having Homebrew join Software Freedom Conservancy. “I’ve been a fan of Software Freedom Conservancy for a long time thanks to using several of their member projects. Bringing Homebrew into Conservancy helps provide long-term security to the trickier financial and community aspects of Homebrew.” For example, Mike has been worried about the contingency plan for Homebrew so that its existence could outlive any single individual. Software Freedom Conservancy provides legal, fundraising and organizational support to this end.
On the technical merits, Mike described Homebrew’s cutting-edge architecture, implementation, and development practices. Every application available through Homebrew is described by a Formula. Each Formula is Ruby code and the process of adding and modifying Formulae is coordinated with Git. If a contributor wants to add a package for other Homebrew users to download and install, they can simply write a Ruby script and send a pull request to one of Homebrew’s maintainers.
Mike said that thanks to using Ruby and Git for describing Formulae and facilitating code changes, respectively, new contributors can make an immediate, positive impact on Homebrew. Using a popular language like Ruby and building a smooth workflow based on Git makes it easy for Homebrew maintainers and contributors to keep all of its Formulae up to date. Every day new features are added, bugs are patched and security vulnerabilities closed in Homebrew packages. If the process for updating Formulae was not as well designed as it is, Homebrew’s users could be stuck with outdated and insecure software.
The Homebrew community has spent significant time and energy building and implementing a continuous integration system. Continuous integration is a software development practice to test software for bugs every time new code is added. Every update to a Formula involves a modification to Homebrew’s code. Having an automated system to check Homebrew’s code every time a package is updated or added gives Homebrew’s developers assurance that the software is always ready for end users.
While Homebrew benefits from using the latest and greatest tools and techniques of FLOSS software development, it’s the active and vibrant community that really drives progress. Community is a very important part of Homebrew but such a positive, supportive, diverse community does not just happen. It takes leadership and Mike takes that role seriously.
In our interview, Mike talked extensively about the project’s commitment to community. Under his leadership, the project has established a code of conduct for its participants and created policies to encourage users to become committers, contributors to become maintainers and maintainers to become project leaders. Mike helped Homebrew create its code of conduct early on because he knew it would help create a more diverse community. While the code of conduct can be used as a tool to remove the rare disruptive member, it serves mostly to make explicit the community’s expectation that its members are to be respectful and welcoming to everyone who wants to join. “Homebrew is probably a little more diverse than your average open source project but it’s still woefully unrepresentative of society as a whole,” Mike said. “Homebrew has chosen to be proactive about diversity because studies have shown diversity makes better software and we don’t want anyone to feel alienated or excluded from our community based on who they are.”
This year Homebrew participated in the Outreachy internship program. Mike and the Homebrew team mentored Andrea Kao who worked on Homebrew’s continuous integration and testing system. Andrea said about her experience, “… [T]he Homebrew maintainer-mentors have all been so incredibly generous, encouraging, kind, and helpful to me over the past couple weeks and months. I’m so thankful for this generosity and for nabbing the Outreachy internship. In the space of two months, I’ve become an active member of several wonderful, worldwide communities—the community of Homebrew contributors, the Outreachy community, and the wider open-source software community.”
The project’s technical implementation and architecture and its commitment to building a positive, active community around Homebrew are evident from the number of its users and participants and the way they talk about the project. It is regularly among the top projects on GitHub. When version 1.0 was announced, a user commented, “[Homebrew is] great because the community is so vibrant, the user experience is so well thought out… it’s actually both a GitHub and Ruby showcase.”
Mike finished our interview by describing the project’s goals for 2017. The first goal is to improve support for installation of specific legacy versions of applications. There are many reasons why a user might need an older version of a package—to satisfy a dependency or to use a feature that no longer exists, for example.
The second goal is to improve Homebrew’s continuous integration system. As described earlier, having a continuous integration system is vital for a project like Homebrew whose code changes on a regular basis. Right now the system checks new code to make sure that it compiles. That’s a good start. However, new code could introduce bugs that are only evident when the software is run. In 2017, Homebrew will expand its continuous integration to test runtime functionality.
Conservancy is proud to have Homebrew as a member project and is excited to see what the future brings for the FLOSS package manager, its users and its community.
New CPUs, GPUs, and faster migrations: QEMU looks forward to 2017
byon December 27, 2016
This series covers new developments and exciting projects taken on by Conservancy member projects. To learn more about Conservancy member projects, or the non-profit infrastructure support and services offered by the Conservancy, check out Conservancy’s Projects page. Please support Conservancy so we can continue to help all this important software.
The cloud—the great modern technology buzzword. Even those who don’t think of themselves as technical users have heard the phrase and perhaps even benefited from it. Though there are many proprietary cloud providers, OpenStack is the most popular FLOSS cloud software platform, powering massive web sites like Overstock.com and PayPal. What you might not know is that Conservancy member project QEMU is at the heart of OpenStack, and the project is proud to support them.
QEMU is a FLOSS project that makes it possible to emulate one hardware platform on another hardware platform and/or run multiple virtual machines (VMs) on a single physical machine. QEMU is just one of the many great FLOSS communities that Conservancy supports and I was lucky enough to be able to interview several of QEMU’s main contributors to ask them about their project, its future, and how Conservancy supporters have helped them succeed! In my interview with Stefan Hajnoczi, one of several QEMU subsystem maintainers and a contributor to the project since 2010, he said that the project benefits from Conservancy’s infrastructure, legal and community support.
An important moment in the life of any FLOSS project is when it adopts a structure that can outlast any single individual. Stefan says that Conservancy has helped QEMU make that trasition. Conservancy provides the infrastructure for holding domain names, hosting the project’s website, handling the project’s finances and accepting tax-free donations.
Conservancy also helps QEMU when the rare legal issue arises. “It’s difficult for any open source project that doesn’t have lots of funds to get legal clarity,” says Mr. Hajnoczi, and QEMU’s many different uses make legal clarity particularly important for the project.
QEMU is a widely used project and accepts contributions from a variety of sources, from corporate developers to hobbyists. Corporate and FLOSS projects of all kinds integrate and modify QEMU because its utility and flexibility make it a great foundation on which to build solutions for their end users’ problems. This means that QEMU is often mixed with software distributed under several different licenses. Because so many end users benefit from QEMU’s integration in these solutions, there are plenty of people who can report potential license violations that QEMU and Conservancy work together to resolve.
Although it’s already an invaluable resource in the corporate world, in other FLOSS communities and for many end users, the QEMU project is not slowing down! 2017 is shaping up to be a very productive year for QEMU and it could not sustain its growth without support for the user and developer community by Conservancy.
In 2017, QEMU will advance their support for the ARM and RISC-V architectures. Full support for these architectures is vital. The heart of almost every mobile phone is an ARM processor, and the chip is even starting to be used in datacenter servers because of its power efficiency. RISC-V is a completely open architecture specification developed by a consortium whose members include Google, Microsoft, Nvidia, IBM, and HP Enterprises, among others. The goal is to develop RISC-V to work in a variety of contexts, from high-performance computing to computer science and engineering education.
In 2017 QEMU also plans improvements in the software’s ability to move running systems between different computers without pausing execution, called live migration. QEMU has supported live migration since 2010 but plans on expanding support for this feature in the new year. This work will make it possible for administrators to immediately shift a VM to another physical machine without having to wait for the VM’s utilization to reach a certain level, a limitation that exists today.
Finally, 2017 will also bring new support for QEMU’s ability to virtualize graphics processing units (GPUs). These days many artificial intelligence and machine learning software tools are being written to take advantage of GPUs. Virtualizing those resources in the way that QEMU already virtualizes a CPU, hard drive or network card would reduce the total amount physical resources required for GPU-intensive applications by sharing the resources efficiently.
These advances are all driven by QEMU’s community of developers and users. Conservancy helps QEMU foster that community by providing hardware and software resources for Internet hosting and facilitating the nuts and bolts of its participation in Google Summer of Code and Outreachy. The work from developers mentored through those projects has pushed QEMU into new areas. Conservancy has worked with QEMU to make it as easy as possible for both mentors and mentees to work together productively.
Since its founding in 2004, QEMU has made a huge technical and social impact thanks to its role in facilitating cloud deployments. Its incredible success so far is only overshadowed by its future. Conservancy looks forward to continuing to work with QEMU as it expands and grows in 2017 and beyond.