Fix doctests

This is an attempt to fix the examples in our docstrings. With this, the output of:
python -m pytest --doctest-modules xarray --ignore xarray/tests

is
remaining warnings and errors
====================================================================================================== test session starts =======================================================================================================
platform linux -- Python 3.8.5, pytest-6.0.1, py-1.9.0, pluggy-0.13.1
rootdir: ..., configfile: setup.cfg
plugins: cov-2.10.0, env-0.6.2, hypothesis-5.23.11
collected 91 items

xarray/conventions.py FF                                                                                [  2%]
xarray/backends/api.py F                                                                                [  3%]
xarray/coding/cftime_offsets.py .                                                                                [  4%]
xarray/coding/cftimeindex.py ....                                                                                [  8%]
xarray/coding/strings.py F                                                                                [  9%]
xarray/core/accessor_dt.py ...                                                                                [ 13%]
xarray/core/accessor_str.py .                                                                                [ 14%]
xarray/core/alignment.py ..                                                                                [ 16%]
xarray/core/combine.py ..                                                                                [ 18%]
xarray/core/common.py ....F......                                                                                [ 30%]
xarray/core/computation.py .....                                                                                [ 36%]
xarray/core/dataarray.py .......................                                                                                [ 61%]
xarray/core/dataset.py .....F.............                                                                                [ 82%]
xarray/core/extensions.py .                                                                                [ 83%]
xarray/core/groupby.py .                                                                                [ 84%]
xarray/core/indexing.py FF                                                                                [ 86%]
xarray/core/merge.py .                                                                                [ 87%]
xarray/core/nputils.py .                                                                                [ 89%]
xarray/core/options.py .                                                                                [ 90%]
xarray/core/parallel.py .                                                                                [ 91%]
xarray/core/rolling.py ..                                                                                [ 93%]
xarray/core/rolling_exp.py .                                                                                [ 94%]
xarray/core/utils.py .                                                                                [ 95%]
xarray/core/variable.py ..                                                                                [ 97%]
xarray/plot/utils.py ..                                                                                [100%]

============================================================================================================ FAILURES ============================================================================================================
___________________________________________________________________________________________ [doctest] xarray.conventions.BoolTypeArray ___________________________________________________________________________________________
048 Decode arrays on the fly from integer to boolean datatype
049
050     This is useful for decoding boolean arrays from integer typed netCDF
051     variables.
052
053     >>> x = np.array([1, 0, 1, 1, 0], dtype="i1")
054
055     >>> x.dtype
Expected:
    dtype('>i2')
Got:
    dtype('int8')

.../xarray/conventions.py:55: DocTestFailure
_______________________________________________________________________________________ [doctest] xarray.conventions.NativeEndiannessArray _______________________________________________________________________________________
021
022     >>> x = np.arange(5, dtype=">i2")
023
024     >>> x.dtype
025     dtype('>i2')
026
027     >>> NativeEndiannessArray(x).dtype
028     dtype('int16')
029
030     >>> NativeEndiannessArray(x)[:].dtype
UNEXPECTED EXCEPTION: TypeError("unexpected key type: <class 'slice'>")
Traceback (most recent call last):
  File "~/.conda/envs/xarray/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest xarray.conventions.NativeEndiannessArray[3]>", line 1, in <module>
  File ".../xarray/conventions.py", line 44, in __getitem__
    return np.asarray(self.array[key], dtype=self.dtype)
  File ".../xarray/core/indexing.py", line 1277, in __getitem__
    array, key = self._indexing_array_and_key(key)
  File ".../xarray/core/indexing.py", line 1269, in _indexing_array_and_key
    raise TypeError("unexpected key type: {}".format(type(key)))
TypeError: unexpected key type: <class 'slice'>
.../xarray/conventions.py:30: UnexpectedException
__________________________________________________________________________________________ [doctest] xarray.backends.api.save_mfdataset __________________________________________________________________________________________
1182     compute : bool
1183         If true compute immediately, otherwise return a
1184         ``dask.delayed.Delayed`` object that can be computed later.
1185
1186     Examples
1187     --------
1188
1189     Save a dataset into one netCDF per year of data:
1190
1191     >>> years, datasets = zip(*ds.groupby("time.year"))
UNEXPECTED EXCEPTION: NameError("name 'ds' is not defined")
Traceback (most recent call last):
  File "~/.conda/envs/xarray/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest xarray.backends.api.save_mfdataset[0]>", line 1, in <module>
NameError: name 'ds' is not defined
.../xarray/backends/api.py:1191: UnexpectedException
_______________________________________________________________________________________ [doctest] xarray.coding.strings.StackedBytesArray ________________________________________________________________________________________
199 Wrapper around array-like objects to create a new indexable object where
200     values, when accessed, are automatically stacked along the last dimension.
201
202     >>> StackedBytesArray(np.array(["a", "b", "c"]))[:]
UNEXPECTED EXCEPTION: ValueError("can only use StackedBytesArray if argument has dtype='S1'")
Traceback (most recent call last):
  File "~/.conda/envs/xarray/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest xarray.coding.strings.StackedBytesArray[0]>", line 1, in <module>
  File ".../xarray/coding/strings.py", line 215, in __init__
    raise ValueError(
ValueError: can only use StackedBytesArray if argument has dtype='S1'
.../xarray/coding/strings.py:202: UnexpectedException
________________________________________________________________________________________ [doctest] xarray.core.common.DataWithCoords.pipe ________________________________________________________________________________________
578         >>> def adder(data, arg):
579         ...     return data + arg
580         ...
581         >>> def div(data, arg):
582         ...     return data / arg
583         ...
584         >>> def sub_mult(data, sub_arg, mult_arg):
585         ...     return (data * mult_arg) - sub_arg
586         ...
587         >>> x.pipe(adder, 2)
Differences (unified diff with -expected +actual):
    @@ -2,6 +2,6 @@
     Dimensions:        (lat: 2, lon: 2)
     Coordinates:
    +  * lon            (lon) int64 150 160
       * lat            (lat) int64 10 20
    -  * lon            (lon) int64 150 160
     Data variables:
         temperature_c  (lat, lon) float64 12.98 16.3 14.06 12.9

.../xarray/core/common.py:587: DocTestFailure
_____________________________________________________________________________________ [doctest] xarray.core.dataset.Dataset.filter_by_attrs ______________________________________________________________________________________
5719         ...     },
5720         ...     coords={
5721         ...         "lon": (["x", "y"], lon),
5722         ...         "lat": (["x", "y"], lat),
5723         ...         "time": pd.date_range("2014-09-06", periods=3),
5724         ...         "reference_time": pd.Timestamp("2014-09-05"),
5725         ...     },
5726         ... )
5727         >>> # Get variables matching a specific standard_name.
5728         >>> ds.filter_by_attrs(standard_name="convective_precipitation_flux")
Differences (unified diff with -expected +actual):
    @@ -2,8 +2,8 @@
     Dimensions:         (time: 3, x: 2, y: 2)
     Coordinates:
    +    lon             (x, y) float64 -99.83 -99.32 -99.79 -99.23
    +  * time            (time) datetime64[ns] 2014-09-06 2014-09-07 2014-09-08
    +    lat             (x, y) float64 42.25 42.21 42.63 42.59
         reference_time  datetime64[ns] 2014-09-05
    -    lat             (x, y) float64 42.25 42.21 42.63 42.59
    -  * time            (time) datetime64[ns] 2014-09-06 2014-09-07 2014-09-08
    -    lon             (x, y) float64 -99.83 -99.32 -99.79 -99.23
     Dimensions without coordinates: x, y
     Data variables:

.../xarray/core/dataset.py:5728: DocTestFailure
____________________________________________________________________________________ [doctest] xarray.core.indexing._decompose_outer_indexer _____________________________________________________________________________________
971     -----
972     This function is used to realize the vectorized indexing for the backend
973     arrays that only support basic or outer indexing.
974
975     As an example, let us consider to index a few elements from a backend array
976     with a orthogonal indexer ([0, 3, 1], [2, 3, 2]).
977     Even if the backend array only supports basic indexing, it is more
978     efficient to load a subslice of the array than loading the entire array,
979
980     >>> backend_indexer = BasicIndexer(slice(0, 3), slice(2, 3))
UNEXPECTED EXCEPTION: TypeError('__init__() takes 2 positional arguments but 3 were given')
Traceback (most recent call last):
  File "~/.conda/envs/xarray/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest xarray.core.indexing._decompose_outer_indexer[0]>", line 1, in <module>
TypeError: __init__() takes 2 positional arguments but 3 were given
.../xarray/core/indexing.py:980: UnexpectedException
__________________________________________________________________________________ [doctest] xarray.core.indexing._decompose_vectorized_indexer __________________________________________________________________________________
893     -----
894     This function is used to realize the vectorized indexing for the backend
895     arrays that only support basic or outer indexing.
896
897     As an example, let us consider to index a few elements from a backend array
898     with a vectorized indexer ([0, 3, 1], [2, 3, 2]).
899     Even if the backend array only supports outer indexing, it is more
900     efficient to load a subslice of the array than loading the entire array,
901
902     >>> backend_indexer = OuterIndexer([0, 1, 3], [2, 3])
UNEXPECTED EXCEPTION: TypeError('__init__() takes 2 positional arguments but 3 were given')
Traceback (most recent call last):
  File "~/.conda/envs/xarray/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest xarray.core.indexing._decompose_vectorized_indexer[0]>", line 1, in <module>
