Skip to content

Releases: dolittle/Contracts

Release v5.4.0

28 Jun 12:59
4928575
Compare
Choose a tag to compare

Summary

Adds Embeddings services and messages

Added

  • Service and messages for registering, comparing and projecting Embeddings
  • Service and messages for getting Embeddings
  • Service and messages for updating and deleting Embeddings

Prerelease v5.4.0-embeddings.3

22 Apr 08:08
16a4d80
Compare
Choose a tag to compare
Pre-release

Summary

Firstly, I have added a method for getting all the keys for an Embedding from the EmbeddingStore, this is most likely the call that will be used externally (to figure out what to delete), and should save a bit of time and effort for doing that.

Secondly, I change the event we are sending over to the Head when projecting an event to be an UncommittedEvent. We are going to be projecting both uncommitted and committed events, so the least common structure would be the uncommitted event. This means that there will be less available information about the event itself (as it has not been stored yet), but still most of what we need (ExecutionContect) will still be in the ReverseCallRequestContext.

Added

  • Method for getting all keys for an Embedding. This will be useful to have, and should save some time for a few operations.

Changed

  • From a StreamEvent to UncommittedEvent when asking the Head to project an event in an Embedding.
  • EmbeddingsStore -> EmbeddingStore to be consistent with e.g. EventStore.

Prerelease v5.4.0-embeddings.2

21 Apr 15:24
09680dc
Compare
Choose a tag to compare
Pre-release
  • Mostly a copypasta from Projections/Store
  • Removed ScopeId from the requests (not needed for embeddings)
  • Added the untracked Generation/Artifacts folder to .gitignore. I think that folder is just automatically created by dotnet build, and it only contains the generated doc .xml file.

I also now realised, that we have structured this differently from Projections. The Projections.proto files with the registration code is inside Events.Processing folder, not Projections. Maybe Embeddings.proto should then also get moved to Events.Processing?

Prerelease v5.4.0-embeddings.1

16 Apr 07:59
5655350
Compare
Choose a tag to compare
Pre-release
  • EmbeddingRequest is now a oneof of either EmbeddingCompareRequest/EmbeddingDeleteRequest/ProjectionRequest
  • EmbeddingDeleteRequest is an empty message as we don't need any more info.
  • EmbeddingResponse is a oneof of EmbeddingCompareResponse/ProjectionResponse
  • Renamed some of the properties to have request or response in their names respectively.
  • Organized the Embeddings.proto into groupings based on client->runtime or runtime->client messages and added small comments showing the blocks (got too excited for the idea of creating docs out of this some day with a tool like https://github.com/pseudomuto/protoc-gen-doc
  • Added quick build instructions to the readme

Prerelease v5.4.0-embeddings.0

13 Apr 10:47
0327c04
Compare
Choose a tag to compare
Pre-release

Summary

Added an embeddings service, that has three endpoints:

Connect, for registering an embedding:

An embedding is an extension of a projection (only allowed on the default scope), that also handles compare requests.
When the external state of an embedding changes, the embedding will be called to compare the externally provided state and the current state of the projection that has the same key. The method is expected to return a set of events that move the projection state closer to the external state. These events are committed and used to update the projection. This process will be repeated until the external and projection states are equal.

Update, for asking the runtime to start an update process:

At any time, the runtime can be called with a state for a given embedding id and key. If the state is not equal to the current state, the process described above will kick in. When the states are equal, the runtime will reply with the projected state. If it is not possible to reach the provided state for the specified embedding, the runtime will reply with a failure and not commit any events.

Delete, for asking the runtime to start an update process that results in a deletion:

This endpoint triggers the same behaviour as the Update endpoint, but where the desired state is that the given embedding id and key should not exist.

Note: for getting the current state of embeddings, the projections endpoint can be used with the embedding id as the state of embeddings are stored using projections.

Added

  • Service for registering an embedding, and for updating and deleting the state

Release v5.3.0

09 Apr 10:09
0a4b556
Compare
Choose a tag to compare

Summary

Added support for imperative Projections, and releasing of generated Go code, and some minor cleanup of code generations scripts.

Added

Changed

  • Moved things around in the code generation (Fundamentals+Runtime top level -> Language top level)
  • Removed generated fundamentals code in @dolittle/runtime.contracts, and added dependency
  • Removed Runtime/ Fundamentals/ directories in JS pacakges

Removed

  • Code generation for JavaScript.Web using gRPC web, since we are currently not using it and it was not working.

Prerelease v5.3.0-projections.11

08 Apr 11:31
b48d8bb
Compare
Choose a tag to compare
Pre-release
Merge pull request #47 from dolittle/change-enums-to-oneofs

Changed enums to oneofs

Prerelease v5.3.0-projections.10

07 Apr 17:49
1a1531a
Compare
Choose a tag to compare
Pre-release

Summary

Started with the need of getting back the projection key when getting states from the Runtime. Lead into a little bit of moving things around and cleaning up.

Changed

  • Moved Key from ProjectionRequest -> ProjectionCurrentState so that it gets returned by the projection store as well.
  • Moved the ProjectionCurrentState over to Runtime/Projections/State.proto - it felt like it wanted to be there.

Prerelease v5.3.0-projections.9

29 Mar 09:38
8f11c80
Compare
Choose a tag to compare
Pre-release

Summary

Adds the functionality of getting projections

Added

  • Service for getting projections

Prerelease v5.3.0-projections.8

28 Mar 00:01
6632b52
Compare
Choose a tag to compare
Pre-release

Summary

Fixed releasing of Go generated code when nothing has changed.

Fixed

  • Use git commit --allow-empty ... to release a new Go version even if nothing has changed