Version 4.0.0 (Breaking)#31
Conversation
|
I have bumped the schema - and Im thinking about doing a release on this (v4) I merged them into a secondary PR I was working on (to address smart start inconstancies), and merged that PR to V4 This PR - should now be fully updated with your commits, and has the following versions.
if connecting to a lesser version of the schema (since its now based on 40) - just use the override Do you want to cast your eyes over it? |
|
This MASSIVE update may get released this week - do you want to test it? remember to build your PSI rename ./dist/server.exe to ./dist/server.psi, and distrubute the image with the library. Note: it doesn't yet have the ability to load a PSI from another location. |
It looks good, but I won't be able to test it before next week. |
|
@marcus-j-davies you should probably bump the driver to 14.3.8. 14.3.7 has an issue with reading from cache. |
|
Thanks @AlCalzone for the heads up - Bumped! |
…a version compatibility is now only checked on server side. (#84) Remove some compilation warnings.
|
@spudwebb - Hope your well? I'm going to be finishing up V4 today, and going to be moving to v5 right after (Branch already based on v4). But After V4 - it will drop support for older targets, V5 will get continued updates but will only support the modern targets
I will be removing the embedded sockets library in v5 - as I need to bring it up to the latest code bases. I will bring V4 upto the latest Schema of course - but after that, V5 will be the active branch, where it will steer away from legacy frameworks - hence my suggestion to keep your own fork for V4. tl;dr |
|
Fair enough, I will maintain my own fork of v4. |
|
Let me first bring v4 inline with the current schema (working on it at this very minute).
I am also setting the internal CMDResult(JObject Res)
{
this.Success = Res.Value<bool>("success");
if (Res.ContainsKey("result"))
{
bool? success = Res.SelectToken("result.success")?.Value<bool?>();
if (success.HasValue)
SetPayload(success.Value);
}
if(Res.ContainsKey("zwaveErrorCode"))
this.ErrorCode = Res.Value<string>("zwaveErrorCode");
if (Res.ContainsKey("zwaveErrorMessage"))
this.Message = Res.Value<string>("zwaveErrorMessage");
}Meaning if you don't use Will tag you once those changes are pushed, so you can grab the latest v4 code |
|
I am adding a new method to the public T ResultPayloadAs<T>()
{
return ResultPayload is T value ? value : default!;
}Usage Driver.Controller.Nodes.get(4).GetDefinedValueIDs().ContinueWith((R) =>{
ValueID[] VIDs = R.Result.ResultPayloadAs<ValueID[]>()
foreach(ValueID VID in VIDs){
// Do something with VID (Value ID)
}
})Once again, I will ping you once V4 has been updated with all my changes & bumps to the schema |
|
Do you want to now pull the latest V4 sources from the V4 branch?
Let me know if any issue. I don't think this applies to you, but still: To build the PSI
|
|
Aren't you going to merge and release a v4 version before you switch to v5 and drop support for older versions of the .NET SDK ? |
|
Merged - Will be releasing to nuget soon. |
|
Published to NuGet! It will be a lil while before the main branch has the V5 commits, so any issues with this release, do let me know, and I'll publish fixes as needed. I would grab a copy of the main branch as it is now, so you can maintain backwards compatibility. |
WORK-IN-PROGRESS
Versions
Breaking Changes
Having to maintain the build actions/platforms to keep these updated is eating into the time I have left.
Building a PSI is relatively uneventful - please see the READ ME on how to do this.
The supported frameworks are as follows:
- NET 48
- NET 6.0
- NET 7.0
- NET 80
- NETSTANDARD 2.0
- NETSTANDARD 2.1
RebuildRoutesDone and RebuildRoutesProgress and not have dedicated classes for the args
This is to address some unintentional communication between the Driver runtime and the lib.
New Features
Warning!!! This will Reset your controller, and will result in a clean network with no included nodes.
This is helpful if you want to use a method that is not yet implemented, or to support an older version of an exetrnal server
Internal changes
TaskinstanceShoutout to...
@spudwebb for the massive amounts of contribution for this release
and @georgeinva2004 for testing the stuff I haven't (which is a lot 😬)
and @AlCalzone for..... Ummm Zwave JS
and @raman325 for the foundations needed to expose the Driver to other languages