Skip to content

Releases: thingsdb/ThingsDB

v1.2.1

25 Jan 10:38

Choose a tag to compare

  • Switch from common- to all- time-zones, issue #267.

v1.2.0

14 Jan 10:03

Choose a tag to compare

  • Fixed allocation bug in reverse buffer, issue #253.
  • Added if..else as statement (marked if() as deprecated), issue #254.
  • Added return as statement (marked return() as deprecated), issue #255.
  • Added for..in with break and continue statements, issue #257.
  • Fixed memory leak with re-assigning closure variable, issue #259.
  • Upgrade to libcleri v1.0.0, issue #263.
  • Configurable deep value per scope and changed defaults, issue #261.
  • Set time zone per scope instead of collection only, issue #260.
  • Syntax changes, pr #264.
  • Added dup(..) and copy(..) to set, list and tuple type, issue #265.

v1.1.2

10 Dec 12:37

Choose a tag to compare

  • Added is_time_zone(..) function, issue #247.
  • Fixed task scheduling when restoring from file, issue #248.
  • Prevent restore when tasks are created in the @thingsdb scope, issue #249.
  • Added support for slice and index notation on bytes, issue #251.
  • Fixed bug with slice and index notation on internal names, issue #252.

v1.1.1

08 Dec 10:52

Choose a tag to compare

  • Remove scope restriction from time_zones_info() function, issue #236.
  • Function deep(..) can now be used to set the deep value, issue #237.
  • Remove the deprecated hash (#..) syntax, issue #232.
  • Added all action to the mod_type(..) function, issue #235.
  • Fixed unexpected behavior with unassigned typed things, issue #239.
  • Added restrict(..) function and restrictions on non-typed things, issue #210.
  • Added restriction() function, issue #240.
  • Fixed bug with deploying static module files, issue #241.
  • Fixed memory leak when deleting a locked value from a (dict) thing, issue #242.
  • Fixed generating Id for wrapped thing in list, issue #243.
  • Added optional limit argument to set().remove(..), issue #244.
  • Added remove() function for non-typed things, issue #245.

v1.1.0

10 Nov 14:09

Choose a tag to compare

  • Replace timers with tasks, pr #230.
  • Fixed bug in checking arguments for scheduled tasks, issue #225.
  • Fixed bug with updating properties in different threads, issue #226.
  • Fixed bug with log() in a scheduled closure, issue #224.
  • Added things to string conversion, issue #231.
  • Store task errors so they can be viewed, issue #227.
  • Deprecate the hash (#..) syntax, issue #232.
  • Removed deprecated READ, MODIFY, EVENT and WATCH, issue #233.
  • Removed deprecated test() on type str, issue #234.

v1.0.2

14 Oct 12:57

Choose a tag to compare

v1.0.1

23 Sep 12:33

Choose a tag to compare

  • Fixed critical bug: use data from buffer to solve re-allocation pointer bug, issue #214.

v1.0.0

10 Sep 14:11

Choose a tag to compare

  • Added a room type to replace watching things.
  • Added room() and is_room() functions.
  • Added clear() function on thing, set and list.
  • Fixed bug with removing a self reference from a set<->set relation.
  • Functions for the new room type:
    • id(): Return the Id of the room.
    • emit(..): Emit an event for the room.
  • Protocol types for the new room type:
    • TI_PROTO_CLIENT_ROOM_JOIN (6)
    • TI_PROTO_CLIENT_ROOM_LEAVE (7)
    • TI_PROTO_CLIENT_ROOM_EMIT (8)
    • TI_PROTO_CLIENT_ROOM_DELETE (9)
    • TI_PROTO_CLIENT_REQ_JOIN (38)
    • TI_PROTO_CLIENT_REQ_LEAVE (39)
    • TI_PROTO_CLIENT_REQ_EMIT (40)
  • Stored closures with side effects no longer require wse but can be used as long as a change is created. It is still possible to use wse to enfore a change.

Breaking changes from v0.10.x -> v1.0.0

  • Removed .watch(), .unwatch() and .emit() functions on type thing.
  • Removed the following protocol types (replaced with room protocol):
    • TI_PROTO_CLIENT_WATCH_INI (1)
    • TI_PROTO_CLIENT_WATCH_UPD (2)
    • TI_PROTO_CLIENT_WATCH_DEL (3)
    • TI_PROTO_CLIENT_WATCH_STOP (4)
    • TI_PROTO_CLIENT_REQ_WATCH (35)
    • TI_PROTO_CLIENT_REQ_UNWATCH (36)
  • Insert data using syntax like {"X": ...} (where X is a reserved keyword) is no longer possible.
  • Function .def() on a closure is removed. Use str(closure) instead.
  • Changed the return values of the following types:
    • regex: From object to string (e.g. {"*": "/.*/"} -> "/.*/").
    • closure: From object to string (e.g. {"/": "||nil"} -> "||nil").
      Note that str(closure) returns formatted closure code and
      just the type closure returns the closure as-is.
    • error: From object to string (e.g. {"!": ...} -> "some error msg").
  • Backup template no longer supports {EVENT} as template variable. This variable is replaced with {CHANGE_ID}.
  • All the counter properties with *event* are replaced with *change* and counter property changes_quorum_lost is renamed to simply quorum_lost.
  • All the node(s) info properties with *event* are replaced with *change* and property next_thing_id is changed to next_free_id as Ids are used for more than just things.
  • Previous EVENT (or MODIFY) access to a scope is renamed to CHANGE. (Note: this is not truly breaking since both EVENT and MODIFY` are marked as deprecated)
  • Previous WATCH access is renamed to JOIN. WATCH is marked as deprecated. (Note: this is not truly breaking since WATCH is marked as deprecated)
  • It is no longer possible to watch the @node scope. All socket connections will receive NODE_STATUS changes as soon as the client is authenticated. Watch (JOIN) privileges are no longer required on the @node scope for this feature.
  • Protocol TI_PROTO_CLIENT_NODE_STATUS (0) no longer returns a plain string with the status but instead a map with id containing the node Id and status with the new node status.
  • Function remove(..) on a list type will remove all values where a given closure evaluates to true. The return value will be a new list with the values which are removed. An alternative value is no longer possible.

v0.10.15

13 Jul 18:01

Choose a tag to compare

  • Added to_type(..) to convert a thing into a type instance, issue #205.
  • Added definable properties: regex, closure and error, issue #204.
  • Fixed bug with relations after invalid type creation, issue #203.
  • Fixed bug when adding a closure to an any type property, issue #202.
  • Changed default modules path, issue #207.

v0.10.14

06 Jul 16:53

Choose a tag to compare

  • Fixed bug with replace(..) using an empty regular expression, issue #198.
  • Fixed incorrect default value bug after using mod_type(..), issue #199.
  • Fixed memory leak after invalid mod_type(..) usage, issue #200.
  • Added regular expression support on str.split(..) function, issue #201.