Comments (5)
This is related to our previuos discussion whether we want to support the usage of multiple versions of the model within the same application.
I like this idea but maybe we are not considering all implications here, e.g. we would also need to have multiple "copies" of other components such as the de-/serializers as they will only work for a specific version of the model.
If we keep all the versions over time in the code base, the dependencies will become quite large over time.
Considering only final versions of the model an approach could be something like this
Release vX.Y.Z
with namespace ...v3...
used for all components, i.e. ...v3.model....
, ...v3.dataformat.json...
, ...v3.validator...
etc.
Upon release of next final version v4 of specification
Release v(X+1).Y.Z
with namespace ...v4...
used for all components, remove all ...v4...
namespaces
If an application wants to support v3 and v4 it can include dependencies with vX.Y.Z
and v(X+1).Y.Z
.
Downside would be that each time an application wants to upgrade to a new version of the model it has to update all imports.
Still the question remains how to handle RC-versions...
from aas4j.
It's a design decision in my view, which we should decide on as early as possible.
Pro ...v3.rc02...:
- possible to load the 3.0.RC02 library and a future 3.0 at the same time
Con:
- A lot (!) of classes need to be touched without functional changes
- all implementing applications need to touch all their import statements
from aas4j.
Agree with @mjacoby proposal.
Following a suggestion of @sebbader-sap, started an Architecture Decisions Records as a draft to document decisions.
from aas4j.
This commit has the change now in the code:
9c87ff1
from aas4j.
Let's keep this issue open until we merge the update-to-rc02
branch.
from aas4j.
Related Issues (20)
- Get Parent of Referable HOT 1
- Capitalization of class & method names changing back and forth HOT 3
- AASX containing Submodels with Files referencing files that are external to the AASX lead to a crash
- Enforce AASd-108
- interface attribute does not follow the naming pattern in Endpoint
- Allow mixed-type equals HOT 3
- Thumbnail images are not properly referenced when writing AASX files HOT 1
- File paths are written to AASX with file:// URI scheme HOT 4
- Provide formatter configuration for AAS4J HOT 1
- Opening a `.aasx` file generated by this library creates a `.aasx.cpgz` file on MacOS HOT 1
- Reading Template Asset Interfaces Description is not possible HOT 4
- Support for JSON by AASXDeserializer HOT 1
- Validation of XML UTF-8 BOM file fails
- Relationship targets do not follow the OPC HOT 3
- Make IDTA-published submodel templates loadable HOT 3
- Consider Bugfix release IDTA-01003-a: Data Spec IDs of IEC61360 template changed HOT 1
- Implement Bugfix release IDTA-0100x HOT 1
- [BUG] SAMM2AASX - incorrect serialization of Entities in Set HOT 4
- ReferredSemanticId is not set when generating a Reference using AasUtils
- Incorrect modelType of "DigitalFile" and "PreviewFile" in HandoverDocumentation Submodel template HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aas4j.