diff options
Diffstat (limited to 'testament/important_packages.nim')
-rw-r--r-- | testament/important_packages.nim | 321 |
1 files changed, 187 insertions, 134 deletions
diff --git a/testament/important_packages.nim b/testament/important_packages.nim index 65104e1fe..efec04b3c 100644 --- a/testament/important_packages.nim +++ b/testament/important_packages.nim @@ -1,140 +1,193 @@ -template pkg1(name: string; cmd = "nimble test"; url = "", useHead = true): untyped = - packages1.add((name, cmd, url, useHead)) +##[ +## note 1 +`useHead` should ideally be used as the default but lots of packages (e.g. `chronos`) +don't have release tags (or have really old ones compared to HEAD), making it +impossible to test them reliably here. -template pkg2(name: string; cmd = "nimble test"; url = "", useHead = true): untyped = - packages2.add((name, cmd, url, useHead)) +packages listed here should ideally have regularly updated release tags, so that: +* we're testing recent versions of the package +* the version that's tested is stable enough even if HEAD may occasionally break -var packages1*: seq[tuple[name, cmd: string; url: string, useHead: bool]] = @[] -var packages2*: seq[tuple[name, cmd: string; url: string, useHead: bool]] = @[] +## note 2: D20210308T165435:here +nimble packages should be testable as follows: +git clone $url $dir && cd $dir +NIMBLE_DIR=$TMP_NIMBLE_DIR XDG_CONFIG_HOME= nimble install --depsOnly -y +NIMBLE_DIR=$TMP_NIMBLE_DIR XDG_CONFIG_HOME= nimble test -# packages A-M -# pkg1 "alea" -pkg1 "argparse" -pkg1 "arraymancer", "nim c tests/tests_cpu.nim" -# pkg1 "ast_pattern_matching", "nim c -r --oldgensym:on tests/test1.nim" -pkg1 "awk" -pkg1 "bigints", url = "https://github.com/Araq/nim-bigints" -pkg1 "binaryheap", "nim c -r binaryheap.nim" -pkg1 "BipBuffer" -# pkg1 "blscurve" # pending https://github.com/status-im/nim-blscurve/issues/39 -pkg1 "bncurve" -pkg1 "brainfuck", "nim c -d:release -r tests/compile.nim" -pkg1 "bump", "nim c --gc:arc -r tests/tbump.nim", "https://github.com/disruptek/bump" -pkg1 "c2nim", "nim c testsuite/tester.nim" -pkg1 "cascade" -pkg1 "cello" -pkg1 "chroma" -pkg1 "chronicles", "nim c -o:chr -r chronicles.nim" -when not defined(osx): # testdatagram.nim(560, 54): Check failed - pkg1 "chronos", "nim c -r -d:release tests/testall" -pkg1 "cligen", "nim c --path:. -r cligen.nim" -pkg1 "combparser", "nimble test --gc:orc" -pkg1 "compactdict" -pkg1 "comprehension", "nimble test", "https://github.com/alehander42/comprehension" -# pkg1 "criterion" # pending https://github.com/disruptek/criterion/issues/3 (wrongly closed) -pkg1 "dashing", "nim c tests/functional.nim" -pkg1 "delaunay" -pkg1 "docopt" -pkg1 "easygl", "nim c -o:egl -r src/easygl.nim", "https://github.com/jackmott/easygl" -pkg1 "elvis" -pkg1 "fidget" -pkg1 "fragments", "nim c -r fragments/dsl.nim" -pkg1 "gara" -pkg1 "glob" -# pkg1 "ggplotnim", "nim c -d:noCairo -r tests/tests.nim" # pending bug #16523 -# pkg1 "gittyup", "nimble test", "https://github.com/disruptek/gittyup" -pkg1 "gnuplot", "nim c gnuplot.nim" -# pkg1 "gram", "nim c -r --gc:arc --define:danger tests/test.nim", "https://github.com/disruptek/gram" - # pending https://github.com/nim-lang/Nim/issues/16509 -pkg1 "hts", "nim c -o:htss src/hts.nim" -# pkg1 "httpauth" -pkg1 "illwill", "nimble examples" -pkg1 "inim" -pkg1 "itertools", "nim doc src/itertools.nim" -pkg1 "iterutils" -pkg1 "jstin" -pkg1 "karax", "nim c -r tests/tester.nim" -pkg1 "kdtree", "nimble test", "https://github.com/jblindsay/kdtree" -pkg1 "loopfusion" -pkg1 "macroutils" -pkg1 "manu" -pkg1 "markdown" -pkg1 "memo" -pkg1 "msgpack4nim", "nim c -r tests/test_spec.nim" +if this fails (e.g. nimcrypto), it could be because a package lacks a `tests/nim.cfg` with `--path:..`, +so the above commands would've worked by accident with `nimble install` but not with `nimble install --depsOnly`. +When this is the case, a workaround is to test this package here by adding `--path:$srcDir` on the test `cmd`. +]## + +type NimblePackage* = object + name*, cmd*, url*: string + useHead*: bool + allowFailure*: bool + ## When true, we still run the test but the test is allowed to fail. + ## This is useful for packages that currently fail but that we still want to + ## run in CI, e.g. so that we can monitor when they start working again and + ## are reminded about those failures without making CI fail for unrelated PRs. -# these two are special snowflakes -pkg1 "nimcrypto", "nim c -r tests/testall.nim" -pkg1 "stint", "nim c -o:stintt -r stint.nim" +var packages*: seq[NimblePackage] +proc pkg(name: string; cmd = "nimble test"; url = "", useHead = true, allowFailure = false) = + packages.add NimblePackage(name: name, cmd: cmd, url: url, useHead: useHead, allowFailure: allowFailure) -# packages N-Z -pkg2 "nake", "nim c nakefile.nim" -pkg2 "neo", "nim c -d:blas=openblas tests/all.nim" -# pkg2 "nesm", "nimble tests" # notice plural 'tests' -# pkg2 "nico" -pkg2 "nicy", "nim c -r src/nicy.nim" -pkg2 "nigui", "nim c -o:niguii -r src/nigui.nim" -pkg2 "NimData", "nim c -o:nimdataa src/nimdata.nim" -pkg2 "nimes", "nim c src/nimes.nim" -pkg2 "nimfp", "nim c -o:nfp -r src/fp.nim" -when false: - pkg2 "nimgame2", "nim c nimgame2/nimgame.nim" - # XXX Doesn't work with deprecated 'randomize', will create a PR. -pkg2 "nimgen", "nim c -o:nimgenn -r src/nimgen/runcfg.nim" -pkg2 "nimlsp" -pkg2 "nimly", "nim c -r tests/test_readme_example.nim" -# pkg2 "nimongo", "nimble test_ci" -# pkg2 "nimph", "nimble test", "https://github.com/disruptek/nimph" -pkg2 "nimpy", "nim c -r tests/nimfrompy.nim" -pkg2 "nimquery" -pkg2 "nimsl" -pkg2 "nimsvg" -pkg2 "nimterop", "nimble minitest" -pkg2 "nimwc", "nim c nimwc.nim" -# pkg2 "nimx", "nim c --threads:on test/main.nim" -# pkg2 "nitter", "nim c src/nitter.nim", "https://github.com/zedeus/nitter" -pkg2 "norm", "nim c -r tests/sqlite/trows.nim" -pkg2 "npeg", "nimble testarc" -pkg2 "numericalnim", "nim c -r tests/test_integrate.nim" -pkg2 "optionsutils" -pkg2 "ormin", "nim c -o:orminn ormin.nim" -pkg2 "parsetoml" -pkg2 "patty" -pkg2 "plotly", "nim c examples/all.nim" -pkg2 "pnm" -pkg2 "polypbren" -pkg2 "prologue", "nimble tcompile" -pkg2 "protobuf", "nim c -o:protobuff -r src/protobuf.nim" -pkg2 "pylib" -pkg2 "rbtree" -pkg2 "react", "nimble example" -pkg2 "regex", "nim c src/regex" -pkg2 "result", "nim c -r result.nim" -pkg2 "RollingHash", "nim c -r tests/test_cyclichash.nim" -pkg2 "rosencrantz", "nim c -o:rsncntz -r rosencrantz.nim" -pkg2 "sdl1", "nim c -r src/sdl.nim" -pkg2 "sdl2_nim", "nim c -r sdl2/sdl.nim" -pkg2 "sigv4", "nim c --gc:arc -r sigv4.nim", "https://github.com/disruptek/sigv4" -pkg2 "snip", "nimble test", "https://github.com/genotrance/snip" -pkg2 "strslice" -pkg2 "strunicode", "nim c -r src/strunicode.nim" -pkg2 "synthesis" -pkg2 "telebot", "nim c -o:tbot -r src/telebot.nim" -pkg2 "tempdir" -pkg2 "templates" -pkg2 "tensordsl", "nim c -r tests/tests.nim", "https://krux02@bitbucket.org/krux02/tensordslnim.git" -pkg2 "terminaltables", "nim c src/terminaltables.nim" -pkg2 "termstyle", "nim c -r termstyle.nim" -pkg2 "timeit" -pkg2 "timezones" -pkg2 "tiny_sqlite" -pkg2 "unicodedb", "nim c -d:release -r tests/tests.nim" -pkg2 "unicodeplus", "nim c -d:release -r tests/tests.nim" -pkg2 "unpack" -pkg2 "websocket", "nim c websocket.nim" -# pkg2 "winim" -pkg2 "with" -pkg2 "ws" -pkg2 "yaml", "nim build" -pkg2 "zero_functional", "nim c -r -d:nimWorkaround14447 test.nim" -pkg2 "zippy" +pkg "alea" +pkg "argparse" +pkg "arraymancer", "nim c tests/tests_cpu.nim" +pkg "ast_pattern_matching", "nim c -r tests/test1.nim" +pkg "asyncftpclient", "nimble compileExample" +pkg "asyncthreadpool", "nimble test --mm:refc" +pkg "awk" +pkg "bigints" +pkg "binaryheap", "nim c -r binaryheap.nim" +pkg "BipBuffer" +pkg "blscurve", allowFailure = true +pkg "bncurve" +pkg "brainfuck", "nim c -d:release -r tests/compile.nim" +pkg "bump", "nim c --mm:arc --path:. -r tests/tbump.nim", "https://github.com/disruptek/bump", allowFailure = true +pkg "c2nim", "nim c testsuite/tester.nim" +pkg "cascade" +pkg "cello", url = "https://github.com/nim-lang/cello", useHead = true +pkg "checksums" +pkg "chroma" +pkg "chronicles", "nim c -o:chr -r chronicles.nim" +pkg "chronos", "nim c -r -d:release tests/testall" +pkg "cligen", "nim c --path:. -r cligen.nim" +pkg "combparser", "nimble test --mm:orc" +pkg "compactdict" +pkg "comprehension", "nimble test", "https://github.com/alehander92/comprehension" +pkg "constantine", "nimble make_lib" +pkg "cowstrings" +pkg "criterion", allowFailure = true # needs testing binary +pkg "datamancer" +pkg "dashing", "nim c tests/functional.nim" +pkg "delaunay" +pkg "dnsclient", allowFailure = true # super fragile +pkg "docopt" +pkg "dotenv" +# when defined(linux): pkg "drchaos" +pkg "easygl", "nim c -o:egl -r src/easygl.nim", "https://github.com/jackmott/easygl" +pkg "elvis" +pkg "faststreams" +pkg "fidget" +pkg "fragments", "nim c -r fragments/dsl.nim", allowFailure = true # pending https://github.com/nim-lang/packages/issues/2115 +pkg "fusion" +pkg "gara" +pkg "glob" +pkg "ggplotnim", "nim c -d:noCairo -r tests/tests.nim" +pkg "gittyup", "nimble test", "https://github.com/disruptek/gittyup", allowFailure = true +pkg "gnuplot", "nim c gnuplot.nim" +# pkg "gram", "nim c -r --mm:arc --define:danger tests/test.nim", "https://github.com/disruptek/gram" + # pending https://github.com/nim-lang/Nim/issues/16509 +pkg "hts", "nim c -o:htss src/hts.nim" +pkg "httpauth" +pkg "httputils" +pkg "illwill", "nimble examples" +pkg "inim" +pkg "itertools", "nim doc src/itertools.nim" +pkg "iterutils" +pkg "json_rpc" +pkg "json_serialization" +pkg "jstin" +pkg "karax", "nim c -r tests/tester.nim" +pkg "kdtree", "nimble test -d:nimLegacyRandomInitRand", "https://github.com/jblindsay/kdtree" +pkg "loopfusion" +pkg "lockfreequeues" +pkg "macroutils" +pkg "manu" +pkg "markdown" +pkg "measuremancer", "nimble testDeps; nimble -y test" +pkg "memo" +pkg "msgpack4nim", "nim c -r tests/test_spec.nim" +pkg "nake", "nim c nakefile.nim" +pkg "neo", "nim c -d:blas=openblas --mm:refc tests/all.nim" +pkg "nesm", "nimble tests", "https://github.com/nim-lang/NESM", useHead = true, allowFailure = true + # inactive, tests not adapted to #23096 +pkg "netty" +pkg "nico", allowFailure = true +pkg "nicy", "nim c -r src/nicy.nim" +pkg "nigui", "nim c -o:niguii -r src/nigui.nim" +pkg "nimcrypto", "nim r --path:. tests/testall.nim" # `--path:.` workaround needed, see D20210308T165435 +pkg "NimData", "nim c -o:nimdataa src/nimdata.nim" +pkg "nimes", "nim c src/nimes.nim" +pkg "nimfp", "nim c -o:nfp -r src/fp.nim" +pkg "nimgame2", "nim c --mm:refc nimgame2/nimgame.nim" +pkg "nimgen", "nim c -o:nimgenn -r src/nimgen/runcfg.nim" +pkg "nimib" +pkg "nimlsp" +pkg "nimly", "nim c -r tests/test_readme_example.nim" +pkg "nimongo", "nimble test_ci", allowFailure = true +pkg "nimph", "nimble test", "https://github.com/disruptek/nimph", allowFailure = true +pkg "nimPNG", useHead = true +pkg "nimpy", "nim c -r tests/nimfrompy.nim" +pkg "nimquery" +pkg "nimsl" +pkg "nimsvg" +pkg "nimterop", "nimble minitest", url = "https://github.com/nim-lang/nimterop" +pkg "nimwc", "nim c nimwc.nim" +pkg "nimx", "nim c test/main.nim", allowFailure = true +pkg "nitter", "nim c src/nitter.nim", "https://github.com/zedeus/nitter" +pkg "norm", "testament r tests/common/tmodel.nim" +pkg "normalize" +pkg "npeg", "nimble testarc" +pkg "numericalnim", "nimble nimCI" +pkg "optionsutils" +pkg "ormin", "nim c -o:orminn ormin.nim" +pkg "parsetoml" +pkg "patty" +pkg "pixie" +pkg "plotly", "nim c examples/all.nim" +pkg "pnm" +pkg "polypbren" +pkg "presto" +pkg "prologue", "nimble tcompile" +# remove fork after https://github.com/PMunch/combparser/pull/7 is merged: +pkg "protobuf", "nimble install -y https://github.com/metagn/combparser@#HEAD; nim c -o:protobuff -r src/protobuf.nim" +pkg "rbtree" +pkg "react", "nimble example" +pkg "regex", "nim c src/regex" +pkg "results", "nim c -r results.nim" +pkg "RollingHash", "nim c -r tests/test_cyclichash.nim" +pkg "rosencrantz", "nim c -o:rsncntz -r rosencrantz.nim" +pkg "sdl1", "nim c -r src/sdl.nim" +pkg "sdl2_nim", "nim c -r sdl2/sdl.nim" +pkg "serialization" +pkg "sigv4", "nim c --mm:arc -r sigv4.nim", "https://github.com/disruptek/sigv4" +pkg "sim" +pkg "smtp", "nimble compileExample" +pkg "snip", "nimble test", "https://github.com/genotrance/snip" +pkg "ssostrings" +pkg "stew" +pkg "stint", "nim c stint.nim" +pkg "strslice" +pkg "strunicode", "nim c -r --mm:refc src/strunicode.nim" +pkg "supersnappy" +pkg "synthesis" +pkg "taskpools" +pkg "telebot", "nim c -o:tbot -r src/telebot.nim" +pkg "tempdir" +pkg "templates" +pkg "tensordsl", "nim c -r --mm:refc tests/tests.nim", "https://krux02@bitbucket.org/krux02/tensordslnim.git" +pkg "terminaltables", "nim c src/terminaltables.nim" +pkg "termstyle", "nim c -r termstyle.nim" +pkg "testutils" +pkg "timeit" +pkg "timezones" +pkg "tiny_sqlite" +pkg "unicodedb", "nim c -d:release -r tests/tests.nim" +pkg "unicodeplus", "nim c -d:release -r tests/tests.nim" +pkg "union", "nim c -r tests/treadme.nim", url = "https://github.com/alaviss/union" +pkg "unittest2" +pkg "unpack" +pkg "weave", "nimble install -y cligen@#HEAD; nimble test_gc_arc", useHead = true +pkg "websock" +pkg "websocket", "nim c websocket.nim" +# pkg "winim", allowFailure = true +pkg "with" +pkg "ws", allowFailure = true +pkg "yaml" +pkg "zero_functional", "nim c -r test.nim" +pkg "zippy" +pkg "zxcvbn" |