Skip to content

Commit

Permalink
v1.1.0 (#454)
Browse files Browse the repository at this point in the history
### New features:
* Added support for converting Dominion JSON CVRs to generic .csv format (including precinct portions) (#404, #406, #407, #408, #415, #439)
* Added multiSeatBottomsUpPercentageThreshold option (#403)
* Added CLI option to convert Dominion CVR to generic .csv (#408)
* New GUI menu and conversion options (can now convert to CDF and convert Dominion to generic via the GUI) (#408, #421)
* Added Dominion Alaska CVR to sample_input folder

### Bug fixes:
* Batch elimination now works properly with singleSeatContinueUntilTwoCandidatesRemain (#396)
* In a multi-seat contest, if someone wins in the first round, we now automatically eliminate undeclared write-ins before we eliminate any other candidates; previously, we treated UWIs like a normal candidate, which meant we potentially eliminated other candidates with lower tallies first (#397)
* If UWI exceeds the winning threshold in the initial count, we no longer mistakenly elect this candidate (#398)

### Backend updates:
* Updated dependencies to latest version: JDK, JavaFX, Checkstyle google_checks.xml, Checkstyle plugin, org.openjfx.javafxplugin, org.beryx.jlink, org.apache.commons:commons-csv, org.apache.poi:poi-ooxml, com.fasterxml.jackson.core:jackson-*
* Added special code to test configs to obviate the need to update the version with each increment (#426)
* Updated tests and improved test coverage
* Copyright update (#414)
* Code cleanup
  • Loading branch information
HEdingfield committed May 24, 2020
1 parent 6019d92 commit a81a249
Show file tree
Hide file tree
Showing 129 changed files with 92,404 additions and 799 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -34,6 +34,7 @@ tmp

# Generated files
.idea/**/contentModel.xml
.idea/**/Project_Default.xml

# Sensitive or high-churn files
.idea/**/dataSources/
Expand Down
20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 13 additions & 5 deletions README.md
Expand Up @@ -69,11 +69,11 @@ In either case, please reference the [config file documentation](src/main/resour

The Tabulator includes several example contest configuration files and associated CVR files.

1. Click "Load..." at the top of the window and navigate to the `sample_input` folder (if you used Method 2 to install the Tabulator, navigate to the `test_data` folder).
1. Click "File > Load..." in the menu and navigate to the `sample_input` folder (if you used Method 2 to install the Tabulator, navigate to the `test_data` folder).
2. Open one of the folders listed here and select the config file (it will have the `_config.json` suffix).
3. Click on the configuration tabs (Output, CVR Files, Candidates, Rules) to see how this contest is configured.
4. Click "Validate" to check if this configuration is valid. You will see the results in the console at the bottom of the main window.
5. Click "Tabulate" to tabulate the election. You will see the results in the console, including the location of the output files.
3. Click on the configuration tabs (Output, CVR Files, Candidates, Required Rules, Optional Rules) to see how this contest is configured.
4. Click "Tabulation > Validate" in the menu to check if this configuration is valid. You will see the results in the console at the bottom of the main window.
5. Click "Tabulation > Tabulate" in the menu to tabulate the election. You will see the results in the console, including the location of the output files.

## Command-Line Interface

Expand All @@ -85,14 +85,22 @@ Or, if you're compiling and running using Gradle:

`$ gradlew run --args="-cli path/to/config"`

Finally, you can activate a special `convert-to-cdf` function via the command line to export the CVR as a NIST common data format (CDF) .json instead of tabulating the results, e.g.:
You can also activate a special `convert-to-cdf` function via the command line to export the CVR as a NIST common data format (CDF) .json instead of tabulating the results, e.g.:

`$ rcv -cli path/to/config convert-to-cdf`

This option is available in the GUI by selecting the "Conversion > Convert CVRs in Current Config to CDF" menu option.

Or, again, if you're compiling and running using Gradle:

`$ gradlew run --args="-cli path/to/config convert-to-cdf"`

Finally, there's a `convert-dominion-to-generic-csv` option as well for converting Dominion JSON CVRs into a standardized, generic .csv format:

`$ rcv -cli path/to/folder/containing/jsons convert-dominion-to-generic-csv`

This option is available in the GUI by selecting the "Conversion > Convert Dominion to Generic Format..." menu option.

## Viewing Tabulator Output

Tabulator output file names automatically include the current date and time, e.g. `2019-06-25_17-19-28_summary.csv`. This keeps them separate if you tabulate the same contest multiple times.
Expand Down
19 changes: 10 additions & 9 deletions build.gradle
Expand Up @@ -3,20 +3,20 @@ plugins {
id "checkstyle"
id "idea"
id "java"
id "org.openjfx.javafxplugin" version "0.0.7"
id "org.beryx.jlink" version "2.10.4"
id "org.openjfx.javafxplugin" version "0.0.8"
id "org.beryx.jlink" version "2.17.2"
}

repositories {
mavenCentral()
}

dependencies {
compile "org.apache.commons:commons-csv:1.6"
compile "org.apache.poi:poi-ooxml:4.1.0"
compile "com.fasterxml.jackson.core:jackson-core:2.9.9"
compile "com.fasterxml.jackson.core:jackson-annotations:2.9.9"
compile "com.fasterxml.jackson.core:jackson-databind:2.9.9"
compile "org.apache.commons:commons-csv:1.8"
compile "org.apache.poi:poi-ooxml:4.1.2"
compile "com.fasterxml.jackson.core:jackson-core:2.10.2"
compile "com.fasterxml.jackson.core:jackson-annotations:2.10.2"
compile "com.fasterxml.jackson.core:jackson-databind:2.10.2"
testCompile "org.junit.jupiter:junit-jupiter-api:5.5.0-M1"
testRuntime "org.junit.jupiter:junit-jupiter-engine:5.5.0-M1"
}
Expand All @@ -34,7 +34,7 @@ application {

// ### Checkstyle plugin settings
checkstyle {
toolVersion = "8.23"
toolVersion = "8.30"
// Keep the below file updated along with subsequent versions of Checkstyle (make sure to choose
// the tag matching the toolVersion above):
// https://github.com/checkstyle/checkstyle/blob/checkstyle-8.23/src/main/resources/google_checks.xml
Expand Down Expand Up @@ -64,7 +64,7 @@ test {

// ### JavaFX plugin settings
javafx {
version = "12.0.1"
version = "13.0.2"
modules = ["javafx.controls", "javafx.fxml"]
}

Expand Down Expand Up @@ -99,6 +99,7 @@ def sampleInputToCopy = copySpec {
include "sample_interactive_tiebreak/sample_interactive_tiebreak_cvr.xlsx"
include "precinct_example/precinct_example_config.json"
include "precinct_example/precinct_example_cvr.xlsx"
include "dominion_cvr_conversion_alaska/*.json"
exclude "output"
exclude "**/*expected*"
}
Expand Down

0 comments on commit a81a249

Please sign in to comment.