Skip to content

Releases: p2panda/p2panda

v0.8.1

19 Nov 18:31
Compare
Choose a tag to compare

Fixed

  • Fix de-/serialization for human-readable encodings #529 rs

v0.8.0

12 Oct 22:10
Compare
Choose a tag to compare

Changed

  • Remove unused methods from EntryStore #521 rs
  • Serialize Hash and derived id types from bytes #525 rs js
  • New Reducer trait used during document building #527 rs

Fixed

  • Fix missing bytes field validation in schema field definition #519 rs
  • Make sure that pieces field in blob_v1 is not empty #523 rs
  • Remove confusing test-utils macros in docs #526 rs

v0.7.1

27 Jul 12:46
Compare
Choose a tag to compare

Added

  • Implement serde for SchemaName and SchemaDescription #487 rs
  • Implement Ord for SchemaId #492 rs

Changed

  • Serialize PublicKey as bytes #495 rs
  • Remove next log id requirement in publish validation #502 rs

Fixed

  • Handle parsing empty pinned relation lists from PlainOperation #489 rs

Lion on the street

  • CI: Fix coverage task and update all GH actions #501

v0.7.0

06 Mar 11:33
Compare
Choose a tag to compare

Changed

  • Validate an operation's schema id matches the target document's in publish #486 rs
  • Introduce SchemaName, SchemaDescription and SchemaFields structs #481 rs
  • Add commit method to Document for applying operations incrementally #485 rs πŸ₯ž
  • Introduce api module which publicly exports publish and next_args #483 rs
  • Add schema name tests when deserializing plain operations #480 rs
  • Introduce typed errors in domain and validation modules #478 rs
  • Refactor storage API: Rename methods, remove StorageProvider and document "caching" layers #469 rs πŸ₯ž
  • Remove VerifiedOperation #465 rs
  • Better docs for Document #470 rs
  • Remove DocumentMeta #472 rs
  • Update dependencies for Rust and TypeScript #476 rs js

v0.6.0

07 Sep 14:52
Compare
Choose a tag to compare

Changed

  • Rename previousOperations field to previous, add examples #459 js
  • Updated diagrams and doc-strings #460 rs
  • Rename Author to PublicKey #461 rs js
  • Rename previous_operations to previous #461 rs

Fixed

  • Fix validation of relations pointing at system schema ids #453 rs

v0.5.0

19 Aug 11:13
Compare
Choose a tag to compare

Added

  • MemoryStore in memory implementation of storage traits #383 rs
  • Helpers and conversion implementations to create schemas and operations more easily #416 rs
  • Untagged operation format, schema validation, new operation and entry API #415 rs
  • Serde trait implementations for DocumentId and all relations #446 rs
  • Introduce new low-level API for p2panda-js, move Session into new repository #447 js

Changed

  • Refactor mock Node implementation to use StorageProvider traits #383 rs
  • Deserialize from string and u64 for LogId and SeqNum #401 rs
  • Add latest_log_id method to LogStore #413 rs
  • Remove generic parameters from StorageProvider #408 rs
  • Consistent as_str and to_string functions, introduce Human trait with display method for short strings #389 rs
  • Update Human impl for SchemaId and DocumentViewId #414 rs
  • Deprecate mock Node and Client structs #437
  • Introduce validation and domain modules to test_utils/db #437
  • Introduce new node and browser builds for JavaScript, export TypeScript definitions #429 js
  • Refactored benchmarks to include schema validation #430 rs
  • Replace @apollo/client with graphql-request #441 js
  • Expose from_bytes for EncodedOperation and EncodedEntry #445 rs
  • Introduce new feature flags, rename testing to test-utils #448 rs
  • Replace lazy_static with once_cell #449 rs
  • Build ES Module, CommonJS, NodeJS and UMD modules with rollup #450 js

Fixed

  • Set log id default to 0 #398 rs
  • Fix iterator implementations for SeqNum and LogId #404 rs
  • Fix system schema CDDL definitions #393 rs
  • Fix GraphQL queries via Apollo #428 js

v0.4.0

01 Jul 10:14
Compare
Choose a tag to compare

