From 8475fdd03a4eb654b66447cc240a3542ddae5a2d Mon Sep 17 00:00:00 2001 From: Antti Leinonen Date: Wed, 12 Feb 2020 15:18:19 +0200 Subject: [PATCH] Version 0.9.3 * Add a Windows installer * Update checkstyle * Update dependencies' versions * Update readme * Fix bugs --- README.md | 13 +- pom.xml | 30 ++- .../fi/helsinki/cs/tmc/cli/Application.java | 8 +- .../cli/command/hidden/DocumentCommand.java | 2 +- src/main/resources/google_checks.xml | 174 +++++++++++++----- .../cs/tmc/cli/backend/TmcUtilTest.java | 10 - 6 files changed, 162 insertions(+), 75 deletions(-) diff --git a/README.md b/README.md index 9879cf01..9461883b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ TMC-CLI is the command-line client for University of Helsinki's TestMyCode -fram * Java Runtime Environment 8 * Linux, Mac OS X or Microsoft Windows - * Currently only limited support for Windows * Other Unix-like systems may work, but are not tested * If you want autocompletion, Bash or a Bash-compatible shell is required @@ -33,6 +32,14 @@ curl -0 https://raw.githubusercontent.com/testmycode/tmc-cli/master/scripts/inst TMC-CLI should now be installed. You can try running it with `tmc` in a new terminal. +### Using the Windows installer + +Download this [installer](https://download.mooc.fi/tmc-cli/installers/TMC-cli_0.9.3_installer.exe) + +Run the installation wizard. + +TMC-CLI should now be installed. You can try running it with `tmc` in PowerShell/Command Prompt/other terminal software. + ### Manual installation Download the latest [release](https://github.com/testmycode/tmc-cli/releases/latest). If you use Linux or OS X, choose "tmc". If you use Windows, choose "tmc-cli-[VERSION].jar". @@ -62,6 +69,10 @@ Now that you've installed tmc-cli, you can view all available commands by runnin Delete tmc from the directory where you downloaded it, .tmc-autocomplete.sh from your home directory and remove 'source $HOME/.tmc-autocomplete' from your shell rc file. +### On Windows + +If you installed TMC-cli with the installer-exe found in this repository's installers-folder, you can just navigate to where you installed TMC-cli (probably C:\Program Files\TMC-cli), and run the uninstaller `unins000.exe` there. + ## Manual The Unix man page for tmc-cli is located in docs/tmc.1 in this repository. To view it, open it with `man -l tmc.1`. diff --git a/pom.xml b/pom.xml index d4afaeaa..86b5cb41 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 fi.helsinki.cs.tmc.cli tmc-cli - 0.9.2 + 0.9.3 jar UTF-8 @@ -14,16 +14,12 @@ - tmc - TMC repo - http://maven.testmycode.net/nexus/content/groups/public - - true - - - true - always - + maven.mooc.fi.releases + http://maven.mooc.fi/releases + + + maven.mooc.fi.snapshots + http://maven.mooc.fi/snapshots @@ -36,7 +32,7 @@ fi.helsinki.cs.tmc core - 0.10.12-SNAPSHOT + 0.10.13-SNAPSHOT commons-cli @@ -46,7 +42,7 @@ com.google.code.gson gson - 2.8.2 + 2.8.6 compile @@ -57,7 +53,7 @@ org.slf4j slf4j-log4j12 - 1.7.25 + 1.7.30 org.mockito @@ -198,20 +194,20 @@ org.apache.maven.plugins maven-checkstyle-plugin - 2.17 + 3.1.0 ${basedir}/src/main/resources/google_checks.xml true UTF-8 false true - ${project.build.sourceDirectory} + ${project.build.sourceDirectory} com.puppycrawl.tools checkstyle - 8.2 + 8.28 diff --git a/src/main/java/fi/helsinki/cs/tmc/cli/Application.java b/src/main/java/fi/helsinki/cs/tmc/cli/Application.java index 1f18bf17..7f86e64b 100644 --- a/src/main/java/fi/helsinki/cs/tmc/cli/Application.java +++ b/src/main/java/fi/helsinki/cs/tmc/cli/Application.java @@ -33,7 +33,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; /** * The application class for the program. diff --git a/src/main/java/fi/helsinki/cs/tmc/cli/command/hidden/DocumentCommand.java b/src/main/java/fi/helsinki/cs/tmc/cli/command/hidden/DocumentCommand.java index dde78094..628f8424 100644 --- a/src/main/java/fi/helsinki/cs/tmc/cli/command/hidden/DocumentCommand.java +++ b/src/main/java/fi/helsinki/cs/tmc/cli/command/hidden/DocumentCommand.java @@ -235,7 +235,7 @@ private String loadFile(String filename) { } try { - return IOUtils.toString(stream, StandardCharsets.UTF_8); + return IOUtils.toString(stream, StandardCharsets.UTF_8.toString()); } catch (IOException e) { io.errorln("Encoding failure... REALLY???"); return null; diff --git a/src/main/resources/google_checks.xml b/src/main/resources/google_checks.xml index 87ae910d..a214cc83 100644 --- a/src/main/resources/google_checks.xml +++ b/src/main/resources/google_checks.xml @@ -1,16 +1,17 @@ + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" + "https://checkstyle.org/dtds/configuration_1_3.dtd"> @@ -21,55 +22,97 @@ + + + + + + + + + + + - + + + + + + + - - + + - - - - - + + + - + + + + + + + - - - + - + + + + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> @@ -79,6 +122,9 @@ + @@ -111,58 +157,63 @@ + value="Package name ''{0}'' must match pattern ''{1}''."/> + + value="Type name ''{0}'' must match pattern ''{1}''."/> + value="Member name ''{0}'' must match pattern ''{1}''."/> + value="Parameter name ''{0}'' must match pattern ''{1}''."/> + + + + + value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> - + value="Local variable name ''{0}'' must match pattern ''{1}''."/> + value="Class type name ''{0}'' must match pattern ''{1}''."/> + value="Method type name ''{0}'' must match pattern ''{1}''."/> + value="Interface type name ''{0}'' must match pattern ''{1}''."/> + value="GenericWhitespace ''{0}'' is followed by whitespace."/> + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> + value="GenericWhitespace ''{0}'' should followed by whitespace."/> + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> @@ -175,6 +226,9 @@ + @@ -182,20 +236,35 @@ + + + + - - + - + + + - + - + @@ -203,28 +272,35 @@ + - + - + - + + + + + - + + value="Method name ''{0}'' must match pattern ''{1}''."/> @@ -232,6 +308,14 @@ - + + + + + + + + - \ No newline at end of file + diff --git a/src/test/java/fi/helsinki/cs/tmc/cli/backend/TmcUtilTest.java b/src/test/java/fi/helsinki/cs/tmc/cli/backend/TmcUtilTest.java index b9efe558..fe80b8e0 100644 --- a/src/test/java/fi/helsinki/cs/tmc/cli/backend/TmcUtilTest.java +++ b/src/test/java/fi/helsinki/cs/tmc/cli/backend/TmcUtilTest.java @@ -9,13 +9,9 @@ import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.powermock.api.mockito.PowerMockito.mockStatic; -import com.sun.source.util.TaskEvent; -import fi.helsinki.cs.tmc.cli.Application; import fi.helsinki.cs.tmc.cli.core.CliContext; import fi.helsinki.cs.tmc.cli.io.CliProgressObserver; import fi.helsinki.cs.tmc.cli.io.TestIo; @@ -29,21 +25,15 @@ import fi.helsinki.cs.tmc.core.domain.ProgressObserver; import fi.helsinki.cs.tmc.core.domain.submission.FeedbackAnswer; import fi.helsinki.cs.tmc.core.domain.submission.SubmissionResult; -import fi.helsinki.cs.tmc.core.exceptions.FailedHttpResponseException; -import fi.helsinki.cs.tmc.core.exceptions.ObsoleteClientException; import fi.helsinki.cs.tmc.core.holders.TmcSettingsHolder; import fi.helsinki.cs.tmc.langs.abstraction.ValidationResult; import fi.helsinki.cs.tmc.langs.domain.RunResult; -import fi.helsinki.cs.tmc.langs.util.TaskExecutor; -import org.apache.http.entity.BasicHttpEntity; -import org.apache.oltu.oauth2.common.exception.OAuthProblemException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.omg.PortableInterceptor.ServerRequestInfo; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner;