Nullable types for fields with default values in Kotlin

Currently a schema like
input ColorFilter {
    color: String = "red"
}

generates a Kotlin class like (shortened to the constructor)
public data class ColorFilter(
  @JsonProperty("color")
  public val color: String? = "red"
)

According to the spec

An input field is required if it has a non‐null type and does not have a default value. Otherwise, the input object field is optional.

To my understanding this would allow to generate
public data class ColorFilter(
  @JsonProperty("color")
  public val color: String = "red"
)

as the field will be always set in this case. This would using the generated class a tad easier as it avoids using ?. or !!.

Your example schema is nullable, the non-nullable version would look like.
input ColorFilter {
    color: String! = "red"
}

See http://spec.graphql.org/June2018/#sec-Type-System.Non-Null

Maybe I worded the problem badly, so here's another take.
Using a nullable type with a default value creates a quasi-non-nullable type on the server as in case the field isn't set, the receiver fills in the default value. Using a the schema you suggested kind of defeats the purpose of having a default value as the sender of the query is still required to fill in a value as the type itself is non-nullable and thus the field is considered required.

From the spec you linked to:

An input field is required if it has a non‐null type and does not have a default value.

So technically a non-null type + a default type is not "required" in the sense that a value does not need to be explicitly supplied, is my reading; if the schema is as in your first example, there's still the possibility a client can explicitly pass a null, overriding the default value of "red":
ColorFilter(color = null)

If what you are saying is that in the case of a default, the client simply does not send a value at all for color, and relies on the server to fall back to the default from the schema, then I think that is a separate issue, as the current design of the generated code really doesn't allow for that; with your example, the client would be explicitly sending the default value of "red", instead of omitting it, since the data class is generated with a default argument. I think the serialization code would have to be changed to do what you're suggesting.
I think this boils down to the difference of nullability in the type system, meaning can this field have a null value, vs whether the field is required to be present in the input at all.

A put together some test cases to validate this, maybe it illustrates it a bit better.
For this schema a nullable type for color:
input ColorFilter {
    color: String = "red"
}

type Query {
  things(filter: ColorFilter!): [String!]!
}

Queries such as the following are valid:
query {
  things(filter: {})
}

query {
  things(filter: {color: null})
}

For this schema with a non-nullable type for color:
input ColorFilter {
    color: String! = "red"
}

type Query {
  things(filter: ColorFilter!): [String!]!
}

This query is valid:
query {
  things(filter: {})
}

But this one is not:
query {
  things(filter: {color: null})
}

Now the semantics of sending an explicit null vs. missing property when there is a default, is probably left up to the specific implementation. Anyway, all of this is a long-winded way of saying that I still feel this boils down to:

a default value in an input allows for the absence of the field in the query.
whether the field is nullable or not, is a separate concern, and has different implications (is it valid to explicit send null).
the data class we generate means that the default value is always sent by the client, and the field is never omitted (whether or not that is an issue, I don't know).

Thanks @kilink That is a very accurate summary of the design behind the current implementation. Specifically, for code generated classes, the default values of fields are automatically sent as part of the serialized query if the user has not set it. We chose this approach as it is easier to support the majority of use cases compared to adapting the serialization logic, which can get pretty gnarly very quickly.
In most scenarios, it generally doesn’t hurt to send the default value as part of the serialized query. The main use case for not doing so is where you want to explicitly set it to null to test some server logic, and you can still do by setting it explicitly.

On Feb 14, 2021, at 1:01 PM, Patrick Strawderman<EMAIL_ADDRESS>wrote:

I put together some test cases to validate this, maybe it illustrates it a bit better.
For this schema a nullable type for color:
input ColorFilter {
color: String = "red"
}
type Query {
things(filter: ColorFilter!): [String!]!
}
Queries such as the following are valid:
query {
things(filter: {})
}
query {
things(filter: {color: null})
}
For this schema with a non-nullable type for color:
input ColorFilter {
color: String! = "red"
}
type Query {
things(filter: ColorFilter!): [String!]!
}
This query is valid:
query {
things(filter: {})
}
But this one is not:
query {
things(filter: {color: null})
}
Now the semantics of sending an explicit null vs. missing property when there is a default, is probably left up to the specific implementation. Anyway, all of this is a long-winded way of saying that I still feel this boils down to:
a default value in an input allows for the absence of the field in the query.
whether the field is nullable or not, is a separate concern, and has different implications (is it valid to explicit send null).
the data class we generate means that the default value is always sent by the client, and the field is never omitted (whether or not that is an issue, I don't know).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

My test case (which I didn't mention before ... sorry for that) was based on using variable substitution in contrast to putting the data directly in the query as you did. It seems like they seem to behave differently.
I've created a repository (based on dgs-examples-kotlin) here to verify. I've used the built-in graphiql endpoint for the tests (if this makes any difference).
Summary: Using the following (simplified) scheme
type Query {
    color(filter: ColorFilter!): String!
}

input ColorFilter {
    color: String = "red"
}

querying color (which just returns the value of the color field of ColorFilter or "Nothing provided" when color is null) using
query ($filter_empty: ColorFilter!, $filter_explicit_null: ColorFilter!) {
  variable_empty: color(filter: $filter_empty)
  variable_explicit_null: color(filter: $filter_explicit_null)
  inline_empty: color(filter: {})
  inline_explicit_null: color(filter: {color: null})
}

with variables being
{
  "filter_empty": {},
  "filter_explicit_null": {
    "color": null
  }
}

it yields
{
  "data": {
    "variable_empty": "red",
    "variable_explicit_null": "red",
    "inline_empty": "red",
    "inline_explicit_null": "Nothing provided"
  }
}

As you can see variable_explicit_null and inline_explicit_null yield different returns. To my understanding this is caused by applying different rules on de-serialization (and I don't know, which one is correct).


Cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.

When trying to create a new insider container on a Windows10 Host, I'm getting the above error.
It works when I add "-isolation 'HyperV'".. .  Current images (like "mcr.microsoft.com/businesscentral/onprem:be") work fine.  Only insider images have this problem.
Full output - I added the "***" message to see what the actual docker command was ...:
NavContainerHelper is version <IP_ADDRESS>
NavContainerHelper is not running as administrator
Host is Microsoft Windows 10 Pro - ltsc2019
Docker Client Version is 18.09.1
Docker Server Version is 18.09.1
VERBOSE: Perform operation 'Enumerate CimInstances' with following parameters, ''namespaceName' = root\cimv2,'className' = Win32_OperatingSystem'.
VERBOSE: Operation 'Enumerate CimInstances' complete.
Pulling image bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
*** Docker run: pull  bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
be-ltsc2019: Pulling from bcsandbox-master
Using image bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
Removing container bcdaily
Removing bcdaily from host hosts file
Removing C:\ProgramData\NavContainerHelper\Extensions\bcdaily
Creating Container bcdaily
Version: 16.0.10541.0-be
Style: sandbox
Platform: 15.0.38209.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.17763.805 (ltsc2019)
Host OS Version: 10.0.17763.864 (ltsc2019)
WARNING: The container operating system matches the host operating system, but the revision is different.
If you encounter issues, you might want to specify -isolation hyperv
Using locale nl-BE
Using process isolation
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Files in C:\ProgramData\NavContainerHelper\Extensions\bcdaily\my:
- AdditionalOutput.ps1
- MainLoop.ps1
- SetupVariables.ps1
- SetupWebClient.ps1
- updatehosts.ps1
Creating container bcdaily from image bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
*** Docker run: run --env licenseFile="" --name bcdaily --hostname bcdaily --env auth=NavUserPassword --env username="waldo" --env ExitOnError=N --env locale=nl-BE --env databaseServer="" --env databaseInstance="" --volume "C:\ProgramData\NavContainerHelper:C:\ProgramData\NavContainerHelper" --volume "C:\ProgramData\NavContainerHelper\Extensions\bcdaily\my:C:\Run\my" --isolation process --restart unless-stopped --memory 8G --env enableApiServices=Y --env useSSL=N --volume "c:\windows\system32\drivers\etc:C:\driversetc" --env securePassword=76492d1116743f0423413b16050a5345MgB8AFkAeABVAGQAdgBaADIARQA2AG0AbQBDAEEATABaAHUAaQBMADEATwB6AGcAPQA9AHwAMQAyADMANwBjAGEAMQA1ADkAMQAzADYAMgA0ADQANwA0ADkAMgAwAGIAOQBjADkAZQAwAGQAZgA3ADgANABlAGUAMgA2ADkAYQBjADgAYQA2AGMAOAAyADcAMgA5ADUAYQAxADkANwBkADkAMAAyAGIAYgA2ADEANgA0ADgANAA= --env passwordKeyFile="c:\run\my\aes.key" --env removePasswordKeyFile=Y --cpu-count 8 --dns=<IP_ADDRESS> --env accept_eula=Y --env accept_outdated=Y --detach bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720
Waiting for container bcdaily to be ready
Initializing...
Setting host.docker.internal to  in container hosts file (copy from host hosts file)
Setting gateway.docker.internal to  in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is
PublicDnsName is bcdaily
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 09E4F1C023552E77D81612C8312453CEBFAE3361
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at <ScriptBlock>, C:\Run\navstart.ps1: line 142
at <ScriptBlock>, C:\Run\start.ps1: line 121
at <ScriptBlock>, <No file>: line 1Error
Initializing...
Setting host.docker.internal to  in container hosts file (copy from host hosts file)
Setting gateway.docker.internal to  in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is
PublicDnsName is bcdaily
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 09E4F1C023552E77D81612C8312453CEBFAE3361
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at <ScriptBlock>, C:\Run\navstart.ps1: line 142
at <ScriptBlock>, C:\Run\start.ps1: line 121
at <ScriptBlock>, <No file>: line 1
Initialization of container bcdaily failed
At C:\Users\ericw\Documents\WindowsPowerShell\Modules\navcontainerhelper\<IP_ADDRESS>\ContainerHandling\Wait-NavContainerReady.ps1:44 char:17
+ ...             throw "Initialization of container $containerName failed" ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Initialization ... bcdaily failed:String) [], RuntimeException
    + FullyQualifiedErrorId : Initialization of container bcdaily failed

This is the script I'm running:
New-NavContainer
-containerName 'bcdaily'
-imageName 'bcinsider.azurecr.io/bcsandbox-master:be'
-accept_eula
-additionalParameters '--cpu-count 8 --dns=<IP_ADDRESS>'
-alwaysPull:True
-Credential $MyCredential
-updateHosts
-auth NavUserPassword
-enableSymbolLoading:False
-assignPremiumPlan:False
-useBestContainerOS
-includeTestToolkit:False
-includeTestLibrariesOnly:False
-Verbose
-memoryLimit 8G
-accept_outdated
-includeAL

These are the logs:
PS > docker logs bcdaily
Initializing...
Setting host.docker.internal to  in container hosts file (copy from host hosts file)
Setting gateway.docker.internal to  in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is
PublicDnsName is bcdaily
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 09E4F1C023552E77D81612C8312453CEBFAE3361
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at <ScriptBlock>, C:\Run\navstart.ps1: line 142
at <ScriptBlock>, C:\Run\start.ps1: line 121
at <ScriptBlock>, <No file>: line 1

and the docker inspect:
PS > docker inspect bcdaily
[
    {
        "Id": "d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720",
        "Created": "2019-12-02T08:08:22.4055229Z",
        "Path": "powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; .\\Run\\start.ps1",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 9352,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2019-12-02T08:08:23.890526Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Health": {
                "Status": "unhealthy",
                "FailingStreak": 9,
                "Log": [
                    {
                        "Start": "2019-12-02T09:10:55.8391547+01:00",
                        "End": "2019-12-02T09:10:56.1861434+01:00",
                        "ExitCode": 1,
                        "Output": ""
                    },
                    {
                        "Start": "2019-12-02T09:11:26.2008018+01:00",
                        "End": "2019-12-02T09:11:26.6028216+01:00",
                        "ExitCode": 1,
                        "Output": ""
                    },
                    {
                        "Start": "2019-12-02T09:11:56.6150951+01:00",
                        "End": "2019-12-02T09:11:56.9736955+01:00",
                        "ExitCode": 1,
                        "Output": ""
                    },
                    {
                        "Start": "2019-12-02T09:12:26.9923214+01:00",
                        "End": "2019-12-02T09:12:27.3472679+01:00",
                        "ExitCode": 1,
                        "Output": ""
                    },
                    {
                        "Start": "2019-12-02T09:12:57.3601246+01:00",
                        "End": "2019-12-02T09:12:57.7246739+01:00",
                        "ExitCode": 1,
                        "Output": ""
                    }
                ]
            }
        },
        "Image": "sha256:67bfd1bf57e45f38f55d2800782893e219e25a01a0b46df52f177c4e804c06b7",
        "ResolvConfPath": "",
        "HostnamePath": "",
        "HostsPath": "",
        "LogPath": "C:\\ProgramData\\Docker\\containers\\d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720\\d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720-json.log",
        "Name": "/bcdaily",
        "RestartCount": 0,
        "Driver": "windowsfilter",
        "Platform": "windows",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "C:\\ProgramData\\NavContainerHelper:C:\\ProgramData\\NavContainerHelper",
                "C:\\ProgramData\\NavContainerHelper\\Extensions\\bcdaily\\my:C:\\Run\\my",
                "c:\\windows\\system32\\drivers\\etc:C:\\driversetc"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [
                "<IP_ADDRESS>"
            ],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 0,
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "process",
            "CpuShares": 0,
            "Memory":<PHONE_NUMBER>,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 8,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": null,
            "ReadonlyPaths": null
        },
        "GraphDriver": {
            "Data": {
                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720"
            },
            "Name": "windowsfilter"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "c:\\programdata\\navcontainerhelper",
                "Destination": "c:\\programdata\\navcontainerhelper",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "c:\\programdata\\navcontainerhelper\\extensions\\bcdaily\\my",
                "Destination": "c:\\run\\my",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "c:\\windows\\system32\\drivers\\etc",
                "Destination": "c:\\driversetc",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "bcdaily",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "1433/tcp": {},
                "443/tcp": {},
                "7045/tcp": {},
                "7046/tcp": {},
                "7047/tcp": {},
                "7048/tcp": {},
                "7049/tcp": {},
                "80/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "removePasswordKeyFile=Y",
                "auth=NavUserPassword",
                "locale=nl-BE",
                "enableApiServices=Y",
                "licenseFile=",
                "databaseInstance=",
                "accept_outdated=Y",
                "username=waldo",
                "useSSL=N",
                "securePassword=76492d1116743f0423413b16050a5345MgB8AFkAeABVAGQAdgBaADIARQA2AG0AbQBDAEEATABaAHUAaQBMADEATwB6AGcAPQA9AHwAMQAyADMANwBjAGEAMQA1ADkAMQAzADYAMgA0ADQANwA0ADkAMgAwAGIAOQBjADkAZQAwAGQAZgA3ADgANABlAGUAMgA2ADkAYQBjADgAYQA2AGMAOAAyADcAMgA5ADUAYQAxADkANwBkADkAMAAyAGIAYgA2ADEANgA0ADgANAA=",
                "accept_eula=Y",
                "ExitOnError=N",
                "databaseServer=",
                "passwordKeyFile=c:\\run\\my\\aes.key",
                "COMPLUS_NGenProtectedProcess_FeatureEnabled=0",
                "DatabaseName=Financialsbe",
                "NAVDVDURL=https://dockerbuildqueue.blob.core.windows.net/dvd/879afb46-0354-4c97-a6b2-53bd29f098d1",
                "VSIXURL=https://dockerbuildqueue.blob.core.windows.net/dvd/al-5.0.200795.vsix",
                "IsBcSandbox=Y",
                "CountryCode=be",
                "DEVPREVIEWURL=https://dockerbuildqueue.blob.core.windows.net/dvd/6f67af23-e0a4-4591-a638-727ed6e3fa92"
            ],
            "Cmd": [
                "powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; .\\Run\\start.ps1"
            ],
            "Healthcheck": {
                "Test": [
                    "CMD",
                    "powershell",
                    ".\\Run\\HealthCheck.ps1"
                ],
                "Interval":<PHONE_NUMBER>0,
                "Timeout":<PHONE_NUMBER>0
            },
            "ArgsEscaped": true,
            "Image": "bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "country": "be",
                "created": "201911260722",
                "cu": "",
                "eula": "https://go.microsoft.com/fwlink/?linkid=861843",
                "legal": "http://go.microsoft.com/fwlink/?LinkId=837447",
                "maintainer": "Dynamics SMB",
                "nav": "",
                "osversion": "10.0.17763.805",
                "platform": "15.0.38209.0",
                "tag": "<IP_ADDRESS>",
                "version": "16.0.10541.0"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "1433/tcp": null,
                "443/tcp": null,
                "7045/tcp": null,
                "7046/tcp": null,
                "7047/tcp": null,
                "7048/tcp": null,
                "7049/tcp": null,
                "80/tcp": null,
                "8080/tcp": null
            },
            "SandboxKey": "d676734d4b30ce874c8353fa4b152ef4a930760c3be6d8f387fdfea1ca5e7720",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "nat": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "d8f0eec6271ff5ea95b69b2ac0fe7bad2c80031e29469dc003cbcb5d18196781",
                    "EndpointID": "915cc8d3fcb6f9bf8412a4952f81fda8348ed53854e155b4faa2c75fc1616d45",
                    "Gateway": "<IP_ADDRESS>",
                    "IPAddress": "<IP_ADDRESS>",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "00:15:5d:ea:f7:13",
                    "DriverOpts": null
                }
            }
        }
    }
]

My host version:

FYI:
New-BCContainer     -accept_eula
-imageName bcinsider.azurecr.io/bcsandbox-master:gb     -auth UserPassword
-Credential $credential     -containerName $dev15containerName
-licenseFile $licenseFile     -updateHosts
-useBestContainerOS `
-includeAL
on

works just fine.

Thanks @waldo1001  - will spin up a similar machine and test.
Thanks @yrest - in your case you will be running hyperv isolation, which is what Waldo says solves the problem.

Cheers Freddy! You don't happen to have a blog on how do you troubleshoot this kind of stuff?

Hmm. Even though BE image downloads and runs on my machine, when trying to login into sandbox, am getting "An error has occurred".
Digest: sha256:227dfe762ccbe68372315e0cf9188e9a3d5e1e1271e5fbba32283dd037f5f1eb
Status: Downloaded newer image for bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
Using image bcinsider.azurecr.io/bcsandbox-master:be-ltsc2019
Creating Container bcinsider
Version: 16.0.10541.0-be
Style: sandbox
Platform: 15.0.38209.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.17763.805 (ltsc2019)
Host OS Version: 10.0.19033.1 (Unknown/Insider build)

I do not have any description, sorry.
I always look at the command and the output and try to do a repro.
I have tried running the master:be on Windows Server 2019 (17763.864) using process isolation - that works - and I have tried running it on Windows 10 1909 - both works fine.
It might be hard for me to find a Windows 10 1809 (without 1903 and 1909 updates) like the one Waldo is using.
@yrest - if you want me to look at this issue, you should open a new issue and include full command and full output. It doesn't look to be the same issue as Waldo.
@waldo1001 - since this is the servicetier not starting, there should be something in the event log.
Could you use get-navcontainereventlog and send or attach the .evtx
Thanks

Here you go!
I couldn't find anything, actually .. . Only a bunch of warnings on an older date (which I assume was at creation-time of the docker image).
bcdaily 2019-12-02 12.31.17.zip

The only strange thing in the event log is 25 occurances of InvokeOpenCompany which all takes more than 1 second.
Haven't seen that before.

Yes, but as I said - that's on the 26th of November .. so I guess that's from "within" the image.. ?  Don't know..

You are of course right, these are from image building.

Just fyi, this is a successful container (with hyperv isolation):
bcdaily 2019-12-02 12.55.14.zip

Do you have .net 4.8 on the host?

On November 20th we shifted master to .net 4.8 - the container is up-to-date - but when running process isolation it will use your windows - and that is probably the reason

Well .. not sure.  When I check the registry, it seems not:

but when I try to install 4.8, I get this:

But when I check with msbuild.exe:

Hmm - ok - I am spinning up a Windows 10 Pro with your version now.

It appears that I can spin up that exact version of Windows 10 on Azure - and yes, I can repro the problem.
Will do some more investigations.
Thanks

What is the client and full under v4 say on your machine?

Currently, these 16.0 versions are available - they all fail...
16.0.10321.0-be-ltsc2019
16.0.10335.0-be-ltsc2019
16.0.10343.0-be-ltsc2019
16.0.10359.0-be-ltsc2019
16.0.10367.0-be-ltsc2019
16.0.10375.0-be-ltsc2019
16.0.10385.0-be-ltsc2019
16.0.10391.0-be-ltsc2019
16.0.10406.0-be-ltsc2019
16.0.10411.0-be-ltsc2019
16.0.10422.0-be-ltsc2019
16.0.10437.0-be-ltsc2019
16.0.10441.0-be-ltsc2019
16.0.10452.0-be-ltsc2019
16.0.10455.0-be-ltsc2019
16.0.10459.0-be-ltsc2019
16.0.10467.0-be-ltsc2019
16.0.10473.0-be-ltsc2019
16.0.10484.0-be-ltsc2019
16.0.10495.0-be-ltsc2019
16.0.10496.0-be-ltsc2019
16.0.10499.0-be-ltsc2019
16.0.10507.0-be-ltsc2019
16.0.10513.0-be-ltsc2019
16.0.10516.0-be-ltsc2019
16.0.10524.0-be-ltsc2019
16.0.10534.0-be-ltsc2019
16.0.10541.0-be-ltsc2019

I also tried
bcinsider.azurecr.io/bcsandbox:15.1.37413.0-be-ltsc2019
which is from October 22nd - it works.
And when I tried the newest from mcr.microsoft.com/businesscentral/sandbox:be-ltsc2019 from November 27th (latest generic) - it works perfectly.
You have been running insider builds in process isolation on that machine up until you reported this error right?
I am really puzzled

Well, I haven't run insider builds for a while.  It has nothing to do with the date I reported this.  I didn't run an insider since wave2, to be honest.

But indeed, I always use process isolation. It still works with all 15.x images.  Just not the 16.x ones.
Can't it be something related to a platform change in BC?  Which is not compatible with current version of Windows10?
Just thinking out loud... .

did you try the latest bcinsider.azurecr.io/bcsandbox:be-ltsc2019 - that also fails for me?

Doing as we speak ... will report back

No, doesn't work without hyperv isolation:
Login Succeeded
New-NavContainer
-containerName 'bcdaily'
-imageName 'bcinsider.azurecr.io/bcsandbox:be-ltsc2019'
-accept_eula
-additionalParameters '--cpu-count 8 --dns=<IP_ADDRESS>'
-alwaysPull:'True'
-Credential 'System.Management.Automation.PSCredential'
-updateHosts
-auth NavUserPassword
-enableSymbolLoading:False
-assignPremiumPlan:False
-useBestContainerOS
-includeTestToolkit:False
-includeTestLibrariesOnly:False
-Verbose
-memoryLimit 8G
-accept_outdated
-includeAL
-shortcuts 'None' #'None' for no shortcuts (or 'Desktop')

This is the output:
Connecting docker to bcinsider.azurecr.io user: 2151f4c8-8fc2-4c87-a360-4f6c73ed8636 pwd: 6=8EOnWN7yqV7?H/u?301O6nP05grB:N
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
New-NavContainer
-containerName 'bcdaily'
-imageName 'bcinsider.azurecr.io/bcsandbox:be-ltsc2019'
-accept_eula
-additionalParameters '--cpu-count 8 --dns=<IP_ADDRESS>'
-alwaysPull:'True'
-Credential 'System.Management.Automation.PSCredential'
-updateHosts
-auth NavUserPassword
-enableSymbolLoading:False
-assignPremiumPlan:False
-useBestContainerOS
-includeTestToolkit:False
-includeTestLibrariesOnly:False
-Verbose
-memoryLimit 8G
-accept_outdated
-includeAL
-shortcuts 'None' #'None' for no shortcuts (or 'Desktop')
VERBOSE: Perform operation 'Enumerate CimInstances' with following parameters, ''namespaceName' = root\cimv2,'className' = Win32_OperatingSystem'.
VERBOSE: Operation 'Enumerate CimInstances' complete.
NavContainerHelper is version <IP_ADDRESS>
Host is Microsoft Windows 10 Pro - ltsc2019
Docker Client Version is 18.09.1
Docker Server Version is 18.09.1
Pulling image bcinsider.azurecr.io/bcsandbox:be-ltsc2019
be-ltsc2019: Pulling from bcsandbox
Using image bcinsider.azurecr.io/bcsandbox:be-ltsc2019
Removing container bcdaily
Removing bcdaily from hosts
Removing C:\ProgramData\NavContainerHelper\Extensions\bcdaily
Creating Container bcdaily
Version: 15.2.38451.0-be
Style: sandbox
Platform: 15.0.38362.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.17763.805 (ltsc2019)
Host OS Version: 10.0.17763.864 (ltsc2019)
WARNING: The container operating system matches the host operating system, but the revision is different.
If you encounter issues, you might want to specify -isolation hyperv
Using locale nl-BE
Using process isolation
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Files in C:\ProgramData\NavContainerHelper\Extensions\bcdaily\my:
- AdditionalOutput.ps1
- MainLoop.ps1
- updatehosts.ps1
Creating container bcdaily from image bcinsider.azurecr.io/bcsandbox:be-ltsc2019
ad94e1f10e950a7ae866e3ac65b5f3451abe935a01d36c75ecbd344d431a62d3
Waiting for container bcdaily to be ready

Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 1ACC56F7E79B482AB04FD8F675EE06C21EB46F7F
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at <ScriptBlock>, C:\Run\navstart.ps1: line 142
at <ScriptBlock>, C:\Run\start.ps1: line 121
at <ScriptBlock>, <No file>: line 1Error

Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 1ACC56F7E79B482AB04FD8F675EE06C21EB46F7F
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error: Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at <ScriptBlock>, C:\Run\navstart.ps1: line 142
at <ScriptBlock>, C:\Run\start.ps1: line 121
at <ScriptBlock>, <No file>: line 1
Initialization of container bcdaily failed
At C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\<IP_ADDRESS>\ContainerHandling\Wait-NavContainerReady.ps1:44 char:17
+ ...             throw "Initialization of container $containerName failed" ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Initialization ... bcdaily failed:String) [], RuntimeException
    + FullyQualifiedErrorId : Initialization of container bcdaily failed

Waldo delete the first line.. Userid/password is only for partners..

Please remember that docker login only needs to run once - it doesn't have to be part of any scripts.

isn't "bcinsider.azurecr.io/bcsandbox-master:be" not the right one to use?

You only login to the registry
Both repositories in this registry are accessible (and both fails)

The reason for this is that the service tier service takes a very very long time to startup and the default service startup timeout is 30 seconds.
The question is of course why?

Were you able to get it started eventually?

@waldo1001 do you have any other containers already running?

@yrest - nope..

Hijacking a bit: On my Windows 10 Pro machine bcinsider.azurecr.io/bcsandbox-master:be" works with Isolation HyperV

Yep, isolation hyperv 'solves' it, but it should work in process isolation, I guess.. .

It appears that I can spin up that exact version of Windows 10 on Azure - and yes, I can repro the problem.

Which image are you using on Azure?

@waldo1001 - yes, but it is a GIANT hack...
I thought, that if nothing was in the event log, then maybe the service tier never knew that anything was wrong - so I decided to try and increase the service start timeout value.
Problem is, that this requires a reboot and a reboot makes the container think that it is restarting (which it is).
HACK START:
Add this parameter
    -myscripts @( @{ "SetupVariables.ps1" = 'if (Get-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" | Select-Object -ExpandProperty "ServicesPipeTimeout" -ErrorAction SilentlyContinue) {
    Write-host "ServicesPipeTimeout already set"
    $restartingInstance = $false
    $newPublicDnsName = $true
    . "c:\run\SetupVariables.ps1"
}
else {
    Write-host "Set ServicesPipeTimeout and restart"
    Set-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" -name "ServicesPipeTimeout" -Value 2000000 -Type DWORD -Force
    Restart-computer
    Start-Sleep -seconds 10000
}' })

to New-navcontainer - then it will set the allowed timeout and redo initialization.
HACK END!
It isn't a solution - a lot of things might still be wrong - but it tells me that there isn't anything wrong in the container - for some reason, it just takes a million years to start the service tier.
which then is what I need to find out...

Which raises the question - is there something changes in the service tier in regards of compatibility with my Windows 10 version .. ?  I'd be interested how a normal installation from dvd would act..

That is a good idea.
Was thinking how in earth I could get closer to the issue here.
I will install a DVD on the machine i created and test that.

Installing the DVD doesn't seem to yield the same problems...

starting the service in about 20 seconds.

What is the naming convention for windows services on NST? Should the service name be BC160?

On 4 Dec 2019, at 13:36, Freddy Kristiansen<EMAIL_ADDRESS>wrote:

Installing the DVD doesn't seem to yield the same problems...
starting the service in about 20 seconds.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@yrest, Please don't hijack an existing thread for something completely different.

Very meaningful reply, thank you.

Did they perhaps change something in the image regarding the SQL Server?
I am also trying to investigate it on a 1809 Windows Pro AzureVM and just started one Container with Freddy's Hack and looked at it for a while at around noon. Then I switch the whole VM off and just restarted it. When I tried to restart the NST inside the running container, It failed with the exact same message as waldo reported. I looked around and realized the SQL Server was not running at all.
After I started the SQL Service manually the NST came back up again. No problem.
Now I am not sure if that is relevant but I will try to reproduce this behaviour

@yrest  - I removed that post again because it was me installing 15.0 which worked (as it also did in docker, so proving nothing)
Installing 16.0 now

Thanks @staedter - yes, all images are using the same generic layer - both images that works and images that doesn't - and SQL is part of that layer.

I am at a loss as to why this is happening. I looked at the system and application event logs of the latest BC15 image, of a container with and a container without the hack and the only real difference seems to be the timinig with which some of the windows services start and/or fail. These services include the Background Intelligent Transport Service (BITS) and the Update Orchestrator Service, but i really don't see how any of this could impact the starting time of the NST-Service

The application log of the BCFail Container just suddenly stops without much apparently usefull information.
I uploaded the three system logs, maybe someone else can figure out something more from them.
Will continue to look into it when I got the time.
bcfail.txt
bc15.txt
bcdaily.txt

Thanks @staedter - BTW, the hack from above should be like this:
    -myscripts @( @{ "SetupVariables.ps1" = 'if (Get-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" | Select-Object -ExpandProperty "ServicesPipeTimeout" -ErrorAction SilentlyContinue) {
    Write-host "ServicesPipeTimeout already set"
    . "c:\run\SetupVariables.ps1"
}
else {
    Write-host "Set ServicesPipeTimeout and restart"
    Set-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" -name "ServicesPipeTimeout" -Value 2000000 -Type DWORD -Force
    Restart-computer
    Start-Sleep -seconds 10000
}' })

in order to support restarts of the container.

I also tried to insert a 5 minute wait statement before starting the BC service - to see if some other pieces wasn't done initializing and that would then cause the service tier to be slow - but that didn't help either.

just FYI, I looked at the Docker daemon debug output and can't see anything relevant there

I will try to build a private generic image with servercore 10.0.17763.864 - and run using that.

That didn't work.
Next thing I will try is to place the database on the host to see whether it works if the database is ready to roll when the service tier starts....

That also made no difference.
I also tried to remove virus scanner and all protection - doesn't work.

I just wanted to add some findings as well, since I am running into the same problem. While it is true that - for me - using HyperV isolation gets me through the New-NAVContainer process, it does fail installing test libraries.
It doesn't matter, if I include that in the New command or if I do that differently. It always fails at the same extension and that is the Microsoft_Tests-ERM_16.0.10601.0.app. It stops with a timeout and then the service tier is not running anymore.

@pzentner how did you establish that?

@yrest When I create an insider build container using the following command:
New-NavContainer -accept_eula -accept_outdated -containerName xxx-imageName "bcinsider.azurecr.io/bcsandbox-master:us" -licenseFile 'license.flf' -Credential (Get-Credential) -updateHosts -enableTaskScheduler:$false -alwaysPull -useBestContainerOS -auth NavUserPassword -isolation "HyperV" -memoryLimit 15G
it goes through without a problem. Leaving -isolation off, it doesn't work. I even tried to add more memory, thinking this could be an issue, but it hasn't been.
Now, if I use
Import-TestToolkitToBCContainer -containerName xxx -credential (Get-Credential)
it fails publishing the ERM extension. If I add "-includeTestLibraries" to the container creation, it fails at the same extension.
I actually found one more thing, since I tried publishing the extension manually - it also fails and it fails due to not being able to compile the extension. It almost seems like this one was not updated for 16 yet - or I actually grabbed the wrong one...

@pzentner - the test issue is a different issue.
The original issue in this thread is the incompatibility with process isolation on Windows 10 1809.
I tested your script and it works in build 10634, so I assume that this is an instability in the insider builds which will occur.
I might remove the comments on this thread about the test issue - in order to keep this issue to the point when I get back to it.

This is happening in the new 15.2 sandbox images (Version: 15.2.39040.39399-us).
The most interesting error out of the system log that I could find:
The Dynamics 365 Business Central Server [BC] service failed to start due to Manager the following error:  %%1053

@freddydk, I use this script, my question can make you smile, but I am a novice and I would have liked to have the confirmation to know where to place the additional script… thank you.
`install-module navcontainerhelper -force
set accept_eula to $true to accept the eula found here: https://go.microsoft.com/fwlink/?linkid=861843
$accept_eula = $true
$containername = 'DemoBC15Sandbox'
*** IMAGES ***
For Onprem images: mcr.microsoft.com/businesscentral/onprem:w1 for latest w1 (List here: https://mcr.microsoft.com/v2/businesscentral/onprem/tags/list)
For "Cloud perspective" current version images: mcr.microsoft.com/businesscentral/sandbox:base for latest w1 with data (List here: https://mcr.microsoft.com/v2/businesscentral/sandbox/tags/list)
For next MINOR version: bcinsider.azurecr.io/bcsandbox:base (Have to be insider member)
For next MAJOR version: bcinsider.azurecr.io/bcsandbox-master:base (Have to be insider member)
#$navdockerimage = 'bcinsider.azurecr.io/bcsandbox-master:base'
$navdockerimage = 'mcr.microsoft.com/businesscentral/sandbox:fr'
$appbacpacuri = ''
$tenantbacpacuri = ''
$additionalParameters = @('--cpu-count 4') #Works with 4CPU to fix debugging issue
if ($appbacpacuri -ne '' -and $tenantbacpacuri -ne '') {
$additionalParameters = @("--env appbacpac=""$appbacpacuri""","--env tenantBacpac=""$tenantbacpacuri""")
}
#-----------should i copy / paste here your script------------------------------
if ($navdockerimage -like "bcinsider"){
#Get Credentials for bcinsider and login to docker
# -u "2151f4c8-8fc2-4c87-a360-4f6c73ed8636" -p "6=8EOnWN7yqV7?H/u?301O6nP05grB:N"
$insiderSecure = Get-Credential -Message "Please provide your BC Insider credentials:"
$bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($insiderSecure.Password)
$pwd = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)

Write-Output $pwd | docker login "bcinsider.azurecr.io" -u $insiderSecure.UserName --password-stdin

}
$credential = get-credential -UserName $env:USERNAME -Message "Using Windows Authentication. Please enter your Windows credentials."
New-NavContainer -accept_eula:$accept_eula                  -containername $containername
-auth NavUserPassword                  -Credential $credential
-alwaysPull                  -doNotExportObjectsToText
-usessl:$false                  -updateHosts
-assignPremiumPlan                  -shortcuts Desktop
-imageName $navdockerimage                  -additionalParameters $additionalParameters
-licenseFile "xxxxxxxxxxxxxxx:-)" `
Setup-NavContainerTestUsers -containerName $containername -password $credential.Password`

Try this:

$accept_eula = $true

$containername = "DemoBC15Sandbox"
$navdockerimage = "mcr.microsoft.com/businesscentral/sandbox:fr"

$appbacpacuri = ""
$tenantbacpacuri = ""

$additionalParameters = @("--cpu-count 4") #Works with 4CPU to fix debugging issue
if ($appbacpacuri -ne '' -and $tenantbacpacuri -ne '') {
    $additionalParameters = @("--env appbacpac=""$appbacpacuri""", "--env tenantBacpac=""$tenantbacpacuri""")
}

if ($navdockerimage -like "bcinsider") {
    $insiderSecure = Get-Credential -Message "Please provide your BC Insider credentials:"

    $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($insiderSecure.Password)
    $pwd = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)

    Write-Output $pwd | docker login "bcinsider.azurecr.io" -u $insiderSecure.UserName --password-stdin
}

