Apache STeVe 介绍与选型指南

Apache STeVe 社区投票治理工具介绍与选型指南:官方未发布正式版本的如实信息基准、STV 与 Meek 计票核心概念、v3 开发线功能特性、快速上手与 Helios/CIVS/OpaVote 对比

Apache STeVeApache STeVe2026/10/18

Apache STeVe 介绍与选型指南

一、信息基准

本篇信息采集与核验日期为 2026-10-18,全部信息取自 Apache 官方渠道。需要特别说明:Apache STeVe 官方下载页明确声明"Apache STeVe has not published an official release yet"(尚未发布任何官方正式版本),因此本篇标题不带版本号,正文以"组件-状态基准表"形式逐项列明信息基准,本篇不包含任何本地安装与运行实测内容。

组件/维度信息基准依据来源
官方正式版本无(官方未发布任何正式发行版本)steve.apache.org/downloads/
当前开发版本线v3(Python 应用,SQLite 存储)steve.apache.org 首页与文档
仓库标签v2 标签存在,releases.atom 记录时间 2026-03-09;仓库快照非官方 ASF 发行物github.com/apache/steve/releases.atom
项目状态ASF 顶级项目,未退役projects.apache.org 项目 DOAP(name: Apache STeVe,shortdesc: STV Voting Tools,retired: 否)
开源许可Apache License 2.0steve.apache.org DOAP
编程语言Perl、Python(DOAP 记录);当前 v3 开发线为 Python + SQLiteprojects.apache.org DOAP;steve.apache.org
社区规模GitHub 约 27 stars(2026-10-18 查询),活跃度极低GitHub 官方仓库页

官方来源清单:

来源地址用途
官网首页https://steve.apache.org/项目定位、能力介绍
下载页https://steve.apache.org/downloads/版本状态声明、源码获取方式
文档https://steve.apache.org/docs/v3 应用与计票工具使用说明
社区页https://steve.apache.org/community/邮件列表等参与渠道
GitHub 仓库https://github.com/apache/steve源码、issues、stars
ASF 项目 DOAPhttps://projects.apache.org/json/projects/steve.json项目状态交叉核验

二、软件概述

本文介绍的是 Apache STeVe(截至 2026-10-18 无官方正式发布版本,当前开发版本线为 v3)。Apache STeVe 是 Apache 软件基金会的社区投票治理工具集,官网口号是"Community decisions. Counted together."——把开源工具带入社区选举,覆盖从选民投票到单记名可转移投票(STV,Single Transferable Vote)计票的完整流程。STeVe 源自 ASF 用以选举董事会(Board of Directors)的投票系统,后在 Apache 体系内独立成项目并公开开发。

官网将当前能力划分为两块:其一是 v3 投票应用,一个带 SQLite 存储的 Python Web 应用,用于管理选举、议题与选票;其二是 STV 计票与 what-if 推演工具,基于共享的 Meek STV 计票引擎,可对已结束选举的选票重新计票并探索不同席位数、不同候选人组合下的结果变化。

必须如实指出:该项目社区活跃度极低(GitHub 约 27 stars,无官方正式发行版本),成熟度与投入度都无法与 ASF 内主流大数据类项目相比,本篇在选型结论中会给出相应保守建议。

三、核心概念

3.1 STV 单记名可转移投票

STV 是一种按排名投票的比例代表制计票方法:选民按偏好对候选人排序,通过多轮分配与转移(含剩余票值转移)把选票归集到当选者身上。STeVe 的核心就是围绕 STV 的投票与计票流程,同时支持 yes/no/abstain(赞成/反对/弃权)投票方式。

3.2 Meek 计票引擎

官网多次提到"共享的 Meek STV 引擎":Meek 是 STV 的一种计票变体,以更精细的剩余票值再分配著称。STeVe 的 v3 应用与独立计票工具复用同一个计票引擎,保证投票应用与事后推演结果一致。

3.3 选举对象模型

v3 应用以"选举(Election)—议题(Issue)—候选人(Candidate)—选民(Voter)—选票(Ballot)"为基本对象模型,支持定义议题、圈定有资格投票的选民、收集排名选票并计票。

