-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standalone Executable #660
Conversation
ac70be4
to
189f692
Compare
189f692
to
61241bf
Compare
2678efa
to
734667e
Compare
734667e
to
bfd2b84
Compare
Curious why we're merging this into
My knee-jerk reaction to this is helllllllll no. But I guess we can see what @chughes297 thinks. Also, I'm happy to test the bins for Linux and Windows if you can point me to where they are.
We should be able to get rid of it in
Yeah, I think jpackage will replace jlinkZip. However, we should discuss the ramifications of this with @chughes297 to make sure it doesn't cause any additional security issues having them use a compiled version. Also wondering if we need to provide SHA512 checksums for the bins too. |
Why hell no? I need to confirm this but I assume RCVRC can cover those costs, especially if it makes install that much easier.
I need a bit more info about what is being discussed - not sure I understand what the potential security issues are if using a compiled version? And yes I believe we'll need to continue providing checksums for each release (if that's what's being asked lol). |
I guess because I'm allergic to costs associated with open source software (especially recurring ones) but, more importantly, I thought all the election tabulation stations ran Windows anyway?
I guess I was thinking because it's just an extra level of opacity, which probably also creates a registry entry on their machine (correct me if I'm wrong, @artoonie). |
This depended on the
https://github.com/BrightSpots/rcv/actions/runs/4801866529
Not anymore -- the version number generated by
Yes, that is true -- when installing the software, you cede some control to the operating system which could be seen as reducing transparency. For example: If you try installing (This may not be the best example of what can go wrong, but it's the only thing I can think of right now.) However, assuming other election software follows the same model (which I expect they do), I think we can feel safe following the same best practices? |
Most do. So far in my experience, though, some offices have a Linux machine handy and others may have a Mac workstation they can use. I lean towards being as comprehensive as possible with OSes so we can be flexible and jurisdictions can ideally use a piece of hardware they already have sitting around instead of having to buy a new one.
I'm curious to hear more about the security/opacity argument (maybe easier to talk out on the phone?). And I would need to ask vendors what their standard practice is but I imagine it is similar to what Armin described. |
e020825
to
eba5ad9
Compare
c95c946
to
a527b91
Compare
df2636a
to
162175c
Compare
162175c
to
48ddb22
Compare
@HEdingfield this is ready for review. I've tested on mac, windows, and linux, and the binaries all work. The mac version is signed to avoid warnings with the strictest operating systems -- it's "notarized" which, among other things, sends a hash Apple when building, and that hash is verified by the user's machine before opening. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some light changes for you here to review too, per our discussion.
build.gradle
Outdated
name = "rcv" | ||
// TODO Sync version number with release.yml and Main.java (github.com/BrightSpots/rcv/issues/662) | ||
name = "RCTab" | ||
version = "1.3.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume it was 1.3.1 just for testing purposes? Can we set to 1.4.0 now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a little afraid to set it to 1.4.0 prematurely, as we'd have fake but signed 1.4.0
versions floating around. I guess the same is true with 1.3.1
?
The issue stems from the fact that Mac won't allow a bundle to have a -alpha
at the end, so we need some way of signifying a fake/development version number. See: https://stackoverflow.com/questions/70066384/javafx-gradle-jlink-plugin-jpackageimage-fails-because-of-1-0-snapshot-conta
Perhaps we should use 0.0.0 unless we are building a release? Or maybe this just isn't a real issue, and we're okay having "false" 1.4.0s around?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dumb Apple. That may be a blessing in disguise in a small way, though, because we don't want to be creating these builds / releasing alpha versions. I'd say we set it to 1.4.0-alpha
here now so the find-replace is easier later (plus I guess it'll block building).
72a5ecd
to
8d7a87c
Compare
8d7a87c
to
72cd660
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fantastic job! This would have taken me forever to get going.
Auto-create executables using jpackage.
Issues: