你知道Apache 软件基金会如何选择开源项目吗

news2024/11/24 18:28:39

Apache软件基金会(Apache Software Foundation,简称ASF)是一个致力于开源软件发展的慈善组织,因其广泛的项目和开放的治理模式而备受社区赞誉。作为全球最大的开源基金会之一,ASF如何选择开源项目成为人们关注的焦点。在本文中,我们将探讨ASF选择开源项目的流程、标准和价值观,以及这些决策对开源社区和行业的影响。

741172d9aefd43a36e4c0c5274925af2.jpeg

作为ASF的长期志愿者、导师和董事会成员,我非常自豪能够分享有关ASF运营流程和价值观的独特见解。ASF以开源Apache许可证为核心,采用开放实用的方式运作,与其他许多基金会不同,ASF是一个为公共利益而设立的慈善组织。本文将进一步探讨ASF如何选择项目、现有开源许可证的情况以及对ASF未来的展望。

在ASF内部,选择项目的过程始于Apache孵化器(Apache Incubator),潜在项目通过接受帮助和指导,希望最终成为顶级Apache项目。任何人都可以向孵化器提交项目提案,并寻求ASF内部人员的支持。在审查潜在项目时,ASF更倾向于看到涉及的个人和实体具有多样性,而不仅仅是单一的法人团体。我们发现,这种广泛的多样性将使项目得到更广泛的使用并具备更长久的生命力。

f9d04b4365408d379abd87be8659f0d0.jpeg

孵化器的主要目标是帮助项目学习并按照我们所说的Apache之道(The Apache Way)运作。这是一套为社区主导的开发提供最佳实践的价值观。Apache之道的核心包括严格的供应商中立性,将社区置于优先位置,甚至高于项目代码本身。开放和透明的沟通也至关重要:ASF要求所有项目的交流都是公开可访问的,并进行永久归档以支持异步协作。此外,所有被接受的项目都附带开源的Apache许可证,确保所有源代码都是公开可用的。

在孵化器中,我们首先检查项目与Apache价值观的一致性,尽管并不需要完全一致,但项目需要愿意适应这些价值观。此外,我们还从许可证的角度讨论,以确保项目与Apache完全兼容,在某些情况下,我们可能会删除或替换依赖项。Apache之道的目标是朝着构建自我维持社区的方向前进。然而,对于某些项目来说,建立社区可能很困难,有些项目无法通过孵化器阶段。

e6a483fc77571159ab5f6163076f0ff7.jpeg

共识决策是Apache之道中蓬勃发展社区的另一个关键因素。根据他们的经验,开放讨论和避免单个项目负责人掌控整个流程非常重要。我们曾经遇到过一些试图保持控制权的强势个人,在这些项目中,由于这个原因,它们没有取得成功。开源项目有很多种形式。然而,使用开源许可证并不意味着自动使项目成为开源。社区才是释放开源价值的关键,促进更大的开放和透明度。

通过严格的孵化器流程和坚守“Apache之道”的价值观,ASF不仅选择了众多成功的开源项目,并在技术领域帮助塑造了一个供应商中立、开放透明的环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/766190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring方式发送邮箱

1.导入依赖 <!--邮件发送依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency> 2.导入工具类 package com.example.demo.demo;import org.springfram…

LED驱动(总线设备架构)——STM32MP157

文章目录 概述总线设备驱动总线设备驱动模型程序步骤&#xff1a;常用函数注册/ 反注册获得资源 LED 模板驱动程序的改造&#xff1a;总线设备驱动模型board_A_led.cchip_demo_gpio.cled_opr.hled_resource.hleddrv.cleddrv.hledtest.cMakefile编译测试 概述 为什么要引入总线设…

Maven 继承、聚合、属性

文章目录 一、继承1.1. 概念1.2. 语法1.3. 示例1.4. 其他常见使用 二、聚合2.1. 概念2.2. 示例 三、属性3.1. Java 系统属性3.2.系统环境变量属性3.3.Maven 内置属性 一、继承 1.1. 概念 当项目较大&#xff0c;为了便于开发和管理&#xff0c;经常需要将工程划分成多个 Maven…

【性能测试入门必看】性能测试流程简介

性能测试流程介绍&#xff1a; 一、性能测试流程&#xff08;一&#xff09;——问清性能测试需求 1、新系统能力验证 2、明确客户需求 3、找出系统性能瓶颈 4、稳定性验证&#xff08;强度测试&#xff09; 二、性能测试流程&#xff08;二&#xff09;——了解系统结构…

为什么C++支持函数重载

C语言中我们知道创建的函数是不能同名的&#xff0c;但是在C中却是可以的&#xff0c;这就是C中的函数重载&#xff0c;而函数重载有三种&#xff1a;函数参数类型不同、参数的数量不同、参数的顺序不同。所以就先浅浅的了解一下函数重载&#xff1a; 函数重载 参数类型不同 …

数据管道模型:场外流式数据市场形态探索

数据管道模型&#xff1a;场外流式数据市场形态探索 任洪润1,2, 朱扬勇1,2 1 复旦大学计算机科学技术学院&#xff0c;上海 200438 2上海市数据科学重点实验室&#xff0c;上海 200438 摘要&#xff1a;当前数据要素市场建设探索主要集中在数据交易场所&#xff08;场内&#x…

