From a4111d9ccdcae026fe6298485794d822919910aa Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 14:53:45 +0200 Subject: [PATCH 01/20] Add common intellij paths to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 8d7be9e..2a0da48 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ !/tests/*/ nimcache + +.idea/ +*.iml From ad46aa402ecef7a929969fa82e1eb1e690a70529 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:37:16 +0200 Subject: [PATCH 02/20] Use 1.6.14 in CI instead of pre-1.6.0 git sha --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 83bb95f..bcfce30 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: matrix: nimversion: - 1.4.8 - - git:6b97889f44d06f66 + - 1.6.14 os: - ubuntu-latest - macOS-latest From 08bec4a023827f5c143f2c6c4fefcc7579988965 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:37:34 +0200 Subject: [PATCH 03/20] Add 2.0.0 to test matrix --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bcfce30..ae4c1cb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,6 +14,7 @@ jobs: nimversion: - 1.4.8 - 1.6.14 + - 2.0.0 os: - ubuntu-latest - macOS-latest From 2fe8aa71c352762706b7c79abed125a615cf7e54 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:38:59 +0200 Subject: [PATCH 04/20] Only test nim-in-action-code/Chapter7 for nim versions < 2.0 --- tests/tester.nim | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/tester.nim b/tests/tester.nim index 72f9374..836f25d 100644 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -287,9 +287,11 @@ when isMainModule: customRouterTest(useStdLib=false) customRouterTest(useStdLib=true) - # Verify that Nim in Action Tweeter still compiles. - test "Nim in Action - Tweeter": - let path = "tests/nim-in-action-code/Chapter7/Tweeter/src/tweeter.nim" - check execCmd("nim c --path:. " & path) == QuitSuccess + # nim-in-action Chapter7 is not compatible with nim >= 2.0 + when NimMajor < 2: + # Verify that Nim in Action Tweeter still compiles. + test "Nim in Action - Tweeter": + let path = "tests/nim-in-action-code/Chapter7/Tweeter/src/tweeter.nim" + check execCmd("nim c --path:. " & path) == QuitSuccess finally: doAssert execCmd("kill -15 " & $serverProcess.processID()) == QuitSuccess From c631652a34b5086c68e872e75ba45fad40040e35 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:39:22 +0200 Subject: [PATCH 05/20] Bump actions/checkout and iffy/install-nim --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ae4c1cb..3f762c0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,10 +20,10 @@ jobs: - macOS-latest - windows-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 with: submodules: true - - uses: iffy/install-nim@v3.2.0 + - uses: iffy/install-nim@v4 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From f05bd2ba86080ec6b3caab8248bbc88230672984 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:40:00 +0200 Subject: [PATCH 06/20] Run 'git submodule update --init' for 'nimble test' to ensure that all test requirements are present Only do this when nim version < 2.0 --- jester.nimble | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jester.nimble b/jester.nimble index d17be37..ac5cb4d 100644 --- a/jester.nimble +++ b/jester.nimble @@ -16,5 +16,7 @@ when not defined(windows): requires "httpbeast >= 0.4.0" task test, "Runs the test suite.": + when NimMajor < 2: + exec "git submodule update --init" exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" exec "nim c -r tests/tester" From 88b2ace3f583359d99a8f4b1a5e22aaffceddcbb Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:47:51 +0200 Subject: [PATCH 07/20] Add 'nimble refresh' and 'nimble install' for 'nimble test' task before running the tests --- .github/workflows/main.yml | 1 - jester.nimble | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3f762c0..4dfc8fa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -31,4 +31,3 @@ jobs: - name: Test run: | nimble test - nimble refresh diff --git a/jester.nimble b/jester.nimble index ac5cb4d..403c108 100644 --- a/jester.nimble +++ b/jester.nimble @@ -18,5 +18,7 @@ when not defined(windows): task test, "Runs the test suite.": when NimMajor < 2: exec "git submodule update --init" + exec "nimble refresh" + exec "nimble install" exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" exec "nim c -r tests/tester" From 5c9e5d33421caefb82c09dcc8c85f5ac8aef7c8e Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 18:51:20 +0200 Subject: [PATCH 08/20] Remove trailing whitespace --- tests/tester.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tester.nim b/tests/tester.nim index 836f25d..8790414 100644 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -154,7 +154,7 @@ proc allTest(useStdLib: bool) = let resp = waitFor client.get(address & "/foo/issue157") let headers = resp.headers check headers["Content-Type"] == "text/css" - + test "resp doesn't overwrite headers": let resp = waitFor client.get(address & "/foo/manyheaders") let headers = resp.headers From fef495a4a77534c56000726f6db6508b2955fa5d Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:08:02 +0200 Subject: [PATCH 09/20] Add support for duplicate keys in parameters by adding `paramValuesAsSeq` In contrast to `params` this returns a `Table[string, seq[string]]`. Closes #247 --- jester/request.nim | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/jester/request.nim b/jester/request.nim index 205f832..cc1d957 100644 --- a/jester/request.nim +++ b/jester/request.nim @@ -1,4 +1,5 @@ import uri, cgi, tables, logging, strutils, re, options +from sequtils import map import jester/private/utils @@ -116,6 +117,41 @@ proc params*(req: Request): Table[string, string] = except: logging.warn("Could not parse URL query.") +proc paramValuesAsSeq*(req: Request): Table[string, seq[string]] = + ## Parameters from the pattern and the query string. + ## + ## This allows for duplicated keys in the query (in contrast to `params`) + if req.patternParams.isSome(): + let patternParams: Table[string, string] = req.patternParams.get() + var patternParamsSeq: seq[(string, string)] = @[] + for key, val in pairs(patternParams): + patternParamsSeq.add (key, val) + + # We are not url-decoding the key/value for the patternParams (matches implementation in `params` + result = sequtils.map(patternParamsSeq, + proc(entry: (string, string)): (string, seq[string]) = + (entry[0], @[entry[1]]) + ).toTable() + else: + result = initTable[string, seq[string]]() + + var queriesToDecode: seq[string] = @[] + queriesToDecode.add query(req) + + let contentType = req.headers.getOrDefault("Content-Type") + if contentType.startswith("application/x-www-form-urlencoded"): + queriesToDecode.add req.body + + for query in queriesToDecode: + try: + for key, value in cgi.decodeData(query): + if result.hasKey(key): + result[key].add value + else: + result[key] = @[value] + except CgiError: + logging.warn("Incorrect query. Got: $1" % [query]) + proc formData*(req: Request): MultiData = let contentType = req.headers.getOrDefault("Content-Type") if contentType.startsWith("multipart/form-data"): From b8374b48a8f7cdaf50b74b535ef169b6dec79b99 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:25:16 +0200 Subject: [PATCH 10/20] Adapt `params` to use `cgi.decodeData` instead of `parseUrlQuery` This is also the same implementation used in `paramValuesAsSeq` (except for the return type), this way we ensure the same behaviour for the parsing/decoding steps. --- jester/request.nim | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/jester/request.nim b/jester/request.nim index cc1d957..1700365 100644 --- a/jester/request.nim +++ b/jester/request.nim @@ -94,28 +94,27 @@ proc ip*(req: Request): string = proc params*(req: Request): Table[string, string] = ## Parameters from the pattern and the query string. + ## + ## Note that this doesn't allow for duplicated keys (it simply returns the last occuring value) + ## Use `paramValuesAsSeq` if you need multiple values for a key if req.patternParams.isSome(): result = req.patternParams.get() else: result = initTable[string, string]() - when useHttpBeast: - let query = req.req.path.get("").parseUri().query - else: - let query = req.req.url.query - - try: - for key, val in cgi.decodeData(query): - result[key] = decodeUrl(val) - except CgiError: - logging.warn("Incorrect query. Got: $1" % [query]) + var queriesToDecode: seq[string] = @[] + queriesToDecode.add query(req) let contentType = req.headers.getOrDefault("Content-Type") if contentType.startswith("application/x-www-form-urlencoded"): + queriesToDecode.add req.body + + for query in queriesToDecode: try: - parseUrlQuery(req.body, result) - except: - logging.warn("Could not parse URL query.") + for key, val in cgi.decodeData(query): + result[key] = decodeUrl(val) + except CgiError: + logging.warn("Incorrect query. Got: $1" % [query]) proc paramValuesAsSeq*(req: Request): Table[string, seq[string]] = ## Parameters from the pattern and the query string. From f916b25c633d01ecf133759ad989124e39caf67a Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:27:09 +0200 Subject: [PATCH 11/20] Add tests for #247 --- tests/issue247.nim | 41 +++++++++++++++++++ tests/tester.nim | 99 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 tests/issue247.nim diff --git a/tests/issue247.nim b/tests/issue247.nim new file mode 100644 index 0000000..f7f2730 --- /dev/null +++ b/tests/issue247.nim @@ -0,0 +1,41 @@ +from std/cgi import decodeUrl +from std/strformat import fmt +from std/strutils import join +import jester + +settings: + port = Port(5454) + bindAddr = "127.0.0.1" + +proc formatParams(params: Table[string, string]): string = + result = "" + for key, value in params.pairs: + result.add fmt"{key}: {value}" + +proc formatSeqParams(params: Table[string, seq[string]]): string = + result = "" + for key, values in params.pairs: + let value = values.join "," + result.add fmt"{key}: {value}" + +routes: + get "/": + resp Http200 + get "/params": + let params = params request + resp formatParams params + get "/params/@val%23ue": + let params = params request + resp formatParams params + post "/params/@val%23ue": + let params = params request + resp formatParams params + get "/multi": + let params = paramValuesAsSeq request + resp formatSeqParams(params) + get "/@val%23ue": + let params = paramValuesAsSeq request + resp formatSeqParams(params) + post "/@val%23ue": + let params = paramValuesAsSeq request + resp formatSeqParams(params) diff --git a/tests/tester.nim b/tests/tester.nim index 8790414..8dd7178 100644 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -271,13 +271,108 @@ proc customRouterTest(useStdLib: bool) = let body = (waitFor resp.body) checkpoint body check body.startsWith("Something bad happened: Foobar") - + test "redirect in error": let resp = waitFor client.get(address & "/definitely404route") check resp.code == Http303 check resp.headers["location"] == address & "/404" check (waitFor resp.body) == "" +proc issue247(useStdLib: bool) = + waitFor startServer("issue247.nim", useStdLib) + var client = newAsyncHttpClient(maxRedirects = 0) + + suite "issue247 useStdLib=" & $useStdLib: + test "duplicate keys in query": + let resp = waitFor client.get(address & "/multi?a=1&a=2") + check (waitFor resp.body) == "a: 1,2" + + test "no duplicate keys in query": + let resp = waitFor client.get(address & "/multi?a=1") + check (waitFor resp.body) == "a: 1" + + test "assure that empty values are handled": + let resp = waitFor client.get(address & "/multi?a=1&a=") + check (waitFor resp.body) == "a: 1," + + test "assure that fragment is not parsed": + let resp = waitFor client.get(address & "/multi?a=1&#a=2") + check (waitFor resp.body) == "a: 1" + + test "ensure that values are url decoded per default": + let resp = waitFor client.get(address & "/multi?a=1&a=1%232") + check (waitFor resp.body) == "a: 1,1#2" + + test "ensure that keys are url decoded per default": + let resp = waitFor client.get(address & "/multi?a%23b=1&a%23b=1%232") + check (waitFor resp.body) == "a#b: 1,1#2" + + test "test different keys": + let resp = waitFor client.get(address & "/multi?a=1&b=2") + check (waitFor resp.body) == "b: 2a: 1" + + test "ensure that path params aren't escaped": + let resp = waitFor client.get(address & "/hello%23world") + check (waitFor resp.body) == "val%23ue: hello%23world" + + test "test path params and query": + let resp = waitFor client.get(address & "/hello%23world?a%23+b=1%23+b") + check (waitFor resp.body) == "a# b: 1# bval%23ue: hello%23world" + + test "test percent encoded path param and query param (same key)": + let resp = waitFor client.get(address & "/hello%23world?val%23ue=1%23+b") + check (waitFor resp.body) == "val%23ue: hello%23worldval#ue: 1# b" + + test "test path param, query param and x-www-form-urlencoded": + client.headers = newHttpHeaders({"Content-Type": "application/x-www-form-urlencoded"}) + let resp = waitFor client.post(address & "/hello%23world?val%23ue=1%23+b", "val%23ue=1%23+b&b=2") + check (waitFor resp.body) == "val%23ue: hello%23worldb: 2val#ue: 1# b,1# b" + + test "params duplicate keys in query": + let resp = waitFor client.get(address & "/params?a=1&a=2") + check (waitFor resp.body) == "a: 2" + + test "params no duplicate keys in query": + let resp = waitFor client.get(address & "/params?a=1") + check (waitFor resp.body) == "a: 1" + + test "params assure that empty values are handled": + let resp = waitFor client.get(address & "/params?a=1&a=") + check (waitFor resp.body) == "a: " + + test "params assure that fragment is not parsed": + let resp = waitFor client.get(address & "/params?a=1&#a=2") + check (waitFor resp.body) == "a: 1" + + test "params ensure that values are url decoded per default": + let resp = waitFor client.get(address & "/params?a=1&a=1%232") + check (waitFor resp.body) == "a: 1#2" + + test "params ensure that keys are url decoded per default": + let resp = waitFor client.get(address & "/params?a%23b=1&a%23b=1%232") + check (waitFor resp.body) == "a#b: 1#2" + + test "params test different keys": + let resp = waitFor client.get(address & "/params?a=1&b=2") + check (waitFor resp.body) == "b: 2a: 1" + + test "params ensure that path params aren't escaped": + let resp = waitFor client.get(address & "/params/hello%23world") + check (waitFor resp.body) == "val%23ue: hello%23world" + + test "params test path params and query": + let resp = waitFor client.get(address & "/params/hello%23world?a%23+b=1%23+b") + check (waitFor resp.body) == "a# b: 1# bval%23ue: hello%23world" + + test "params test percent encoded path param and query param (same key)": + let resp = waitFor client.get(address & "/params/hello%23world?val%23ue=1%23+b") + check (waitFor resp.body) == "val#ue: 1# bval%23ue: hello%23world" + + test "params test path param, query param and x-www-form-urlencoded": + client.headers = newHttpHeaders({"Content-Type": "application/x-www-form-urlencoded"}) + let resp = waitFor client.post(address & "/params/hello%23world?val%23ue=1%23+b", "val%23ue=1%23+b&b=2") + check (waitFor resp.body) == "b: 2val#ue: 1# bval%23ue: hello%23world" + when isMainModule: try: allTest(useStdLib=false) # Test HttpBeast. @@ -286,6 +381,8 @@ when isMainModule: issue150(useStdLib=true) customRouterTest(useStdLib=false) customRouterTest(useStdLib=true) + issue247(useStdLib=false) + issue247(useStdLib=true) # nim-in-action Chapter7 is not compatible with nim >= 2.0 when NimMajor < 2: From d330fad6c80b5a5681e590702c2eb70bb99baff8 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:41:25 +0200 Subject: [PATCH 12/20] Fix argument name to iffy/install-nim --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4dfc8fa..1f8f432 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - nimversion: ${{ matrix.nimversion }} + version: ${{ matrix.nimversion }} - name: Test run: | nimble test From 1cce8cc2812599e8cfde0ac9214a2e9b735c9654 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:43:18 +0200 Subject: [PATCH 13/20] Auto accept nimble for refresh/install --- jester.nimble | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jester.nimble b/jester.nimble index 403c108..d2093dc 100644 --- a/jester.nimble +++ b/jester.nimble @@ -18,7 +18,7 @@ when not defined(windows): task test, "Runs the test suite.": when NimMajor < 2: exec "git submodule update --init" - exec "nimble refresh" - exec "nimble install" + exec "nimble refresh -y" + exec "nimble install -y" exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" exec "nim c -r tests/tester" From 944dc39f7d7b8b3c6e4b0b303072af90b1109c63 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:48:28 +0200 Subject: [PATCH 14/20] Run debug actions in CI --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1f8f432..7b8a190 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,4 +30,7 @@ jobs: version: ${{ matrix.nimversion }} - name: Test run: | + nimble --version + nimble refresh -y + nimble setup nimble test From 149d5bf2e8fc07bad19c63304e9a6047ee98fee5 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:49:52 +0200 Subject: [PATCH 15/20] Only debug 2.0.0 --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b8a190..d7b51e5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,8 +12,8 @@ jobs: strategy: matrix: nimversion: - - 1.4.8 - - 1.6.14 +# - 1.4.8 +# - 1.6.14 - 2.0.0 os: - ubuntu-latest From 88e4a2903c06a34b6be685b55bfb7a7443564f7b Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:51:44 +0200 Subject: [PATCH 16/20] Remove debug actions --- .github/workflows/main.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d7b51e5..d214587 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,8 +12,8 @@ jobs: strategy: matrix: nimversion: -# - 1.4.8 -# - 1.6.14 + - 1.4.8 + - 1.6.14 - 2.0.0 os: - ubuntu-latest @@ -32,5 +32,4 @@ jobs: run: | nimble --version nimble refresh -y - nimble setup nimble test From cda4d3972e4cb59af23c56aac13156563f5ca8c4 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:55:25 +0200 Subject: [PATCH 17/20] Run nim2 with '--mm:refc' --- jester.nimble | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jester.nimble b/jester.nimble index d2093dc..77cf618 100644 --- a/jester.nimble +++ b/jester.nimble @@ -21,4 +21,7 @@ task test, "Runs the test suite.": exec "nimble refresh -y" exec "nimble install -y" exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" - exec "nim c -r tests/tester" + when NimMajor < 2: + exec "nim c -r tests/tester" + when NimMajor >= 2: + exec "nim c --mm:refc --run tests/tester" From 85b2692e774fb88866d03a334a7fff7918107fd6 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:57:29 +0200 Subject: [PATCH 18/20] Remove nim2 from CI Currently the server throws a 'SIGSEGV: Illegal storage access. (Attempt to read from nil?)' --- .github/workflows/main.yml | 1 - jester.nimble | 2 -- 2 files changed, 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d214587..01c8802 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,6 @@ jobs: nimversion: - 1.4.8 - 1.6.14 - - 2.0.0 os: - ubuntu-latest - macOS-latest diff --git a/jester.nimble b/jester.nimble index 77cf618..30e3081 100644 --- a/jester.nimble +++ b/jester.nimble @@ -23,5 +23,3 @@ task test, "Runs the test suite.": exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" when NimMajor < 2: exec "nim c -r tests/tester" - when NimMajor >= 2: - exec "nim c --mm:refc --run tests/tester" From 84035bf13bd6e4d3bf42ea61d89f7eea57b4c48e Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Mon, 18 Sep 2023 19:59:09 +0200 Subject: [PATCH 19/20] Remove debug when --- jester.nimble | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jester.nimble b/jester.nimble index 30e3081..d2093dc 100644 --- a/jester.nimble +++ b/jester.nimble @@ -21,5 +21,4 @@ task test, "Runs the test suite.": exec "nimble refresh -y" exec "nimble install -y" exec "nimble install -y asynctools@#0e6bdc3ed5bae8c7cc9" - when NimMajor < 2: - exec "nim c -r tests/tester" + exec "nim c -r tests/tester" From 44d5868f239ab5511b3952a9929a6880ae336569 Mon Sep 17 00:00:00 2001 From: Torben Carstens Date: Tue, 19 Sep 2023 17:18:51 +0200 Subject: [PATCH 20/20] Revert "Add common intellij paths to .gitignore" This reverts commit a4111d9ccdcae026fe6298485794d822919910aa. --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2a0da48..8d7be9e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,3 @@ !/tests/*/ nimcache - -.idea/ -*.iml