Releases: thingsdb/ThingsDB
Releases · thingsdb/ThingsDB
v1.2.1
v1.2.0
- Fixed allocation bug in reverse buffer, issue #253.
- Added
if..elseas statement (markedif()as deprecated), issue #254. - Added
returnas statement (markedreturn()as deprecated), issue #255. - Added
for..inwithbreakandcontinuestatements, issue #257. - Fixed memory leak with re-assigning closure variable, issue #259.
- Upgrade to libcleri v1.0.0, issue #263.
- Configurable
deepvalue per scope and changed defaults, issue #261. - Set time zone per scope instead of collection only, issue #260.
- Syntax changes, pr #264.
- Added
dup(..)andcopy(..)to set, list and tuple type, issue #265.
v1.1.2
- Added
is_time_zone(..)function, issue #247. - Fixed task scheduling when restoring from file, issue #248.
- Prevent restore when tasks are created in the
@thingsdbscope, 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
- 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
allaction to themod_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
- Replace
timerswithtasks, 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
thingsto string conversion, issue #231. - Store task errors so they can be viewed, issue #227.
- Deprecate the hash (
#..) syntax, issue #232. - Removed deprecated
READ,MODIFY,EVENTandWATCH, issue #233. - Removed deprecated
test()on typestr, issue #234.
v1.0.2
- Callable modules, issue #213.
- Install modules using a GitHub repository and
module.json, pr #216. - Added
refresh_module()function, issue #217. - Added
logfunction, pr #218. - Fixed bug with nested futures, issue #219.
- Added basic JSON support, issue #220.
json_dump(): https://docs.thingsdb.net/v1/collection-api/json_dump/json_load(): https://docs.thingsdb.net/v1/collection-api/json_load/
- Accept zero arguments for the
wrap()function, issue #223.
v1.0.1
v1.0.0
- Added a
roomtype to replace watching things. - Added
room()andis_room()functions. - Added
clear()function onthing,setandlist. - Fixed bug with removing a self reference from a
set<->setrelation. - Functions for the new
roomtype:id(): Return the Id of the room.emit(..): Emit an event for the room.
- Protocol types for the new
roomtype: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
wsebut can be used as long as a change is created. It is still possible to usewseto enfore a change.
Breaking changes from v0.10.x -> v1.0.0
- Removed
.watch(),.unwatch()and.emit()functions on typething. - 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. Usestr(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 thatstr(closure)returns formatted closure code and
just the typeclosurereturns 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 propertychanges_quorum_lostis renamed to simplyquorum_lost. - All the node(s) info properties with
*event*are replaced with*change*and propertynext_thing_idis changed tonext_free_idas Ids are used for more than just things. - Previous
EVENT(orMODIFY) access to a scope is renamed toCHANGE. (Note: this is not truly breaking since bothEVENTand MODIFY` are marked as deprecated) - Previous
WATCHaccess is renamed toJOIN.WATCHis marked as deprecated. (Note: this is not truly breaking sinceWATCHis marked as deprecated) - It is no longer possible to watch the
@nodescope. All socket connections will receiveNODE_STATUSchanges as soon as the client is authenticated. Watch (JOIN) privileges are no longer required on the@nodescope for this feature. - Protocol
TI_PROTO_CLIENT_NODE_STATUS (0)no longer returns a plain string with the status but instead amapwithidcontaining the node Id andstatuswith the new node status. - Function
remove(..)on alisttype will remove all values where a given closure evaluates totrue. The return value will be a newlistwith the values which are removed. An alternative value is no longer possible.
v0.10.15
- Added
to_type(..)to convert a thing into a type instance, issue #205. - Added definable properties:
regex,closureanderror, issue #204. - Fixed bug with relations after invalid type creation, issue #203.
- Fixed bug when adding a closure to an
anytype property, issue #202. - Changed default modules path, issue #207.