Skip to content

Notes on Development

Armin Samii edited this page Mar 30, 2024 · 4 revisions

Contributing

Thank you for your interest in RCTab. We are one of only two open source projects used to produce election results in the United States. The other is Voting Works. In 2021, fourteen cities across the country (including New York City) used RCTab in their elections.

The Ranked Choice Voting Resource Center, a nonpartisan 501(c)(3), and the Bright Spots team of volunteer programmers, provide this software and support for free, directly to jurisdictions and individuals interested in implementing ranked-choice elections. The RCVRC also provides flexible licensing to commercial vendors wishing to use RCTab with their election systems. This keeps RCTab open source and helps offset development and support costs.

Please read the contributor guide if you're interested in joining the project.

Chained Pull Requests

When merging a series of chained pull requests Base < Feature1 [commit1, commit2] < Feature2 [commit3, commit4], if you merge Feature1 into Base, then you will get a series of merge conflicts on any line that both Feature1 and Feature2 changed.

To avoid this, you can either:

  1. Merge Feature2 into Feature1, then merge that into Base
  2. Merge Feature1 into Base, then "delete" all of Feature1's commits from Feature2 (@artoonie's preferred method)
  3. Merge Feature1 into Base, then pull Base back into Feature2 and reconcile differences (@hedingfield's preferred method)

To do (2), you have a few options, including:

git checkout Feature2
git reset --hard Base
git cherrypick commit3..commit4
git push --force

Context: https://github.com/BrightSpots/rcv/pull/765#discussion_r1386050070

Clone this wiki locally