Refactor our instance deserialization/serialization pipeline, both on
TypeScript and on Rust [sdk] to use typeId and attributeIds instead of
typeNames and attributeNames. We furthermore ignore cardinalities
on associations until the instance layer and always
store associations as arrays. This commit introduces **eventual
consistency** on the client, i.e. we are from now on always storing data
in the newest schema format (activeApplicationVersionsForWritingSum)
which ensures that all data is already available on the client after
updating the client to a newer version. This removes the need for
offline migrations on the client and also removes backward migrations
on the server. Furthermore, the server model types are now available
on the client, retrievable through the ApplicationTypesFacade. This is
our first step towards FastSync.
Co-authored-by: nig <nig@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
This commit moves some functions that are used in both App and Worker.
Also renames CommonMailUtils to SharedMailUtils.ts because there share
functionalities between both apps and creates a new file CommonMailUtils
to store functions that are common between app and worker.
This commit implements the production build script of Calendar's webapp.
Calendar app contains user management, so this commit also moves
settings page files that are related to it to the common chunk.
`electron-builder` has undocumented support for building universal
binaries with `electron/universal`.
It's mentioned in `electron-builder`'s change logs & in
/packages/app-builder-lib/src/macPackager.ts#L109 inside
`electron-builder`'s repo.
Added a new flag `-a` which allows the developer to set the architecture
of the built client. It causes an error when an unsupported combination
of platform & architecture is used. By default, it uses the architecture
the installed node binary uses.
When there is a model change on the server that would conflict with
the entities stored in the offline database, we need to do a migration
We generate some model diffs with the code generator and use them
for a compile-time check.
Co-authored-by: ivk <ivk@tutao.de>
This commit not only sets up the build for windows on jenkins,
it also consolidates how we get prebuilt binaries for native modules i.e. keytar and better-sqlite3
and generally has some refactorings
The dist build was refactored in commit:
916ee1ed1d
The format of the desktop options was changed from a raw object to a map,
but the usages in DesktopBuilder weren't adapted. This change adapts them
and also tidies it up a bit.
reviewed with sas
Split dist.js (desktop.js, webapp.js)
Simplify command line interface for dist builds
Extract utilities used from dist builds
Extract fetching and publishing dictionaries into its own build step
Extract signing installers into its own build step
Extract .deb packaging and publishing into its own build step
Add some documentation, verbosity and general improvements to the code