Added

  • Document for sorting and reducing a graph of Operations #169 rs πŸ₯ž
  • Derive Ord and PartialOrd for LogId #201 rs
  • Rename SchemaBuilder to CDDLBuilder #226 rs
  • SchemaView and SchemaFieldView for representing materialised system documents #226 rs
  • relation & relation_list field type #205 rs js
  • SchemaId enum for identifying different schema types #221 rs
  • CDDL for schema_v1 and schema_field_v1, use cddl-cat instead of cddl #248 rs
  • Schema for representing application schema #250 rs
  • Performance benchmarks for entry and operation encoding/decoding #254 rs
  • Move DocumentId from DocmentView into Document #255 rs
  • Introduce OperationId to increase type safety around uses of Hash #272 rs
  • StorageProvider and associated traits for implementing storage solutions #274 rs πŸ₯ž
  • Implement Display trait for various structs #281 rs
  • Implement document view id hash as a limited-size identifier for document views #277 rs
  • Additional methods on EntryStore needed for replication #310 rs
  • Introduce DocumentViewHash, implement Hash for DocumentViewId #313 rs
  • Introduce DocumentViewFields & DocumentViewValue and other Document additions #319 rs
  • Storage traits for Operation #326 rs
  • Implement schema hash id as a unique identifier for schemas rs #282 rs
  • Graph method for selecting sub-section of graph #335 rs
  • Storage traits for documents #343 rs
  • Materialise a document at a specific document view #337 rs
  • Static definitions of system schemas and other updates for schema provider in aquadoggo #365 rs

Changed

  • Instance renamed to DocumentView #169 rs
  • Fix letter casing in operations #230 rs js
  • Fixes and refactorings around schema #233 rs
  • Split Relation into pinned and unpinned type #235 rs
  • Separate cddl from schema more clearly #239 rs
  • Turn schema field in operations into a pinned relation #256 rs
  • Implement OperationValue variants for all relation types #260 rs js
  • Support all Relation flavours in cddl module #259 rs
  • Impl IntoIter trait for PinnedRelation, RelationList and DocumentViewId #266 rs
  • Improve error reporting when adding operation fields #262 rs js
  • Update mock node API #286 rs
  • Refactored graph module to be generic over graph node keys and other graph improvements #289 rs
  • Require sorted serialisation of document view ids #284 rs
  • Introduce new application schema id format #292 rs
  • Update spelling of system schema ids #294 rs
  • Update Schema implementation to make use of new SchemaId #296 rs
  • Require schema field definitions to specify a specific schema #269 rs πŸ₯ž
  • Methods for getting string representations of OperationValue field type and OperationAction #303 rs
  • Additional constructor method for OperationWithMeta #322 rs
  • Minor method renaming in EntryStore #323 rs
  • Require storage provider errors to be thread-safe #340
  • Make previous_operations a DocumentViewId #342 rs
  • Restructure / refactor test_utils and place behind testing flag #344 rs
  • Update openmls crate to v0.4.1 #336 rs
  • Replace OperationWithMeta with VerifiedOperation #353 rs
  • Remove test-data generator from test_utils #373 rs
  • Implement OperationStore on test provider SimplestStorageProvider #361 rs
  • Improve validation in EntrySigned constructor #367 rs
  • Session interface using GraphQL #364 js
  • Updated dependencies, remove automock crate #379 rs

Fixed

  • Fix determination of field types in p2panda-js #202 js
  • Fix equality of document view ids by sorting before comparison #284 js
  • Pin all versions in Cargo.toml to avoid unexpected crate updates #299 rs
  • Fix document test needing testing feature to be activated #350 rs

Everything burrito

  • Easier to read CDDL schema error strings #207 rs
  • Force cache cleanup to fix code coverage report #231
  • Split up overly long operation.rs file #232 rs
  • Extend test coverage for OperationFields #236 rs
  • Further develop our best practices for writing documentation #240 rs
  • Test debug macro calls in Github CI #288 rs
  • Move private module doc strings into public places #339 rs
  • Add mockall crate and create mocks for EntryStore and LogStore #314 rs
  • Generate documentation with TypeDoc for p2panda-js #359 js

v0.3.0

02 Feb 17:05
Compare
Choose a tag to compare