TypeError: __init__() takes 2 positional arguments but 3 were given
.../xarray/core/indexing.py:902: UnexpectedException
======================================================================================================== warnings summary ========================================================================================================
xarray/core/common.py::xarray.core.common.DataWithCoords.resample
xarray/core/common.py::xarray.core.common.DataWithCoords.resample
xarray/core/common.py::xarray.core.common.DataWithCoords.resample
  .../xarray/core/common.py:1230: FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
  The new arguments that you should use are 'offset' or 'origin'.

  >>> df.resample(freq="3s", base=2)

  becomes:

  >>> df.resample(freq="3s", offset="2s")

    grouper = pd.Grouper(

xarray/core/dataarray.py::xarray.core.dataarray.DataArray.argmax
xarray/core/dataarray.py::xarray.core.dataarray.DataArray.idxmax
  .../xarray/core/dataarray.py:4090: DeprecationWarning: Behaviour of argmin/argmax with neither dim nor axis argument will change to return a dict of indices of each dimension. To get a single, flat index, please use np.argmin(da.data) or np.argmax(da.data) instead of da.argmin() or da.argmax().
    result = self.variable.argmax(dim, axis, keep_attrs, skipna)

xarray/core/dataarray.py::xarray.core.dataarray.DataArray.argmin
xarray/core/dataarray.py::xarray.core.dataarray.DataArray.idxmin
  .../xarray/core/dataarray.py:3987: DeprecationWarning: Behaviour of argmin/argmax with neither dim nor axis argument will change to return a dict of indices of each dimension. To get a single, flat index, please use np.argmin(da.data) or np.argmax(da.data) instead of da.argmin() or da.argmax().
    result = self.variable.argmin(dim, axis, keep_attrs, skipna)

xarray/core/dataarray.py::xarray.core.dataarray.DataArray.roll
  .../xarray/core/dataarray.py:2974: FutureWarning: roll_coords will be set to False in the future. Explicitly set roll_coords to silence warning.
    ds = self._to_temp_dataset().roll(

xarray/core/dataset.py::xarray.core.dataset.Dataset.roll
  <doctest xarray.core.dataset.Dataset.roll[1]>:1: FutureWarning: roll_coords will be set to False in the future. Explicitly set roll_coords to silence warning.

-- Docs: https://docs.pytest.org/en/stable/warnings.html
==================================================================================================== short test summary info =====================================================================================================
FAILED xarray/conventions.py::xarray.conventions.BoolTypeArray
FAILED xarray/conventions.py::xarray.conventions.NativeEndiannessArray
FAILED xarray/backends/api.py::xarray.backends.api.save_mfdataset
FAILED xarray/coding/strings.py::xarray.coding.strings.StackedBytesArray
FAILED xarray/core/common.py::xarray.core.common.DataWithCoords.pipe
FAILED xarray/core/dataset.py::xarray.core.dataset.Dataset.filter_by_attrs
FAILED xarray/core/indexing.py::xarray.core.indexing._decompose_outer_indexer
FAILED xarray/core/indexing.py::xarray.core.indexing._decompose_vectorized_indexer
============================================================================================ 8 failed, 83 passed, 9 warnings in 3.73s ============================================================================================

where DataWithCoords.pipe and Dataset.filter_by_attrs fail mostly because the order of the coords is not deterministic. Should we sort before formatting the coords?
Does anyone know what ds in save_mfdataset should look like? Also, how do we fix the construction of OuterIndexer and VectorizedIndexer?

[x] Closes #3837
[ ] Tests added
[x] Passes isort . && black . && mypy . && flake8
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

Edit: if we merge #4409 before this, we can make sure all doctests pass.

that was a entirely manual process. However, it should be possible to write a script using doctest.DoctestParser, doctest.DoctestFinder and doctest.DoctestRunner (and I would be surprised if there's nothing like that already).

Well, thanks for doing all that!
On the tool, I agree that would be great. Here's something I did in a day that aimed to do it for any value rather than doctests. Would be easier and less complicated for doctests: https://github.com/max-sixty/pytest-accept

shall we merge and deal with the effects of #4409 later?

I tried to fix the remaining doctests that were unrelated to #4409, so those need a review first (especially the StackedBytesArray and indexing doctests).

shall we merge and deal with the effects of #4409 later?

sure.

wow. The failing RTD check is due to:
<frozen importlib._bootstrap>:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject

Looks great! I raised an eyebrow about the os.remove but it's limited to a finite set of paths.
Re the warning, we could add an ignore in the doctest prelude?

I raised an eyebrow about the os.remove but it's limited to a finite set of paths.

yeah, well, I didn't want to leave files lying around. Not sure if there's a better way to do that. Maybe if there's a way to have pytest create a temporary directory we could use that to construct the paths?

we could add an ignore in the doctest prelude

I doubt that would fix it (maybe I'm missing something), these are triggered by ipython directives (combining.rst, groupby.rst). I'll try rerunning the RTD check.

the main build is also failing so I guess this is unrelated. There is a numpy release PR in the feedstock, maybe that will fix it?

Great! To the extent the RTD build failure is not from this branch, shall we merge this now?

Great! To the extent the RTD build failure is not from this branch, shall we merge this now?

(i.e. feel free to merge!)

the failing hypothesis test looks unrelated, so I'm merging.

Thanks a lot @keewis ! This is a big step forward!

should we add a CI that checks that we don't regress?

Sounds good to me. Thanks for working on this.

okay, then let's wait for #4409 which should fix the remaining three doctest failures.

For sure re CI!


How to display a triangle?

I am trying to display basic primitives using various WebGL libraries.
https://qiita.com/cx20/items/0fa19c96aa6470d98807
I would like to add qtek to the list, but I did not know how to display the triangle.
Will you give me triangle samples by qtek if possible?

Pleasure. Must use custom shader instead of builtin shader?

If there are two ways, I would like to make samples respectively.

Using VBO : Using custom shader
https://qiita.com/cx20/items/0fa19c96aa6470d98807#using-vbo

Using built-in primitive : Using builtin shader
https://qiita.com/cx20/items/0fa19c96aa6470d98807#using-built-in-primitive

Hi @cx20 . I just add two triangle examples. https://github.com/pissang/qtek/blob/master/example/triangle.html
https://github.com/pissang/qtek/blob/master/example/triangle_customshader.html

@pissang  Thank you for offering samples.
I am trying to create a rectangular sample by referring to Triangle's sample.
http://jsdo.it/cx20/OMNV
var positions = [
    [-0.5, 0.5, 0.0], // v0
    [-0.5,-0.5, 0.0], // v2
    [ 0.5, 0.5, 0.0], // v1
    [-0.5,-0.5, 0.0], // v2
    [ 0.5,-0.5, 0.0], // v3
    [ 0.5, 0.5, 0.0]  // v1
];
var colors = [
    [1.0, 0.0, 0.0, 1.0], // v0
    [0.0, 0.0, 1.0, 1.0], // v2
    [0.0, 1.0, 0.0, 1.0], // v1
    [0.0, 0.0, 1.0, 1.0], // v2
    [1.0, 1.0, 0.0, 1.0], // v3
    [0.0, 1.0, 0.0, 1.0]  // v1
];

However, the array of vertex data is redundant.
I would like to rewrite to use indices, but can it be realized?
I would like to use the following array.
var cositions = [
    [-0.5, 0.5, 0.0], // v0
    [ 0.5, 0.5, 0.0], // v1
    [-0.5,-0.5, 0.0], // v2
    [ 0.5,-0.5, 0.0]  // v3
];
var colors = [
    [1.0, 0.0, 0.0, 1.0], // v0
    [0.0, 1.0, 0.0, 1.0], // v1
    [0.0, 0.0, 1.0, 1.0], // v2
    [1.0, 1.0, 0.0, 1.0]  // v3
];

var indices = [
    2, 0, 1, // v2-v0-v1
    2, 1, 3  // v2-v1-v3
];

Yes, try initIndicesFromArray method.
var indices = [
    2, 0, 1, // v2-v0-v1
    2, 1, 3  // v2-v1-v3
];
geometry.initIndicesFromArray(indices);

@pissang Thank you for teaching me. I tried initIndicesFromArray.
However, The case of "A" is displayed, but it is not displayed in the case of "B".
Is this because qtek's default frontFace is CCW?
// [0]------[1]
//  |      / |
//  |    /   |
//  |  /     |
// [2]------[3]

// A) OK
var indices = [
    0, 2, 1, // v0-v2-v1
    1, 2, 3  // v1-v2-v3
];

// B) NG
var indices = [
    2, 0, 1, // v2-v0-v1
    2, 1, 3  // v2-v1-v3
];

Could you tell me how to change frontFace settings?

mesh.frontFace = qtek.Renderable.CW

Thank you! It is now displayed as expected.
http://jsdo.it/cx20/OMNV
Next I will challenge the colored cube :)

Good luck! Any questions or suggestions are welcome:)

I was able to display textured cubes :)
http://jsdo.it/cx20/Qwbw

Can you check if the library is used properly?

I added a sample of QTEK to the following Basic Primitives sample.
https://qiita.com/cx20/items/0fa19c96aa6470d98807

I would like to add a sample that uses built-in shaders instead of Custom Shader at a later date.

Great!  I see following code:
//mesh.frontFace = qtek.Renderable.CW;
mesh.culling = false;

Is this because the commented code can't work?
And this line is no need.
var normal = new qtek.Texture2D;

Can't find any other problems:)

Thank you for confirmation.
I set culling to false because the box did not close.
If you comment out this line you will get the following result.
// mesh.culling = false;

Perhaps the data may be bad, but since other library samples use the same VBO data, I am trying to accommodate them with parameters.

var normal = new qtek.Texture2D;

It is a copy mistake. I removed this line.

Understand. Builtin in primitive and shader next? :)

@pissang  I added the following sample using Built-in primitive and shader.
http://jsdo.it/cx20/uObL ... Triangle
http://jsdo.it/cx20/uOIG ... Plane
http://jsdo.it/cx20/k6uv ... Cube
http://jsdo.it/cx20/4TBY ... Cube + Texture
I would like to add colors to quads and cubes if possible. Is it feasible?
http://jsdo.it/cx20/uOIG

http://jsdo.it/cx20/k6uv ... Cube

For the quads. You can use vertex colors with standard shader. Like following:
geometry.attributes.color.fromArray([
  [1, 0, 0, 1], [1, 1, 0, 1], [0, 1, 0, 1], [0, 0, 1, 1]
]);
var mesh = new qtek.Mesh({
    geometry: geometry,
    material: new qtek.Material({
        // Use standard shader
        shader: qtek.shader.library.get('qtek.standard')
    })
});
// Enable vertex color in both vertex and fragment shader.
mesh.material.shader.define('both', 'VERTEX_COLOR');

For the cubes. You can alose use vertex colors like quads. Or render the normals. Which is simpler.
var mesh = new qtek.Mesh({
    geometry: geometry,
    material: new qtek.Material({
        // Only lambert shader support normal output
        shader: qtek.shader.library.get('qtek.lambert')
    })
});
mesh.material.shader.define('fragment', 'RENDER_NORMAL');

@pissang Very Thanks! I will try vertex colors.

Hmm. Somehow I am not going well.
I am trying vertex colors in the case of quads, but it seems that an error occurs.
http://jsrun.it/cx20/yupZc
qtek.js:21169
Uncaught Error: Could not link program
VALIDATE_STATUS: false, gl error [0]
    at sub.renderQueue (qtek.js:21169)
    at sub.render (qtek.js:21009)
    at sub.<anonymous> (index.js:41)
    at sub.trigger (qtek.js:146)
    at sub._update (qtek.js:1788)
    at step (qtek.js:1811)

I can't open the link. Can you paste the code here?

Hmm, it seems to be a bug. Sorry about that

http://jsdo.it/cx20/yupZc ... Editor
http://jsrun.it/cx20/yupZc .. Run mode

Is it because the v_Color variable is not defined in the Frangment Shader?
https://github.com/pissang/qtek/blob/4ce02974992397fc9388c8d2812cb8996caea0fa/src/shader/source/standard.glsl#L43-L45

Fixed. You can pull the latest code and rebuild with command npm install && npm run build. I also add vertex color in basic shader. So there is no need to use standard shader, which also need a light in scene or it will be black. See example https://github.com/pissang/qtek/blob/master/example/triangle_vertexcolor.html

@cx20 Yeah that's the issue. Never tested this branch before, My bad:(

Good catch!
@pissang I think it deserves to add a test case into the integration test suite.

@fuzhenn True

I was able to set Vertex Colors in the sample below.
http://jsdo.it/cx20/uOIG
http://jsdo.it/cx20/k6uv
I added samples of built-in primitive and shader below.
https://qiita.com/cx20/items/0fa19c96aa6470d98807#using-built-in-primitive

Since the triangle is now displayed, this Issue is closed.
Perhaps I will add a sample with the physics library next.
https://qiita.com/cx20/items/3ebed669fb9c9e797935

Looking forward to it!!

@pissang  BTW, I added 3 samples using the physical library to the above list.
http://jsdo.it/cx20/qtGf ... domino
http://jsdo.it/cx20/s2wJ ... football
http://jsdo.it/cx20/6viZ ... box

@cx20 Wow!! Well done!


Disabling scroll

Is there a way to conditionally disable scrolling the slideshow? I.e. temporarily disable scroll and have the user have to manually navigate between slides (next/prev buttons)

Hi @fendorio,
You can set prop scrollEnabled to either true (default) or false. This prop is inherited from ScrollView.
Note that there is a side-effect with autoplay because onTouchStart is triggered even when the prop is set to false. I will push a fix for that shortly.


feat: add TrackballControls

Still a WIP, DO NOT MERGE!
Changes:

I added a TrackballControls svelte component to extras
I added an example to the OrbitControls documentation page
I added a matching example to the new TrackballControls page

Still need to:

Fix the ambiguous indirect export: TrackballControls error that I see when I load the TrackballControls docs page
Make it clear that autorotate does not work on TrackballControls, only on OrbitControls
Modify TransformControls to be able to pause itself when TrackballControls are present
Create a changeset describing the change

Since you marked this as WIP, I converted it to a draft PR. When you feel its getting ready, you can convert it back @MattFerraro

Fix the ambiguous indirect export: TrackballControls error that I see when I load the TrackballControls docs page

The issue is that you need to export the TrackballControls here; that should also fix your deploy.


Add definitions of field types

Consolidate data type definitions and enforce consistency.

@antrim I think some commits are missing in this PR?  The types aren't applied to any of the fields.  It looks like some of definition are out of date with the latest changes in the doc too (e.g., Hexadecimal number).


favicon need

Is your feature request related to a problem? Please describe.
favicon need
Describe the solution you'd like
i will make a favicon if you want
Describe any alternatives you've considered
No response

Hey @Dajeff1234!
Thanks for submitting this feature request! In the future, please add descriptive titles to issues, such as "Add a favicon to the website." I'd be thrilled if you wanted to make a favicon for kama sona, although I can't promise it will definitely be added.


trackpad 2 finger scrolling fails in firefox on slice viewer

From @Robbie1977 on November 9, 2017 6:18
Can move through the stack using trackpad gestures in firefox.
Copied from original issue: VirtualFlyBrain/geppetto-vfb#104

See https://bugzilla.mozilla.org/show_bug.cgi?id=927702 for a potential fix:
Disabling the two-finger "swipe between pages" gesture in system preferences seems to be an adequate workaround for the time being.

Workarounds don't seem to work anymore.

From @ah963 on November 28, 2017 11:35
the scroll wheel isnt working on the slice viewer to move through the stack in firefox (54.0 64bit) , although it is in other browsers

This issue was moved to VirtualFlyBrain/VFB2#72


Fix race condition in resque worker instrumentation

We had a lot of ERROR : Failure unmarshalling message from Resque child process errors on our production platform. After looking around we finally found a race condition in the resque instrumentation between the worker loop and the flush process.
This patch:

wait for the real end of the worker loop while closing it
close the worker loop before flushing the data to the pipe

This patch is running on our production since 24h now, all the unmarshalling errors are gone.
This is related to the ticket 387095.

@bpaquet thank you for your submission!  We have pulled this work and testing it out internally.

This change has been accepted!  It will appear in the next release of the Agent.

@mwlang did this PR make it into any version of the newrelic agent?

👋 Hi @diclophis!
This PR was included in version 6.9.0 of the Ruby agent, released in February 2020.
Here's a link to the release notes: https://docs.newrelic.com/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-690363/


Added support for load using spark sql datasource API

Hi,
I have added support to load the data using spark sql data source standard for batch API's. Please review the code.

Thanks for the PR 👍

thanks for the pr @phatak-dev 👍


tag 1.4.1 deleted

I was using "bignumber.js": "~1.4.1" in my bower.json file. I looks like the 1.4.x tags were deleted and now bower complains with "ENORESTARGET No tag found that was able to satisfy ~1.4.1". Please keep the tags going forward.

I'm sorry, I didn't realise that deleting some older tags would cause this problem.  I won't delete them in future.

Thank you.

Any chance you could restore the tag?

Yes, it's done.

Much appreciated.


Add RC4 Support

Includes test vectors from https://tools.ietf.org/html/rfc6229#section-2
/cc @livinginformation

Who uses RC4 nowadays?  Should have mentioned that in pull request, but forgot since we had been discussing it on Gitter.

Where is the documentation about how they use it in particular?
I am asking because:
"It is especially vulnerable when the beginning of the output keystream
is not discarded, or when nonrandom or related keys are used."

@prusnak It is not used for security. They use the txid of the first UTXO as the key to obfuscate data stored in, e.g., OP_RETURN outputs.
Documentation is rather sparse but a search for "Counterparty ARC4" should yield some results.

To be honest, I have no idea why they do this for OP_RETURN (makes more sense for the old encoding methods). Also, the magic string CNTRPRTY is encrypted as well, so it means that they have to run ARC4 on every single transaction which might be a Counterparty transaction.

Lol this is stupid!

Thanks! Merged manually


Introduce support for ARM's SCMI

Design
The SCMI support is comprised of three entities: the core, the transport and the protocols. Each of these is detailed below.
Transport
This layer is in charge of managing the channels and sending/receiving messages. A channel is a medium through which an SCMI protocol can send and receive messages.
Before being able to receive/send messages, a protocol needs to have a channel allocated/bound to it. There are two ways in which this can be done:

Dynamically - during the protocol setup phase, the SCMI core will attempt to request the transport layer driver a channel for each of the supported protocols. A protocol is considered "supported" if it has an associated "scmi_protocol" structure in the scmi_protocol linker section. The core will attempt to request a channel dynamically only if the transport layer doesn't support static channels.
Statically - if the transport layer supports it (signaled via the ARM_SCMI_TRANSPORT_HAS_STATIC_CHANNELS configuration), each protocol will have its channels assigned at compilation time. However, this means that the transport layer needs to use the following channel allocation scheme: if the transport-specific macro DT_SCMI_TRANSPORT_PROTO_HAS_CHAN evaluates to true on a protocol node that means the protocol will use a protocol-specific channel optionally described in the protocol devicetree node. If the macro evaluates to false then the protocol will use the base protocol channel which corresponds to the SCMI root node.

Let's assume we have the following devicetree:
firmware {
    scmi {
        compatible = "arm,scmi"; // select mailbox-based transport
        shmem = <&myshmem1>;

        protocol@14 {
            compatible = "arm,scmi-clock";
            shmem = <&myshmem2>;
            #clock-cells = <1>;
        };
    };
};

and the following definition for DT_SCMI_TRANSPORT_PROTO_HAS_CHAN:
#define DT_SCMI_TRANSPORT_PROTO_HAS_CHAN(node_id, idx)\
             DT_PROP_HAS_IDX(node_id, shmem, idx)

First of all, the devicetree snippet indicates that we're dealing with two protocols: base (represented by the scmi node) and clock (represented by the protocol@14 node). Applying DT_SCMI_TRANSPORT_PROTO_HAS_CHAN with idx 0 (i.e: the transport channel) to the protocol@14 node will result in the macro evaluating to true. This means that in the static allocation scheme, the clock protocol will use its own channel separate from the one used by the base protocol.
On the contrary, in the following devicetree snippet:
firmware {
    scmi {
        compatible = "arm,scmi"; // select mailbox-based transport
        shmem = <&myshmem1>;

        protocol@14 {
            compatible = "arm,scmi-clock";
            #clock-cells = <1>;
        };
    };
};

the clock protocol would use base's TX channel as the DT_SCMI_TRANSPORT_PROTO_HAS_CHAN would evaluate to false when applied to protocol@14.
For static channels, the transport layer is responsible for validating the information used to build the channels passed through the devicetree at compilation time.
Protocols
The protocol layer is in charge of preparing the data and calling into the transport layer to send/receive messages. The data to be sent/received is encapsulated in a struct scmi_message. To send a message, all that a protocol has to do is call scmi_send_message(). This function will also wait for the reply so it's a blocking function.
Core
This is a glue layer between the transport and the protocols. What this layer does is it:

Makes sure a channel can only be accessed by a single protocol at a time.
Binds channels to protocols and initializes the channels.
Changes the send method based on the initialization phase of the kernel. Since in PRE_KERNEL_1 or PRE_KERNEL_2 the kernel primitives are unusable, the core will have to use a different method to wait for a reply to a message (i.e: polling). In POST_KERNEL, the scmi_send_message() function is notified that the reply has arrived via a binary semaphore. Also, since there's no concurrency in PRE_KERNEL_1 and PRE_KERNEL_2 phases there's really no need to use a mechanism to make sure only one protocol accesses a channel at a certain time.

Porting guide
Transport layer driver
To write a transport layer driver, you'll have to introduce a new compatible for the scmi node. After doing so, your driver will have to implement the operations from struct scmi_transport_api. All operations are mandatory except for init and request_channel (which will become mandatory if your transport layer driver doesn't support static channel allocation). The init function is basically the same as the init function you'd pass to macros such as DEVICE_DT_DEFINE and DEVICE_DT_INST_DEFINE. This, in turn, will be the first function called by scmi_core_transport_init().
After implementing the required transport operations, you'll have to call DT_INST_SCMI_TRANSPORT_DEFINE(), which is nothing more than a wrapper over DEVICE_DT_INST_DEFINE(). The reason for this is because the SCMI core needs to have its scmi_core_transport_init() function called when the transport layer driver is initialized to perform channel binding and setup for the protocols.
Protocol driver
This is relatively straightforward. All you have to do is call DT_INST_SCMI_PROTOCOL_DEFINE() in your driver as you'd normally with DEVICE_DT_INST_DEFINE and DEVICE_DT_DEFINE. For protocol drivers which don't really need to have a struct device created for it (like it's the case for pinctrl) there's also the DT_SCMI_PROTOCOL_DEFINE_NODEV variant. Note that using this variant also means you won't have an init function.
What the initial support brings to the table

Clock control operations: gating, ungating, and rate query
Pinctrl operations: pin configuration
Mailbox-based transport

What the initial support lacks

Support for notifications
Support for base protocol (and the other protocols not mentioned)
Support for delayed replies

TODOs

~This draft has no documentation. This will be addressed later on depending on the feedback of the community. The main point of this draft is to get some feedback on the design.~

V2 changes

fixed compliance failure
fixed some function prototype alignment issues signaled by checkpatch
addressed Daniel's initial comments. Mention: CONFIG_CLOCK_CONTROL_ARM_SCMI was added after CONFIG_CLOCK_CONTROL_ADSP in drivers/clock_control/CMakeLists.txt

@ithinuel can you provide some review support to this RFC?

BTW, I verified the pull request on i.MX95 both A core and M core. All worked fine.
Thanks.

V3 changes

Fixed compilation warning pointed out by @yangbolu1991 (thanks!)
Changed ARM_SCMI_TRANSPORT_INIT_PRIORITY to 20
Changed ARM_SCMI_SHMEM_INIT_PRIORITY to 15

The priority number changes should allow for a bit more leeway in cases where we need to update the init priorities of the dependencies.

PR has been out for a while now, dropping RFC tag.

V4 changes

addressed @JiafeiPan's comments

I think this needs to be presented to the architecture working group especially considering the impending clocks rework that has already been discussed multiple times in that forum
@carlescufi should the label be added?

Won't be able to join the Arch WG,  but I think the core question from me would be if SCMI will map well into the proposed clock management framework- from what I can tell setting/getting rates would map well, but I am not sure how well gating/ungating clocks would. Perhaps a clock is automatically gated if the rate is set to 0?

V5 changes

Drop usage of scmi_channel linker section. It's whole point was to allow for iterating through the SCMI channels but since we don't need this we can drop it. Channels are still placed in RAM.
Simplify channel binding code in scmi_core_protocol_setup.
Adjust help message of ARM_SCMI_TRANSPORT_HAS_STATIC_CHANNELS. Clearly state what the default static channel allocation scheme is.

For anyone interested we will be joining today's Architecture Group Meeting.
https://github.com/zephyrproject-rtos/zephyr/wiki/Architecture-Working-Group

@decsny @dleach02  looks like we need to update the docs because it is not enough just to add Architecture Review label you need to announce yourself on discord.
Will try to schedule the review for this for next Tuesday. Sorry guys :(

Arch wg notes:

Laurentiu presented the topic
@bjarki-andreasen and @fabiobaltieri asked about the location of this code drivers/firmware, this matches the Linux path drivers/firmware/arm_scmi
@fabiobaltieri asked about using devicetree entries for protocol definition, that is also matching how it's done in Linux

Here is the PR that adds Zephyr support for imx95 soc with M7 and a55 cores.
https://github.com/zephyrproject-rtos/zephyr/pull/74920
Example of the pinctrl scmi driver:

https://github.com/zephyrproject-rtos/zephyr/pull/74920/commits/320da60c6226334299e987cc50af84b2b24cfc7b

Example of how to describe the scmi node in dts:
https://github.com/zephyrproject-rtos/zephyr/pull/74920/commits/e6b8fbf7d1cb125c518b2de7d1be1de129a118de#diff-77b68905139384f01324b12bca383dec7671af1250c5d2f1ab1e0056412ef57bR41

V6 changes
dts/bindings/firmware/arm,scmi.yaml:

Clearly state that this binding is for shared memory and doorbell-based transport.
Add devicetree example
shmem, mboxes, and mbox-names are now all marked as required.
Add description for all properties

dts/bindings/firmware/arm,scmi-clock.yaml:

Add description for clock-cells property.

drivers/firmware/scmi/mailbox.h:

Add more BUILD_ASSERT-based statements for checking if channel properties are encoded properly in DTS.
TX channel mailbox is now fetched using _SCMI_MBOX_CHAN_DBELL (old way: using MBOX_DT_SPEC_GET directly).  This makes the error messages easier to read whenever users forget to add "tx" mbox (now it's just the failed build assert).

Misc:

PR has been split into 3 commits: core support, pinctrl, and clock management.
Rebased

And finally, a sample or other implementation showing in-tree usage of SCMI, specifically getting a struct device handle for the clock controller instance for example :) I heard there was a separate PR which did this, please add that as a commit to this PR so we get the whole picture :)

Very reasonable. The main concern I have with including https://github.com/zephyrproject-rtos/zephyr/pull/74920 in this PR is that it will make reviewing this harder as said PR doesn't contain just SCMI-related additions, but the whole platform support. Also, there's no changes to the way "struct device" for the clock controller is obtained for SCMI.
As for the sample: that would be good to have actually. My plan was to add a "hello world" sample using base protocol but this would require having a platform that uses SCMI. We do have https://github.com/zephyrproject-rtos/zephyr/pull/74920 but that depends on this PR.

V7 changes

Moved drivers/clock_control/CMakeLists.txt to commit introducing clock protocol support.
Changed commit message for commit introducing clock protocol support. Previously, it didn't mention anything about introducing clock controller driver and DT binding.

There are some files which belong to incorrect commits, like drivers/clock_control/CMakeLists.txt being changed in the first commit :)

