DIPY reconstruction gives errors for the dipy_3dshore reconstruction workflow

Hi,
I am running the dipy_3dshore reconstruction workflow for my DSI diffusion data. I had used the 3dshore head motion correction for the preprocessing. I am giving that folder as input.
The reconstruction workflow seems to re-compute the preprocessing correctly but throws an error when starting the reconstruction workflow.
Here is my command:
screen docker run -ti
-v /Users/neurouser1/Documents/TNI/TNI_bids_directory/bids_directory/:/data
-v /Users/neurouser1/Documents/TNI/qsiprep_dipy_3dshore/:/out
-v /Users/neurouser1/Documents/fs_files/:/license
-v /Users/neurouser1/Documents/TNI/scratch/:/scratch
pennbbl/qsiprep:latest
/data /out participant
--participant_label sub-TNI009
--output-resolution 1.3
--n_cpus ‘15’
--omp-nthreads 8
--mem_mb 250000
--fs-license-file /license/license.txt
-w /scratch/
--recon_input /Users/neurouser1/Documents/TNI/qsiprep_out
--recon_spec dipy_3dshore \
Here is the output error:
Running qsirecon version 0.13.0RC1:
* BIDS dataset path: /data.
* Participant list: ['TNI009'].
* Run identifier: 20210327-114311_22566457-c75a-4b02-ab86-4eb325ba9567.
210327-11:43:20,691 nipype.workflow INFO:
found ['/out/qsiprep/sub-TNI009/ses-20170316113937/dwi/sub-TNI009_ses-20170316113937_space-T1w_desc-preproc_dwi.nii.gz'] in /out/qsiprep
Process Process-19:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/usr/local/miniconda/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/cli/run.py", line 1114, in build_recon_workflow
sloppy=opts.sloppy
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/base.py", line 95, in init_qsirecon_wf
sloppy=sloppy
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/base.py", line 221, in init_single_subject_wf
omp_nthreads=omp_nthreads)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/build_workflow.py", line 132, in init_dwi_recon_workflow
node_spec)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/build_workflow.py", line 235, in workflow_from_spec
return init_dsi_studio_connectivity_wf(omp_nthreads, has_transform, **kwargs)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/dsi_studio.py", line 267, in init_dsi_studio_connectivity_wf
calc_connectivity = pe.Node(DSIStudioAtlasGraph(nthreads=omp_nthreads, **params),
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 648, in init
from_file=from_file, resource_monitor=resource_monitor, **inputs
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 191, in init
self.inputs.trait_set(**inputs)
File "/usr/local/miniconda/lib/python3.7/site-packages/traits/has_traits.py", line 1543, in trait_set
setattr( self, name, value )
traits.trait_errors.TraitError: Cannot set the undefined 'output_trk' attribute of a 'DSIStudioAtlasGraphInputSpec' object.
Could you please help with the issue? Thank you in advance.

Hi @akelkar26, thanks for reporting. Could you try writing a json file containing:
{ "description": "Reconstruct dwis using Dipy, then convert to mrtrix and dsi studio formats",
  "space": "T1w",
  "name": "convert_shore_recons",
  "atlases": ["schaefer100x7", "schaefer100x17", "schaefer200x7", "schaefer200x17", "schaefer400x7", "schaefer400x17", "brainnetome246", "aicha384", "gordon333", "aal116", "power264"],
  "nodes": [
    {
      "name": "csdsi_3dshore",
      "software": "Dipy",
      "action": "3dSHORE_reconstruction",
      "input": "qsiprep",
      "output_suffix": "3dSHORE",
      "parameters": {
        "radial_order": 6,
        "zeta": 700,
        "tau": 0.025330295910584444,
        "regularization": "L2",
        "lambdaN": 1e-8,
        "lambdaL": 1e-8,
        "write_mif": true,
        "write_fibgz": true
      }
    },
    {
      "name": "streamline_connectivity",
      "software": "DSI Studio",
      "action": "connectivity",
      "input": "csdsi_3dshore",
      "parameters": {
        "turning_angle": 35,
        "method": 0,
        "smoothing": 0.0,
        "step_size": 1.0,
        "min_length": 10,
        "max_length": 250,
        "seed_plan": 0,
        "interpolation": 0,
        "initial_dir": 2,
        "fiber_count": 5000000,
        "connectivity_value": "count,ncount,mean_length,gfa",
        "connectivity_type": "pass,end"
       }
    }
  ]
}

and mounting this in your container and specifying its mounted path as the argument for --recon-spec?

Yes, I will do that. I will try running it with the json file and let you know how it goes. Thank you

Hi,
I created the json file and gave it as the path to recon-spec
Here is my command:
screen docker run -ti
-v /Users/neurouser1/Documents/TNI/TNI_bids_directory/bids_directory/:/data
-v /Users/neurouser1/Documents/TNI/qsiprep_dipy_3dshore/:/out
-v /Users/neurouser1/Documents/fs_files/:/license
-v /Users/neurouser1/Documents/TNI/scratch/:/scratch
pennbbl/qsiprep:latest
/data /out participant
--participant_label sub-TNI009
--output-resolution 1.3
--n_cpus ‘15’
--omp-nthreads 8
--mem_mb 250000
--fs-license-file /license/license.txt
-w /scratch/
--recon_input /Users/neurouser1/Documents/TNI/qsiprep_out
--recon_spec /Users/neurouser1/Documents/TNI/qsistudio_dipyrecon.json \
I get this error now, seems like it doesn't find the file:
Running qsirecon version 0.13.0RC1:
  * BIDS dataset path: /data.
  * Participant list: ['TNI009'].
  * Run identifier: 20210406-124154_20891eab-75be-4870-835e-40ad30624736.

Process Process-19:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/usr/local/miniconda/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/cli/run.py", line 1114, in build_recon_workflow
sloppy=opts.sloppy
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/base.py", line 95, in init_qsirecon_wf
sloppy=sloppy
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/base.py", line 161, in init_single_subject_wf
spec = _load_recon_spec(recon_spec, sloppy=sloppy)
File "/usr/local/miniconda/lib/python3.7/site-packages/qsiprep/workflows/recon/base.py", line 235, in _load_recon_spec
raise Exception("{} is not a file that exists or in {}".format(spec_name, prepackaged))
Exception: /Users/neurouser1/Documents/TNI/qsistudio_dipyrecon.json is not a file that exists or in ['dipy_3dshore', 'mrtrix_singleshell_ss3t', 'dsi_studio_gqi', 'dipy_mapmri', 'mrtrix_multishell_msmt', 'mrtrix_tckglobal', 'csdsi_3dshore', 'mrtrix_multishell_msmt_noACT', 'mrtrix_singleshell_ss3t_noACT']
Am I doing something wrong?
Thanks in advance for your help.

Hi,
Good morning.
Just reaching out to ask if there is any other method I should try to get the dipy reconsturction working.
Thank you

Sorry for the delay -- it looks like a volume mounding issue.  The docker command worked well.
The recon pipeline ran. However, the html file doesn't show the connectivity matrices (svg file doesn't show). Also, there is no .mat file (for DSIStudio or MRTrix) which gives the connectivity measures as matrices. Do I need to add anything else to the pre-defined json file to get the figure and the mat files?
Thank you once again.

My mistake, there is one more entry needed for a step in the reconstruction workflows to write their outputs. Could you try:
{ "description": "Reconstruct dwis using Dipy, then convert to mrtrix and dsi studio formats",
  "space": "T1w",
  "name": "convert_shore_recons",
  "atlases": ["schaefer100x7", "schaefer100x17", "schaefer200x7", "schaefer200x17", "schaefer400x7", "schaefer400x17", "brainnetome246", "aicha384", "gordon333", "aal116", "power264"],
  "nodes": [
    {
      "name": "csdsi_3dshore",
      "software": "Dipy",
      "action": "3dSHORE_reconstruction",
      "input": "qsiprep",
      "output_suffix": "3dSHORE",
      "parameters": {
        "radial_order": 6,
        "zeta": 700,
        "tau": 0.025330295910584444,
        "regularization": "L2",
        "lambdaN": 1e-8,
        "lambdaL": 1e-8,
        "write_mif": true,
        "write_fibgz": true
      }
    },
    {
      "name": "streamline_connectivity",
      "software": "DSI Studio",
      "action": "connectivity",
      "input": "csdsi_3dshore",
      "output_suffix": "3dSHOREConn",
      "parameters": {
        "turning_angle": 35,
        "method": 0,
        "smoothing": 0.0,
        "step_size": 1.0,
        "min_length": 10,
        "max_length": 250,
        "seed_plan": 0,
        "interpolation": 0,
        "initial_dir": 2,
        "fiber_count": 5000000,
        "connectivity_value": "count,ncount,mean_length,gfa",
        "connectivity_type": "pass,end"
       }
    }
  ]
}

Hi,
Thank you so much for the reply. I added the new lines of code and re-ran the docker. There were no errors in the processing (but it ran for only 18 hours for dipy when it generally takes 22 hours for dsistudio).
I got a 3dSHOREConn.mat file but the file seems to have data missing. Also, the connectome svg figure is still blank and doesn't show in the html output.
As seen in the screenshot below, it only has the region labels and indices for each atlas (no connectivity matrices).

Is there anything else I need to add to get it to work?
Thanks so much for helping me troubleshoot this.

Hi @mattcieslak,
I'm having the same issue as @akelkar26. First the output_trk error and then this issue of only region labels and ids in the output .mat file. Do you have any further insight on this?

Would anyone be willing to share their preprocessed data? I'm troubleshooting this now for a 0.13.0 release


Bug: input with arity > 1

I have problems when I enter input with arity> 1. For example, given the following Lars program:
% verify that 2 different vehicles are going in the same direction
sameDirection: - possibleheading (D1), possiblecar (C1), heading (C1, D1), possibleheading (D2), possiblecar (C2), heading (C2, D2), C1! = C2, D1 = D2.
possibleheading (2) .possibleheading (3).
possiblecar (2) .possiblecar (3).

And giving as input the following predicate:

Heading (2.3)

The input is seen as:

Heading, 3)

And the model is still empty.

There was a clash in parsing multiple arguments. I fixed it & pushed already to master
But there is another issue with your program:
Because you are not using any window in the program the input signals are expired at the next timepoint after they are entered.
This is currently by design (as facts are only defined in the moment they when they were entered).
Switching into another mode (when no windows are defined in a program) would be possible, but that would make ticker a plain ASP-Reasoner. You would need to discuss this with @hbeck  :-)
To solve this, you would need to:

add either a window over the input signals
provide them at the same timepoint as in the following screenshot


Change card design

The cards seem very boring, add something cool! Feel free and be creative.

let me try this one. can I ??

Go ahead assigned to @81188118


How can I get the final sql

How can I get the final sql? I want to use it as a cache key

i have the same issue


Implement a mechanism for adding new extensions

The exporter now looks for user defined extensions and call them when necesary. This way, its easy to implement new user defined extensions without the need to fork the exporter.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

KHR_materials_unlit and KHR_lights_punctual have been implemented succesfuly using this mechanism

@donmccurdy @julienduroure  could you please have a look at this?

Activity is quite low during the summer, but I will definitively have a look on it when I can

Let's try to plan it for blender 2.82, it's too late for 2.81
Can you please update the PR against master?

@julienduroure  CI is failing in some tests that have nothing to do with my changes.

@jjcasmar CI is successful on current master, so your changes are probably the root cause of the failing.

Run 0:

AttributeError: 'PointLamp' object has no attribute 'use_custom_distance'

Maybe a merge issue ?
Run 1:

/extensions/KHR_lights_punctual/lights/2/spot/outerConeAngle - outerConeAngle (0.0872664600610733) is less than or equal to innerConeAngle (0.0872664600610733). (KHR_LIGHTS_PUNCTUAL_LIGHT_SPOT_ANGLES))

Maybe a merge issue, but is about extension data
Run 2 :

extensions["KHR_texture_transform"] = Extension("KHR_texture_transform", texture_transform)

TypeError: 'NoneType' object does not support item assignment

Definitively an issue in your code
Run 3:

extensions["KHR_texture_transform"] = Extension("KHR_texture_transform", texture_transform)
TypeError: 'NoneType' object does not support item assignment

Definitively an issue in your code

Moved to #732


Feature/categorical molecular2

This PR adds the CategoricalMolecularInput feature.

@jduerholt
Changes and additions look good to me.
One comment about model building when we have the different input types. As it is now, we would stick to using MixedSingleTaskGP, for example, when we have CategoricalMolecularInput with them treated as categoricals? i.e. Not using an additional hypothetical "molecular_kernel" argument.


How to finish a draw by click in a button?

I don't know if here is the right place for asking this kind of things.
But I'm wondering how could I do in order to finish a draw by instead of clicking in the first node or using dblclick, contextmenu, mouseout events, I'd like to use a button.
What would be the simplest way for doing that?

HI @matheussiba, the next version of leaflet.pm has that.
It's already in the code here and will look like this:

If you want to create your own button, create it and call the _finishShape() function of the respective Draw class. Problem will be finding out that class so you might have to do some looping (e.g. loop across classnames, check if Drawing is enabled, if yes, finish it). Every class has the _finishShape() function do finish it so you can do it 👍


SAK-33442 Added Commons tool description

I think we should avoid referring to Facebook here.
The Commons tool allows short, update posts with previews and unthreaded replies.

Why not mention Facebook? The thing works a bit like Facebook, so it seems a good description, to me. Is there a legal issue?

I believe it's more instructive to describe how the tool functions instead of saying that it functions like XX commercial tool. But if others find that "Facebook" is the most accurate description of the tool, then sure, it's fine with me.

For me part of the issue with mentioning Facebook is that Facebook does lots of things and different people see it differently and focus on particular areas. So if commons tool doesn't do the thing they use Facebook for it's confusing.

Yeah, I think replacing Facebook with "social networking style" would work here.

Made these commits directly to this PR


Add drivers export path

Hey there! 👋🏻
This PR adds a drivers export path allowing to directly import drivers.
import { SpotifyDriver } from '@adonisjs/ally/drivers/spotify'

// Instead of
import { SpotifyDriver } from<EMAIL_ADDRESS>
The PR also adds a new entry in tsup configuration to not bundle drivers.

Is their any reason to not bundle drivers? Also, they won't be in the compiled output at all.

Is their any reason to not bundle drivers? Also, they won't be in the compiled output at all.

I am not sure about that, but doesn't the bundled driver disallow to have the import path?
Because after building the code, the driver's code no longer resides in build/src/drivers but in some chunk-XXX files.

Actually, no, adding an new entry in the tsup config will bundle the drivers, but separately. So index.ts will have its own bundle, and drivers/* will have their own bundle too. so it's ok, PR looks good to me

I misunderstood the world bundle here. I thought you are saying that not to compile drivers.


Handle validator throwing null

This checks this existence of a validator and the result of a validator separately.  This prevents the wrong error message if a registered validator returns null.  Fixes #535
This got a little awkward so let me know if this is the best way to handle it.  It looks like the issue is really only for Java applications.  The original implementation said a validator could only return non-null Any values.  So in Kotlin you could never get this issue since null types are strictly known at compile time.   However Java has no such language restriction.  So a Java validator could return null and Kotlin had no way of checking nullability so it allowed it.
In order to make the Kotlin compiler play nice with Java I had to switch the converter map to Any? and then separate the original elvis statement into two.  If I left it as Any then the second elvis statement would complain saying it would never be null, which is not true for Java.
Hope all that makes sense.   I'm still relatively new to Kotlin and Kotlin/Java interoperability, so if there is a better way please let me know.

I think the code looks good. This could have been an issue in Kotlin too, if your converter relied on a Java library that masked nullability.
Thank you!


luau-analyze crashes with new keyof support

Environment Details
Luau version: 0.611
Editor: VSCode (although seems to occur on neovim too, using the unofficial luau-lsp.nvim client)
Introduction
Heya! While using luau-lsp with the DebugLuauDeferredConstraintResolution FFlag enabled, the server seems to crash when a function which returns a keyof a table, is passed as an argument to another function which received an argument that is a keyof the table. This issue probably has to do with luau-analyze which luau-lsp makes use of.
Example
Below is some reproducible code:
--!strict

local EnumVariants = {
    ["a"] = 1, ["b"] = 2, ["c"] = 3
}

type EnumKey = keyof<typeof(EnumVariants)>

function fnA<T>(i: T): keyof<T> end

function fnB(i: EnumKey) end

local result = fnA(EnumVariants)
fnB(result)

In order for the server to crash, you would need to wait for the function signature to be evaluated (by simply typing fnB() with your cursor within the brackets), and then reference the variable result.
It is important to note that this crash occurs even when not using strict mode.
Relevant Logs
Below is the log at the point the error occurs with the LSP server:
Request textDocument/signatureHelp failed.
  Message: Unexpected TypeFamilyInstanceType subTy
  Code: -32603

Yeah, this is 100% a crash in luau-analyze, and it should be fixed in the next OSS release. It was already fixed internally.

Any relevant commits that have been pushed that I can checkout and build myself?

The 0.612 release sync should have the commit to fix it. Unfortunately, the way our workflow is currently setup, internal commits only release in upstream syncs on Fridays.

@CompeyDev gonna close this out, but let me know if this particular crash persists.

Can confirm on my end that I do not face this anymore, thanks!


DX12 support bounding resource both as SRV and UAV at the same time?

Hi there,
IIRC, in dx11 we can't bound one buffer both as SRV and UAV at the same time, which makes sense to me...
But after looking through MiniEngine FXAA implementation, it seems the g_SceneColorBuffer is bound as SRV and UAV for the final pass (though that resource is in D3D12_RESOURCE_STATE_UNORDERED_ACCESS state).
So my questions are:

in DX12, can we bound resource both as SRV and UAV simultaneously? And if yes, what's the purpose of supporting it?
Why the validation layer won't complain that your resource is not in xxx_shader_resource state while you are using it as SRV?
Why in MiniEngine FXAA implementation we need both SRV and UAV for scenebuffer, since we can read from UAV?

Thanks in advance for anyone kindly taking the time answering my questions
Peng

Hi Peng,
You've touched on a "dirty little hack" in MiniEngine.  It's already been modified locally, and should be pushed to GitHub soon.
So the situation is that there are times when you want to read-modify-write a UAV.  Some image algorithms work better this way.  It can avoid a buffer copy, and it can keep image pipelines simple by not moving your data around.  For a GPU to do this with typed UAVs, it has to be capable of "typed UAV loads".  (Typed UAVs are any other than UINT formats.)  The shader would do a typed load, work with the data, and then do a typed store.  So it turns out that this capability is not that widespread yet.  NVidia's Kepler architecture, for instance, does not support typed UAV loads.  As an experiment, I discovered I could fake typed UAV loads by replacing them with typed SRV loads.  I felt that either the capabilities reported by the GPU must be conservative, or perhaps not all UAV types were supported, but certainly the one I cared about was:  R11G11B10_FLOAT.  By binding a resource as both an SRV and a UAV, I could get typed loads even on Kepler.  The main issue with it is that it's not officially sanctioned to bind a resource in two states, and the validation layer gets very confused.
Discussing the reasonable goal of read-modify-write algorithms with the DirectX team, we determined that the most appropriate solution to support GPUs lacking typed UAV loads is to instead do an untyped UAV load, manually decode the format from UINT, then modify and write.  While an easy change, it turns out there is another gotcha.  You can't create an R32_UINT view of an R11G11B10_FLOAT buffer.  This restriction was somewhat arbitrary and will be relaxed in a future DX12 release.  In the mean time, I will use a trick where two views look at different resources occupying the same memory.  Using an ID3D12Heap and CreatePlacedResource(), I can overlay (or alias) my two UAVs.
So now I'll answer your questions.

Yes, you can, but no you should not.  The purpose was explained above.
I disabled the validation layer and will be re-enabling it in the next push.  It may be possible to ignore certain validation warnings.
I think the reason for using this hack with FXAA should be explained by now, but it modifies an R11G11B10_FLOAT buffer in place.  The luminance buffer is a separate SRV, so it won't be modified.  But since FXAA does need to blend a pixel with its neighbor, neighbor pixel colors need to be copied to somewhere else.  These colors are copied to the work queues (append buffers).

I want to follow up with a word of caution.  Read-modify-write algorithms are incompatible with scattered reads or writes.  There needs to be a 1:1 correspondence between reads and writes.  FXAA only became a read-modify-write algorithm after first making a backup of the search space (luminance values -> SRV<R8_UNORM>) and copying the neighbor pixel color to the work queue.  In my original implementation, both the center and neighbor pixels got pushed to the work queue, but I realized I could save memory in the work queue by just loading the center value directly from the destination buffer before overwriting it--much like alpha blending.
While I started this response by announcing you had found a "hack"--which you did--it's actually an important hack that shows the flexibility of the D3D12 API.  It generally gives you enough rope to hang yourself with.  The validation layer is there to warn you against doing bad things, but if you know what you're doing, you can sometimes ignore it.  (Please don't in a shipping game.)  And my determined nature to make read-modify-write work on a wide range of hardware has opened up the discussion internally as to how to make that happen.
I hope I've satisfied you with my answers.
Regards,
James

Thanks James, that's really very helpful. I still remember the time I try to make read-modify-write to work in dx11 where I have a 384^3 volume buffer to update every frame, doing ping-pong buffer will double the already huge memory requirement. So I end up decode and encode R32_UINT with using  "D3DX_DXGIFormatConvert.inl" during read and write in place. I think in DX12, I will try the Typed UAV load with that, and hopefully it will be faster since I don't have to do the encode and decode thing...(but given the fact that it may already been throttled by memory, so probably no improvement at all...)
Anyway, thanks so much again for such a detailed explanation and all those advises. I really appreciate it.
Peng


Use ens addresses

Use (Universal) ENS addresses in the send activity. These are looked up on the universal ENS directory on mainnet.

@JamesSmartCell conflicts


A few simple changes that you may find helpful?

Hi!
I really  what you've made.  Really like that you included screenshots.
I quickly made a few tweaks that you may find helpful. for this and other PySimpleGUI programs.  They include:

Make Combo read-only so easier to choose and also sets a default value
Used a Pane element on the bottom two Multiline so that you can adjust how much of the bottom one is visible
Return key pressed in the input Multiline will automatically click the Answer button for you

Here's an example session with this GUI

This is the code.
import logging
import PySimpleGUI as sg
import openai
import os
import sys
import requests
import urllib.request
from PIL import Image
from io import BytesIO
from api_key import key

# @https://beta.openai.com/docs/engines/gpt-3

logger = logging.getLogger()
logging.basicConfig(filename='answers.txt', level=logging.INFO)

max_tokens_list = (256, 2000, 8000)
models = ("text-davinci-003", "text-davinci-002", "text-curie-001", "text-babbage-001", "text-ada-001")

# Defines the modules() and openAi() functions which are used to select the engine and generate a response.
def modules(engines):
    return engines if engines in models else None

def select_max_tokens(max_tokens):
    return max_tokens if max_tokens in max_tokens_list else None

def picture_size(size):
    sizing = None
    if size == "256x256":
        sizing = "256x256"
    elif size == "512x512":
        sizing = "512x512"
    elif size == "1024x1024":
        sizing = "1024x1024"
    return sizing

def openAi(prompt_in, engines, max_tokens):
    sg.popup_quick_message('Responding...')
    max_tokens = select_max_tokens(256)
    completion = openai.Completion.create(engine=modules(engines), prompt=prompt_in, temperature=0, max_tokens=select_max_tokens(max_tokens), top_p=1.0)
    result = completion.choices[0].text
    if len(result) < 150:
        print(result)
        logger.info(result)
    else:
        sg.popup_quick_message('Responding to answers.txt')
        print(result)
        with open('answers.txt', 'a+') as f:
            f.write(result)

def dalle(prompt_ins, size):
    response = openai.Image.create(
        prompt=prompt_ins,
        n=1,
        size=picture_size(size)
    )
    image_url = response['data'][0]['url']
    webUrl = urllib.request.urlopen(image_url)
    img = Image.open(webUrl)
    sg.Popup('Displaying and saving image...', keep_on_top=True)
    file_name = os.path.basename(prompt_ins)[:255] + '.png'
    img.show()
    img.save(file_name)

def make_window(theme):
    sg.theme(theme)
    max_tokens = select_max_tokens(256)
    # GUI layout.
    layout = [
        [sg.Text("OpenAIGUI", size=(63, 1), expand_x=True, expand_y=True, justification="center", font=(
            "Helvetica", 13), relief=sg.RELIEF_RIDGE, key="-TEXT HEADING-", enable_events=True)],
        [sg.TabGroup([
            [sg.Tab("OpenAi", [
                [sg.Radio("Choose model", "RADIO1", default=True, key="modules"), sg.Combo(models, default_value=models[0], key="engines", readonly=True)],
                [sg.Radio("Choose max token", "RADIO1", key="select_max_tokens"), sg.Combo(max_tokens_list, key="max_tokens")],
                [sg.Text("Enter your question or statement below:",
                         font=("Arial", 9, 'bold'))],
                [sg.Pane([sg.Column([[sg.Multiline(key="prompt", size=(77, 20), expand_x=True, expand_y=True, enter_submits=True, focus=True)]]),
                sg.Column([[sg.Multiline(size=(60, 15), font=("Arial", 9), expand_x=True, expand_y=True, write_only=True,
                              reroute_stdout=True, reroute_stderr=True, echo_stdout_stderr=True, autoscroll=True, auto_refresh=True)]])], expand_x=True, expand_y=True)],
                [sg.Button("Answer", bind_return_key=True), sg.Button('Open file'),
                 sg.Button("Clear"), sg.Button("Quit")]
            ]),
                sg.Tab("Dall-E", [
                    [sg.Text("Suggest impression:", font=("Arial", 9, 'bold'))],
                    [sg.Radio("Choose picture size", "RADIO1", key="picture_size"), sg.Combo(
                        ["256x256", "512x512", "1024x1024"], key="size")],
                    [sg.Multiline(key="promptdalle", size=(
                        77, 20), expand_x=True, expand_y=True)],
                    [sg.Button("Create image"), sg.Button(
                     "Clear"), sg.Button("Quit")]
                ]),
                sg.Tab("Theme", [
                    [sg.Text("Choose theme:")],
                    [sg.Listbox(values=sg.theme_list(), size=(20, 12),
                                key="-THEME LISTBOX-", enable_events=True)],
                    [sg.Button("Set Theme")]
                ]),
                sg.Tab("About", [
                    [sg.Text(
                        "text-davinci-003 - Upgraded davinci-002. GPT3 chatbot model.")],
                    [sg.Text(
                        "text-davinci-002 - Code review, complex intent, cause and effect, summarization for audience")],
                    [sg.Text(
                        "code-davinci-edit-001 - Edit endpoint is particularly useful for editing code.")],
                    [sg.Text(
                        "text-curie-001 - Language translation, complex classification, text sentiment, summarization")],
                    [sg.Text(
                        "text-babbage-001 - Moderate classification, semantic search classification")],
                    [sg.Text(
                        "text-ada-001 - Parsing text, simple classification, address correction, keywords")]
                ])
            ]], key="-TAB GROUP-", expand_x=True, expand_y=True),
         sg.Sizegrip()]]
    # Gui window and layout sizing.
    # icon='C:/OpenAI-GUI/icon.ico'
    window = sg.Window('OpenAI GUI', layout, resizable=True, return_keyboard_events=True, finalize=True)
    # window.bind(bind_string="<Enter>", key="Answer", propagate=True)
    # window.bind('<Configure>', "Configure")
    return window

    # Set keyboard shortcuts for the buttons [ADD KEY BINDS]
    # window.bind(bind_string="<Enter>", key="Answer", propagate=True)
    # window['Answer'].bind('<Return>', 'Answer')
    # window['Clear'].bind('<Delete>', 'Clear')
    # window['Quit'].bind('<Escape>', close_me)
    #

# GUI window that runs the main() function to interact with the user.
def main():
    window = make_window(sg.theme())
    # Event loop.
    while True:
        event, values = window.read(timeout=100)
        max_tokens = select_max_tokens(377)
        if values is not None:
            engines = values['engines'] if values['engines'] == 'Choose model' else values['engines']
        if values is not None:
            max_tokens = values['max_tokens'] if values['max_tokens'] == 'Choose max token' else values['max_tokens']
        if values is not None:
            size = values['size'] if values['size'] == 'Choose picture size' else values['size']
        if event == 'Answer':
            prompt_in = values['prompt']
            openAi(prompt_in, engines, max_tokens)
        elif event == 'Create image':
            prompt_ins = values['promptdalle']
            dalle(prompt_ins, size)
        elif event == 'Open file':
            os.startfile('answers.txt', 'open')
        elif event == 'Clear':
            window['prompt'].update('')
        elif event == "Set Theme":
            theme_chosen = values['-THEME LISTBOX-'][0]
            window.close()
            window = make_window(theme_chosen)
            sg.popup(f"Chosen Theme: {str(theme_chosen)}", keep_on_top=True)
        elif event == sg.WINDOW_CLOSED or event == 'Quit':
            break

    window.close()
    sys.exit(0)

if __name__ == '__main__':
    sg.theme('black')
    sg.theme('dark red')
    sg.theme('dark green 7')
    main()

Hey hey! Very cool lines.
Thank you for taking the time to make these suggestions! I appreciate the feedback and I'm glad you found the screenshots helpful. I just pushed the updated code to the repository.
Please let me know if you have ideas for the same key bound to two buttons in one window without calling Tkinter.

Please let me know if you have ideas for the same key bound to two buttons in one window without calling Tkinter.

If you've not opened an issue in the PySimpleGUI GitHub about this then please do.  I'm not sure exactly what you mean by the same key bound to two buttons.  Too many definitions for "key".

This was another change that I made... simplified by taking out size, key, events enabled, etc.  Looked like a feature that wasn't completed.
        [sg.Text("OpenAIGUI",  expand_x=True, justification="center", font=("Helvetica", 13), relief=sg.RELIEF_RIDGE)],

I also added my normal editing / version info featute by adding this standard right click menu:
    window = sg.Window('OpenAI GUI', layout, resizable=True, right_click_menu=sg.MENU_RIGHT_CLICK_EDITME_VER_EXIT)

And then these 4 lines that I copy to all of my projects now.
        if event == 'Edit Me':
            sg.execute_editor(__file__)
        elif event == 'Version':
            sg.popup_scrolled(__file__, sg.get_versions(), location=window.current_location(), keep_on_top=True, non_blocking=True)

This enables me to quickly make changes to programs I'm working on from time to time...

Right-click, choose "Edit Me" and I'm editing the program in PyCharm without having to remember where the program is located on my system.


Howto play with others

Hosting your own server
Using Minecraft Realms: https://www.minecraft.net/en-us/realms-plus

That's all. You need a shared server and to play all together there.


Re-design Home Page

Re-design the home page roughly based on the mock-up below. At the very least, we just want to keep the main page very simple and show only the search box.

Clicking on high, moderate, low, and certain should take us to the Browse (Explore?) page, with mutations filtered by the corresponding prevalence, where we can interact with the table (which is currently on the home page) and the scatter plot (introduced by #53)

Let's update example queries like this:

[ ] BRCA1 gene/BRCA1
[ ] BRCA2 S1982Rfs (c.5946del): variant/13:g.32914438_32914438delT
[ ] NF1 in Nerve Sheath Tumor: gene/NF1?cancerType=Nerve%20Sheath%20Tumor
[ ] 17:41276045-41276046


TLS client cert with wrong SAN

The Ondat cluster can't connect to etcd due to a
{... msg":"rejected connection","remote-addr":"<IP_ADDRESS>:50060","server-name":"storageos-etcd.storageos-etcd","error":"remote error: tls: bad certificate"}

This is happening because the certificate in the storageos-etcd-secret has the following SAN definition
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Data Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Alternative Name:
                DNS:storageos-etcd-secret

The DNS fieldstorageos-etcd-secret should match the DNS name:*.storageos-etcd.storageos-etcd

Hi, I executed the installation of charts with the umbrella and I see the issue as the Ondat pods can't connect to Etcd. Etcd logs indicating "error":"remote error: tls: bad certificate".
Then I executed the installation with the etcd chart first and then the ondat-operator. The result is the same. I fixed in the cluster by copying the contents of the secret storageos-etcd-client into the storageos-etcd-secret while keeping the file names in the storageos-etcd-secret as expected by the CP. The secret storageos-etcd-client has got the right alternative names.
After that and a restart of the node pods, then the cluster started successfully.
In my values I put
  kvBackend:
    address: 'https://storageos-etcd.storageos-etcd:2379'

I'm thinking if it is possible that the tests didn't have the https:// prefix.

I've been using etcd without the https:// prefix and it's been working fine for me!
Another thought - did you uninstall/reinstall on the same cluster? I've noticed that the storageos namespace with associated storageos-etcd-secret is not necessarily deleted when helm uninstall is run. If that secret persists through an uninstall-reinstall, or the associated pods on the etcd or storageos side do, there'll be a mismatch as:

Mounted secrets do not automatically trigger a k8s pod/ds refresh
The operator doesn't seem to want to overwrite it's own etcd secret

We've pushed a new version, please re-test and let me know whether that resolves the issue!

@Arau could you please review this issue? Thank you :)


DROP TABLE (and DETACH TABLE) hangs up

Hi,
using Docker containers (version 1.1.54390).
I have a KafkaEngine table created.
CREATE TABLE IF NOT EXISTS ordersKafka2
(
// ... fields
)
ENGINE = Kafka('kafka:9092', 'orders', 'CHOrders', 'JSONEachRow')

when running DROP TABLE, it hung up.
After about 15 minutes (I read it takes time sometimes), I close the client session. A new client session will see the table if I run show tables. If I try to run the DROP command again, I get:
Table dataplatform.ordersKafka is dropping or detaching right now.

However nothing is shown about it in the logs, apart from this message.
I try then to detach it, and it tries... but it hangs up, and nothing extra meaningful is shown in the logs.
Table (and topic) is very small in size, a few MBs.
Let me know if you need more info.
Complete trace logs:
<Error> executeQuery: Code: 337, e.displayText() = DB::Exception: Table dataplatform.ordersKafka is dropping or detaching right now, e.what() = DB::Exception (from ip:55448) (in query: drop table ordersKafka), Stack trace:

0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x5656556]
1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x2d76d42]
2. /usr/bin/clickhouse-server(DB::Context::getDDLGuard(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const+0x12a) [0x4daecca]
3. /usr/bin/clickhouse-server(DB::InterpreterDropQuery::executeToTable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, DB::ASTDropQuery::Kind, bool, bool)+0x35f) [0x4ded6cf]
4. /usr/bin/clickhouse-server(DB::InterpreterDropQuery::execute()+0x345) [0x4df1325]
5. /usr/bin/clickhouse-server() [0x4e8010b]
6. /usr/bin/clickhouse-server(DB::executeQuery(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum)+0x8a) [0x4e8112a]
7. /usr/bin/clickhouse-server(DB::TCPHandler::runImpl()+0x3d7) [0x2d83867]
8. /usr/bin/clickhouse-server(DB::TCPHandler::run()+0x2b) [0x2d8470b]
9. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x584a1ef]

@vavrusa @bocharov

Similar issue. Attempting to shutdown the clickhouse-server service hangs, with last log entry:
<Trace> StorageKafka (logs_queue): Unsubscribing from assignments

This should be fixed in https://github.com/yandex/ClickHouse/pull/3215

The DROP TABLE query still hangs up. Also the Clickhouse server can't be stopped. I waited for 20 minutes, last log message is:
2019.06.13 09:47:14.777968 [ 1 ] {} <Information> Application: Shutting down storages

Checked versions <IP_ADDRESS> and <IP_ADDRESS>.

Face similar issues with <IP_ADDRESS>, on drop kafka table engine got this error:
%3|1560495915.155|cppkafka|ClickHouse <IP_ADDRESS>#consumer-3| Failed to close consumer [ClickHouse <IP_ADDRESS>#consumer-3]: Local: Broker handle destroyed
The query than hung up.

Face similar issues with <IP_ADDRESS>, on drop kafka table engine got this error:
%3|1560495915.155|cppkafka|ClickHouse <IP_ADDRESS>#consumer-3| Failed to close consumer [ClickHouse <IP_ADDRESS>#consumer-3]: Local: Broker handle destroyed
The query than hung up.

Was the engine active before unsuccessful DROP attempt? I.e. did you read some data from it before executing DROP query? (see https://github.com/yandex/ClickHouse/issues/5615#issuecomment-502102648 )

@steezypunk according to the message from your log it's exactly the #5615 - will close for now as a duplicate. For further reference the initial problem with hanging shutdown in any case was fixed in version 19.8+


[markdown] Support "autocorrect" tool

The same way you added typos and codespell with #228 and #229
You could support autocorrect
https://github.com/huacnlee/autocorrect
(hi @huacnlee :wave:)

Thanks


Info/Rules Channel Manager Plugin

A plugin to make creating and updating fancy info/rule channels easier.
Potential features:

Upload a large text file (or maybe JSON?) and have the bot automatically split and post it
Automatically update the messages in the channel when changes are made
Image support (I'm not sure how it could be done with attachments; probably best to just let people attach a link to be embedded?)
Perhaps embed support (this would better lend itself to JSON but could be done in text too)
Maybe use some sort of diffing to only edit the messages that have been changed?

I thought about doing that with json like
[
	{
		"message": "2000 chars worth.",
		"embed": {...},
		"attach": ["filename.png", "https://link.com"]
	}
]

But that obviously puts more work on the shoulders of whoever's writing it. I think it'd be better in the end because auto-splitting can produce some curious results, especially if the end users forget about it and try to have some formatting start in one message and end in another one.
...editing messages could be done by storing the IDs and some sort of a hash per message and comparing them every few global timer ticks?
Probably start by just doing purge/repost. Because that won't break (even if it may take a bit with multiple messages).

Yeah, I guess it's a balance between user-friendliness and ease of coding. I think your way with the JSON sounds reasonable, though maybe allow users to just put in a string in the list instead of an object if they just want to send normal text.
I'm not sure why you'd want to compare them every few global ticks; it should be enough to only do a check after the schematic is edited. No reason to worry about the fancy edit-if-necessary bits for a v1 though, like you said.
Your point about auto-splitting is good, and reminds me that it would probably be a good idea to deal with the auto-splitting mess in the main code a bit better.

Yeah, allowing for straight up strings seems logical.
And good point, no reason it needs to be done anywhere other than on reload/file upload. Could also add a nice verification printout for problems per-message like text being too long or files being unavailable.
Not sure how useful local filenames can be, to be honest, since only bot maintainers can access that (and since it would add extra clutter).


for asap-alchemy gather, ability to pull down separate replicates

After discussions with @jthorton, it looks like we are pulling results down from alchemiscale in a consolidated way (and the confidence is the standard error of the prediction). For retrospective/debugging purposes, we also need to be able to check the individual replicates' predictions so that we can compare them.

@jthorton @JenkeScheen is this still an issue?

yes still an issue, currently we can only pull the mean of replicates


stuck in customizing node visuals

I'm trying to follow your tutorial. but I'm stuck in step : customizing node visuals. Actually, I was stuck in where declare views in CustomNodeView.xaml. I added below codes into usercontrol so that I solved it though.
xmlns:views="clr-namespace:NodeNetwork.Views;assembly=NodeNetwork"
Now I'm stuck in below parts

public partial class CustomNodeView : IViewFor<\CustomNodeViewModel\>
{
    #region ViewModel
    ...
    #endregion

    public CustomNodeView()
    {
        InitializeComponent();

        this.WhenActivated(d =>
        {
            this.WhenAnyValue(v => v.ViewModel).BindTo(this, v => v.NodeView.ViewModel).DisposeWith(d);
        });
    }
}

I can not find CustomNodeViewModel. What should be in #region ViewModel? I guess both are related, right? Plz, could you give me codes or guide for me?
thx in advance.

I'm trying to follow your tutorial. but I'm stuck in step : customizing node visuals. Actually, I was stuck in where declare views in CustomNodeView.xaml. I added below codes into usercontrol so that I solved it though.
xmlns:views="clr-namespace:NodeNetwork.Views;assembly=NodeNetwork"
Now I'm stuck in below parts

public partial class CustomNodeView : IViewFor<\CustomNodeViewModel\>
{
    #region ViewModel
    ...
    #endregion

    public CustomNodeView()
    {
        InitializeComponent();

        this.WhenActivated(d =>
        {
            this.WhenAnyValue(v => v.ViewModel).BindTo(this, v => v.NodeView.ViewModel).DisposeWith(d);
        });
    }
}

I can not find CustomNodeViewModel. What should be in #region ViewModel? I guess both are related, right? Plz, could you give me codes or guide for me?
thx in advance.

there are backslashes between begin and end of the "CustomNodeViewModel" word. plz ignore it.

CustomNodeViewModel can be any viewmodel class that inherits from NodeViewModel. See the previous chapter for details on how you can create such a class. In the specific example of the previous chapter, this would be HelloWorldNode.

What should be in #region ViewModel?

This is boilerplate code to create a reactive property called ViewModel. I have modified the chapter to explain this.
public static readonly DependencyProperty ViewModelProperty =
    DependencyProperty.Register(nameof(ViewModel), typeof(CustomViewModel), typeof(CustomView), new PropertyMetadata(null));

public CustomViewModel ViewModel
{
    get => (CustomViewModel)GetValue(ViewModelProperty);
    set => SetValue(ViewModelProperty, value);
}

object IViewFor.ViewModel
{
    get => ViewModel;
    set => ViewModel = (CustomViewModel)value;
}

Thx to answer me, Wouterdek.
I got some more questions about your answer. I have tried to follow your answer like below codes. there were many errors came out though.
    public partial class CustomNodeView : IViewFor<CustomNodeViewModel>
    {

        public CustomNodeView()
        {
            InitializeComponent();

            this.WhenActivated(d =>
            {
                this.WhenAnyValue(v => v.ViewModel).BindTo(this, v => v.NodeView.ViewModel).DisposeWith(d);
            });
        }

        public static readonly DependencyProperty ViewModelProperty =
        DependencyProperty.Register(nameof(ViewModel), typeof(CustomNodeView), typeof(CustomNodeViewModel), new PropertyMetadata(null));

        public CustomNodeViewModel ViewModel
        {
            get => (CustomNodeViewModel)GetValue(ViewModelProperty);
            set => SetValue(ViewModelProperty, value);
        }

        object IViewFor.ViewModel
        {
            get => ViewModel;
            set => ViewModel = (CustomNodeViewModel)value;
        }
    }

    public class CustomNodeViewModel : NodeViewModel
    {
        public ValueNodeInputViewModel<string> NameInput { get; }
        public ValueNodeOutputViewModel<string> TextOutput { get; }

    }

both of view model have a lot of errors that I can not solve them. if you have completed codes of this parts, could you plz share it with us? so that I can recognize what I did wrong. To be honest, it will be very helpful for us, if every parts have a sample code in cookbook tutorial.

thx in advance.

The codegen example application includes a complete example of how to create a custom node view, maybe that clears things up a bit?

View XAML
View codebehind
ViewModel

Thx, Wouterdek.
I have done what you said before but didn't work and occured many errors in viewmodel. So I asked you to get sample sources to solve this errors. BTW, I opened tutorial source using VS 2019 today. then, all errors have gone. I have used VS 2015 till yesterday. I guess latest version of VS can support latest .net framework.
Also, the links you posted are also so helpful for me to understand tutorial source.
have a nice day. Wouterdek :D


Several SQL keywords missing taht are supported by traditional RDBMS and BigData Platforms

Using language sql some keywords used by traditional and new SQL constructs are not highlighted. These constructs are supported by traditional RDBMS, e.g. IBM DB2, and BigData platforms like Spark (SparkSQL):

The keyword values can start a so-called values statement.  The list of beginKeywords has to be updated.
The keyword all supported by set opersations.
The keywords bucket and tablesample used to specify table sampling.
The SQL function explode is not recognized.
The keywords hours, minutes, and seconds used to specify a time interval.
The keyword lateral used in lateral view specification.
The keyword semi used in semi  join definitions.
The keyword window used in window functions.
The numerical data type tinyint.

Thanks for gathering the list @MichaelReichertOnGitHub. Any chance you'd want to do a PR and add them to:
https://github.com/highlightjs/highlight.js/blob/master/src/languages/sql.js#L24

@MichaelReichertOnGitHub, did you make a fork? Let me know if you are having git issues and happy to help.

@marcoscaceres I created PR https://github.com/highlightjs/highlight.js/pull/1908 to merge changes from branch fix_issue_1907 in my fork to master. Please kindly advise.

This issue can be closed it was fixed by #1908


Fix: Bin-Huang.Chatbox version 1.0.3

Microsoft Reviewers: Open in CodeFlow

/azp run

[Policy] Needs-Manual-Merge


mock_cloudwatch does not implement get_metric_statistics

Docs:

http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html
http://botocore.readthedocs.io/en/latest/reference/services/cloudwatch.html#CloudWatch.Client.get_metric_statistics

+1

Thanks! Adding as a feature request.


[Bug][Config-ui] Can't proceed with no reason

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened

I can not click next step. Or I should be given some info?
One more thing, if we don't fill these inputs, can we use the default values?

What you expected to happen
The page should tell me which part I must fill
How to reproduce
run github tasks with refdiff
Anything else
No response
Version
main
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@warren830 You most exit/close "Edit"Transformation mode before allowing to go "Next". Please click Go Back first and see if the next button is re-activated.

@warren830 You must exit/close "Edit"Transformation mode before allowing to go "Next". Please click Go Back first and see if the next button is re-activated.

Thanks Julien, right now it works. But I think this might mislead users..

@warren830 This functionality has been the same since V12, also the behavior was requested by the Product team which makes sense since we want the user to complete editing before proceeding next.  Normally you would see all the projects listed before getting to the edit screen. Maybe we can put a help tooltip to let the user know that the next button is disabled while they are editing.

I agree with both of you.
Can we add some animation to the "Go Back" button to draw Users' attention?

@klesh I'll look into making some adjustments.

Closed with #2799


For Labeling

Changes of requirement in setup
Changes in Qt_main and canvas to show ON/OFF legend

Do we still need DatabaseInfo.py and MRData.py in the GUI?
Can we decouple it?

I have changed the import files in networks.


Return MPRemoteCommandHandlerStatus required for iOS 13

fix iOS 13

Tested, it works in iOS 13 with this pull request. @ghenry22 could you please merge it?


Make compatible with io.js v3.x and node.js v4.x.

Update the compatibility shim to the latest version from
https://github.com/strongloop/strong-agent/tree/master/src
Fixes #47.
Fixes #48.

+1

:+1:

Still broken with Node.js 4.2.0

TIL about the logger(1) command, for anyone interested in using syslog you might want to check it out.

http://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/

Can someone please shed some light about @bnoordhuis suggestion of
"Update the compatibility shim to the latest version from
https://github.com/strongloop/strong-agent/tree/master/src"
I am very much newbie in GIT world and open source project. All I am trying to do is get [link to JqueryUI Themeroller] (https://github.com/jquery/download.jqueryui.com) project running on my standalone Ubuntu Server VM.
So far I have satisfied all basic requirements of the project on my VM and trying to install project using npm. All project dependencies are resolved during installation but I get following error which is very much same as mentioned in post #48 I am using git source for themeroller project.
Themeroller is dependent on "simple-log": "1.2.0", npm module and simple-log is in turn dependent on node-syslog.
Here is the error log from npm install. Unfortunately I do not have permission to attach file. If someone can walk me through the steps of getting shim compatibility updated, I may have shot getting project running on my machine. Thanks!
cn2admin@tn-ubuntu:~/download.jqueryui.com$ npm install

<EMAIL_ADDRESS>install /home/cn2admin/download.jqueryui.com/node_modules/no                                                                                de-syslog
node-gyp rebuild

make: Entering directory /home/cn2admin/download.jqueryui.com/node_modules/node                                                                                -syslog/build'   CXX(target) Release/obj.target/syslog/syslog.o In file included from ../node-syslog.h:13:0,                  from ../syslog.cc:1: ../compat.h:27:2: error: #error "Unsupported node.js version." In file included from /home/cn2admin/.node-gyp/5.0.0/include/node/node.h:42:0,                  from ../node-syslog.h:4,                  from ../syslog.cc:1: /home/cn2admin/.node-gyp/5.0.0/include/node/v8.h:336:1: error: expected unqualif                                                                                ied-id before ‘using’ /home/cn2admin/.node-gyp/5.0.0/include/node/v8.h:469:1: error: expected unqualif                                                                                ied-id before ‘using’ /home/cn2admin/.node-gyp/5.0.0/include/node/v8.h:856:1: error: expected unqualif                                                                                ied-id before ‘using’ In file included from ../node-syslog.h:13:0,                  from ../syslog.cc:1: ../compat.h:62:53: error: ‘FunctionCallback’ has not been declared ../compat.h:123:47: error: ‘ArgumentType’ does not name a type ../compat.h:123:61: error: ISO C++ forbids declaration of ‘args’ with no type [-                                                                                fpermissive] ../compat.h:124:10: error: ‘ReturnType’ does not name a type ../compat.h:125:10: error: ‘ReturnType’ does not name a type ../compat.h:126:10: error: ‘ReturnType’ does not name a type ../compat.h:127:10: error: ‘ReturnType’ does not name a type ../compat.h:128:10: error: ‘ReturnType’ does not name a type ../compat.h:129:10: error: ‘ReturnType’ does not name a type ../compat.h:130:10: error: ‘ReturnType’ does not name a type ../compat.h:134:9: error: ‘ArgumentType’ does not name a type In file included from ../syslog.cc:1:0: ../node-syslog.h:20:31: error: ‘v8::Handle’ has not been declared ../node-syslog.h:20:37: error: expected ‘,’ or ‘...’ before ‘<’ token ../node-syslog.h:23:9: error: ‘ReturnType’ in namespace ‘C’ does not name a type ../node-syslog.h:24:9: error: ‘ReturnType’ in namespace ‘C’ does not name a type ../node-syslog.h:25:9: error: ‘ReturnType’ in namespace ‘C’ does not name a type ../node-syslog.h:26:9: error: ‘ReturnType’ in namespace ‘C’ does not name a type In file included from ../syslog.cc:2:0: ../compat-inl.h:80:27: error: ‘FunctionCallback’ has not been declared ../compat-inl.h: In static member function ‘static v8::Local<v8::FunctionTemplat                                                                                e> compat::FunctionTemplate::New(v8::Isolate*, int)’: ../compat-inl.h:82:60: error: invalid conversion from ‘int’ to ‘v8::FunctionCall                                                                                back {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}’ [-fpermissive] /home/cn2admin/.node-gyp/5.0.0/include/node/v8.h:4348:34: error:   initializing                                                                                argument 2 of ‘static v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(                                                                                v8::Isolate*, v8::FunctionCallback, v8::Local<v8::Value>, v8::Local<v8::Signatur                                                                                e>, int)’ [-fpermissive] ../compat-inl.h: At global scope: ../compat-inl.h:119:1: error: ‘ReturnType’ does not name a type ../compat-inl.h:123:1: error: ‘ReturnType’ does not name a type ../compat-inl.h:127:1: error: ‘ReturnType’ does not name a type ../compat-inl.h:131:1: error: ‘ReturnType’ does not name a type ../compat-inl.h:135:1: error: ‘ReturnType’ does not name a type ../compat-inl.h: In member function ‘v8::Isolate* compat::ReturnableHandleScope:                                                                                :isolate() const’: ../compat-inl.h:140:10: error: ‘args_’ was not declared in this scope ../syslog.cc: At global scope: ../syslog.cc:5:15: error: ‘compat::ReturnType’ has not been declared ../syslog.cc:6:15: error: ‘compat::ArgumentType’ has not been declared ../syslog.cc:10:8: error: ‘ReturnType’ does not name a type ../syslog.cc:27:22: error: variable or field ‘Initialize’ declared void ../syslog.cc:27:22: error: ‘Handle’ was not declared in this scope ../syslog.cc:27:35: error: expected primary-expression before ‘>’ token ../syslog.cc:27:37: error: ‘target’ was not declared in this scope ../syslog.cc:35:1: error: ‘ReturnType’ does not name a type ../syslog.cc:75:1: error: ‘ReturnType’ does not name a type ../syslog.cc:107:1: error: ‘ReturnType’ does not name a type ../syslog.cc:122:1: error: ‘ReturnType’ does not name a type ../syslog.cc:65:13: warning: ‘void UV_AfterLog(uv_work_t*, int)’ defined but not                                                                                used [-Wunused-function] ../syslog.cc:69:13: warning: ‘void UV_Log(uv_work_t*)’ defined but not used [-Wu                                                                                nused-function] make: *** [Release/obj.target/syslog/syslog.o] Error 1 make: Leaving directory /home/cn2admin/download.jqueryui.com/node_modules/node-                                                                                syslog/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_module                                                                                s/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_proces                                                                                s.js:200:12)
gyp ERR! System Linux 3.13.0-66-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-                                                                                gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/cn2admin/download.jqueryui.com/node_modules/node-syslog
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 3.13.0-66-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the node-syslog package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-syslog
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/cn2admin/download.jqueryui.com/npm-debug.log

@cn2admin See https://github.com/schamane/node-syslog/issues/50#issuecomment-154029265 for a solution.

Thanks @bnoordhuis  for prompt reply. Unfortunately for me its not possible to update the package dependency to modern-syslog inside project as Themeroller is dependent on "simple-log": "1.2.0", npm module and simple-log is in turn dependent on node-syslog. Do you see any other way to resolve this issue?

Maybe file an issue or pull request against simple-log to move away from node-syslog and repeat for themeroller once simple-log has been updated?

Ok so untill simple-log is not changed to modern-syslog, I work locally on simple-log copy using pulled version dependent on modern-syslog? Is that what you are suggesting? If so can you guide me how to proceed with it? Install local version of simple-log in global scope? How do I update themeroller packages file to use my version of simple-log?
Again I am very much new to this platform and environment.
Thanks!

That's a bit out of scope and I don't want to go into too much detail but, in a nutshell, you fork the projects on github and update their package.json files.  You can tell npm to install from git / github instead of from the main repository, see e.g. http://stackoverflow.com/a/18049685.

Great, I will follow suggestions from stackoverflow article. But in meantime I downloaded simple-log locally and updated the packages to refer "modern-syslog": "1.1.2" instead of "node-syslog": "1.2.0". Expecting that these changes should work with simple-log but got following error this time. Am I missing something?
make: *** [Release/obj.target/core/core.o] Error 1
make: Leaving directory /home/cn2admin/simple-log-master/node_modules/modern-syslog/build' gyp ERR! build error gyp ERR! stack Error: make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-66-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/cn2admin/simple-log-master/node_modules/modern-syslog
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN EPACKAGEJSON<EMAIL_ADDRESS>No repository field.
npm WARN EPACKAGEJSON<EMAIL_ADDRESS>No license field.
npm ERR! Linux 3.13.0-66-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the modern-syslog package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls modern-syslog
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/cn2admin/simple-log-master/npm-debug.log

To answer my own question, I followed instructions from this stackoverflow post.

+1

+1


lower() doesn't stop the app

Sails version: 0.11.3
Node version: 5.7.0
NPM version: 3.6.0
Operating system: OS X Yosemite

In a custom npm executable script (node_modules/.bin/myScript), I'm lifting Sails, doing some stuff, then calling .lower() but the app doesn't stop. Debugging inside lower.js shows that it's not even entered.
const Sails = require('sails')
  , rc = require('rc');

function run() {
  Sails.lift(rc('sails', {process: 'manual'}), (err, server)=> {
    if (err) {
      console.error(err);
    }

     // ... do some stuff

      Sails.lower({}, (err)=> {
        if(err){
          console.error(err);
        }
        return true;
      });
    });
  });
}

run();

The app just continues running. No error is returned from .lower() and it doesn't have a callback result by default. I debugged in the lower.js file itself and turns out that that code isn't even reached...
I think the problem is that lower() returns a callback, but my script doesn't accept one, so how do I manage this case?

So, actually the app was getting lowered and all services (HTTP, socket, etc.) were shut down, but the app itself continued running. process.exit() was the solution. So, I first gracefully lower all services and then exit the app:
      Sails.lower({}, (err) => {
        if (err) {
          log.error('An error occurred while shutting the server down.');
          process.exit(1);
        }
        process.exit();
      });

@galioy .lower() should definitely kill the Sails server.  That said, if you have any other stuff running in the same process, the actual process won't terminate until all the things are done.  For example, if, in your Sails app, you're doing something like setInterval() or if there's some other kind of unfinished business, that unfinished business would have to complete before the process exits.
This is tested in Sails core, but just to be sure, I checked it locally and it worked as expected:
var sails = require('sails');

var myProgrammaticConfig = { /* ... */ };

