|
| 1 | ++++ |
| 2 | +title = "OrientDB Guarantee to the users" |
| 3 | +description = "OrientDB Guarantee to the users" |
| 4 | +insert_anchor_links = "none" |
| 5 | +weight = 3 |
| 6 | +[extra] |
| 7 | +menu = false |
| 8 | ++++ |
| 9 | + |
| 10 | +When using and updating OrientDB as a user you may expect some level of guarantees, this level may not be the same by all open source projects, so here we are outlining the guarantee we do provide to our users. |
| 11 | + |
| 12 | +OrientDB follow semantic versioning in a quite strict way in the specific: |
| 13 | + |
| 14 | +the version is composed by 3 numbers like 2.5.25 this 3 numbers are: |
| 15 | + |
| 16 | +- first number (2 in the example) is the major version |
| 17 | +- second number (5 in the example) is the minor version |
| 18 | +- third number (25 in the example) is the patch version |
| 19 | + |
| 20 | +Here what changes, guarantees, and breakage can happen in each specific version |
| 21 | + |
| 22 | +## Major |
| 23 | + |
| 24 | +When a major is shipped the biggest set of changes can be done, but the kind of changes is still sort of limited, let's list them by categories: |
| 25 | + |
| 26 | +### APIs |
| 27 | +- Any sort of new APIs can be add, with completely redefined behavior |
| 28 | +- Deprecated APIs, that have been deprecated in the last hotfix of the previous major+minor can be removed, if an APIs |
| 29 | + has never been deprecated it cannot be removed, this allow users to smouthly update to the next major, the guaraantee is |
| 30 | + if using the last hotfix, there are not usages of deprecated methods, it should be possible to just update to the new major without |
| 31 | + the requirement of code changes |
| 32 | +- New deprecation of APIs are allowed |
| 33 | + |
| 34 | +### SQL |
| 35 | +- Any sort of new SQL syntax can be add, whit new complete behaviour |
| 36 | +- Some syntax or functions can be removed, if been deprecated in the documentation of the previous major/minor |
| 37 | +- Behaviour of query and functions should be constant, alternative functions can be provided for behaviour evolution |
| 38 | + |
| 39 | +### Protocols |
| 40 | +- Any sort of new protocol massages and concept can be add trough a versioning of the protocol |
| 41 | +- The protocol version older than the previous major may be removed, old the protocol versions of the previous major need to be supported |
| 42 | + |
| 43 | +### Disc |
| 44 | +- Any new disc structure can be add, with new complete behaviour |
| 45 | +- All disc structure of the previous major version can be open and operated, so a new major should allow to operate databases created with a previous major |
| 46 | +- Should be possible to migrate or port databases created with a older version of the database. |
| 47 | + |
| 48 | +# Minor |
| 49 | + |
| 50 | +### APIs |
| 51 | +- New APis can be add for additional behaviour as far they do not break existing APIs |
| 52 | +- No APIs can be removed |
| 53 | +- APIs can be deprecated for remove in the next major |
| 54 | + |
| 55 | +### SQL |
| 56 | +- New syntax or function can be add |
| 57 | +- No remove of functions or syntax |
| 58 | +- Deprecation can be done trough docs |
| 59 | + |
| 60 | +### Protocols |
| 61 | +- New messages may be add for additional functionalities |
| 62 | +- No message or message behaviour for previous protocol version can be removed |
| 63 | + |
| 64 | +### Disc |
| 65 | +- New Disk data structure can be add |
| 66 | +- fuctionalities for migrate(upgrade) between data structures can be add |
| 67 | +- No disc format can be removed |
| 68 | + |
| 69 | +## Patch |
| 70 | + |
| 71 | +### APIs |
| 72 | +- New minor APIs can be add, driven by user issues/bug |
| 73 | +- No removing of APIs allowed |
| 74 | +- Deprecation of APIs allowed, better if linked to an alternative API |
| 75 | + |
| 76 | +### SQL |
| 77 | + - new minor syntax and function are allowed if driven by user issues/bug |
| 78 | + - no removing of syntax or function allowed |
| 79 | + - deprecation allowed with replacement function |
| 80 | + |
| 81 | +### Protocols |
| 82 | +- new messages/functions allowed if driven by user issue/bug |
| 83 | +- no removing of any existing messages or protocols allowed |
| 84 | + |
| 85 | +### Disk |
| 86 | +- new data structure allowed if driven by user issue/bug |
| 87 | +- no removing of disc structure allowed. |
| 88 | +- new data migration functionalities allowed |
| 89 | + |
| 90 | + |
0 commit comments