Fix a race condition when package uploading and ACS fetching happen at around the same time. In previous versions of dazl 7.2.0, if _another_ Ledger API client uploaded a DAR and created a contract while dazl was fetching the ACS, the call would fail because dazl wouldn't have a chance to read metadata for that package. Performance has also been increased for `dazl ls` as it now only loads the minimal set of packages that are required, as opposed to all of them.
Fixing this bug required substantial changes to the way that command serialization and ACS/transaction event parsing work in order to allow these operations to be interrupted and retried if a package happens to be missing. As a result, there are a number of deprecations in dazl 7.3.0.
*If you are _not_ using type information directly, these deprecations will not affect you.*
These are the symbols that are now deprecated; they will be dropped in 8.0.0:
* `dazl.model.types.Type` and related classes have been replaced with `dazl.damlast.daml_lf_1.Type`.
* `dazl.model.types_store.PackageStore` has been replaced by a combination of `dazl.client.pkg_loader.PackageLoader` (responsible for fetching packages) and `dazl.damlast.lookup.SymbolLookup` (responsible for providing matching symbols statically). Calls that may refer to symbols that are known on the server but not yet known on the client can wrap themselves in `PackageLoader.do_with_retry` to ensure that they are safe.
* `dazl.protocols` parsing and serialization routines have been largely replaced by `dazl.values.ValueMapper` and related classes; these classes define the mapping between DAML-LF values and different representations in Python (native types, JSON-compatible types, and Protobuf).
* `dazl.util.prim_types` has largely moved to `dazl.prim`, which centralizes the simple conversions between various Python types.
The default behavior of loading all packages on startup will be CHANGED in dazl 8.0.0 to be more on-demand; code that assumes that all packages are loaded will need to use the new APIs to ensure that they are compatible going forward.