# steve **Repository Path**: mirrors_apache/steve ## Basic Information - **Project Name**: steve - **Description**: Apache STeVe -- a set of voting tools - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: trunk - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-22 - **Last Updated**: 2026-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Welcome to Apache Steve Apache Steve is software to conduct a vote using the STV (Single Transferable Vote) and other voting algorithms. The tool grew out of the voting system used to elect the Apache Software Foundation Board of Directors. Read more about STV at http://en.wikipedia.org/wiki/Single_transferable_vote > [!NOTE] > > The `v3` directory contains the current (ongoing) version of Steve. > Read the [v3/README.md](v3/README.md) file for more information about > this version. Read the [Getting Started Guide](v3/docs/quickstart.md) > to set up a development environment for v3. ## STV tally and what-if Meek STV lives in [`monitoring/stv_tool.py`](monitoring/stv_tool.py). v3 tallies (`steve.vtypes.stv`) and the what-if CLI both call that module. **Load a vote file** with `LoadData.from_path` (a file, not a directory): | Input | Behavior | |---|---| | `vote-results.json` (v3 tally JSON) | Source of truth. No warning. | | `raw_board_votes.txt` (+ sibling `board_nominations.ini`) | Old-school. Warns on stderr. | | `raw_board_votes.json` (v2 export) | Not a tally format. Warns and exits. | ``` python3 monitoring/stv_tool.py path/to/vote-results.json python3 monitoring/stv_tool.py -s 9 -v path/to/raw_board_votes.txt ``` **What-if scenarios** (seats, drop a candidate, runoff-only set) are [`whatif.py`](whatif.py). The positional argv is fixed for `whatif.rb`: ``` python3 whatif.py [-v] VOTES_FILE [seats] [name ...] python3 whatif.py VOTES_FILE -Lastname ``` Names may be first, last, or compacted full name (case-insensitive). A leading `-` on a name removes that candidate; otherwise only the named candidates run. Warnings for legacy files go to stderr so they do not break `whatif.rb` grepping of `elected` lines. `whatif.rb` still consumes `raw_board_votes.txt`. Do not point it at v2 JSON. Prefer `vote-results.json` for new tallies. See also [`monitoring/README.md`](monitoring/README.md). ## Getting Started Read the [Getting Started Guide](v3/docs/quickstart.md) to set up a v3 development environment, or visit https://steve.apache.org/getting-started/ for an overview of the application and tally tools. Ask questions on the development mailing list below. ## Documentation Documentation may be found at https://steve.apache.org/documentation/. Contributions to the documentation are very welcome. The website is built with Docusaurus from [`site/`](site/README.md) in this repository. See the site README for local development and preview publishing. ## Mailing Lists Discussion about Steve takes place on the following mailing lists: dev@steve.apache.org - About using Steve and developing Steve Notification on all code changes are sent to the following mailing list: commits@steve.apache.org The mailing lists are open to anyone and publicly archived. You can subscribe the mailing lists by sending a message to `-subscribe@steve.apache.org` (for example `dev-subscribe@steve.apache.org`). To unsubscribe, send a message to `-unsubscribe@steve.apache.org`. For more instructions, send a message to `-help@steve.apache.org`. ## Issue Tracker If you encounter errors in Steve or want to suggest an improvement or a new feature, please visit the Steve issue tracker at https://github.com/apache/steve/issues