夜天之书 #106 Apache 软件基金会如何投票选举?

近期若干开源组织进行换届选举。在此期间,拥有投票权的成员往往会热烈讨论,提名新成员候选人和治理团队的候选人。虽然讨论是容易进行的,但是实际的投票流程和运作方式,在一个成员众多的组织中,可能会有不少成员并不清楚。

本文以 Apache 软件基金会(Apache Software Foundation, ASF)为例,介绍 ASF 所采用的投票方式。

首先介绍一年一度的成员大会期间所采用的两种投票方式:单一可转让投票和简单多数投票。

单一可转让投票(Single Transferable Vote, STV)

ASF 成员大会的董事会选举采用单一可转让投票。简而言之,这意味着每位选民都只有一票有效票,但是他们可以按照自己的意愿对任意数量的候选人进行排序。如果排序的第一位候选人已经获得了足够的票数当选,或永远不可能当选,那么这张选票就会被转移到第二位候选人。

举例来说,ASF 董事会当前人数有 9 人,假设现在有 20 人竞选,由于每位选民最终只能投出一票有效票,极端情况下,选民可以只选择一位候选人:

e580069c89fbe6a115da2182c66041e8.png

Single Vote on STV

此时,在任一轮计票中,你的选票都不可能转移给其他候选人。如果你的第一位候选人在某一轮中确认无法当选,那么你的选票从这一轮开始就会被废弃。

这种选民投票策略并不常见,直觉的投票方式是在需要选举 9 人的情况下,从 20 位候选人中选出自己希望最终当选的九人,并按照期望他们当选的顺序进行排序。这也是 STV 投票方式设计的初心:尽可能不浪费选票。在首选候选人已经当选或无法当选的情况下,选票会被依序转移给其他候选人。

同时,选择不少于 9 位候选人的策略还有一个隐含的意义,即实际上是向不在你的候选名单中的候选人投出反对票。因为这种情况下,你的选票永远会投给你想反对的候选人的竞争者。而如果你选择了少于 9 位候选人,那么你的选票在无法投给你的候选人时就会被废弃。

3b6feec6532a71b8266fdad543d4cc86.png

Regular Vote on STV

上图给出了这种投票策略的一个例子。在选择了不少于 9 位候选人的情况下,未被选择的候选人和排名第 10 位及以后(图中红线以下)的候选人都会等于收到了反对票。

无需担心多选择几位候选人会影响你的首选候选人当选,因为在 STV 投票方式下,除非你的首选候选人已经当选或任一轮次都不可能当选,否则你的选票不会被转移。可以查阅以下资料了解具体投票示例或者使用在线投票工具进行模拟:

  • 维基百科:可转移单票制[1]

  • Single Transferable Vote implementation in Rust[2]

简单多数投票(Majority Vote)

ASF 成员大会的新成员选举采用简单多数投票。关于“简单多数”这个术语,有时候会有一些混淆。根据 ASF 相关定义,这里的“简单多数”是指赞成票数量超过反对票数量。

2d511284aee343b2a6f15b259f5a7803.png

New Member Vote

上图就是成员投票的入口页面,可以看到每年都会有复数新成员提名。为了简化投票的流程,选民可以点击最下方的“Bulk vote on Yes/No issues”按钮进行批量投票。

7abded6e404308f6db20ab6818c661fa.png

Bulk Vote

可以看到,在这个页面上可以对所有 Yes/No/Abstain (YNA) 投票项进行批量投票。这里的“Abstain”指弃权,跟不投票是一个效果。对于特定的议案,弃权票可能有助于达到法定投票人数,但是新成员选举没有这个要求。

ASF 日常的其他投票活动

在一年一度的成员大会之外,ASF 日常也会有一些投票活动,包括:

  • 项目 Committer 和 PMC Member 等提名选举

  • 项目版本发布投票

  • 项目重要决策投票

  • ……

甚至每一次 Code Review 的 Approval 和 Request Changes 也是投票的一环。这些投票大多遵循懒惰共识、简单多数或简单共识等投票方式,ASF 有若干文档介绍了这些投票的流程和规则:

  • Apache Voting Process[3]

  • Member Candidate Voting[4]

  • Bylaws 4.1 Admission of Members[5]

此外,孵化项目毕业和失活项目退休等治理动作,在项目本身决议之后,还需要董事会投票确认。这发生在通常每月一次的董事会会议上,由董事会成员举手投票表决。

参考资料

[1] 

维基百科:可转移单票制: https://zh.wikipedia.org/zh-cn/可转移单票制

[2] 

Single Transferable Vote implementation in Rust: https://github.com/gendx/stv-rs

[3] 

Apache Voting Process: https://www.apache.org/foundation/voting.html

[4] 

Member Candidate Voting: https://www.apache.org/foundation/governance/meetings#membervoting

[5] 

Bylaws 4.1 Admission of Members: https://www.apache.org/foundation/bylaws.html#4.1

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

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

相关文章

【蓝桥】大小写转换

1、islower()和isupper() 1.1 islower()函数 定义:用于判断一个字符是否为小写字母(即 ‘a’ 到 ‘z’) 1.2 isupper()函数 定义:用于判断一个字符是否为大写字母(即 ‘A’ 到 ‘Z’) 1.3 基础用法 #incl…

DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略

DualPipe简介 今天是DeepSeek开源周的第四天,官方开源了一种新型并行计算优化策略——DualPipe。 其实大家阅读过Deepseek-V3技术报告的同学,对这个技术并不陌生。 开源地址:https://github.com/deepseek-ai/DualPipe 核心亮点 DualPipe&…

2025.3.1面试总结

昨天面试了一家做路由器的公司,问的问题还是挺多的,比较全面,也有一定的深度,比较注重底层原理的实现。 下面是具体问题: 岗位:嵌入式软件工程师 自我介绍;项目介绍,…

React:B站评论demo,实现列表渲染、删除按钮显示和功能实现、导航栏渲染切换及高亮显示、评论区的排序

功能要求: 1、渲染评论列表 2、删除评论功能:只显示自己评论的删除按钮;点击删除按钮,删除当前评论,列表中不再显示。 3、渲染导航Tab(最新 | 最热)和其 高亮实现 4、评论排序功能实现&…

智能座舱介绍

目录 智能座舱智能座舱的核心技术组成车载信息娱乐系统(IVI)数字仪表盘与HUD(抬头显示)语音交互与AI助手多屏联动与场景化交互生物识别技术智能座舱的发展趋势沉浸式体验情感化与个性化多模态交互融合车联网(V2X)生态扩展应用场景挑战与未来硬件系统软件系统关键技术智能…

linux-docker及docker-compose相关命令

文章目录 计算机系统5G云计算LINUX Docker及docker-conpose相关命令一、Docker 常用命令1、镜像管理1.拉取镜像2.列出本地镜像3.删除镜像4.构建镜像(从 Dockerfile)5.推送镜像到仓库6.从 .tar 文件加载镜像7.将镜像保存为 .tar 文件8.搜索镜像9.查看镜像…

一文了解:部署 Deepseek 各版本的硬件要求

很多朋友在咨询关于 DeepSeek 模型部署所需硬件资源的需求,最近自己实践了一部分,部分信息是通过各渠道收集整理,so 仅供参考。 言归正转,大家都知道,DeepSeek 模型的性能在很大程度上取决于它运行的硬件。我们先看一下…

0301 leetcode - 1502.判断是否能形成等差数列、 682.棒球比赛、657.机器人能否返回原点

1502.判断是否能形成等差数列 题目 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false…

C#贪心算法

贪心算法:生活与代码中的 “最优选择大师” 在生活里,我们常常面临各种选择,都希望能做出最有利的决策。比如在超市大促销时,面对琳琅满目的商品,你总想用有限的预算买到价值最高的东西。贪心算法,就像是一…