sails.lift(myProgrammaticConfig, function (err, server) {
  if (err) {
    console.error('Could not lift Sails app!  Bailing now.  Error details:',err);
    return;
  }

   // * * *
   // Don't do any stuff
   // (just in case that stuff is making your process hang)
   // * * *

  sails.lower(function (err) {
    if (err){
      console.error('Could not lower Sails app for some reason...   You might need to type CTRL+C to kill the process.  Error details:',err);
      return;
    }

    // If we made it here, the process should gracefully exit,
    // provided there isn't any unfinished business in our custom code.

  }); //</after attempted .lower()>
});//</after attempted .lift()>

Let me know if I'm missing something!

@galioy going to go ahead and close this, but again, please open a new issue if I'm missing something and there's a bug here.  Thanks!


Synchronize with scikit-build

scikit-build commit 94089992b353ea3e4b4c2f118ea1987ca54ecbb8:
skbuild/setuptools_wrap.py.skbuild/setuptools_wrap.py
cmake_install_dir -> _cmake_install_dir

This is for the upcoming 0.13.2 release of scikit-build, and the dependency file (pyproject.toml) has been updated. Pinning a minimum version of scikit-build allows following development, i.e. support for new OSs.


Libnd4j: RNN backprop ops for gru (and maybe lstm)