Added

  • SecureGroup for key negotiation in groups and message protection #130 rs πŸ₯ž
  • SchemaBuilder and Schema structs for working with CDDL definitions #78 rs
  • test_utils module containing rstest fixtures, mock Node and Client structs, test data helper for p2panda-js #116 rs
  • Reconciliation logic /w DAG for materialisation module #129 rs
  • Instance which encapsulates the materialised view of a reduced collection of Operations #161 rs
  • Retrieve unsigned bytes to verify Entry signatures manually #197 rs

Changed

  • Adopt Blake3 hashes, which bring us better performance and shorter identifiers #139 rs πŸ₯ž
  • Update ed25519 crate to 1.3.0 and deprecated Signature API #137 rs
  • Use new Operation naming which replaces Message #156 BREAKING rs js
  • Remove distinction of system and application log ids #154 rs
  • Update JavaScript dependencies, remove deprecated eslint-loader #155 js
  • Split utils modules in test_utils into utils.rs and constants.rs #157 rs
  • Use traits for validation methods in Schema #160 rs
  • Add previous_operations field in Operation #163 BREAKING rs js
  • Introduce OperationWithMeta struct #163 rs
  • Update API and mocks to reflect yasmf hash and document flow changes #165 BREAKING rs js
  • Change to new rustdoc::missing_doc_code_examples linter name #168 rs
  • Update Rust dependencies #171 rs
  • Convert JavaScript configuration files to TypeScript or JSON #172 js
  • Implement Hash, Eq and PartialEq traits for several core data types #178 rs
  • Use ciborium for cbor de/serialization #180 rs
  • Break wasm module down into sub-files, add wasm target tests #184 rs
  • Changes to mocks module in test_utils #181 rs
  • Implement logging for mock node in test_utils #192 rs
  • Support u64 and i64 integers, remove sqlx #177 rs js

Campfires and boiling pots to sit around

  • Update test_utils documentation #152 rs
  • Make clippy happy, add CI for linter checks #153 rs
  • Clean up documentation and update new terminology #170 rs js
  • Improve CI, make it faster, add code coverage report #173 rs js
  • Update Codecov GH action #176 rs
  • Add JavaScript coverage reporting #194 js

v0.2.1

26 Oct 11:04
Compare
Choose a tag to compare

Fixed

  • Use deprecated linter name for now as it breaks some building pipelines #121 rs
  • Fix access to optional parameter in Session.query logging call #119 js

Campfires and boiling pots to sit around

  • Add pull request template to not forget updating this changelog #122

v0.2.0

25 Oct 18:53
Compare
Choose a tag to compare

Added

  • Relation message values #33 rs
  • Atomic data types like Message, Entry, LogId, SeqNum, etc. #23 rs πŸ₯ž
  • sqlx Type traits to atomic structs, introduce db-sqlx feature flag #43 rs
  • serde serialization and deserialization for all atomic structs #42 rs
  • Implement method for iterating over MessageFields #68 rs
  • TypeScript API that wraps wasm bindings, introduce OpenRPC specification #67 js πŸ₯ž
  • Methods to update and delete instances #114 js πŸ₯ž

Changed

  • Change all result types to return std::Result and custom p2panda-rs errors #41 rs
  • Move WebAssembly related code into own wasm module #49 rs
  • Own module for encoding, decoding and signing entries #62 rs
  • General module restructure #69 rs
  • Add support for different message values in WebAssembly #71 rs
  • Extend jserr macro to support custom error messages #75 rs
  • Use published bamboo-rs-core crate #94 rs
  • p2panda-js directory restructure #102 js
  • Use Jest as test framework #104 js
  • Clean up OpenRPC generate script #109 tests
  • Refactor and simplify WebAssembly build pipeline #105 rs js
  • Revisit singleton logic of WebAssembly import #110 js
  • Move WebAssembly methods of KeyPair into dedicated module #111 rs

Fixed

  • Fix wrong offset of skiplinks #46 rs
  • Assure deterministic hashing by ordering of message keys 84a583 rs
  • Remove BigInt to support WebKit #66 rs
  • Properly import entry tests module #81 rs
  • Correct error in panda_queryEntries OpenRPC specification result #108 tests

Campfires and boiling pots to sit around

  • Write examples in Rust documentation #59 rs πŸ₯ž
  • Add SPDX license headers to all files #86 rs js
  • Run tests with node version matrix #98 tests