【JAVA SE基础】抽象类和接口

目录 一、前言 二、抽象类 2.1 抽象类的概念 2.2 抽象类语法 2.3 抽象类特性 2.4 抽象类的作用 三、接口 3.1 什么是接口 3.2 语法规则 3.3 接口使用 3.4 接口特性 3.5 实现多接口 3.6 接口间的继承 四、Object类 4.1 获取对象信息( toString() &…

查找Excel包含关键字的行(の几种简单快速方法)

需求:数据在后缀为xlsx的Excel的sheet1中且量比较大,比如几十万行几百列;想查找一个关键字所在的行,比如"全网首发"; 情况①知道关键字在哪一列 情况②不确定在哪一列,很多列相似又不同,本文演…

网络运维学习笔记(DeepSeek优化版)009网工初级(HCIA-Datacom与CCNA-EI)路由理论基础与静态路由

文章目录 路由理论基础核心概念路由表六要素路由选路原则加表规则选路优先级 协议与参数常见协议号路由协议优先级对比 网络架构基础AS(autonomous system,自治系统)路由分类 静态路由(static routing)实验拓扑思科配置示例华为配置示例 典型…

为什么深度学习选择Tensor而非NumPy数组?核心优势深度解析

简短总结: 支持 GPU 加速:Tensor 提供对 GPU 的原生支持,能够有效加速计算,而 NumPy 则通常只能在 CPU 上运行。支持自动求导:深度学习模型的训练依赖于参数的优化,而 Tensor 提供了自动求导功能&#xff…

Python 绘制迷宫游戏,自带最优解路线

1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…

Qt for Android下QMessageBox背景黑色、文字点击闪烁

最近在基于Qt开发安卓应用的时候,在红米平板上默认QMessageBox出现之后,背景黑色,并且点击提示文字会出现闪烁,影响用户体验。 问题分析 1、设置QMessageBox样式,设置背景色、文字颜色,如下所示: QMessageBox {background: white;color: white; } 尝试之后,问题仍存…

基于Springboot博物馆文博资源库系统【附源码】

基于Springboot博物馆文博资源库系统 效果如下: 系统登陆页面 文物信息管理页面 流动申请页面 文物报修页面 个人信息页面 文物保修管理页面 系统主页面 文物类型页面 研究背景 随着信息技术的飞速发展,博物馆文博资源的管理与利用日益受到重视。传统…

eNSP中AR2220、AR201、AR1220、AR2240、AR3260、Router、NE40E、NE5000E、NE9000、CX路由器学习笔记

eNSP中常见华为路由器型号的接口特性详解及横向对比,重点关注接口类型、扩展能力和适用场景: 缩写解释: LPU:Line Processing Unit(线路处理单元) SPU:Service Processing Unit(业务…

【考试大纲】初级信息系统运行管理员考试大纲

目录 引言一、考试要求1、 考试说明2、 考试要求3、 本考试设置的科目包括:二、考试范围考试科目1:信息系统基础知识(初级)考试科目2:信息系统运行管理(应用技术)引言 最新的信息系统运行管理员考试大纲出版于 2018 年 9 月,本考试大纲基于此版本整理。 一、考试要求…

基于单片机的智能扫地机器人

1 电路设计 1.1 电源电路 本电源采用两块LM7805作为稳压电源,一块为控制电路和传感器电路供电,另一块单独为电机供电。分开供电这样做的好处,有利于减小干扰,提高系统稳定性。 LM7805是常用的三端稳压器件,顾名思义0…

传输层协议TCP

TCP全称为 传输控制协议(Transmission Control Protocol),就是要对数据的传输进行一个详细的控制。 TCP协议段格式 源端口:发送方的端口号,用来标识发送端的应用程序或进程。 目标端口:接收方的端口号,用来标识接收端…