-
Notifications
You must be signed in to change notification settings - Fork 472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maintaining specifications for 3D Tiles 1.0, 1.1, and beyond #631
Comments
Thanks for putting this together @javagl. Lots to think about. Some comments on the separate directories approach...
I'm a bit worried about the scalability of the separate directories approach if we start to do more frequent revisions, say a minor release every half year or so (or even every year). The tagging approach will allow us to move faster if we realize there's things that need to be added post 1.1 but pre 2.0. If maintenance of older versions becomes a problem we could consider using branches instead of tags. |
One point that could me mentioned here explicitly: There will probably be PDF files that represent "releases" - namely, the documents that will be THE standardized specification, verbatim, with strict versioning and release date. And even though they will likely be maintained in other places as well, in one form or another - like https://docs.opengeospatial.org/cs/18-053r2/18-053r2.html for 3D Tiles 1.0 - there should probably be a "releases" folder in the repo. (This folder should then contain the documents that have been removed in #668 ) |
Some details that have been mentioned in this issue still have to be decided upon. I think that having a 1.1 release in the sense of GitHub releases ( https://github.com/CesiumGS/3d-tiles/releases ) could make sense, capturing the whole repository state at a given point in time. Beyond that, I could imagine that a Additionally, there now is A proposal for a 3D Tiles packaging format specification, raising the question of where this could be maintained, and how to manage the releases. The input for this specification also consists of a set of ADOC files. The output is a PDF file. But its versioning is unrelated to that of the 3D Tiles core specification. So I think that it could make sense to reflect this in the directory structure (roughly: to not maintain this in a subdirectory of the |
The current approach is:
So there are some details that might come up again in the future, but can then be tracked in dedicated issues. |
There are efforts for the standardizing 3D Tiles version 1.1. This version will be based on what is currently referred to as "3D Tiles Next", which currently is a set of (draft) extensions for 3D Tiles 1.0, that offer the core functionality that is supposed to be standardized as version 1.1.
We have to find a way to sensibly maintain and organize different versions in this repository. The approaches here could roughly be categorized as follows:
3D Tiles 1.0, 'Next', and 1.1 should coexist, should easily be accessible, and may have to be maintained independently (for smaller bugfixes). And some of the current repository contents will be (largely) independent of the underlying version (but that might change if there is a version 2.0 at some point). So I think that trying to find a directory-based versioning mechanism makes more sense in our case.
Current state
Right now, the directory structure of the repository is
(Omitted some additional files, like
figures
directories that refer to the respective README etc.)Directory layout options
The options for organizing different versions in such a directory structure differ in the detail. This basically refers to the level of "granularity" on which the version numbers are inserted, affecting the question of which part a certain version applies to.
Very roughly speaking, one could start "pragmatically", with a layout like this:
With the obvious caveats:
reference-card
subfolders require versioning. But are not part of the "specification" in the narrow sense.extensions
should be separate of the "core" specification. But they strictly belong to one version. And right now, all extensions belong to 3D Tiles 1.0, and are what is referred to as "3D Tiles Next"next
folder belongs to 1.0, but ... is not part of the core specififcation. This is the odd one out. In some sense, theextensions
could/shuld be a subfolder ofnext
...One could move the version information "up" in the hierarchy, leading to something like this:
Note: There currently is no anticipated versioning mechanism for
\specification\Metadata
or\specification\Styling
. They are somewhat independent of the 3D Tiles version. But they might require some versioning mechanism as well in the future. (Will this versioning be "aligned" to the 3D Tiles version? May there be a "Styling 2.0" for "3D Tiles 2.0"? Or could "3D Tiles 2.0" use "Styling 1.1"? Should they be just put into the1.0
directory, and the1.1
directory could just point to these, saying that ~"nothing changed here"?)The text was updated successfully, but these errors were encountered: