What is the reason for the error that occurred during the installation of AV2 API?

Building wheels for collected packages: av2
Building editable for av2 (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building editable for av2 (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [55 lines of output]
Running maturin pep517 build-wheel -i /home/qh/anaconda3/envs/av2/bin/python --compatibility off --editable
📦 Including license file "/home/qh/av2-api/NOTICE"
🍹 Building a mixed python/rust project
🔗 Found pyo3 bindings
🐍 Found CPython 3.8 at /home/qh/anaconda3/envs/av2/bin/python
📡 Using build options features from pyproject.toml
Compiling autocfg v1.1.0
Compiling libc v0.2.141
Compiling proc-macro2 v1.0.56
Compiling quote v1.0.26
Compiling unicode-ident v1.0.8
Compiling cfg-if v1.0.0
Compiling libm v0.2.6
Compiling scopeguard v1.1.0
Compiling syn v1.0.109
Compiling crossbeam-utils v0.8.15
Compiling memchr v2.5.0
Compiling futures-core v0.3.28
Compiling once_cell v1.17.1
Compiling serde_derive v1.0.160
Compiling version_check v0.9.4
Compiling futures-sink v0.3.28
Compiling adler v1.0.2
Compiling serde v1.0.160
Compiling static_assertions v1.1.0
Compiling log v0.4.17
Compiling rayon-core v1.11.0
Compiling either v1.8.1
Compiling crc32fast v1.3.2
Compiling miniz_oxide v0.6.2
Compiling pkg-config v0.3.26
Compiling futures-channel v0.3.28
Compiling num-traits v0.2.15
Compiling memoffset v0.8.0
Compiling crossbeam-epoch v0.9.14
Compiling num-integer v0.1.45
Compiling lock_api v0.4.9
error: could not compile proc-macro2 (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
💥 maturin failed
Caused by: Failed to build a native library through cargo
Caused by: Cargo build finished with "exit status: 101": PYO3_ENVIRONMENT_SIGNATURE="cpython-3.8-64bit" PYO3_PYTHON="/home/qh/anaconda3/envs/av2/bin/python" PYTHON_SYS_EXECUTABLE="/home/qh/anaconda3/envs/av2/bin/python" "cargo" "rustc" "--release" "--features" "pyo3/extension-module" "--manifest-path" "/home/qh/av2-api/rust/Cargo.toml" "--message-format" "json" "--lib" "--crate-type" "cdylib"
error[E0635]: unknown feature proc_macro_span_shrink
--> /home/qh/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/src/lib.rs:92:30
|
92 |     feature(proc_macro_span, proc_macro_span_shrink)
|                              ^^^^^^^^^^^^^^^^^^^^^^
  error: aborting due to previous error

  For more information about this error, try `rustc --explain E0635`.

  Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/home/qh/anaconda3/envs/av2/bin/python', '--compatibility', 'off', '--editable'] returned non-zero exit status 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building editable for av2
Failed to build av2
ERROR: Could not build wheels for av2, which is required to install pyproject.toml-based projects

Resolved. "cargo update"

@EchoQiHeng Hi, I meet the same problem with you, when I try to run "cargo update" in conda enviroment, raise another problem:error: could not find Cargo.toml in /home/qf/WORK/QCNet or any parent directory. Do you know how to solve it, my Rust and Cargo is installed in "/home/qf/.cargo" .

@EchoQiHeng Hi, I meet the same problem with you, when I try to run "cargo update" in conda enviroment, raise another problem:error: could not find Cargo.toml in /home/qf/WORK/QCNet or any parent directory. Do you know how to solve it, my Rust and Cargo is installed in "/home/qf/.cargo" .

git clone https://github.com/argoverse/av2-api
cd av2-api
cargo update

@EchoQiHeng Thanks! I have "cargo update" successfully. But after "cargo update", I run "pip install git+https://github.com/argoverse/av2-api#egg=av2" to install and still got "ERROR: Failed building editable for av2" .How did you solve it at last?

git clone https://github.com/argoverse/av2-api
pip install -e /path_to_root_directory_of_the_repo/


Typo "VS code"→"VS Code"

https://docs.microsoft.com/en-us/azure/data-explorer/debug-inline-python
related "https://github.com/MicrosoftDocs/dataexplorer-docs.ja-jp/pull/6"
#PingMSFTDocs

@hyoshioka0128 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


How to use the function when there is no public network

In the process of building an image in build, you need to access github to pull the code. It cannot be used without a public network. How to create a function without accessing the public network

Using a private code repository or using local source code build.
The shipwright had supported from v0.6.0. OpenFunction can support it by adding a filed BundleContainer . You can try to implement this feature.


[Feature]: Implement questions engine for Artisan

🚀 Feature Proposal
The developer should be able to make questions and get the answer in commands. Tip: Inquirer
Motivation
With question, we should be able to get more data from what the user wants to do in that respective command.
Example
Example using a make:crud Artisan command:
node artisan make:crud

> What will be the name of your CRUD?
User

> Do you want to add a new column?
yes

> What is the name of your column?
name

> What is the lenght of your column?
255

> What is the default value of your column? (set "null" for null value)
null

> Select your column options:

[ ] nullable
[ ] unique
[ ] hidden
[ ] primary

Is there a library that you recommend that does this job or just the Inquirer?

There might be other libraries to do that, but I think that Inquirer has a good API. We can integrate Inquirer easily in Command class and implement some methods to retrieve data in different ways from the user:

ask Just get the user input
secret Same as ask method, but the user input will not appear for him
confirm Ask the user if he wants to proceed and return true or false
checkbox Create a list of options to the user where only one can be selected and return the only one selected
listCheckbox Create a list of options to the user where more than one can be selected and return the selected ones as array

import { Artisan, Command } from '@athenna/artisan'

export class List extends Command {
  /**
   * The name and signature of the console command.
   *
   * @return {string}
   */
  get signature() {
    return 'example'
  }

  /**
   * The console command description.
   *
   * @return {string}
   */
  get description() {
    return 'Command description.'
  }

  /**
   * Execute the console command.
   *
   * @return {Promise<void>}
   */
  async handle() {
    const options = ['1', '2', '3']

    const username = await this.ask('What is your username?') // 'Lenon'
    const password = await this.secret('What is your password?') // '1234'
    const isConfirmed = await this.confirm('Do you wish to proceed?') // true
    const number = await this.checkbox('Select one number:', options) // '1'
    const numbers = await this.listCheckbox('Select numbers:', options) // ['1', '3']
  }
}

These methods could be implemented using the Inquirer question object and the prompt method.


Lexical Analyzer

The Lexical Analyzer program translates a stream of individual letters, which are generally grouped as lines, into a stream of lexical tokens. Tokenization, for example, of source code words and punctuation symbols. The project’s main goal/purpose is to take a C file and generate a sequence of tokens that can be utilized in the next stage of compilation. This should also account for any error handling requirements that may arise during tokenization.

Hey @dwijmistry11 , I would like to work on this issue.
Kindly Assign me this Issue.


FIX-#6000: BUG: HDK: Unable to read csv, containing a date with timezone

The read_cvs() method disables the timestamp fields parsing if the parse_dates argument is of type bool, however, the default value is None and, in this case, the parsing should also be disabled.
Note: dates without timezone are still parsed. See #3485.

[x] first commit message and PR title follow format outlined here

NOTE:  If you edit the PR title to match this format, you need to add another commit (even if it's empty) or amend your last commit for the CI job that checks the PR title to pick up the new PR title.

[x] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] signed commit with git commit -s
[x] Resolves #6000
[x] tests added and passing
[ ] module layout described at docs/development/architecture.rst is up-to-date

@AndreyPavlenko please update the PR title


VLAN order messed up on TL-WR842N-V2 and interface eth1.x won't come up.

Hello!
Yesterday I created an LEDE image with imgbuilder for my TP-Link WR842N-V2 and the port order is totally messed up.
Here is what I found out how the ports are mapped:
 physical       swconfig       luci (*)
=======================================
     0              0           LAN4
     1              2           LAN2
     2              3           LAN1
     3              4           CPU
     4              1           LAN3
=======================================

(*) LuCI Master (git-16.339.77170-5127dd6)
    LEDE Reboot CURRENT r2400+38-a245772

As you can see, it looks like LUCI somehow reversed swconfig's port order.
Besides that I also noticed that creating a new vlan with VID 4 will fail to create a new interface eth1.4, I had to do that manually in the config files by adding 	option ifname 'eth1.4' to a interface in /etc/config/network for it to show up

The missing eth1.4 is by design, the system will onyl create it once you use it somewhere. Merely declaring the swconfig vlan results in no Linux net device.
The port order you see in LuCI follows what LEDE specifies in the board defaults:
https://github.com/lede-project/source/blob/master/target/linux/ar71xx/base-files/etc/board.d/02_network#L281
The order is supposed to follow whats printed on the routers case on the outside. What would be the correct mapping of the external port numbers to the swconfig ones (ignoring LuCI) in your case?

What would be the correct mapping of the external port numbers to the swconfig ones (ignoring LuCI) in your case?

This is shown in the table above. As an example on how to correctly read row4:
If a PC is connected to the physical port 3 (as shown in the casing), swconfig will show port 4 as active and LUCI will show CPU as active.
Beware, I have here some routers from TPLink and even between versions of the same model, swconfig's response under openwrt was different regarding active ports. So, this change should only be apply to WR842N-V2 and NOT V1 or V3, since I cannot tell how swconfig behaves for them.
Just to clarify what's going on with eth1.4. On openwrt I would create a new VLAN and immediately after that a new interface would appear as an option under physical settings. This is no longer the case, the option "Software VLAN: eth1.4" simply wasn't there to be selected. There was therefore no way to "use" the new interface from LUCI, I had to assign it manually to the bridge.

I was mainly wondering about the fact that swconfig responds to all five external ports because the blue wan one is supposed to be on a different nic (eth0).
So from the info in your table combined with a photo I found online (http://biblebox.org/wp-content/uploads/2014/08/IMG_0270-1024x768.jpg), the schema would be:
        Power  LAN4    LAN3    LAN2    LAN1    WAN     USB
         (*) | [...] | [...] | [...] | [...] | [...] | [.]
swconfig port:   1       4       3       2      n/a
netdev:        eth1    eth1    eth1    eth1    eth0

swconfig port 5: unconnected
swconfig port 0: CPU (connection to eth1)

Is the above diagram correct?

Btw, can you also please provide a copy of your current /etc/board.json ?

You diagram is correct. There is no Port5 in swconfig. As you correctly guessed the blue (wan) port is another physical interface (eth0), completely detached from the switch.
As you asked: board.json

Okay, thank you. I think the missing eth1.4 is a consequence of them isdetected CPU port (LuCI only offers an ethX.VID if what it considers to be the CPU port is tagged.

Can you please try the following fix: http://git.lede-project.org/e19b661
You can apply it manually to your device by editing /etc/board.d/02_network, then delete your /etc/board.json and /etc/config/network and finally run /bin/board_detect.
This will rebuild board.json to reflect the updated switch layout and should cause LuCI to properly display the switch topology.

Did as you told me but it made matters worse.
There is a new VLAN with VID2 created by default on port 4 and 0. Normally this only happens for devices where WAN resides on the same switch, like WDR4300-V1.
Apart from that, it creates now twice as many ports. This is the new board.json and can see 8 ports in LUCI.  I tried reverting /etc/board.d/02_network to a saved version but I keep getting 8 ports. Hold on, I'll try again.

Ok, this is getting even stranger. I thought I had made an error by editing 02_network and downloaded this version from git and copied it to /etc/board.d/ in order to restore everthing. Afterwards I deleted board.json and rebooted the router.
Now I have 12 ports on the VLAN interface. No idea what's causing this.

@rafwes if you do a fresh install do you still have this issue?

@cshoredaniel: I saw the patch has been integrated into LEDE. As soon as we get a release candidate of 17.01 with a clear upgrade path the final release, I will test it. I'll come back to you then.

@cshoredaniel @jow-
I've just flashed the router with 17.01-rc1 and can confirm that the port order is correct and the interface eth1.4 shows up as expected. Kudos and thanks for that! However I had a soft-brick when creating a new VLAN with LUCI, requiring to boot the device into failsafe to recover. Here is what happens:
By default, VLAN is not turned on the device's switch, since WAN resides on another physical interface. So br-lan bridges wifi0 and eth1. If you activate VLAN, all ports are assigned to VID1 but /etc/config/network is not updated accordingly to bridge eth1.1 instead of eth1, rendering the device inaccessible.
One solution would be to turn VLAN by default on the factory images or take care of /etc/config/network when activating VLAN for the first time.
Again, thanks for all the help, you're amazing.

@rafwes Thanks for the report!  You might want to discuss the vlan issue with upstream; I've noticed the same behaviour if one uses uci (not luci) to enable the switch but forget to enable the vlan.  It probably make sense to open that as a new 'feature request' issue.


Dead link in doc

In https://docs.gradle.org/7.1/userguide/userguide_single.html#sec:command_line_debugging as description for --scan is the text "Create a build scan with fine-grained information about all aspects of your Gradle build." where "build scan" links to https://gradle.com/build-scans which currently is a dead link.

The link is now correct.


Express matmul vjps in terms of matmul

Nice, is the motivation mainly to get rid of the call to einsum?

Nice, is the motivation mainly to get rid of the call to einsum?

Yes. There might be a performance advantage to this version, particularly for small arrays, by avoiding all the parsing that einsum and its vjp have to do, I haven't profiled it yet though.

Thanks, Jamie!
I thought matmul might also be faster than einsum because it could more readily call BLAS routines, but after poking around it looks like matmul's implementation kinda sucks and just calls into einsum anyway for the stacked case. I think that's an upstream numpy issue, though, and I would guess this implementation is at least as fast as the previous one.

Oh that's a shame :(. Even dot sucks in some cases because BLAS doesn't (yet) support arbitrarily strided arrays. There was a good description of how numpy deals with different strides posted here:

how do you perform a GEMM operation on two arrays with arbitrary strides? Currently, NumPy attempts to detect a number of special cases: if the strides in both arrays imply a column-major layout, then call BLAS directly; if one of them has strides corresponding to a row-major layout, then set the corresponding transA/transB argument, etc. – and if all else fails, either copy the data into a contiguous buffer, or else fall back on a naive triple-nested-loop GEMM implementation. (There's also a check where if we can determine through examining the arrays' data pointers and strides that they're actually transposes of each other, then we instead dispatch to SYRK.)


[BUG]

🙇♂🙇♂🙇♂注意：XrayR等非V2Board问题请前往项目方提问
🙇♂🙇♂🙇♂Note: XrayR and other non-V2Board issues please go to the project side to ask questions
The V2Board version number you are using
1.7.2
Briefly describe the problem you are experiencing
NaN days before expiration, in persian lang
Unfortunately, in Persian, the number of remaining days is displayed as NAN, what is the reason?
Screenshot of the reported error(Please do desensitization)
(https://s2.uupload.ir/files/screenshot_2022-12-25_032544_x01j.jpg)

fixed?


ts-node don't support import method calls

please post to npm,thks

Hello @wuyou331 ,
this is quite a breaking change.
Now, Expression should be handled as global known type so there is no need to import it.
But if You add import statement into the declaration file, that declaration is not global anymore.
Are Your changes working for You? Are You importing the Expression or it still works without importing?
Anyway, I'm not happy with a lot of things in this package and I plan rework.
If it is OK for You, I will make Expression part of exports from module, remove whole declaration.d.ts file and publish this changes as new major version in 2 days.


Is there a command to bring a window to the foreground?

Does cmdow have a command to bring a window (behind another window) to the foreground?
Thank you

Yes, the /ACT switch will activative a window which will bring it to the foreground.
https://ritchielawrence.github.io/cmdow/#usage


project url re-written with incorrect url

Whenever trying to set a project url to be git@github.com:user/project the ghprb plugin always rewrites the url as git@github.com:user/project.git/ which breaks the github server config in ghprb.
This is a duplicate of #539 which seems to have been closed without resolution.

Can you add a screenshot of your settings? Or the build.xml?

Cant't use SSH ?
https://github.com/jenkinsci/ghprb-plugin/blob/19ac57913bcb08c99aada4f31fbe50cfaa6a8079/src/main/java/org/jenkinsci/plugins/ghprb/Ghprb.java#L62

@mthhs  resolve by using https

Thank you @xwartz
The documentation should probably be updated, as it states:
When creating a job, specify that is connects to git. Under "Github project", put in: git@github.com:Person/Project.git Under "Source Code Management" select Git, and put in git@github.com:Person/Project.git

@mthhs would be great if you can provide the PR for this. :)


User management without admin rights

Hello, Is there a way to add/remove users without admin rights? Currently I can grant user handling premission to a specific group, but there is no "add account" button in the accounts page (without admin rights), so they only can edit the existing users.

Hellow,
Unfortunately no, the "Add Account" button is only visible for super admins. You can still access the page directly on /accounts/create, and you can also create user accounts on this page, but since only super admins are able to choose a group each new created user will be automatically assigned to Admin (the default value), which is probably not what you want.
Reference:

Add-Account Button: https://github.com/agentejo/cockpit/blob/next/modules/Cockpit/views/accounts/index.php#L10
Group Select Field: https://github.com/agentejo/cockpit/blob/next/modules/Cockpit/views/accounts/account.php#L161

~ Sam.

Thank you!


api,pkg: add slot strategy to block device switching

Here I introduce the concept of "slot", which is a way to control the number of
devices that namespace can have in a given time and when there is a device
limitation. The "slot" is a document that is created when a device is
"accepted" and its status change to "removed" when the device is deleted.
A "slot" with the status "removed" expires after a period of time, allowing a
new device to be accepted at its place.

Closed in favor of https://github.com/shellhub-io/shellhub/pull/2630


Getting an error while forming multiple connections

What version of gRPC and what language are you using?
1.54.2, Python
What operating system (Linux, Windows,...) and version?
MacOS Monterey - 12.3
What runtime / compiler are you using (e.g. python version or version of gcc)
python version
What did you do?
I am currently working on a federated learning project and I am using Flower framework for that. This is the repo from which I am using the code. In this project they are using just a single server but in my project I want to use 3 servers. I want to receive from 3 servers, train it once and send back to 3 servers. I modified this code for creating a 3 server communication but I am getting an error (error mentioned below).
This is my modified code:
# Copyright 2020 Adap GmbH. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""Flower client app."""

import sys
import time
from logging import INFO
from typing import Callable, Dict, Optional, Union

from flwr.common import (
    GRPC_MAX_MESSAGE_LENGTH,
    EventType,
    event,
    ndarrays_to_parameters,
    parameters_to_ndarrays,
)
from flwr.common.address import parse_address
from flwr.common.constant import (
    MISSING_EXTRA_REST,
    TRANSPORT_TYPE_GRPC_BIDI,
    TRANSPORT_TYPE_GRPC_RERE,
    TRANSPORT_TYPE_REST,
    TRANSPORT_TYPES,
)
from flwr.common.logger import log
from flwr.common.typing import (
    Code,
    EvaluateIns,
    EvaluateRes,
    FitIns,
    FitRes,
    GetParametersIns,
    GetParametersRes,
    GetPropertiesIns,
    GetPropertiesRes,
    NDArrays,
    Status,
)

from .client import Client
from .grpc_client.connection import grpc_connection
from .grpc_rere_client.connection import grpc_request_response
from .message_handler.message_handler import handle
from .numpy_client import NumPyClient
from .numpy_client import has_evaluate as numpyclient_has_evaluate
from .numpy_client import has_fit as numpyclient_has_fit
from .numpy_client import has_get_parameters as numpyclient_has_get_parameters
from .numpy_client import has_get_properties as numpyclient_has_get_properties

EXCEPTION_MESSAGE_WRONG_RETURN_TYPE_FIT = """
NumPyClient.fit did not return a tuple with 3 elements.
The returned values should have the following type signature:

    Tuple[NDArrays, int, Dict[str, Scalar]]

Example
-------

    model.get_weights(), 10, {"accuracy": 0.95}

"""

EXCEPTION_MESSAGE_WRONG_RETURN_TYPE_EVALUATE = """
NumPyClient.evaluate did not return a tuple with 3 elements.
The returned values should have the following type signature:

    Tuple[float, int, Dict[str, Scalar]]

Example
-------

    0.5, 10, {"accuracy": 0.95}

"""

ClientLike = Union[Client, NumPyClient]

# pylint: disable=import-outside-toplevel,too-many-locals,too-many-branches
def start_client(
    *,
    server_address: str,
    client: Client,
    grpc_max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
    root_certificates: Optional[Union[bytes, str]] = None,
    rest: bool = False,  # Deprecated in favor of `transport`
    transport: Optional[str] = None,
) -> None:
    """Start a Flower client node which connects to a Flower server.

    Parameters
    ----------
    server_address : str
        The IPv4 or IPv6 address of the server. If the Flower
        server runs on the same machine on port 8080, then `server_address`
        would be `"[::]:8080"`.
    client : flwr.client.Client
        An implementation of the abstract base
        class `flwr.client.Client`.
    grpc_max_message_length : int (default: 536_870_912, this equals 512MB)
        The maximum length of gRPC messages that can be exchanged with the
        Flower server. The default should be sufficient for most models.
        Users who train very large models might need to increase this
        value. Note that the Flower server needs to be started with the
        same value (see `flwr.server.start_server`), otherwise it will not
        know about the increased limit and block larger messages.
    root_certificates : Optional[Union[bytes, str]] (default: None)
        The PEM-encoded root certificates as a byte string or a path string.
        If provided, a secure connection using the certificates will be
        established to an SSL-enabled Flower server.
    rest : bool (default: False)
        DEPRECATED - USE 'transport' INSTEAD.
        Defines whether or not the client is interacting with the server using the
        experimental REST API. This feature is experimental, it might change
        considerably in future versions of Flower.
    transport : Optional[str] (default: None)
        Configure the transport layer. Allowed values:
        - 'grpc-bidi': gRPC, bidirectional streaming
        - 'grpc-rere': gRPC, request-response (experimental)
        - 'rest': HTTP (experimental)

    Examples
    --------
    Starting a gRPC client with an insecure server connection:

    >>> start_client(
    >>>     server_address=localhost:8080,
    >>>     client=FlowerClient(),
    >>> )

    Starting an SSL-enabled gRPC client:

    >>> from pathlib import Path
    >>> start_client(
    >>>     server_address=localhost:8080,
    >>>     client=FlowerClient(),
    >>>     root_certificates=Path("/crts/root.pem").read_bytes(),
    >>> )
    """
    event(EventType.START_CLIENT_ENTER)

    server_addresses = ["localhost:8080", "localhost:5040", "localhost:5000"]
    server_addresses_after_parsing = []

    for add in server_addresses:
        # Parse IP address
        parsed_address = parse_address(add)
        if not parsed_address:
            sys.exit(f"Server address ({add}) cannot be parsed.")
        host, port, is_v6 = parsed_address
        address = f"[{host}]:{port}" if is_v6 else f"{host}:{port}"

        server_addresses_after_parsing.append(address)

    # Set the default transport layer
    if transport is None:
        transport = TRANSPORT_TYPE_REST if rest else TRANSPORT_TYPE_GRPC_BIDI

    # Use either gRPC bidirectional streaming or REST request/response
    if transport == TRANSPORT_TYPE_REST:
        try:
            from .rest_client.connection import http_request_response
        except ModuleNotFoundError:
            sys.exit(MISSING_EXTRA_REST)
        if server_address[:4] != "http":
            sys.exit(
                "When using the REST API, please provide `https://` or "
                "`http://` before the server address (e.g. `http://<IP_ADDRESS>:8080`)"
            )
        connection = http_request_response
    elif transport == TRANSPORT_TYPE_GRPC_RERE:
        connection = grpc_request_response
    elif transport == TRANSPORT_TYPE_GRPC_BIDI:
        connection = grpc_connection
    else:
        raise ValueError(
            f"Unknown transport type: {transport} (possible: {TRANSPORT_TYPES})"
        )

    def create_connections(address):
        with connection(address, max_message_length=grpc_max_message_length, root_certificates=root_certificates) as conn:
            receive, send = conn
            return receive, send

    receive_objects = []
    send_objects = []

    for ser_add in server_addresses_after_parsing:
        receive_obj, send_obj = create_connections(ser_add)
        receive_objects.append(receive_obj)
        send_objects.append(send_obj)

    print("Printing receive objects")
    print("##########################")
    print(receive_objects)
    print("##########################")

    print("Printing send objects")
    print("##########################")
    print(send_objects)
    print("##########################")

    while True:
        sleep_duration: int = 0
        server_messages = []

        while True:
            for i in range(0,3):
                print(i)
                rec_obj = receive_objects[i]
                server_message = rec_obj()
                server_messages.append(server_message)

                if len(server_messages) == 0:
                    time.sleep(3)
                    continue

            print("Printing server messages")
            print("##########################")
            print(server_messages)
            print("##########################")

            client_message, sleep_duration, keep_going = handle(client, server_messages[2])

            for j in range(0,3):
                send_obj = send_objects[j]
                send_obj(client_message)

            if not keep_going:
                break

        # while True:
        #     server_message = receive_obj()

        #     print("##########################")
        #     print("Printing server message")
        #     print(server_message)
        #     print("##########################")

        #     if server_message is None:
        #         time.sleep(3)  # Wait for 3s before asking again
        #         continue
        #     client_message, sleep_duration, keep_going = handle(
        #         client, server_message
        #     )
        #     send_obj(client_message)
        #     if not keep_going:
        #         break
        if sleep_duration == 0:
            log(INFO, "Disconnect and shut down")
            break
            # Sleep and reconnect afterwards
        log(
            INFO,
            "Disconnect, then re-establish connection after %s second(s)",
            sleep_duration,
        )
        time.sleep(sleep_duration)

    event(EventType.START_CLIENT_LEAVE)

def start_numpy_client(
    *,
    server_address: str,
    client: NumPyClient,
    grpc_max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
    root_certificates: Optional[bytes] = None,
    rest: bool = False,  # Deprecated in favor of `transport`
    transport: Optional[str] = None,
) -> None:
    """Start a Flower NumPyClient which connects to a gRPC server.

    Parameters
    ----------
    server_address : str
        The IPv4 or IPv6 address of the server. If the Flower server runs on
        the same machine on port 8080, then `server_address` would be
        `"[::]:8080"`.
    client : flwr.client.NumPyClient
        An implementation of the abstract base class `flwr.client.NumPyClient`.
    grpc_max_message_length : int (default: 536_870_912, this equals 512MB)
        The maximum length of gRPC messages that can be exchanged with the
        Flower server. The default should be sufficient for most models.
        Users who train very large models might need to increase this
        value. Note that the Flower server needs to be started with the
        same value (see `flwr.server.start_server`), otherwise it will not
        know about the increased limit and block larger messages.
    root_certificates : bytes (default: None)
        The PEM-encoded root certificates as a byte string or a path string.
        If provided, a secure connection using the certificates will be
        established to an SSL-enabled Flower server.
    rest : bool (default: False)
        DEPRECATED - USE 'transport' INSTEAD.
        Defines whether or not the client is interacting with the server using the
        experimental REST API. This feature is experimental, it might change
        considerably in future versions of Flower.
    transport : Optional[str] (default: None)
        Configure the transport layer. Allowed values:
        - 'grpc-bidi': gRPC, bidirectional streaming
        - 'grpc-rere': gRPC, request-response (experimental)
        - 'rest': HTTP (experimental)

    Examples
    --------
    Starting a client with an insecure server connection:

    >>> start_client(
    >>>     server_address=localhost:8080,
    >>>     client=FlowerClient(),
    >>> )

    Starting a SSL-enabled client:

    >>> from pathlib import Path
    >>> start_client(
    >>>     server_address=localhost:8080,
    >>>     client=FlowerClient(),
    >>>     root_certificates=Path("/crts/root.pem").read_bytes(),
    >>> )
    """
    # Start
    start_client(
        server_address=server_address,
        client=_wrap_numpy_client(client=client),
        grpc_max_message_length=grpc_max_message_length,
        root_certificates=root_certificates,
        rest=rest,
        transport=transport,
    )

def to_client(client_like: ClientLike) -> Client:
    """Take any Client-like object and return it as a Client."""
    if isinstance(client_like, NumPyClient):
        return _wrap_numpy_client(client=client_like)
    return client_like

def _constructor(self: Client, numpy_client: NumPyClient) -> None:
    self.numpy_client = numpy_client  # type: ignore

def _get_properties(self: Client, ins: GetPropertiesIns) -> GetPropertiesRes:
    """Return the current client properties."""
    properties = self.numpy_client.get_properties(config=ins.config)  # type: ignore
    return GetPropertiesRes(
        status=Status(code=Code.OK, message="Success"),
        properties=properties,
    )

def _get_parameters(self: Client, ins: GetParametersIns) -> GetParametersRes:
    """Return the current local model parameters."""
    parameters = self.numpy_client.get_parameters(config=ins.config)  # type: ignore
    parameters_proto = ndarrays_to_parameters(parameters)
    return GetParametersRes(
        status=Status(code=Code.OK, message="Success"), parameters=parameters_proto
    )

def _fit(self: Client, ins: FitIns) -> FitRes:
    """Refine the provided parameters using the locally held dataset."""
    # Deconstruct FitIns
    parameters: NDArrays = parameters_to_ndarrays(ins.parameters)

    # Train
    results = self.numpy_client.fit(parameters, ins.config)  # type: ignore
    if not (
        len(results) == 3
        and isinstance(results[0], list)
        and isinstance(results[1], int)
        and isinstance(results[2], dict)
    ):
        raise Exception(EXCEPTION_MESSAGE_WRONG_RETURN_TYPE_FIT)

    # Return FitRes
    parameters_prime, num_examples, metrics = results
    parameters_prime_proto = ndarrays_to_parameters(parameters_prime)
    return FitRes(
        status=Status(code=Code.OK, message="Success"),
        parameters=parameters_prime_proto,
        num_examples=num_examples,
        metrics=metrics,
    )

def _evaluate(self: Client, ins: EvaluateIns) -> EvaluateRes:
    """Evaluate the provided parameters using the locally held dataset."""
    parameters: NDArrays = parameters_to_ndarrays(ins.parameters)

    results = self.numpy_client.evaluate(parameters, ins.config)  # type: ignore
    if not (
        len(results) == 3
        and isinstance(results[0], float)
        and isinstance(results[1], int)
        and isinstance(results[2], dict)
    ):
        raise Exception(EXCEPTION_MESSAGE_WRONG_RETURN_TYPE_EVALUATE)

    # Return EvaluateRes
    loss, num_examples, metrics = results
    return EvaluateRes(
        status=Status(code=Code.OK, message="Success"),
        loss=loss,
        num_examples=num_examples,
        metrics=metrics,
    )

def _wrap_numpy_client(client: NumPyClient) -> Client:
    member_dict: Dict[str, Callable] = {  # type: ignore
        "__init__": _constructor,
    }

    # Add wrapper type methods (if overridden)

    if numpyclient_has_get_properties(client=client):
        member_dict["get_properties"] = _get_properties

    if numpyclient_has_get_parameters(client=client):
        member_dict["get_parameters"] = _get_parameters

    if numpyclient_has_fit(client=client):
        member_dict["fit"] = _fit

    if numpyclient_has_evaluate(client=client):
        member_dict["evaluate"] = _evaluate

    # Create wrapper class
    wrapper_class = type("NumPyClientWrapper", (Client,), member_dict)

    # Create and return an instance of the newly created class
    return wrapper_class(numpy_client=client)  # type: ignore

def run_client() -> None:
    """Run Flower client."""
    log(INFO, "Running Flower client...")
    time.sleep(3)

This is the error that I getting for the first client (I am using 2 clients):
Traceback (most recent call last):
  File "/home/saurav/saurav_flower/flower/examples/quickstart_huggingface/client_1.py", line 154, in <module>
    main()
  File "/home/saurav/saurav_flower/flower/examples/quickstart_huggingface/client_1.py", line 150, in main
    fl.client.start_numpy_client(server_address="localhost:8080", client=IMDBClient())
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/app.py", line 1254, in start_numpy_client
    start_client(
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/app.py", line 1141, in start_client
    server_message = rec_obj()
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/grpc_client/connection.py", line 106, in receive
    return next(server_message_iterator)
  File "/home/saurav/.conda/envs/saurav_flwr/lib/python3.9/site-packages/grpc/_channel.py", line 475, in __next__
    return self._next()
  File "/home/saurav/.conda/envs/saurav_flwr/lib/python3.9/site-packages/grpc/_channel.py", line 864, in _next
    raise self
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
        status = StatusCode.CANCELLED
        details = "Channel closed!"
        debug_error_string = "CANCELLED:Channel closed! {grpc_message:"Channel closed!", grpc_status:1}"

This is the error that I am getting for the second client:
Traceback (most recent call last):
  File "/home/saurav/saurav_flower/flower/examples/quickstart_huggingface/client_2.py", line 175, in <module>
    main()
  File "/home/saurav/saurav_flower/flower/examples/quickstart_huggingface/client_2.py", line 171, in main
    fl.client.start_numpy_client(server_address="localhost:8080", client=IMDBClient())
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/app.py", line 1254, in start_numpy_client
    start_client(
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/app.py", line 1141, in start_client
    server_message = rec_obj()
  File "/home/saurav/saurav_flower/flower/src/py/flwr/client/grpc_client/connection.py", line 106, in receive
    return next(server_message_iterator)
  File "/home/saurav/.conda/envs/saurav_flwr/lib/python3.9/site-packages/grpc/_channel.py", line 475, in __next__
    return self._next()
  File "/home/saurav/.conda/envs/saurav_flwr/lib/python3.9/site-packages/grpc/_channel.py", line 864, in _next
    raise self
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
        status = StatusCode.CANCELLED
        details = "Channel closed!"
        debug_error_string = "CANCELLED:Channel closed! {grpc_message:"Channel closed!", grpc_status:1}"

What did you expect to see?
I expect to see a successful connection.
What did you see instead?
I got the above mentioned error.
Can I get some help please?

@gnossen @XuanWang-Amos

Responded here.


Location search doesn't work with Chinese input method

I'm submitting a bug report
Brief Description
I am trying to search for a location name in Chinese but the website failed to recognize input
How do we replicate the issue ?

Use the browser environment and input method specified below
Go to the "Location" input box in "filter" part of the page
Type Chinese names of location, like "新疆"

What  is the expected behaviour ?
The website should be able to recognize the Chinese input and search location that contain the matching Chinese name
What  is the current behaviour, (attach relevant screenshots) ?

It still tell me "Type to search" even after I finished typing, as if I didn't type anything

When does this occur ?

Always
Please tell us about your environment:

Windows 10
Vivaldi 3.3.2022.47
Browser addon: Google Input Method
Google Input Method setting: Cantonese Phonetic
Input mode: Chinese characters, Half-width, Chinese punctuation
Other Information / context:

I think the problem here is that we enable the search only when we type 3 characters. We should check the locale of the browser and enable it with any number of chars when the locale is Japanese, Chinese, Korean and some other Asiatic languages.

I would like to work on this.
With that said, this requirement of at least 3 characters is not a problem only in certain Asian locales. There are also multiple cities, municipalities etc. where the name is only 2 Latin-script letters. Examples:

https://en.wikipedia.org/wiki/Bo,_Sierra_Leone
https://en.wikipedia.org/wiki/Ii,_Finland
and more at https://en.wikipedia.org/wiki/List_of_short_place_names

I would start with:

Changing minimum character requirement from 3 to 2.
Disabling minimum character requirement if input text contains any characters from a specified set of scripts according to Unicode classification. These would include at least Han, Hangul, Hiragana and Katakana but probably also some others are needed.

Browser locale and input method can correlate with the used script but as far as I understand these are separate concepts. You can type place names in Chinese while using the browser in a different language and still want those Chinese search results.
If we didn't require any number of characters, the logic would be simpler and allow searching also certain place names where the whole name is just 1 Latin-script letter. Examples can be seen in the above mentioned list of short place names. Could we somehow make it possible to remove this limit completely? Would this perhaps require limiting the number of results when the number of characters is small?


Create block-info docker - Backport

This is merged to master in PR #1440 . This was not tested in LR because we don't run docker containers there. This was tested locally.

Retro-approved for backport.


Support tags in blogs entries

I suppose it should add search capabilities

@mdelapenya This is a part of a current conversation with @vitorfernandes and @ygorcosta about improving the blog's navigation and ui.

We'll revisit this in a appropriate time.


Visual Entity Navigator won't load (offline) GitHub source files

I wanted to download the source files, modify them and then load them back for testing purposes but when I do so it starts loading and then simply hangs with the message "Loading and resolving entity documents, please wait...".
It is possible to get the source files used when you click on "Load from Github!" or fix the source files in Github so they can be loaded from the desktop and get the same results using either method?

@jschof, Hi, and thanks for the interest in CDM. Current version of the Entity Navigator does not support "load from local files" function. We are working on improving this experience and support this functionality

@jschof can you please tell us what files are you trying to load with the navigator? e.g. custom built, copies from GitHub?

I tried to load the files from the schemaDocuments folder. If the results were the same as when you click on "Load from Github!" then my intent was to start modifying the source files to create my own custom build.
What I did not know at the time was that the GitHub files also contained the Entity Navigator source files (in the docs folder) and that there were many hard-coded references in the index.html file which make the exercise non-trivial.
I did manage to create my own model that works well except if you look under the covers at the Status tab there are errors for objects that I am not using (I.e. have removed):

resolving references...
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'Team' to a known object
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'BusinessUnit' to a known object
unable to resolve the reference 'User' to a known object
unable to resolve the reference 'Team' to a known object
unable to resolve the reference 'Activity' to a known object
unable to resolve the reference 'Contact' to a known object
unable to resolve the reference 'Account' to a known object

BTW for those looking to so a similar exercise you may want to modify SchemaViz.css to include object property wrapping, much easier / preferable to scrolling.
.property_table_detail_value
{
    white-space: pre-wrap;    /* Display formatted definitions*/
}

BTW, we are hard at work on a major update to the CDM OM (and navigator as part of that) that will make it possible and much easier to integrate you own folders of content into an overall schema 'corpus'. Stay tuned.

Not sure if this is a resolved issue now for you, but we had the same experience. When we removed the "other versions" (left the un-numbered) versions it worked. Looks like 0.7 is not compatible with the visualizer? Anyway... removing 0.7, 0.8, 0.8.1 we were able to get local files to load.

Fixed in Microsoft CDM Release Version Update: 1.0.9

Hi @jschof , the "Load from files" option has been working for a while. Please ensure you do remove older versions as suggested by @sbrown-ai as they are old and hence not compatible.


Failing to run on 3rd step

on the third step when i go to run i get this error. Any ideas?
./docker_run.bash -c /home/pi/inventory-hunter/config/newegg_rtx_3080.yaml -e<EMAIL_ADDRESS>-r <IP_ADDRESS>
the inventory-hunter docker image does not exist... please build the image and try again
build command: docker build -t inventory-hunter .

Couple thoughts...

Make sure you are running the command from the directory /home/pi/inventory-hunter.  You can see where you're at with pwd.
Run docker image list - is the image name listed as inventory-hunter?

For instance, here's what mine shows:
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
inventory-hunter    latest              621b73c32053        10 seconds ago      1.65GB

Hmm i was in that folder while trying to launch. Here is the result of the docker image list command.
Linux pi 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l
root@pi:/home/pi/inventory-hunter# docker image list      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE                                               9d50c207c058        6 hours ago         1.34GB
python              3.9                 1e73204649e2        11 days ago         694MB                               root@pi:/home/pi/inventory-hunter#

Got it to work. On the last command of step 1 i was leaving the period off the end. docker build -t inventory-hunter .
Got it running now. Can you run multiple instances for multiple config files?

Yes, you can.  That's exactly how I use it.  Simply change the config file referenced by -r argument.  It will create multiple docker containers -- you can view running ones with docker ps

Awesome! It seems to be working good at first with log readouts like this....

I2020-11-29 17:49:54,102 gigabyte-geforce-rtx-3080-gv-n3080gaming-oc-10gd: not in stock
I2020-11-29` 17:50:01,794 gigabyte-geforce-rtx-3080-gv-n3080vision-oc-10gd: not in stock
I2020-11-29 17:50:08,639 msi-geforce-rtx-3080-rtx-3080-gaming-x-trio-10g: not in stock

then after about a minute they turn to this....

E2020-11-29 17:50:19,659 evga-geforce-rtx-3080-10g-p5-3881-kr: scrape failed
E2020-11-29 17:50:21,658 evga-geforce-rtx-3080-10g-p5-3883-kr: caught exception during request: Message: invalid session id

E2020-11-29 17:50:21,659 evga-geforce-rtx-3080-10g-p5-3883-kr: scrape failed
E2020-11-29 17:50:23,658 evga-geforce-rtx-3080-10g-p5-3885-kr: caught exception during request: Message: invalid session id

E2020-11-29 17:50:23,659 evga-geforce-rtx-3080-10g-p5-3885-kr: scrape failed
E2020-11-29 17:50:25,657 evga-geforce-rtx-3080-10g-p5-3895-kr: caught exception during request: Message: invalid session id

My guess is you need to pull down the code again and rebuild the image, I had a similar issue before he reverted back to a different method of scraping.
You can stop your existing images with docker stop <name>.
Pull the code down again with git pull.
Then rebuild and try again.

I am trying
git pull https://github.com/EricJMarti/inventory-hunter.git
but getting this in return

fatal: not a git repository (or any of the parent directories): .git

Any ideas?

Just git pull
Don't put the URL after it.

Thank you for all the help. Appreciate it! I got the git pull to work. Whats the command to rebuild? Pretty new to linux stuff

No worries!  Everyone is new at some point.
Run the steps from the README.md file.
docker build -t inventory-hunter .
What git pull did was pull down the latest updated code from the remote respository (Github).  The build command then builds a docker image using the latest code you just grabbed.
Then after this, run the code again with your command that started with ./docker_run.bash

Finally got it running for about 5 mins now and no errors! Thanks again for all the help. I picked a terrible time to start my first build lol. Hopefully this helps find me a 3080 and 5950x.

Well it runs fine and works but the email trigger is failing. I put a test link in there and this is the result...

I2020-11-29 22:39:03,787 msi-geforce-rtx-2080-ti-rtx-2080-ti-gaming-x-trio: now in stock at 1553.99!
E2020-11-29 22:39:03,893 caught exception
Traceback (most recent call last):
File "/src/run.py", line 32, in main
hunt(args, config, driver)
File "/src/hunter.py", line 121, in hunt
engine.run()
File "/src/hunter.py", line 43, in run
self.scheduler.run(blocking=True)
File "/usr/local/lib/python3.9/sched.py", line 151, in run
action(*argument, **kwargs)
File "/src/hunter.py", line 58, in tick
self.process_scrape_result(s, result)
File "/src/hunter.py", line 95, in process_scrape_result
self.send_alert(s, result, f'now in stock at {current_price}!')
File "/src/hunter.py", line 116, in send_alert
self.alerter(result.alert_subject, result.alert_content)
File "/src/hunter.py", line 27, in call
with smtplib.SMTP(self.relay) as s:
File "/usr/local/lib/python3.9/smtplib.py", line 253, in init
(code, msg) = self.connect(host, port)
File "/usr/local/lib/python3.9/smtplib.py", line 339, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/local/lib/python3.9/smtplib.py", line 310, in _get_socket
return socket.create_connection((host, port), timeout,
File "/usr/local/lib/python3.9/socket.py", line 843, in create_connection
raise err
File "/usr/local/lib/python3.9/socket.py", line 831, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
root@pi:/home/pi/inventory-hunter#

Did you test your email first before running the command according to the SMTP Tutorial posted in the README file?
If you have it on the same machine as the docker, use <IP_ADDRESS> as your SMTP relay IP address, instead of your local LAN IP.
Something like:
./docker_run.bash -c /home/pi/inventory-hunter/config/newegg_rtx_3080.yaml -e<EMAIL_ADDRESS>-r <IP_ADDRESS>

Ah you got it i had the ip address of the router plugged in instead of <IP_ADDRESS>. Changing that fixed it and test email came through. Thank you!!!


Dart int_enum does not compile

cases/int_enum.dart:6:7: Error: 'RED' is already declared in this scope.
  var RED = auto();
      ^^^
cases/int_enum.dart:2:7: Context: Previous declaration of 'RED'.
  ST0 RED;
      ^^^
cases/int_enum.dart:7:7: Error: 'GREEN' is already declared in this scope.
  var GREEN = auto();
      ^^^^^
cases/int_enum.dart:3:7: Context: Previous declaration of 'GREEN'.
  ST1 GREEN;
      ^^^^^
cases/int_enum.dart:8:7: Error: 'BLUE' is already declared in this scope.
  var BLUE = auto();
      ^^^^
cases/int_enum.dart:4:7: Context: Previous declaration of 'BLUE'.
  ST2 BLUE;
      ^^^^
cases/int_enum.dart:16:7: Error: 'R' is already declared in this scope.
  int R = 1;
      ^
cases/int_enum.dart:12:7: Context: Previous declaration of 'R'.
  ST0 R;
      ^
cases/int_enum.dart:17:7: Error: 'W' is already declared in this scope.
  int W = 2;
      ^
cases/int_enum.dart:13:7: Context: Previous declaration of 'W'.
  ST1 W;
      ^

str_enum has the same problems.

@jayvdb - there is a problem with dart pub get vnum. Details in https://github.com/AmirKamali/Flutter_Vnum/issues/7
Do you know if https://github.com/marketplace/actions/flutter-action is usable for CI?

If we manage to land this PR, dart will pass 100% of the tests too.


[Feature Request] Show Prompt vs. Completion Tokens per Run

Current Behavior
Currently, the LangSmith UI appears to only allow showing prompt/completion tokens for an entire project.

The only view on this data that is available per run is total tokens, but not prompt tokens vs. completion tokens.

Desired Behavior
I'd like to be able to show columns for prompt/completion tokens per run, when viewing a project.

Hi @dmyoung9 - you can see the prompt vs. completion tokens in the run tree once you click on a run

I know you can see it there, but I'd like to be able to see them as columns in the overall view, rather than clicking into every run individually.

Sure will make a ticket

@hinthornw I would also like to have this feature.

@shub-kris and @dmyoung9 , the separation is now visible upon hover in the project table

I'll close this issue for now

Yep, looks good enough to me 👌


Station records computer now shows fingerprints

About the PR

Station records computer now shows every person's fingerprint
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

add: Station records computer now shows fingerprints

this makes pads completely useless, this should require uploading prints first

this makes pads completely useless, this should require uploading prints first

as a frequent detective player i really like this

while this is an amazing PR, I do agree that this makes pads redundant. You'd be able to scan prints off objects then just check the station records... although honestly that sounds like more fun gameplay than dragging out all crew to get their prints. It shouldn't affect much as long as syndies remember to wear gloves!

dragging out crew is more 1984 than taking prints of anyone that is arrested which is what i would expect to normally happen to catch repeat offenders

I don’t think this entirely supersedes forensics pads (you might not have access to station records), but I do think that this being in station records is sort of strange. Shouldn’t it be in security records once that’s added?

while this is an amazing PR, I do agree that this makes pads redundant. You'd be able to scan prints off objects then just check the station records... although honestly that sounds like more fun gameplay than dragging out all crew to get their prints. It shouldn't affect much as long as syndies remember to wear gloves!

In my opinion, pads just make playing as a detective more boring, that's all, It doesnt make it like harder, just making the process MUCH longer. Also don't forget that you can wear gloves that make it impossible to recognize who exactly committed a crime

while this is an amazing PR, I do agree that this makes pads redundant. You'd be able to scan prints off objects then just check the station records... although honestly that sounds like more fun gameplay than dragging out all crew to get their prints. It shouldn't affect much as long as syndies remember to wear gloves!

In my opinion, pads just make playing as a detective more boring, that's all, It doesnt make it like harder, just making the process MUCH longer. Also don't forget that a person can wear gloves that make it impossible to recognize who exactly committed a crime

That's exactly my view as well! It would also help detectives handle minor crimes with evidence. I expect syndicates to be experienced enough to wear gloves to the point where pads were redundant anyways!

while this is an amazing PR, I do agree that this makes pads redundant. You'd be able to scan prints off objects then just check the station records... although honestly that sounds like more fun gameplay than dragging out all crew to get their prints. It shouldn't affect much as long as syndies remember to wear gloves!

In my opinion, pads just make playing as a detective more boring, that's all, It doesnt make it like harder, just making the process MUCH longer. Also don't forget that a person can wear gloves that make it impossible to recognize who exactly committed a crime

That's exactly my view as well! It would also help detectives handle minor crimes with evidence. I expect syndicates to be experienced enough to wear gloves to the point where pads were redundant anyways!

But the problem is that almost everyone wears gloves that fully ruins detective's work because it makes it impossible to identify a criminal. This needs to be resolved somehow. Maybe by adding like more ways to recognize the person. By DNA from blood on the floor for example.

yeah there needs to be a way to analyze 1. blood inside patients (blood type, reagents etc) for med and 2. blood stains on the floor for det though that will take a lot of reworking

fucked up a bit w re-requesting review lol

fucked up a bit w re-requesting review lol

its a github funny

i believe this does duplicate SS13 behavior where fingerprints were in records, but i believe like somebody mentioned earlier, this should likely be in security records instead of general records - imo this is fine enough for now though since fingerprints should be in records in some way anyways

i believe this does duplicate SS13 behavior where fingerprints were in records, but i believe like somebody mentioned earlier, this should likely be in security records instead of general records - imo this is fine enough for now though since fingerprints should be in records in some way anyways

i’ll try to add them there later since i wanna try to make DNA mechanic for blood


bug(chat): sending a + converts into a dot

STR:

go to chat
send a ''+''
shows a dot in the chat

note: if you send a + with other chars example test + works fine

Hello

macOS, m1

closing


Suitepath text overlays header

As you can see in the attached screenshot the text of the test overlays the header during running the tests and scrolling in the table:

SQL/Developer version <IP_ADDRESS>
utPLSQL for SQL Developer <IP_ADDRESS>10103.170722
Java(TM) Platform | 1.8.0_212
Windows 10

Yes this is a know issue. Double buffering is already enabled. I currently do not see a way to fix this repainting issue during the run. At the end it should be ok. Right?

Yes this is a know issue. Double buffering is already enabled. I currently do not see a way to fix this repainting issue during the run. At the end it should be ok. Right?

If the test run is finished and I scroll in the grid the UI is updated correctly, yes.

If the test run is finished and I scroll in the grid the UI is updated correctly, yes.

Thanks for the feedback. That's what I experience. AFAIK there is nothing I can do about it (using existing Swing components of course). If you have an idea, then please let me know.

Thanks for the feedback. That's what I experience. AFAIK there is nothing I can do about it (using existing Swing components of course). If you have an idea, then please let me know.

Ok Thanks for the information. I'll close the issue.

Ok Thanks for the information. I'll close the issue.


chore : replace the wrong value in BarChart samples

fix mistake value BarChar sample source.

issue #1138

Thank you!


Fix Edition Roles bug

Adds a simple guard clause to prevent republishing or WorldwideOrganisations being triggered by the updating of associated roles after they have been deleted.
Trello: https://trello.com/c/6BkaykOY/1276-fix-issue-with-some-roles-being-unable-to-be-edited
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

Confirmed this fix works in integration


Use mjml-stub inside a script

Hi,
I would like to be able to do something like this
from mjml import parser

with open(file.mjml, 'r') as mjml_file:
    html = parser(mjml_file)

Is that possible?
Cheers.

I think this code should solve your problem (untested, though mostly copied from mjml.py):
from pathlib import Path
from mjml.mjml2html import mjml_to_html

with Path(mjml_filename).open('rb') as mjml_fp:
    result = mjml_to_html(mjml_fp)
assert not result.errors
html_str = result.html

I think this code should solve your problem (untested, though mostly copied from mjml.py):
from pathlib import Path
from mjml.mjml2html import mjml_to_html

with Path(mjml_filename).open('rb') as mjml_fp:
    result = mjml_to_html(mjml_fp)
assert not result.errors
html_str = result.html

Yes sir!
To take this one step further. Could I pass the mjml file content directly to a mjml-stub function?
result = mjml.some_funtion(mjml_file_content)

Yes sir!
To take this one step further. Could I pass the mjml file content directly to a mjml-stub function?
result = mjml.some_funtion(mjml_file_content)

Currently such a convenience function is not present though adding it would be probably a good idea.
These functions could be named mjml.render_html_from_file(<fp>/<path>) and mjml.render_html_from_string(<str>) and would just return the HTML as str (raising an exception whenever result.errors is not empty). Users who need more control could call mjml.process_mjml_from_file(<fp>/<path>) which would return the result instance.
I'd be happy to merge your pull request 😀 You don't have to implement all the functions but I like to map out the API in advance so the final API is somewhat consistently named.

Currently such a convenience function is not present though adding it would be probably a good idea.
These functions could be named mjml.render_html_from_file(<fp>/<path>) and mjml.render_html_from_string(<str>) and would just return the HTML as str (raising an exception whenever result.errors is not empty). Users who need more control could call mjml.process_mjml_from_file(<fp>/<path>) which would return the result instance.
I'd be happy to merge your pull request 😀 You don't have to implement all the functions but I like to map out the API in advance so the final API is somewhat consistently named.

implemented in e779836
So far no additional API (e.g. mjml.render_html_from_file(<fp>/<path>)) but that can be done in a future PR.


[Bug] Pulsar-Worker - failed to load functions

Search before asking

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

Version
Pulsar version 2.10.2
Minimal reproduce step
Set-up a cluster with dedicated Pulsar Workers / 5 Zookeeper nodes & Brokers/Bookies/Proxies as needed - each of these are separate Linux machines.
Try to upload a function to the worker using :
bin/pulsar-admin --admin-url https://localhost:6751/ functions create --jar /home/user/pulsar-functions.jar  --function-config-file /home/user/deduplication-function-config.yml
Received an error :
Feb 23 11:22:41 pulsar-worker-0005 pulsar[8282]: 11:22:41.499 [function-web-25-7] ERROR org.apache.pulsar.functions.worker.rest.api.FunctionsImpl - Failed process Function public/default/TokenGenerationInfoDeduplicationFunction package:
Feb 23 11:22:41 pulsar-worker-0005 pulsar[8282]: org.apache.distributedlog.exceptions.WriteException: Write rejected because stream public/default/TokenGenerationInfoDeduplicationFunction/5cf0765e-a677-47d1-a7aa-1f76ec8c5b19-pulsar-functions.jar has encountered an error : writer has been closed due to error.
.....
further investigation shown that the issue comes from :
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: java.net.ConnectException: Connection refused
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: at sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[?:?]
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:946) ~[?:?]
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:344) ~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
Feb 23 11:22:38 pulsar-worker-0005 pulsar[8282]: at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1290) ~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
Feb 23 11:22:39 pulsar-worker-0005 pulsar[8282]: 11:22:39.548 [function-web-25-7-SendThread(localhost:2181)] INFO  org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/<IP_ADDRESS>:2181.
Seems that the worker tries to load  the jar of the functions to the localhost.
This is because the entry in the remote Zookeper (/apache-zookeeper-3.7.1-bin/bin/zkCli.sh get /pulsar/functions) looks like :
1
BKDL
{"1":{"str":"localhost:2181"},"2":{"str":"/ledgers"},"3":{"tf":1},"4":{"tf":0},"5":{"str":"localhost:2181"},"6":{"str":"localhost:2181"},"7":{"str":"localhost:2181"}}
Although the settings from the functions_worker.yml & is correctly read by the worker :
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.614 [main] INFO  org.apache.pulsar.functions.worker.PulsarWorkerService - Worker Configs: WorkerConfig(workerId=worker-<IP_ADDRESS>, workerHostname=<IP_ADDRESS>, workerPort=6750, workerPortTls=6751, authenticateMetricsEndpoint=false, includeStandardPrometheusMetrics=false, jvmGCMetricsLoggerClassName=null, numHttpServerThreads=8, httpRequestsLimitEnabled=false, httpRequestsMaxPerSecond=100.0, configurationStoreServers=localhost:2181, configurationMetadataStoreUrl=zk:<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,
and used :
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.624 [main] INFO  org.apache.distributedlog.api.namespace.NamespaceBuilder - No feature provider is set. All features are disabled now.
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.632 [main] INFO  org.apache.distributedlog.impl.BKNamespaceDriver - Created shared zooKeeper client builder dlzk:distributedlog://<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181/pulsar/functions:factory_writer_shared: zkServers = <IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181, numRetries = 3, sessionTimeout = 30000, retryBackoff = 5000, maxRetryBackoff = 30000, zkAclId = null.
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.635 [main] INFO  org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181 sessionTimeout=30000 watcher=org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase@47fce2c4
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.636 [main] INFO  org.apache.zookeeper.ClientCnxnSocket - jute.maxbuffer value is 10485760 Bytes
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.636 [main] INFO  org.apache.zookeeper.ClientCnxn - zookeeper.request.timeout value is 0. feature enabled=false
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.636 [main-SendThread(<IP_ADDRESS>:2181)] INFO  org.apache.zookeeper.ClientCnxn - Opening socket connection to server ip-102-10-14-229.someplace/<IP_ADDRESS>:2181.
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.637 [main-SendThread(<IP_ADDRESS>:2181)] INFO  org.apache.zookeeper.ClientCnxn - SASL config status: Will not attempt to authenticate using SASL (unknown error)
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.637 [main-SendThread(<IP_ADDRESS>:2181)] INFO  org.apache.zookeeper.ClientCnxn - Socket connection established, initiating session, client: /<IP_ADDRESS>:59718, server: ip-102-10-14-229.someplace/<IP_ADDRESS>:2181
Feb 23 08:30:42 pulsar-worker-0005 pulsar[8282]: 08:30:42.640 [main-SendThread(<IP_ADDRESS>:2181)] INFO  org.apache.zookeeper.ClientCnxn - Session establishment complete on server ip-102-10-14-229.someplace/<IP_ADDRESS>:2181, session id = 0x20000049e550004, negotiated timeout = 30000
What did you expect to see?
Functions to be corrected uploaded and to be able to process messages
What did you see instead?
Error creating.
Faulty Zookeper entry :
/apache-zookeeper-3.7.1-bin/bin/zkCli.sh get /pulsar/functions
1
BKDL
{"1":{"str":"localhost:2181"},"2":{"str":"/ledgers"},"3":{"tf":1},"4":{"tf":0},"5":{"str":"localhost:2181"},"6":{"str":"localhost:2181"},"7":{"str":"localhost:2181"}}
Anything else?
Workaround : manually updating the Zookeper entry /pulsar/functions to correct IPs everything works OK.
It seems that there is an initialisation issues somehow.
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

We found the solution - there was a problem in the initialisation parameter for the ZK cluster.
when running the /opt/pulsar/bin/pulsar initialize-cluster-metadata  the parameter that initialise the metadata store  --metadata-store & --configuration-metadata-store  need to be set to actual IPs of the cluster ( not localhost as we were setting them ).


hide irrelevant labels or more detailed label classifications

currently we put everything in the label field. e.g. "cell line, unmapped, external, uc-tfas"
some should be separate attributes. others should be hidden from the resource card.

It would be easier to show everyting in the label field and move other to different fields.

We have usecase attribute for use case searches. Label search will also search for this field, and values would not be shown as a label in web.
fw:usecase       ( "usecase_name" ) ;

problem solved. new attributes will be created.


Charts with non-English names cannot be imported.

The chart cannot be imported if there are non-English characters in the name.
How to reproduce the bug

Create a chart with Russian (or perhaps any non-English) title
Export it
Delete it
Import it (Import successful message)

Expected results
The chart should appear in the list of charts
Actual results
The chart does not appear in the list. When trying to re-import, there is no overwriting suggestion, the chart is imported successfully, but it still does not appear in the list.
Environment
(please complete the following information):

browser type and version: Microsoft Edge 105.0.1343.53
superset version: 2.0.0, 0dda5fe

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
In the exported zip file, the chart files are named 55x.yml, where x is a number in order from 1 (at least in my case). Replacing the "" character with any letter allows you to import charts.

it cause by flask,maybe you can use pypinyin to change the name of the dashboard or chart like this;

@zertyuiop You can see my PR fix the bug and you can close your issue


Get auctions list from the backend

Should get the list of auctions from the backend instead of contacting the explorer directly.

[ ] Active auctions list by lowest remaining time
[ ] Active auctions list by highest remaining time
[ ] Active auctions list by lowest bid
[ ] Active auctions list by highest bid
[ ] Active auctions list by hottest first
[ ] Active auctions list by my auctions first
[ ] Active auctions list by my bids first
[ ] Active auctions list by ERG auctions first
[ ] Active auctions list by non ERG auctions first
[ ] Past auctions page
[ ] My auctions (Owned) page

I am implementing the mentioned back-end services with express js.


Pod installation not working

When I try "$ pod install", I get the following error. I am not able to run the demo project.
[!] Unable to find a specification for SVCalendar (~> 1.0.10)

I'm sorry, but for me it works as expected. Can you provide me more info?

I did a 'pod update' before pod install. This fixed the problem.


Generic function taking array of promises not inferring resolved types into union

Bug Report

🔎 Search Terms
generic function promises union type inference

🕗 Version & Regression Information
As early as 3.3.3, and up to nightly.

This is the behavior in every version I tried, and I reviewed the FAQ for entries about 4.9.5

⏯ Playground Link

Playground link with relevant code
💻 Code

function literals<T>(vars: T[]): T {
    return vars[0]
}

literals([0, "", null, undefined])

function promises<T>(vars: Promise<T>[]): Promise<T> {
    return vars[0]
}

promises([Promise.resolve(0), Promise.resolve(""), Promise.resolve(null), Promise.resolve(undefined)])

🙁 Actual behavior
Error on promises call:
Type 'Promise<string>' is not assignable to type 'Promise<number | null | undefined>'.
  Type 'string' is not assignable to type 'number'.(2322)

🙂 Expected behavior
The inferred type of promises call to be Promise<number | string | null | undefined>, like in the literals call (the type inferred there is string | number | null | undefined).

It's likely that the first non-nullable candidate wins and fixes this inference - nullable candidates are also allowed and added as candidates (likely because this is a common use case). Type parameters appearing at the top-level and in other positions tend to behave slightly differently on purpose. I think this is going to be classified as "Working as intended"/"Design limitation" but I could be wrong.

I believe the operative rule here is that fresh literals are allowed to union during inference, but not unfresh literal types. Regardless, boundary conditions in inference are unavoidable; this isn't a bug.

So then this would be more of a request/inquiry. Should it allow "unfresh" literal types to union? Why is that limitation in place?

I think what's happening here is that, since there are generic calls with type parameters in the return position, we collect those candidate types directly from the function arguments, and so there are effectively 4 candidates here (string, number, null, undefined), and inference correctly "rejects" the call by picking one somewhat arbitrarily, since this is desired behavior.
That doesn't happen in the literals case; intuitively this makes sense because this refactoring is clearly a valid program and so its inlining should also be valid, thus this is desired behavior.
const sn = [0, "", null, undefined];
literals(sn);

So the literals call collects 1 inference candidate (string | number | null | undefined) and the call succeeds.
Unfortunately both of those principles make sense and cannot be simultaneously satisfied.

Ok, given that there's a workable path forward for the same use case by reworking it a bit, and we determined it’s working as intended, I’ll close this out! Thanks!


Consider testing the code examples contained in Javadocs.

We should test these examples to at least ensure that they compile.  I'm not sure what we should use, though.  I did a quick search and found one implementation of doctest for Java: https://github.com/jakewins/javadoctest

I found codesnippet4javadoc which might suit our needs better:
https://github.com/jtulach/codesnippet4javadoc
It introduces a codesnippet tag to replace the code tag. This new tag can link to a method in which you can write the example. When generating javadoc, this tag will be processed by a customized Doclet to grab the content of the example method. Putting code in actual method ensures it is compilable. Correctness can also be ensured by adding unit test for that method.
These methods can be put in other classes so it is easy to write rules be exclude them from output jar.

I've tried the solution and it seems promising.
Code snippets can be defined by wrapping the block with // BEGIN: XXX and // END: XXX and they can be rendered in javadoc by {@codesnippet XXX}.
I've somehow managed to re-organize some javadoc examples. Other examples are incomplete so I just leave them as they are for now.
One big concern is that codesnippet's licence is GPLv3. I am not sure if it is OK even though we do not include or modify the source code.

Confirmed with Gopi that as long as we do not distribute the binary or its derivatives we should be fine with the license.

google-cloud-java invented a script to resolve this issue. The functionality of their tool is pretty the same except that it can inject parameters to add readability. Besides, they also write unit test for the snippets, even though they already have unit tests for the APIs.
I have some initial code example to use codesnippet4javadoc but that it is a little bit outdated. I'll update it and then prepare a PR during my vocation.


GridTable - invalid output (and/or parse)

Since v28.0 the gridtable outputs invalid format. Every version were checked and it works properly up to v27.0.
The source is parsed with Markdown.Parse(rawsource, pipeline); where pipeline is configured with:
var pipeline = new MarkdownPipelineBuilder()
    .UseAutoLinks()
    .UseEmphasisExtras()
    .UseListExtras()
    .EnableTrackTrivia() // NOTE: trackTrivia is necessary to preserve original whitespaces
    .Build();

Since this is a common use-case we would like to find the root cause of the problem. If you need any debug information, let me know!
Source (parsed)
+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | first line    | first line         |
|               | next line     | next line          |
+---------------+---------------+--------------------+
| Bananas       | first line\   | first line\        |
|               | next line     | next line          |
+---------------+---------------+--------------------+

Output with v27.0 (good)
+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | first line    | first line         |
|               | next line     | next line          |
+---------------+---------------+--------------------+
| Bananas       | first line\   | first line\        |
|               | next line     | next line          |
+---------------+---------------+--------------------+

Output with v28.0 to v33.0 (bad)
+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+=+====================+
| Bananas       | first line    | first line         |
|               | next line     | next line          |
+---------------+---------------+--------------------+
| Bananas       | first line\   | first line\        |
|               | next line     | next line          |
+---------------+---------------+--------------------+==============

GridTable - invalid output (and/or parse) #743


FR: I wish View::render() can be used like require()

I mean, it can be used to render file with content like
// view file
return [
   'items' => 'somethings',

];

View::render() exist mainly because of usage of ViewRenderer and theme.
The requested feature does not make sense you should use require operator for this case.
You can use Yii::getAlias() or __FILE__ / __DIR__ magic constants to get actual file name.

I agree with Mdmunir. If its possible, it would be something to implement for 2 reasons:

firstly, it would enable overriding settings of modules locally as render implements Theme::applyTo
secondly, it makes render more consistent as it copies the functionality of require even more

thirdly, it allows parameter passing

you mean View::render() should have a return value if the file has a return statement? Please elaborate more about what this should be good for.

Render mimics require...but not the return of Arrays.

Currently I cannot use require for including _config.php files. Require does not take Theme view file overriding into account, so I have to do this manully every time (with Theme::applyTo)
Why does render not mimic the return behavior of a file. I expected it, just like @mdmunir was.
If render() would enable inclusion of files returning arrays, I can also benefit from parameter scoping, so I pass specific $options to the _config.php file.

render executes a view file and returns the output, why should it return an array?

it sounds like what you want/need is something like an Output object being returned and just has a Output::__toString() implementation instead of an array


.clang-format

I think it would be a great idea if there was a .clang-format file in the root of the project, so the style of the code would be much easier to maintain.

hello @SzAkos04. We use the default format of clang-format. (K & R style) so we don't need a clang-format. ;)


fix: chmod binaries before publishing

The permissions might be lost when uploaded and downloaded again. This ensures they are executables before publishing.
The reason: https://github.com/actions/upload-artifact#permission-loss

@nornagon This is a follow up to #42

Have you observed a failure that this fixes? As far as I can tell, the executables should have the correct permissions after being built, copyFileSync preserves permissions, and npm packages are tarballs, which preserve permissions, so this shouldn't be necessary.

In the Atom CI, there is an EACCES issue which I think is fixed by this.
https://github.visualstudio.com/Atom/_build/results?buildId=97695&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=274baec0-c438-5f9e-e2fa-e6a84e183e1e&l=34

Ah, I see, the permission is lost between Github Actions and npm publish.

The issue is not fixed yet.
https://github.com/atom/atom/pull/21916
I am on Windows. Not sure if that is relevant.

@nornagon Could you merge this, pack the package and test it in a dummy repo? Because I am on Windows, I can't easily verify if the permissions change on Linux binaries.

@aminya publishing should happen automatically, you can test it yourself after that I believe!

It's about an hour and nothing has been published. Are you sure that the publishing is automatic?

Ah, it looks like indeed this repo isn't set up for that. My apologies, most in the Electron organization are.
On closer inspection though, it seems this PR will have no effect, because the published packages do not contain anything in bin/<EMAIL_ADDRESS>

Yes, I made this PR as a follow-up to #40 which was never published too.
Would you please register a new version manually? It will fix #46.


DROP TABLE IF EXISTS fails on non-existent table

When I run DROP TABLE IF EXISTS using %%sql magic on a table that exists, it's dropped. But when I run it on a table that does not exist, I get the following error
java.sql.SQLNonTransientConnectionException: The DDM parameter value 0x1149 is not supported.  An input host variable may not be within the range the server supports.  The connection has been terminated.
I'm running BeakerX release 1.3.0 installed with Conda on the Python3 Kernel.

Hi @Ben-Epstein
can you try to use newer version of Beakerx?, I mean 1.4.1 (https://anaconda.org/conda-forge/beakerx).
I tried "DROP TABLE IF EXISTS" on this version 1.4.1 and It looks like everything works fine. If you reproduce the problem please send us your example.

Hi @jaroslawmalekcodete
Thanks for the reply! I will try to run this on my system and see if I can reproduce. Why is the latest release (1.4.X) not represented on the Github releases?

Thanks Ben, we will release a new version of BeakerX to Github and Dockerhub soon.

Closing this as I'm no longer seeing the issue


WIP: Hacked lock_sr() to work on IDF 3.3. (IDFGH-7684)

WIP: Hacked lock_sr() to work on IDF 3.3.
Also hacked to work as submodule in legacy make build.
Not working.  Not ready to merge.  I created this PR for discussion.

I'm giving up on this.  I took the plunge and upgraded to IDF 4.3...


Provide API key when uploading dSYMs

Goal
When a dSYM is uploaded, the API key should be included when making the call to the upload server. For all plugins and tools, we should try to do this by default if possible (by reading the Info.plist or via an environment variable).
Changeset
Added

The API key parameter has been added to the bugsnag-dsym binary
Fastlane plugin supports API key parametrer, which is read from the Info.plist by default
Fastlane plugin supports config file parameter, allowing you to provide an alternate location for the Info.plist

Changed

Fastlane plugin tests use default options rather than no options.

Tests
Tests were added for the new bugsnag-dsym binary and Fastlane plugin functionality
Inital integration test run with the Fastlane plugin

[x] Run final integration test with Fastlane plugin
[x] Run final integration test with bugsnag-dsym binary

Review

For the submitter, initial self-review:

[x] Commented on code changes inline explain the reasoning behind the approach
[x] Reviewed the test cases added for completeness and possible points for discussion
[x] A changelog entry was added for the goal of this pull request
[x] Check the scope of the changeset - is everything in the diff required for the pull request?
This pull request is ready for:

[x] Initial review of the intended approach, not yet feature complete
[x] Structural review of the classes, functions, and properties modified
[x] Final review

For the pull request reviewer(s), this changeset has been reviewed for:

[x] Consistency across platforms for structures or concepts added or modified
[x] Consistency between the changeset and the goal stated above
[x] Internal consistency with the rest of the library - is there any overlap between existing interfaces and any which have been added?
[x] Usage friction - is the proposed change in usage cumbersome or complicated?
[x] Performance and complexity - are there any cases of unexpected O(n^3) when iterating, recursing, flat mapping, etc?
[ ] Concurrency concerns - if components are accessed asynchronously, what issues will arise
[x] Thoroughness of added tests and any missing edge cases
[ ] Idiomatic use of the language

Merge this at the same time https://github.com/bugsnag/docs.bugsnag.com/pull/809


Fix "method_lines" issue in src/Controllers/Reports/GenerateReportController.php

Method __invoke has 49 lines of code (exceeds 25 allowed). Consider refactoring.
https://codeclimate.com/github/Reconmap/api-backend/src/Controllers/Reports/GenerateReportController.php#issue_5f5154e1b17329000100006b

No longer an issue


Formally requesting F2 support

I would love to be able to take advantage of using F2 to rename symbols as is enabled for language servers of other languages.

Added in v1.1.3


error: "MEMP_NUM_SYS_TIMEOUT" redefined after upgrading to esp-idf-v5.0 (IDFGH-7595)

Environment

Module or chip used: ESP32-WROOM-32E
IDF version: v5.0-dev-3424-gbb23d783c0
Build System: idf.py
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2022r1-RC1) 11.2.0
Operating System: Linux
Power Supply: USB

Problem Description
I have below in my CMakeLists.txt because I use the mdns from lwip.
target_compile_definitions(${lwip} PUBLIC -DMEMP_NUM_SYS_TIMEOUT=LWIP_NUM_SYS_TIMEOUT_INTERNAL+LWIP_MDNS_RESPONDER)
However, I got below build error after pull recent changes in esp-idf master / v5.0 branch.
/home/axel/esp/esp-idf/components/lwip/port/esp32/include/lwipopts.h:1372: error: "MEMP_NUM_SYS_TIMEOUT" redefined [-Werror]
1372 | #define MEMP_NUM_SYS_TIMEOUT            LWIP_NUM_SYS_TIMEOUT_INTERNAL_WOUT_IGMP_MLD6
The commit a6154a5f1060  causes problem.

After update to v5.0-dev-4001-g495d35949d, now I got another similar error.
/home/axel/esp/esp-idf/components/lwip/port/esp32/include/lwipopts.h:669: error: "LWIP_NUM_NETIF_CLIENT_DATA" redefined [-Werror]
I have below line in my CMakeLists.txt
target_compile_definitions(${lwip} PUBLIC -DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 PRIVATE -DLWIP_NETIF_EXT_STATUS_CALLBACK=1)
So I got redefined error. (It was fine when build with esp-idf-v4.x)
I hope my application can be compiled with differet esp-idf versions.
What's your suggestion to fix this?

@david-cermak
I think esp-idf should not define MEMP_NUM_SYS_TIMEOUT otherwise the application cannot change it.
If esp-idf define MEMP_NUM_SYS_TIMEOUT, you must provide a way for users to change the setting.
This is not a big issue but it's an annoy issue because now I need to either modify esp-idf or my CMakeLists.txt
every time when build with esp-idf-v5.0.

@AxelLin
From IDF v5.0 we're switching to lwip's 2.1.3 and have reworked many Espressif's patches from esp-lwip to IDF's port layer in lwip/port (in our effort to converge to lwip upstream).
The benefit for users is that we can simply switch to upstream; the drawback is that will have to find a way for users to apply these "unsupported" (=missing in menuconfig) options (something similar what's been done with the hook file: lwip's hook file was taken by IDF hooks, but provided a means to inject an IDF-lwip hook file)
As for the MEMP_NUM_SYS_TIMEOUT, you're correct. The reason to update it was the patch applied directly to lwip's code
(https://github.com/espressif/esp-lwip/commit/33e3d3eb2ffbb15e4aaa17115c9c216abb3624c8) and thus the config opts should be defined/updated in the same place. The fix for this issue still pending, sorry for the delay. You can evaluate it by switching to 2.1.3-esp-dev and deleting these lines:
https://github.com/espressif/esp-idf/blob/9b8c558e63d95b491355a22e69f247834e899b47/components/lwip/port/esp32/include/lwipopts.h#L1408-L1409

@AxelLin About your comment above https://github.com/espressif/esp-idf/issues/9150#issuecomment-1178575555 and the LWIP_NUM_NETIF_CLIENT_DATA: Just wanted to ask if you use any non-default config number in
https://github.com/espressif/esp-idf/blob/c585618b97d47514b7bf5f361944a8af05348169/components/lwip/Kconfig#L253-L258
Or is it set to 0 via sdkconfig.h?

Hi @david-cermak
Now I use below workaround:
In my CMakeLists.txt:
if (${IDF_VERSION_MAJOR} STRGREATER "4")        #IDF-v5.0+
# Set LWIP_NUM_NETIF_CLIENT_DATA settings via sdkconfig.defaults CONFIG_LWIP_NUM_NETIF_CLIENT_DATA
target_compile_definitions(${lwip} PUBLIC -DLWIP_MDNS_RESPONDER=1 PRIVATE -DLWIP_NETIF_EXT_STATUS_CALLBACK=1)
else()  #IDF-v4.x
target_compile_definitions(${lwip} PUBLIC -DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 PRIVATE -DLWIP_NETIF_EXT_STATUS_CALLBACK=1)
endif()

Then also set LWIP_NUM_NETIF_CLIENT_DATA=1 in my sdkconfig.default


feat(adapter): Add GetDevicesPathsAsync method

Hello,
In our case, we need an additional method in the Adaptor class: GetDevicesPathsAsync
Here is a PR to provide this feature to the community.
Best reagards,
Antoine

Nice feature addition. I'll get it prioritized for testing and a new NuGet package ready to go for you 👍
Thank you, @agardiol

You are welcome. Thanks by advance


Test case failure: ntcf_system.t test case 15

[ W ][ 24MAR2023_03:39:04.415 ][ main ][ ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
Running test case 15
[ W ][ 24MAR2023_03:39:05.117 ][ main ][ ntcf_system.t.cpp:5519 ]: Testing driver EPOLL (static)
[ W ][ 24MAR2023_03:39:05.117 ][ main ][ ntcf_system.t.cpp:7280 ]: ETIMEDOUT (x5)
[ F ][ 24MAR2023_03:39:05.134 ][ main ][ ntcf_system.t.cpp:7333 ]: Assertion failed: connectResult.event().context().error() == ntsa::Error(ntsa::Error::e_CONNECTION_TIMEOUT)
Found: Connection refused (ECONNREFUSED) (connectResult.event().context().error())
Expected: Connection timed out (ETIMEDOUT) (ntsa::Error(ntsa::Error::e_CONNECTION_TIMEOUT))
Aborted (core dumped)

This was originally reported by @michihenning. Perhaps he can help?

This is still happening for me. Vanilla build using Ubuntu 20.04 and gcc 9.4.
Is there anything I can do to help track this down?

I've spent some time and managed to reproduce it on my system. It just happens sporadically.

Nice, glad to hear it!
Please let me know if there is anything I can do on my end to help nail this down.

Nice, glad to hear it!
Please let me know if there is anything I can do on my end to help nail this down.

Could you please share the ouptut of these two commands?
ping <IP_ADDRESS>
traceroute <IP_ADDRESS>
And one more thing:
Can you please change the ip address inside void concernConnectEndpoint3 (Inside ntcf_system.t.cpp) from
    ntsa::Endpoint endpoint(
        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));

to
    ntsa::Endpoint endpoint(
        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));

and say whether the same issue is observed?

I'm running inside a Fusion VM.
$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
From <IP_ADDRESS> icmp_seq=1 Packet filtered
From <IP_ADDRESS> icmp_seq=2 Packet filtered
From <IP_ADDRESS> icmp_seq=3 Packet filtered
From <IP_ADDRESS> icmp_seq=4 Packet filtered

$ traceroute <IP_ADDRESS>
traceroute to <IP_ADDRESS> (<IP_ADDRESS>), 30 hops max, 60 byte packets
 1  _gateway (<IP_ADDRESS>)  0.350 ms  0.251 ms  0.204 ms
 2  <IP_ADDRESS> (<IP_ADDRESS>)  2.768 ms  2.919 ms  2.804 ms
 3  <IP_ADDRESS> (<IP_ADDRESS>)  9.492 ms  9.469 ms  14.158 ms
 4  <IP_ADDRESS> (<IP_ADDRESS>)  14.078 ms !X * *

With the code change to concernConnectEndpoint3, test 15 passes.
But I'm seeing other failures, not on every run.
Test case 17:
Running test case 17
[ W ][ 10MAY2023_23:50:33.525 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver EPOLL (static)
[ W ][ 10MAY2023_23:50:33.527 ][             main ][                   ntcf_system.t.cpp:7529 ]: ETIMEDOUT (x4), ECANCELED
[ W ][ 10MAY2023_23:50:34.229 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver POLL (static)
[ W ][ 10MAY2023_23:50:34.230 ][             main ][                   ntcf_system.t.cpp:7529 ]: ETIMEDOUT (x4), ECANCELED
[ F ][ 10MAY2023_23:50:34.240 ][             main ][                   ntcf_system.t.cpp:7602 ]: Unexpected connect event [ type = ERROR context = [ endpoint = <IP_ADDRESS>:1024 attemptsRemaining = 99 error = [ code = UNREACHABLE number = 113 description = Host is unreachable (EHOSTUNREACH) ] ] ]
[ F ][ 10MAY2023_23:50:34.240 ][             main ][                   ntcf_system.t.cpp:7603 ]: Assertion false: false
Aborted (core dumped)

Test case 14:
Running test case 14
[ W ][ 10MAY2023_23:52:14.069 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver EPOLL (static)
[ W ][ 10MAY2023_23:52:14.070 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
[ W ][ 10MAY2023_23:52:14.772 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver POLL (static)
[ W ][ 10MAY2023_23:52:14.773 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
[ W ][ 10MAY2023_23:52:15.474 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver SELECT (static)
[ W ][ 10MAY2023_23:52:15.475 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
[ W ][ 10MAY2023_23:52:16.175 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver EPOLL (dynamic)
[ W ][ 10MAY2023_23:52:16.176 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
[ W ][ 10MAY2023_23:52:16.877 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver POLL (dynamic)
[ W ][ 10MAY2023_23:52:16.878 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
[ W ][ 10MAY2023_23:52:17.579 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver SELECT (dynamic)
[ W ][ 10MAY2023_23:52:17.579 ][             main ][                   ntcf_system.t.cpp:7160 ]: ECONNREFUSED/ETIMEDOUT (x5)
Running test case 15
[ W ][ 10MAY2023_23:52:18.281 ][             main ][                   ntcf_system.t.cpp:5519 ]: Testing driver EPOLL (static)
[ W ][ 10MAY2023_23:52:18.282 ][             main ][                   ntcf_system.t.cpp:7280 ]: ETIMEDOUT (x5)
[ F ][ 10MAY2023_23:52:18.293 ][             main ][                   ntcf_system.t.cpp:7334 ]: Assertion failed: connectResult.event().context().error() == ntsa::Error(ntsa::Error::e_CONNECTION_TIMEOUT)
Found:    Connection refused (ECONNREFUSED) (connectResult.event().context().error())
Expected: Connection timed out (ETIMEDOUT) (ntsa::Error(ntsa::Error::e_CONNECTION_TIMEOUT))
Aborted (core dumped)

After making the same change to concernConnectEndpoint5 and concernConnectEndpoint7, all tests pass.
diff --git a/groups/ntc/ntcf/ntcf_system.t.cpp b/groups/ntc/ntcf/ntcf_system.t.cpp
index 40db77b..dbf0c4c 100644
--- a/groups/ntc/ntcf/ntcf_system.t.cpp
+++ b/groups/ntc/ntcf/ntcf_system.t.cpp
@@ -7301,7 +7301,8 @@ void concernConnectEndpoint3(const bsl::shared_ptr<ntci::Interface>& interface,
     // Connect the stream socket to the listener socket.

     ntsa::Endpoint endpoint(
-        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        //ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));

     bsl::size_t numErrors = 0;
     NTCCFG_TEST_GT(k_MAX_CONNECTION_ATTEMPTS, 0);
@@ -7549,7 +7550,8 @@ void concernConnectEndpoint5(const bsl::shared_ptr<ntci::Interface>& interface,
     // Connect the stream socket to the listener socket.

     ntsa::Endpoint endpoint(
-        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        //ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));

     bsl::size_t numErrors = 0;
     NTCCFG_TEST_GT(k_MAX_CONNECTION_ATTEMPTS, 0);
@@ -7832,7 +7834,8 @@ void concernConnectEndpoint7(const bsl::shared_ptr<ntci::Interface>& interface,
     // Connect the stream socket to the listener socket.

     ntsa::Endpoint endpoint(
-        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        //ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));
+        ntsa::IpEndpoint(ntsa::Ipv4Address("<IP_ADDRESS>"), 1024));

     bsl::size_t numErrors = 0;
     NTCCFG_TEST_GT(k_MAX_CONNECTION_ATTEMPTS, 0);

@michihenning thank you for this! I'll update the PR to fix these error

@mattrm456 let's close it as I think with the recent changes delivered to main the issue is resolved.


Add support for 16 bit Register.

16 bits register are found in some instruments and we should support them out of the box.

This was closed by #10


Skyline plugin has panicked

I have never had this problem before but today this showed up before opening smash,is there any way i can fix this?

As the message says, a skyline plugin panicked, not skyline. Narrow down which plugin is causing the issue. You also did everything but what the message said, show the details. Show that to the developer of whatever plugin is causing the issue.