From 94c067bef74ff656f39e1f3254211174dd920625 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Thu, 14 Feb 2019 20:08:58 -0500 Subject: [PATCH 01/13] Fix constructors --- build.gradle | 2 +- .../algorithm_visualizer/Array1DTracer.java | 8 +++ .../algorithm_visualizer/Array2DTracer.java | 8 +++ .../org/algorithm_visualizer/ChartTracer.java | 7 +++ .../org/algorithm_visualizer/GraphTracer.java | 8 +++ .../org/algorithm_visualizer/LogTracer.java | 8 +++ .../java/org/algorithm_visualizer/Test.java | 62 +++++++++++-------- 7 files changed, 76 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index 84706d1..7053e5e 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'org.algorithm_visualizer' -version = '2.3.0' +version = '2.3.1' sourceCompatibility = 1.8 repositories { diff --git a/src/main/java/org/algorithm_visualizer/Array1DTracer.java b/src/main/java/org/algorithm_visualizer/Array1DTracer.java index 891776c..7540680 100644 --- a/src/main/java/org/algorithm_visualizer/Array1DTracer.java +++ b/src/main/java/org/algorithm_visualizer/Array1DTracer.java @@ -1,6 +1,14 @@ package org.algorithm_visualizer; public class Array1DTracer extends Array2DTracer { + public Array1DTracer(String title) { + super(title); + } + + public Array1DTracer() { + super(); + } + public void set(Object array1d) { command("set", new Object[]{array1d}); } diff --git a/src/main/java/org/algorithm_visualizer/Array2DTracer.java b/src/main/java/org/algorithm_visualizer/Array2DTracer.java index 16b3006..9368505 100644 --- a/src/main/java/org/algorithm_visualizer/Array2DTracer.java +++ b/src/main/java/org/algorithm_visualizer/Array2DTracer.java @@ -1,6 +1,14 @@ package org.algorithm_visualizer; public class Array2DTracer extends Tracer { + public Array2DTracer(String title) { + super(title); + } + + public Array2DTracer() { + super(); + } + public void set(Object array2d) { command("set", new Object[]{array2d}); } diff --git a/src/main/java/org/algorithm_visualizer/ChartTracer.java b/src/main/java/org/algorithm_visualizer/ChartTracer.java index 6bc2edd..8ddbfc4 100644 --- a/src/main/java/org/algorithm_visualizer/ChartTracer.java +++ b/src/main/java/org/algorithm_visualizer/ChartTracer.java @@ -1,4 +1,11 @@ package org.algorithm_visualizer; public class ChartTracer extends Array1DTracer { + public ChartTracer(String title) { + super(title); + } + + public ChartTracer() { + super(); + } } \ No newline at end of file diff --git a/src/main/java/org/algorithm_visualizer/GraphTracer.java b/src/main/java/org/algorithm_visualizer/GraphTracer.java index aed1c33..88c33a6 100644 --- a/src/main/java/org/algorithm_visualizer/GraphTracer.java +++ b/src/main/java/org/algorithm_visualizer/GraphTracer.java @@ -1,6 +1,14 @@ package org.algorithm_visualizer; public class GraphTracer extends Tracer { + public GraphTracer(String title) { + super(title); + } + + public GraphTracer() { + super(); + } + public void set(Object array2d) { command("set", new Object[]{array2d}); } diff --git a/src/main/java/org/algorithm_visualizer/LogTracer.java b/src/main/java/org/algorithm_visualizer/LogTracer.java index 57acc6e..449c6c2 100644 --- a/src/main/java/org/algorithm_visualizer/LogTracer.java +++ b/src/main/java/org/algorithm_visualizer/LogTracer.java @@ -1,6 +1,14 @@ package org.algorithm_visualizer; public class LogTracer extends Tracer { + public LogTracer(String title) { + super(title); + } + + public LogTracer() { + super(); + } + public void set(Object log) { command("set", new Object[]{log}); } diff --git a/src/test/java/org/algorithm_visualizer/Test.java b/src/test/java/org/algorithm_visualizer/Test.java index 027bcd1..c8f1969 100644 --- a/src/test/java/org/algorithm_visualizer/Test.java +++ b/src/test/java/org/algorithm_visualizer/Test.java @@ -1,35 +1,45 @@ -package org.algorithm_visualizer; +package org.algorithm_visualizer;// import visualization libraries { -import org.algorithm_visualizer.*; +// } class Test { - static GraphTracer tracer = new GraphTracer(); - tracer.log(new LogTracer()); - static int G[][] = { // G[i][j] indicates whether the path from the i-th node to the j-th node exists or not - {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + // define tracer variables { + Array2DTracer array2dTracer = new Array2DTracer("Grid"); + LogTracer logTracer = new LogTracer("Console"); + // } + + // define input variables + String[] messages = { + "Visualize", + "your", + "own", + "code", + "here!", }; - static void DFS(int node, int parent) { // node = current node, parent = previous node - tracer.visit(node, parent).delay(); - for (int i = 0; i < G[node].length; i++) { - if (G[node][i] == 1) { // if current node has the i-th node as a child - DFS(i, node); // recursively call DFS - } - } + // highlight each line of messages recursively + void highlight(int line) { + if (line >= messages.length) return; + String message = messages[line]; + // visualize { + logTracer.println(message); + array2dTracer.selectRow(line, 0, message.length() - 1); + Tracer.delay(); + array2dTracer.deselectRow(line, 0, message.length() - 1); + // } + highlight(line + 1); + } + + Test() { + // visualize { + Layout.setRoot(new VerticalLayout(new Commander[]{array2dTracer, logTracer})); + array2dTracer.set(messages); + Tracer.delay(); + // } + highlight(0); } public static void main(String[] args) { - tracer.set(G).layoutTree(0).delay(); - DFS(0, -1); + new Test(); } -} \ No newline at end of file +} From b4d6e7580a943aeef076fb60d484628b8f0cf278 Mon Sep 17 00:00:00 2001 From: Jinseo Park Date: Mon, 10 Jun 2019 01:35:37 +0900 Subject: [PATCH 02/13] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f1366e4..84f30ae 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # tracers.java -> `tracers.java` is a visualization library for Java. +> This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer). -This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer). +`tracers.java` is a visualization library for Java. +You can use it on [algorithm-visualizer.org](https://algorithm-visualizer.org/) or locally on your machine. ## Installation From cf0a6d2ea9ef97d119a470d470daccc70bf7de2a Mon Sep 17 00:00:00 2001 From: Jason Park Date: Mon, 17 Jun 2019 01:59:12 +0900 Subject: [PATCH 03/13] Publish to maven central (through sonatype) --- .gitignore | 3 ++- README.md | 20 +++++++++++--- build.gradle | 72 ++++++++++++++++++++++++++++++++++++++++++++----- settings.gradle | 2 +- 4 files changed, 85 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 7701104..5be005d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ /.gradle /build /out -.DS_Store \ No newline at end of file +/gradle.properties +.DS_Store diff --git a/README.md b/README.md index f1366e4..b985aab 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# tracers.java +# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) > `tracers.java` is a visualization library for Java. @@ -6,9 +6,21 @@ This repository is part of the project [Algorithm Visualizer](https://github.com ## Installation -1. Download `algorithm-visualizer.jar` in the [latest release](https://github.com/algorithm-visualizer/tracers.java/releases/latest). - -2. Add it to the classpath. +- Gradle + ```gradle + dependencies { + implementation 'org.algorithm-visualizer:tracers-java:+' + } + ``` + +- Maven + ```xml + + org.algorithm-visualizer + tracers-java + [1.0.0,) + + ``` ## Usage diff --git a/build.gradle b/build.gradle index 7053e5e..51c1820 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,8 @@ -plugins { - id 'com.github.johnrengelman.shadow' version '2.0.4' - id 'java-library' -} +apply plugin: 'java-library' +apply plugin: 'maven' +apply plugin: 'signing' -group = 'org.algorithm_visualizer' +group = 'org.algorithm-visualizer' version = '2.3.1' sourceCompatibility = 1.8 @@ -15,4 +14,65 @@ dependencies { implementation 'com.google.code.gson:gson:2.8.5' } -shadowJar.archiveName = 'algorithm-visualizer.jar' +task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc +} + +task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allSource +} + +artifacts { + archives javadocJar, sourcesJar +} + +signing { + sign configurations.archives +} + +uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'tracers.java' + packaging 'jar' + // optionally artifactId can be defined here + description 'Visualization Library for Java' + url 'https://github.com/algorithm-visualizer/tracers.java' + + scm { + connection 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' + developerConnection 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' + url 'https://github.com/algorithm-visualizer/tracers.java' + } + + licenses { + license { + name 'The MIT License (MIT)' + url 'http://opensource.org/licenses/MIT' + } + } + + developers { + developer { + id 'parkjs814' + name 'Jinseo Jason Park' + email 'jason.park@gatech.edu' + } + } + } + } + } +} diff --git a/settings.gradle b/settings.gradle index f780d24..48a87c3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'tracers' +rootProject.name = 'tracers-java' From 670242af4370875599f98684e39db1ca4d61677a Mon Sep 17 00:00:00 2001 From: Jason Park Date: Thu, 20 Jun 2019 21:58:57 +0900 Subject: [PATCH 04/13] Add travis for auto publishing/releasing --- .gitignore | 1 + .travis.yml | 22 ++++++++++++++++++++++ build.gradle | 6 +++++- pubring.gpg.enc | Bin 0 -> 2640 bytes scripts/deploy.sh | 11 +++++++++++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .travis.yml create mode 100644 pubring.gpg.enc create mode 100755 scripts/deploy.sh diff --git a/.gitignore b/.gitignore index 5be005d..81f6e59 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ /build /out /gradle.properties +/pubring.gpg .DS_Store diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..948da76 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: java +jdk: oraclejdk8 +script: ./gradlew check +deploy: + - provider: script + script: scripts/deploy.sh + on: + branch: master + tags: true + - provider: releases + api_key: + secure: Va5i+Jn2pDMm+65t3rA7rA7AkOl0zmQhecCXkvHTdxq/ETWlWGlt9YBN17wWW8rHQx4BPfN/PSpvisTaevTyWBlc7bVnHJlPOBVYk13El0q8H45EMmNuGZveL9suN7q+l6oZk3ZHA8Y5OCHr7jvnXnMa5XfBM5N1am27lFXrSx/+CsPyVnmP+m2g2U0iLAJNnW4H/eU3hJzKsf9LwbPlLGdH6t1CdOQOhBsMr/yOe3ThRjkRQ49XGwl8XXewkA7AsItGUxBQkAqMBwv5NuiGCcNK7oiiDGI8z8ZDZasedHzWlx9NgIdCLv6XGXV/5UK/MsuFjF2V+Bx4WRryh7ERwjMmcucutEejpxO/zlPwdKD6nCmcYZQmR9ITlp2v1Efn41p7x/uyFfmIGJGNTJ3hLK5uHPQSn+ahCbF/0y5Mbwz3u8U0mYxukOKHRoJs812ubezsM2IOvyPCkYtBiSHVLB13l9uuWZfVU85nUuyHzcLMacIvqic7YxDgbbP4c4ZW8kYeHONRGu+sgWj00iLMRClcjR+UdjISEqBxa36XCxUVaHq3btVnhiUq37YBLoorEtxN1Pz27JGAmxDlTm9s3cx4FLW+A1CbAg17D6eg9tqziOkcBEzAkAD0DvH/GWEZkuSuE3aiujJTc7qhOWONU3WR062Ow/c6QU2bCMpQPOs= + on: + branch: master + tags: true +env: + global: + - secure: qT39pZspL2LyzA63seKzzo4E5OI3D1V9p2+GqzOmR7EYvBTiVN6o6YEDH0NjOxX+YNU82FbxfOCLPrHa7OkRR7hTMm3R/U9BLcf+ZdBkEaW8RBk52xkqL/DrRYG0/zj6ECebFJ8Fat6baOPOgzL/vKVLS87GGFHjzKP7eWdfioEgYjTaUEWCeTKtltPAj/0srUfwvfJy7QH/Bq0cIchA45URRGxnhqsxGCb7BRXJ9crQ9ahr6edVv3PhonX8pmiT/2DMaqLFHbNxRSYA7E+yMVTvJ2nMEOM6PaN+h0UDsrN8XkDrCkkytPBYPeIUsVvzC4vEtxEt3akgui/QykYo1cuJ+6hBQJTzhJ7nCv67H253LFM0wx4LNGG17ZFhxsJdowuAnHoQgrW748+pDz5wNZjPIunWl5e24hslqst09Ln4Hm/4UgP2Rn5EHq8f0YvgNxmV+1GuSnSvVkbCBpNYtXg+JTcb5xvXGrJpNG6+HCfVT3YFyZeaaL2czoO/ZxQ9iiBZu2aijSJ20um45rUaYAhBNRD4Kr7Byj62eu3OcI9oFJ98/mVOaPTvl/nIysMt5xjBHSZJtw/vGBN24be8aMUG5CcXpfBW9PPQHVhj4zC1DtS8Amco1X1Sjak3BWGBoTfLnR/YL7sxrBP+d5oC9Znrg4xZBK8rC6hTqEGFeXg= + - secure: sWUOsHNN/J4G/bQux7n9f4bHH3lscyfWYqvDqUc1z64CudI7Ie4An+e8FYhInCkK5r57FVi15EBqRbGUPPDn8tBxxfJgKJQ6lC3qr9BU0qcEJuBAV6F56h/LEmEB8rk39fbNXryKsBe+tRBySaLuyGWY7IPQjqcHuLfeX+oaTAkjnyDSQpLN+X+0oGI2PRV4m4IjxYJZ3oGBecPFt/j+G28KW3nwPRC8j1VebLvzg1N4JsRiSZcPoMvs5STtNATJ5CIvIUdHo8cUvgPfMVhEVUdy+nRbuG6ytlkQuKuG7+qItMrBsw6VxCU/hImXCKkUQ7Dqrgm38oHxsU4BDohodirsXQEz5GXMBkgJj/+FrbDYwZZ5nwIfKqK7QzAYueRa/FG7BQEfTJVJEHfEZt5VeuMUjR30dX0ENnm6L9cvHoQN+vDMpr/OJNxhJVDDRA2+gTv1EsUPAiJejSgZB8vYjgnqVvxPEpAc8jyvmrs/57M4Se5AugsEFed0WrTZK2ekH30zZBxWp8wq0J+faPm+Aq2OWltQehbnKORwXESzQq2E85p0nrjO2gk4UdAn1P6CxG+mU4AU99Mo0hXHF1Ta9mo5/JDcl88RG6zgkhsyNbysEsQBn+skO7AmHAL74rGBenpPjNJ4BdIJ3/DEPdw9bint5CXGTEeQSQZpJ+foeG4= + - secure: hPaPF+a8fpvUQy8NzxIv83eyZVc4VOXs04MApVn1r9wkxrLsUcIqTWOkicf/NHCO2llsKPbq9roaCPJtADmBQRy7hoMomyvuYXdClEUPkNJo/k617WhjMwiy6ShPUo4Iv/jj325uF7D2iPU+/tdhxkuPvD8/k90hdQqPKIQornmjIu+7T6kcbseSQ1leGldLt7PuVkJeFZ5tl7U8Hl12TlxsDgW5qiJmQun4lA5XynK5ZHBpOhjDu0SeiRQ+lKAYiC+Z1UFuqOON63HG2tecg5i1zDNKIJvzlwBdI/dW7Rd5PTWqQpQ48GyUcLjl9IlkrCrHYPUgtnrvr8SM4+YEBkXgoARYW7eAk2ADsLFfHQB7M0l8Zess3DspfdQATLN4Ls7DcGOc3cYBaToAPOzbFd/PD8hfmxqnLtApjy6uEuCtUZeLSmeVmATYX7txzYmqhM2DbH7Npjqactm8WWQyTpzlT90VlVEhn3yJ+ZUajzwCMd+cmLvwR0lKc8eLVaVH050Vv/wL/d9pU9floi2uzeXYKVg1oPksj/ORDedLKB1N6yfL3u7Zf6OM3jUQQv1c3knDNAjW8PAWLDJB7WbPhlgU8K+kNrml7MeLua+XImjGsZ1xj3xUfAacAQlwoT55694PfwPKOL/2vlp6sXegsVpMYexGku0kfDxcMJMKSmE= + - secure: LZYIEaxZaN+lfrSfxhxYdcdLy8OwwMptJRMXHrii7yavgMXZ6hm+mFqFAWs2y5rY/21NdeMwdihFRdkdeDFmX/uBG7y3pFGWQb5rbX7ftWnsdIqQR627wghpSeCblPAnMDhRab4xiBM41YCS8LGTRg0FcwGLzu+DCH77llbl6X3CnW9ZSkw/zn4Ipn9Fh7byEIvSUih+JdQkhWfxixWWVtyBMylSE1VV6er0jh0/bay2GmGppwMpdv6VIrUlgRaZfYtCv8SgfGHugQO2kPAtx7VkBgXLVShrmW6Fwo2LOnmH0LzzQq29CBFrr5cX73aTMaz+d3gmABfAWT0ibXFN5Q3aY4Ev7WMKFPcrmVZjfSEdF1XULT5tK70Tp6XfK0gBjPSVVgFRCBCrdmF5vPszOELrxMdweLBCiJUm7PM5xfbtbnD0WwVESHj80KMbQgR3Vb751v5moxwOe15IEiuW2+pdGUFcGeYu22UlDhUEZlHe27mV/AcimJM9iy5WZnseOvIb34VBmmPVrTslu4KISr7P7MdqXBU0OIjWwf/cbagEg3BEH9PMSTJIAJz3IbMUanclkYXOrrTaCdrHMjRl/lIh3GnwPx7JV5i3JkAAewbm+tP/MT10TcGC3gzdo/UY5JFrwENylKMgt9nc3r84AB8T8whPXVVPo3jPEW6bmgU= + - signing.secretKeyRingFile=pubring.gpg diff --git a/build.gradle b/build.gradle index 51c1820..8bf49b0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,13 @@ +plugins { + id 'io.codearte.nexus-staging' version '0.21.0' +} + apply plugin: 'java-library' apply plugin: 'maven' apply plugin: 'signing' group = 'org.algorithm-visualizer' -version = '2.3.1' +version = '2.3.4' sourceCompatibility = 1.8 repositories { diff --git a/pubring.gpg.enc b/pubring.gpg.enc new file mode 100644 index 0000000000000000000000000000000000000000..98068dcd02e895cd20186afb75be66140241549d GIT binary patch literal 2640 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 literal 0 HcmV?d00001 diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100755 index 0000000..74da4d4 --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +PROJECT_ROOT="$(dirname "$0")/.." + +cd ${PROJECT_ROOT} && + +openssl aes-256-cbc -K $encrypted_1d787f3de7c3_key -iv $encrypted_1d787f3de7c3_iv -in pubring.gpg.enc -out pubring.gpg -d && + +./gradlew uploadArchives && + +./gradlew closeAndReleaseRepository From 6de875dc3ba88e9a98200e7f173ea1131021823e Mon Sep 17 00:00:00 2001 From: Jason Park Date: Fri, 21 Jun 2019 03:29:33 +0900 Subject: [PATCH 05/13] Test auto deploy --- .gitignore | 2 - .travis.yml | 21 ++++-- README.md | 2 +- build.gradle | 73 ++++++++++--------- gradle/wrapper/gradle-wrapper.properties | 2 +- scripts/deploy.sh | 11 --- .../java/org/algorithm_visualizer/Test.java | 2 +- 7 files changed, 54 insertions(+), 59 deletions(-) delete mode 100755 scripts/deploy.sh diff --git a/.gitignore b/.gitignore index 81f6e59..de2c62e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,4 @@ /.gradle /build /out -/gradle.properties -/pubring.gpg .DS_Store diff --git a/.travis.yml b/.travis.yml index 948da76..cad012e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,17 @@ language: java jdk: oraclejdk8 -script: ./gradlew check +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ +before_install: openssl aes-256-cbc -K ${encrypted_1d787f3de7c3_key} -iv ${encrypted_1d787f3de7c3_iv} -in pubring.gpg.enc -out pubring.gpg -d deploy: - provider: script - script: scripts/deploy.sh + script: ./gradlew publish closeAndReleaseRepository + skip_cleanup: true on: branch: master tags: true @@ -15,8 +23,7 @@ deploy: tags: true env: global: - - secure: qT39pZspL2LyzA63seKzzo4E5OI3D1V9p2+GqzOmR7EYvBTiVN6o6YEDH0NjOxX+YNU82FbxfOCLPrHa7OkRR7hTMm3R/U9BLcf+ZdBkEaW8RBk52xkqL/DrRYG0/zj6ECebFJ8Fat6baOPOgzL/vKVLS87GGFHjzKP7eWdfioEgYjTaUEWCeTKtltPAj/0srUfwvfJy7QH/Bq0cIchA45URRGxnhqsxGCb7BRXJ9crQ9ahr6edVv3PhonX8pmiT/2DMaqLFHbNxRSYA7E+yMVTvJ2nMEOM6PaN+h0UDsrN8XkDrCkkytPBYPeIUsVvzC4vEtxEt3akgui/QykYo1cuJ+6hBQJTzhJ7nCv67H253LFM0wx4LNGG17ZFhxsJdowuAnHoQgrW748+pDz5wNZjPIunWl5e24hslqst09Ln4Hm/4UgP2Rn5EHq8f0YvgNxmV+1GuSnSvVkbCBpNYtXg+JTcb5xvXGrJpNG6+HCfVT3YFyZeaaL2czoO/ZxQ9iiBZu2aijSJ20um45rUaYAhBNRD4Kr7Byj62eu3OcI9oFJ98/mVOaPTvl/nIysMt5xjBHSZJtw/vGBN24be8aMUG5CcXpfBW9PPQHVhj4zC1DtS8Amco1X1Sjak3BWGBoTfLnR/YL7sxrBP+d5oC9Znrg4xZBK8rC6hTqEGFeXg= - - secure: sWUOsHNN/J4G/bQux7n9f4bHH3lscyfWYqvDqUc1z64CudI7Ie4An+e8FYhInCkK5r57FVi15EBqRbGUPPDn8tBxxfJgKJQ6lC3qr9BU0qcEJuBAV6F56h/LEmEB8rk39fbNXryKsBe+tRBySaLuyGWY7IPQjqcHuLfeX+oaTAkjnyDSQpLN+X+0oGI2PRV4m4IjxYJZ3oGBecPFt/j+G28KW3nwPRC8j1VebLvzg1N4JsRiSZcPoMvs5STtNATJ5CIvIUdHo8cUvgPfMVhEVUdy+nRbuG6ytlkQuKuG7+qItMrBsw6VxCU/hImXCKkUQ7Dqrgm38oHxsU4BDohodirsXQEz5GXMBkgJj/+FrbDYwZZ5nwIfKqK7QzAYueRa/FG7BQEfTJVJEHfEZt5VeuMUjR30dX0ENnm6L9cvHoQN+vDMpr/OJNxhJVDDRA2+gTv1EsUPAiJejSgZB8vYjgnqVvxPEpAc8jyvmrs/57M4Se5AugsEFed0WrTZK2ekH30zZBxWp8wq0J+faPm+Aq2OWltQehbnKORwXESzQq2E85p0nrjO2gk4UdAn1P6CxG+mU4AU99Mo0hXHF1Ta9mo5/JDcl88RG6zgkhsyNbysEsQBn+skO7AmHAL74rGBenpPjNJ4BdIJ3/DEPdw9bint5CXGTEeQSQZpJ+foeG4= - - secure: hPaPF+a8fpvUQy8NzxIv83eyZVc4VOXs04MApVn1r9wkxrLsUcIqTWOkicf/NHCO2llsKPbq9roaCPJtADmBQRy7hoMomyvuYXdClEUPkNJo/k617WhjMwiy6ShPUo4Iv/jj325uF7D2iPU+/tdhxkuPvD8/k90hdQqPKIQornmjIu+7T6kcbseSQ1leGldLt7PuVkJeFZ5tl7U8Hl12TlxsDgW5qiJmQun4lA5XynK5ZHBpOhjDu0SeiRQ+lKAYiC+Z1UFuqOON63HG2tecg5i1zDNKIJvzlwBdI/dW7Rd5PTWqQpQ48GyUcLjl9IlkrCrHYPUgtnrvr8SM4+YEBkXgoARYW7eAk2ADsLFfHQB7M0l8Zess3DspfdQATLN4Ls7DcGOc3cYBaToAPOzbFd/PD8hfmxqnLtApjy6uEuCtUZeLSmeVmATYX7txzYmqhM2DbH7Npjqactm8WWQyTpzlT90VlVEhn3yJ+ZUajzwCMd+cmLvwR0lKc8eLVaVH050Vv/wL/d9pU9floi2uzeXYKVg1oPksj/ORDedLKB1N6yfL3u7Zf6OM3jUQQv1c3knDNAjW8PAWLDJB7WbPhlgU8K+kNrml7MeLua+XImjGsZ1xj3xUfAacAQlwoT55694PfwPKOL/2vlp6sXegsVpMYexGku0kfDxcMJMKSmE= - - secure: LZYIEaxZaN+lfrSfxhxYdcdLy8OwwMptJRMXHrii7yavgMXZ6hm+mFqFAWs2y5rY/21NdeMwdihFRdkdeDFmX/uBG7y3pFGWQb5rbX7ftWnsdIqQR627wghpSeCblPAnMDhRab4xiBM41YCS8LGTRg0FcwGLzu+DCH77llbl6X3CnW9ZSkw/zn4Ipn9Fh7byEIvSUih+JdQkhWfxixWWVtyBMylSE1VV6er0jh0/bay2GmGppwMpdv6VIrUlgRaZfYtCv8SgfGHugQO2kPAtx7VkBgXLVShrmW6Fwo2LOnmH0LzzQq29CBFrr5cX73aTMaz+d3gmABfAWT0ibXFN5Q3aY4Ev7WMKFPcrmVZjfSEdF1XULT5tK70Tp6XfK0gBjPSVVgFRCBCrdmF5vPszOELrxMdweLBCiJUm7PM5xfbtbnD0WwVESHj80KMbQgR3Vb751v5moxwOe15IEiuW2+pdGUFcGeYu22UlDhUEZlHe27mV/AcimJM9iy5WZnseOvIb34VBmmPVrTslu4KISr7P7MdqXBU0OIjWwf/cbagEg3BEH9PMSTJIAJz3IbMUanclkYXOrrTaCdrHMjRl/lIh3GnwPx7JV5i3JkAAewbm+tP/MT10TcGC3gzdo/UY5JFrwENylKMgt9nc3r84AB8T8whPXVVPo3jPEW6bmgU= - - signing.secretKeyRingFile=pubring.gpg + - secure: c3f4qPFpEGq7NB5rnJO8lBPmAIdqlCNx1KLtyOzIknOJuL/Dv8FrSqiaFjOfxRC9wqYDKuhPRUFDd6o6JF2+t7CZDdrABTVXw2akcTcQxSWYwSviLCLek6fb/5LPA0FW63bYUcTj7thfVkWdxIen7wToQOkYOz/RJXU9CE21/T4DxnaOgZIoXaFqEuYCT/YZrT5DRQSZ2AmecgHx1Q+z2qlGRI3SEVPrVGiA3pu1KNGvIQryhnIn6mxsQ1fI0vbTOUaekZcatLKmscxbqbWKoC8Gx76sj7w7Azai7ihEVii/5EBSKwIfo6BdH3KfKk7IlJCj27T7Y3inqrzQ7ojVq1XUAYytCjMwQAFTjY6UfGfOzZ0Y8ef84wj5zbBSxWx7YDQKEI3fmhE/BiPiuXsZ8F8qut45hsQrqCynDhlz/BnMOr6CJij00Yc0wZKjROW8QxcuFli5h0tRe8zNWMeH6raf8noAir9qoJFvmlO7CxltJ8Te3rMj66bE+Xoyub/7SmlpizhI7gS5Gy2kLJvVBsf3UMhsIXKRS9TAK6y+KgiE9TWTzgmshj57NkIOEIr1o680hAcgHgE4Ioy2wqoAoIKVlO6kE+Peb72xXH9cOOSQhCZv3X68TVGnosKzAhZWuO+J6EJ1v9v7XpVdJEEzUyYXgqG95tZ5sL9YskFsZko= + - secure: u4L8AlquJgwcfWA3yooJTp/4+mh9x4KOMAsNJQE/BWYhsSbB35B/XAadidWYtvGY6DTZW7NQPi/IeRVyfZPYQZeMlmdsq6bV3T7R/AYPXNmglXMHjpBog59gYSsjnXpycAE6+kTLzHFykVVUkegBOHPJRT71ZNj9gqJogTqGizC3lSYAPqTJb3PbQl3TsJmFjkwWhUrzoj/LSuqwQZT3aPxeDRQ7H2D66U/WqbmbWBpIGGJ+EV2OZdjZYVJ+gcBicC5UB7KGjwwwMi8MVBlo4bdOnxrGGmVmuFRe8c4aZD/cq+9XPHhPU4iUXgOf4yNi7kW0J5LHh/kZUl1mG9Xz1iIgCNHFU9o/x4KFnauLUHsQV8UhYJOV1QqOO+SXRI2XREgIEA/9LQio78dynWAw3iWrk8c8kHOZ+R7uyk88BxEP0tjBlwfJm4ukEjj0a2TCxjg0hE5GTTcTioanjqiUpMvyJ5CITnf+dHGxGf9x1OhG8Qbjd/BEh3L0Wc+tNQGPi5sVPomA0OkmmLu9FWEFX95maZL8iOBy6DC27JHRw2vevY2wNJnkHESlaYLdLQZ7mgdmn6T211hDto3ojckxwYmSrZnVluRez4e8KwQ/sCABMY918VcD4tZLObpm9fqu55rR+XyTzkxbw7C3xj4EHQT4isQPVU3oMKeeCYs3FiU= + - secure: XyVKWRDLwo8wxt/jnndXh4jGt/AhZnj4Wqg4eJyJlsG+eXX8PREvYtlVyNmE1RWUunkYvYQK6hSIvwQmC5NCkI8bIAxKeDpqYaXuhidId6D8sq3hzpHE2vrfXn4ZkNNd7KI8qEpAg1r4wLOoxx+a+4Go1w7TyBmv/jXWc6WhqlropkGY7xzganphET/Fn+rsnZEhZga/obbYqASt/KRLY4arBYTAX/2+NiHiKQ2HT3Tq4v7Xcq5uqbfPOVDvlo/xagLKLfmogmUoxZ6DVgZZV38qirrcXUah7pwA8fikUvlAyS5pfEByg7rFCZIFPehI0+B70lmX/eznJkLl8sqxCC+TyZQlORsiyhZCMaX9y7VhKWO3tSoif2+5SBqenowiKi2MRiAZf/rgF/xeQPpmo/1E0zUNaM9H/DvFQR6H6kl8g9ilvbViqly1Uz+DdTtEiy3MoFTEAuTO7HvAxve+4/3J7dMzLyCpzpka1StttTjNe4hXe0V1lAxOmxJFWaQGYj2fjWFHJhB6PopoVBR90DjAVJfruCEvfhe+bDIDZbvpBiX0XafavYx3rn+dKfzSK4HzIty1rH4IrXDByZMxwNN3n3DE+ToBOoH5dpR4PVMv2dmjsKzLFT9XQ051SXhdn864YShX4dls9SOPChkSLGU3g3MICBdpBwq2MTbWGS8= + - secure: tjnbsB6ZjeeetXRp1PAyV2Zfj+C/dSfuyCjUwiMh0LvPSIJrWyLQfuA3pU+JjHi8ubwLYshGx1L5in3vTvvPQxZ+plzvy/qT1cmIeqj86Hv8BN1tDcfFzAnoefs4KB0AmLirfdhFYjXaulzni+/X5QyThtK15XlidmVHIuXZykw9VWfjVA0dIOxunLY+SNxFD41iVLaAjRHBA8ZqvJMB/zCNDBe0VXz8S75kOLoZ9LsOMRmWZ+pmwskDcPC/LPpwG7WfI2haQQG47UTQlM0C9LfTujZ8NjLRIgAOQylbJw3T/HwVoFbrhOBSKtHr9hdfjvTy3RVDNnPUXS2gqo7HcC6I3Z53ATvN13j+2e/jwv0i9JqVCAqw9woHZqOEDD6OnDp9grfMa8/diRJUBCJPwTfszD01vp5mHEsJov5doSwd5sNI8pxOOt2qPAoomsZ4V63nh4r7/PZw5sx5j4LxeerbHlSdxxqav+mSUYmA5ajhmwvnmTQoIYftxFNEvtMJcYopTO/3zMl85hYi9hifAfA9fL4/+ScFRc0kKYkkZbPX8ubx0u96Su1FrP006cPl9p7PUeYXFL3prJcvU7CXi5P63/c6FvHWB2ZPf9OT7UuBnjIYGVGjs/YM1iYxWNOrvu5fqyjBoTNfcG754RoB1zrjudtaEU4pbmlIGOyOm/4= diff --git a/README.md b/README.md index 92a0581..35d1c25 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) +# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.java) > This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer). diff --git a/build.gradle b/build.gradle index 8bf49b0..729e19e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,13 @@ plugins { + id 'de.marcphilipp.nexus-publish' version '0.2.0' id 'io.codearte.nexus-staging' version '0.21.0' } apply plugin: 'java-library' -apply plugin: 'maven' apply plugin: 'signing' group = 'org.algorithm-visualizer' -version = '2.3.4' +version = '2.3.5' sourceCompatibility = 1.8 repositories { @@ -18,65 +18,66 @@ dependencies { implementation 'com.google.code.gson:gson:2.8.5' } -task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc -} - task sourcesJar(type: Jar) { classifier = 'sources' from sourceSets.main.allSource } -artifacts { - archives javadocJar, sourcesJar +task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc +} + +allprojects { + ext.'signing.keyId' = System.getenv('SIGNING_KEY_ID') + ext.'signing.password' = System.getenv('SIGNING_PASSWORD') + ext.'signing.secretKeyRingFile' = 'pubring.gpg' } signing { - sign configurations.archives + sign publishing.publications } -uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } +nexusStaging { + username = System.getenv('OSSRH_USERNAME') + password = System.getenv('OSSRH_PASSWORD') + packageGroup = 'org.algorithm-visualizer' + stagingProfileId = "bf87e8672f1be7" +} - pom.project { - name 'tracers.java' +publishing { + publications { + mavenJava(MavenPublication) { + from components.java + artifact sourcesJar + artifact javadocJar + pom { packaging 'jar' - // optionally artifactId can be defined here - description 'Visualization Library for Java' - url 'https://github.com/algorithm-visualizer/tracers.java' + name = 'tracers.java' + description = 'Visualization Library for Java' + url = 'https://github.com/algorithm-visualizer/tracers.java' scm { - connection 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' - developerConnection 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' - url 'https://github.com/algorithm-visualizer/tracers.java' + connection = 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' + developerConnection = 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' + url = 'https://github.com/algorithm-visualizer/tracers.java' } licenses { license { - name 'The MIT License (MIT)' - url 'http://opensource.org/licenses/MIT' + name = 'The MIT License (MIT)' + url = 'http://opensource.org/licenses/MIT' } } developers { developer { - id 'parkjs814' - name 'Jinseo Jason Park' - email 'jason.park@gatech.edu' + id = 'parkjs814' + name = 'Jinseo Jason Park' + email = 'jason.park@gatech.edu' } } } } } -} +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d2c45a4..44e7c4d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100755 index 74da4d4..0000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -PROJECT_ROOT="$(dirname "$0")/.." - -cd ${PROJECT_ROOT} && - -openssl aes-256-cbc -K $encrypted_1d787f3de7c3_key -iv $encrypted_1d787f3de7c3_iv -in pubring.gpg.enc -out pubring.gpg -d && - -./gradlew uploadArchives && - -./gradlew closeAndReleaseRepository diff --git a/src/test/java/org/algorithm_visualizer/Test.java b/src/test/java/org/algorithm_visualizer/Test.java index c8f1969..3f41bb7 100644 --- a/src/test/java/org/algorithm_visualizer/Test.java +++ b/src/test/java/org/algorithm_visualizer/Test.java @@ -40,6 +40,6 @@ void highlight(int line) { } public static void main(String[] args) { - new Test(); + throw new Error("aweg"); } } From 7bc793c87611f437d5b044fa4929a8eb881f2e98 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Fri, 21 Jun 2019 17:10:08 +0900 Subject: [PATCH 06/13] Add pubring.gpg to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index de2c62e..62bee05 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /build /out .DS_Store +pubring.gpg From 35c2442ae9f792bea76e962451968eae07ab4975 Mon Sep 17 00:00:00 2001 From: Jinseo Park Date: Fri, 21 Jun 2019 17:57:49 +0900 Subject: [PATCH 07/13] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 35d1c25..741118b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.java) +# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) [![API reference](https://img.shields.io/badge/documentation-java-red.svg?style=flat-square)](https://javadoc.io/doc/org.algorithm-visualizer/tracers-java/) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.java) > This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer). @@ -37,7 +37,7 @@ class Main { } ``` -Check out the [API reference](https://github.com/algorithm-visualizer/algorithm-visualizer/wiki) for more information. +Check out the [API reference](https://javadoc.io/doc/org.algorithm-visualizer/tracers-java/) for more information. ## Contributing From 0a2af2eeb87b81cf0def5b1055515eb8b15033ec Mon Sep 17 00:00:00 2001 From: Jason Park Date: Sat, 22 Jun 2019 05:48:43 +0900 Subject: [PATCH 08/13] Use JitPack instead of Sonatype/MavenCentral to publish --- .travis.yml | 13 ---------- build.gradle | 64 ++++-------------------------------------------- pubring.gpg.enc | Bin 2640 -> 0 bytes settings.gradle | 1 - 4 files changed, 5 insertions(+), 73 deletions(-) delete mode 100644 pubring.gpg.enc delete mode 100644 settings.gradle diff --git a/.travis.yml b/.travis.yml index cad012e..b69ff53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,23 +7,10 @@ cache: directories: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ -before_install: openssl aes-256-cbc -K ${encrypted_1d787f3de7c3_key} -iv ${encrypted_1d787f3de7c3_iv} -in pubring.gpg.enc -out pubring.gpg -d deploy: - - provider: script - script: ./gradlew publish closeAndReleaseRepository - skip_cleanup: true - on: - branch: master - tags: true - provider: releases api_key: secure: Va5i+Jn2pDMm+65t3rA7rA7AkOl0zmQhecCXkvHTdxq/ETWlWGlt9YBN17wWW8rHQx4BPfN/PSpvisTaevTyWBlc7bVnHJlPOBVYk13El0q8H45EMmNuGZveL9suN7q+l6oZk3ZHA8Y5OCHr7jvnXnMa5XfBM5N1am27lFXrSx/+CsPyVnmP+m2g2U0iLAJNnW4H/eU3hJzKsf9LwbPlLGdH6t1CdOQOhBsMr/yOe3ThRjkRQ49XGwl8XXewkA7AsItGUxBQkAqMBwv5NuiGCcNK7oiiDGI8z8ZDZasedHzWlx9NgIdCLv6XGXV/5UK/MsuFjF2V+Bx4WRryh7ERwjMmcucutEejpxO/zlPwdKD6nCmcYZQmR9ITlp2v1Efn41p7x/uyFfmIGJGNTJ3hLK5uHPQSn+ahCbF/0y5Mbwz3u8U0mYxukOKHRoJs812ubezsM2IOvyPCkYtBiSHVLB13l9uuWZfVU85nUuyHzcLMacIvqic7YxDgbbP4c4ZW8kYeHONRGu+sgWj00iLMRClcjR+UdjISEqBxa36XCxUVaHq3btVnhiUq37YBLoorEtxN1Pz27JGAmxDlTm9s3cx4FLW+A1CbAg17D6eg9tqziOkcBEzAkAD0DvH/GWEZkuSuE3aiujJTc7qhOWONU3WR062Ow/c6QU2bCMpQPOs= on: branch: master tags: true -env: - global: - - secure: c3f4qPFpEGq7NB5rnJO8lBPmAIdqlCNx1KLtyOzIknOJuL/Dv8FrSqiaFjOfxRC9wqYDKuhPRUFDd6o6JF2+t7CZDdrABTVXw2akcTcQxSWYwSviLCLek6fb/5LPA0FW63bYUcTj7thfVkWdxIen7wToQOkYOz/RJXU9CE21/T4DxnaOgZIoXaFqEuYCT/YZrT5DRQSZ2AmecgHx1Q+z2qlGRI3SEVPrVGiA3pu1KNGvIQryhnIn6mxsQ1fI0vbTOUaekZcatLKmscxbqbWKoC8Gx76sj7w7Azai7ihEVii/5EBSKwIfo6BdH3KfKk7IlJCj27T7Y3inqrzQ7ojVq1XUAYytCjMwQAFTjY6UfGfOzZ0Y8ef84wj5zbBSxWx7YDQKEI3fmhE/BiPiuXsZ8F8qut45hsQrqCynDhlz/BnMOr6CJij00Yc0wZKjROW8QxcuFli5h0tRe8zNWMeH6raf8noAir9qoJFvmlO7CxltJ8Te3rMj66bE+Xoyub/7SmlpizhI7gS5Gy2kLJvVBsf3UMhsIXKRS9TAK6y+KgiE9TWTzgmshj57NkIOEIr1o680hAcgHgE4Ioy2wqoAoIKVlO6kE+Peb72xXH9cOOSQhCZv3X68TVGnosKzAhZWuO+J6EJ1v9v7XpVdJEEzUyYXgqG95tZ5sL9YskFsZko= - - secure: u4L8AlquJgwcfWA3yooJTp/4+mh9x4KOMAsNJQE/BWYhsSbB35B/XAadidWYtvGY6DTZW7NQPi/IeRVyfZPYQZeMlmdsq6bV3T7R/AYPXNmglXMHjpBog59gYSsjnXpycAE6+kTLzHFykVVUkegBOHPJRT71ZNj9gqJogTqGizC3lSYAPqTJb3PbQl3TsJmFjkwWhUrzoj/LSuqwQZT3aPxeDRQ7H2D66U/WqbmbWBpIGGJ+EV2OZdjZYVJ+gcBicC5UB7KGjwwwMi8MVBlo4bdOnxrGGmVmuFRe8c4aZD/cq+9XPHhPU4iUXgOf4yNi7kW0J5LHh/kZUl1mG9Xz1iIgCNHFU9o/x4KFnauLUHsQV8UhYJOV1QqOO+SXRI2XREgIEA/9LQio78dynWAw3iWrk8c8kHOZ+R7uyk88BxEP0tjBlwfJm4ukEjj0a2TCxjg0hE5GTTcTioanjqiUpMvyJ5CITnf+dHGxGf9x1OhG8Qbjd/BEh3L0Wc+tNQGPi5sVPomA0OkmmLu9FWEFX95maZL8iOBy6DC27JHRw2vevY2wNJnkHESlaYLdLQZ7mgdmn6T211hDto3ojckxwYmSrZnVluRez4e8KwQ/sCABMY918VcD4tZLObpm9fqu55rR+XyTzkxbw7C3xj4EHQT4isQPVU3oMKeeCYs3FiU= - - secure: XyVKWRDLwo8wxt/jnndXh4jGt/AhZnj4Wqg4eJyJlsG+eXX8PREvYtlVyNmE1RWUunkYvYQK6hSIvwQmC5NCkI8bIAxKeDpqYaXuhidId6D8sq3hzpHE2vrfXn4ZkNNd7KI8qEpAg1r4wLOoxx+a+4Go1w7TyBmv/jXWc6WhqlropkGY7xzganphET/Fn+rsnZEhZga/obbYqASt/KRLY4arBYTAX/2+NiHiKQ2HT3Tq4v7Xcq5uqbfPOVDvlo/xagLKLfmogmUoxZ6DVgZZV38qirrcXUah7pwA8fikUvlAyS5pfEByg7rFCZIFPehI0+B70lmX/eznJkLl8sqxCC+TyZQlORsiyhZCMaX9y7VhKWO3tSoif2+5SBqenowiKi2MRiAZf/rgF/xeQPpmo/1E0zUNaM9H/DvFQR6H6kl8g9ilvbViqly1Uz+DdTtEiy3MoFTEAuTO7HvAxve+4/3J7dMzLyCpzpka1StttTjNe4hXe0V1lAxOmxJFWaQGYj2fjWFHJhB6PopoVBR90DjAVJfruCEvfhe+bDIDZbvpBiX0XafavYx3rn+dKfzSK4HzIty1rH4IrXDByZMxwNN3n3DE+ToBOoH5dpR4PVMv2dmjsKzLFT9XQ051SXhdn864YShX4dls9SOPChkSLGU3g3MICBdpBwq2MTbWGS8= - - secure: tjnbsB6ZjeeetXRp1PAyV2Zfj+C/dSfuyCjUwiMh0LvPSIJrWyLQfuA3pU+JjHi8ubwLYshGx1L5in3vTvvPQxZ+plzvy/qT1cmIeqj86Hv8BN1tDcfFzAnoefs4KB0AmLirfdhFYjXaulzni+/X5QyThtK15XlidmVHIuXZykw9VWfjVA0dIOxunLY+SNxFD41iVLaAjRHBA8ZqvJMB/zCNDBe0VXz8S75kOLoZ9LsOMRmWZ+pmwskDcPC/LPpwG7WfI2haQQG47UTQlM0C9LfTujZ8NjLRIgAOQylbJw3T/HwVoFbrhOBSKtHr9hdfjvTy3RVDNnPUXS2gqo7HcC6I3Z53ATvN13j+2e/jwv0i9JqVCAqw9woHZqOEDD6OnDp9grfMa8/diRJUBCJPwTfszD01vp5mHEsJov5doSwd5sNI8pxOOt2qPAoomsZ4V63nh4r7/PZw5sx5j4LxeerbHlSdxxqav+mSUYmA5ajhmwvnmTQoIYftxFNEvtMJcYopTO/3zMl85hYi9hifAfA9fL4/+ScFRc0kKYkkZbPX8ubx0u96Su1FrP006cPl9p7PUeYXFL3prJcvU7CXi5P63/c6FvHWB2ZPf9OT7UuBnjIYGVGjs/YM1iYxWNOrvu5fqyjBoTNfcG754RoB1zrjudtaEU4pbmlIGOyOm/4= diff --git a/build.gradle b/build.gradle index 729e19e..41dbebc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,8 @@ -plugins { - id 'de.marcphilipp.nexus-publish' version '0.2.0' - id 'io.codearte.nexus-staging' version '0.21.0' -} - apply plugin: 'java-library' -apply plugin: 'signing' +apply plugin: 'maven-publish' group = 'org.algorithm-visualizer' -version = '2.3.5' +version = '2.3.6' sourceCompatibility = 1.8 repositories { @@ -28,56 +23,7 @@ task javadocJar(type: Jar) { from javadoc } -allprojects { - ext.'signing.keyId' = System.getenv('SIGNING_KEY_ID') - ext.'signing.password' = System.getenv('SIGNING_PASSWORD') - ext.'signing.secretKeyRingFile' = 'pubring.gpg' -} - -signing { - sign publishing.publications -} - -nexusStaging { - username = System.getenv('OSSRH_USERNAME') - password = System.getenv('OSSRH_PASSWORD') - packageGroup = 'org.algorithm-visualizer' - stagingProfileId = "bf87e8672f1be7" +artifacts { + archives sourcesJar + archives javadocJar } - -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - artifact sourcesJar - artifact javadocJar - pom { - packaging 'jar' - name = 'tracers.java' - description = 'Visualization Library for Java' - url = 'https://github.com/algorithm-visualizer/tracers.java' - - scm { - connection = 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' - developerConnection = 'scm:git:git@github.com:algorithm-visualizer/tracers.java.git' - url = 'https://github.com/algorithm-visualizer/tracers.java' - } - - licenses { - license { - name = 'The MIT License (MIT)' - url = 'http://opensource.org/licenses/MIT' - } - } - - developers { - developer { - id = 'parkjs814' - name = 'Jinseo Jason Park' - email = 'jason.park@gatech.edu' - } - } - } - } - } -} \ No newline at end of file diff --git a/pubring.gpg.enc b/pubring.gpg.enc deleted file mode 100644 index 98068dcd02e895cd20186afb75be66140241549d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2640 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 diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 48a87c3..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'tracers-java' From aeac318aa08e87f3c9a73ad688d74a819f711630 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Sat, 22 Jun 2019 06:26:48 +0900 Subject: [PATCH 09/13] Test JitPack build --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 41dbebc..b893296 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'java-library' -apply plugin: 'maven-publish' +apply plugin: 'maven' group = 'org.algorithm-visualizer' -version = '2.3.6' +version = '2.3.7' sourceCompatibility = 1.8 repositories { From 086f3aa57bbd2ad56633b8cbb29923d9206f8cc6 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Sun, 23 Jun 2019 02:49:25 +0900 Subject: [PATCH 10/13] Automate publishing Javadoc and deploying `extractor.java` --- .travis.yml | 36 +++++++++++++++++++++++++++++++----- .travis/extractor.sh | 29 +++++++++++++++++++++++++++++ .travis/jitpack.sh | 21 +++++++++++++++++++++ README.md | 33 +++++++++++++++++++++++++++------ build.gradle | 2 +- 5 files changed, 109 insertions(+), 12 deletions(-) create mode 100755 .travis/extractor.sh create mode 100755 .travis/jitpack.sh diff --git a/.travis.yml b/.travis.yml index b69ff53..188145b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,38 @@ before_cache: - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ cache: directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ + - "$HOME/.gradle/caches/" + - "$HOME/.gradle/wrapper/" deploy: + # Publish Javadoc to GitHub Pages + - provider: pages + skip_cleanup: true + github_token: $GITHUB_ACCESS_TOKEN + local_dir: build/docs/javadoc + keep_history: true + on: + tags: true + + # Create a GitHub release - provider: releases - api_key: - secure: Va5i+Jn2pDMm+65t3rA7rA7AkOl0zmQhecCXkvHTdxq/ETWlWGlt9YBN17wWW8rHQx4BPfN/PSpvisTaevTyWBlc7bVnHJlPOBVYk13El0q8H45EMmNuGZveL9suN7q+l6oZk3ZHA8Y5OCHr7jvnXnMa5XfBM5N1am27lFXrSx/+CsPyVnmP+m2g2U0iLAJNnW4H/eU3hJzKsf9LwbPlLGdH6t1CdOQOhBsMr/yOe3ThRjkRQ49XGwl8XXewkA7AsItGUxBQkAqMBwv5NuiGCcNK7oiiDGI8z8ZDZasedHzWlx9NgIdCLv6XGXV/5UK/MsuFjF2V+Bx4WRryh7ERwjMmcucutEejpxO/zlPwdKD6nCmcYZQmR9ITlp2v1Efn41p7x/uyFfmIGJGNTJ3hLK5uHPQSn+ahCbF/0y5Mbwz3u8U0mYxukOKHRoJs812ubezsM2IOvyPCkYtBiSHVLB13l9uuWZfVU85nUuyHzcLMacIvqic7YxDgbbP4c4ZW8kYeHONRGu+sgWj00iLMRClcjR+UdjISEqBxa36XCxUVaHq3btVnhiUq37YBLoorEtxN1Pz27JGAmxDlTm9s3cx4FLW+A1CbAg17D6eg9tqziOkcBEzAkAD0DvH/GWEZkuSuE3aiujJTc7qhOWONU3WR062Ow/c6QU2bCMpQPOs= + api_key: $GITHUB_ACCESS_TOKEN + on: + tags: true + + # Trigger JitPack to build + - provider: script + script: .travis/jitpack.sh $TRAVIS_TAG + on: + tags: true + + # Trigger Travis CI to deploy `extractor.java` + - provider: script + script: .travis/extractor.sh $TRAVIS_TAG $TRAVIS_ACCESS_TOKEN on: - branch: master tags: true +env: + global: + # GITHUB_ACCESS_TOKEN + - secure: hEgt5ke7q8FouZlRjKTq6eXWSKOAzEK3Li8ffBl7WdcXgorRH7C6dY4aXldHNaG4+R2FCOSzwf8ke5XYZRJT/J45QKWAapJ/hTOqzjD2kWBf0sBcshLrSsyKWx3o6n0jaO8Owv+pgw0f4IcEIOoGW0Lj6Sq1RmErn6i8Whi9FIV9BSKG/ICpyPA+iqqpwYdZzP87D/w4wrlYzSOwLfmM08m46n/xsBiazNFH+Urj4/a9Lo2doA6FoCcFyc8wPQ0naX/y1Mj2UyJdlhVAqgmHGZ06DWpl8sUAXos/gCLOrSRgittjyDh+echRsziIJCBuIHdx1vSyUWiGpLzrb42FM6QuD0GoqqXbK84dm9rdK43rO/jBbGgib5xJK3itguqRk6BlSgMoYMZ5Fiv4uo42UDwgz+XF6xfw84eJdbwk+GtGzN5VgH9Qgnkl6sDsEkvPUAR6tlXvqP8s9Jkvkc4Xte4pXDL/m8Penv3ZBfwGsQQXB6tYEVS452HbhqPPRgrGM0LTGXIf/GyfLq2wEl1xVHZNcb7IP/I61X5A6B9szhtITqft6YEmAgyB8wdoQh8g/7pl8cFIh1kRvzS/MzMBaYhORS1kDbukYFLvscVwLwedUohsNlfpek744E1OUP26YYxwPF1NU2ym1R/hZ/M8O/C2gwAa8bZtRKQcQDDv/GY= + # TRAVIS_ACCESS_TOKEN + - secure: r2CXlCj8MkmlF+TPpBaRXy8Kl7leMAY5LrkUcQ4dU0MvCoAH1oGmGTitCIfjny0AFhCaGZu7jelTGI2SqZ115c1HYF/e4sXglrXWRU84LZjR+zro8hHmGTXrYZfhO5zYHmQYU6CfO8N5LWFlAzPgxrgRVJRKTyxv1JEc/dhIY0zjdbxE4cdCCIsLykPA6YG65w8OJbMnP4iZugmoBumh+Nr51bg8Ml72new8z6amVjKQC+xBVdwR+WWHPa7OE77B5eRd55jlLuUc9P8KZjYXm5VMVEQJnuTtI2X7roTDVszXGNT3cVCJQH44m3H4w1W8GHFU+SBOiyO4Yu0f0ecncvuH/P0LrwGvxotkpZiDK7CIfAoJKrNiCitUcU8ouuE+vX1wLio30L3CkrWxSHryp/MPYQTES1s26MeXuISf2R+twozmXQg/Cnpxw5WS8txzKNbwISlEJVXYMn80qHs7Jk9yGVzxgWEF3TZyWJwupRZbpruzQzz9+khPkyvyZd5kICb+85nL1Pxdbp3IirIoBJ40opnDahFWbx+KAkEx9OcVcxofDGr2gqRu15VW2OPhVE4NMtxMFeXFp+rhec32Pj2nhxk+IU8DwhG26yw/g/uUchIAN/7QXrppPsHY1D6hwtAkdg/42lZdzJHnivebLE58biRlFumBa24i4uyMWXU= diff --git a/.travis/extractor.sh b/.travis/extractor.sh new file mode 100755 index 0000000..53eceaf --- /dev/null +++ b/.travis/extractor.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +TRAVIS_TAG=$1 +TRAVIS_ACCESS_TOKEN=$2 +GITHUB_USER="algorithm-visualizer" +GITHUB_REPO="extractor.java" + +BODY="{ + \"request\": { + \"branch\": \"master\", + \"config\": { + \"env\": { + \"TRACERS_VERSION\": \"${TRAVIS_TAG}\" + } + } + } +}" + +STATUS_CODE=$(curl -s -o /dev/stderr -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -H "Travis-API-Version: 3" \ + -H "Authorization: token ${TRAVIS_ACCESS_TOKEN}" \ + -d "${BODY}" \ + "https://api.travis-ci.com/repo/${GITHUB_USER}%2F${GITHUB_REPO}/requests") + +if [[ ${STATUS_CODE} != 2* ]]; then + exit 1 +fi diff --git a/.travis/jitpack.sh b/.travis/jitpack.sh new file mode 100755 index 0000000..5763883 --- /dev/null +++ b/.travis/jitpack.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +TRAVIS_TAG=$1 +MAX_RETRIES=42 +INTERVAL=5 + +for (( i=1; i<=MAX_RETRIES; ++i)); do + STATUS_CODE=$(curl -s -o /dev/stderr -w "%{http_code}" \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -H "Travis-API-Version: 3" \ + "https://jitpack.io/org/algorithm-visualizer/tracers.java/${TRAVIS_TAG}/tracers.java-${TRAVIS_TAG}.pom") + if [[ ${STATUS_CODE} == 2* ]]; then + exit 0 + fi + echo " (${i}/${MAX_RETRIES})" + if [[ ${i} < ${MAX_RETRIES} ]]; then + sleep ${INTERVAL} + fi +done +exit 1 diff --git a/README.md b/README.md index 741118b..0069b66 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# tracers.java [![Maven Central](https://img.shields.io/maven-central/v/org.algorithm-visualizer/tracers-java.svg?style=flat-square)](https://search.maven.org/artifact/org.algorithm-visualizer/tracers-java) [![API reference](https://img.shields.io/badge/documentation-java-red.svg?style=flat-square)](https://javadoc.io/doc/org.algorithm-visualizer/tracers-java/) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.java) +# tracers.java [![JitPack](https://img.shields.io/jitpack/v/github/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://jitpack.io/#org.algorithm-visualizer/tracers.java) [![API reference](https://img.shields.io/badge/documentation-java-red.svg?style=flat-square)](https://algorithm-visualizer.github.io/tracers.java/) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.java.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.java) > This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer). @@ -6,19 +6,40 @@ You can use it on [algorithm-visualizer.org](https://algorithm-visualizer.org/) or locally on your machine. ## Installation +### Gradle +1. Add the JitPack repository to `build.gradle`. + ```gradle + allprojects { + repositories { + jcenter() + maven { url "https://jitpack.io" } + } + } + ``` -- Gradle +2. Add the dependency. ```gradle dependencies { - implementation 'org.algorithm-visualizer:tracers-java:+' + implementation 'org.algorithm-visualizer:tracers.java:+' } ``` -- Maven +### Maven +1. Add the JitPack repository to `pom.xml`. ```xml + + + jitpack.io + https://jitpack.io + + + ``` + +2. Add the dependency. + ``` org.algorithm-visualizer - tracers-java + tracers.java [1.0.0,) ``` @@ -37,7 +58,7 @@ class Main { } ``` -Check out the [API reference](https://javadoc.io/doc/org.algorithm-visualizer/tracers-java/) for more information. +Check out the [API reference](https://algorithm-visualizer.github.io/tracers.java/) for more information. ## Contributing diff --git a/build.gradle b/build.gradle index b893296..a9cb376 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java-library' apply plugin: 'maven' group = 'org.algorithm-visualizer' -version = '2.3.7' +version = '2.3.8' sourceCompatibility = 1.8 repositories { From efdf5c766012bb23b4a6b7cc7298374d96250779 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Sun, 23 Jun 2019 19:45:16 +0900 Subject: [PATCH 11/13] Do not send tracers version when triggering build on `extractor.java` --- .travis.yml | 6 +++--- .travis/extractor.sh | 11 ++--------- build.gradle | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 188145b..e0be2b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ before_cache: - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ cache: directories: - - "$HOME/.gradle/caches/" - - "$HOME/.gradle/wrapper/" + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ deploy: # Publish Javadoc to GitHub Pages - provider: pages @@ -31,7 +31,7 @@ deploy: # Trigger Travis CI to deploy `extractor.java` - provider: script - script: .travis/extractor.sh $TRAVIS_TAG $TRAVIS_ACCESS_TOKEN + script: .travis/extractor.sh $TRAVIS_ACCESS_TOKEN on: tags: true env: diff --git a/.travis/extractor.sh b/.travis/extractor.sh index 53eceaf..06b4f15 100755 --- a/.travis/extractor.sh +++ b/.travis/extractor.sh @@ -1,18 +1,11 @@ #!/usr/bin/env bash -TRAVIS_TAG=$1 -TRAVIS_ACCESS_TOKEN=$2 +TRAVIS_ACCESS_TOKEN=$1 GITHUB_USER="algorithm-visualizer" GITHUB_REPO="extractor.java" - BODY="{ \"request\": { - \"branch\": \"master\", - \"config\": { - \"env\": { - \"TRACERS_VERSION\": \"${TRAVIS_TAG}\" - } - } + \"branch\": \"master\" } }" diff --git a/build.gradle b/build.gradle index a9cb376..30d3cd5 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java-library' apply plugin: 'maven' group = 'org.algorithm-visualizer' -version = '2.3.8' +version = '2.3.9' sourceCompatibility = 1.8 repositories { From 5cf5fdf40f651127d983e79fb9bbcfaf38b979f5 Mon Sep 17 00:00:00 2001 From: Jason Park Date: Sun, 23 Jun 2019 19:59:14 +0900 Subject: [PATCH 12/13] Remove the artifact of the same version if it already exists --- .travis.yml | 4 +++- .travis/jitpack.sh | 8 +++++++- build.gradle | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e0be2b2..5cd0b85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ deploy: # Trigger JitPack to build - provider: script - script: .travis/jitpack.sh $TRAVIS_TAG + script: .travis/jitpack.sh $JITPACK_ACCESS_TOKEN $TRAVIS_TAG on: tags: true @@ -40,3 +40,5 @@ env: - secure: hEgt5ke7q8FouZlRjKTq6eXWSKOAzEK3Li8ffBl7WdcXgorRH7C6dY4aXldHNaG4+R2FCOSzwf8ke5XYZRJT/J45QKWAapJ/hTOqzjD2kWBf0sBcshLrSsyKWx3o6n0jaO8Owv+pgw0f4IcEIOoGW0Lj6Sq1RmErn6i8Whi9FIV9BSKG/ICpyPA+iqqpwYdZzP87D/w4wrlYzSOwLfmM08m46n/xsBiazNFH+Urj4/a9Lo2doA6FoCcFyc8wPQ0naX/y1Mj2UyJdlhVAqgmHGZ06DWpl8sUAXos/gCLOrSRgittjyDh+echRsziIJCBuIHdx1vSyUWiGpLzrb42FM6QuD0GoqqXbK84dm9rdK43rO/jBbGgib5xJK3itguqRk6BlSgMoYMZ5Fiv4uo42UDwgz+XF6xfw84eJdbwk+GtGzN5VgH9Qgnkl6sDsEkvPUAR6tlXvqP8s9Jkvkc4Xte4pXDL/m8Penv3ZBfwGsQQXB6tYEVS452HbhqPPRgrGM0LTGXIf/GyfLq2wEl1xVHZNcb7IP/I61X5A6B9szhtITqft6YEmAgyB8wdoQh8g/7pl8cFIh1kRvzS/MzMBaYhORS1kDbukYFLvscVwLwedUohsNlfpek744E1OUP26YYxwPF1NU2ym1R/hZ/M8O/C2gwAa8bZtRKQcQDDv/GY= # TRAVIS_ACCESS_TOKEN - secure: r2CXlCj8MkmlF+TPpBaRXy8Kl7leMAY5LrkUcQ4dU0MvCoAH1oGmGTitCIfjny0AFhCaGZu7jelTGI2SqZ115c1HYF/e4sXglrXWRU84LZjR+zro8hHmGTXrYZfhO5zYHmQYU6CfO8N5LWFlAzPgxrgRVJRKTyxv1JEc/dhIY0zjdbxE4cdCCIsLykPA6YG65w8OJbMnP4iZugmoBumh+Nr51bg8Ml72new8z6amVjKQC+xBVdwR+WWHPa7OE77B5eRd55jlLuUc9P8KZjYXm5VMVEQJnuTtI2X7roTDVszXGNT3cVCJQH44m3H4w1W8GHFU+SBOiyO4Yu0f0ecncvuH/P0LrwGvxotkpZiDK7CIfAoJKrNiCitUcU8ouuE+vX1wLio30L3CkrWxSHryp/MPYQTES1s26MeXuISf2R+twozmXQg/Cnpxw5WS8txzKNbwISlEJVXYMn80qHs7Jk9yGVzxgWEF3TZyWJwupRZbpruzQzz9+khPkyvyZd5kICb+85nL1Pxdbp3IirIoBJ40opnDahFWbx+KAkEx9OcVcxofDGr2gqRu15VW2OPhVE4NMtxMFeXFp+rhec32Pj2nhxk+IU8DwhG26yw/g/uUchIAN/7QXrppPsHY1D6hwtAkdg/42lZdzJHnivebLE58biRlFumBa24i4uyMWXU= + # JITPACK_ACCESS_TOKEN + - secure: A+f57e4haNAGvWEJCz4uN9gEZsRq0Pz1M5V4AfdguJx1IbzedngxZwFMHm9oIVFnxyhpdJGguj1oX+suW+VZjBNhQ6/xats/H2YzP10mauTB84w9KSJTVymL/SyaDs6IbAcdSjAYirCOiqQ6l4YuCMToGjbc0BHMnFPPzJpu2TduVJtqOKcXc4TpA9L/heIvpE8psFw/yl9gToXmO5bGYyaeVltaiAd+045mbieCE4z7Tvb4zPCNeqDYiY9hwwZRID1JJMw8I4RYxUTv6QebWCZPjjKqp0/yz0OCdMjdqdPWEBdnHDi59+VNgaaUd7qqZcruQiI5GzojSz2Q/1dGHveXkOmtWbS/E8c9VF36hvK3Z4oqiNfPWgXFj188+cguPTF/ABcrz9oTyIh8mwHhLYgXWQjWE9pWddJ6FDdyGqtyaAPe1lOF4SR3qqSTuxNdVsx9Ll0VZPGVhWMmrUr6kJfhIIW/eCrUwsQVGoJoeYQEcf3EGEEa/NtzHdNbITy3EZ68Gg29Pf6T+dJE/HtnuMrMvLeaKRovk/Ry60yDPIwTQohBCl3r6uL2pSj7hxacP2byeAB4CxxweBeX/pPIEP6LzqYOdmJ9Tv42JgPFYlbf8gjXS2arJTl3+sOALWgKYO9wsFnCxaP3739j1l6W01hp1Xpc2px0c9+faSMzvRE= \ No newline at end of file diff --git a/.travis/jitpack.sh b/.travis/jitpack.sh index 5763883..31b6039 100755 --- a/.travis/jitpack.sh +++ b/.travis/jitpack.sh @@ -1,9 +1,15 @@ #!/usr/bin/env bash -TRAVIS_TAG=$1 +JITPACK_ACCESS_TOKEN=$1 +TRAVIS_TAG=$2 +GROUP_ID="org.algorithm-visualizer" +ARTIFACT_ID="tracers.java" MAX_RETRIES=42 INTERVAL=5 +# Remove the artifact of the same version if it already exists +curl -u${JITPACK_ACCESS_TOKEN}: -X DELETE "https://jitpack.io/api/builds/${GROUP_ID}/${ARTIFACT_ID}/${TRAVIS_TAG}" + for (( i=1; i<=MAX_RETRIES; ++i)); do STATUS_CODE=$(curl -s -o /dev/stderr -w "%{http_code}" \ -H "Content-Type: application/json" \ diff --git a/build.gradle b/build.gradle index 30d3cd5..843d83b 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java-library' apply plugin: 'maven' group = 'org.algorithm-visualizer' -version = '2.3.9' +version = '2.3.10' sourceCompatibility = 1.8 repositories { From 12fa827899307be9499845ca5c2b337613899953 Mon Sep 17 00:00:00 2001 From: Jinseo Park Date: Sun, 30 Jun 2019 23:21:26 +0900 Subject: [PATCH 13/13] Update README.md --- README.md | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0069b66..674edf6 100644 --- a/README.md +++ b/README.md @@ -47,13 +47,49 @@ You can use it on [algorithm-visualizer.org](https://algorithm-visualizer.org/) ## Usage ```java +// import visualization libraries { import org.algorithm_visualizer.*; +// } class Main { - public static void main(String[] args) { - LogTracer logTracer = new LogTracer("Scratch Paper"); + // define tracer variables { + Array2DTracer array2dTracer = new Array2DTracer("Grid"); + LogTracer logTracer = new LogTracer("Console"); + // } + + // define input variables + String[] messages = { + "Visualize", + "your", + "own", + "code", + "here!", + }; + + // highlight each line of messages recursively + void highlight(int line) { + if (line >= messages.length) return; + String message = messages[line]; + // visualize { + logTracer.println(message); + array2dTracer.selectRow(line, 0, message.length() - 1); + Tracer.delay(); + array2dTracer.deselectRow(line, 0, message.length() - 1); + // } + highlight(line + 1); + } - logTracer.print("Visualize your own algorithm here!"); + Main() { + // visualize { + Layout.setRoot(new VerticalLayout(new Commander[]{array2dTracer, logTracer})); + array2dTracer.set(messages); + Tracer.delay(); + // } + highlight(0); + } + + public static void main(String[] args) { + new Main(); } } ```