[ 
https://issues.apache.org/jira/browse/DAFFODIL-3012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Lawrence resolved DAFFODIL-3012.
--------------------------------------
    Resolution: Fixed

Fixed in commit b05b82f481641c2e50472e8408ec79ca646bc14f

> Unidoc generation broken in scala3
> ----------------------------------
>
>                 Key: DAFFODIL-3012
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-3012
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 4.0.0
>            Reporter: Steve Lawrence
>            Assignee: Steve Lawrence
>            Priority: Major
>             Fix For: 4.0.0
>
>
> Running sbt unidoc on the lastest main branch does not generate any 
> documentation.
> I think the issue is that sbt-unidoc uses the {{tastyFiles}} setting instead 
> of the {{sources}} setting when building with Scala 3:
> https://github.com/sbt/sbt-unidoc/blob/develop/src/main/scala/sbtunidoc/ScalaUnidocPlugin.scala#L34-L41
> It does not look like tasty files are created for .java files, so our 
> apiDocSettings filter causes unidocAllSources to be empty, and we do not 
> generate any documentation.
> A fix could be to reimplement unidocAllSources to use non-scala3 logic so 
> .java files are included, e.g.:
> {code:scala}
>     ScalaUnidoc / unidoc / unidocAllSources := Def.taskDyn {
>       val scopeFilter = (ScalaUnidoc / unidoc / unidocScopeFilter).value
>       sources.all(scopeFilter)
>     }.value.map(apiDocSourceFilter)
> {code}
> And that *should* get us generating javadoc again since it will only include 
> /src/main/java/ files, which does not include any .scala or .tasty files and 
> will use javadoc to generate docs.
> However, it's not clear to me if we can generate scaladoc as well. We have a 
> PR that adds a dummy.scala file and reruns sbt unidoc:
> https://github.com/apache/daffodil-site/pull/183
> But I think that only works on scala 2 to generate scaladoc. It seems like 
> Scala3 scaladoc only works on .tasty files and ignores .java files 
> completely, even if they are part of the public API. I can't find any mention 
> of this behavior, but simple tests with a single .java and .scala file do not 
> include any documentation about the java class.
> We could maybe add the dummy.scala file and change scalaVersion to 2.13 
> temporarily only when building docs, but I imagine that would mean we would 
> still need to support scala 2.13 (even if we don't publish 2.13), which we 
> don't really want to do.
> Another alternative is maybe to convert our java files to .scala or .tasty 
> files just for document generation (essentially the opposite of what 
> genjavadoc does which converts .scala files to .java files), but from what I 
> can tell nothing like that exists.
> We may need to just drop the scaladoc view of the Daffodil API, and update 
> our site to only include javadoc if scaladoc3 does not have a way to include 
> Java files in the scaladoc documentation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to