The GitHub Blog 08月14日
From private to public: How a United Nations organization open sourced its tech in four steps
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了联合国ITU电信发展局(BDT)如何通过与GitHub合作,成功将其技术从私有、封闭的Azure DevOps环境迁移到一个开放、协作的开源社区。该过程历时六个月,通过一系列研讨会和指导,BDT团队不仅提升了软件开发和文档发布的能力,还掌握了选择开源许可证、管理贡献以及确保代码库安全等关键技能。文章强调了开源对于预算有限的非营利组织的重要性,并分享了研究、代码公开、许可选择和社区参与等四个核心步骤,旨在帮助其他组织实现类似转型,扩大技术影响力并吸引全球开发者参与。

🌐 明确开源目标与研究借鉴:ITU BDT与GitHub合作,旨在将内部开发的专有技术转化为开放源代码,以赋能全球合作伙伴并促进社区贡献。项目初期,团队深入研究了国内外优秀的开源项目,学习其README文件的撰写、社区运营模式、贡献指南等,为自身的开源转型奠定基础,并以Ersilia和Terraform等项目为例进行学习。

💡 优化代码与公开策略:在代码层面,团队细致梳理了哪些部分可以公开,哪些需要进行脱敏处理,例如移除敏感信息、替换不兼容的许可证内容,并创建清晰的数据格式指南。同时,他们重点关注了如何吸引贡献者,包括明确贡献的价值、提供清晰的“入门指南”和“贡献指南”(CONTRIBUTING.md),以及确保代码质量的自动化测试和代码检查流程。

⚖️ 合理选择开源许可证:文章强调了选择合适的开源许可证对于项目合法使用的重要性。ITU BDT经过评估,最终选择了BSD-2许可证,这是一种允许自由重分发源代码和二进制文件的许可,但要求在重分发时必须包含归属声明,既提供了灵活性,又确保了清晰的责任归属,并且考虑了与项目依赖库的兼容性。

🤝 积极参与与建设开源社区:为了吸引开发者参与,团队将一些易于解决的“小痛点”转化为GitHub issue,并打上“good first issue”标签,为新加入者提供低门槛的贡献机会。通过这些实践,BDT不仅提升了自身在开源领域的专业能力,也为未来持续开源更多产品、吸引更广泛的开发者社群打下了坚实基础。

Helping teams discover smarter ways to use their technology, watching them get excited about fresh approaches, and seeing siloed projects evolve into open, collaborative communities — it’s a process that never gets old. So when the chance came to work with the ITU Telecommunication Development Bureau (BDT) — the development arm of the United Nations agency specializing in digital technologies — I jumped at the opportunity to join a GitHub Skills-Based Volunteering project to help them out.

The plan was simple: Lead a six-month workshop with developers, maintainers, and key stakeholders to support their transition from a closed, Azure DevOps environment, managed solely by their internal team, to an open source community that would be accessible to global partners.

The goal was to empower others to build on their technology and to create opportunities for partners and the wider community to contribute back.

For UN organizations and nonprofits especially, the benefits of open sourcing can be significant. These groups often operate with limited budgets and small teams, so tapping into the open source ecosystem allows them to scale their impact far beyond internal capacity.

After six months of demos, presentations, workshops, and feedback sessions, BDT successfully expanded its expertise in open-sourcing software products by reviewing best practices for developing and publishing software documentation, including guidelines on contributing to software projects. They also gained expertise in selecting appropriate licenses and creating the necessary supporting documentation. Additionally, they acquired skills in managing contributions, ensuring repository security, and received valuable advice on various aspects of open-sourcing software.  If you’re looking to make a similar transition, here’s how we went about the journey from start to finish.

1. We did our research.

We looked at open source repositories we liked (and didn’t like) and figured out what learnings we wanted to incorporate into our own.

When someone lands on your repository, they should be able to very quickly check out your README and know what your need is and why they should get involved. Show off what the benefits are to them and the greater community. Explore how they build their issues, how their communities operate, what their guidelines are. Pretend you want to contribute to their project: what did you struggle with and how could you improve upon it?

I went through a lot of different repositories with the team — from ones that were brand new to ones that were very mature — and this gave them an idea of the wide spectrum of what’s out there. If you’re not sure where to start, a couple of favorites for inspiration include Ersilia and Terraform, which are also good examples of really vibrant and involved communities.

2. We refined our open and public mindset to apply it in the software domain.

We examined the code and applied our learnings.

Now that you’ve been inspired by other repositories, it’s time to tackle your own. First, you’ll need to dig into your code and decide what can be turned public and what needs to be scrubbed. You can keep sensitive information private by sanitizing internal references, removing or replacing what is commercially or incompatibly licensed, and creating sample data where needed. When you do use sample data, it’s important to also include a guide on how the data should be formatted so that people can easily input their own.

Once you’ve clearly identified what information is safe to make public, it’s time to put your research into action. GitHub offers some excellent guides to help you get started, but as you shape your project, make sure you’re addressing these key questions: Why should someone want to contribute? Is there a clear onboarding guide they can follow? What workflows and processes are in place to support their success?

Be sure to include these two pieces of documentation:

As you’re putting together your processes and workflows, one thing to not forget is the need for automated tests. When you start having external developers contribute, you need to ensure code quality; that’s where testing and linting comes in. I recommend this guide on continuous integration to get you started.

3. We figured out our licensing.

If you don’t select an open source license for your project, other people can’t legally use it! One of the best resources for figuring out which open source license to choose is the aptly named choosealicense.com. Some open source licenses put almost no obligations on users (e.g. the CC0 license), while others require giving attribution (e.g. Apache 2.0, BSD or MIT licenses) or sharing of source code (e.g. GPL or AGPL licenses).

You’ll want to think through whether your chosen license is compatible with the licenses of all the dependencies in your project, and make sure it helps the open source community utilize your project as well. For example, if you envision your project being embedded in other people’s projects, this will impact what kind of license you choose.

What was best for ITU? The team ultimately settled for BSD-2, as they were looking for a permissive license that would also be very clear that redistribution of the source code and binary must come with attribution.

4. We started engaging with the open source community.

To get contributors in the door, think about any “small papercuts” your project may have. Set these up as easy wins that allow a contributor to jump in quickly and get familiar with the code base. These can each be turned into a GitHub issue and tagged with good first issue, which helps developers who are new to open source or just new to a repository identify the projects that are ideal for newcomers.

Take this with you

BDT collaborated with GitHub to explore how best to open-source its software products. Recognizing the opportunity that open source presents to enhance global access, inclusiveness, and collaboration, the team aimed to make software tools more widely available and engage a broader community of developers. Through this collaboration, the team received guidance on aligning their repositories with open-source best practices and participated in practical sessions to learn how to manage contributions and collaborate with external developers. This structured approach helped establish a strong foundation for open-source engagement. Building on this progress, the ITU team is committed to open-sourcing additional software products and is now better equipped to continue this work with clarity and confidence.

Going from private to public can be daunting, but by taking it one step at a time, you can shift your way of thinking and see your project grow.

Get involved

Looking for ways to give back to open source projects? Check out For Good First Issue, a repository of social impact and open source projects where you can lend your skills. From fighting climate change to solving world hunger, your efforts will contribute to creating a better future for everyone. Together, we can drive positive and lasting contributions to the world, one commit at a time.

The post From private to public: How a United Nations organization open sourced its tech in four steps appeared first on The GitHub Blog.

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

开源 GitHub ITU 技术转型 社区协作
相关文章