How to create an array of Objects?

Its possible to create the folowing structure?
Using something like jsonObject["objects"]["object"]
{
    "objects": [
      {
        "object": {
          "address": "xxx"
        }},
      {
        "object": {
          "address": "xxx"
        }},
      {
        "object": {
          "address": "xxx"
        }}]
}

Yes, please have a look at the documentation: https://github.com/nlohmann/json#json-as-first-class-data-type

auto j = {
    { "objects" , {
        { "object" , {
            { "address", "adr1" },
        }, },
        { "object" , {
            { "address", "adr2" },
        }, },
        { "object" , {
            { "address", "adr3" },
        }, },
    },
};

Thanks @nlohmann
@fnc12 I'm trying to do something like this :
json JsonObjects = json::array();
	for (int i = 0; i <= 5; i++)
	{
		JsonObjects.append(JsonObject)
	}

Yes. Just like std::vector
auto jsonObjects = json::array();
for(auto i = 0; i <= 5; ++i) {
    jsonObjects.push_back(json::object());
}

Of course - it uses (more or less) the same API as std::vector, so you can use push_back. See https://nlohmann.github.io/json/ for an overview.

Thanks everyone.
Got it.

Excellent.  Would it be common enough to get mentioned in the main README doc?  Would have helped me I know.  Thanks nlohmann, love the class.

Yes. Just like std::vector
auto jsonObjects = json::array();
for(auto i = 0; i <= 5; ++i) {
    jsonObjects.push_back(json::object());
}

hi I am new to C++ and I am trying to achieve the same thing here.
Can anyone provide sample code for this problem?
Thank you in advance.

Can you please tell how to iterate over this type of json array ?
{
"objects": [
{
"object": {
"address": "xxx"
}},
{
"object": {
"address": "xxx"
}},
{
"object": {
"address": "xxx"
}}]
}

// assuming you parse the JSON above to variable j

for (const auto& element : j["objects"])
{
    std::cout << element << std::endl;
}

This should output
{"object":{"address":"xxx"}}
{"object":{"address":"xxx"}}
{"object":{"address":"xxx"}}

Inside the loop, you can access the other elements with
element["object"]["address"]

Thanks!

Hi,
I'm having some trouble trying to access an element of an array of object. The Json look like this:
{
"parentX":
    {
        "key1": "value1",
        "key2": "value2",
        "list":
        [
        {"0":{"keyA":"valueA"}}
        {"1":{"keyB":"valueB"}}
        ]
    }
"parentX":
    {
        "key1": "value1",
        "key2": "value2",
        "list":
        [
        {"0":{"keyA":"valueA"}}
        {"1":{"keyB":"valueB"}}
        ]
    }
}

Now I would like to accessand modify a specific element of "list" but I can't figure out how to do it.
I tried:
json["parentX"]["list"]["0"]["keyA"]

json["parentX"]["list"].at("0")["keyA"]

but they crash and probably I have misunderstood the documentation.
I'm doing correctly or is there another way to perform such operation?

The example you posted ins not valid JSON - there are commas missing. However, if you pass strings to operator[] or at(), an object is assumed. This should be the description of the exception that you should be getting. To access elements of arrays, pass numbers. For instance, json["parentX"]["list"][0] accessed the first element of the JSON array at json["parentX"]["list"].

Thanks for the fast answer, and you are right, the Json was not valid as written but I just wrote it by hand to give an overview of what I was doing (I edited, should be fine now).
In the begin my objective was to access a specific element in an array, which I'm sure is present but I don't know the position, by using the underlying search/find features (like those used by  operator[] or at() ) without scanning whole array, for both code clearness and possible performance issues. In my case the array is used as a circular buffer/FIFO, with parameterized size, so it can eventually grow.
In the end I realized that what I was trying is not possible so find out some option:

Using find() but I'm not sure is recursive (by trying seems not working the way I'm using it):

auto elementX = json["parentX"].find("0");
*elementX["keyA"] = "new_value";

auto elementY = json["parentY"].find("0");
*elementY["keyA"] = "new_value";

Using a for cicle scanning the whole array:

// 1
for (const auto& element : json["parentX"]["list"])
{
    // Have to check the key somehow and then access the value
    std::cout << element << std::endl;
}

// 2
for (auto it = json["parentX"]["list"].begin(); it !=json["parentX"]["list"].end(); ++it)
{
    std::cout << it.key() << " | " << it.value() << "\n";
}

// 3
for ( auto it:  json["parentX"]["list"].items() )
{
    std::cout << it.key() << " | " << it.value() << "\n";
}

But from information gatered seems I should scan the array twice, first time to find the position comparing the key, then again to modify the value.
Still testing, as soon as I find the solution I will post it.

I've got what I was doing wrong and for sure I have to learn/deal more about APIs return values and how they work.
That is the solution to my problem:
for (auto& element :  json["parentX"]["list"])
{
    if(element.contains("0")==true)
    {
        element.at("0")["keyA"] = "newValue";
        break;
    }
}

maybe there is a clean/better way to it because it seems a little bit ugly to me.
In my humble opinion the operator[] should also works on array when a string is passed hiding this search if feasible.


Some of the problems

Hi, blogger, I am very glad to read your article, but I have some problems when running the code, I would like to ask you for help, the following picture is the problem I met, I look forward to your advice, thank you very much!

Can you please post the original text of the error message? The screenshot doesn't contain the entire backtrace, so it's hard to tell what the issue is.

Ok, thank you very much.
The error it prompts is：
TypeError                                 Traceback (most recent call last)
 in
11         if tutor_name.startswith('RL'):
12           agent = build_tutor(n_items)
---> 13           R[k, i, :, j] = agent.train(rl_env, n_eps=n_eps)
14         else:
15           if 'Thresh' in tutor_name:
 in train(self, gym_env, n_eps)
