Skip to content

Releases: zefhub/zef

Version 0.16.0

29 Sep 21:28
Compare
Choose a tag to compare

New features:

  • VALUE_NODEs as low level blobs. Attribute entities now reference values and
    reuse stored blobs.

  • Val(...) syntax in a GraphDelta will create a value node.

  • Can load and save graphs locally.

Fixes:

  • Graphs record which ET/RT/ENs they are using again.

  • Issues with value nodes in graph caches.

Improvements:

  • SimpleGQL:

    • Custom routes handled by hooks can be given as Zef.Route lines in the
      graphql file.
  • Refactor GraphQL module from gql to graphql.

  • Improvements to many FX.

  • Improvements to many ZefOps.

  • More flexible graph update process, allowing concurrent processing.

  • Compact view for graphviz as default.

  • Many improvements to FlatGraphs

Breaking changes:

  • We have removed Windows support for this release. We are aiming to reintroduce
    it for the next release.

Small fix in imports due to renamings of VRT

19 Sep 11:17
Compare
Choose a tag to compare

Fixes:

is_a was using old imports that are no longer exposed from C++.

Added the following to zef.core.internals:

  • is_vrt_a_enum,
  • is_vrt_a_quantity_float
  • is_vrt_a_quantity_int

Version 0.15.8

29 Jul 06:25
0d99898
Compare
Choose a tag to compare

New features:

  • Rich output in zef.ui, via show, to_table and to_card.
  • splice, alias zefops.
  • Filegraphs and credentials are stored together in directory for ZefHub URL.
    This may require a new login with your credentials.
  • Symbolic expressions.

Breaking changes:

  • ZEFHUB_AUTH_KEY is repurposed for API keys for service jobs. API keys can be
    created for your account at console.zefhub.io.

Fixes:

  • SimpleGQL graphs are kept alive by default.
  • Fixes in ordering of graph delta commands.
  • Zefops ZefGenerators internally now for reliable iteration.

Improvements:

  • FlatGraphs:
    • FlatGraphs can absorbed other FlatGraphs from FlatRefs
  • SimpleGQL:
    • Faster queries/updates with explicit IDs.
    • Queries work in consistent graph slice.
    • debug-level for extra info
  • Core:
    • GraphSlices now hold a reference to their corresponding Graph.

Version 0.15.7

05 Jul 11:05
Compare
Choose a tag to compare

Breaking changes:

  • SimpleGQL: no longer takes the schema_file and graph as regular arguments, but
    as --schema-file and --data-tag instead.
  • Rename ZEFDB_CONFIG_PATH to ZEFDB_SESSION_PATH
  • schema zefop renamed to blueprint

New features:

  • SimpleGQL:

    • all main module arguments can be passed as environment variables,
      e.g. instead of --schema-file you can use SIMPLEGQL_SCHEMA_FILE.
      Commandline args take priority.
    • --init-hook option to run a hook on every startup
    • @dynamic(hook: "...") option for field resolvers
  • Tokens are cached in the session directory

  • Dictionary syntax for graph wishes: {ET.Something: {RT.A: 3, RT.B: 4}}

  • set_field operation for atomically updating "fields"

Fixes:

  • login auth flow was broken for the new default of statically built libzef.

Version 0.15.6

01 Jun 05:19
Compare
Choose a tag to compare

New Features

  • Zef repo has been open-sourced under the Apache License 2.0.

  • New traversal syntax...

    • Instead of z >> RT.Something use z | Out[RT.Something]
    • Instead of z >> L[RT.Something] use z | Outs[RT.Something]
    • Instead of z < RT.Something use z | in_rel[RT.Something]
  • The traversal operators now can take another argument to filter on the target/source, e.g. z | Outs[RT.Something][ET.SpecificEntity].

  • PyPI packages. Zef can now be installed via pip install zef.

  • General movement from predicates to types:

    • is_a compares its argument to a type.
    • Use Is[<predicate>] to create a type which is the set of all items where the predicate is satisfied.
  • pattern matching with the match operator. match_apply has been retired, if a constant value is to be returned this is easily done with a lambda.

  • the Pattern function: returns a ValueType and allows very concise pattern matching on dictionaries and lists.

  • Preliminary Windows support.

New ZefOps

  • schema to show delegate entities/relations. Note: the output of this is not stable and likely to change.

  • events on a ZefRef replaces instantiation_tx, termination_tx, etc...

  • events on a TX replaces instantiated, terminated, etc...

  • absorbed and without_absorbed manipulate parameters absorbed into ZefOps.

Bug Fixes

  • Many fixes!

Deprecations

  • New traversal syntax with ZefOps.

    • The operators >>, <<, >, < are deprecated along with the L[...] and O[...] syntax.
    • Instead use the operators like the following examples for single values:
      • z | Out[...] returns a ZefRef to the target of the outgoing relation
      • z | In[...]
      • z | out_rel[...] the ZefRef to the relation itself is returned
      • z | in_rel[...]
    • Multiple relations are obtained with a plural form of these operators:
      • z | Outs[...] for multary relations (a list of ZefRef is returned)
      • z | Ins[...]
      • z | out_rels[...]
      • z | in_rels[...]
  • match_apply is retired for match.