ubuntu18.04配置python虚拟环境

安装virtualenv 在机器上使用pip安装virtualenv pip install virtualenv创建虚拟环境 cd 到一个目录中创建虚拟环境 virtualenv 虚拟环境名 如 virtualenv venv 激活虚拟环境 在虚拟环境路径中执行source 加载activate source bin/activate结果如下&#xff1a;

【基于 GitLab 的 CI/CD 实践】02、gitlab-runner 实践

目录 一、gitlab-runner 简介 1.1 要求 1.2 特点 二、GitLab Runner 安装 2.1 使用 GItLab 官方仓库安装 2.2 使用 deb/rpm 软件包 2.3 在容器中运行 GitLab Runner 三、GitLab Runner 注册 3.1 GitLabRunner 类型 3.2 获取 runner token 获取 shared 类型 runner t…

Linux驱动之从点LED灯开始

目录 一、环境 二、Linux 下 LED 灯驱动原理 2.1 地址映射 2.2 I/O 内存访问函数 三、硬件原理图分析 四、实验程序编写 4.1驱动程序编写 4.2测试APP编写 五、编译驱动程序和测试 APP 5.1 编译驱动程序 5.2 编译测试 APP 六、测试 本期的内容到这就结束了&#xff…

Ubuntu下的rdate命令

介绍 用途&#xff1a;rdate命令的用途是从远程服务器上同步时间并设置到本地。 安装rdate 执行命令sudo apt install rdate进行安装&#xff1a; 查看rdate命令的帮助信息 执行命令man rdate&#xff0c;可以查看rdate的帮助信息&#xff1a; 示例 从远程服务器上同…

基于opencv对高空拍摄视频消抖处理

一、问题背景 无人机在拍摄视频时&#xff0c;由于风向等影响因素&#xff0c;不可避免会出现位移和旋转&#xff0c;导致拍摄出的画面存在平移和旋转的帧间变换&#xff0c; 即“抖动” 抖动会改变目标物体 (车辆、行人) 的坐标&#xff0c;给后续的检测、跟踪任务引入额外误差…

Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

文章目录 圣杯布局margin负值等高布局 圣杯布局 两边页面固定中间页面宽度随着浏览器大小自适应 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

macOS - 安装 node、npm

文章目录 关于 node安装安装 node、npm 关于 node node.js 官网 : https://nodejs.org/engithub : https://github.com/nodejs Node.js is a free, open-sourced, cross-platform JavaScript run-time environment— that lets developers write command line tools and serv…

使用QTableWidget实现录像排程操作

一、介绍 该录像排程&#xff0c;是采用继承于QTableWidget的ScheduleTableWidget类进行实现。在ScheduleTableWidget实现类中&#xff0c;去除了Table原本的横向表头和纵向表头&#xff0c;分别采用第一行和第一列构成新的表头。新的横向表头代表一天24小时&#xff0c;新的纵…

CMake基础入门

文章目录 一、一个目录下有一个源文件&#xff08;入门&#xff09;1.1 预定义的变量1.2 语法介绍cmake_minimum_requiredprojectsetmessageadd_executable 1.3 最基础的实例1.4 第一步优化&#xff1a;build目录实操流程 1.5 第二步优化&#xff1a;src目录1.5.1 实操流程1.5.…

用心做好一款堡垒机,升级版《新一代堡垒机建设指南》白皮书现已开放下载!

编者注&#xff1a;本文刊登在《新一代堡垒机建设指南》&#xff08;JumpServer v3.0发布纪念版&#xff09;序言部分&#xff0c;文章作者为JumpServer开源堡垒机项目创始人广宏伟。点击文章底部“阅读原文”链接&#xff0c;即可下载新版《新一代堡垒机建设指南》白皮书。 “…

Vue3 – 实现过渡动画

1 认识Vue的动画原理 2 动画中常见类的作用 3 animation动画实现 4 动画的常见属性设置 5 列表元素动画组实现 6 列表元素的移动动画 认识Vue的动画原理 利用transition标签和一系列的动画类来控制标签的动画效果。 transition标签的本质是帮你添加和删除动画类的。 trans…

SpringBoot整合EasyExcel实现读操作

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot整合EasyExcel实现读操作 ⏱️ 创作时间&#xff1a; 2023年…

linux中的sendmail发送邮件

Linux/UNIX 下的老牌邮件服务器。 Sendmail 作为一种免费的邮件服务器软件&#xff0c;已被广泛的应用于各种服务器中&#xff0c;它在稳定性、可移植性、及确保没有 bug 等方面具有一定的特色&#xff0c;且可以在网络中搜索到大量的使用资料。 一、邮件发送原理图 MUA&#x…

通过弹性算力支持与托管式机器学习服务,亚马逊云科技为客户提升技术竞争力

时下数字化浪潮中&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;已成为企业实现业务增长和数字化转型的重要技术&#xff0c;为企业提供了重新定义和调优业务模式的机遇。越来越多的企业希望利用人工智能技术提升竞争力&#xff0c;应对复杂的商业环境和市场挑战&…