How to Successfully Change Your Open Source Project's License
Introduction
Changing the license of an open source project is a significant legal and community undertaking that requires careful planning. The PHP project recently demonstrated this process by transitioning from its own PHP License to the three-clause BSD license. This guide provides a step-by-step approach based on that experience, helping project maintainers navigate the complexities of relicensing.

What You Need
- List of all original project members (or copyright holders) who hold authority over the current license
- Legal counsel experienced in open source licensing
- Contact information for any corporate sponsors or successors to original copyright holders
- A formal proposal (RFC) for the new license
- A communication platform for community discussion (e.g., mailing list, forum)
- A voting mechanism (e.g., consensus, majority vote)
- Patience and time – expect several months for the full process
Step-by-Step Guide
Step 1: Determine the Current License and Governing Authority
Identify exactly who has the legal authority to change the license. In the PHP project, the PHP License explicitly gave the PHP Group the authority to amend it. Verify your project's governing documents, foundation bylaws, or contributor agreements to understand the chain of consent needed.
Step 2: Draft a Formal Proposal (RFC)
Write a detailed Request for Comments (RFC) that explains the reasons for the license change, presents the text of the new license, and outlines any implications for contributors and users. The RFC should be clear, transparent, and open to public comment.
Step 3: Hire Legal Counsel
Engage an attorney with expertise in open source licensing. They will review your proposal, advise on legal risks, and help handle any questions that arise during the discussion period. The PHP project hired an attorney to ensure compliance and avoid pitfalls.
Step 4: Obtain Written Consent from All Original Copyright Holders
Track down each original member of the governing body (e.g., the PHP Group) and secure their written approval. If the project includes code owned by a company (like Zend Engine owned by Zend Technologies), you must also get formal sign-off from the corporate successor. For PHP, Perforce Software, the successor to Zend Technologies, provided a formal letter confirming their authority and support.
Step 5: Announce and Open a Community Discussion Period
Set a fixed discussion period – the PHP project allowed six months for community feedback. Use your mailing list, forum, or other channels to invite questions and concerns. Address all issues transparently to build consensus.
Step 6: Hold a Formal Vote
After the discussion period ends, conduct a vote among those with authority (e.g., the PHP Group). The PHP vote passed unanimously. Ensure your voting process is documented and auditable. Even if a unanimous vote is ideal, define a minimum threshold (e.g., supermajority) in your governance rules.
Step 7: Implement the Change
Once approved, update all source files, documentation, and project assets to reflect the new license. Replace old license headers with the new one (e.g., three-clause BSD license). Communicate the change widely to users and downstream projects.
Tips for a Smooth Transition
- Plan for a long timeline. Legal consents and community discussions can take months; do not rush.
- Document everything in writing – consent emails, legal opinions, meeting minutes.
- Communicate openly with the community throughout to avoid resentment or confusion.
- Consider downstream impact – how will the new license affect dependencies and derivative works?
- Test the new license with your distributors or packagers before full rollout.
- Celebrate the milestone – a successful license change is a significant achievement for project governance.
For a real‑world example, see the LWN article covering the PHP license change.
Related Articles
- Flutter and Dart 2026 Roadmap: AI-Driven App Architecture, Impeller Migration, and Full-Stack Expansion Unveiled
- Transitioning an Open Source License: Lessons from the PHP Project's Move to BSD
- Gowanus Canal's $4 Billion Rebirth: Superfund Site Unveils Stunning Waterfront Parks Amid Pollution Cleanup
- Automating Documentation Testing for Open-Source Projects: A Step-by-Step Guide Using AI Agents
- How to Build an AI-Powered Emoji List Generator with GitHub Copilot CLI
- Embrace Renewal: Free April 2026 Desktop Wallpapers by Creative Communities
- Flutter 3.41: A Milestone in Community-Driven Development
- Git 2.54 Launches Experimental 'git history' for Streamlined Commit Editing