Not urgent, but we're going to want them eventually.
Current missing backprop ops:
gru (time series, cell has one).  See #8199.
lstmBlock, lstmBlockCell.  May want to wait until the new lstm op.
Is #5504 still relevant (has the gru cell bp been tested)?

Implemented, will be merged later today.


Allow client to indicate tar root directory to be directory itself

I'm happy to make changes and update this request.
Currently if you tar '/a/to/path', the tarball has 'path' at its root, and when untarr'd, you'll get the 'path' directory
With fromBase set, the root will be '.', so when you untar the file, the files will be extracted to the current dir.

Closing this in favor of #51.

This is not working anymore since the new implementation of the Pack class. How can I get this behavior now?


Ubuntu won't start if Windows Terminal Preview is default terminal application

Environment
Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.21390.0 Microsoft Windows NT 10.0.21390.0

Your Distribution version: [On Debian or Ubuntu run `lsb_release -r` in WSL]
Ubuntu Release:        20.04
Your WSLg version: [Open 'Apps and Features' and check the version of 'Windows Subsystem for Linux GUI app support', e.g: <IP_ADDRESS>]
Windows Subsystem for Linux WSLg Preview 1.0.22

Steps to reproduce
If Windows Terminal Preview is set as the default terminal application, Ubuntu will not start from Start Menu.  Ubuntu error message is invalid parameter.  However, Xfce Terminal will start.

