So, in practice, two main points to discuss:
1. Switch to Semantic Versioning
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
The idea would be to have 2.# minor version every month, with patches in-between. A monthly minor upgrade allow to have new features included quick enough to be interresting.
2. mORMot 2.0.0 would induce incompatible API changes.
I would like:
2.1. To remove all reminicence of the "SQLite3 framework", e.g. the SQLite3 sub-folder.
2.2. Try to split SynCommons.pas and mORMot.pas units into smaller units. Putting e.g. the raw JSON process or RTTI in some external unit.
2.3. Introduce some high-level classes and units, perhaps as (why-not?) some non-visual TComponent version of our classes. Keeping existing low-level classes, which are stable and full of features - but difficult to adopt.
2.4. Get rid of oldest Delphi (e.g. Delphi 5 - which is currently broken BTW) official compatibility, only support mainstream Delphi revisions, and focus on FPC trunk as main target -and officially maintaining only a few version of Delphi (2007/XE7/10.3?) - with other version maintained by contributors.
Any feedback is welcome in our forum, as usual!