Skip to content

Add JavaDoc and sources for JavaSMT and all solvers#639

Merged
kfriedberger merged 22 commits intomasterfrom
638-include-javadocsources-for-all-solvers
Apr 12, 2026
Merged

Add JavaDoc and sources for JavaSMT and all solvers#639
kfriedberger merged 22 commits intomasterfrom
638-include-javadocsources-for-all-solvers

Conversation

@daniel-raffler
Copy link
Copy Markdown
Contributor

@daniel-raffler daniel-raffler commented Apr 2, 2026

Hello,

this PR will add missing JavaDoc and sources jars for JavaSMT and its solvers:

For JavaSMT itself the JavaDoc jar gets built, but just isn't published by Ivy. For most of the solvers we'll first have to generate the JavaDoc files

@daniel-raffler daniel-raffler added Documentation dependencies Pull requests that update a dependency file labels Apr 2, 2026
@daniel-raffler daniel-raffler linked an issue Apr 2, 2026 that may be closed by this pull request
@daniel-raffler
Copy link
Copy Markdown
Contributor Author

@kfriedberger Should I also update the solvers that are still missing (cvc4, simtinterpol, z3 legacy)? We don't have JavaDoc/sources for them, but then again they may never get updated

@kfriedberger
Copy link
Copy Markdown
Member

Some minimal JavaDoc-Jar would be nice to have for all our publications, however, for solvers, priority is quite low.
Higher priority is at JavaSMT itself and the JavaSMT-Yices bindings (without Yices itself).

@daniel-raffler daniel-raffler marked this pull request as ready for review April 4, 2026 13:24
@daniel-raffler
Copy link
Copy Markdown
Contributor Author

All solvers (except cvc4) should be working now. We'll have to recompile the binaries for cvc5, z3legacy and yices, but this can be done next time we update those solvers. Once we have the new binaries, we should remember to also update the dependency in ivy.xml to include the sources and JavaDoc files:

Screenshot From 2026-04-04 15-32-16

@daniel-raffler
Copy link
Copy Markdown
Contributor Author

daniel-raffler commented Apr 4, 2026

@kfriedberger

While working on #637, I came across the issue, that Maven requires JavaDow for each release. That can be fixed/patched when releasing into Maven. However, I would like to see JavaDoc being also part of the Ivy-based publication process.

This PR should at least add JavaDoc for java-smt and javasmt-yices2. For the solver modules it's a little more complicated: If the module has a *.jar in it (f.ex javasmt-solver-cvc5) we now include JavaDocs and a sources *.jar along with it. However, these are the docs/sources for the (native) solver bindings, which may not be entirely what we want. Furthermore, some solver (f.ex mathsat) don't have a *.jar file as we included the JNI bindings directly in our code. In that case, there is just nothing that could be documented by JavaDoc...

I think one solution might be to further split up the modules and move all solvers out of java-smt and into their own module, similar to how it was already done for yices. That way, the JavaDoc for the modules would at least contain a single class (*SolverContext), and the sources jar would package the sourcecode of the solver backend in JavaSMT

Can you also take a look at other projects of Sosy-Labs well, e.g., https://github.com/sosy-lab/java-common-lib . It looks like all Java-based software artifacts of Sosy-Lab share the same code Ant/for Ivy here, and we forgot to provide proper JavaDoc-Jars.

For common the fix is essentially the same as 5f79946. Unfortunately the ivy.xml file is not part our project template, so we'll have to fix this in each project separately

- force JavaDoc language to en_US.
- fix repeated path in sources-jar.
- restructuring and documentation.
kfriedberger
kfriedberger previously approved these changes Apr 11, 2026
Copy link
Copy Markdown
Member

@kfriedberger kfriedberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cvc5 was updated to latest version. lgtm.

Commands:
```
ant download-yices2
cd downloads/yices2
git checkout issue-613-mcsat-curried-function-model
cd -
ant publish-yices2 -Dyices2.version=2.7.0-4f83bf00e
```
Copy link
Copy Markdown
Member

@kfriedberger kfriedberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • some minor parts fixed in latest commits. ✅
  • sovlers are published in corresponding version, including JavaDoc. ✅

can be merged.

@kfriedberger kfriedberger merged commit ebbb72e into master Apr 12, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file Documentation

Development

Successfully merging this pull request may close these issues.

Include JavaDoc/sources for all solvers

2 participants