Initial architecture & purpose #2
Replies: 7 comments 24 replies
-
GeneralI agree on all points:
I also have automation in other projects with JReleaser and Antora, and some ready-to-used templates/workflows. For the package structure, I wonder if we could go with About the Java version, it would be nice indeed if we could start with a higher baseline than Java 17. Would it make sense to consider Java 21? TestcontainersI would consider having one of the modules being a simple implementation of a Testcontainers module for Docling, extending from the
OpenAPIDo we want to assess if it's possible to use the OpenAPI Generator as a starting point and try to see if we can solve the incompatibilities found in the OpenAPI spec generated by FastAPI? Or do we want to start with the hand-written model similar to what I started here? Either way, I have drafts for both solutions and I'd be happy to open an initial pull request. |
Beta Was this translation helpful? Give feedback.
-
A few governance aspectsWhen bootstrapping the repository, please adhere to the Docling Community governance. In particular:
|
Beta Was this translation helpful? Give feedback.
-
Practical points
Regarding the points raised above, some suggestion
|
Beta Was this translation helpful? Give feedback.
-
|
@dolfim-ibm Is there an existing list of GitHub actions that are already approved for use? Also, in the Actions permissions, can we please enable
|
Beta Was this translation helpful? Give feedback.
-
|
Ok now that we have the structure, next great question, should we define the model using Open API documentation generated by docling-server (and live with the issues we might find) or we do like Thomas did and wecreate our own model. |
Beta Was this translation helpful? Give feedback.
-
|
@edeandrea @lordofthejars what do you think about adopting Conventional Commits? It would help us produce nice and neat release notes automatically with JReleaser (and have a clean and readable git history). We could add an automated check on the PRs using https://github.com/Ezard/semantic-prs or something similar (if we're allowed to). |
Beta Was this translation helpful? Give feedback.
-
|
@ThomasVitale Do you have an opinion on using Jackson 2.20.x vs 3.x? The bom and many of the artifacts have different maven coordinates and package names. Generally I'm all for moving things to the latest versions, but if the idea for this project is that it will be extended by downstream frameworks (like Spring/Quarkus), I'm not sure those frameworks have adopted Jackson 3? This seems like its going to be a major headache throughout industry (like the javax.* to jakarta.* change). |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Thanks @dolfim-ibm for getting this set up! I wanted to put forward some ideas on how we should move forward with this repo. Before that, though, I wanted to throw out some more general thoughts.
I'd like to manage this project like cattle, not cats.
I'd like to utilize All Contributors to recognize contributors to the project.
Purpose
The main purpose here is to provide a consolidated Java API for the docling interface. We'll start with the assumption that a docling serve instance is running somewhere and this API expresses a way to communicate with it.
Design ideas
Base Java version
As much as I'd like to start higher, I think our Java baseline needs to be Java 17. That being said, our test automation should test against Java versions 17, 21, 25, and whatever the newest non-LTS version is.
Documentation
We need to have published documentation. I don't have any real preference over which documentation framework we use. I personally am most familiar with Antora, but I'm open to suggestions.
We should also try to ensure that anywhere we can auto-generate as much documentation as possible from the code (See # 1 above)
Project Structure
Should we set this up as a multi-module project from the onset to allow for maximum flexibility? We already know we're going to have a documentation module, so it probably makes sense, even if we're only publishing 1 artifact to maven central at first.
Maven Central
We need to set up release automation to automate releases. JReleaser is good. We have some things in the Quarkiverse that make it easy (just merge a PR to a version file and the release happens automatically). I'm open to other ideas too, but this needs to be fully automated.
Java package structure
io.docling4jwould be a nice root package structure/groupId to use, but I think there is already a Docling4j project. What about any of these?io.docling.javaio.docling-javaio.docling.docling-javaI'm open to other suggestions as well.
Did I miss anything?
Beta Was this translation helpful? Give feedback.
All reactions