3.4 情景推演(what-if)

计票工具不仅输出一次结果,还支持改变席位数或候选人集合后重新计票,帮助社区观察规则变化对结果的影响,这类推演在选举规则评审阶段很有价值。

四、功能特性

4.1 选举管理

v3 Web 应用提供选举创建、议题与候选人维护、选民资格管理等功能,把 ASF 内部沿用的选举流程产品化。

4.2 投票渠道

支持排名式 STV 投票与 yes/no/abstain 投票两种形态,覆盖社区治理中"选人"与"表决"两类诉求。

4.3 计票输出

基于 Meek STV 引擎输出计票结果,同一引擎同时服务于在线投票应用与离线计票工具。

4.4 结果推演

对已结束的选举导入选票后重新计票,支持按不同席位数、候选人组合反复推演,用于规则评估与结果复核。

五、快速上手

以下步骤引自官方下载页 https://steve.apache.org/downloads/ ,本篇不做本地实测:

  1. 获取源码(官方未发布正式版本,仅提供开发源码):
git clone https://github.com/apache/steve.git
cd steve
  1. 按官方说明,trunk 分支包含开发代码;仓库快照不属于 ASF 官方发行物。
  2. 依据官网 getting started 指南搭建 v3 应用(Python 应用、SQLite 存储),或按文档单独使用 STV 计票与 what-if 工具。
  3. 版本与发布计划相关问题,官方建议通过开发邮件列表(见社区页)沟通。

六、适用场景与限制

6.1 适用场景

  • 开源社区内部的小规模治理选举、SIG 负责人评选等 STV 场景,且团队愿意接受源码级集成。
  • 需要对既有选举选票做 Meek STV 复核与席位/候选人情景推演的场合。

6.2 限制

  • 官方未发布任何正式版本,唯一获取方式是源码仓库快照,升级与版本追溯没有保障。
  • 社区活跃度极低(GitHub 约 27 stars,2026-10-18 查询),问题响应与生态支持有限。
  • 生产级、高利害选举(如基金会董事会、协会理事)建议优先评估更成熟或托管的投票方案,将 STeVe 作为参考实现或备选。

七、同类选型对比

社区投票工具领域的可比项目较少,以下对比中查不到的维度均如实标注"官方未公布"。stars 为 2026-10-18 联网实查自 GitHub 官方仓库页,Helios 发版信息来自其仓库 releases.atom,许可来自仓库许可文件。

维度Apache STeVeHelios Voting(helios-server)CIVSOpaVote
开源许可Apache-2.0Apache-2.0(仓库 LICENSE 文件)官方未公布(康奈尔大学提供的网络服务)商业托管服务,未开源
GitHub stars(2026-10-18)约 27约 926官方未公布(非仓库形态)官方未公布(商业服务)
最近发版无官方发行版本(开发线 v3)标签 python-2,2021-02-08官方未公布官方未公布
版本节奏极低频,无正式发布长期无新发布(2021 年后无发版记录)服务制,官方未公布服务制,官方未公布
兼容矩阵Python + SQLite(v3 开发线)Python 技术栈(自托管)网页服务网页服务
计票方法STV(Meek)、yes/no/abstainHelios 混合选举方法(支持多候选偏好计票)孔多塞等多种方法(官方服务说明)多种选举方法(官方服务说明)

选型建议:开源社区内部的小规模 STV 选举可试用 Apache STeVe 或自托管 Helios,而对结果权威性与持续运维有要求的正式选举,建议优先选择成熟的托管投票服务并将开源工具作为备选。

八、参考链接

  1. 官网首页:https://steve.apache.org/
  2. 下载页(版本状态声明):https://steve.apache.org/downloads/
  3. v3 文档:https://steve.apache.org/docs/
  4. 社区参与:https://steve.apache.org/community/
  5. GitHub 官方仓库:https://github.com/apache/steve
  6. ASF 项目 DOAP:https://projects.apache.org/json/projects/steve.json