thanks a lot! should be fixed now.

V8 changes
drivers/clock_control/Kconfig.arm_scmi:

Remove all select and depends on statements from CLOCK_CONTROL_ARM_SCMI except for the depends on ARM_SCMI_CLK_HELPERS statement. This is enough to assure that ARM_SCMI is selected and the clock protocol DT node is enabled.

Misc:

Add entry for scmi_protocol iterable section in common-ram.cmake.
Drop default n statements indicated by @bjarki-andreasen
Add configuration for shmem driver: CONFIG_ARM_SCMI_SHMEM. Additionally, handle dependency between the transport driver and the shmem driver via Kconfig depends on.

@bjarki-andreasen could you please take another look? Comments should be addressed now. Thanks!

This is missing very basic documentation

This is missing very basic documentation

@nashif do you have any suggestion where should we place the doc file? There is no clear file path that comes to our mind right now.

@dbaluta I will propose doc/hardware/arch/arm-scmi.rst

V9 changes

Add documentation page under doc/hardware/arch/arm-scmi.rst as suggested by @bjarki-andreasen.

@nashif @henrikbrixandersen @fabiobaltieri anything left to address? if not, can we proceed with merge?

I removed the arch meeting label, I don't think there is anything to discuss, should be ready merge now :)


Oauth links for tools opens in a electron browser rather than existing browser resulting in having to go thru the log in process (when I am already logged in)

Version - 0.10.0-rc2 (0.10.0-rc2)
Steps to reproduce the problem:

Create an assistant with outlook mail tool.
Chat with this tool.
When asked to follow the link to authenticate , notice that we are presented with "Sign In" page for Microsoft in an electron browser.

I have to go thru the process of getting authenticated again , when I am already authenticated in my existing chrome browser.
https://github.com/user-attachments/assets/ce9ede0a-ed43-4ac5-88f6-63f7662be69c
Expected Behavior:
Oauth link should be opened in my default chrome browser where I am already authenticated and dont have enter my credential again for oauth to succeed.

Tested with electron built with commit id -59351d72
Oauth link is now opened in my default chrome browser where I am already authenticated and I dont have to  enter my credential again for oauth to succeed.


UILink returns false for isVisible even if it is visible

@abhijit1234 Looking at the old commits in this PR, I think you might need to rebase.

Something wrong with my fork. Doing it afresh again.

Created a new PR https://github.com/ios-driver/ios-driver/pull/337


NOISSUE - Unify shared code between users and things (clients and groups)

What does this do?
Unify shared code between users and things services
Which issue(s) does this PR fix/relate to?
Resolves #1755
List any changes that modify/break current functionality
Nil
Have you included tests for your changes?
None
Did you document any new/modified functionality?
None
Notes

Remove these commits as they are already merged in clients

Rebase


Unparseable characters not rendered or detected

Per this reddit discussion we see that the following code will cause the Clojure compiler to throw an error:
 (defn r->lfix
  ([a op b] (op a b))
  ([a op1 b op2 c] (op1 a (op2 b c)))
  ([a op1 b op2 c op3 d] (op1 a (op2 b (op3 c d))))�)

However:

the unparseable character is not rendered when this code is pasted into Nightcode
Nightcode does not flag the line as syntactically invalid

The error is only caught when one attempts to compile the code.

I'll take a look at this, thank you for pointing it out.


add/remove orderer docs

Docs regarding the addition and removal of an orderer to/from existing cluster or channel.
Type of change

Documentation update

Related issues
Issue: #4332

This is a much needed addition. Before I do a detailed review, let me ask if you've seen the similar "Adding an Org to a Channel" tutorial - https://hyperledger-fabric.readthedocs.io/en/latest/channel_update_tutorial.html
"Adding an Org to a Channel" tutorial has been improved over time and has a good mix of conceptual explanation and tutorial instructions. It may make sense to use the same format and copy/paste some of the background information, and then extend/replace with your "adding a consenter" content. For example "Adding an Org to a Channel" tutorial assumes that the reader already has test network up and running, and then walks the reader through how to extend it, while your tutorial has them generate everything including for the 5th consenter and then bring up a new channel. Following the "Adding an Org to a Channel" tutorial approach may make more sense for an "adding" tutorial. Also it would be nice if the sections aligned to each other and similar wording was used. Although you may have deviated on purpose? Just wanted to get your initial thoughts on making these two tutorials similar in nature, or if you intentionally wanted it to be a little different.

I merged this, @denyeart please take a look and if you want to make changes, feel free to make a new PR

Hello @yacovm @denyeart @semil

I merged this, @denyeart please take a look and if you want to make changes, feel free to make a new PR

I'm been trying out the BFT samples in fabric-samples recently.
As part of this process, I also tried to add an orderer following the instructions in this document.
I didn't get a chance to comment on the recent pull request in time, but I've identified some areas from a user's perspective that might benefit from further improvements. I'll be submitting a new PR with these suggestions shortly.


4.10 Release Candidate

This PR is Ready for review.
Risk
This PR makes minor API changes.
Testing Plan
Full suite of smoke testing
Summary
Includes features, changes and bug fixes as defined by the SDLC for release 4.10
Bintray / Gradle:
(These will be updated if necessary for future changes)
Android: implementation 'com.smartdevicelink:sdl_android:RC2-4.10'
JavaSE:  implementation 'smartdevicelink:sdl_java_se:RC2-4.10'
JavaEE:  implementation 'smartdevicelink:sdl_java_ee:RC2-4.10'
Notes:
For those trying this, you will need to override one more method in SDLManager's SdlManagerListener:
@Override
public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language){
	return null;
}

CLA

[X] I have signed the CLA

Codecov Report

Merging #1205 into master will increase coverage by 0.32%.
The diff coverage is 35.9%.

@@             Coverage Diff             @@
##             master   #1205      +/-   ##
===========================================
+ Coverage     46.78%   47.1%   +0.32%
- Complexity     4001    4327     +326
===========================================
  Files           451     481      +30
  Lines         22118   23475    +1357
  Branches       2509    2683     +174
===========================================
+ Hits          10347   11057     +710
- Misses        11160   11750     +590
- Partials        611     668      +57

Impacted Files
Coverage Δ
Complexity Δ

...martdevicelink/proxy/rpc/enums/GlobalProperty.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...rtdevicelink/proxy/rpc/SoftButtonCapabilities.java
85.71% <ø> (+9.71%)
13 <0> (+3)
:arrow_up:

.../main/java/com/smartdevicelink/proxy/rpc/Show.java
100% <ø> (ø)
34 <0> (+6)
:arrow_up:

...m/smartdevicelink/proxy/rpc/PublishAppService.java
100% <ø> (ø)
5 <0> (ø)
:arrow_down:

...smartdevicelink/proxy/rpc/ShowAppMenuResponse.java
100% <ø> (ø)
3 <0> (?)

...a/com/smartdevicelink/proxy/rpc/OnVehicleData.java
94.44% <ø> (+0.15%)
62 <0> (+2)
:arrow_up:

.../com/smartdevicelink/proxy/rpc/PermissionItem.java
90% <ø> (+1.76%)
10 <0> (+2)
:arrow_up:

.../smartdevicelink/proxy/rpc/PerformInteraction.java
100% <ø> (ø)
23 <0> (+2)
:arrow_up:

...artdevicelink/proxy/rpc/enums/VehicleDataType.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...tdevicelink/proxy/rpc/enums/PredefinedWindows.java
100% <ø> (ø)
6 <0> (?)

... and 211 more

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 014401c...7147578. Read the comment docs.


Add DB schema and styleguide

Schema is in a mysqlworkbench format,

Ignore the CI fail, you probably branched off of the branch while it was broken.

Ah, I think it failed because my local version was behind and I forgot to update it


Use Attributes instead of Labels

Labels have been deprecated and even removed in the latest release of the OTLP proto. Use Attributes instead for compatibility with New Relic's backend.

 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.Jonathan Haapala seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[Suggestion] RFC 5256 - SORT command

It could be nice to implement the SORT command from the RFC 5256. Plus it's close to the SEARCH command, so it should not be that difficult to integrate.

I agree, that seems reasonable! Would be happy to take a look at a PR.

I agree, that seems reasonable! Would be happy to take a look at a PR.

It seems that the lib imap-proto does not have the parser for the SORT command, I opened an issue there.

Fixed by #180.

@jonhoo I integrated the v3.0.0-alpha.3 in my tool (mostly to use the sort cmd), and I saw some breaking changes. I noticed that the changelog is not up-to-date, would you like me to update it with the changes I noticed or you prefer to wait for the release v3.0.0 to list all the breaking changes?

That'd be great, thank you!

Yes, I recognized the format, I also use the same :wink:


Fix --pre workflow: missing setup to enable pyautogui usage on Linux

References and relevant issues
Failing workflow run pointing a missing .Xauthority file: https://github.com/napari/napari/actions/runs/8155927521/job/22292469324#step:7:212
Caused due to #6406
Description
Add missing .Xauthority file creation step on the --pre Test workflow definition when running on Linux

I'm curious if this could be accomplished in inside your tests, such as inside of your conftest before any imports of pyautogui, rather than as a specific environment setup in your CI.
I ask because, as a courtesy, I run napari tests in a number of my packages on which napari depends.  I'm seeing this error in now (superqt was the first place i saw it), and i would now have to update all of my workflows to add touch /home/runner/.Xauthority ... whereas, if you did it inside of your test setup it would only need to be done in one place

I'm curious if this could be accomplished in inside your tests, such as inside of your conftest before any imports of pyautogui, rather than as a specific environment setup in your CI.

That makes sense! Thank you for doing https://github.com/napari/napari/pull/6719 !


members of dll interface classes may not be declared with dll interface

What the heck is going on here? You mean we dont need to put _DECL in front of everything? What does this mean for MrDox and all the other libs?

What the heck is going on here?

Now that the matrix is more complete and I see errors from other compilers, I noticed a lot of what we had was simply wrong. Many classes didn't even have BOOST_URL_DECL and the tests weren't catching it. In a way, mingw was very helpful because it's very strict about symbols.
I had a look at the boost.config documentation again, replicated patterns from other libraries, and kept fixing everything that one of the compilers considered an error until I got to this implementation.

You mean we dont need to put _DECL in front of everything?

Yes. "members of dll interface class may not be declared with dll interface" is literally a compile error message.

What does this mean for MrDox and all the other libs?

I don't know if there's a specific recommendation. I just kept testing it and fixing what was wrong according to one of the compilers. We just have to keep doing it for other libraries.

TIL


Using request makes this only available in Node

We should use an AJAX library that works both in node and the browser.
http://andrewhfarmer.com/ajax-libraries/

I'm not sure what you mean when you say request works only in node. I believe it's browserify/webpack/other compatible. Is there another reason?

It can transpile with the browserify and webpack. The issue is that when you the import/require request on the client, it then tries to import tls, net, and other packages that aren't available on the browser since they are only part of the Node API. While Webpack creates the link between these packages, it doesn't make native node packages available on a browser - you would still need to polyfill them (if even possible for the ones that request uses). My suggestion is that embed-video use a library where this isn't an issue.

Since the module is primarily aimed at use in the browser I think it would be best to use https://github.com/qubyte/fetch-ponyfill so that eventually we can remove the dependency (in browsers) when all browsers support the fetch API.

Let me know if the update in the PR works

yes, this script simply doesn't work in browser now, this update needed


Is there any difference between LSP-vue and LSP-volar?

Is there any difference between these two plugins?

LSP-vue is badly named (mistakes were made early on). It's actually supposed to be called LSP-vetur.
If you know the difference between Vetur and Volar then this should make more sense.
If you don't know the difference then the gist is:

Vetur is no longer maintained, has issues with latest typescript versions and is generally not recommended. *
Volar is actively maintained and generally the way to go but due to fast development pace and lack of proper testing, you should expect some things to break now and then (as they often did for me).