$credential = get-credential -UserName $env:USERNAME -Message "Using Windows Authentication. Please enter your Windows credentials."
New-NavContainer -accept_eula:$accept_eula `
    -containername $containername `
    -auth NavUserPassword `
    -Credential $credential `
    -alwaysPull `
    -doNotExportObjectsToText `
    -usessl:$false `
    -updateHosts `
    -assignPremiumPlan `
    -shortcuts Desktop `
    -imageName $navdockerimage `
    -additionalParameters $additionalParameters `
    -licenseFile 'xxxxxxxxxxxxxxx' `
    -myscripts @( @{ "SetupVariables.ps1" = 'if (Get-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" | Select-Object -ExpandProperty "ServicesPipeTimeout" -ErrorAction SilentlyContinue) {
        Write-host "ServicesPipeTimeout already set"
        $restartingInstance = $false
        $newPublicDnsName = $true
        . "c:\run\SetupVariables.ps1"
        }
        else {
        Write-host "Set ServicesPipeTimeout and restart"
        Set-ItemProperty -Path "HKLM:\system\CurrentControlSet\control" -name "ServicesPipeTimeout" -Value 2000000 -Type DWORD -Force
        Restart-computer
        Start-Sleep -seconds 10000
        }'
    })

Setup-NavContainerTestUsers -containerName $containername -password $credential.Password

thank fully @waldo1001 for quick answer and @freddydk for the solution:
result PS> Container DemoBC15Sandbox successfully created

I am getting the exact same error in following scenario:

Windows 10 1909
Process isolation
container created from sandbox:nz with no errors
container became unresponsive after a while and attempted restart
when restarting container, process fails with:
Service 'Dynamics 365 Business Central Server [BC] (MicrosoftDynamicsNavServer$BC)' cannot be started due to the following error:
Cannot start service MicrosoftDynamicsNavServer$BC on computer '.'.
at , C:\Run\navstart.ps1: line 142
at , C:\Run\start.ps1: line 121
at , : line 1

This happened twice today & ended up recreating container just to be able to work

Try this:
...
Setup-NavContainerTestUsers -containerName $containername -password $credential.Password

I guess I celebrated to early.
Do you have any idea why would container be unhealthy day after it is created with this script?
I can create it and use it no problem, but when I try to use it next day, It's unhealthy and it doesn't work.
I wouldn't use this script but "normal" script still gives me error described in this thread. I use Docker EE

This issue was very specifically about a situation where it failed starting the service tier upon creation of the container. I have only seen this in very very special occasions, and I don't think it is common.
There might be a lot of reasons why the service tier doesn't start, typically you can get the eventlog from the container using Get-NavContainerEventlog and see why.
Please open new issues instead of continuing this issue and remember to include the eventlog if you have issues that resembles, but doesn't match the original issue.
And please only use the SetupVariables hack if you have the original issue.

Closing this one as artifacts should make sure that this doesn't happen.


Bump PRAW to version 6.2.0

There have been two requests in the gitter channel for a new release (from @waab76 and @0xlivebeef). We haven't released in a while, so there are quite a few unreleased features available.
If/when this PR is merged, I will release a new version.

Thank you @jarhill0, @bboe, @waab76 :)


📚 Create Tech Docs Template repository to aid AP guidance

Create a Tech Docs template site for @hrahim-moj to work on the Analytical Platform guidance migration.
Definition of done

[x] Repo from template created from here
[x] Haymon has access to the repository via group #642 as per moj standards

Reference
How to write good user stories

GitHub Actions for pages enabled and config pushed to main
Site is live here
Repo is here


Fix decoder url detection for tiler in harp.js bundle.

Signed-off-by: Zbigniew Zagorski<EMAIL_ADDRESS>

There is bug, don't merge!


Update Accepts/CoercesTo to take a flag to control legacy behavior and breaks accepts relationships with the flag enabled

Many primitive types have "Accepts" relationships as a byproduct of the JavaScript legacy coming from Power Apps: a string "accepts" a Guid because they are both implemented internally as strings; a number "accepts" a date/time value because internally both are numbers. But this doesn't work in other hosts where we don't have this "duck typing" semantics. This change removes the Accepts relationships between primitive types, moving them to coercions, making such conversions explicit.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.


Client crashes

When I start my client, it simply just crashes with this log:
https://pastebin.com/raw/5MUUhj9b

I don't seem to be able to recreate this - are you able to recreate it using a client profile without so many other mods?

The problems seems to be related to a Flan's Mod Content Packs, which is making trouble with NuclearCraft.


More SegFaults

I appear to randomly be getting segfaults when pushing items onto FifoReadyQueues whether it is a device queue or the event queue.

I have been having similar issues.

I'm just trying to run the code he provided and it seems to be having issues with this.


fix https://github.com/mattn/anko/issues/262 : range

Codecov Report

Merging #263 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #263   +/-   ##
=======================================
  Coverage   82.11%   82.11%
=======================================
  Files           8        8
  Lines        1895     1895
=======================================
  Hits         1556     1556
  Misses        254      254
  Partials       85       85

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cdc3b73...5146448. Read the comment docs.

Could you add some more tests with 0 in them?
For example range(x,0,x)
For example range(x,x,0)

For reference, Interesting way JavaScript does it:
https://github.com/lodash/lodash/blob/master/.internal/baseRange.js

LGTM

Thank you


Add Thinkful open sessions badge

Hey @spoike, @LongLiveCHIEF and Reflux community — as discussed on Reactiflux, we've been holding regular open group sessions where engineers in the React community can screenshare code and discuss questions. Right now the sessions are for React generally, but as we grow I'm hoping we can start doing hangouts just for Reflux and other community projects.
A badge on the README will help us get the word out and make the hangouts better, since the sessions only work well when a diverse group of developers show up.
Let me know what you think!

I realized the badge would be better placed under the support / questions section of the README — sorry about missing that before

Sorry about lagging with the thinkful badge, @cmrnh. I got side-tracked.


TC-CNET-1.3 yaml

Problem
Test wasn't automated
Change overview
automates test
Testing
chip-tool and all-clusters-app. Also covered by CI.

@cecille note: Needs restyle

We decided previously not to merge this PR as it was too close to the test deadline. Looks like it's a bit out of date now, but I'll get it updated.

already done.


Update wasm_exec.js

add a scope variable choose
eg:
let _scope = {};
let globalScope = new Proxy(global, {
    get(target, key, receiver) {
        console.log(key)
        if(_scope[key]) {
            return _scope[key]
        }
        return Reflect.get(target, key, receiver)
    },
    set(target, key, value, receiver) {
        console.log(key, value)
        _scope[key] = value;
    }
});
globalScope.mounted = async (func) => {
    func("hello")
}

WebAssembly.instantiate(new Uint8Array(buf).buffer, go.importObject).then(async (result) => {
    await go.run(result.instance, globalScope)
}).catch((err) => {
    console.error(err);
});

This PR will be imported into Gerrit with the title and first
comment (this text) used to generate the subject and body of
the Gerrit change.
Please ensure you adhere to every item in this list.
More info can be found at https://github.com/golang/go/wiki/CommitMessage

The PR title is formatted as follows: net/http: frob the quux before blarfing

The package name goes before the colon
The part after the colon uses the verb tense + phrase that completes the blank in,
"This change modifies Go to ___________"
Lowercase verb after the colon
No trailing period
Keep the title as short as possible. ideally under 76 characters or shorter

No Markdown
The first PR comment (this one) is wrapped at 76 characters, unless it's
really needed (ASCII art, table, or long link)
If there is a corresponding issue, add either Fixes #1234 or Updates #1234
(the latter if this is not a complete fix) to this comment
If referring to a repo other than golang/go you can use the
owner/repo#issue_number syntax: Fixes golang/tools#1234
We do not use Signed-off-by lines in Go. Please don't add them.
Our Gerrit server & GitHub bots enforce CLA compliance instead.
Delete these instructions once you have read and applied them

add CLA


Enable VS/Github code spaces in our repositories

The goal of this epic is to create per-language dev containers and transition our engineering system to using them in the following places:

[ ] Linux pipeline legs are transitioned to using language specific dev container.
[x] GitHub code spaces set up for each language repo to use appropriate dev container.

As of Aug. 2020 we're still on the wait list for enabling code spaces on our repos.

[x] Make sure these dev containers also work within VSCode

@mitchdenny started some of this work in .NET with https://github.com/Azure/azure-sdk-for-net/pull/13827
@jongio started some of this work in the azure-sdk repo with https://github.com/Azure/azure-sdk/pull/1600

GH codespaces is enabled for users not orgs. @mitchdenny has access.

I agree we should be caching these images. I created an Azure Container Registry in our EngSys subscription for just that purpose. We have already started the process of building containers for our .NET test container use at https://github.com/Azure/azure-sdk-for-net/blob/master/eng/containers/ci.yml. I expect we can build on this for the other languages as well and start to build a registry of images we can use for various things.

For the CodeSpaces images we'll probably need to configure the registry to allow anonymous access (if you haven't already):
https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure?tabs=portal
Probably something we'll need to keep an eye on bandwidth wise as well.

I think the link you posted is for storage accounts but point is still true we will need to enable anonymous access to our container registry and we will also have to look at the bandwidth.

Doesn't look like ACR has an anonymous access option. However the .NET team (among others) does seem to host images at mcr.microsoft.com. I'm thinking this might be where we need to host our images.

We now have Codespaces enabled (config files in each repo) ... Java and Python are in PR but will go in soon. The next thing we need to do is figure out how to roll this out and make sure we have the right bits and pieces for our team per repo. We need to create a script in each repo which is invoked to do any custom tools setup.

@mitchdenny great to see this moving. Definitely interested in seeing our pipelines also start picking up these containers and using them.

Closing this. It looks like we've got container pipeline builds happening in other areas. This was primarily focused on the Codespaces side of things, which is best using the universal container that they provide.


Schemas to break the tool

Hey @Skn0tt, nice tool - happy to see something like this from our community at Prisma!
If you see some FUNCTION_INVOCATION_FAILED in your server/function logs, that would be me trying out some of our Prisma internal testing schemas. I thought I might share them with you.
Here is one of our monsters:
bench.schema.prisma.txt
This is a pretty simple. industry standard one:
  AlbumId  Int     @id @default(autoincrement())
  Title    String  @db.VarChar(160)
  ArtistId Int
  Artist   Artist  @relation(fields: [ArtistId], references: [ArtistId])
  Track    Track[]

  @@index([ArtistId], name: "IFK_AlbumArtistId")
}

model Artist {
  ArtistId Int     @id @default(autoincrement())
  Name     String? @db.VarChar(120)
  Album    Album[]
}

model Customer {
  CustomerId   Int       @id @default(autoincrement())
  FirstName    String    @db.VarChar(40)
  LastName     String    @db.VarChar(20)
  Company      String?   @db.VarChar(80)
  Address      String?   @db.VarChar(70)
  City         String?   @db.VarChar(40)
  State        String?   @db.VarChar(40)
  Country      String?   @db.VarChar(40)
  PostalCode   String?   @db.VarChar(10)
  Phone        String?   @db.VarChar(24)
  Fax          String?   @db.VarChar(24)
  Email        String    @db.VarChar(60)
  SupportRepId Int?
  Employee     Employee? @relation(fields: [SupportRepId], references: [EmployeeId])
  Invoice      Invoice[]

  @@index([SupportRepId], name: "IFK_CustomerSupportRepId")
}

model Employee {
  EmployeeId     Int        @id @default(autoincrement())
  LastName       String     @db.VarChar(20)
  FirstName      String     @db.VarChar(20)
  Title          String?    @db.VarChar(30)
  ReportsTo      Int?
  BirthDate      DateTime?  @db.DateTime(0)
  HireDate       DateTime?  @db.DateTime(0)
  Address        String?    @db.VarChar(70)
  City           String?    @db.VarChar(40)
  State          String?    @db.VarChar(40)
  Country        String?    @db.VarChar(40)
  PostalCode     String?    @db.VarChar(10)
  Phone          String?    @db.VarChar(24)
  Fax            String?    @db.VarChar(24)
  Email          String?    @db.VarChar(60)
  Employee       Employee?  @relation("EmployeeToEmployee_ReportsTo", fields: [ReportsTo], references: [EmployeeId])
  Customer       Customer[]
  other_Employee Employee[] @relation("EmployeeToEmployee_ReportsTo")

  @@index([ReportsTo], name: "IFK_EmployeeReportsTo")
}

model Genre {
  GenreId Int     @id @default(autoincrement())
  Name    String? @db.VarChar(120)
  Track   Track[]
}

model Invoice {
  InvoiceId         Int           @id @default(autoincrement())
  CustomerId        Int
  InvoiceDate       DateTime      @db.DateTime(0)
  BillingAddress    String?       @db.VarChar(70)
  BillingCity       String?       @db.VarChar(40)
  BillingState      String?       @db.VarChar(40)
  BillingCountry    String?       @db.VarChar(40)
  BillingPostalCode String?       @db.VarChar(10)
  Total             Decimal       @db.Decimal(10, 2)
  Customer          Customer      @relation(fields: [CustomerId], references: [CustomerId])
  InvoiceLine       InvoiceLine[]

  @@index([CustomerId], name: "IFK_InvoiceCustomerId")
}

model InvoiceLine {
  InvoiceLineId Int     @id @default(autoincrement())
  InvoiceId     Int
  TrackId       Int
  UnitPrice     Decimal @db.Decimal(10, 2)
  Quantity      Int
  Invoice       Invoice @relation(fields: [InvoiceId], references: [InvoiceId])
  Track         Track   @relation(fields: [TrackId], references: [TrackId])

  @@index([InvoiceId], name: "IFK_InvoiceLineInvoiceId")
  @@index([TrackId], name: "IFK_InvoiceLineTrackId")
}

model MediaType {
  MediaTypeId Int     @id @default(autoincrement())
  Name        String? @db.VarChar(120)
  Track       Track[]
}

model Playlist {
  PlaylistId    Int             @id @default(autoincrement())
  Name          String?         @db.VarChar(120)
  PlaylistTrack PlaylistTrack[]
}

model PlaylistTrack {
  PlaylistId Int
  TrackId    Int
  Playlist   Playlist @relation(fields: [PlaylistId], references: [PlaylistId])
  Track      Track    @relation(fields: [TrackId], references: [TrackId])

  @@id([PlaylistId, TrackId])
  @@index([TrackId], name: "IFK_PlaylistTrackTrackId")
}

model Track {
  TrackId       Int             @id @default(autoincrement())
  Name          String          @db.VarChar(200)
  AlbumId       Int?
  MediaTypeId   Int
  GenreId       Int?
  Composer      String?         @db.VarChar(220)
  Milliseconds  Int
  Bytes         Int?
  UnitPrice     Decimal         @db.Decimal(10, 2)
  Album         Album?          @relation(fields: [AlbumId], references: [AlbumId])
  Genre         Genre?          @relation(fields: [GenreId], references: [GenreId])
  MediaType     MediaType       @relation(fields: [MediaTypeId], references: [MediaTypeId])
  InvoiceLine   InvoiceLine[]
  PlaylistTrack PlaylistTrack[]

  @@index([AlbumId], name: "IFK_TrackAlbumId")
  @@index([GenreId], name: "IFK_TrackGenreId")
  @@index([MediaTypeId], name: "IFK_TrackMediaTypeId")
}

Let me know if you need more, both huge or small, to test specific things - happy to help out here.

Hi @janpio! Congrats on the production-ready milestone :)
I put up #5, let's continue there :)

Great job. The small one now definitely works, the big one gets a "E2BIG" error - probably because of the way the binary is called in that environment. I'll check with my colleagues if there is a better way.
Interested in setting up some CI for tests that test parseDatamodel and renderDml? I can easily extract a few dozen Prisma schema files and put them up here in a PR as individual files. The test would just need to iterate through them and call the functions on the file content.

Interested in setting up some CI for tests that test parseDatamodel and renderDml?

Sure, I'll happily accept such a PR :)


Enchancement request

[Enter feedback here]
Could you please provider direction on having this script without hybrid worker node for Windows and Linux ( For Cases where the systems that need Forensic remain in Azure itself.)
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e7b130b0-a3fd-3fd7-900f-7bc900e23ef2
Version Independent ID: 63bbdf46-1c0c-7d33-54d1-68cf2329c6cd
Content: Computer forensics Chain of Custody in Azure - Azure Example Scenarios
Content Source: docs/example-scenario/forensics/index.yml
Service: architecture-center
Sub-service: example-scenario
GitHub Login: @simonesavi
Microsoft Alias: pnp

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 434827

@mmkmur you can execute the code within a Virtual machine with this configuration:

VM must be hosted in the same subnet that grants access to the Storage account
The VM must have a managed identity to which must be given grants to access the target VM's subscription

Inside this VM you can run the code without the 'if' at line 57

We have this captured as an article to improve. Thank you for your feedback!


Keyword matching behavior

Hi team Meili and thanks for the wonderful product!
I just started using Meili and currently use it at default settings.
I noticed that when I search for gpt3 it will return results including GPT-3 which is what I want
But I also noticed that when I search for 'greece' I get 'greener' and when I search for 'conan' I get 'connection' and 'conal' which is what I dont want.
What do you recommend doing?

Hello @vprelovac, thanks for your feedback

But I also noticed that when I search for 'greece' I get 'greener' and when I search for 'conan' I get 'connection' and 'conal' which is what I dont want.

Aren't the documents with greece inside considered more relevant than the documents with greener? (more relevant = at the top of the hits). The documents without typo should be at the top.
But maybe you just want to remove completely the greener document from the hits. In this case, it means you don't want the typo tolerance to be taken into account. At the moment, you cannot disable this feature from MeiliSearch, but we consider adding this possibility in the future.

documents with 'greener' should not be retrieved for 'greece' as these are false positives. in search context it is better to retrieve nothing than be wrong.

documents with 'greener' should not be retrieved for 'greece' as these are false positives and completely irrelevant.

It seems irrelevant for you, but there are not irrelevant in terms of searching 🙂 greener matches greece with 2 typos. The typo tolerance of MeiliSearch is applied.

but gpt3 and gpt-3 are the same thing.

Nope, word split is applied, not the typo tolerance, so that's not the same situation 🙂 MeiliSearch tries to split gpt3 into multiple ways (g and pt3, gp and t3...etc) and noticed that gpt and 3 is the best separation concerning your documents. Also GPT-3 contained an soft separator (-) which allows MeiliSearch to match GPT-3 and the separation gpt 3.

I am surprised by the comment that 'greener' would be somehow relevant to 'greece'? if you want to do best effort retrieval than you should also return scores so that the client can decide if the result is above threshold.

And both greece and greener are vocabulary words so no typo correction should apply.

What do you mean? The typo tolerance is here to retrieve your document if you type greeec instead of greece (for example), it's not related to the category of the word. greener is just greece with 2 typos, that's why MeiliSearch retrieves it 🙂

but if you want to always do best effort retrieval, then you should also return scores so that the client can decide if the result is above certain threshold.

Returning the score is indeed something we have in consideration! Thanks for this feedback!

I mean that typo tollerance should not apply to vocabularly words. In your example 'greeec' is not a vocabularly word and its ok to apply typo correction to it.

We are not sure to exactly understand what you mean by vocabularly words. Are they the words in the dictionary?
Applying typo depending on whether the word is in the dictionary or not would involve MeiliSearch has a database containing all the words of all the languages. Or a database provided by the user. It's clearly an ambitious feature that would imply complexity with multilanguage handling, the conjugation of verbs (not in the dictionary), and several corner cases we don't have in mind yet because the current MeiliSearch simply does not work like this at the moment. But of course, it's not impossible.
However, it's not what we want for MeiliSearch currently. We might consider it one day, but not in a near future 🙂

Just because a mistyped word is also in the dictionary doesn't mean it's not mistyped.
E.g. if you type take card when you meant to type take care, even though card is in the dictionary, you still want to see documents in search results containing take care.
The engine can't know the intention. So I think it should not take into account whether a word is in a dictionary or not.
Conversely, dictionaries are often missing words that are not typos but technical terms, I notice this every day with SwiftKey on my phone which doesn't know certain words (or names) that I then have to manually type (instead of swipe).
So if Meili took into account whether a word is in a dictionary or not, it would judge words outside the dictionary more likely as typos, which is also bad.
So please don't do this :)


Bug: Doesn't work on file paths containing a space

I've seen this before with other bash scripts. Try wrapping the file path in quotes.

Thank you for pointing it! I have committed a fix.


Set up CI with Azure Pipelines

Pull Request Test Coverage Report for Build 22

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.625%

Totals

Change from base Build 19:
0.0%

Covered Lines:
184

Relevant Lines:
185

💛  - Coveralls


Add listen method support shutdown channel for graceful end listening

Hi! I am develop moira alerting system, and we are use your telegram bot client. I have issue moira-alert/moira#12. First we need to graceful end listening telegram updates to fix this issue.

@zoni can you review my fixes?


[TESTNET TEST] feat: add additional thread for processing GetPbftBlockPacket

Purpose

For reviewers

Related Github issues

Changes

Tests

Deployment Considerations
Version Notes
{ major | minor | patch }

NOTE: Include the version notes in the squash commit message

Just a minor note, none of these these commits are feat. Think about it from end user perspective. He does not care if we serve sync blocks from threadpool or not. Feat is new feature - for example implementation of fees, possibility to download sync snapshot  would be a new feature. These changes are either chore, refactor or fix...


No option to specify workspace to draw nwg-wrapper on

Nwg-wrapper seems to appear on the currently active workspace. How do I draw it on another one? Can I draw it on all workspaces?
Ivan

It opens on gtk-layer-shell, which means: it ignores workspaces. In the same way as panels/bars do. You can only select an output with the -o | --output argument.

Ah, makes sense. Sorry, I somehow missed the -o in the help text.
Would it be a good idea to maybe allow multiple outputs to be
specified so we could use the second one if the first one goes
offline? (Or is it a job for Kanshi?)
I use a docking station with two monitors a lot, so it would be really
good if nwg-wrapper could jump between outputs as I dock/undock my
laptop.
Ivan
On Mon, Sep 19, 2022 at 02:33:42PM -0700, Piotr Miller wrote:

It opens on gtk-layer-shell, which means: it ignores workspaces. In the same way as panels/bars do. You can only select an output with the -o | --output argument.
--
Reply to this email directly or view it on GitHub:
https://github.com/nwg-piotr/nwg-wrapper/issues/26#issuecomment-1251585574
You are receiving this because you authored the thread.
Message ID: @.***>

Well, I can either specify an output or not. To put the wrapper on two outputs, we'd need two wrapper instances (windows).

No, what I mean is: keep it on output-1, but if it gets disconnected move to output-2. So maybe we cold specify multiple outputs in -o output-1,output-2,output-3?


How is the well-known file to be reached?

I have this setup: a container listening to 8000 that nginx-proxy should map on 80 and 443. Then I have another container for a websocket backend listening on another port that should be mapped with the same domain, but with /websocket path. They both use the same domain.
Apart from the problem of forwarding that path to a separate container using nginx-proxy which I don't know how to solve, Let's Encrypt doesn't work.
I get error messages that the ACME-challenge is not found on the domain. But, how is that file supposed to be in place? Does this companion automatically forward the well known uri to the file?

Yes it automatically forward the well known uri to challenge files by modifying the vhost.d/default file or the vhost.d/yourdomain file if it exists

Thanks. I think that part works, just not the part forwarding, but that's not an issue here.


plugin manager 2.0 additional enhancements

Now that we have the 2.0 plugin manager shipped on dev, wanted to track some additional ideas for improving it. This issue may be closed before some or all of these are implemented, this is just being used as a brainstorming list:

[x] Show category for each plugin
[x] Hide "Installation" tab if content is empty
[x] Document or add UI elements for the custom tags you can use to search
[ ] ~Include author's github profile photo~
[x] highlight clickable links (user profile, github project page) with 🔗 or otherwise indicate they're clickable
[x] license name doesn't show up as a hyperlink when it is clickable (doesn't really matter since it's not an external link)
[ ] ~highlight plugins that are available for update or provide facility for periodic automatic-update of plugins~ (including showing release notes if they exist) (Removing this in favor of #2199 / #3177)
[x] Search in the plugins list should prioritize plugin names when possible

Documentation added to: https://docs.binary.ninja/guide/plugins.html#plugin-manager-searching

Include buildscripts for different package managers on different platforms automatically if a needed dependency is missing.

Most of these were done some time ago, but I finished up the prioritized search and added the category in builds >= 3610


Queue signalling until ICE reconnected

I'm not entirely sure if

just after sendAnswer is the right place to set isReconnecting to false
we'd need more (or rather less) events to pass in passThroughQueueSignals.

tried to keep it flexible by just putting the requests that need to pass in an array.

just after sendAnswer is the right place to set isReconnecting to false

we would not be quite ready to send the events then. after this line is when we are certain the peer connection is re-established.

we'd need more (or rather less) events to pass in passThroughQueueSignals.

you are right.. thinking about this, we are not able to queue up the following

ICE candidate exchange
offer/answer exchange
sync state
leave

they are required in order to establish the peer connection, or to signal to the server that the client is exiting.


AsciiDoc files in collection not processed unless they are written

As a Jekyll user converting my documentation to AsciiDoc, I expect document variables that are processed in collections to be available through the page variables. In cases where the collection documents are not written out though, jekyll-asciidoc will not process the variables.
This line of source seem to point at the issue https://github.com/asciidoctor/jekyll-asciidoc/blob/master/lib/jekyll-asciidoc/integrator.rb#L36
Steps to reproduce:

clone this project https://github.com/elmiko/jekyll-asciidoc-collection-test
run jekyll serve (or equivalent) in the root of project
visit the page generated by jekyll

Expected output:
The generated page should contain the doctitles of the AsciiDoc files in the collection, and the content for each entry should display a page variable encoded in each.
Observed output:
Instead of doctitles, i see the default filename title created by Jekyll and the page variables are absent.
I will note that with help from @mojavelinux I was able to get the variables output by adding the output: true key to my collection in the _config.yml file for my project.
Suggested solution:
It would be great if these files just worked like the Markdown files that Jekyll normally processes. As a user I would expect the variables to be processed in my collection documents regardless of whether they are marked for output.

Thanks for this excellent report...and for providing a sample project! You did a superb job of pinpointing the faulty logic.
When support for collections was added, a decision was made to skip page variable integration if the collection is not written (as the identified line reveals). What we're challenging here is whether that was the right decision.
I think I had assumed that if a collection was not written, then it was disabled. However, this is a perfect use case of when a collection is used for embedding information into another document.
I think there are two possible paths to select from:

Require an additional process: true configuration flag on the collection to force integration to happen even when the collection is not written.
Process all collections regardless of whether they are written.

These are mutually exclusive options.
I think the second option is pretty safe. We just need to make sure we don't do any processing which would produce unexpected output. In other words, we need to make sure we are only integrating and not trying to write out any files that would cause other problems. A spec should allow us to answer this question easily.

Is there a chance that fix will be releases in a minor release before v3.0.0 (as it's only a one-liner, essentially)? I've just stumbled across this issue and it's a major setback for a customer project. The customer doesn't want to mix markup languages and chose Asciidoc as their primary language.


Simplify the "Try it" section

Idea:
From @sbose78 , can we simplify https://github.com/shipwright-io/build#try-it into a one-liner kubectl cmd?

The current v0.3.0 release doesn't include the release.yaml
It should be included in the later release, such as: https://github.com/shipwright-io/build/releases/tag/untagged-52d78119a4e5d84137cb
Release v0.3.1-rc0
This is a test release to generate the release.yaml via ko. This is not intended to be a bugfix release.

After that, we can refine the Try it section

Nice!

As we discussed, we planed to use the nightly release yaml directly.
But I took a look at the nightly yaml today from here:
https://github.com/shipwright-io/build/releases/tag/nightly
I found there is a date and random value in the yaml name, like: nightly-2021-03-03-1614768199.yaml
So it is hard to get the latest nightly yaml file name directly for this issue.
So I suggest we have a nightly-latest.yaml file so the the Try It can use it without any change every day.

Closing this one in favor of https://github.com/shipwright-io/build/issues/655 . 655 will cover the requirement in here.


How to Disable/Switch Off Tooltips on hover?

In the v2 docs there are instructions to change the tooltip .styles but there is no instruction to turn the tooltip feature off (on hover).
Any help is greatly appreciated

I think options.tooltips.enabled should be set to false

Closed as resolved

The whole options.tooltips is being ignored for me. None of the settings passed to tooltips are applied

@IgnusG Try toolTip instead of tooltips. A lot of ChartJS still needs parameter unison across different types of graphs.

@sifex just tested this and it works as expected, ie. no tooltip was shown.
var options = {
  tooltips: {
    enabled: false
  }
};
new Chart(ctx, {
  type: 'line',
  data: data,
  options: options
});

@etimberg Yea, got it to work, currently using the angular version and it seems to operate differently when dealing with multiple sets of data.

I've spend hours on this, none of the instructions worked, including all on this page until I eventually noticed that the Namespace is options.plugins.tooltip
options: {   plugins: {  tooltip: {    enabled: false } } }
gets rid of it.

I've spend hours on this, none of the instructions worked, including all on this page until I eventually noticed that the Namespace is options.plugins.tooltip
options: { plugins: { tooltip: { enabled: false } } }
gets rid of it.

additional info on this , thats mainly because of the namespace changes in v3, happy hacking!

I want to completely disable hover effects
I have followed this chart.js tutorial and setting pointHoverRadius = 0 is not working for me in Chart JS 4.4.0
https://www.youtube.com/watch?v=iezjDg-OGP8


BPMSPL-133: Tasklist should be refreshed automatically. Save refresh …

…configuration in user preferences

merged in master


create commands file and have them loaded in index.js

have commands be stored in a separate folder and loaded in when index.js is ran to allow the bot to be expandable and prevent too many if statements wich would slow down performance

So far this has been done but does not feature a queueing system