Skip to content

fix links from doc to openapi components#72

Merged
pdowler merged 1 commit intoivoa-std:mainfrom
pdowler:main
Apr 15, 2026
Merged

fix links from doc to openapi components#72
pdowler merged 1 commit intoivoa-std:mainfrom
pdowler:main

Conversation

@pdowler
Copy link
Copy Markdown
Collaborator

@pdowler pdowler commented Mar 31, 2026

still not sure about delivering the OpenAPI parts this way... TBD.

known issue: the generated URLs overflow the margins even with the manual line break

@msdemlei
Copy link
Copy Markdown
Contributor

msdemlei commented Apr 1, 2026 via email

@pdowler
Copy link
Copy Markdown
Collaborator Author

pdowler commented Apr 8, 2026

I am certain that the openapi files that are the source of truth must be in the repository with the standard document (under ivoa-std).

How we might deploy those to a well known location is the question and I take it from your comments concerning XSDs, for example, that we don't have something solid in place.

I'm kind of skeptical about branches in a single "openapi" repo because this first attempt to use openapi spans 3 different standards. I will think about it some more and also other alternatives.

@msdemlei
Copy link
Copy Markdown
Contributor

msdemlei commented Apr 9, 2026 via email

@Zarquan
Copy link
Copy Markdown
Member

Zarquan commented Apr 9, 2026

A couple of suggestions based on our experience developing the OpenAPI schema for Execution Broker.

The design of the Execution Broker schema is split into separate components that are combined together to build the final result. At the moment all of our components are in the same repository, but at some point we would like to be able to import components from other repositories, and make our own components available for other projects to use.

Some of the OpenAPI tools handle this split schema well, others don't.

To mitigate this, our development process starts with a tool that follows the $ref links between schema components and brings everything together into a single schema file. The rest of the code generation works from this single file.

I would suggest that this single combined file is the thing that should be published alongside the standard as the source of truth for a specific version.

The development version of the schema, along with the toolchain that builds it, would be in a separate git repository, maintained and developed as a software project. One output of the toolchain would be a versioned copy of the combined schema, which is then exported as a static file into the ivoa-std repository for the standard.

The GitHub project for the Execution Broker OpenAPI schema uses GitHub workflows to generate and build code for Java and Python clients, and the server side stubs for a Java-Spring service.

The Java binaries are packaged and published in the GitHub Maven repository.

Based on our experience I would suggest we keep things separate.

We are still learning and evolving the processes for working with OpenAPI schema and the products that can be generated from it. Trying to coordinate and maintain a global set of schema across all of the projects in a single repository would be very complicated. Even more so if we factor in the workflows for generating code and publishing binaries.

@Zarquan
Copy link
Copy Markdown
Member

Zarquan commented Apr 9, 2026

Shorter version : Trying to manage all of the schema in a single place would be difficult. Alternative would be to develop each schema as separate git projects, and use a workflow to bring components together to create the combined schema file that is published as the source of truth for a specific version of a standard.

@msdemlei
Copy link
Copy Markdown
Contributor

msdemlei commented Apr 9, 2026 via email

@Zarquan
Copy link
Copy Markdown
Member

Zarquan commented Apr 9, 2026

All good points. This is beginning to look like a typical dependency management problem for software libraries.
Perhaps we should move this discussion to a separate issue and let Pat go ahead with his merge.

@pdowler pdowler merged commit 145d857 into ivoa-std:main Apr 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants