scala / scala3

The Scala 3 compiler, also known as Dotty.
https://dotty.epfl.ch
Apache License 2.0
5.81k stars 1.05k forks source link

Package Scala3 documentation together with the release #10687

Closed abgruszecki closed 3 years ago

abgruszecki commented 3 years ago

We should package doctool-generated documentation in a .jar and release it together with other artifacts.

/cc @romanowski .

BarkingBad commented 3 years ago

I tried to fix the issue, but I encountered a problem I need help to resolve. One of the projects to document is library of scala under library/src/scala/.... For now, the command we would run to document this module is:

Debug from sbt command [debug] Calling Dottydoc with arguments (ScaladocInterface): [debug] -d [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/api [debug] -feature [debug] -deprecation [debug] -unchecked [debug] -Xfatal-warnings [debug] -encoding [debug] UTF8 [debug] -language:existentials,higherKinds,implicitConversions,postfixOps [debug] -sourcepath [debug] /home/aratajczak/Dokumenty/dotty/library/src:/home/aratajczak/Dokumenty/dotty/library/src-3.0.0-RC1:/home/aratajczak/Dokumenty/dotty/library/src-3:/home/aratajczak/Dokumenty/dotty/library/src-non-bootstrapped:/home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/src_managed/main [debug] -Yerased-terms [debug] -project [debug] scala3-library [debug] -from-tasty [debug] -classpath [debug] /home/aratajczak/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.5/scala-library-2.13.5.jar [debug] /home/aratajczak/Dokumenty/dotty/___fake___.scala [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/$times$colon.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/CanEqual.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/Conversion.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/IArray$package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/NonEmptyTuple.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/PolyFunction.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/Selectable.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/Tuple$package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/Tuple.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/RefiningAnnotation.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/alpha.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/constructorOnly.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Alias.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/AnnotationDefault.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Body.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Child.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/ContextResultCount.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/InlineParam.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Repeated.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/SourceFile.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/sharable.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/unshared.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/static.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/targetName.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/threadUnsafe.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/annotation/transparentTrait.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/any.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/boolean.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/int.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/string.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/Error.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/ErrorKind.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/package$package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/deriving/Mirror.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/main.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Expr.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/ExprMap.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Exprs.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/FromExpr.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Quotes$package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Quotes.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/ToExpr.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Type.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/Varargs.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/Expr.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/Patterns.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/QuoteMatching.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/QuoteUnpickler.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/SplicedType.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/StopMacroExpansion.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/reflect/Enum.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/reflect/Selectable.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/reflect/TypeTest.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/reflect/Typeable$package.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/Arrays.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/EnumValue.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/FunctionXXL.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/LazyVals.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/MatchCase.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/Scala3RunTime.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/TupleXXL.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/Tuples.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/TypeBox.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/stdLibPatches/Predef.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/runtime/stdLibPatches/language.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/util/CommandLineParser.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/util/FromDigits.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/util/LowPriorityNotGiven.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/util/NotGiven.tasty [debug] /home/aratajczak/Dokumenty/dotty/library/target/scala-3.0.0-RC1/classes/scala/util/control/NonLocalReturns.tasty

or

Command to run from terminal `./bin/scaladoc -d ./library/target/scala-3.0.0-RC1/api -feature -deprecation -unchecked -Xfatal-warnings -encoding UTF8 -language:existentials,higherKinds,implicitConversions,postfixOps -sourcepath ./library/src:./library/src-3.0.0-RC1:./library/src-3:./library/src-non-bootstrapped:./library/target/scala-3.0.0-RC1/src_managed/main -Yerased-terms -project scala3-library -from-tasty -classpath /home/aratajczak/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.5/scala-library-2.13.5.jar ./___fake___.scala ./library/target/scala-3.0.0-RC1/classes/scala/\$times\$colon.tasty ./library/target/scala-3.0.0-RC1/classes/scala/CanEqual.tasty ./library/target/scala-3.0.0-RC1/classes/scala/Conversion.tasty ./library/target/scala-3.0.0-RC1/classes/scala/IArray\$package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/NonEmptyTuple.tasty ./library/target/scala-3.0.0-RC1/classes/scala/PolyFunction.tasty ./library/target/scala-3.0.0-RC1/classes/scala/Selectable.tasty ./library/target/scala-3.0.0-RC1/classes/scala/Tuple\$package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/Tuple.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/RefiningAnnotation.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/alpha.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/constructorOnly.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Alias.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/AnnotationDefault.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Body.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Child.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/ContextResultCount.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/InlineParam.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/Repeated.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/SourceFile.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/sharable.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/internal/unshared.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/static.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/targetName.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/threadUnsafe.tasty ./library/target/scala-3.0.0-RC1/classes/scala/annotation/transparentTrait.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/any.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/boolean.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/int.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/ops/string.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/Error.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/ErrorKind.tasty ./library/target/scala-3.0.0-RC1/classes/scala/compiletime/testing/package\$package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/deriving/Mirror.tasty ./library/target/scala-3.0.0-RC1/classes/scala/main.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Expr.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/ExprMap.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Exprs.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/FromExpr.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Quotes\$package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Quotes.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/ToExpr.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Type.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/Varargs.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/Expr.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/Patterns.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/QuoteMatching.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/QuoteUnpickler.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/SplicedType.tasty ./library/target/scala-3.0.0-RC1/classes/scala/quoted/runtime/StopMacroExpansion.tasty ./library/target/scala-3.0.0-RC1/classes/scala/reflect/Enum.tasty ./library/target/scala-3.0.0-RC1/classes/scala/reflect/Selectable.tasty ./library/target/scala-3.0.0-RC1/classes/scala/reflect/TypeTest.tasty ./library/target/scala-3.0.0-RC1/classes/scala/reflect/Typeable\$package.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/Arrays.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/EnumValue.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/FunctionXXL.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/LazyVals.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/MatchCase.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/Scala3RunTime.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/TupleXXL.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/Tuples.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/TypeBox.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/stdLibPatches/Predef.tasty ./library/target/scala-3.0.0-RC1/classes/scala/runtime/stdLibPatches/language.tasty ./library/target/scala-3.0.0-RC1/classes/scala/util/CommandLineParser.tasty ./library/target/scala-3.0.0-RC1/classes/scala/util/FromDigits.tasty ./library/target/scala-3.0.0-RC1/classes/scala/util/LowPriorityNotGiven.tasty ./library/target/scala-3.0.0-RC1/classes/scala/util/NotGiven.tasty ./library/target/scala-3.0.0-RC1/classes/scala/util/control/NonLocalReturns.tasty`

The command starts as expected then fails on parsing TASTY files with given error:

-- [E069] Syntax Error: ./library/src/scala/IArray.scala:13:7 ------------------
13 |object IArray:
   |       ^
   |object IArray cannot have the same name as object IArray in package scala -- cannot define object member with the same name as a object member in self reference _.
   |(Note: this can be resolved by using another name)

Here is the stacktrace:

Stacktrace ``` at dotty.tools.dotc.typer.Typer.classExistsOnSelf$3$$anonfun$2(Typer.scala:2220) at dotty.tools.dotc.typer.Typer.classExistsOnSelf$4$$anonfun$adapted$1(Typer.scala:2224) at scala.collection.IterableOnceOps.foldLeft(IterableOnce.scala:646) at scala.collection.IterableOnceOps.foldLeft$(IterableOnce.scala:642) at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1288) at dotty.tools.dotc.typer.Typer.classExistsOnSelf$1(Typer.scala:2224) at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2239) at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2599) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2603) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2672) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2738) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2742) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2764) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2814) at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2396) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2644) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2673) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2738) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2742) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2858) at dotty.tools.dotc.Run.processUnit$1(Run.scala:252) at dotty.tools.dotc.Run.process$2$$anonfun$1(Run.scala:257) at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:227) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67) at dotty.tools.dotc.Run.compileUnits(Run.scala:230) at dotty.tools.dotc.Run.compileUnits(Run.scala:172) at dotty.tools.dotc.fromtasty.TASTYRun.compile(TASTYRun.scala:11) at dotty.tools.dotc.Driver.doCompile(Driver.scala:39) at dotty.tools.dotc.Driver.process(Driver.scala:198) at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext(OldTastyInspector.scala:72) at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext$(OldTastyInspector.scala:22) at scala.tasty.inspector.DocTastyInspector.inspectFilesInContext(DocTastyInspector.scala:5) at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.result(TastyParser.scala:126) at dotty.tools.scaladoc.ScalaModuleProvider$.mkModule(ScalaModuleCreator.scala:11) at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:178) at dotty.tools.scaladoc.Scaladoc$.run$$anonfun$1(Scaladoc.scala:66) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.Option.map(Option.scala:242) at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:68) at dotty.tools.scaladoc.Main.run(Main.scala:18) at dotty.tools.scaladoc.Main$.main(Main.scala:24) at dotty.tools.scaladoc.Main.main(Main.scala) ```

Does it seem normal? Could you @nicolasstucki take a look? I would be really thankful.