9     policy = CategoricalGRUPolicy(
10             env_spec=env.spec, hidden_dim=32,
---> 11             state_include_action=False)
12     self.raw_policy = LoggedTRPO(
13         env=env,
E:\Anaconda\lib\site-packages\rllab\policies\categorical_gru_policy.py in init(self, env_spec, hidden_dim, feature_network, state_include_action, hidden_nonlinearity)
72             hidden_nonlinearity=hidden_nonlinearity,
73             output_nonlinearity=TT.nnet.softmax,
---> 74             name="prob_network"
75         )
76
E:\Anaconda\lib\site-packages\rllab\core\network.py in init(self, input_shape, output_dim, hidden_dim, hidden_nonlinearity, output_nonlinearity, name, input_var, input_layer)
226             nonlinearity=output_nonlinearity,
227             W=l_output_flat.W,
--> 228             b=l_output_flat.b,
229         )
230
E:\Anaconda\lib\site-packages\lasagne\layers\dense.py in init(self, incoming, num_units, W, b, nonlinearity, **kwargs)
62                  b=init.Constant(0.), nonlinearity=nonlinearities.rectify,
63                  **kwargs):
---> 64         super(DenseLayer, self).init(incoming, **kwargs)
65         self.nonlinearity = (nonlinearities.identity if nonlinearity is None
66                              else nonlinearity)
E:\Anaconda\lib\site-packages\lasagne\layers\base.py in init(self, incoming, name)
42         self.params = OrderedDict()
43
---> 44         if any(d is not None and d <= 0 for d in self.input_shape):
45             raise ValueError((
46                 "Cannot create Layer with a non-positive input_shape "：
E:\Anaconda\lib\site-packages\lasagne\layers\base.py in (.0)
42         self.params = OrderedDict()
43
---> 44         if any(d is not None and d <= 0 for d in self.input_shape):
45             raise ValueError((
46                 "Cannot create Layer with a non-positive input_shape "
TypeError: '<=' not supported between instances of 'tuple' and 'int'
The error comes from lasagne\layers\base.py, the specific part of the code is as follows:
from collections import OrderedDict
from .. import utils
all = [
"Layer",
"MergeLayer",
]
Layer base class
class Layer(object):
"""
The :class:Layer class represents a single layer of a neural network. It
should be subclassed when implementing new types of layers.
Because each layer can keep track of the layer(s) feeding into it, a
network's output :class:`Layer` instance can double as a handle to the full
network.
"""
def __init__(self, incoming, name=None):
    """
    Instantiates the layer.

    Parameters
    ----------
    incoming : a :class:`Layer` instance or a tuple
        The layer feeding into this layer, or the expected input shape.
    name : a string or None
        An optional name to attach to this layer.
    """
    if isinstance(incoming, tuple):
        self.input_shape = incoming
        self.input_layer = None
    else:
        self.input_shape = incoming.output_shape
        self.input_layer = incoming

    self.name = name
    self.params = OrderedDict()

    if any(d is not None and d <= 0 for d in self.input_shape):
        raise ValueError((
            "Cannot create Layer with a non-positive input_shape "
            "dimension. input_shape=%r, self.name=%r") % (
                self.input_shape, self.name))

I'm very sorry for disturbing you again because the previous problem has not been solved. Do you have any solution? Thank you very much!

This looks like an error that is internal to lasagne, so https://github.com/Lasagne/Lasagne/issues might be a good place to start searching for a fix.


updates deps, add vendor directory and make build-with-vendor

closes #120

adds the following Makefile features

make build-with-vendor
make update-go-deps

adds the vendor directory for easier transport to easier compiling at customers sites.

tested with builds with and without the vendor directory, and with the dockerfile.

Thanks for this @chrroberts-pure. This will be most helpful for a customer requiring this feature.
I have tested and working ok.


netbird-ui: 0.26.6 -> 0.27.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for netbird-ui is: Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls
meta.homepage for netbird-ui is: https://netbird.io
meta.changelog for netbird-ui is: https://github.com/netbirdio/netbird/releases/tag/v0.27.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 0.27.0 with grep in /nix/store/yicp3yh9jfyjfjn4cdqzb8ai0h5rg4bp-netbird-0.27.0
found 0.27.0 in filename of file in /nix/store/yicp3yh9jfyjfjn4cdqzb8ai0h5rg4bp-netbird-0.27.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
netbird
netbird-ui

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yicp3yh9jfyjfjn4cdqzb8ai0h5rg4bp-netbird-0.27.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A netbird-ui https://github.com/r-ryantm/nixpkgs/archive/be0d1c1ed0444e26b866a5ee5595e7fbd89333a9.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/be0d1c1ed0444e26b866a5ee5595e7fbd89333a9#netbird-ui

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yicp3yh9jfyjfjn4cdqzb8ai0h5rg4bp-netbird-0.27.0
ls -la /nix/store/yicp3yh9jfyjfjn4cdqzb8ai0h5rg4bp-netbird-0.27.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

netbird
netbird-ui

Maintainer pings
cc @misuzu for testing.

New version is out https://github.com/netbirdio/netbird/releases/tag/v0.27.1


Action doesn't work without "Require approvals"

Hello,
I tried to use the action in combination with the Create PR action.
My develop branch has protection rule activated with "Require status checks before merging". However then the Auto merge action failed with the following errors:

Error: Unable to enable automerge. Make sure you have enabled branch protection with at least one status check marked as required. See https://github.com/peter-evans/enable-pull-request-automerge#conditions for more information.
Error: Request failed due to following response errors:

["Pull request Pull request is in clean status"]

When I selected additionally "Require approvals", the auto merge was successful, but then obviously the branch required approval.
I then added (as described in README) https://github.com/juliangruber/approve-pull-request-action but then again it failed with "Cannot approve your own pull request".
Is this scenario at all possible?

Ok, looks like I had "Require status checks" activated, but no status checks were selected.

And to solve the auto approval problem I should have probably just defined another author for the created PR.
Sorry for bothering you and thanks for the helpful documentation!


Incorrect Command line Parsing Function: parse_cli_args

python2.7 petrarch2.py parse -i ./data/text/GigaWord.sample.PETR.xml -o my_output leads to the following problem:
Traceback (most recent call last):
...
  File ".../petrarch2/petrarch2.py", line 530, in <module>
    main()
  File ".../petrarch2/petrarch2.py", line 438, in main
    if cli_args.outputs:
AttributeError: 'Namespace' object has no attribute 'outputs'

Furthermore, "-o" argument of the batch mode has an incorrect description.

I will close the issue as the batch mode is recommended and the input (xml) file has to be parsed.
However, there are minor issues related to the "-o" argument of the batch mode and some variables and calls (e.g. utilities.stanford_parse(events)) which aren't defined.

Thanks for the issue. I've got a branch open to clean up some of the CLI args. The next major release will have things consolidated.


example with a flow

Hi, could you do an example of how to use a flow?
Thanks,

There are a few examples on the docs in the flow page and also on basic client/tab
https://ulixee.org/docs/hero/basic-client/flow
Do these not make sense?


cross compilation example using flakes

I'm trying to figure out an approach to using cross compilation in a flake, where there would be a client and a server, the client being run on a raspberry pi, and the server on x86 linux. I'm unsure about the project structure and workflow for that, whether the cross overlay is meant to enable dune to support cross compilation, a system flag is meant to be passed to nix build, or a separate packages should be defined for each system, where each package calls buildDunePackage with the appropriate cross or host ocamlPackages. I'm also not sure about where tools like dune should be provided to enable the cross compilation. Is there an example that does something like along these lines?

Does this example have what you’re looking for? https://github.com/mseri/doi2bib/pull/19/files

Thank you! That did get me much further along. I was getting the below error as I had not overridden the installPhase:
error: attribute 'ocaml_cross_test' missing

       at /nix/store/v6h8a5ks4la4xlj3cm2xv78x42i3qsny-source/cross/ocaml.nix:176:17:

          175|                 # sqlite3
          176|                 natocamlPackages."ocaml_${args.pname}";
             |                 ^
          177|           in
(use '--show-trace' to show detailed location information)

I was able to get mus64 building, but for arm I get
error: builder for '/nix/store/4alzk78ck5cxl241p0ac2324wn8vyi12-ocaml4.14.0-cross_test-0.1.0-aarch64-unknown-linux-musl.drv' failed with exit code 1;
       last 10 log lines:
       > source root is source
       > patching sources
       > updateAutotoolsGnuConfigScriptsPhase
       > configuring
       > no configure script, doing nothing
       > building
       > ocamlfind: [WARNING] Undefined toolchain: aarch64
       > Error: ocamlfind toolchain aarch64 isn't defined in
       > /nix/store/8m0xm0xyskx9p92y2llxk3svmdp4mkka-ocaml4.14.0-findlib-1.9.6/etc/findlib.conf.d
       > (context: default)

Looks like I can use qemu or this idea https://discourse.nixos.org/t/how-to-cross-compile-kernel-for-aarch64-on-x86-host-without-qemu/16970 to allow my local nixos to support the arch. That brings me to the next issue, which is that I actually need 32-bit arm, which would be armv7l-hf, which isn't available in the overlays. I tried adding it to the existing overlay, but I assume it won't be that easy and might require other changes to support.

I was able to get aarch64 working by wrapping the buildDunePackage with fixOCamlPackage: https://github.com/nix-ocaml/nix-overlays/compare/master...joprice:nix-overlays:addArmv7l?expand=1. Without this change, the findlib.conf.d was the default location, which does not have the aarch64 override. I also tried adding armv7 on that branch but haven't gotten a static version working.

I was able to get a minimum static arm7l binary built, but it now fails on a ppx that uess dlopen.
       > (.text+0x394): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
       > File "bin/dune", line 5, characters 13-38:
       > 5 |  (preprocess (pps ppx_deriving_yojson)))
       >                  ^^^^^^^^^^^^^^^^^^^^^^^^^
       > qemu: uncaught target signal 11 (Segmentation fault) - core dumped

I can put up a repo with my experiment and maybe open a separate issue for armv7l support and this other issue, if you'd prefer?

I was able to get a minimum static arm7l binary built, but it now fails on a ppx that uses dlopen.
       > (.text+0x394): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
       > File "bin/dune", line 5, characters 13-38:
       > 5 |  (preprocess (pps ppx_deriving_yojson)))
       >                  ^^^^^^^^^^^^^^^^^^^^^^^^^
       > qemu: uncaught target signal 11 (Segmentation fault) - core dumped

I can put up a repo with my experiment and maybe open a separate issue for armv7l support and this other issue, if you'd prefer?

I'd recommend revisiting cross compilation now. there have been some nice improvements in dune / overlays that should make your experience a bit better.

Could you also add cross-compilation instructions for total nix newcomers? Looking at CI I discovered ./ci.sh x86_64-linux arm64_4_14 but it's not obvious what to do next with all of this. Compiling hello-world for target architecture and running it via qemu would be helpful...


Remove VectorLayout from Flatbuffers, Java implementation

@wesm can you rebase your branch on master? Integration test is passing.

Done, sweet, I will review!

The Java build failed

oops, I missed one commit for some reason.

Pulling these changes into my branch


path scanner fails on windows

root cause is nio.path issue on windows. Here is the Fix ClasspathFinder.java (line 75)

   pathElementStr = System.getProperty( "os.name" ).contains( "indow" ) ? pathElementStr.substring(1) : pathElementStr;

Thanks for the bug report. I made some changes to paths recently, and I thought it might break Windows, but couldn't find a tester to test this.
It looks like on Windows, you're getting paths like /c:/windows/file instead of c:\windows\file ? Can you please show me an example of what the incorrect path is, and what the correct one is?
It looks like even when URIs are encoded by Windows, they have a preceding '/' added, e.g. file:/c:/windows/path . That must mean there is a generic way to parse them too (the fix you gave looks a bit brittle...).
The top answer here looks right: http://stackoverflow.com/questions/6164448/convert-url-to-normal-windows-filename-java
I'll try to patch my code with this soon, and I'll let you know so you can test.

Here is the full error stack in verbose:
FastClasspathScanner: Exception while trying to read classpath element /C:/Users/pgupta/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar : Illegal char <:> at index 2: /C:/Users/pgupta/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar
FastClasspathScanner: Exception while trying to read classpath element /C:/Users/pgupta/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar : Illegal char <:> at index 2: /C:/Users/pgupta/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
FastClasspathScanner: Exception while trying to read classpath element /C:/Users/pgupta/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar : Illegal char <:> at index 2: /C:/Users/pgupta/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar
FastClasspathScanner: Exception while trying to read classpath element /C:/Users/pgupta/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar : Illegal char <:> at index 2: /C:/Users/pgupta/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar
FastClasspathScanner: Exception while trying to read classpath element /C:/Users/pgupta/.m2/repository/io/github/lukehutch/fast-classpath-scanner/1.9.5/fast-classpath-scanner-1.9.5.jar : Illegal char <:> at index 2: /C:/Users/pgupta/.m2/repository/io/github/lukehutch/fast-classpath-scanner/1.9.5/fast-classpath-scanner-1.9.5.jar
FastClasspathScanner: *** Starting scan ***
FastClasspathScanner: Classpath elements: []
FastClasspathScanner: Whitelisted paths:  [/]
FastClasspathScanner: Blacklisted paths:  []
FastClasspathScanner: *** Time taken by .scan(): 18 ms ***

Hi, I just pushed a potential fix to git, can you please test and let me know if this fixed it for you?

I pushed out 1.9.6 now too, in case it's easier for you to test using Maven rather than compiling from source.

Yes new release helped a lot. My unit test is now passing on windows. I am going to close the issue!

Great, thank you for testing!


don't convert int to string if db type of column is numeric

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues
#14663

Here we see that check ci-mssql / PHP 8.0-mssql-server:2017-latest (pull_request) failed.
But if you open it's report, you will see that crash occurred on the 2nd step "Initialize containers" > Starting mssql service container > error pulling image configuration.
I.e. this fail is not related to my PR.
Even more. In the bottom of issue #14663 you can find, that my last commit have already passed successfully exactly this check (as well as all 24 checks) - screenshot.

Does it require UPGRADE mention?

Yes. Would not hurt.

Done.

Cheers

The change to ColumnSchemaBuilder::$categoryMap should probably be mentioned in the upgrade notes. It broke this code:
https://github.com/craftcms/cms/blob/972d611d3f38d8ee830df485618d3064e3de4f19/src/db/mysql/ColumnSchemaBuilder.php#L25-L28

You are right, I'm very sorry for that. I'll add the note.


Watch out for the IntelliSense paid bully.
Show them https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark and still receive no mercy

See Also

#2914

Leaving this one open for the community to implement.
See up-for-grabs for others.
See CONTRIBUTING.md for info on contributing.

The MarkElement class has been removed from the Bridge.Html5 project as of the Bridge 16.0 release. See Issue #2914.


[IBM2 Request] New IBM Stencils

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Is your feature request related to a problem? Please describe.
The IBM2 stencils will fix deficiencies from our previous IBM1 design and significantly expand capabilities and use cases, and new icons are only being added to IBM2 for new product features making IBM1 less and less relevant.
Describe the solution you'd like
While the IBM2 prototype was useful for validating the IBM2 diagrams and demonstrating proof-of-concept for shapes, accessibility, IBM Color Palette, IBM Plex Fonts, etc, we have been looking into performance which can be sluggish such as switching tabs.  Perhaps over-engineering and non-essential details are contributing to the performance.
You are already familiar with IBM2, whatever you are planning we kindly request and appreciate and need your expert help with the design and implementation to make the IBM2 diagram standard available for everyone.  Everything is up to you and please continue to keep an eye on performance if anything could negatively impact performance.
More Shapes:

Keep the current single IBM selection but have that single IBM selection bring up the IBM2 sidebars.
The internals of the old IBM should of course remain for reference by existing IBM1 diagrams.

IBM Templates:
IBM2 templates can be done now or we can help create after the IBM2 implementation is published:

Remove all existing IBM1 templates.
Add IBM2 templates.

IBM Definitions:
These definitions are from the IBM side provided for your convenience, or you can create, whatever you are planning:

Complete IBM Color Palette: IBMColorPalette.json.zip
Includes css, defaultColorSchemes, presetColors, defaultColors, colorNames.
Initial IBM Plex Fonts: IBMPlexFonts.json.zip
Includes fontCss, defaultFonts for IBM Plex Sans and IBM Plex Sans Arabic, more languages later or you/us can add now.
Initial Icons XML: ibmicons.xml.zip
Or previously we provided the svg/png files, so if you want the svg files let me know.  From IBM1 experience, the IBM2 icons are intended to meet your quality standards, but let me know how they are.

IBM Shapes:
If these are acceptable, or whatever you are planning:

As you know container shapes have the usual properties of container=1;collapsible=0;expand=0;recursiveResize=0
Since hidden in IBM2 prototype for your consideration is that the line style Dashed Line has dash pattern of '6 6' at 1pt.
Since hidden in IBM2 prototype for your consideration is that Zone shape (non-container) has dash pattern of '2 4' at 2pt.
Also, Zone has a separate issue 2922 for your consideration if possible or not.
Not in the IBM2 prototype for your consideration is that for Text direction of right-to-left language to also flip the shape horizontally similar to flipH=1 except flipH=1 also flips the icon which could make the icon look confusing or if you want to use flipH=1.  Flipping the shape for right-to-left language can also move the badge to opposite side, multiplicity to opposite side, etc, but you can decide what makes sense if anything.
Location (logical location and prescribed location) is the new name for group.  This was changed at the last minute in the IBM2 prototype in the sidebar shapes to comply with standards but the Format Panel and properties still incorrectly refer to group.  Intended to only be called logical location and prescribed location.

IBM Shape Text:
If these are acceptable (the larger font is intended for accessibility), or whatever you are planning:

Primary label is Plex semibold (weight 600) with fontsize 14.
Secondary text (below primary label) is Plex regular with fontsize 14.
Badge text is Plex regular with fontsize 12.

We understand your process for publishing after which time we look forward to seeing IBM2 in diagrams.net, whatever you are planning.  We realize and appreciate that only you can do this properly.  Thanks for your consideration!
Describe alternatives you've considered
None.
Additional context
None.

Additional global fonts: IBMPlexFonts2.json.zip
Includes fontCss, defaultFonts for:
IBM Plex Sans
IBM Plex Sans Arabic
IBM Plex Sans Devanagari
IBM Plex Sans Hebrew
IBM Plex Sans KR

Or you can create also.
I removed the style tags this time during a validation test.
Thai and Thai Looped are on google fonts but not included yet (I need to verify with Thai users).
Japanese is waiting to be published to google fonts.
Chinese won't be available this year.
Thanks!

Updated Icons XML: ibmicons2.xml.zip
If still possible to update now or later or however you want to handle.  Ten new icons added at bottom but more importantly the icon named "VPN" is bad even after correcting the case, so it was removed in this update.  The VPN icon is not used so it was previously missed.  All other icons have been validated.
Thanks!

If still possible to update now or later or however you want to handle -
Updated IBM Plex Fonts:  IBMPlexFonts3.json.zip
Updated Icons XML:  ibmicons3.xml.zip
IBM Plex Sans JP was just published on Google Fonts and also included IBM Plex Sans Thai.
Corrected icons:
cloud
cloud-foundry—1
cloud-satellite
database—datastax
database—enterprisedb
database—elastic
database—etcd
database—mongodb
database—postgresql
database—rabbit
database—redit
ibm-cloud-pak—applications
ibm-cloud-pak—data
ibm-cloud-pak—integration
ibm-cloud-pak—multicloud-mgmt
ibm-cloud-pak—network-automation
ibm-cloud-pak—security
ibm-cloud-pak—system
ibm-cloud-pak—watson-aiops
No more changes planned but wanted to ensure quality and completeness as much as possible for our global users.
Thanks!

If we need to redesign IBM2 to something that your team would approve we would greatly appreciate the opportunity.  If we need to go back to the basics, build on the excellent work that your team did for the IBM1 stencils by adding new left-to-right (only) shapes that are static and can't change shape and can't change icon, have just a single sidebar, etc.

Unfortunately, we're not going to have the free resource to implement this icon set. The requirements are relatively complex and the demand for IBM icons is extremely low relative to others.
If you need the current IBM set hidden, let us know.

If interested, here's an example of the open source diagram-as-code that we are building on top of drawio, input is Python, output is drawio xml file.  This is based on another excellent diagram-as-code tool that generates static png/svg files but we needed the capability to integrate diagram-as-code with drawio as shown in this example.  The "icon=" parameters will be replaced with static icon imports with the above simplified ibm2 proposal.  You are familiar with PlantUML as a diagram-as-code tool and I'm finding our diagram-as-code tool also helps to quickly create variations of IBM Cloud diagrams while designing an IBM Cloud solution while also generating a drawio xml diagram that can be edited directly in drawio as needed.

I was keeping the number of shapes to four in the simplified ibm2 spec above, and optionally since you already have similar in ibm1 is the following shape with the difference in ibm2 that the upper left corner is expanded to same size as the square prescribed node icon in the simplified ibm2 specs above, final specs are completely up to drawio team or leave out the following shape.  This shape would be useful to differentiate the content in the group.

We really need the simplified ibm2 in drawio if you can please consider squeezing this in when you get a chance.  The simplified ibm2 is intended to be as straight-forward as ibm1, and let me know what else needs to change or what else you need in addition to a minimal set of icons/sidebar.  Also, users are asking for diagram-as-code which I view as an opportunity for them on drawio, and I'm continuing to add features for example in the diagram-as-code screenshot above I alternate fills between nested containers to make each container stand out, etc.

We really need and appreciate the simplified ibm2 in drawio if you can please consider according to your priorities, and hopefully the simplified ibm2 attached here will be as straight-forward as ibm1 or let me know what else needs to change or what you need in addition to a minimal set of icons/sidebar.
I'm also working on reducing the ibm2 sidebars to be like ibm1, replacing the IBM / Boxes in ibm1 with IBM Cloud / Groups in IBM2 and other sidebar headers similar to ibm1 but with the new ibm2 icons, and also reducing the number of icons in ibm2 to the minimal number of icons needed to replace the ibm1 icons. We have a different process for ibm2 icons which will hopefully save time which I always appreciated the excellent quality work that your team did for ibm1 icons.
Also, users are asking for a tool like our diagram-as-code tool above which I view as an opportunity for them to use drawio over other tools since we only support drawio with diagram-as-code and diagram-as-code helps to facilitate the creation of diagrams by enabling the user to focus on the content of the diagram and leaving the layout of the diagram to our diagram-as-code tool which can be a time-consuming process when the layout is done manually.
Simplified IBM2 Diagrams.pdf


⚠ Bofrost.be has degraded performance

In 22bbe2f, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1039 ms

Resolved: Bofrost.be performance has improved in c915e60.


Removes destroy modal dupe code.

This is the first of 3 PRs to consolidate the confirmation modals in the Services page.
I removed code from two different files and abstracted it into two different files, one of which (ServiceActionModal) will be reused for the other two modals that are remaining.

retest this please

I think this needs a rebase, I'm getting an error about the Typeahead not existing in PluginModules.


[WFLY-11165][WFLY-11166][WFLY-11167][WFLY-11174][WFLY-11177][WFLY-11181] Clarify dependencies on Transaction subsystem

A whole lot of stuff but all generally about creating capabilities for the most commonly used services provided by the transactions subsystem, and then having other subsystems require those capabilities, thus:

Allowing config validation (i.e. ensure the tx subsystem is present, can't be removed etc.)
Allow Galleon to understand the config relationship so it can ensure features are present.
Remove unneeded module dependencies or make them optional if they are only needed if a capability is present.

https://issues.jboss.org/browse/WFLY-11165
https://issues.jboss.org/browse/WFLY-11166
https://issues.jboss.org/browse/WFLY-11167
https://issues.jboss.org/browse/WFLY-11177
https://issues.jboss.org/browse/WFLY-11181
Also a start on https://issues.jboss.org/browse/WFLY-11174. Creates a JCA capability, which depends on some TX capabilities, but doesn't actually convert other code to use it yet.
Requires a core upgrade with https://github.com/wildfly/wildfly-core/pull/3554

I put the hold label on this as I'll rework to address David's inputs.

once #11766 is merged, this can be retested and the core-upgrade-needed flag removed

retest this please

The same RemoteStatefulEJBConcurrentFailoverTestCase test fails on 3 jobs and is related to the PR:
javax.ejb.EJBException: org.infinispan.util.concurrent.TimeoutException: Could not acquire lock on InfinispanBeanGroupKey(UUIDSessionID [848c2469-7e2b-4bb8-a812-ddf868c40ca5]) in behalf of transaction GlobalTx:node-2:7. Current owner GlobalTx:node-2:5.

I put the 'hold' label on this on purpose. ;)

@ochaloup @pferraro @dmlloyd @jmesnil @scottmarlow
I've significantly reworked this based on David's input here and in the comments on WFLY-11166. And also to correct the problem Paul noticed.
For WFLY-11166, basically instead of having the transaction subsystem expose 3 capabilities, one each providing Service, Service and Service instead it provides 1 capability, "org.wildfly.transactions.global-default-local-provider." Quite a mouthful ;).  That capability only provides Service[1], so other capabilities can't inject anything from it.  But they can have their own services depend on it, so they don't start until it is started.
What the contract of a org.wildfly.transactions.global-default-local-provider capability is, is it will have made this call by the time its service is started:
https://github.com/wildfly/wildfly/pull/11745/files#diff-01b9b2212c4edabe83b86749912df5d5R67
Once that call is made, local users of the wildlfy-transaction-client library can use its ContextTransactionManager.getInstance(), ContextTransactionSynchronizationRegistry.getInstance() and LocalUserTransaction.getInstance() methods a be sure of getting access to appropriate implementations of the respective interfaces.
I then replace all the existing service injections of TM/TSR/UT and instead have the dependent service depend on the org.wildfly.transactions.global-default-local-provider capability's void service. Once they start they can safely use the wildlfy-transaction-client APIs, so I changed them to use that.
For WFLY-11166 things are conceptually the same as in the first iteration of this PR -- tx subsystem exposes a capability that provides XAResourceRecoveryRegistry; other subsystems use the capability to work out the service name instead of directly using a constant from the tx subsystem.
[1] David, I considered using the new MSC API and a Service that has not value type, bu I'd have had to rework the WF Core handling behind https://github.com/wildfly/wildfly/pull/11745/files#diff-0e96ec0b70a46baffa646cf408a3ab42R97 to do that, and that was more than I was up for.

Seems reasonable.  Thanks Brian!

I just rebased this and pushed, since #11800 was merged and I thought I retest was worthwhile. I didn't change anything since my big comment of Oct 31.

retest this please

This change may of caused [https://issues.jboss.org/browse/WFLY-11360] which I think impacts WF15 backward compatibility with WF14 (and earlier), more specifically, applications that depend on JCA Synchronization.afterCompletion() to be run after the JPA container Synchronization.afterCompletion().


Support for horizontal list?

I have a horizontal list to sort, after adding horizontal={true} to the sortable list, I observed the sorting behavior is weird, and I still have to drag the item up and down.
Here's example:
<SortableListView
    style={{ flex: 1 }}
    data={this.props.images}
    order={order}
    onRowMoved={e => {
        order.splice(e.to, 0, order.splice(e.from, 1)[0])
        this.forceUpdate()
    }}
    horizontal={true}     <------ added this to make it horizontal.
    renderRow={row => <RowComponent data={row} />}
/>

Any suggested work around? Thanks.

Horizontal lists are not supported. Use react-native-sortable-list.

Booo


Implement tabular method and pipeline

Need:

system (gridworld) with logger and animator
scenario for tabular RL updates
tabular RL method


bug: icons not showing and duplicate windows possible

Did you check docs and existing issues?

[X] I have read all the trouble.nvim docs
[X] I have searched the existing issues of trouble.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
0.9.2
Operating system/version
Macos 14.0
Describe the bug
When I try and open Trouble, I run into a problem of having an icon-less diagnostics window. Then, if I try and toggle Trouble again, the correct window pops up below the faulty initial window.

Steps To Reproduce

Installed on nvchad using a custom plugins file as shown below

Added a keybind to the custom init file (from the docs)

Go to a python project with errors and press space then q
Press space then q again

https://github.com/folke/trouble.nvim/assets/67507794/b47128bf-088d-4097-8b9a-08575a266dc3
Expected Behavior
It should open the diagnostic window WITH icons and be able to close with the same key (space and q)
Repro
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/trouble.nvim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Development on the main branch is EOL.
Trouble has been rewritten and will be merged in main soon.
This issue/feature either no longer exists or has been implemented on dev.
For more info, see https://github.com/folke/trouble.nvim/tree/dev


'now dev' breaks for django projects that use django channels

now dev does not work for Django projects that use django_channels. It throws a ModuleNotFoundError: No module named '_cffi_backend' error.
Error: https://pastebin.com/3gmbAff5
Steps to reproduce:

Clone the Django project: https://github.com/mo3rfan/now-test
Run now dev
Navigate to http://localhost:3000/admin

Hi @mo3rfan
The canary channel has updated now dev to use the python3 and pip3 found in the current PATH instead of installing python automatically.
Can you try npm i -g now@canary and also change the now.json file to use @now/python@canary to see if now dev works for you?

Yes, I've confirmed that it works now. :)


get acess to actorblueprint which spawned by hand in UE4 editor

Hellow everyone:
I want to spawn some vehicles by hand in UE4 Editor，I notice that there are some blueprint in /Game/carla/blueprint/vehicles。I can spawn a AudiA2 in UE4 editor。however，in the simulation，I can not get acess to the "AudiA2" ，What can I do ？

I would recommend adding your blueprint into CARLA by following the instructions here: https://carla.readthedocs.io/en/latest/tuto_A_add_vehicle/

I don't want to creat a new vehicle blueprint. I just want to use the exised vehicle blueprints such as "AudiA2". I try to drag the "AudiA2" blueprint into the UE4 editor and run the simulation. there is a AudiA2 in the game window, However, I cannot get the "AudiA2" by world.get_actors()

So by not spawning it in CARLA, the world doesn't know about the actor, because it isn't a CARLA actor

You should just spawn it via spawn_actor


Create readme files explaining workflow

We will follow some unified practices during this project. Therefore there will be some standards.
I will create a folder for reference. @sahilbhola14 once I'm done with it, it'd be great if you can chime in to polish some details.

Need to do:

[x] Commit guidelines
[ ] Branch guidelines & structure
[ ] Issue guideline (maybe)

@sahilbhola14 feel free to join, created chore/doruk/3 branch for this issue


AWstats Configuration link is bonkers

Clicking on "Logs and Reports->AWStats Configuration" causes the "System Settings->Virtualmin Configuration" menu to be opened/highlighted. I believe there's some sort of regex checking for "config.cgi" and it's not smart enough to notice that "virtualmin-awstats/config.cgi" is not the same as "config.cgi".

Yes, it's confirmed. I also noticed that clicking AWstats Report opens over existing page.
What I could do? I could make such links open in the new tab.
It's also should be possible to edit Perl part and make sure that the content that you want to be displayed is wrapped in:
<div data-dcontainer="1">
   ...
</div>

It's fixed. Links opened in new tab. All works cool.


CI Benchmarking: Benchmark at 2022-01-29-071146 is significantly slower than the one before (2022-01-28-191128)!

Error running benchmark CI job on Linux ip-172-31-38-197 5.11.0-1023-aws #24~20.04.1-Ubuntu SMP Fri Dec 3 13:46:41 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux:
Latest failing benchmark:

Time: 2022-01-29 07:11:46
Ruby: ruby 3.2.0dev (2022-01-29T06:33:13Z master 90a8b1c543) +YJIT [x86_64-linux]
Raw YJIT prod data

Compared to previous benchmark:

Time: 2022-01-28 19:11:28
Ruby: ruby 3.2.0dev (2022-01-28T18:33:31Z master 1bd033cb89) +YJIT [x86_64-linux]
Raw YJIT prod data

Slower benchmarks: binarytrees
Timeline Graph
Slowdown details:

binarytrees:

Speed before: 347.05 +/- 0.2%
Speed after: 377.71 +/- 0.8%

Transient issue


Generate unique serial number

I appreciate this plugin for homebridge. When attempting to bring this over to Home Assistant via Homekit Controller I get this error:
Platform homekit_controller does not generate unique IDs. ID homekit-Default-SerialNumber-13 already exists
How would I go about generating a unique Serial Number as opposed to "Default-SerialNumber"

Hi @JPReding, would you mind sharing your config.json? From the error message it looks like that error is coming from the homekit_controller platform, but I'm not familiar with that plugin and how that would interact with this plugin.

Yeah, sorry for the confusion.
homekit_controller isn't a part of homebridge, but it simply reads the data provided by the homebridge plugin.
The ModernForms plugin doesn't create a distinct serial number or uuid and therefore Home Assistant only adds one of my fans and logs an error for my next fan via homekit_controller basically saying it's already added the device (even though I have multiple fans).
I was wondering if this plugin for the ModernForms fan could generate distinct serial numbers (could be anything at random) as opposed to "Default-SerialNumber."

If it did generate a random SerialNumbers then the error in homekit_controller would resolve as each fan would be seen as a different device.

Thanks for the detailed description! Was super helpful to fix. I've publish version 1.0.8 which uses the client ID returned from the fan as its serial number. As far as I can tell this is its MAC address without colons prepended with MF_, so should be unique.
Please let me know if

Please report back if this works for you, and I'll close the issue. Thanks for reporting!

Wow, thanks for the quick update. This definitely solved the issue for me 👍 Thanks again.


Updates benchmarks to reify DOM.

The benchmark results for this library currently rely on an apples-to-oranges comparison. This patch updates the tests to cause each library to actually create DOM.

Coverage remained the same at 90.879% when pulling a5740ce53036d2944848c5b792267ea262e08310 on slightlyoff:benchmark-fix into f11287c3daf6fb8b65888e5581c4bd22e0dab2b8 on marko-js:master.

I've already replied on twitter but I'll copy my string of tweets here to maintain a record in this issue.
TL;DR - The benchmark is measuring creation of nodes to be used in diffing.  Not the diffing/patching/actualizing process.
Actualize isn't called on purpose. Let me explain.
////////////////
VDOM, as you point out, is about convenience.  Although it's not actually VDOM that's convenient, but rather diffing/patching.
////////////////
Older versions of Marko did diffing/patching without VDOM.  They essentially used innerHTML to create a node & diff with document.
////////////////
Except in cases where the tree was extremely different, this node never was inserted into the document.  It was only used to compare.
////////////////
We wanted to compare switching from this approach to a VDOM.  Hence the benchmark to measure creating the tree to use in diffing.
////////////////
The README for the project clearly describes this:
Creation time - the time it takes to construct a [virtual] DOM tree
////////////////
No actualize call needed.  And, if you look, there's no call to ReactDOM.render.  React is not actualizing nodes in the benchmark either.
////////////////
So yes,
"What we've learned here today is that creating JS objects w/o DOM backing is cheaper than creating DOM."
///////////
We knew it would be faster, the question was how much?
////////////////
We wanted to see if VDOM performance gains were enough to justify not using innerHTML.  And, with up to 30x improvement, we decided it was.
////////////////
It's a micro-benchmark, for sure, but it helped us make a decision (and justify to our team/managers).

This benchmark was intentionally designed so that we could independently measure the cost of constructing a [V]DOM tree and walking a [V]DOM tree. It also allowed us to compare the cost of using arrays for storing child nodes versus using linked list (we found linked lists to have much better performance). Also, when you look at real world characteristics of an app I bet you will find that during updates that only a few nodes are added, removed or updated after the initial render. Therefore, the cost of actualizing a DOM node is not going to have a big impact on most web apps.
This benchmark is pretty old and the source code in this repo is no longer used by marko anymore (or any other project that I am aware of). We ended up merging in the VDOM implementation that Marko uses into the main marko repo. I will add a disclaimer to the README that is is no longer maintained or used, but I don't think there is any need to make changes to this repo.
If you want to use this code as a basis to set up a separate benchmark that measures reify/actualizing costs please feel free.

At a minimum, the Benchmark Results page also needs to be updated to clarify that the section labeled DOM creation does not, in fact, create or measure the cost of any DOM construction. Similarly, the DOM Tree Walking section is mislabeled.
Better yet, a long-form explainer (such as what was provided above) would make a good preamble for the results.


Fixed Udp Associate(Socks5)

i was able to track down the issue that causes UDP connections don't work

How were you able to test that UDP was not working? In my tests UDP worked fine. (I would send DNS packets)

it was trying to bind to destination address which causes errors as i saw in console while i was using it,,,
for example trying to connect to destAddr of <IP_ADDRESS> port 53 is was trying to create a socket and bind it to <IP_ADDRESS>:53 while its not right it should bind a local address and redirect all udp packet sent to it to the destination
maybe it was a Windows specific issue with the way they handles the socket's binding
i used a program similar to tun2socks and ran a online game to see if it works and i saw the errors


Enhance parent tree bigquery

User Story
As a user, I want to have a quick response when getting Parent Tree data.
Acceptance Criteria

Modify query or improve workflow splitting into two queries.
SQL query: https://github.com/bcgov/nr-spar/blob/main/oracle-api/src/main/java/ca/bc/gov/oracleapi/repository/ParentTreeRepository.java#L15

RO into 36


Advertisement Timeout SLA

{
  "log": "{\"error\":{\"stack\":\"TchannelRequestTimeoutError: request timed out after 500ms (limit was 500ms)\\n    at Object.createError [as RequestTimeoutError] (/home/udocker/chronotrigger/node_modules/tchannel/node_modules/error/typed.js:31:22)\\n    at V2OutRequest.onTimeout (/home/udocker/chronotrigger/node_modules/tchannel/out_request.js:555:31)\\n    at TimeHeap.callExpiredTimeouts (/home/udocker/chronotrigger/node_modules/tchannel/time_heap.js:169:14)\\n    at TimeHeap.drainExpired (/home/udocker/chronotrigger/node_modules/tchannel/time_heap.js:160:14)\\n    at TimeHeap.onTimeout (/home/udocker/chronotrigger/node_modules/tchannel/time_heap.js:144:10)\\n    at onTimeout [as _onTimeout] (/home/udocker/chronotrigger/node_modules/tchannel/time_heap.js:135:14)\\n    at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)\",\"type\":\"tchannel.request.timeout\",\"message\":\"request timed out after 500ms (limit was 500ms)\",\"id\":871,\"start\":1443038570760,\"elapsed\":500,\"timeout\":500,\"logical\":true,\"name\":\"TchannelRequestTimeoutError\",\"fullType\":\"tchannel.request.timeout\"},\"serviceName\":\"chronotrigger\",\"level\":\"error\",\"message\":\"HyperbahnClient: advertisement failure, marking server as sick\"}\n",
  "stream": "stderr",
  "time": "2015-09-23T20:02:51.260517901Z"
}

@Raynos @jcorbin Deployment Process results in hyperbahn timeouts

When we deploy hyperbahn we see an increase in advertise timeouts in edge clients.
This is not acceptable. We should figure out how to stick within our 500ms SLA using more tricks and/or drain.

@Raynos , it could be that we shouldn't be exempting hyperbahn protocol itself from drain: https://github.com/uber/hyperbahn/blob/master/app.js#L78 ; instead you'd see elevated declined responses to advertisements during a deploy.  Advertises being declined are okay, and shouldn't themselves necessarily trigger a re-ad, but what should and what would help such case would be the re-ad on re-conn work we keep mentioning.

@jcorbin OOPS. Yes we should not exclude it from drain.


Please add AMD/CommonJS/global support

w2ui should be able to use AMD/CommonJS loaders (it can then be used from within Electron as well).
https://gist.github.com/CrocoDillon/9990078

Related issue https://github.com/vitmalina/w2ui/issues/266


Unexpected response when AzureBridge product doesn't exist

When I run Get-AzsAzureBridgeProduct as below, I get an unexpected response error:
PS C:\tasks\Azure\azurestack-powershell\src\Azs.AzureBridge.Admin\test> get-AzsAzureBridgeProduct -ActivationName "default" -ResourceGroupName "azurestack-activation" -Name "fakeproduct"

Get-AzsAzureBridgeProduct_Get: Unexpected response retrieving product information.

The error should say the resource does not exist, not an "unexpected response".

@TheOnlyWei Is this fixed?


Get started with cost model experiments

Get started
This tutorial contains a minimal example of training a cost model and using it for search.
Dataset
Install and Download

Build and install this repo following the install guide of TVM.
Download dataset file.

You can download it from google drive
Or you can use the command line

pip3 install gdown
gdown https://drive.google.com/uc?id=1hciRGyXcGY9fK_owgvlJow8P_l8xYIVJ

Put dataset_v3.1.zip under tvm-cost-model/scripts and run unzip dataset_v3.1.zip
A new folder dataset will appear in tvm-cost-model/scripts.

Dataset Content
see this readme
Example experiment
Train a cost model and use it for search
Go to tvm-cost-model/scripts.

Make a dataset
You can either

create a sampled smaller dataset for fast experiments.

python3 make_dataset.py --logs dataset/measure_records/e5-2673/*.json --sample-in-files 100

create a complete dataset by using all files. This takes a longer time and requires more memory.

python3 make_dataset.py --logs dataset/measure_records/e5-2673/*.json

Train a cost model

python3 train_model.py

Use the model for search

python3 tune_network.py --network resnet_50 --n-trials 100 --cost-model xgb-no-update --load-model xgb.pkl

References

Learning to Optimize Tensor Programs (NeurIPS 18)
Ansor : Generating High-Performance Tensor Programs for Deep Learning (OSDI 20)
Value Learning For Throughput Optimization of Deep Neural Networks (MLSys 21)
A Deep Learning Based Cost Model for Automatic Code Optimization (MLSys 21)
Learned TPU Cost Model for XLA Tensor Programs (MLSys 21)
MetaTune: Meta-Learning Based Cost Model for Fast and Efficient Auto-tuning Frameworks
Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks (ICML 19)
Learning to Represent Programs with Graphs (ICLR 18)
Learning to Optimize Halide with Tree Search and Random Programs (SIGGRAPH 19)
CS 330: Deep Multi-Task and Meta Learning

The dataset file is not available for download now.

This issue is outdated. see https://github.com/tlc-pack/tenset/blob/main/docs/get_started_with_cost_model_experiments.md

@catmaohphp  This issue is outdated. see https://github.com/tlc-pack/tenset/blob/main/docs/get_started_with_cost_model_experiments.md

Thank you for your quick response!


update_index's real-time progress indication broken

Issue Summary
The update_index command used to print a '.' for every 1000 items it indexed as it indexed them. Now it hangs and suddenly displays all '.'s at once when indexing is finished
Steps to Reproduce

Run update_index on a project with an indexed model with more than 1000 items

Technical details

Wagtail version: 2.4rc1

Looking at the history, only small changes have been made to update_index. I'll update this ticket when I've figured out what's up with my local setup.

Closing due to lack of updates - assuming this was a local environment issue.


fails to open db for one of my worlds

I'm running 2 servers at home. I set up a script to run PapyrusCs against the backup files after nightly backup runs on each server.
It works fine on one of them (survival world) - generated and uploaded a map.
It fails on the other one (castle world) with a message like this:
$ /home/edward/src/papyrus/PapyrusCs --htmlfile 'index.html' -o ./tmp/output -w ./tmp/db/
Opening world...
Could not open world at './tmp/db/'!. Did you specify the .../db folder?
The reason was:
Invalid argument: ./tmp/db/: does not exist (create_if_missing is false)

I've tried comparing the files between the worlds but I don't see anything obviously different - can you help?
survival_world.zip
castle_world.zip

FYI I'm using a prebuilt binary downloaded last week, on Ubuntu 18.04
$ /home/edward/src/papyrus/PapyrusCs --version
PapyrusCs 1.0.0

Now that I browsed the code a bit I see my "castle world" is missing the "CURRENT" file expected in leveldb-mcpe. What would create that? I'm able to connect to this world and play in it in Minecraft ok.

I was able to make it work by creating a new CURRENT file containing the MANIFEST-... name.
So I guess the problem is with my backup script, not with Papyrus


Removed warning for Firefox

Backdrop filter is supported since Firefox 103. With Firefox 107 being the latest stable release, it seems only fitting to remove this message.
https://caniuse.com/css-backdrop-filter

Thanks for the PR!!


Update to Swift 3.0.2; add Jazzy docs

Add more comments for Jazzy docs as well

@ianpartridge I have removed the search paths from build arguments

Current coverage is 84.66% (diff: 0.00%)

No coverage report found for master at e4d8d66.

Powered by Codecov. Last update e4d8d66...66025d6

@ianpartridge Thanks for the codecov run. Spotted some unused code that I'll remove in a new commit.

@ianpartridge I have removed ununused code and code coverage has improved to 90.75%. Can you review again and merge?


Move Primary Source into a gadget

We should move Primary Source frontend into a gadget on Wikidata in order to make it more easy to use.
The drawback is that gadget are in the Mediawiki: namespace and, so, require admin rights to be modified.

@tomayac I am ready to create this gadget as soon as I get your green light

I have some pending changes to make before, in order to make the user
script testable. These are (partly) covered in
https://phabricator.wikimedia.org/T95290,
https://phabricator.wikimedia.org/T95289, and
https://phabricator.wikimedia.org/T97247. What would be required to create
the gadget and what is the upgrade strategy?

To create the gadget you have to move the JS and CSS code in the Mediawiki: namespace with the prefix "Gadget-". So in our case the JS file would be in a page like "MediaWiki:Gadget-primarySource.js". And then you just have to edit https://www.wikidata.org/wiki/MediaWiki:Gadgets-definition to register your gadget. for more information see https://en.wikipedia.org/wiki/Wikipedia:Gadget
The drawback is that these two operations requires edit right on the MediaWiki namespace, right which is restricted to admins and some other user groups.

Is this fixed, now that https://www.wikidata.org/wiki/Wikidata:Primary_sources_tool only mentions the gadget?

Yes :-)


Make checkpointing more resilliant

We need to ensure that a crash during the checkpoint operation can't leave the data store or okwal in a confused state.
To ensure EntryId is always increasing, we can't risk losing track of the last entry id. In the current code, if a checkpoint occurs and no entries are left uncheckpointed, closing and reopening the log would lose track of the last entry id.
I think the best approach is to add one more file that tracks checkpointing progress. This file should be able to track what EntryId was last checkpointed. This value should be updated after the checkpoint process finishes but before the files are recycled. This ensures that if a crash happens during any stage of the process, the ideal behavior can be taken:

Crash during checkpoint: After recovery, checkpointing will be attempted again. Primary data store must be able to apply WAL entries idempotently (or identify which have already been applied)
Crash during recycle: During recovery, any files containing a range of EntryIds that is less than the current checkpointed ID can be recycled upon load.

In the rewrite of OkayWAL, this was addressed.


a circular import

Environment info
run in colab and my computer windows and linux
Information
Model I am using (test_conformer in tests):
ImportError: cannot import name 'OpenspeechDecoder' from partially initialized module 'openspeech.decoders' (most likely due to a circular import) (/content/openspeech/openspeech/decoders/init.py)
The problem arises when using:

[ ] the official example scripts: (give details below)
[ ] my own modified scripts: (give details below)

To reproduce
Steps to reproduce the behavior:

Expected behavior

i've got the same problem

@grazder have you solved it?

Solved with #195


Setup Error "Config flow could not be loaded: 500 Internal Server Error Server got itself in trouble"

Can't get any further than this.
I have home assistant forwarded to an external domain.

Updated HA as I noticed I was a version behind and now I am getting
Config flow could not be loaded: Unknown error

Hi @defeatedbythecat
Are you able to provide additional info/error logs on the issue?
I have not been able to replicate it.
Thank you

No additional details. Unable to replicate with version https://github.com/craibo/ha_strava/releases/tag/3.2.40


Add commit comment when push to pull request branch

As title.

Should these comments be removed on a force push (like there are in Github)?

@ethantkoenig yes, I think you are right. I will update this.

Codecov Report

Merging #2548 into master will decrease coverage by 0.11%.
The diff coverage is 3.44%.

@@            Coverage Diff            @@
##           master   #2548      +/-   ##
=========================================
- Coverage   27.32%   27.2%   -0.12%
=========================================
  Files          86      86
  Lines       17135   17219      +84
=========================================
+ Hits         4682    4685       +3
- Misses      11775   11854      +79
- Partials      678     680       +2

Impacted Files
Coverage Δ

models/pull.go
20.58% <ø> (ø)
:arrow_up:

models/status.go
5.02% <0%> (ø)
:arrow_up:

models/issue_comment.go
28.41% <2.32%> (-2.69%)
:arrow_down:

models/action.go
50.2% <4.87%> (-4.09%)
:arrow_down:

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 b4b0280...c646458. Read the comment docs.

@ethantkoenig done.

@daviian done and rebased.

BTW what about updating full name when user/org is renamed or repository is renamed/transfered/deleted etc?

@lunny can you resolve requested changes before 1.3?

@lafriks Yes, I will.

@lafriks reabased.

@thehowl all done.

@lunny if forked repository or it's owner gets renamed RepoFullName needs to be updated to new url

@lafriks done and rebased.

@lafriks done.

LGTM

@ethantkoenig needs your approval

@lafriks @lunny One of my comments (https://github.com/go-gitea/gitea/pull/2548#discussion_r140647785) still needs to be addressed. I don't mean to block this PR, but I believe it will be relatively straightforward to fix.

@lunny closing as outdated. Please re-open if needed.


Make use of checkstyle.xml

How do you make use of checkstyle.xml ?

I use an Idea plugin to check codes and apply the checkstyles.xml

I think gradle plugin  works better because it  can force other contributors to check code style across CI.

Thanks, may change to gradle later.

Do you follow the rule of checkstyle.xml ?

Not complete, but basically will follow it. I used checkstyle as a reference, rather than enforcing, because some rules of checkstyle is not good, but also troublesome to exclude, so I did not use gredle to enforce the check, in addition, the enforcement will also bring collaboration trouble.

I have fixed all checkstyle's issues and Floo is fully in line with its checkstyle.xml now. Thank you for your reminder.


S3 download issues

System Info
I've run into 2 unexpected issues/inconsistencies when downloading adapters from S3.
Issue 1:
With PREDIBASE_ADAPTERS_BUCKET=sagemaker-us-east-1-000000000000
Several prefixes with naming lorax/mistral-adapters/{id}, with id being an integer from 1 to 50. Exact same adapter files replicated into each prefix.
Lorax Client call:
client.generate(prompt, max_new_tokens=64,adapter_id='lorax/mistral-adapters/{id}', adapter_source='s3')
For most id's, adapter is download as expected. For some, such as id's 1 through 5 from my testing (e.g. adapter_id='lorax/mistral-adapters/1') I get the following error:
Traceback (most recent call last):
  File "/home/ubuntu/user/invoke.py", line 8, in <module>
    print(client.generate(prompt, max_new_tokens=64,adapter_id=adapter_id, adapter_source='s3').generated_text)
  File "/opt/conda/envs/pytorch/lib/python3.10/site-packages/lorax/client.py", line 157, in generate
    raise parse_error(resp.status_code, payload)
lorax.errors.GenerationError: Request failed during generation: Server error: An error occurred (404) when calling the HeadObject operation: Not Found

This does not happen for adapters 6 through 50.
Issue 2:
With PREDIBASE_ADAPTERS_BUCKET=lorax-adapters
Several prefixes with naming adapter_{id}, with id being an integer from 1 to 50. Exact same adapter files replicated into each prefix.
Lorax Client call:
client.generate(prompt, max_new_tokens=64,adapter_id=f'adapter_{id}', adapter_source='s3')
For most id's, adapter is donwloaded as expected. For some others (e.g. adapter_id='adapter_2') I get the following error:
Traceback (most recent call last):
  File "/home/ubuntu/user/invoke.py", line 8, in <module>
    print(client.generate(prompt, max_new_tokens=64,adapter_id=adapter_id, adapter_source='s3').generated_text)
  File "/opt/conda/envs/pytorch/lib/python3.10/site-packages/lorax/client.py", line 157, in generate
    raise parse_error(resp.status_code, payload)
lorax.errors.GenerationError: Request failed during generation: Server error: Multiple models found for model_id adapter_2

Even though files at S3 prefix are:
aws s3 ls s3://lorax-adapters/adapter_2/
2024-01-03 21:28:44       1519 .gitattributes
2024-01-03 21:28:44       1307 README.md
2024-01-03 21:28:44        501 adapter_config.json
2024-01-03 21:28:44   13677261 adapter_model.bin
2024-01-03 21:28:44       4091 training_args.bin

Information

[X] Docker
[ ] The CLI directly

Tasks

[X] An officially supported command
[ ] My own modifications

Reproduction
See repro notebook here
Expected behavior
All adapter prefixes in the same bucket are loaded without error

Thanks for reporting this @joaopcm1996, that behavior is surprising. It should work now without needing to set the PREDIBASE_ADAPTERS_BUCKET param. I'll see if I can repro the issue.

Oh I misinterpreted your suggestion in #155 then. I just experimented not passing in PREDIBASE_ADAPTERS_BUCKET at launch and setting adapter_id as the full S3 path; still errored, looking for the adapter in a local folder instead of donwloading it. I made sure to pull the latest image (acct id is anonymized here).
from lorax import Client

client = Client("http://<IP_ADDRESS>:8080")
prompt = "[INST] Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May? [/INST]"
adapter_id = "s3://sagemaker-us-east-1-000000000000/lorax/mistral-adapters/1"

print(client.generate(prompt, max_new_tokens=64,adapter_id=adapter_id, adapter_source='s3').generated_text)

Error:
lorax.errors.GenerationError: Request failed during generation: Server error: Can't find 'adapter_config.json' at '/data/models--s3:----sagemaker-us-east-1-000000000000--lorax--mistral-adapters--11--/snapshots'


feat: show unsaved changes alert while renaming request

Description
Small enhancement, to make sure user doesn't lose their unsaved changes while renaming the request.
Showing confirm unsaved changes modal when rename menu button is clicked on the request item.
Issue: #1462
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Screencast from 2024-04-05 14-59-27.webm

I feel like just saving the request before renaming it might be less annoying, then confirming the "Unsaved changes" dialog.

I feel like just saving the request before renaming it might be less annoying, then confirming the "Unsaved changes" dialog.

yeah I totally agree, I'll update it to just save the request

Merged!
Thank you @therealrinku !
This will go out in the 1.13.0 release. Please subscribe to Discord announcement channel to stay notified on the releases.


Remove MultiCIDRRangeAllocator alpha feature

This feature was removed during its alpha state, more information on https://github.com/kubernetes/kubernetes/pull/121229

/assign @thockin @danwinship @sftim


Why do we always need to judge the log level before printing the log in business logic?

Your question
Like the following code in business logic:
if log.DefaultLogger.GetLogLevel() >= log.DEBUG {
		log.DefaultLogger.Debugf("grpc connection: closed")
}

But the loglevel has been judged in the log lib, Like the following code:
func (l *SimpleErrorLog) Debugf(format string, args ...interface{}) {
	if l.Level >= DEBUG {
		l.levelf(DebugPre, format, args...)
	}
}

Is there some logic I'm missing?
Environment

MOSN Version

Logs

Paste the logs you see.

Thanks for your reply.  @jizhuozhi
I agree with you, just like the code below, we need to make a judgment before printing the log:
	if log.DefaultLogger.GetLogLevel() >= log.DEBUG {
		_, isReq := cmd.(*Request)
		_, isResp := cmd.(*Response)
		if cmd != nil {
			log.DefaultLogger.Debugf("decode command, contextId: %d, req(%v)|resp(%v)|hb(%v), rpc id: %d \n", contextId, isReq, isResp, cmd.IsHeartbeatFrame(), cmd.GetRequestId())
		}
	}

However, I think that in most scenarios we don't need this judgment, which can make the code cleaner and more functional.

Good point, your case is actually similar to the first one @jizhuozhi provided, which is essentially to avoid allocate resources in non-debug level, which makes sense, but here are something can be discussed:

about the resources to be allocated:

If what needed is computational resource (such as toJson(request)), we may pass a closure in through the logger to avoid pre-compute, like: log.Debug("%s", func() { toJson(request) })
If what needed is memory resources, maybe pass a value rather than pointer is better, which heap allocation could be avoided

about your case:
The if false {...} may hint the compiler to safely skipped all logic inside it. If we put some dynamically changing value into the condition, then the pointer will still escape out:

➜  mosn git:(master) ✗ cat tmp.go
package main

import (
        "mosn.io/mosn/pkg/protocol/xprotocol/bolt"
        "mosn.io/pkg/log"
)

var condition = false

func main() {
        var cmd interface{}
        cmd = &bolt.Request{}
        if condition {
                _, isReq := cmd.(*bolt.Request)
                _, isResp := cmd.(*bolt.Response)
                if cmd != nil {
                     log.DefaultLogger.Debugf("decode command, req(%v)|resp(%v)|hb(%v)\n", func() { toJson() }, isResp)
                }
        }
}
➜  mosn git:(master) ✗ go build -gcflags=-m tmp.go
# command-line-arguments
./tmp.go:12:8: &bolt.Request{} does not escape
./tmp.go:17:28: ... argument escapes to heap
./tmp.go:17:29: isReq escapes to heap
./tmp.go:17:29: isResp escapes to heap

I found in this case that the escape analysis may be inaccurate.
tmp point$ go build -gcflags='-m' test.go
# command-line-arguments
./test.go:10:8: &bolt.Request{} does not escape
./test.go:16:28: ... argument escapes to heap
./test.go:16:58: isReq escapes to heap
tmp point$ cat test.go
package main

import (
	"mosn.io/mosn/pkg/log"
	"mosn.io/mosn/pkg/protocol/xprotocol/bolt"
)

func main() {
	var cmd interface{}
	cmd = &bolt.Request{}
	_, isReq := cmd.(*bolt.Request)
	_, isResp := cmd.(*bolt.Response)
	isStack := 0
	if log.DefaultLogger.GetLogLevel() >= log.DEBUG {
		if cmd != nil {
			log.DefaultLogger.Debugf("decode command, req(%v)\n", isReq)
		}
	}
	if false {
		if cmd != nil {
			log.DefaultLogger.Debugf("decode command, resp(%v)\n", isResp)
		}
	}
	println(&isReq)
	println(&isResp)
	println(&isStack)
}
tmp point$ go run test.go
0xc000145f67
0xc000145f66
0xc000145f68

I found a issue. https://github.com/golang/go/issues/17725

I'm also in favor of deleting this judgment at the moment.
we can see if there are other scenarios besides @jizhuozhi case.

Hello, @diannaowa , @taoyuanyuan and @LENSHOOD .
Unfortunately, our previous inferences and reality may be somewhat different.
I'm currently working on a latency-based load balancer (#2252), and then doing related benchmarks and performance optimizations (since it's on the hotspot path). There is some logic of DEBUG level logs in my load balancer. In the flame graph, I found a convT64 function. However, there is no escape using pointers in my code, so the only possibility is that it is caused by strings. When I print the call stack, I find that it is true.

In fact, because the log accepts parameters are interface{} (or any in newest GO version)
Debugf(format string, args ...interface{})

so for the primitive type we pass in, even if we don't use the log, the conversion will still happen, which is really a big deal The overhead, so I think this change needs to be cautious, and I will continue to add judgment conditions here to avoid this situation from happening

This is somewhat different from Java. In Java, due to the existence of method inlining, under the action of the JIT compiler, the judgment can be promoted to the caller stack, thereby avoiding the automatic boxing problem caused by passing values. But this is not possible without PGO optimization in Go, so we are better off writing guard statements

Thank you for your kind reminder!
Indeed, we overlooked the issue of passing parameters as interface{}. Since there were no generics in Go before go1.18, for utils like Logger, we could only choose the interface{} type for the parameters.
To avoid dangling pointers, memory allocation requires that heap pointers must not point to the stack. Therefore, when the passed parameter is interface{}, for safety reasons, the compiler can only reallocate the passed parameter on the heap by using runtime.convT64(). This results in a heap allocation even when a primitive type is passed in.
Using generics MAY solve this problem (although I have not tested whether functions with varargs types will still be monomorphized based on GCShape).
Another way is to force the type to be determined at compile-time, similar to the approach used in Uber Zap:
logger.Info("failed to fetch URL",
  // Structured context as strongly typed Field values.
  zap.String("url", url),
  zap.Int("attempt", 3),
  zap.Duration("backoff", time.Second),
)

In short, any modification approach, whether using generics or the Uber Zap, may involve changes to hundreds of lines of code in MOSN. The evaluation of the actual performance impact may be considerable. Therefore, I also believe that simply removing the guard statements is too hasty. I agree with you to keep these guard statements and hope this issue can be resolved in the end.


[FEATURE] Adding Light Mode

Description
It would be nice to have a light mode on this project
Screenshots
No response

It's great having you contribute to this project by creating an issue Make sure you are assigned to this before you work on it and you read the Contributing.md file, Thank you! Welcome to the community :nerd_face:

Why do you want to do such a horrible thing to my project😳

LOL😂 just felt that could be something that looks good to some people but its fine


[TF/MLIR] Graph pruning / canonicalization pass doesn't eliminate some dead constant nodes

This is with the tensorflow trunk at e13ff2da43ab00dba94dd00d87a876b2a03f48e7 (Jul 6).
This is a reduced test case where both nodes/operations in the graph are supposed to be dead (results unused and not side-effecting), but neither the -tf-executor-graph-pruning nor the -canonicalize pass gets rid of them. However, if one of them is removed, -canonicalize is able to eliminate the other. Similar patterns are often DCE'd by -tf-executor-graph-pruning in the presence of other larger islands.
module {
  func @main() attributes {tf.entry_function = {control_outputs = "", inputs = "", outputs = ""}} {
    tf_executor.graph {
      %outputs, %control = tf_executor.island wraps "tf.Const"() {value = dense<1> : tensor<1xi32>} : () -> tensor<1xi32>
      %outputs_0, %control_1 = tf_executor.island wraps "tf.Const"() {value = dense<100> : tensor<1xi32>} : () -> tensor<1xi32>
      tf_executor.fetch
    }
    return
  }
}

To reproduce, run:
$ tf-opt -tf-executor-graph-pruning -canonicalize test_case.mlir

OS: CentOS 8 x86-64.
TF built from sources with GCC 8.3.1 and with --linkopt='-fuse-ld=lld'.

Because if you import a graphdef without any fetch the pruning would just eliminate the entire graph, we rather not do anything: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/mlir/tensorflow/transforms/graph_pruning.cc#L90-L94

On a narrow note, why would it be incorrect to eliminate everything here? Not having a fetch is still defined behavior, right? (I'm thinking about the multiple functions case - one of them could just be empty and completely removed. )

It'd may be correct for a tf function that does not return anything, but at the same time we're trying to move away from the executor dialect for TF2 and functions.

It'd may be correct for a tf function that does not return anything, but at the same time we're trying to move away from the executor dialect for TF2 and functions.

I see. What would the new entry point then be when converting/importing from TF Graphdef?

Mainly SavedModel I think for loading from file.
When running online we're working on having the tracing tf.function directly build MLIR in the first place without going through the Graph data structure.

Please do keep the translation to tf.executor (convert_graph_def python binding) until the in-memory replacement (tracing tf.function) is available. Thanks!

SavedModel are style storing GraphDef (and will continue for a while): so the conversion to tf.executor will stay there for a while!


[BUG] Error: chart requires kubeVersion: < 1.24.0-0 which is incompatible with Kubernetes v1.24.3+k3s1 when install rancher By helm install rancher rancher-latest/rancher   --namespace cattle-system   --set hostname=rancher.test.cn   --set ingress.tls.source=secret   --set privateCA=true

[BUG] Error: chart requires kubeVersion: < 1.24.0-0 which is incompatible with Kubernetes v1.24.3+k3s1
When install rancher By helm install rancher rancher-latest/rancher   --namespace cattle-system   --set hostname=rancher.test.cn   --set ingress.tls.source=secret   --set privateCA=true
K3s has been released to version 1.24, but installing rancher-latest through helm prompts that it is not compatible with the latest version of k3s

This bug also affects me, we are rolling out rancher using the helm terraform provider and therefore can not update rancher to its newest version.

The issue can be resolved by downgrading the K3S version, but we will keep an eye on support for later K3S updates .
Solving steps:

Uninstall the installed K3S：   sh k3s-uninstall.sh
Add the specified K3S version to the installation command：INSTALL_K3S_VERSION=v1.23.9+k3s1

With https://github.com/rancher/rancher/commit/c92675bc5a14e36ecb81af3dfacd2d4f4b6ebec3 the kubeversion was set to < 1.25.0-0. I guess this should fix it, but the current chart release from https://releases.rancher.com/server-charts/latest is still on < 1.24.0-0.
When will the new chart be released?

Kubernetes 1.24 support was added with Rancher 2.6.7, which was released yesterday. Older versions of Rancher, like 2.6.6 do not work with Kubernetes 1.24 and because of this also can't be installed on a Kubernetes 1.24 cluster.

I mention my Solution for this here https://github.com/rancher/rancher/issues/43092#issuecomment-2423135070


Does Aspose.Pdf not support Chinese?

Q：Pdf does not support Chinese it? Will it be supported in the future?
operation：html to pdf...
version: aspose.pdf 21.5
platform：net 5.0
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = @"https://mp.weixin.qq.com/s/dWGzQI5mdmItVXcuxVLOQA";
    HtmlLoadOptions options = new HtmlLoadOptions(url) {};
    Document pdfDocument = new Document(GetContentFromUrlAsStream(url), options);
    pdfDocument.Save(AppDomain.CurrentDomain.BaseDirectory + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

I couldn't reproduce directly with provided code - downloaded page was missing content so I downloaded original page
                public static void ConvertHTMLtoPDFAdvanced_WebPage()         {             var input = InputFolder + "chinese_issue.htm";             HtmlLoadOptions options = new HtmlLoadOptions();             Document pdfDocument = new Document(input, options);             pdfDocument.Save(OutputFolder + "chinese_issue_out.pdf");         }
With adjustments I checked that original issue is resolved and there's no broken characters in result file
chinese_issue_out.pdf
As oroginal question was about absence of support of Chinese in Aspose Pdf, I consider issue as resolved


WRAPPER STATE : 3rd Party

Please Help
I am unable to use Remote desktop. I'm using quick heal antivirus

I will be highly obliged.

Closed as duplicate of https://github.com/stascorp/rdpwrap/issues/1595

I have copied termserv file but it's still the same

Closed as duplicate of #1595

I have updated termser file still not able to use. It's the same issue. Please help

Closed as duplicate of #1595

I have updated termser file still not able to use. It's the same issue. Please help

Go to official Telegram channel for getting help

](url)
Can you please help on this case?


🐛 [firebase_messaging]Can't use any plugin in onBackgroundMessage

I am using Firebase Push Notifications and I want to execute some of my code when onBackgroundMessage is triggered. It actually gets triggered because I print in console, but I tried to use several plugins and no luck. I get error every time something like (Unhandled Exception: MissingPluginException(No implementation found for method play on channel flutter_ringtone_player)). I believe this is because there is no context of application in background state of application, but what is this function good for then and what can I actually do in it?

Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  print("firebaseMessagingBackgroundHandler ${message.data}");
    MyPlugin.showNotification(
      "Demo App", message.data["body"] ?? "");
}

void main() async {
  FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

  DartPluginRegistrant.ensureInitialized();
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseMessaging messaging = FirebaseMessaging.instance;

  NotificationSettings settings = await messaging.requestPermission(
    alert: true,
    announcement: false,
    badge: true,
    carPlay: false,
    criticalAlert: false,
    provisional: false,
    sound: true,
  );
  print('User granted permission: ${settings.authorizationStatus}');

  runApp(MaterialApp(
    home: MyApp(),
    theme: ThemeData(brightness: Brightness.dark, primaryColor: Colors.red),
  ));
}

E/flutter ( 7177): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: MissingPluginException(No implementation found for method showNotification on channel my_plugin)

My plugin is V2
Thanks

@nguyenhuutinh
Can you provide flutter doctor -v ? There was a similar issue raised in flutter repo https://github.com/flutter/flutter/issues/75416 and another one from this repo and you can go through and see if they help.

Thanks @darshankawar for your prompt response. I'm really appreciate it.
I found that in my case (my function was called in firebaseMessagingBackgroundHandler) , my plugin only was called onAttachedToEngine(),
but onAttachedToActivity() didn't call, activity is null.
so I have to call  channel.setMethodCallHandler(this) in onAttachedToEngine()

Does that mean your issue is resolved ?

yes


Added ability to preview Pages without them going live

Hey guys, every time I use Refinery for a client they always ask for the ability to Preview their Page changes without them going live.  So I thought this might be useful for the project.  The way I've done it, you can preview new or existing Pages, and I've also included some requests specs.  Let me know what you think.
Thanks

Awesome! When I read my email this morning I thought it was just an issue saying can we have it, not a pull request implementing it! You win 5 gold stars!

I'll take a look at tweaking the two first points you made tonight, but I'm unsure how to go about making _form_actions more "dynamic".

Yeah, I'm not saying you have to.. but maybe we need some hook where we can add more buttons per form.  ?

This will likely be affecting by me merging #1234 in a few minutes

I fixed the previewing routes to work with nested pages, removed the exception catching I was doing to find an existing page, and added a spec for nested pages.

Thank you @supairish I've made a few modifications in 094d3abeb5119b8fbf079ff3b0de82304c9b6e2f and pushed it to master!
This is an often requested feature so it's awesome to have it :)


Shortcut for adding tabs,  plus fixing the flickering issue

This PR fixes the flickering issue for the headless tabs while reducing the amount of code necessary to manage the index and ARIA attributes.
We do it by using an inline component to manage the root tabs component
This allows us to create tabs by using an alternative shorter syntax:
<Tabs>
  <TabPanel title="tab 1"> Panel 1 </TabPanel>
</Tabs>

Which will automatically be translated to:
<Tabs>
  <TabList>
     <Tab> Tab 1 </Tab>
  </TabList>
  <TabPanel > Panel 1 </TabPanel>
</Tabs>

I have read the CLA Document and I hereby sign the CLA

@all-contributors please add @wmertens for code, research, ideas, tests and docs


WYOMING - Data Issue

Hello,
The Wyoming Department of Health received a positive COVID-19 lab result on a patient that says they were never tested. We received no information about the ordering facility or ordering provider to try and track down what might have caused this test result.
The accession number is BEE82A0E-66E1-44CD-B7A6-660811816C03
Can you help us figure out where this lab result came from?

@anshulkumar-usds

Followed up with Cue on 11/2 to understand root cause.