WSL logs:

Attach WSLg logs from  /mnt/wslg

You can access the wslg logs using explorer at: \\wsl$\<Distro-Name>\mnt\wslg (e.g.: \\wsl$\Ubuntu-20.04\mnt\wslg)

puseaudio.log
weston.log
versions.txt

Expected behavior

Actual behavior

possibly related to microsoft/terminal#10134

@rye2020 , thanks for reporting the issue, I confirmed with Windows Terminal team this is tracked by https://github.com/microsoft/terminal/issues/10134. thanks!


compilation error when using SchemaType

HI,
I'm trying to learn you library using the examples in the README.md on the github page. When using:
	"""
      |{
	  |  "$schema": "http://json-schema.org/draft-04/schema#",
	  |  "title": "Group Structure Response", .... too long to include

And importing ...
import com.eclipsesource.schema._
import play.api.libs.json._
when using sbt compile, I get the  error:
"No Json deserializer found for type com.eclipsesource.schema.SchemaType. Try to implement an implicit Reads or Format for this type."
Clearly I am doing something wrong, but it is not clear from the example code what is necessary / missing.
Any advise to help me resolve this will be appreciated.
Regards
Alan

Hi, the Reads and Writes for SchemaType are draft specific, hence you need to import the respective Version object, in this case Version4 (e.g. as in https://github.com/eclipsesource/play-json-schema-validator/blob/master/src/test/scala/com/eclipsesource/schema/AdditionalItemsSpec.scala#L10-L14, also see usage notes). Let me know if that helps, if it doesn't, please post your entire code, so that I can reproduce the error.

Many thanks Edgar. Your help enabled me to compile the code successfully. I am happy to have this issue closed.

Ok, great! If there's anythings else, let me know.


WebView2: Update documentation for replacement SDK 1.0.1264.42 and 1.0.1305-prerelease

Docs Build status updates of commit 2a19848:
:warning: Validation status: warnings

File
Status
Preview URL
Details

1-0-1305-prerelease/icorewebview2experimentalcompositioncontroller4.md
:warning:Warning
View (webview2-1.0.1305-prerelease)
Details

1-0-1264-42/icorewebview2certificate.md
:bulb:Suggestion
View (webview2-1.0.1264.42)
Details

1-0-1264-42/icorewebview2clientcertificate.md
:bulb:Suggestion
View (webview2-1.0.1264.42)
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

1-0-1264-42/icorewebview2.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_10.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_11.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_12.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_13.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_14.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_2.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_3.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_4.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_5.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_6.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_7.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_8.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_9.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2acceleratorkeypressedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2acceleratorkeypressedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2addscripttoexecuteondocumentcreatedcompletedhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationrequestedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationrequestedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationresponse.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2browserprocessexitedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

This comment lists only the first 25 files in the pull request.

1-0-1305-prerelease/icorewebview2experimentalcompositioncontroller4.md

Line 44, Column 150: [Warning: file-not-found - See documentation] Invalid file link: 'icorewebview2experimentalcompositioncontroller4--corewebview2_matrix_4x4.md'.
Line 46, Column 122: [Warning: file-not-found - See documentation] Invalid file link: 'icorewebview2experimentalcompositioncontroller4--corewebview2_matrix_4x4.md'.

1-0-1264-42/icorewebview2certificate.md

Line 2, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Provides access to the certificate metadata.' is duplicated in '1-0-1264-42/icorewebview2certificate.md(2,14)', '1-0-1264-42/icorewebview2clientcertificate.md(2,14)'.

1-0-1264-42/icorewebview2clientcertificate.md

Line 2, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Provides access to the certificate metadata.' is duplicated in '1-0-1264-42/icorewebview2certificate.md(2,14)', '1-0-1264-42/icorewebview2clientcertificate.md(2,14)'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 6ddece0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

1-0-1264-42/icorewebview2.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_10.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_11.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_12.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_13.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_14.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_2.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_3.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_4.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_5.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_6.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_7.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_8.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2_9.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2acceleratorkeypressedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2acceleratorkeypressedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2addscripttoexecuteondocumentcreatedcompletedhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationrequestedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationrequestedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2basicauthenticationresponse.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2browserprocessexitedeventargs.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2browserprocessexitedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2bytesreceivedchangedeventhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

1-0-1264-42/icorewebview2calldevtoolsprotocolmethodcompletedhandler.md
:white_check_mark:Succeeded
View (webview2-1.0.1264.42)

This comment lists only the first 25 files in the pull request.
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Docs.MS Release Updates for azure-storage-file-share

Update docs metadata and targeting for release of azure-storage-file-share

Docs Build status updates of commit f1a6e1e:
:clock10: Pending: waiting for processors (11 builds ahead of you)
:warning: Docs Build is busy, currently there are 11 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit f1a6e1e:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-autogen/microsoft-cognitiveservices-speech-sdk/index.yml
:warning:Warning
View (azure-node-latest)
Details

docs-ref-autogen/overview/ManagedApplications.yml
:warning:Warning
View (azure-node-latest)
Details

docs-ref-services/storage-file-share-readme.md
:white_check_mark:Succeeded
View (azure-node-latest) View (azure-node-preview) View (azure-node-legacy)

docs-ref-autogen/microsoft-cognitiveservices-speech-sdk/index.yml

[Warning-DuplicateUids] Uid(microsoft-cognitiveservices-speech-sdk) has already been defined in docs-ref-autogen/microsoft-cognitiveservices-speech-sdk/index.yml.

docs-ref-autogen/overview/ManagedApplications.yml

[Warning-DuplicateUids] Uid(azure.nodejs.sdk.landingpage.services.managedapplications) has already been defined in docs-ref-autogen/overview/ManagedGroups.yml.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Remove the unit symbol flag pole

I had reviewed some information about the 'flag pole'/group rendering.  This one feature is going to keep us from using milsymbol.  How do disable this feature?

found it!
ms.setHqStafLength( 0 )

Added in latest commit the possibility to remove the staff, set ms.setHqStaffLength(0) or use the option hqStaffLength:-1 on individual symbols. Also make sure to use octagon center for your insertion point, because the other insertion point will still use the end of the pole.


chore(tests) move unit tests out of lib

I'm not sure I agree with this restructure.
We could consider the style of co-locating everything in a folder. For web frontends, the page/URL would sit in its own folder with the controller (and routing), i18n, validation, tests. Its nice as you go to one place to make changes on a page.
For this project, it just means co-locating the tests with the functional code.


Physics unit of beta in GeometryStatistics()

Hi,
Please correct me if I'm wrong, I feel the physics unit of beta in GeometryStatistics() is incorrect.
beta : float
1/(Boltzmann constant)/(temperature) if temperature is not None in
units of kcal per mole; otherwise 1.0

if the following formula is used to calculate beta,
self.beta = JPERKCAL/KBOLTZMANN/AVOGADRO/self.temperature
The unit of physics constants:
KBOLTZMANN: J/K
AVOGADRO: mol^-1
temperature: K
JPERKCAL: J/kcal
J/kcal/JKmol/K=mol/kcal

Thanks! I will take a look shortly.

I think that this is the way it should be - at least for our data, the forces were saved in units of kcal/mol/aa. That being said, I think this should explicitly be mentioned in the docstring. I will make a PR about it.


add laravel and symfony binaries

This PR add two framework binaries, the laravel/installer(https://laravel.com/docs/8.x/installation#installing-laravel) and the symfony binary(https://symfony.com/download)

[x] Updated makefiles
[x] Updated dockerfile's
[x] Updated readme

Thanks for the PR, but I'm prone to keep this docker image framework-agnostic. I don't think we should include any specific framework.


Trait impls only resolve in the current crate

If I go to the declaration of the From trait and go to implementation (Ctrl+Shift+F12 in vscode) only the impls in libcore are returned.

This is now fixed, it now shows over 1000 implementations in all kinds of crates when I do this with rust-analyzer open


During rolling upgrade, links to load balancer are being updated before new services are up

Rancher-compose- v0.5.1
Previously in a rolling upgrade, links to services wouldn't be updated until the new service was ready. In v0.5.1, links to the new service is being created BEFORE the service is actually up and running, which can cause downtime.
http://forums.rancher.com/t/haproxy-link-updated-prior-to-container-being-available/897

@sangeethah When testing this fix, can you please also test that circular links are still working as well.

Verified that circular links (above issues) are still working with v0.5.2-rc2.

Tested with rancher-compose version - V0.5.2-rc2
When a new service is defined and linked to existing LB service using rancher-compose up , the new service is activated and started and only when it gets to "active" state , the Lb service is linked to it.


Fix chat text leak

@keybase/react-hackers
Looks like this has been there for weeks -- we've been receiving unknown messages of type readMessage for a while (we don't have a handler for updating the latest read message because the badger drives this) and of type setStatus since muting support went in.  So this change only prints the type, but none of the payload.

My bad -- it's not true that we've been leaking text for weeks.  We've been leaking the payloads of server-generated unsupported messages for weeks, but those messages only started containing message text yesterday.


V0.5.0 - Maintenance and Issue Resolution

This PR addresses a number of maintenance and spec compliance issues:

Set nullable = false on most collections. (evaluating a last set of objects to determine if this is necessary)
Ordered variables in alphabetical order
Moved sku selection example code to a shared module for making reading easier
Created new outputs to comply with the spec (and close issue for managed identity output)
Addressed a password/SSH issue where linux machines were erroring when the public key was provided manually
Created a 'default' example to comply with spec and updated the readme documentation

Tested externally as the runners keep queuing.


fixed setting custom sounds for notification channels

Description of Change
Had to move this code up before creating the notification channel for it to work.
Issues Resolved
Fixed custom sounds to work again on notification channels.
API Changes

None
Platforms Affected

Android

Behavioral Changes

None
Testing Procedure

PR Checklist

[ ] Rebased on top of the target branch at time of PR
[ ] Changes adhere to coding standard

I can't take this PR as is.  Channels are only available in Android 8+.  Also, this particular change came in as part of another PR.

I had originally PR'ed the fix but it was refactored since which stopped it working.

This is fixed for the next release


Connecting to MQTT broker spins when invalid authentication config

Describe the bug
When using MQTT server authentication and invalid CA certificate was provided in tedge-config, opening connection spins on the error to verify server certificate:
2024-02-19T10:39:23.582843165Z ERROR mqtt_channel::connection: MQTT: failed to connect to broker at 'localhost:8883': TLS: I/O: invalid peer certificate: BadSignature

generating a lot of logs and wasting a lot of CPU.
To Reproduce

Create file /etc/tedge/mosquitto-conf/~secure-listener.conf [^1] with following contents:
listener 8883
allow_anonymous true
require_certificate false
cafile   /etc/mosquitto/ca_certificates/ca.crt
certfile /etc/mosquitto/ca_certificates/server.crt
keyfile  /etc/mosquitto/ca_certificates/server.key

Run gen-certs.sh, which will generate and place a server certificate into /etc/mosquitto/ca_certificates
tests/RobotFramework/tests/mqtt/gen_certs.sh

Generate a different CA certificate which will be used by tedge to try to verify broker certificate and use it as mqtt.client.auth.ca_file
openssl req \
    -new \
    -x509 \
    -days 7 \
    -extensions v3_ca \
    -nodes \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=ca" \
    -keyout ca.key \
    -out ca.crt

tedge config set mqtt.client.auth.ca_file $(realpath ca.crt)

Ensure all thin-edge is disconnected, or tedge services are off, and restart mosquitto.

Try to start a tedge service, e.g. tedge-agent

A lot of messages like 2024-02-19T10:39:23.54226273Z ERROR mqtt_channel::connection: MQTT: failed to connect to broker at 'localhost:8883': TLS: I/O: invalid peer certificate: BadSignature should be generated very quickly.

Expected behavior
On failures to connect, a reasonable delay should be used, e.g. 1s after every attempt.
Additional context
I could just do a quick PR adding a delay when this particular error case, but I see that we have a match where we decide which errors should be given a timeout and which should not:
https://github.com/thin-edge/thin-edge.io/blob/64def4e4c5ed8e600d3ab090725ad3af57f1579f/crates/common/mqtt_channel/src/connection.rs#L308-L315
So I have a question: what's the reason that we apply a delay only to some of the connect errors? Should any other cases be added other than BadSignature case which this ticket is about? Why not apply the delay to all errors when trying to connect?
[^1]: ~ is prepended to the filename so this file is loaded after the one with per_listener_settings true directive, without it mosquitto fails to start with an error. I guess we could perhaps use the xx-filename.conf convention for mosquitto configs to more precisely control the load order of configuration files

So I have a question: what's the reason that we apply a delay only to some of the connect errors? Should any other cases be added other than BadSignature case which this ticket is about? Why not apply the delay to all errors when trying to connect?

There is no good reason for that beyond that a delay has been introduced for likely transient errors (broker not started or restarting / network hiccup).
In case of a TlsError or worse a StateError, which is unlikely a transient  error, we should consider to give up with a fatal error.

In case of a TlsError or worse a StateError, which is unlikely a transient error, we should consider to give up with a fatal error.

I agree, the most important thing is to either exit with a fatal error, or apply a reasonable timeout and retry, and never do the third thing, i.e. retry immediately, because it results in spinning. So for any unknown errors, we need to decide whether we retry after delay, or exit. IMO the best would be to exit on all errors, unless it's some transient error, then we can apply a delay and retry.

QA has thoroughly checked the bug and here are the results:

[ ] Test for ticket exists in the test suite.
[x] QA has tested the bug and it's not reproducable anymore


Redesign the dashboard

Written by @xqliu
Created at 2015-08-21T15:05:44.000+0800
Link to http://betterlife.atlassian.net/browse/BE-153

(Redesign the dashboard)

Written by @xqliu
Created at 2016-02-22T00:10:43.073+0800