If you are intending to use those with Vue 2 then Vetur might still be a more stable option. Volar is getting up there though and 1.x.x versions are quite good already (there is a PR to update to 1.x but it's not yet merge).


Rendering channel specific rich responses

Facebook channel has it's own set of rich responses like Generic template, Media template etc. These cannot be rendered using the templates we have in LG. Currently I'm able to render media template using the format of the Animation card in the following way. Is this the right way to do this.

If not could you please specify a way by which we can render channel specific rich responses using LG files

And what is the mapping of the existing templates in LG to the Facebook templates? (eg: we are able to render Generic template for Facebook channel using template of Hero card)

@vishwacsena @Danieladu , that was really helpful. We followed the second way as our requirement was to render generic templates and web view in facebook channel.I was able to achieve this by posting the channel data as mentioned

@vishwacsena @Danieladu , that was really helpful. We followed the second way as our requirement was to render generic templates and web view in facebook channel.I was able to achieve this by posting the channel data as mentioned below.
`#messageBody()
[Activity
ChannelData=@{json(channelData())}
]
#channelData()
-```
{
"attachment": {
"type": "template",
"payload": {
"template_type": "generic",
"elements": [
{
"title": "Heyyy",
"subtitle": "This is a sub title.",
"image_url": "<image_url>,
"buttons": [
{
"type": "web_url",
"url": "https://www.amazon.ae",
"title": "Lihat detail",
"messenger_extensions": "true",
"webview_height_ratio": "tall"
}
]
}
]
}
}
}
#bfdactivity-010683()
- @{messageBody()}`

@Danieladu In this #2618 they gave data statically in LG but In my scenario, I'm storing JSON value in a property and trying to send it to the ChannelData, It's not working but if I store JSON value in LG property and send it to the ChannelData it's working fine. What would be the issue here?
This is the property I'm storing JSON dialog.response.content
This is the process I'm passing JSON to the ChannelData
#bfdactivity_387808()
[Activity
ChannelData=${dialog.response.content}
]
#bfdactivity_387808()
[Activity
ChannelData=${josn(dialog.response.content)}
]

@Danieladu In this #2618 they gave data statically in LG but In my scenario, I'm storing JSON value in a property and trying to send it to the ChannelData, It's not working but if I store JSON value in LG property and send it to the ChannelData it's working fine. What would be the issue here?
This is the property I'm storing json  dialog.response.content
This is the process I'm passing JSON to the ChannelData
Below scenarios I have tried.
#bfdactivity_387808()
[Activity
ChannelData=${dialog.response.content}
]

#bfdactivity_387808()
[Activity
ChannelData=${josn(dialog.response.content)}
]

#TemplateJson()
-${dialog.response.content}
#DisplayTemplate
[Activity
ChannelData=${TemplateJson()}
]

#TemplateJson()
-${json(dialog.response.content)}
#DisplayTemplate
[Activity
ChannelData=${TemplateJson()}
]

#TemplateJson()
-${dialog.response.content}
#DisplayTemplate
[Activity
ChannelData=${json(TemplateJson())}
]


Support Alpine Linux

All of our native dependencies need to also be updated to support musl instead of glibc.

https://github.com/aspnet/libuv-package/issues/23
https://github.com/ericsink/SQLitePCL.raw/issues/192

We also need to generate an aspnetcore-runtime tarball for Alpine.

[x] Upgrade SQLitePclRaw
[ ] Upgrade libuv
[ ]  Add functional tests for Alpine
[ ]  Update CI to produce an Alpine configuration
[ ]  Update dotnet/CLI to consume

SQLLitePCL.raw seems to be ready.  libuv-package task is assigned to @natemcmaster.
@glennc You had some concerns about this. Could you elaborate?  Tentatively putting this in the milestone so that we don't lose track of it.

I believe @bricelam is currently assigned to pull in a new SQLitePCL.raw package for a separate reason. We can use https://github.com/aspnet/EntityFrameworkCore/issues/10724 to track that update.

I've been poking at this for the last few days. The biggest challenge to implementing this at the moment is crossgen-ing the shared framework. This is difficult because

Installing dotnet via dotnet-install.sh into Alpine doesn't work yet. https://github.com/dotnet/cli/issues/8738 We can workaround for now by using curl/tar.
MSBuild cannot compile a .csproj inside an Alpine container. https://github.com/Microsoft/msbuild/issues/3066
You can't run crossgen for Alpine on an Ubuntu machine because Ubuntu does not support the required libraries for musl-libc.

So, options:

Skip crossgen for now on Alpine Linux. (@DamianEdwards is this acceptable for a preview?)
Run crossgen without MSBuild. We could write MSBuild targets that generate shell scripts, but this must execute on an Ubuntu or Windows agent. Then, copy those scripts and files so crossgen can run inside a Docker container. (cc @JunTaoLuo )

How are they doing it for MS.NETCore.App?

As far as I can tell, they are able to run the entire build inside an Alpine container. It's possible they are using a version of MSbuild that doesn't have this RAR bug: Microsoft/msbuild#3066 or that they don't compile any .csproj files in their build (that seems unlikely)

I'm going to mark this as blocked for now on https://github.com/Microsoft/msbuild/issues/3066. It seems like https://github.com/Microsoft/msbuild/issues/3066 is critical enough (you can't even compile dotnet new console in Alpine) 🤞 it should get fixed.

Unblocked. Found workarounds for now. It turns out MSBuild does not like .NET Core's invariant mode on Alpine :(. That can be worked around by installing libicu in the docker container.

@natemcmaster will that be in the .NET image as well, or just ours?

For now, it's a workaround so we can build the shared framework. It may not be necessary to use the shared framework.
Setting invariant mode by default in the microsoft/aspnetcore docker image is a separate question we should address with Rich, Michael, and Glenn. At the moment, I'm inclined to give invariant mode a shot so we can figure out what the problems will be. But it may not be a sensible default for customers.

So, I looked at this myself. To disable invariant mode, a users needs to add this to their dockerfile.
RUN apk add --no-cache icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT false
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8

icu-libs adds 30.4 MB to the image.

Nightly builds for Alpine should be available on Docker Hub soon. https://github.com/aspnet/aspnet-docker/pull/390
Closing as remaining work listed in item description was punted to 2.2.0. Using aspnet/libuv-package#23 to track that.


Save to Mysql instead of zip file download

how to connect this with mysql or json ?
thnx

That is not supported out of the box. My team can research the possibilites for you. Contact me at<EMAIL_ADDRESS>for more information and pricing.

Ok Thnx for reply
i will email you
Thanks


Is there a clean way to validate the gameobject or its context as a whole?

I'm trying to show an error when the canvas doesn't have texcoord1 enabled. This is what I currently do:
        [ValidateInput(nameof(HasValidTexCoord1), "Not attached to a canvas with a valid TEXCOORD1 channel")]
        [HideIf(nameof(HasValidTexCoord1))]
        [SerializeField] private bool dummy;

        private bool HasValidTexCoord1()
        {
            var g = graphic;
            if (g == null) return false;
            var canvas = g.canvas;
            return canvas != null && (canvas.additionalShaderChannels & AdditionalCanvasShaderChannels.TexCoord1) != 0;
        }

But it shows an unneccessary dummy field, and there's a lot of boilerplate, wondering if there is a cleaner/simpler way I've overlooked?

You can use Unity's OnValidate for that


Remember last project per service/url

What does this PR do?
This adds a new option to the settings page:
Remember last project per service/url
How to test it
Try the option out. It should:

Remember the last project used for said service (eg. github) or url
If it's the same as default project from settings, use that one
When changing the option, should wipe the mapping

Closes #210

Comments adressed:

removed :
Added comments
Now tracking only when any default project is set. (yeah, I thought it was a bit odd to be tracking pids, but didn't want to change it.)


fuzz.partial_ratio - get some indicator to differentiate between an exact match and a partial match

Query = "boy"

Sentence1 = "boycott them"
Sentence2 = "It's a boy"

fuzz.partial_ratio(Query, Sentence1)
>> 100.0

fuzz.partial_ratio(Query, Sentence2)
>> 100.0

@maxbachmann Is it possible to know an exact match (Sentence2) different from a partial match (Sentence1) while using fuzz.partial_ratio?

fuzz.partial_ratio does not allow differentiating an exact match of a word from a partial match. It is however possible to split the sentences into words before matching:
>>> fuzz.partial_ratio(Query.split(), Sentence1.split())
0.0
>>> fuzz.partial_ratio(Query.split(), Sentence2.split())
100.0
>>>


[ZEPPELIN-2014] Jetty Directory Listing on app, assets, components, and scripts

What is this PR for?
Added property for enable/disable public access to directories on server from Web
What type of PR is it?
[Bug Fix]
What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2014
How should this be tested?
Run application and try get list of files in app directory from web.
You will see a response with the code 403. Previously, we saw all files in the directory.
Change property "zeppelin.server.default.dir.allowed" to true and restart server.
Try again, all files should be visible.
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? Yes

Tested and working expectably.
Thank you for contributing but Could you make the CI as green?

Build failed because some tests failed:
Tests in error:
InterpreterRestApiTest.testRestartInterpreterPerNote:303 NullPointer
For this test already exist task: https://issues.apache.org/jira/browse/ZEPPELIN-1856
ParagraphActionsIT.testClearOutputButton:274->AbstractZeppelinIT.waitForParagraph:68->AbstractZeppelinIT.pollingWait:94 » Timeout
Task for this test:	https://issues.apache.org/jira/browse/ZEPPELIN-1073
ZeppelinIT.testSparkInterpreterDependencyLoading:234->AbstractZeppelinIT.waitForParagraph:68->AbstractZeppelinIT.pollingWait:94 » Timeout
And for this test: https://issues.apache.org/jira/browse/ZEPPELIN-1797
During last build all tests passed, but build failed because "The job exceeded the maximum time limit for jobs, and has been terminated."

@vboginskii Thanks for the contribution. LGTM and merge to master if no further comments.


add log in button to trading form when logged out

https://app.clubhouse.io/augur/story/13711/log-in-to-trade-on-trading-page-should-redirect-to-account-page-to-login

Coverage remained the same at 66.802% when pulling 172fb8d86e221617e320b40d5e9fe1389307b7bb on mattbullock/ch13711/log-in-to-trade-on-trading-page-should-redirect into 04879770b251df1cf144d2ef58f962d185781a76 on master.


stat:ROC has a wrong result when  the span in y is not consistent with that in cutoffs

What are you trying to do?
package main
import (
"fmt"
"gonum.org/v1/gonum/stat"
"math"
)
func main() {
y := []float64{0.1, 0.35, 0.4, 0.8}
c := []bool{true, false, true, false}
cutoffs := []float64{math.Inf(-1), 0.1, 0.36, 0.8}

tpr, fpr, thresh := stat.ROC(cutoffs, y, c, nil)
fmt.Printf("true  positive rate: %v\n", tpr)
fmt.Printf("false positive rate: %v\n", fpr)
fmt.Printf("thresh: %v\n", thresh)

}
What did you do?

What did you expect to happen?
true  positive rate: [0 0 0.5 1]
false positive rate: [0 0.5 0.5 1]
thresh: [+Inf 0.8 0.36 0.1]
What actually happened?
true  positive rate: [0 0.5 0.5 1]
false positive rate: [0 0.5 1 1]
thresh: [+Inf 0.8 0.36 0.1]
What version of Go and Gonum are you using?

go version
go version go1.15.6 windows/amd64
rg gonum.org/v1/gonum go.sum
18:gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
Does this issue reproduce with the current master?
require gonum.org/v1/gonum v0.8.2

I suggest that we do not use the inverse of cutoffs, but use the meaning of <= directly.

Or cancel the parameter cutoff, that is, it always equals nil.

Please explain with more detail why you think this is wrong and why your suggestion is appropriate; this bug is very terse.

/cc @Armadilloa16

I can confirm I've reproduced this bug, and that it is a bug --- output is incorrect.
I had a look through the src and I'm not sure what's causing it. The codes been re-written a few times as well, I'd suggest it could be re-written to be more readable which might make debugging easier. I can have a go at this if that's desirable.

But basically what I'm saying is I agree --- we should not use the inverse of cutoffs, and should calculate the output directly rather than transforming afterwards.

If you have time to do that, that would be good. Also note #1558.

According to the src of ROC, the reverse of a<b<c<d  is a>d>c>b, the first part replaced by +inf. The value P of count(y<=c) is corresponding to len(y)-P of count(y>c). In some case, count(y>c) is equals to count(y>=d), but not always. Notice that len(y)-P goes from penultimate to second.

Closed by #1561.


[Q] Listing services is slow. Is this expected?

I've been running a few commands and they all seem REALLY slow.  Is this to be expected, or is there possibly something wrong with my configuration? It took several minutes for sc list group:all to complete.

Just to add to this, I just used start for the first time and it is very slow as well.

Oof. No, this amount of time is not expected. This is especially true for non-operative commands like sc list. All sc list is doing is reading the configuration files.
For comparison, on my development system, sc list group:all takes under 2s. Even a more complex operation, like sc check all takes less than 4 seconds.
One might ask if your system is underpowered, but even then it's hard to explain this magnitude of difference!
Maybe there's something wrong with Java itself (environmental or otherwise). How long does an invocation of /QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -version take?

I have to agree with @ThePrez sc list group:all returns very quickly

That would appear to be the problem.  It is taking Java a LONG time just to return a version.

It is slow via SSH, but I just tried it from QP2TERM and it was fast.
I may have an idea of what the issue is, but I will have to wait until tomorrow to verify I have it resolved.  Can't just shut down SSH in the middle of the day, unfortunately.

Are you going through a VPN for your SSH?  Are you connecting via IP or a DNS name?  Are the DNS servers reachable?  Just general networking problem handling I would start with.
HTH.

Still grasping at straws, a couple more questions:

Do other things run ok from an SSH terminal?
Are you by chance running with X11 enabled? Does /QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -Djava.awt.headless=true -version run any faster?
What is the maximum jobs setting for the SBSD? Any chance you're running close to it?
🤷♂

@mattlavinder , my curiosity remains piqued regarding this issue. Have you gotten any findings since last update?
Also, curious if /QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -version is equally slow.
I did encounter a system where Java startups were incredibly slow (still not several minutes!!) and it was somehow related to an egregious amount of temporary storage in use by the system. Perhaps related (?)

i have the same problem , java 11 is very slow !!  ( on SSH  terminal , but is slow on QSH too  )
`start=$(date +%s)
/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -version
end=$(date +%s)
echo "Elapsed Time java8 : $(($end-$start)) seconds"
start=$(date +%s)
/QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -version
end=$(date +%s)
echo "Elapsed Time java11 : $(($end-$start)) seconds"`
qsecofr@A4:~# ./test.sh java version "1.8.0_341" Java(TM) SE Runtime Environment (build <IP_ADDRESS> - pap6480sr7fp15-20220728_01(SR7 FP15)) IBM J9 VM (build 2.9, JRE 1.8.0 OS/400 ppc64-64-Bit Compressed References 20220713_32322 (JIT enabled, AOT enabled) OpenJ9   - 95866f0 OMR      - a79eb1a IBM      - 7175f82) JCL - 20220727_01 based on Oracle jdk8u341-b10 Elapsed Time java8 : 1 seconds openjdk version "11.0.14-ea" 2022-01-18 OpenJDK Runtime Environment (build 11.0.14-ea+9) Eclipse OpenJ9 VM (build openj9-0.30.0, JRE 11 OS400 ppc64-64-Bit Compressed References 20220209_53 (JIT enabled, AOT enabled) OpenJ9   - 9dccbe0 OMR      - dac962a JCL      - 01f8665 based on jdk-11.0.14+9) Elapsed Time java11 : 41 seconds

@openmax thanks for reporting. I'd really like to get to the bottom of this. Do you have JV1 option 19 installed? If so, does it also exhibit this slowness?
Also, do the values compare badly when -Xmx is specified for both invocations? For instance:
#!/QOpenSys/pkgs/bin/bash
start=$(date +%s)
/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -Xmx80m -version
end=$(date +%s)
echo "Elapsed Time java8 : $(($end-$start)) seconds"

start=$(date +%s)
/QOpenSys/pkgs/lib/jvm/openjdk-11/bin/java -Xmx80m -version
end=$(date +%s)
echo "Elapsed Time java11 : $(($end-$start)) seconds"

oh yea -Xmx80m solve the slowness ..
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build <IP_ADDRESS> - pap6480sr7fp15-20220728_01(SR7 FP15))
IBM J9 VM (build 2.9, JRE 1.8.0 OS/400 ppc64-64-Bit Compressed References 20220713_32322 (JIT enabled, AOT enabled)
OpenJ9   - 95866f0
OMR      - a79eb1a
IBM      - 7175f82)
JCL - 20220727_01 based on Oracle jdk8u341-b10
Elapsed Time java8 : 1 seconds
openjdk version "11.0.14-ea" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14-ea+9)
Eclipse OpenJ9 VM (build openj9-0.30.0, JRE 11 OS400 ppc64-64-Bit Compressed References 20220209_53 (JIT enabled, AOT enabled)
OpenJ9   - 9dccbe0
OMR      - dac962a
JCL      - 01f8665 based on jdk-11.0.14+9)
Elapsed Time java11 : 0 seconds

need time to install jv1 19 and ptf  , when ready i try ..

without -Xmx80m  java8 e 11 of 5770jv1 good , java11 rpm pase no good :
'''
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build <IP_ADDRESS> - pap6480sr7fp15-20220728_01(SR7 FP15))
IBM J9 VM (build 2.9, JRE 1.8.0 OS/400 ppc64-64-Bit Compressed References 20220713_32322 (JIT enabled, AOT enabled)
OpenJ9   - 95866f0
OMR      - a79eb1a
IBM      - 7175f82)
JCL - 20220727_01 based on Oracle jdk8u341-b10
Elapsed Time java8 : 2 seconds
java version "<IP_ADDRESS>" 2022-08-12
IBM Semeru Runtime Certified Edition (build <IP_ADDRESS>+1)
Eclipse OpenJ9 VM (build openj9-0.33.1, JRE 11 OS/400 ppc64-64-Bit Compressed References 20220908_000000 (JIT enabled, AOT enabled)
OpenJ9   - 1d9d168
OMR      - b58aa27
JCL      - 25404e5 based on jdk-<IP_ADDRESS>+1)
Elapsed Time java8 : 3 seconds
openjdk version "11.0.14-ea" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14-ea+9)
Eclipse OpenJ9 VM (build openj9-0.30.0, JRE 11 OS400 ppc64-64-Bit Compressed References 20220209_53 (JIT enabled, AOT enabled)
OpenJ9   - 9dccbe0
OMR      - dac962a
JCL      - 01f8665 based on jdk-11.0.14+9)
Elapsed Time java11 : 43 seconds
'''

as workaround i use :
export OPENJ9_JAVA_OPTIONS="-Xmx3584m"
in my /home//.bashrc
3584 is the max value after that it slow down ..
( 3584 / 1024 = 3.5 )
it look like a 32bit limit ?

@openmax I think you're really onto something. Slow Java startups are somehow related to max heap usage. I'll raise the issue with the IBM Java team in charge of OpenJDK.
Regardless, changing sc to always run with an -Xmx2G is probably a good change either way.

Honestly, -Xmx1G is probably more than enough


Add primary associated types

Apple's official Combine framework also implemented primary associated types feature introduced in swift 5.7.
https://developer.apple.com/documentation/combine/connectablepublisher
https://developer.apple.com/documentation/combine/publisher
https://developer.apple.com/documentation/combine/subscriber
https://developer.apple.com/documentation/combine/subject
https://developer.apple.com/documentation/combine/scheduler
so I changed ConnectablePublisher, Publisher, Subscriber, Subject, Scheduler to support primary associated types as well.

Should we add a Unit Test file for this feature in case somebody accidentally delete it?
For example:
import XCTest

#if swift(>=5.7)

#if OPENCOMBINE_COMPATIBILITY_TEST
import Combine
@available(macOS 10.15, iOS 13.0, *)
private typealias Published = Combine.Published
@available(macOS 10.15, iOS 13.0, *)
private typealias ObservableObject = Combine.ObservableObject
#else
import OpenCombine
private typealias Published = OpenCombine.Published
private typealias ObservableObject = OpenCombine.ObservableObject
#endif
@available(macOS 10.15, iOS 13.0, *)
final class PrimaryAssociatedTypeTests: XCTestCase {
    func testCombinePrimaryAssociatedTypes() {
        let p1: some Publisher<Int, Error> = Empty()
  		...
	}
}

Ok sure.

I'll merge it as soon as I fix the failing compatibility tests.
https://github.com/OpenCombine/OpenCombine/issues/237#issuecomment-1318935543

Sorry to bother you. Is there any progress on this PR? @broadwaylamb

I also interested in this PR. But do we really need check for swift version?
First of all - there are tags, do we need support in older swift version? People just can ference older point in time, if they need stopped on swift 5.5 compiler, for example.
Second, it will make simplerto maintain, with only one implementation.
Am I missing anything?
I think it worth just implement primary associated types and remove swift version checks.

Because swift-tools-version in Package.swift is 5.5, so I think maybe we should also support Swift 5.5 as well.
Or we could bump the swift-tools-version to 5.7 and remove those version checks.

Tbh, I would prefer version bump in package. It will really simplify support. Less code is always better

Support for primary associated types has been merged to master in #239. I've also published a new release. Thank you!


Do we want a stable tag?

Now that #348  is merged..
What would you like to be added?
Add stable-${major version}-${arch} where arch is amd64, arm64 and ppc64le.
How?
We need to change deployments imagePullPolicy to make this work. I don't know if that's appealing..
We can extract major version number from docker meta to create the image tag.
        name: Docker meta
        id: docker_meta
        uses: crazy-max/ghaction-docker-meta@v1
        with:
          images: name/app
          tag-semver: |
            {{major}}

What is the use case for this feature / enhancement?
Allow consumers to consume latest major version updates without updating their yamls. May aid automated testing infra.
Images we produce today

Tag
Arch
Description

latest
x86
Latest commit

latest-amd64
x86
Latest commit

${GitHub SHA}
x86
Git commit e.g "sha256:540af56cbd92b2dfdaea5bac3c44a6f46a277f0dbed000a0993d116fc377f332"

${GitHub tag}
x86
GitHub Release tag e.g "v1.0"

latest-arm64
arm
Latest commit

${GitHub tag}-arm64
arm
GitHub Release tag e.g "v1.0-arm64"

latest-ppc64le
power
Latest commit

${GitHub tag}-ppc64le
power
GitHub Release tag e.g "v1.0-ppc64le"

This was discussed in K8s NPWG network & resource mgmt meeting on 08.10.2021. this enhancement proposal is approved.
documentation should be added as well, explaining the nature of the stable tag.
while it might be relevant for dev deployments and CI/testing, it will not be suitable for production.
while updating documentation it would also be great to document the images we are creating as depicted in this issue.

@martinkennelly @adrianchiris  do we know anyone who is working on this proposal?

No.
@ipatrykx  anyone on your side?


Problem with multiaxis

I have a problem using Apex with a connection to Blazor. When I add two Y-axes, one has Min,Max in the range of -20000 to 20000 and the other has 0 to 100, then the series from 0-100 is spreading on the graph, can this be fixed somehow? Is configuring something wrong ? I send two pictures and code with settings

code.zip

Hi,
Have you checked the samples, https://apexcharts.github.io/Blazor-ApexCharts/features/axis

Clean up


Minor documentation fixes for yaml_edit

Minor typo fixes + line width adhering + documentation reference fixes.

@walnutdust, should we do a patch release after this? Feel free to file a follow up PR that bumps the patch version and adds an entry to the CHANGELOG.md

hm but the typo fixes do nothing for the features - does this still require a patch release?


Navbar with a nice logo

A basic navbar has been added. A mono font is being used as a logo right now.


Add support for configuring the EgressSelector mode

Proposed Changes
Add support for server configuration flag --egress-selector-mode to configure the apiserver egress selector configuration:

disabled: The apiserver does not use agent tunnels to communicate with nodes. This mode requires that servers run agents, and have direct connectivity to the kubelet on agents, or the apiserver will not be able to access service endpoints or perform kubectl exec and kubectl logs.
This is the historical default for RKE2
agent: The apiserver uses agent tunnels to communicate with nodes. Nodes allow the tunnel connection if it is to a loopback address. This is mode requires that servers also run agents, or the apiserver will not be able to access service endpoints.
This is the historical default for k3s.
pod (default): The apiserver uses agent tunnels to communicate with nodes and service endpoints, routing endpoint connections to the correct agent by watching Nodes. Nodes allow the tunnel connection if it is to a loopback address, or a CIDR assigned to their node.
NOTE: This will not work when using a CNI that uses its own IPAM and does not respect the node's PodCIDR allocation. cluster should be used with these CNIs instead.
cluster: The apiserver uses agent tunnels to communicate with nodes and service endpoints, routing endpoint connections to the correct agent by watching Endpoints. Nodes allow the tunnel connection if it is to a loopback address, or the configured cluster CIDR range.
This is marginally less secure and less efficient than pod mode.

Types of Changes
bugfix
Verification
Normal QA checks
Validate in RKE2 with Calico
Linked Issues

https://github.com/rancher/rke2/issues/2930

User-Facing Change

The integrated apiserver network proxy's operational mode can now be set with `--egress-selector-mode`.

Further Comments

Will need a docs update.

Sonobuoy flaked; merging.