Skip to content
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

Create API cli and daemon releases as zip archives #6122

Merged
merged 9 commits into from
Apr 3, 2022

Conversation

ghubstan
Copy link
Contributor

@ghubstan ghubstan commented Mar 28, 2022

The Bisq gradle build already creates distribution .tar files within the cli and daemon subprojects' build/distributions directories. Instead of using additional gradle tasks to create runnable cli.jar and daemon.jar files, simple bash scripts arrange the .tar contents into .zip files containing runnable jars at the root level, and dependent jars in their lib directories.

The cli release zip file structure looks like this:

$ tree .
.
├── [me        165543]  cli.jar
└── [me          4096]  lib
    ├── [me          3120]  annotations-4.1.1.4.jar
    ├── [me        230905]  checker-qual-3.8.0.jar
    ├── [me         15994]  error_prone_annotations-2.9.0.jar
    ├── [me          4617]  failureaccess-1.0.1.jar
    ├── [me        254575]  grpc-api-1.42.1.jar
    ├── [me         30595]  grpc-context-1.42.1.jar
    ├── [me        686612]  grpc-core-1.42.1.jar
    ├── [me       8185495]  grpc-netty-shaded-1.42.1.jar
    ├── [me          5118]  grpc-protobuf-1.42.1.jar
    ├── [me          7570]  grpc-protobuf-lite-1.42.1.jar
    ├── [me         50385]  grpc-stub-1.42.1.jar
    ├── [me        240255]  gson-2.8.6.jar
    ├── [me       2874025]  guava-30.1.1-jre.jar
    ├── [me          8781]  j2objc-annotations-1.3.jar
    ├── [me         78146]  jopt-simple-5.0.4.jar
    ├── [me         19936]  jsr305-3.0.2.jar
    ├── [me          2199]  listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
    ├── [me        309130]  logback-classic-1.1.11.jar
    ├── [me        475477]  logback-core-1.1.11.jar
    ├── [me          6385]  perfmark-api-0.23.0.jar
    ├── [me       1681558]  protobuf-java-3.19.1.jar
    ├── [me       1557780]  proto-google-common-protos-2.0.1.jar
    ├── [me       4715421]  proto.jar
    └── [me         41472]  slf4j-api-1.7.30.jar

To call getversion from cli.jar:
$ java -jar cli.jar --password=becareful getversion

The daemon release tree structure would look the same (but more jars in the lib dir).

To run daemon.jar on mainnet:
$ java -jar daemon.jar --apiPassword=becareful

TODO Sign release .zip files, add checksums, etc...

Based on master.

ghubstan and others added 7 commits March 26, 2022 13:28
Each distribution contains a runnable jar with a MANIFEST.MF
defining the classpath (all jar files in lib/).

To run daemon.jar:  $ java -jar daemon.jar --apiPassword=xyz
To run cli.jar:     $ java -jar cli.jar --password=xyz <cmd>

TODO Sign jar files, generate checksums.
ripcurlx
ripcurlx previously approved these changes Mar 30, 2022
Copy link
Contributor

@ripcurlx ripcurlx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK - Tested it with a newly built release and ran daemon and cli on Regtest.

@ghubstan ghubstan changed the title [WIP] Create API cli and daemon releases as zip archives Create API cli and daemon releases as zip archives Mar 30, 2022
@ghubstan ghubstan marked this pull request as ready for review March 30, 2022 12:17
Copy link
Contributor

@ripcurlx ripcurlx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK - Tested it locally for the old 1.8.4 release build

@ripcurlx ripcurlx added this to the v1.8.5 milestone Apr 3, 2022
@ripcurlx ripcurlx merged commit c5de527 into bisq-network:master Apr 3, 2022
@ghost
Copy link

ghost commented Apr 11, 2022

Are we gonna update downloads page with info about daemon/cli, or put some instructions about running daemon/cli without need to build it from sources? Just wanted to answer here with some link.

@ripcurlx
Copy link
Contributor

Are we gonna update downloads page with info about daemon/cli, or put some instructions about running daemon/cli without need to build it from sources? Just wanted to answer here with some link.

I think we should add some information to the downloads page and the GitHub release notes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants