eXist-db / exist-xqts-runner

W3C XQTS driver for eXist-db
GNU Lesser General Public License v3.0
5 stars 6 forks source link

[BUG] error running specs using sbt "run" #14

Open line-o opened 3 years ago

line-o commented 3 years ago

TL;DR: use the assembled JAR

running the command sbt "run -es XQ31" or sbt "run"

A fatal error was thrown starting the test runner for the first time

Below a stack trace polluted by other log output

Uncaught error from thread [17 Nov 2020 19:36:26,784 [XQTSRunnerSystem-akka.actor.default-dispatcher-11] INFO  (slf4j.scala [info]:159) - Parsed XQTS TestSet: work/QT3_1_0/fn/timezone-from-time.xml OK.
17 Nov 2020 19:36:26,784 [XQTSRunnerSystem-akka.actor.default-dispatcher-11] INFO  (slf4j.scala [info]:159) - Parsing XQTS TestSet: work/QT3_1_0/fn/uri-collection.xml...
XQTSRunnerSystem-akka.actor.default-dispatcher-10]: io/lacuna/bifurcan/IEntry, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: io/lacuna/bifurcan/IEntry
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at sbt.internal.ManagedClassLoader.findClass(ManagedClassLoader.java:92)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at org.exist.xquery.functions.fn.FnModule.<clinit>(FnModule.java:245)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.exist.xquery.XQueryContext.instantiateModule(XQueryContext.java:1644)
    at org.exist.xquery.XQueryContext.loadDefaults(XQueryContext.java:3028)
    at org.exist.xquery.XQueryContext.<init>(XQueryContext.java:428)
    at org.exist.xquery.XQueryContext.<init>(XQueryContext.java:422)
    at org.exist.xqts.runner.ExistConnection.getCompiledQuery$1(ExistServer.scala:254)
    at org.exist.xqts.runner.ExistConnection.$anonfun$executeQuery$30(ExistServer.scala:289)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:103)
    at cats.effect.internals.IORunLoop$.restart(IORunLoop.scala:40)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1(IOBracket.scala:48)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1$adapted(IOBracket.scala:34)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1(IOAsync.scala:37)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1$adapted(IOAsync.scala:37)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1(IORunLoop.scala:315)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1$adapted(IORunLoop.scala:314)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.start(IORunLoop.scala:37)
    at cats.effect.IO.unsafeRunAsync(IO.scala:274)
    at cats.effect.internals.IOPlatform$.unsafeResync(IOPlatform.scala:39)
    at cats.effect.IO.unsafeRunTimed(IO.scala:342)
    at cats.effect.IO.unsafeRunSync(IO.scala:256)
    at org.exist.xqts.runner.ExistConnection.executeQuery(ExistServer.scala:325)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$9(TestCaseRunnerActor.scala:247)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$8(TestCaseRunnerActor.scala:246)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$7(TestCaseRunnerActor.scala:245)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$6(TestCaseRunnerActor.scala:244)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$5(TestCaseRunnerActor.scala:243)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.runTestCase(TestCaseRunnerActor.scala:242)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCaseWithExist$5(TestCaseRunnerActor.scala:206)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:103)
    at cats.effect.internals.IORunLoop$.restartCancelable(IORunLoop.scala:50)
    at cats.effect.internals.IOBracket$BracketStart.run(IOBracket.scala:100)
    at cats.effect.internals.Trampoline.cats$effect$internals$Trampoline$$immediateLoop(Trampoline.scala:67)
    at cats.effect.internals.Trampoline.startLoop(Trampoline.scala:35)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.super$startLoop(TrampolineEC.scala:90)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.$anonfun$startLoop$1(TrampolineEC.scala:90)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.startLoop(TrampolineEC.scala:90)
    at cats.effect.internals.Trampoline.execute(Trampoline.scala:43)
    at cats.effect.internals.TrampolineEC.execute(TrampolineEC.scala:42)
    at cats.effect.internals.IOBracket$BracketStart.apply(IOBracket.scala:80)
    at cats.effect.internals.IOBracket$BracketStart.apply(IOBracket.scala:58)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:177)
    at cats.effect.internals.IORunLoop$.restart(IORunLoop.scala:40)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1(IOBracket.scala:48)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1$adapted(IOBracket.scala:34)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1(IOAsync.scala:37)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1$adapted(IOAsync.scala:37)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1(IORunLoop.scala:315)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1$adapted(IORunLoop.scala:314)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.start(IORunLoop.scala:37)
    at cats.effect.IO.unsafeRunAsync(IO.scala:274)
    at cats.effect.internals.IOPlatform$.unsafeResync(IOPlatform.scala:39)
    at cats.effect.IO.unsafeRunTimed(IO.scala:342)
    at cats.effect.IO.unsafeRunSync(IO.scala:256)
    at org.exist.xqts.runner.TestCaseRunnerActor.org$exist$xqts$runner$TestCaseRunnerActor$$runTestCaseWithExist(TestCaseRunnerActor.scala:215)
    at org.exist.xqts.runner.TestCaseRunnerActor$$anonfun$receive$1.applyOrElse(TestCaseRunnerActor.scala:189)
    at akka.actor.Actor.aroundReceive(Actor.scala:537)
    at akka.actor.Actor.aroundReceive$(Actor.scala:535)
    at org.exist.xqts.runner.TestCaseRunnerActor.aroundReceive(TestCaseRunnerActor.scala:59)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:577)
    at akka.actor.ActorCell.invoke(ActorCell.scala:547)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
    at akka.dispatch.Mailbox.run(Mailbox.scala:231)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: java.lang.ClassNotFoundException: io.lacuna.bifurcan.IEntry
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at sbt.internal.ManagedClassLoader.findClass(ManagedClassLoader.java:92)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 98 more
Uncaught error from thread [XQTSRunnerSystem-akka.actor.default-dispatcher-7]: Could not initialize class org.exist.xquery.functions.fn.FnModule, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: Could not initialize class org.exist.xquery.functions.fn.FnModule
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.exist.xquery.XQueryContext.instantiateModule(XQueryContext.java:1644)
    at org.exist.xquery.XQueryContext.loadDefaults(XQueryContext.java:3028)
    at org.exist.xquery.XQueryContext.<init>(XQueryContext.java:428)
    at org.exist.xquery.XQueryContext.<init>(XQueryContext.java:422)
    at org.exist.xqts.runner.ExistConnection.getCompiledQuery$1(ExistServer.scala:254)
    at org.exist.xqts.runner.ExistConnection.$anonfun$executeQuery$30(ExistServer.scala:289)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:103)
    at cats.effect.internals.IORunLoop$.restart(IORunLoop.scala:40)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1(IOBracket.scala:48)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1$adapted(IOBracket.scala:34)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1(IOAsync.scala:37)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1$adapted(IOAsync.scala:37)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1(IORunLoop.scala:315)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1$adapted(IORunLoop.scala:314)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.start(IORunLoop.scala:37)
    at cats.effect.IO.unsafeRunAsync(IO.scala:274)
    at cats.effect.internals.IOPlatform$.unsafeResync(IOPlatform.scala:39)
    at cats.effect.IO.unsafeRunTimed(IO.scala:342)
    at cats.effect.IO.unsafeRunSync(IO.scala:256)
    at org.exist.xqts.runner.ExistConnection.executeQuery(ExistServer.scala:325)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$9(TestCaseRunnerActor.scala:247)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$8(TestCaseRunnerActor.scala:246)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$7(TestCaseRunnerActor.scala:245)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$6(TestCaseRunnerActor.scala:244)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCase$5(TestCaseRunnerActor.scala:243)
    at scalaz.$bslash$div.flatMap(Either.scala:141)
    at org.exist.xqts.runner.TestCaseRunnerActor.runTestCase(TestCaseRunnerActor.scala:242)
    at org.exist.xqts.runner.TestCaseRunnerActor.$anonfun$runTestCaseWithExist$5(TestCaseRunnerActor.scala:206)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:103)
    at cats.effect.internals.IORunLoop$.restartCancelable(IORunLoop.scala:50)
    at cats.effect.internals.IOBracket$BracketStart.run(IOBracket.scala:100)
    at cats.effect.internals.Trampoline.cats$effect$internals$Trampoline$$immediateLoop(Trampoline.scala:67)
    at cats.effect.internals.Trampoline.startLoop(Trampoline.scala:35)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.super$startLoop(TrampolineEC.scala:90)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.$anonfun$startLoop$1(TrampolineEC.scala:90)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
    at cats.effect.internals.TrampolineEC$JVMTrampoline.startLoop(TrampolineEC.scala:90)
    at cats.effect.internals.Trampoline.execute(Trampoline.scala:43)
    at cats.effect.internals.TrampolineEC.execute(TrampolineEC.scala:42)
    at cats.effect.internals.IOBracket$BracketStart.apply(IOBracket.scala:80)
    at cats.effect.internals.IOBracket$BracketStart.apply(IOBracket.scala:58)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:177)
    at cats.effect.internals.IORunLoop$.restart(IORunLoop.scala:40)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1(IOBracket.scala:48)
    at cats.effect.internals.IOBracket$.$anonfun$apply$1$adapted(IOBracket.scala:34)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1(IOAsync.scala:37)
    at cats.effect.internals.IOAsync$.$anonfun$apply$1$adapted(IOAsync.scala:37)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1(IORunLoop.scala:315)
    at cats.effect.internals.IORunLoop$.$anonfun$suspendAsync$1$adapted(IORunLoop.scala:314)
    at cats.effect.internals.IORunLoop$RestartCallback.start(IORunLoop.scala:439)
    at cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:155)
    at cats.effect.internals.IORunLoop$.start(IORunLoop.scala:37)
    at cats.effect.IO.unsafeRunAsync(IO.scala:274)
    at cats.effect.internals.IOPlatform$.unsafeResync(IOPlatform.scala:39)
    at cats.effect.IO.unsafeRunTimed(IO.scala:342)
    at cats.effect.IO.unsafeRunSync(IO.scala:256)
    at org.exist.xqts.runner.TestCaseRunnerActor.org$exist$xqts$runner$TestCaseRunnerActor$$runTestCaseWithExist(TestCaseRunnerActor.scala:215)
    at org.exist.xqts.runner.TestCaseRunnerActor$$anonfun$receive$1.applyOrElse(TestCaseRunnerActor.scala:189)
    at akka.actor.Actor.aroundReceive(Actor.scala:537)
    at akka.actor.Actor.aroundReceive$(Actor.scala:535)
    at org.exist.xqts.runner.TestCaseRunnerActor.aroundReceive(TestCaseRunnerActor.scala:59)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:577)
    at akka.actor.ActorCell.invoke(ActorCell.scala:547)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
    at akka.dispatch.Mailbox.run(Mailbox.scala:231)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
adamretter commented 3 years ago

This looks like an API mismatch. Which revision of eXist-db 5.3.0-SNAPSHOT are you testing against?

line-o commented 3 years ago

Against the PR https://github.com/eXist-db/exist/pull/3496/commits/8e52a85da4f4bd078909e556d41517a2c3158c3f

adamretter commented 3 years ago

Can you rebase your PR atop the HEAD of develop and try again?

line-o commented 3 years ago

After rebasing the first error (of many) changed to:

Uncaught error from thread [XQTSRunnerSystem-akka.actor.default-dispatcher-11]: Could not initialize class org.exist.xquery.functions.fn.FnModule, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: Could not initialize class org.exist.xquery.functions.fn.FnModule
line-o commented 3 years ago

Oh, the other one still is thrown, just later

Uncaught error from thread [XQTSRunnerSystem-akka.actor.default-dispatcher-9]: io/lacuna/bifurcan/IEntry, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: io/lacuna/bifurcan/IEntry
line-o commented 3 years ago

Same happens for the current revision of develop https://github.com/eXist-db/exist/commit/9ad24bd93f2183f0b61d2ca10ea77fe2a922af00

adamretter commented 3 years ago

@line-o Interesting. I have been unable to reproduce this here on my MacBook. I know @joewiz had the issue previously, but he solved it by installing newer eXist-db artifacts (which you have done already). I will spin up a clean Linux VM shortly and see if I get the same issue as you...

joewiz commented 3 years ago

@adamretter I can still run individual tests like fn-analyze-string, but I tried running the full suite via sbt "run" (after building and installing eXist's develop at current HEAD (building with Java 8, as we discovered was needed on my system in that previous thread), and the runner appears to have stalled after 9 minutes. Here's the log from my terminal: exist-xqts-runner-log.txt. And here's the target/junit/data folder just after I halted the runner: data.zip. Should we perhaps be running something more targeted that sbt "run"?

line-o commented 3 years ago

@adamretter Are you building and running this from within IDEA or using a terminal. I performed all these actions on ZSH in iTerm2. Did you install sbt from home-brew?

joewiz commented 3 years ago

(FWIW, I install sbt, as well as maven and bell-sw/liberica/liberica-jdk8-full, via homebrew. I perform all building and execution of the project via command line - i.e., macOS Terminal with zsh.)

line-o commented 3 years ago

Does sbt have to use the same Java version as existdb was built with?

joewiz commented 3 years ago

@line-o I don't think so. See @adamretter's comments here, including the version he's using: https://github.com/eXist-db/exist-xqts-runner/issues/11#issuecomment-719425606.

line-o commented 3 years ago

@joewiz try sbt clean assemble It made a huge difference to run the assembled jar. Now, it seems to be doing what it should. /cc @adamretter

line-o commented 3 years ago

🎉 Completed XQTS in (701819 ms)

joewiz commented 3 years ago

@line-o Oh right, I forgot that I'd been running it that way before! I'll try too.

joewiz commented 3 years ago

@line-o You just ran target/scala-2.13/exist-xqts-runner-assembly-1.0.0.jar, no flags, right?

line-o commented 3 years ago

yup

adamretter commented 3 years ago

Okay @line-o and @joewiz , so I built a completely new and clean VM to ensure no problems. I then installed the following:

I then performed the following steps:

mkdir code && cd code
git clone https://github.com/exist-db/exist.git
cd exist
mvn clean install -DskipTests

cd ..
git clone https://github.com/exist-db/exist-xqts-runner.git
cd exist-xqts-runner
sbt clean assembly

From there I then ran the assembly using the command:

target/scala-2.13/exist-xqts-runner-assembly-1.0.0.jar -x HEAD

The HEAD part indicates that it should use the latest XQTS set of tests maintained on GitHub; the default otherwise is to use the XQTS 3.1 from the W3C which is a little aged and has a few bugs.

I did not see any of the errors that @line-o that look like: Caused by: java.lang.ClassNotFoundException: io.lacuna.bifurcan.IEntry.

The full XQTS test run ran to completion. I captured the console output and have attached the log for your reference - HEAD.log

adamretter commented 3 years ago

@line-o @joewiz It sounds like you both have it running successfully now too.

Does sbt have to use the same Java version as existdb was built with?

No.

Can we close this now? Do you feel that there is anything missing that you would like to contribute anything to the README.md?

line-o commented 3 years ago

The readme needs to change, yes. It is frustrating to go through the above process and disenfranchises developers to run the XQTS themselves and regularly. I would like to keep it open until a PR to the readme was merged. I will update this ticket to reflect the outcome of the discussion.

adamretter commented 3 years ago

@line-o Okay, so does that mean you will send a PR?