[BUG] Transformer base class is inefficient

Describe the bug
I've had a look at the Transformation module, which tbh I have not looked at much since it was completely refactored. tl;dr: its is bloated, hard to understand and very inefficient. I think we should design around it then remove it. So this is my journey through. Lets suppose I build a ShapeletTransformClassifier which extends BaseClassifier. This consists of a pipeline of ShapeletTransform (extends BaseTransform) and RotationForest (a scikit like classifier in our package).
from sktime.classification.shapelet_based import ShapeletTransformClassifier
from sktime.datasets import load_unit_test

trainx, trainy=load_unit_test(return_type="numpy2d", split="train")
stc = ShapeletTransformClassifier()
stc.fit(trainx,trainy)

fit goes to the BaseClassifier fit. This checks the input and finds the meta data, which includes info on data characteristics (number of dimensions, has missing values, unequal length).
        X, y = self._internal_convert(X, y)
        X_metadata = self._check_classifier_input(X, y)
        missing = X_metadata["has_nans"]
        multivariate = not X_metadata["is_univariate"]
        unequal = not X_metadata["is_equal_length"]
        self._X_metadata = X_metadata
        # Convert data as dictated by the classifier tags
        X = self._convert_X(X)

        # Check this classifier can handle characteristics
        self._check_capabilities(missing, multivariate, unequal)

this necessarily requires looking at all data, so if the data has n instances, d dimensions and series length m, this is an O(ndm) operation. Fair enough, a price worth paying I think to check input. Data is also converted here if necessary. Then the private fit is called in ShapeletTransformClassifier. This basically does this (with some other bits), where transformer is ShapeletTransform and estimator is rotation forest.
        X_t = self._transformer.fit_transform(X, y).to_numpy()
        self._estimator.fit(X_t, y)

fit_transform goes to BaseTransformer fit_transform, which calls BaseTransformer fit() then transform(). It gets messy now. fit calls this
       # check and convert X/y
       X_inner, y_inner = self._check_X_y(X=X, y=y)

now _check_X_y is a 250 line function with this docstring
      Returns
       -------
       X_inner : Series, Panel, or Hierarchical object, or VectorizedDF
               compatible with self.get_tag("X_inner_mtype") format
           Case 1: self.get_tag("X_inner_mtype") supports scitype of X, then
               converted/coerced version of X, mtype determined by "X_inner_mtype" tag
           Case 2: self.get_tag("X_inner_mtype") supports *higher* scitype than X
               then X converted to "one-Series" or "one-Panel" sub-case of that scitype
               always pd-multiindex (Panel) or pd_multiindex_hier (Hierarchical)
           Case 3: self.get_tag("X_inner_mtype") supports only *simpler* scitype than X
               then VectorizedDF of X, iterated as the most complex supported scitype
       y_inner : Series, Panel, or Hierarchical object, or VectorizedDF
               compatible with self.get_tag("y_inner_mtype") format
           Case 1: self.get_tag("y_inner_mtype") supports scitype of y, then
               converted/coerced version of y, mtype determined by "y_inner_mtype" tag
           Case 2: self.get_tag("y_inner_mtype") supports *higher* scitype than y
               then X converted to "one-Series" or "one-Panel" sub-case of that scitype
               always pd-multiindex (Panel) or pd_multiindex_hier (Hierarchical)
           Case 3: self.get_tag("y_inner_mtype") supports only *simpler* scitype than y
               then VectorizedDF of X, iterated as the most complex supported scitype
           Case 4: None if y was None, or self.get_tag("y_inner_mtype") is "None"

           Complexity order above: Hierarchical > Panel > Series

       metadata : dict, returned only if return_metadata=True
           dictionary with str keys, contents as follows
           _converter_store_X : dict, metadata from X conversion, for back-conversion
           _X_mtype_last_seen : str, mtype of X seen last
           _X_input_scitype : str, scitype of X seen last
           _convert_case : str, coversion case (see above), one of
               "case 1: scitype supported"
               "case 2: higher scitype supported"
               "case 3: requires vectorization"

uuuhhhh, oookaaay ..... stepping away from the logic of all that .... two things it does is retrieve the meta data again, and it also clones the data (I think). So we then get out of the base fit, into ShapeletTransform fit, do the actual work, and then go to transform in the base class. This calls check_X_y again, thus doing all that convoluted checking, meta data and cloning of data. So we have passed through a mass of confusing code that uses non standard terminology,
     Returns
       -------
       transformed version of X
       type depends on type of X and scitype:transform-output tag:
           |          | `transform`  |                        |
           |   `X`    |  `-output`   |     type of return     |
           |----------|--------------|------------------------|
           | `Series` | `Primitives` | `pd.DataFrame` (1-row) |
           | `Panel`  | `Primitives` | `pd.DataFrame`         |
           | `Series` | `Series`     | `Series`               |
           | `Panel`  | `Series`     | `Panel`                |
           | `Series` | `Panel`      | `Panel`                |
       instances in return correspond to instances in `X`
       combinations not in the table are currently not supported

calls obscure, spaghetti code with  unknown terms like scitype/mtype, cloned the data twice and performed a linear scan three times, before we actually build a model. And this even before we consider the mess that is the so called Vectorisation! Personally, I do not want to use this code.
   def _check_X_y(self, X=None, y=None, return_metadata=False):
       if X is None:
           raise TypeError("X cannot be None, but found None")

       metadata = dict()
       metadata["_converter_store_X"] = dict()

       def _most_complex_scitype(scitypes, smaller_equal_than=None):
           """Return most complex scitype in a list of str."""
           if "Hierarchical" in scitypes and smaller_equal_than == "Hierarchical":
               return "Hierarchical"
           elif "Panel" in scitypes and smaller_equal_than != "Series":
               return "Panel"
           elif "Series" in scitypes:
               return "Series"
           elif smaller_equal_than is not None:
               return _most_complex_scitype(scitypes)
           else:
               raise ValueError("no series scitypes supported, bug in estimator")

       def _scitype_A_higher_B(scitypeA, scitypeB):
           """Compare two scitypes regarding complexity."""
           if scitypeA == "Series":
               return False
           if scitypeA == "Panel" and scitypeB == "Series":
               return True
           if scitypeA == "Hierarchical" and scitypeB != "Hierarchical":
               return True
           return False

       # retrieve supported mtypes
       X_inner_mtype = _coerce_to_list(self.get_tag("X_inner_mtype"))
       y_inner_mtype = _coerce_to_list(self.get_tag("y_inner_mtype"))
       X_inner_scitype = mtype_to_scitype(X_inner_mtype, return_unique=True)
       y_inner_scitype = mtype_to_scitype(y_inner_mtype, return_unique=True)

       ALLOWED_SCITYPES = ["Series", "Panel", "Hierarchical"]
       ALLOWED_MTYPES = self.ALLOWED_INPUT_MTYPES

       # checking X
       X_valid, msg, X_metadata = check_is_scitype(
           X,
           scitype=ALLOWED_SCITYPES,
           return_metadata=True,
           var_name="X",
       )
      X_scitype = X_metadata["scitype"]
       X_mtype = X_metadata["mtype"]
       # remember these for potential back-conversion (in transform etc)
       metadata["_X_mtype_last_seen"] = X_mtype
       metadata["_X_input_scitype"] = X_scitype

       if X_mtype not in ALLOWED_MTYPES:
           raise TypeError("X " + msg_invalid_input)

       if X_scitype in X_inner_scitype:
           case = "case 1: scitype supported"
           req_vec_because_rows = False
       elif any(_scitype_A_higher_B(x, X_scitype) for x in X_inner_scitype):
           case = "case 2: higher scitype supported"
           req_vec_because_rows = False
       else:
           case = "case 3: requires vectorization"
           req_vec_because_rows = True
       metadata["_convert_case"] = case

       # checking X vs tags
       inner_univariate = self.get_tag("univariate-only")
       # we remember whether we need to vectorize over columns, and at all
       req_vec_because_cols = inner_univariate and not X_metadata["is_univariate"]
       requires_vectorization = req_vec_because_rows or req_vec_because_cols
       # end checking X

       if y_inner_mtype != ["None"] and y is not None:

           if "Table" in y_inner_scitype:
               y_possible_scitypes = "Table"
           elif X_scitype == "Series":
               y_possible_scitypes = "Series"
           elif X_scitype == "Panel":
               y_possible_scitypes = "Panel"
           elif X_scitype == "Hierarchical":
               y_possible_scitypes = ["Panel", "Hierarchical"]

           y_valid, _, y_metadata = check_is_scitype(
               y, scitype=y_possible_scitypes, return_metadata=True, var_name="y"
           )
           if not y_valid:
               raise TypeError("y " + msg_invalid_input)

           y_scitype = y_metadata["scitype"]

       else:
           # y_scitype is used below - set to None if y is None
           y_scitype = None
       # end checking y

       # no compabitility checks between X and y
       # end compatibility checking X and y

       # convert X & y to supported inner type, if necessary
       #####################################################

       # convert X and y to a supported internal mtype
       #  it X/y mtype is already supported, no conversion takes place
       #  if X/y is None, then no conversion takes place (returns None)
       #  if vectorization is required, we wrap in VectorizedDF

       # case 2. internal only has higher scitype, e.g., inner is Panel and X Series
       #       or inner is Hierarchical and X is Panel or Series
       #   then, consider X as one-instance Panel or Hierarchical
       if case == "case 2: higher scitype supported":
           if X_scitype == "Series" and "Panel" in X_inner_scitype:
               as_scitype = "Panel"
           else:
               as_scitype = "Hierarchical"
           X = convert_to_scitype(X, to_scitype=as_scitype, from_scitype=X_scitype)
           X_scitype = as_scitype
           # then pass to case 1, which we've reduced to, X now has inner scitype

       # case 1. scitype of X is supported internally
       # case in ["case 1: scitype supported", "case 2: higher scitype supported"]
       #   and does not require vectorization because of cols (multivariate)
       if not requires_vectorization:
           # converts X
           X_inner = convert_to(
               X,
               to_type=X_inner_mtype,
               store=metadata["_converter_store_X"],
               store_behaviour="reset",
           )

           # converts y, returns None if y is None
           if y_inner_mtype != ["None"] and y is not None:
               y_inner = convert_to(
                   y,
                   to_type=y_inner_mtype,
                   as_scitype=y_scitype,
               )
           else:
               y_inner = None

       # case 3. scitype of X is not supported, only lower complexity one is
       #   then apply vectorization, loop method execution over series/panels
       # elif case == "case 3: requires vectorization":
       else:  # if requires_vectorization
           iterate_X = _most_complex_scitype(X_inner_scitype, X_scitype)
           X_inner = VectorizedDF(
               X=X,
               iterate_as=iterate_X,
               is_scitype=X_scitype,
               iterate_cols=req_vec_because_cols,
           )
           # we also assume that y must be vectorized in this case
           if y_inner_mtype != ["None"] and y is not None:
               # raise ValueError(
               #     f"{type(self).__name__} does not support Panel X if y is not "
               #     f"None, since {type(self).__name__} supports only Series. "
               #     "Auto-vectorization to extend Series X to Panel X can only be "
               #     'carried out if y is None, or "y_inner_mtype" tag is "None". '
               #     "Consider extending _fit and _transform to handle the following "
               #     "input types natively: Panel X and non-None y."
               # )
               iterate_y = _most_complex_scitype(y_inner_scitype, y_scitype)
               y_inner = VectorizedDF(X=y, iterate_as=iterate_y, is_scitype=y_scitype)
           else:
               y_inner = None

       if return_metadata:
           return X_inner, y_inner, metadata
       else:
           return X_inner, y_inner

Thanks for writing it up with a specific case, it helps to highlight the issue. I'm with you on this being a pot of spaghetti without a clear reason for existing. I see two separate functionalities that I we could use to split it up.

data transformation - in the sense of sklearn transformers, applying transformations to the data itself e.g. z-score normalization
format conversion - this is all the complex scitype/mtype and the rest of made up terms that do all the introspection and format conversions

I would be in favor of drastically reducing number of supported formats and delegating conversions elsewhere. With fewer formats we could have predictable input/output types and most probably improve performance by skipping all the introspection/conversion.


Register new release

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/70741
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.2 -m "<description of version>" 48d09d1bf6da70a89496fe470a205ff84076e57f
git push origin v0.1.2

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/70741
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.2 -m "<description of version>" 48d09d1bf6da70a89496fe470a205ff84076e57f
git push origin v0.1.2

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/70741
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.2 -m "<description of version>" 48d09d1bf6da70a89496fe470a205ff84076e57f
git push origin v0.1.2

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/70741
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.2 -m "<description of version>" 48d09d1bf6da70a89496fe470a205ff84076e57f
git push origin v0.1.2


Update an account in the service

feature: update an account in the service
scenario: user wants to update an account on the service
Given the user has been authenticated
When the user requests to update
Then the user should have the ability to update


[Query] Native callback to addon layer and from there to javascript layer.

I am new to Native addon concept. I am using NAN to build my native addon.
Following are my layers:

C++ shared library
Native addon layer
Javascript APIs
Javascript Application

I have some query regarding callback mechanism:
Native C++ class
typedef std::function<void(int errorCode)> nativeCallback;
Class NativeClass
{
  public:
       NativeClass() {}
       setCallback(nativeCallback cb) //some function of this clas will call this callback later...
       ....................

};

Addon class
Class AddonClass
{
  public:
       AddonClass() {}
       static addonCallback(AddonClass *pointer) {}
       ....................

};

I tried the follwing:
Define a static function in addon layer and pass it to the native cpp layer.
Result:
I am getting the native callback in my addon layer. But when i am trying to call it to javascript using :
void AddonClass::addonCallback(AddonClass *pointer)  //This object is maintained using std::bind
{
        std::cout <<"[Addon addonCallback] Before getting handle"<<std::endl;
        pointer->handle();   --------------------->   **//This is crashing**
        std::cout <<"[Addon addonCallback] After getting handle"<<std::endl;
       v8::Local<v8::Value> argv[] = { Nan::New("onEvent").ToLocalChecked() };
       pointer->emit->Call(pointer->handle(), 1, argv);

}
When i added Nan::HandleScope scope before getting the handle it is also crashing.
Did i missed anything?
Is it necessary to use libuv library function for storing the addon handle and then to call the callbacks in javascript layer?
Note: I am trying to use event emmiter concept for giving the callbacks to javascript layer
Thanks in advance.

Hello @kkoopa ,
Do you have any suggestion for solving this issue?

Most likely the v8::Function handle is a dangling reference because the v8::Function does not exist. You need to store the v8::Function handle as a persistent refererence.

Hello @kkoopa ,
Thanks for your reply.
I went many sample and got confused that is why i raised a issue here.
If you understand my query, following I am trying to acheive, which is a very general scenario:

ability to get called back from C++ lib into the native addon
ability to call JS code from native addon.

To achieve this do i have to use some libuv functions [ asynworker ] like you have demonstrated here:
async_pi_estimate
Basically my C++ library is pub/sub library:
so, my C++ library subscriber side will be receiving events from socket and as addon layer will register a callback to it, it will be receiving event ..
As you specified in last comment:
 Most likely the v8::Function handle is a dangling reference because the v8::Function does not exist. You need to store the v8::Function handle as a persistent refererence.
But in async_pi_estimate you have commented this:
// Executed inside the worker-thread.
  // It is not safe to access V8, or V8 data structures
  // here, so everything we need for input and output
  // should go on `this`.
  void Execute () {
    estimate = Estimate(points);
  }

I got confused whether in my addon layer callback i can access the V8 object and call the javascript callback.
Can you give me suggestions for how can i acheive my scenario as I have already tried many ways.
Thanks.

You cannot access V8 during AsyncWorker::Execute, which is the routine that does the actual work. After this completes, either HandleOkCallback or HandleErrorCallback will be invoked. There you can use V8 again and call back to javascript.
The test suite contains many more examples. You might want to buffer events in a queue:
https://github.com/nodejs/nan/blob/master/test/cpp/asyncprogressqueueworkerstream.cpp
https://github.com/nodejs/nan/blob/master/test/js/asyncprogressqueueworkerstream-test.js

@kkoopa ,
If i understood correctly, I can not access V8 in my class function which i passed to native layer.
So,
Class AddonClass
{
  public:
       AddonClass() {}
       static addonCallback(AddonClass *pointer) {}
       ....................

};

If I pass addonCallback to the native layer and i receive the callback [Which i am getting currently].
As per you comment I can not call the javascript callback from my addonCallback function although I have the class object?

Based on my understanding of your setup, that is correct. V8 may only be accessed from the main thread. That is why AsyncWorker stores input and output in the object and then sends output back to V8 from the main thread.
On March 21, 2018 5:04:29 PM GMT+02:00, Jay Sharma<EMAIL_ADDRESS>wrote:

@kkoopa ,
If i understood correctly, I can not access V8 in my class function
which i passed to native layer.
So,
Class AddonClass
{
 public:
      AddonClass() {}
      static addonCallback(AddonClass *pointer) {}
      ....................

};

If I pass addonCallback to the native layer and i receive the callback
[Which i am getting currently].
As per you comment I can not call the javascript callback from my
addonCallback function although I have the class object?

@kkoopa ,
First thing,  I am not using async worker.
Query:  Is it possible to acheive the below scenario without libuv or async worker:
Class AddonClass
{
  public:
       AddonClass() {}

       /* This **addonCallback** is passed to c++ library and it will be called by c++ library
       *   whenever C++ library has some data it will be called any point of time till solution runs.
       *   Inside this callback I want to call Js callback, Is it possible?
       */
       static addonCallback(Data data)
       {

       }
};

Please read the deails of addoncallback and let me know if any other details are required.

No.

Hello @kkoopa ,
Thanks for your help.
This issue is being resolved in #1171


Support full width

I'd like to print out my boxes on the terminal's full width 🙏 .

Awesome, thanks ❤


[TensorFlow 2.0] Taking a slice of a Keras Input layer gives a tensor with unknown shape

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Mac OS X 10.14.5
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): v2.0.0-beta0-16-g1d91213fe7 2.0.0-beta1
Python version: 3.6.8
CUDA/cuDNN version: don't have a GPU
GPU model and memory: don't have a GPU

Describe the current behavior
If I create an input layer with Keras and take a slice of it, the slice has
unknown shape:
>>> inputs = tf.keras.Input((10, 10))
>>> inputs.shape
TensorShape([None, 10, 10])
>>> slice = inputs[:,:,:5]
>>> slice.shape
TensorShape(None)

This is a problem when I want to use this slice in something else, e.g. here
with a softmax:
>>> tf.keras.activations.softmax(slice)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "[path_to_my_env]/lib/python3.6/site-packages/tensorflow/python/keras/activations.py", line 66, in softmax
    elif ndim > 2:
TypeError: '>' not supported between instances of 'NoneType' and 'int'

Describe the expected behavior
I'd expect slice to have shape TensorShape([None, 10, 5]).
Code to reproduce the issue
import tensorflow as tf

inputs = tf.keras.Input((10, 10))
assert inputs.shape.as_list() == [None, 10, 10]  # This works
assert inputs[:,:,:5].shape.as_list() == [None, 10, 5]  # Raises ValueError

I was able to reproduce the above mentioned issue on Colab with Tensorflow 2.0.0.beta1. Thanks!

I have the problem, any solution?

@aaronlyt I found a temporary fix to get my code running.  You can call set_shape on a tensor to enforce a specific shape on it.  In my example it would look like this:
>>> inputs = tf.keras.Input((10, 10))
>>> slice = inputs[:,:,:5]
>>> slice.shape
TensorShape(None)
>>> slice.set_shape(inputs.shape[:-1].concatenate(5))
>>> slice.shape
TensorShape([None, 10, 5])

Thanks, it works

I believe the object returned from Input is simply a Tensor -- so this looks like a bug or missing feature in the slide shape function? @aselle is this known?

The code snippet works in TF 1.14 .  However fails with TF 2.0 nightly (2.0.0-dev20190628)

This is fixed with latest tf 2.0 nightly version '2.0.0-dev20190809'. Thanks!

@omalleyt12 was the fixing commit before or after 2.0 branch cut? I'd like to make sure the release has the fix.

@martinwicke oops sorry for not updating this, this (and other related loss-of-shape bugs) were fixed before the cut


When I set download as action it redirects me to my website (query works)

Category

[x] Question
[ ] Documentation issue
[ ] Bug

I am setting the options object like this:
const odOptions = {
      clientId: `${process.env.REACT_APP_ONE_DRIVE_CLIENT_ID}`,
      action: 'query',
      multiSelect: true,
      openInNewWindow: true,
      advanced: {
        redirectUri: 'http://localhost:3000',
        endpointHint: 'api.onedrive.com',
      },
      success: async (results: any) => {
        console.log(results);
      },
      cancel: () => {
        return null;
      },
      error: (error: any) => {
        console.log(error);
      },
    };

When I use it like this the picker opens as it should and I can select the files. Except that way I don't get any kind of url which I can use to download those files. I only get drive and file ids.
When I change the action to download I just get redirected to my website in that new window (no picker). The same thing happens with share. So only query as action works
Why is that happening?
Is there a way that I can download those files using drive and file ids with query action?
I need to download the files in order to upload them to a chat.
[ ]: http://aka.ms/onedrive-api-issues
[x]: http://aka.ms/onedrive-api-issues

Hello, the v7.2 Picker is no longer receiving updates, when possible please migrate to the v8 picker, you can ask questions for v8 picker in this issues list.


Right click add user to rado

An extra menu option for clan chat members to be added to the rando so you don't have to type it out.

Done


Add a const constructor to non mutable classes

It should fix https://github.com/simolus3/drift/issues/1931

I might need some direction for the tests, in what file/folder should I write it?
Also, after running the tests, in my local, I have those modified files:

drift_dev/build/test_cache/build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
drift_dev/build/unit_test_assets/AssetManifest.json
drift_dev/build/unit_test_assets/FontManifest.json
drift_dev/build/unit_test_assets/NOTICES.Z

Should I commit them?
Are there documentation/examples I should updated?

Thanks for your contribution!

I might need some direction for the tests, in what file/folder should I write it?

I think drift_dev/test/writer would be a good place (maybe a new file data_class_writer_test.dart in that folder). You can take a look at the mutable_classes_integration_test.dart file in the same folder for ideas, but I think for this test we can just run the builder and use something like contains('const DataClassName(') as a matcher.
You should also re-run dart run build_runner build in drift/. The generated files in there are committed to the repository and essentially serve as goldens.

These files don't sound familiar and probably shouldn't be committed. What tool did you use for testing? Running dart test in drift_dev doesn't create a build/ folder for me.

Those files look like a flutter test run, in any case, the build folder should probably be excluded in .gitignore.

Thank you for the feedbacks!
I ignored the build/ folder in https://github.com/simolus3/drift/pull/1932/commits/f440f1c91a8e7f82a4b60dde5b5bf0792bf83bba
I run the build runner in drift/ in https://github.com/simolus3/drift/pull/1932/commits/d4364306dd296e5dbc9fa101945c2ff1586a527e
And I added a test in https://github.com/simolus3/drift/pull/1932/commits/9bd2486c852b69f7022d2f30034b038940898017
Tell me if I need to do anything else


[Teams/Android][Formatting/JSON Issue] Unable to Mention someone when using Post Adaptive Card to User and Wait for Response

Platform
What platform is your issue or question related to? (Delete other platforms).

[ ] Desktop
[ ] Android
[ ] iOS

Author or host
Authoring - Using Power Automate for compose cards.
If you're an author, who are you sending cards to? - Sending Cards to Internal staff, using Teams Web/Desktop/Android/iOS
Version of SDK
Unknown - Teams Default
Details
When using Action "Post an Adaptive Card to a Teams User and Wait for a Response", the @mention feature doesn't work.  When using the same code in "Post an Adaptive Card to a Teams User" Action, the mention does work.

Dupe of #5739

Not a Dupe.  This is a completely separate issue.  The issue isn't in documentation, but in the actual performance.
It hasn't been possible to @mention someone in this very specific action card.

@SeanFBrampton - this is an issue for Teams specifically, which is described here: https://github.com/MicrosoftDocs/msteams-docs/issues/3202. This thread should help describe how to @ mention someone using an Adaptive Card in Teams. I apologize for not being clear earlier

@jonmill ,
Can you review the details of the issue?   "When using Action "Post an Adaptive Card to a Teams User and Wait for a Response", the @mention feature doesn't work. When using the same code in "Post an Adaptive Card to a Teams User" Action, the mention does work."
This isn't about figuring out who to send it to and how, this is about correctly trying to mention someone and literally copying the code and not having it work.
This isn't platform to platform but action to action.


PHP notice in PHP8

Expected behavior
No PHP notices :)

Actual behavior
PHP8 is throwing a notice, because of incorrect declaration of function parameters:

Deprecated: Required parameter $data follows optional parameter $sidebar in /{path}/plugins/timber-library/lib/Timber.php on line 462

Steps to reproduce behavior
Just enable the plugin and check output/logs

What version of WordPress, PHP and Timber are you using?
WordPress: 5.7.2
Timber: 1.18.2
PHP: 8.02

How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Via wpackagist/composer.

I’m closing this, because it’s a duplicate of #2450.


JSON reordering is not handled correctly for Newtonsoft

Hello,
I faced issue, can you please advice on below:
On Store Newtonsoft.Json generate valid json with leading $type, but on insert to postgres it's reordered (due to jsonb).
As result on deserialization step dictionary got extra row with $type.
How to check json reordering:
create table test_jsonb_dummy (data jsonb NOT NULL);
INSERT INTO test_jsonb_dummy (data) VALUES
('{"Fields": {"$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.String, mscorlib]], mscorlib","1": "one","test": "test"}}');
select * from test_jsonb_dummy; -- they will be ordered by name, by Newtonsoft.Json by default need $type to be leading
drop table test_jsonb_dummy;
Workaround:
implemented ISerializer interface based on Marten.Services.JsonNetSerializer with MetadataPropertyHandling.ReadAhead setting - see http://www.newtonsoft.com/json/help/html/DeserializeMetadataPropertyHandling.htm for more details

@zagyar Got it, thank you. This'll be fixed in the v0.8 nuget later this week.


Default Values

I have noticed that just setting the value prop e.g. value="myDefaultValue" yields VERY odd results especially when routing to another route with the same form, sometimes the value is not changed to the new default value.
To clarify, my use case is the following.
After submit I redirect to the /new page which is essentially the form however the <Outlet /> renders it with the default value set as value="", in this specific situation the form is not cleared.
The same happens when moving from route to route within the same  when it tries to render the form with value="" i.e. trying to clear it.

I'm sorry I did not clarify, however the above pr does not solve my scenario, as I was not clear enough with the specific use case.
I have updated my original question accordingly.

<Form
  schema={imageCategorySchema}
  className="border-b p-8"
  onTransition={({ transition, setFocus, reset, formState }) => {
    const { isDirty } = formState;
    if (transition.submission && isDirty) {
      setFocus("name");
      reset();
    }
  }}
/>

It seems as though adding the onTransition prop with the following seems to work however surely the default behaviour should be resetting onSubmit anyways?

Any help on this?

Hey @moishinetzer ! Sorry for taking so long, we are in the process of bringing the docs to this repo and improving the overall DX of both the Docs and the library. We are about to finish those tasks and will get back to the issues and PRs soon ;)

@moishinetzer I do believe #98 should fix this. We will ship this PR next week


Map touch inputs to the single enabled display when the 'last' multi-display mode is in use

I'm not certain if this is something you will want to merge as-is, but it was a useful patch for us to resolve issues with touch input devices which do not report which display out they map to.
In our situation we run with -m last, so there is only ever a single enabled display. This PR detects this situation and automatically maps the touch and pointer inputs to this enabled display.
This avoids the need for pre-configuring this using udev rules (I beleive this is considered deprecated anyway?) and allows Cage to automatically work with any touch input device and output display automatically.
I have made sure this works both when the input devices are signalled as added before the outputs and when either the inputs or outputs change.
Related to #243.
Similar in idea to #167 and #193.

I thought that without mapping reported by the (touch) input, it was mapped to the whole output layout. Consequently, if you only have one display enabled, it should be always right.
That was not the case for you @matt-oakes?

That is true, which means it works fine if the output has not transforms applied to it. However, as it's not actually linked to the output itself, it doesn't take into account any transforms which are active on the display. This means that if you have a rotated or flipped display, the touch will be applied in the wrong location.
In our situation we allow have touch displays which can change orientation and rotation so we need to account for that.
This PR makes the link between the input device and the output device properly so transforms are taken into account.

@matt-oakes
Ok, I got it. Thanks for the precision.
This comment from @emersion gives some ideas for input to output mapping. You PR is a very special case of the heuristic solution I guess.

I've just looked again at the wlroots code, and there might actually be a better and more "correct" way to achive the same outcome as this PR does.
When an absolute touch event comes in, it gets the mapped output and transforms it.
When getting the mapped output, it first checks the mapped_output of the input device (the property which this PR currently sets). If that isn't set, it then checks the state->mapped_output property of the wlr_cursor itself.
We can set this by calling wlr_cursor_map_to_output. We would do this whenever we change the single enabled display. This would happen at the same points we're currently calling seat_remap_inputs_to_first_enabled_output in this PR.
I think this actually is the correct behaviour for -m last mode anyway as we would be saying "the cursor is mapped to this single output". Because of this, we wouldn't need to make any changes to the current calls to wlr_cursor_map_input_to_output so if an input device does correctly set the wlr_output propert, this would still be set correctly. It would only fall through to the cursor->state->mapped_output when an input device doesn't have a mapped_output set.
Does that sound like the correct behaviour to you too?


Persistent registry with relation to kubernetes-worker for authentication

We'd like to have a charm that deploys a persistent registry for use with CDK and can be related to kubernetes-worker for authentication so pods can pull images from it without any manual configuration.

@kwmonroe @tvansteenburgh Any update or progress on this?

@kwmonroe Excellent, thanks.

@kwmonroe is the version in the stable channel is still the one without relations to the kubernetes-worker for authentication? Up to this point we've said we'd prefer to wait for that, but I'd like to see what the migration path from the current charm to the one with that relation would be (if it would be service interrupting) and then maybe we can go ahead with deploying the charm as is and migrate to using the relation when that's ready.
Happy to discuss here or IRL.

It seems this is now available with revno 385 or higher of the k8s-worker charm, per discussions on IRC.

@mthaddon apologies for the delay!  Yes, rev 385 or higher of k8s-worker has the registry relation and supports auto-configuring basic auth and tls.
One thing that may be troublesome for you is that the current support is for basic auth.  The registry can be configured with token auth as well (https://github.com/CanonicalLtd/docker-registry-charm#authentication), but token data isn't xfer'd on relation to k8s.  For this issue, is basic-auth what you're looking for, or do you need token-auth as well?


Required update to Node.js 20 following deprecation warning

I've encountered a deprecation warning while using the<EMAIL_ADDRESS>action. The warning states that Node.js 16 actions are deprecated, and it recommends an update to Node.js 20. Here's the warning message I received:
Node.js 16 actions are deprecated.
Please update the following actions to use Node.js 20<EMAIL_ADDRESS>For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.

https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/
The files that seem to be affected are:

https://github.com/DopplerHQ/secrets-fetch-action/blob/main/.github/workflows/test.yml#L12
https://github.com/DopplerHQ/secrets-fetch-action/blob/main/action.yml#L25

Thanks for letting us know about this! We're tracking this internally under ENG-7523. I'll follow up once we've updated to Node 20.


T4 Challenge insufficience balance

Hi, I've started a T4 challenge. And on 2020-11-02 saw that from morning I am not receiving from A to B shielded accounts. After that I noticed that I have not enough balance on A account, even on shielded account I had enough (my issue was here: https://github.com/Concordium/Testnet3-Challenges/issues/1336 ).
Now when I finished the task I saw that on 2020-11-01 at 19:00 UTC just sent 5 tx instead of 10 tx because from earlier issue about insufficient balance on sender A account.
Now question do I need to start from the beginning?
Started from 2020-10-30 till 2020-11-03
2020-10-30 9:00 UTC 10tx
2020-10-30 14:00 UTC 10tx
2020-10-30 19:00 UTC 10tx
2020-10-31 9:00 UTC 10tx
2020-10-31 14:00 UTC 10tx
2020-10-31 19:00 UTC 10tx
2020-11-01 9:00 UTC 10tx
2020-11-01 14:00 UTC 10tx
2020-11-01 19:00 UTC only 5 transactions, because of insufficient balance.
2020-11-02 22:00 UTC 10tx
2020-11-02 19:00 UTC 10tx
2020-11-02 17:00 UTC 10tx
2020-11-03 9:00 UTC 10tx
2020-11-03 11:00 UTC 10tx
2020-11-03 13:00 UTC 10tx

Hi andrste, no, you don't need to start again. If we can later validate that the above transactions were made successfully, your submission will be accepted.

Thanks @concordium-admin I have logs with all tx and I see on my wallet all transactions, thats how I saw that is missing for 5 tx on Nov. 1d. :)

I too have the same problem, insufficient balance, but my transactions are stuck right now and can't send or receive from shielded balance. To my chance my issue occured on last day of the challenge.

@andrste, @alkadeta, I have added a comment to your pull request that T4 will be accepted even without all 10 transactions completed on a single day.

@andrste, @alkadeta, I have added a comment to your pull request that T4 will be accepted even without all 10 transactions completed on a single day.

Just seen it. Thank you 👏


Create 0000-01-02-trivedi-khushi.md

created a branch, created a file and made a commit, and opened a pull request

created a branch, created a file and made a commit, and opened a pull request


V 0.09 pushed

Graphical layout work on the controllers screen.  No data in there yet, just layout work.  Tell me what you think and please provide suggestions.  You can enter a dummy second controller to test out the controller layout for multiple controllers.
I couldn't find any problems with the timer code and it seems to work on mine.  I will try connecting again to some of the problem controllers and see if I can find anything that is causing the timer to fail.  I did change the timer to force-awake for debugging.  Watch your battery for any changes in usage.
Also, no work on the second controller probes not showing up in the maint screen yet.
Joe

On both phones, v2.2 and v2.3.3 the auto update still does not work for me with either a 2 or 15 minute update interval.  A task kill does force an update.
Thoughts on the look and feel;
Overall I'm still getting use to the new google format.  It's unlike any other app I run to date.  I like the swipe to change between the controllers as well as the 3 tabs for probes, outlets and notes.  I can see using the note feature. Will there be a 4th tab for graphing?
Probe and outlet display; the old app is similar to the netpune app and I like both, a similar layout here would fit. It is intuitive to transition from the netpune app to the phone.
It would be great to be able to customize the order of the probes and outlets.  I have learned to live with the fixed order neptune offers, but would love it to change.  With 7 probes and 60+ outlets, I cannot find what I want at a simple glance.
I typically use the phone app only for reference, relying on the 2 widgets.  I open the main app less than 5 times a week, but check the widgets every couple hours.  Only when I see something out of line do I investigate with the graphs and outlets.  Once the widget is developed, with a press will it open the main app screen or jump to the controller subscreen? On the screen opened from a widget press, having a button/tab that opens just the feed controls would be useful. Or a button/tab you could program with the most frequently used outlets/feed controls.
On the app main screen; What are the planned radio buttons?  DB, Controllers, Prefs, ?, ?.
Another thought; I would use a incorporated stop watch or countdown timer.  I dose 2 part and manually once a week to restore proper levels.  I currently find a watch or clock, a countdown timer w/ alarm would be useful.

Not sure where I will put the graphing.  Maybe a tab, maybe from tapping a probe.  The engine is there I just have to plug it in somewhere.
Customizing the order and show/hide for probes is something I would like to get done.  Maybe I'll add an issue for it to keep it on my mind.
Once I get the probe/outlet data populated then I'll re-engage the widgets.  Then again, maybe I'll just spend a few minutes now to get them done.
Still open to suggestions for the other dashboard icons.  Timer is a nice idea.

For graphing, could it be built for more than one item to share the same graph?  For example pH and ORP, a heater and temp; the neptune app does this nicely.  I understand the small screen may make it as clear as mudd on a phone, just a thought.


fix: remove +L2 suffix from currentVersion

What it solves
Resolves retrieval of contract ABIs
How this PR fixes it
The currentVersion -+L2 suffix is removed before saving to the store.
How to test it
Open a Safe on an L2 network and create/execute a transaction. There should be no Code 815: Error preparing transaction sender warning in the console preventing you from executing the transaction.
Note
This needs to be revisited with a cleaner fix.

ty for the quick hotfix. 🥇
I think omitting the L2 is fine as we find out which chain is L2 from our chainConfigs / ChainInfo.

There's definitely a more elegant approach, perhaps via the selector but let's discuss it tomorrow.


statstable record no place to earse when on symbol is useless

in eosio.token contract

Can you elaborate on this issue please?


How to deal with Optional Paths answer

Hi,
Sorry if this is answered is somewhere else but I can't find the solution.
I'm consuming a service that sends back a json with fields that are optional, they can be returned or not with regarding of the query that I send to it. How I deal with this situation?
Example:
[
{
"id": "1",
"name": "Test",
"location": {"address": "Street 1", "crossStreet": "Street 2"}
},
{
"id": "1",
"name": "Test",
"location": {"address": "Street 1"}
}
]

The crossStreet field is optional, how I define optional fields in jsonpath? Because, on my code, when I use $.location.crossStreet I get an com.jayway.jsonpath.PathNotFoundException: No results for path: $['location']['crossStreet'] exception. How can I avoid the exception?
Thanks.

Please ask questions at the google group https://groups.google.com/forum/#!forum/jsonpath
Your JSON is not valid. I will answer based on the JSON below
[
    {
        "id": "1",
        "name": "Test",
        "location": {
            "address": "Street 1",
            "crossStreet": "Street 2"
        }
    },
    {
        "id": "1",
        "name": "Test",
        "location": {
            "address": "Street 1"
        }
    }
]

The default configuration will return
List<String> crossStreets = JsonPath.parse(json).read("$[*].location.crossStreet");
Assertions.assertThat(crossStreets).containsExactly("Street 2");

If you want results from location objects that does not define crossStreet  you must tweak the configuration
Configuration conf = Configuration.defaultConfiguration()
   .addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL);

List<String> crossStreets = JsonPath.using(conf)
   .parse(json)
   .read("$[*].location.crossStreet");
Assertions.assertThat(crossStreets).containsExactly("Street 2", null);

If this is your preferred default behaviour you can configure this when you bootstrap your application.
Configuration.setDefaults(new Configuration.Defaults() {
    private final Set<Option> options = EnumSet.of(Option.DEFAULT_PATH_LEAF_TO_NULL);

    @Override
    public JsonProvider jsonProvider() {
        return new JsonSmartJsonProvider(); //json-smart is not thread safe
    }

    @Override
    public Set<Option> options() {
        return options;
    }

    @Override
    public MappingProvider mappingProvider() {
        return new JsonSmartMappingProvider();
    }
});

Hope this answers your question.

Hi @kallestenflo, thanks for reply.
I already have tried your suggestion and it's not working too.
I've posted a more completed question in GoogleGroups: https://groups.google.com/forum/#!topic/jsonpath/yPurMLMbB2Y
If you can see there I will be glad.
Thanks for your attention.
Regards.

For some reason, tweaking configuration on documentation (tweaking-configuration) does not work as expected, use this:
Configuration conf = Configuration.builder().options(Option.DEFAULT_PATH_LEAF_TO_NULL).build();


Some houses are placed where the player is.

Describe the bug
Sometimes I am suddenly in the complete dark (blackness), and moving doesn't help. Actually, moving more does help: the problem is that a house has appeared where I am!
Desktop (please complete the following information):
Minetest version:  - 5.0.1 in Debian (I suppose it was package 5.0.1+repack-2~bpo10+1).

Other mods activated: too many to list, sorry.

Additional context
I uninstalled the mod for now, as it was annoying and filled the space with all the poorly placed houses. I also uninstalled some other mods and downgraded Minetest.

Are you sure you are referring to working_villages and not to another villages mod from minetest?
Working villages does not spawn buildings, buildings in working_villages can only be built by builders.
Even if you are referring to another mod please don't close this issue because the builders of working_villages might also place blocks inside the player.

I installed it together with other mods (which never ends good…), including Alive AI that created traders and workers, and possibly mobf_trader. Later I installed mg_villages, but I don't think I have seen any effect yet.
I don't know what the content of these files means:
working_villages_data contains
return {["working_villages:villager_male"] = 0, ["working_villages:villager_female"] = 0}
working_villages_building_sites contains
return {}
working_villages_homes contains
return {}

Intersecting houses:

Those are not houses of working_villages and as the building_sites and homes file show there are no houses existing or planned by working_villages. The data currently indicates how many villagers have been spawned.

I think mg_villages and Alive Ai spawn villages

It's Alive AI indeed: they talk using the strings in Alive AI's chat.lua.

in :place(), we see that it sets the animation to place the node, pauses, then proceeds with placing logic. We can simply add a check after the pause.

--set animation
        if self.object:get_velocity().x==0 and self.object:get_velocity().z==0 then
                self:set_animation(working_villages.animation_frames.MINE)
        else
                self:set_animation(working_villages.animation_frames.WALK_MINE)
        end
        --turn to target
        self:set_yaw_by_direction(dist)
        --wait 15 steps
        for _=0,15 do coroutine.yield() end

        -- TODO fix #5: check for player at position
        if is_player_at(pos) then
          print('position blocked issue 5')
          if self.object:get_velocity().x==0 and self.object:get_velocity().z==0 then
                  self:set_animation(working_villages.animation_frames.STAND)
          else
                  self:set_animation(working_villages.animation_frames.WALK)
          end
          return false, fail.blocked
        end


Add instructions for using the checker and a sample application

@lazaroclapp As discussed via email, here are some instructions to configure an application with the RxThreadEffectChecker, as well as a basic sample application configured according to the instructions.  Specifying jars as gradle dependencies seems a little sketchy, but was the simplest way I could think of to use the checker.  Perhaps it would be worthwhile in the future to get the checker published in Maven, but that's a conversation for another time.

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

We should definitely throw up a jar on Maven Central.  See #3.
@bennostein I'm wondering how Travis still passes with this PR.  Do we not actually run the Rx checker on the sample app in the Travis build?  Seems like if we did it should fail with an error.

Yes, I didn't make any changes to the Travis script with this PR.  Should I? My thinking was that the sample app isn't part of the checker and shouldn't be part of CI, but happy to un-break the sample app and add its build to Travis if you'd like.

The nice thing about building the sample app on CI is that it ensures our config is copy-paste-able for someone who wants to use it.  But, I'm ok with doing that in a follow up; from my experience it's a bit painful to get the config in place to get Android apps building on Travis (though copy-pasting from NullAway should make things easier).

Thanks @bennostein!


How to access Image from messageItem Media property

Hi,
Basically I'm adding in the ability to tap an image that's been sent and then view it full screen. I'm accessing the messageItem and getting the media property but unsure as to how to turn this into a UIImage?
Thanks

JSQMessage *message = /* a message */;

if (message.isMediaMessage) {
    id<JSQMessageMediaData> mediaItem = message.media;

    if ([mediaItem isKindOfClass:[JSQPhotoMediaItem class]]) {
        JSQPhotoMediaItem *photoItem = (JSQPhotoMediaItem *)mediaItem;
        UIImage *image = photoItem.image;
        // use image
    }
}

Awesome, big help. Cheers!

:+1:
@ryderjack -- other items would follow similarly

@jessesquires I'm trying to do the same in Swift.
let message = messages[indexPath.item]
if message.isMediaMessage {
    let media = message.media
    if media is JSQPhotoMediaItem {
        if let photoItem = media as? JSQPhotoMediaItem {
            let image = photoItem.image
            print(image)
        }
    }
}

But the image is nil even for photo media items. Has anything changed in the library architecture since the original answer was posted?

Hello Guys
How do I tap on the image on the jsqmessagecontroller to see the whole image?
Thanks


testbed: validate perf and memory for ballast

This is a follow up to https://github.com/open-telemetry/opentelemetry-service/pull/61 to be pursued when https://github.com/open-telemetry/opentelemetry-service/pull/54 is merged.

Fixed via https://github.com/open-telemetry/opentelemetry-service/pull/85


Remote managed clusters inside the management cluster name folder

Hi folks,
I have just the feeling that including the remote cluster configuration inside the management cluster folder is a clean way of know what clusters are being managed by the hub cluster. See here my folder structure. I personally find it easier to understand than create the clusters inside folder clusters/ the telco-gitops repository where you do not know what cluster is managed by which hub.
Inside the remote-clusters/ folder we have a base and config folder. The base must point to the telco-gitops operators' folder and/or a blueprint. I mean both ways can be ok, I can point to a blueprint, and if there is any operator that is not been included in that blueprint (e.g. ran-du-sno, where NMstate operator is not included) I can just add it in the customization base or create a new blueprint. Then, the config where the specific configuration of each managed cluster is applied.
Let me know your thoughts.

Our original structure with 4.6 was using a similar model and we found it didn't work well for organizations with multiple operations teams were each may have one or more clusters definitions they manage, maintain and have full control (e.g. think the situation where we have RAN team per zone, while Core teams cover larger areas, while MEC team go across). Now, this model works great for single-teams operations or flat organizations. It might be good to document the different patterns based on the type of operations team. If you like to document something for this model feel free to create a markdown entry in telco-gitops under /doc/user/operations-single-repo.md (the /doc path might not exist there yet but feel free to add it).
When thinking about the types of operations, these are some of the ones I keep in mind:

Multi-tenancy Operations: this are Telcos that delegate the Operations of the platforms to different system integrations (SI's) or managed service providers. For these scenarios, the SI_1 manages a subset of clusters, while SI_2 manages a different subset. In this case, the independence of the cluster definitions and operations needs to be decoupled from the definition of the management cluster (which can be managed by another SI or the Telco)
single-team operations or flat operations: these are small organizations with a single operations team (or single hierarchical group), or a single team for all the functions, for these teams it is usually easier to work out of a mono-repo configuration.  The model you describe here will be perfect for them.
multi-teams operations: these are large organizations that usually have different operations teams (e.g. one to cover east, other to cover west, or if big enough, another to cover north-east, etc). Some of these organization stretch political/country boundaries. In these cases, the required granularity control is far greater, and Muti-repo will be the common approach.

BTW, a pattern I like to explore is the use of the git file generators as a way to parametrized the definition of a cluster for an ApplicationSet without the need of a single approach. For example, be able to do multi-repo and local or mono-repo with the same approach. If you are for experimenting with options, that can be an interesting one to explore.


Quick Actions work half the time

Type: Bug
In a C# file, creating a new class with new private fields (not public properties) causes a "lightbulb" of "actions" to encapsulate the new fields into public properties.  When you select either "Encapsulate field:  [field_name] (and still use property)" on the actions menu from the "lightbulb", it works half the time.  This seems to be a new bug; it worked just a few months ago.
Extension version: 1.25.4
VS Code version: Code 1.76.1 (5e805b79fcb6ba4c2d23712967df89a089da575b, 2023-03-08T16:32:00.131Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz (8 x 2904)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
15.85GB (4.51GB free)

Process Argv
--crash-reporter-id 3817d156-f83b-4741-9b3f-9932ff15e79c

Screen Reader
no

VM
0%

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes627:30244334
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vscaat:30438848
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
pynewext54:30681850
azure-dev_surveyone:30548225
pyindex848:30662994
nodejswelcome1cf:30587006
3biah626:30602489
pyind779:30671433
89544117:30613380
pythonsymbol12:30671437
funwalk2:30682974
pythonms35cf:30680985

I also find that the Quick Actions sometimes doesn't work, usually for me it's the Import actions that fail to do anything.

A lot has changed with O# code analysis since this issue was opened. If you are still having problems, please open a new issue at https://github.com/omnisharp/omnisharp-roslyn/issues


[linux] Update Linux releases and site text from kernel.org

Thanks @rcalixte. Too bad https://github.com/gregkh/linux has not been updated recently, it would have prevented much of the manual work.

Too bad https://github.com/gregkh/linux has not been updated recently, it would have prevented much of the manual work.

Agreed. Is there any chance to get the tags from https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git instead? That will likely be more stable long-term. I can peek at the automation if so.

Agreed. Is there any chance to get the tags from https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git instead? That will likely be more stable long-term. I can peek at the automation if so.

Unfortunately it does not seem possible to switch to the official git repository. @captn3m0 documented the reason on https://github.com/endoflife-date/talk/wiki/linux (on 2023-01-27, so quite recently) :

We track it on GitHub because we can do a partial clone, which isn't supported by kernel.org

There's also this json on the kernel.org website fyi: https://www.kernel.org/releases.json


Unable to submit configuration of integration "Unknown error occurred"

LOG:
This error originated from a custom integration.
Logger: aiohttp.server
Source: custom_components/ha_strava/config_flow.py:199
Integration: HA Strava 2.0 (documentation, issues)
First occurred: 3:34:24 PM (17 occurrences)
Last logged: 3:49:09 PM
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 238, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
result = await method(view, request, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 109, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 277, in async_configure
result = await self._async_handle_step(
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 359, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/config/custom_components/ha_strava/config_flow.py", line 199, in async_step_init
_entity_registry = await async_get(hass=self.hass)
TypeError: object EntityRegistry can't be used in 'await' expression

Thanks @jooojo1988
I will try look into these issues over the weekend and get a fix out

yes - also seeing this

thanks! all working

I was having this issue as well and this also fixed it for me. Thanks!


Replace suffix stripping with fast NXDOMAIN.

Fixes #192
master behavior:

$ telepresence --method vpn-tcp
Starting proxy with method 'vpn-tcp', ...
Volumes are rooted at ...
No traffic is being forwarded ...
[sudo] password for exarkun:
@gke_datawireio_us-central1-a_telepresence-testing|(virtualenv) $ host kubernetes
kubernetes.local has address <IP_ADDRESS>
kubernetes.local has address <IP_ADDRESS>
Host kubernetes.local not found: 3(NXDOMAIN)
@gke_datawireio_us-central1-a_telepresence-testing|(virtualenv) $

branch behavior:

$ TELEPRESENCE_REGISTRY=exarkun TELEPRESENCE_VERSION=0.78-4-g3409ce0-LNX-1522412298 telepresence --method vpn-tcp
Starting proxy with method 'vpn-tcp', ...
Volumes are rooted at ...
No traffic is being forwarded ...
[sudo] password for exarkun:
Guessing that Services IP range is <IP_ADDRESS>/20. Services started after this point will be inaccessible if are outside this range; restart telepresence if you can't access a new Service.
@gke_datawireio_us-central1-a_telepresence-testing|bash-4.4$ host kubernetes
kubernetes has address <IP_ADDRESS>
kubernetes has address <IP_ADDRESS>
Host kubernetes not found: 3(NXDOMAIN)
@gke_datawireio_us-central1-a_telepresence-testing|bash-4.4$

The branch does not have a changelog entry yet because it will immediately conflict #520.

What's the difference between "Fast-failing" and "Name does not resolve" in this trace? The former is from the suffix we're stripping, the latter is from a suffix we should be stripping, but aren't.
  26.1 13 | 2018-03-30T14:54:16+0000 [stdout#info] Fast-failing query with search suffix: qotm.c.datawireio.internal
  26.1 22 | c : DNS request from ('<IP_ADDRESS>', 57468) to None: 38 bytes
  26.1 13 | 2018-03-30T14:54:16+0000 [stdout#info] A query: b'qotm.google.internal'
  26.1 13 | 2018-03-30T14:54:16+0000 [stdout#info] getaddrinfo error: [Errno -2] Name does not resolve
  26.1 22 | c : DNS request from ('<IP_ADDRESS>', 52369) to None: 22 bytes
  26.2 13 | 2018-03-30T14:54:16+0000 [stdout#info] A query: b'qotm'
  26.2 13 | 2018-03-30T14:54:16+0000 [stdout#info] Result for b'qotm' is ['<IP_ADDRESS>']

Why should we be stripping the latter? Because it will be searched:
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver <IP_ADDRESS>
search c.datawireio.internal google.internal

We don't strip it because we don't see it, and that's because we always return success for hellotelepresence queries.

It sounds like #393 may not have had the intended consequences (at least not in all environments), then?

Yeah, sure, but my real question is: why fast fail is a special case? Why do we have to figure out the suffixes in the first place?

I think it's because the local search domains are meaningless in the context of the cluster but that's not a guarantee that looking them up will fail.  If the goal is to make lookup of those names succeed with cluster-supplied results then, yes, all of the suffix logic can just go away.  I don't think that would make a whole lot of sense but maybe that's an arbitrary or subjective conclusion.

That's how a typical split-tunnel VPN works. This is what I was trying to get at in my comment in #192. If we can dump all the suffix logic, I think that would be a huge win, unless there are common or important use cases that would become more annoying.


redisinsight: 2.32 -> 2.48.0

Description of changes
Releases: https://github.com/RedisInsight/RedisInsight/releases
This PR bumps the version of the redisinsight package.
The webpack build-time has become much longer since the 2.32, so don't worry if it seems like nothing is happening during the build process.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


M1 Mac and Ubuntu-arm64 Provision Runners Action

Description
This PR adds a github action to provision arm runners for ubuntu and macOS in AWS. See the README for additional details.
Testing
Testing was conducted using act locally and github pipelines on push for the ubuntu-arm64 instances. Mac instances were tested using act only, but will also be tested on release events due to the testing cost.

Closed because the outputs have been used in the webhook implementation


PLT-286: Confirm performance gain disappear with cabal clean by running on the previous PR base.

Pre-submit checklist:

Branch

[ ] Tests are provided (if possible)
[ ] Commit sequence broadly makes sense
[ ] Key commits have useful messages
[ ] Relevant tickets are mentioned in commit messages
[ ] Formatting, PNG optimization, etc. are updated

PR

[ ] (For external contributions) Corresponding issue exists and is linked in the description
[ ] Targeting master unless this is a cherry-pick backport
[ ] Self-reviewed the diff
[ ] Useful pull request description
[ ] Reviewer requested

/benchmark plutus-benchmark:validation

Comparing benchmark results of 'plutus-benchmark:validation' on '4af22f9fb' (base) and 'a3a2d5802' (PR)

Results table

Script
4af22f9
a3a2d58
Change

auction_1-1
201.5 μs
200.0 μs
-0.7%

auction_1-2
817.1 μs
808.7 μs
-1.0%

auction_1-3
805.4 μs
799.8 μs
-0.7%

auction_1-4
257.3 μs
254.4 μs
-1.1%

auction_2-1
202.6 μs
200.6 μs
-1.0%

auction_2-2
817.5 μs
811.0 μs
-0.8%

auction_2-3
1.038 ms
1.030 ms
-0.8%

auction_2-4
803.8 μs
799.3 μs
-0.6%

auction_2-5
256.6 μs
254.5 μs
-0.8%

crowdfunding-success-1
234.5 μs
234.7 μs
+0.1%

crowdfunding-success-2
236.3 μs
234.9 μs
-0.6%

crowdfunding-success-3
234.7 μs
234.5 μs
-0.1%

currency-1
299.1 μs
298.5 μs
-0.2%

escrow-redeem_1-1
425.2 μs
424.2 μs
-0.2%

escrow-redeem_1-2
426.6 μs
424.5 μs
-0.5%

escrow-redeem_2-1
503.6 μs
499.7 μs
-0.8%

escrow-redeem_2-2
503.1 μs
498.2 μs
-1.0%

escrow-redeem_2-3
502.6 μs
499.1 μs
-0.7%

escrow-refund-1
177.1 μs
177.8 μs
+0.4%

future-increase-margin-1
300.3 μs
296.1 μs
-1.4%

future-increase-margin-2
677.5 μs
670.5 μs
-1.0%

future-increase-margin-3
677.2 μs
671.9 μs
-0.8%

future-increase-margin-4
635.3 μs
629.7 μs
-0.9%

future-increase-margin-5
1.004 ms
1.000 ms
-0.4%

future-pay-out-1
299.0 μs
296.9 μs
-0.7%

future-pay-out-2
675.5 μs
673.0 μs
-0.4%

future-pay-out-3
675.3 μs
673.4 μs
-0.3%

future-pay-out-4
1.002 ms
999.7 μs
-0.2%

future-settle-early-1
299.6 μs
297.7 μs
-0.6%

future-settle-early-2
672.2 μs
670.8 μs
-0.2%

future-settle-early-3
674.2 μs
671.5 μs
-0.4%

future-settle-early-4
766.9 μs
759.5 μs
-1.0%

game-sm-success_1-1
482.7 μs
479.9 μs
-0.6%

game-sm-success_1-2
218.7 μs
220.3 μs
+0.7%

game-sm-success_1-3
802.0 μs
801.4 μs
-0.1%

game-sm-success_1-4
229.9 μs
255.8 μs
+11.3%

game-sm-success_2-1
481.3 μs
482.6 μs
+0.3%

game-sm-success_2-2
218.2 μs
220.4 μs
+1.0%

game-sm-success_2-3
802.6 μs
801.7 μs
-0.1%

game-sm-success_2-4
231.0 μs
255.8 μs
+10.7%

game-sm-success_2-5
806.9 μs
800.4 μs
-0.8%

game-sm-success_2-6
231.3 μs
254.7 μs
+10.1%

multisig-sm-1
502.2 μs
497.5 μs
-0.9%

multisig-sm-2
490.1 μs
482.9 μs
-1.5%

multisig-sm-3
493.0 μs
489.7 μs
-0.7%

multisig-sm-4
499.3 μs
495.5 μs
-0.8%

multisig-sm-5
716.4 μs
710.1 μs
-0.9%

multisig-sm-6
501.4 μs
497.5 μs
-0.8%

multisig-sm-7
487.2 μs
483.7 μs
-0.7%

multisig-sm-8
491.3 μs
488.5 μs
-0.6%

multisig-sm-9
499.3 μs
496.1 μs
-0.6%

multisig-sm-10
714.3 μs
709.2 μs
-0.7%

ping-pong-1
406.9 μs
406.3 μs
-0.1%

ping-pong-2
408.3 μs
406.6 μs
-0.4%

ping-pong_2-1
238.1 μs
236.4 μs
-0.7%

prism-1
182.1 μs
181.3 μs
-0.4%

prism-2
517.9 μs
518.1 μs
+0.0%

prism-3
438.3 μs
435.8 μs
-0.6%

pubkey-1
155.0 μs
155.2 μs
+0.1%

stablecoin_1-1
1.107 ms
1.101 ms
-0.5%

stablecoin_1-2
214.8 μs
214.5 μs
-0.1%

stablecoin_1-3
1.268 ms
1.251 ms
-1.3%

stablecoin_1-4
227.0 μs
227.1 μs
+0.0%

stablecoin_1-5
1.584 ms
1.571 ms
-0.8%

stablecoin_1-6
281.1 μs
283.4 μs
+0.8%

stablecoin_2-1
1.106 ms
1.102 ms
-0.4%

stablecoin_2-2
213.8 μs
215.3 μs
+0.7%

stablecoin_2-3
1.263 ms
1.255 ms
-0.6%

stablecoin_2-4
226.8 μs
227.5 μs
+0.3%

token-account-1
223.1 μs
222.9 μs
-0.1%

token-account-2
396.2 μs
397.9 μs
+0.4%

uniswap-1
508.5 μs
507.5 μs
-0.2%

uniswap-2
260.7 μs
259.7 μs
-0.4%

uniswap-3
2.058 ms
2.022 ms
-1.7%

uniswap-4
378.5 μs
376.4 μs
-0.6%

uniswap-5
1.405 ms
1.382 ms
-1.6%

uniswap-6
363.3 μs
358.6 μs
-1.3%

vesting-1
429.0 μs
424.5 μs
-1.0%

Comparing benchmark results of 'plutus-benchmark:validation' on '4af22f9fb' (base) and 'a3a2d5802' (PR)
Results table

OK this proves that cabal clean does make the performance gain vanish. Also this is another instance of game-sm-success behaving not within expectation.

This looks conclusive to me regarding whether Lazy affects anything or not: not.
I still want to do it, since it's clearer than what we have right now.
I'm not so sure about the game-sm-contracts. According to my experiments changing Meaning.hs without touching toImmediateF doesn't give us a slowdown and if toImmediateF is changed is a specific way, then we see the slowdown. For example, randomly adding a bang to the argument doesn't cause the slowdown. In this PR toImmediateF is changed too, but in a different instance. How could that possibly be a caching issue? It looks like the caching issue was masking the presence of some other issue?
In any case, I consider the Lazy puzzle to be resolved now, thank you for the great investigation.

Yeah, too bad. I wasn't greedy, I was just hoping to move a couple functions around and get another 20%. :P


Unable to pay to on-chain address

I did another test, and got a different error message. I see the logs in honeycomb with the full error. I'll share in discord.

Leaving the logs here for easier tracking:
`[{"Timestamp":"2024-08-30T20:30:06.549Z","account.username":"dread1","duration_ms":444.8273,"enduser.id":"153aefad-2b5b-4561-8be7-2a9da9c00990","error":true,"error.0.level":"warn","error.0.message":"[{\"message\":\"Enum \\\"PaymentSendResult\\\" cannot represent value: \\\"INITIATED\\\"\",\"locations\":[{\"line\":1,\"column\":152}],\"path\":[\"onChainUsdPaymentSend\",\"status\"]}]","error.0.name":"graphql.execution.error","error.level":"warn","error.message":"[{\"message\":\"Enum \\\"PaymentSendResult\\\" cannot represent value: \\\"INITIATED\\\"\",\"locations\":[{\"line\":1,\"column\":152}],\"path\":[\"onChainUsdPaymentSend\",\"status\"]}]","error.name":"graphql.execution.error","exception.message":"[{\"message\":\"Enum \\\"PaymentSendResult\\\" cannot represent value: \\\"INITIATED\\\"\",\"locations\":[{\"line\":1,\"column\":152}],\"path\":[\"onChainUsdPaymentSend\",\"status\"]}]","exception.type":"graphql.execution.error","graphql.error.0.message":"Enum \"PaymentSendResult\" cannot represent value: \"INITIATED\"","graphql.error.0.original.message":"Enum \"PaymentSendResult\" cannot represent value: \"INITIATED\"","graphql.error.0.original.type":"GraphQLError","graphql.error.0.path":"[\"onChainUsdPaymentSend\",\"status\"]\n","graphql.error.0.type":"GraphQLError","graphql.error.message":"Enum \"PaymentSendResult\" cannot represent value: \"INITIATED\"","graphql.error.original.message":"Enum \"PaymentSendResult\" cannot represent value: \"INITIATED\"","graphql.error.original.type":"GraphQLError","graphql.error.path":"[\"onChainUsdPaymentSend\",\"status\"]\n","graphql.error.type":"GraphQLError","graphql.operation.name":"onChainUsdPaymentSend__public__0","graphql.operation.type":"mutation","graphql.source":"mutation onChainUsdPaymentSend__public__0($input:OnChainUsdPaymentSendInput!){onChainUsdPaymentSend(input:$input){__typename errors{__typename message}status}}","graphql.variables.input.address":"bc1q20w8l3naksm7tayra6jzlns2hxpwl5zec03sc4uwfwcuuh62fzcsj72z3h","graphql.variables.input.amount":5000,"graphql.variables.input.walletId":"637a408a-1db4-414e-829e-c4c067fa8334","http.client_ip":"<IP_ADDRESS>","http.user_agent":"okhttp/4.9.2","k8s.pod.ip":"<IP_ADDRESS>","library.name":"@opentelemetry/instrumentation-graphql","library.version":"0.35.1","meta.signal_type":"trace","name":"mutation onChainUsdPaymentSend__public__0","service.name":"prod-api","span.kind":"internal","span.num_events":1,"span.num_links":0,"status_code":2,"telemetry.instrumentation_library":true,"telemetry.sdk.language":"nodejs","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.17.0","token.expires_at":"2025-09-21T23:19:16.422732Z","token.iss":"galoy.io","token.session_id":"05a65a38-c853-4ce6-9ba7-89ba274708fa","trace.parent_id":"f8d2079ef26dd82e","trace.span_id":"d88eb6d3bbb748e9","trace.trace_id":"22e1d9b785641b0b2e41b5030beefd24","type":"internal"}]`


[Improvement] Fix typos for documentation

Hi Richard, hope you find this useful for the community 😄 .

As we have some typos on the documentation, in order to facilitate
copy+paste, I decided to fix some typos on the public classes / functions.
In addition to that, I also apply 2 break lines before a h2 for markdown and
code formate for a type.

Let me know if there's anything I can help to add for documentation,
I'll be happy to help.

Hi Nahuel, thanks for your update! If you're interested in contributing further on the documentation side, feel free to add a code-level docs, e.g. starting with the DayViewController and DayViewDelegate & EventDataSource. Those are the main interaction points for the developer, so having a code-level documentation would be of a great benefit.


Repeated output message with Pandas

With the last version of the language server I get repeated messages like this in the output window
Traceback (most recent call last):
  File "/Users/albireo/.vscode-insiders/extensions/ms-python.python-2019.4.6033-alpha/languageServer.0.2.30/scrape_module.py", line 1489, in <module>
    state.initial_import(sys.argv[2])
  File "/Users/albireo/.vscode-insiders/extensions/ms-python.python-2019.4.6033-alpha/languageServer.0.2.30/scrape_module.py", line 872, in initial_import
    mod = __import__(self.module_name)
  File "/Users/albireo/.pyenv/versions/3.7.2/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/__init__.py", line 23, in <module>
    from pandas.compat.numpy import *
  File "/Users/albireo/.pyenv/versions/3.7.2/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/compat/__init__.py", line 446, in <module>
    import typing
  File "/Users/albireo/.pyenv/versions/3.7.2/Python.framework/Versions/3.7/lib/python3.7/site-packages/typing.py", line 1356, in <module>
    class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
  File "/Users/albireo/.pyenv/versions/3.7.2/Python.framework/Versions/3.7/lib/python3.7/site-packages/typing.py", line 1004, in __new__
    self._abc_registry = extra._abc_registry
AttributeError: type object 'Callable' has no attribute '_abc_registry'

They don't seem to break anything as far as I can see.

@jakebailey - was it suppressed with https://github.com/Microsoft/python-language-server/pull/798 ?

Warnings from the warnings module are suppressed, not actual exceptions. The AttributeError would still show.

Should suppress them too IMO. They don't provide any value to the user.


Broker ingress and Dispatcher now uses the protocol binding instead of json to process events

Merge after #750
Changes

🎁 Now the Broker's ingress uses the Binary representation of the CloudEvents
🎁 Now the Broker's Dispatcher uses the protocol binding to get a CloudEvent from a RabbitMQ Message
🎁 Added performance tests for the source using the new Ingress CE Binary represenation, that makes the Ingress plugable to the Source
🧹 Updated Broker's performance tests results to reflect the performance gains (like 10% less latency and less cpu and memory consumption overall)

/kind enhancement performance

Fixes #

Release Note

- 🎁 Now the Broker's ingress uses the Binary representation of the CloudEvents
- 🎁 Now the Broker's Dispatcher uses the protocol binding to get a CloudEvent from a RabbitMQ Message
- 🎁 Added performance tests for the source using the new Ingress CE Binary represenation, that makes the Ingress plugable to the Source

/retest


是否受旧版本 NeteaseCloudMusicApi 影响导致的登录问题

Describe the bug
上个月由于网易云音乐的新风控问题导致账号冻结，插件是否也有受到影响？
https://github.com/HyPlayer/HyPlayer/issues/553
https://github.com/qier222/YesPlayMusic/issues/2311
Environment
版本: 1.95.2 (user setup)
提交: e8653663e8840adaf45af01eab5c627a5af81807
日期: 2024-11-07T11:07:22.054Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.26100
Cloudmusic 版本: 9.22.0

Hello, I tried to fix the issue
This is what I did:
To address the account freezing problem due to NetEase Cloud Music's new risk control measures, we've made the following changes:

Updated user agent strings to match the latest versions of browsers and operating systems.
Added a delay between login attempts to avoid triggering anti-spam measures.
Implemented a rotating IP mechanism for requests to avoid detection of automated behavior.
Updated the MUSIC_U and MUSIC_A token handling to better mimic legitimate user behavior.
Added additional headers to requests to make them appear more like those from the official app.

I also created pull request: https://github.com/YXL76/cloudmusic-vscode/pull/1038

[!CAUTION]
Disclaimer: This fix was created by Latta AI and you should never merge before you check the correctness of generated code!
The fix provided by Latta AI might not be complete and it can serve as an inspiration.

This bug was fixed for free by Latta AI - https://latta.ai/ourmission
If you no longer want Latta AI to attempt fixing issues on your repository, you can block this account.

所以现在 更新了之后 还是会封吗


Integv2 fragmentation test

Please note that while we are transitioning from travis-ci to AWS CodeBuild, some tests are run on each platform. Non-AWS contributors will temporarily be unable to see CodeBuild results. We apologize for the inconvenience.
Resolved issues:
resolves #1975
Description of changes:
The existing integration test framework uses gnuTLS to do max fragmentation testing. This change moves this behavior to the integv2 framework, and uses OpenSSL instead of gnuTLS.
The prefer-low-latency test is also migrated in this change, because it was labeled as a fragmentation test.
Call-outs:
The decision to use OpenSSL was done to prevent writing the gnuTLS provider for this one specific test. When the gnuTLS provider is written, the frag test can continue in that provider as well.
There is a refactor commit in this PR which should disappear when the refactor PR is merged.
Testing:
integ test.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #2060 into master will increase coverage by 2.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2060      +/-   ##
==========================================
+ Coverage   78.46%   80.46%   +2.00%
==========================================
  Files         233      233
  Lines       17485    17541      +56
==========================================
+ Hits        13720    14115     +395
+ Misses       3765     3426     -339

@ttjsu-aws We track providers in #1765


docs(links-stories): add link stories on storybook

Codecov Report
Patch has no changes to coverable lines.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files Changed
Coverage

src/stories/components/Links.stories.tsx
0.00%

:loudspeaker: Thoughts on this report? Let us know!.


add special-cases for dia-dia in csr arithmetic

also SolveTo renamed per https://github.com/gonum/gonum/issues/830.  this was breaking example_test for a few days.

Thanks for fixing the breaking example, I wanted to fix it but been maxed out the last day or so.


Refacto convert HF

Hello,
Lina told that the goal was to be able to easily convert the main HF models.
The falcon model is going to be a bit challenging.
I took the initiative to re-factorize the hf convert to get a clear idea of what change the falcon model conversion will require.
In addition to the falcon support, I also plan to add tests if I can find a way to generate similar HF models but lightweight.
Is the goal to use the same method to load the different models ? If it is not the case then the refacto is not necessary

you are very welcom to work on this.
As a reminder there ia an old version (that used to work in onmt-py) of the falcon converter:
https://github.com/eole-nlp/eole/blob/main/eole/bin/convert/convert_falcon.py
same for T5, MPT, legacy llama (from meta, not the HF version), redpajama, xgen
For Falcon I started so it should not be so difficult to integrate in convert_HF.
Bear in mind that Falcon 7B and 40B (not tried 180B) have different architectures.
The stuff to look at are:
the way query_key_value common weights need to be split (it differs depending models eg: Phi3 is not the same as Falcon)
parallel_residual (Falcon was the reason I introduced this in onmt) along wih shared_layer_norm
it almost impossible to test with a mini model. the only way to check if eveyrhting is ok is to redo locally the convert and inference with a specific prompt for each model. it's pain.

@funboarder13920
I found my code locally when I started to do it for Falcon, the key thing is here:
key_maps["FalconForCausalLM"] = {
    "layer_prefix": "transformer.h.",
    "decoder.embeddings.make_embedding.emb_luts.0.weight": "transformer.word_embeddings.weight",
    "decoder.layer_norm.weight": "transformer.ln_f.weight",
    "decoder.layer_norm.bias": "transformer.ln_f.bias",
    "generator.weight": "lm_head.weight",
    ".self_attn.linear_query.": (
        ".self_attention.query_key_value.",
        ".view(-1, heads // num_kv + 2, hidden_size // heads, hidden_size)[:, :-2].reshape(hidden_size, hidden_size)",  # noqa E501
    ),
    ".self_attn.linear_keys.": (
        ".self_attention.query_key_value.",
        ".view(-1, heads // num_kv + 2, hidden_size // heads, hidden_size)[:, [-2]].reshape(hidden_size // heads * num_kv, hidden_size)",  # noqa E501
    ),
    ".self_attn.linear_values.": (
        ".self_attention.query_key_value.",
        ".view(-1, heads // num_kv + 2, hidden_size // heads, hidden_size)[:, [-1]].reshape(hidden_size // heads * num_kv, hidden_size)",  # noqa E501
    ),
    ".self_attn.final_linear.": ".self_attention.dense.",
    ".feed_forward.w_1.": ".mlp.dense_h_to_4h.",
    ".feed_forward.w_2.": ".mlp.dense_4h_to_h.",
    ".layer_norm_1.weight": (".input_layernorm.weight", ".ln_attn.weight"),
    ".layer_norm_1.bias": (".input_layernorm.bias", ".ln_attn.bias"),
    ".layer_norm_res.weight": ".ln_mlp.weight",
    ".layer_norm_res.bias": ".ln_mlp.bias",
}


Special characters have been replaced by question marks

Some files contain multiple question marks, where, presumably, there was originally other characters that have been lost to encoding changes
It's not always clear what the ? was originally, but in many cases, the ? was an operator, so reinstating the correct character is both difficult and critical.
See this example:
- Make sure that you are consistent about the units you use for specifying rate and nper. If you make monthly payments on a four-year loan at an annual interest rate of 12 percent, use 12%/12 for rate and 4*12 for  _Arg2_ . If you make annual payments on the same loan, use 12% for rate and 4 for _Arg2_ .

-  _Arg2_ , _Arg4_ , _Arg5_ , and type are truncated to integers.

- If rate ? 0,  _Arg2_ ? 0, or _Arg3_ ? 0, CumIPmt generates an error.

- If  _Arg4_ < 1, _Arg5_ < 1, or _Arg4_ > _Arg5_ , CumIPmt generates an error.

- If  _Arg6_ is any number other than 0 or 1, CumIPmt generates an error.

ThunderFrame, thanks for pointing this out. It is likely an isolated error and has been fixed in this topic.


fix(eventStack): correct handling of removed targets

Rel #2075#comment.
Changes:

eventStack now uses Map
corrected behaviour of unsub

Codecov Report

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

@@           Coverage Diff           @@
##           master    #2117   +/-   ##
=======================================
  Coverage   99.76%   99.76%
=======================================
  Files         150      150
  Lines        2596     2596
=======================================
  Hits         2590     2590
  Misses          6        6

Continue to review full report at Codecov.

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

@levithomason This problem looks quite critical to me. Can you review this and release 0.74.2?

Released in<EMAIL_ADDRESS>


Body.collisionFilterMask default value is -1 in Body constructor, but 1 in the built bundle file.

Guess -1(0xFFFFFFFF) is correct, suggest re-pack the bundle file and update the npm module. Thanks.

I was also very confused by this in #387. The build as well as the npm module are apparently outdated by about 3 years. And I don't think it's about to change any time soon.

Oh, got that, and it's sad to know Cannon is not developing anymore...

I know, but so far I found everything I needed in Cannon. There's lacking support for some collision pairs (box to trimesh), but I think it's quite a great engine as is, and when I need those features, it should be possible to implement them myself.
It only feels natural that if people used it more heavily, we'd just fork Cannon and keep it alive, but physics in a browser seems like a very niche thing right now.
Looking at the network graph, only one person seems to be actively working with cannon.

I'll be happy to keep submitting PR's when I add new features to my fork and hope they get merged one day, but I think that's about all we can do now...

I also like using cannon and have forked it and ported it to typescript (minus trimesh, and a few odd bugs).  I’ll be using it for the near future.  Happy to help if people want to start a movement :)

@robrohan Wow, that's really cool...
Are you planning to port trimesh as well? If so I might jump over to your fork...
Also, is there any info about your game engine? I might find that useful as well... 🙂

@swift502 no reason other than I don’t need it yet and I was trying to limit the code for the port (less to try to debug).  The code is still there just commented out for now.  I’ve run into issues #109 and have started trying to sort that out.  I think I’ll have to refactor convex vs convex as its difficult to reason about atm.
Here is the engine so far http://mesh.robrohan.com/#level:movement but it’s not open source.

@robrohan I'll definitely look into it. If I end up using Dapao I might try to port it over myself when I need it (and if you allowed it of course... 🙂).
And your engine looks great, I already watched your update videos...


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2316

Questions ?
Please refer to the Backport tool documentation


Support array type in go generate

Fixes: https://github.com/google/go-github/issues/2425
This PR is similar to the following PR:

https://github.com/google/go-github/pull/1867

@gmlewis
Sounds good!
I will fix the code.

Thank you, @valbeat !
Merging.


IE supported?

Is it supposed to work in IE? For me, it works in chrome. When I test it embedded in an iframe, the pdf is missing almost everything in IE 10 and 11. Although, when accessing it without an iframe, it works in IE11, but is still bugged in IE10.

Works for me. Is this still an open bug?


Improvement of TestHttpCall entity

This adds the possibility to:

do GET, POST, PUT, DELETE and OPTIONS requests
specify headers
specify request body for POST and PUT requests

@tbouron can you add tests to org.apache.brooklyn.test.framework.TestHttpCallTest?

@tbouron this now has merge conflicts. Can you resolve those, take a look at the additional minor comments to see what you think should be done, and then we can merge this.

@aledsage Comment addressed. I created a generic builder for the HttpRequest. Hope this is fine now and can be merged

LGTM; merging.


Apple notes drawings fail to import

#134  unfortunately the drawings fail to import, what format are they in apple notes and how are they displayed in obsidian ?
#applenotes
, iOS 16.7.5 and Ventura 13.4. the drawings fail to import.

Do you mean drawings or images?
May be related to this issue: https://github.com/obsidianmd/obsidian-importer/issues/192

Hi, I mean Drawings done with apple pencil for ex.
I doubt it is related as there the file name should be different or….

I am having this issue as well its with Drawings done with apple pencil as far as I can see.
That’s is a note with drawing(s) or a with a mixture of media which include Apple Pencil drawing(s)
I am getting unidentified ZIDIDENTIFIER
macOS 14.3.1 (23D60) which updated notes yesturday, however, the issue was before this update.

Unfortunately I don't have the examples that failed anymore.
However, I just created some new notes in a new database and import fine.
I wonder if there is something different with older notes?
new note

I also have a similar issue: I tried to import my Apple notes, and I receive the following failure:
...
Failed: "DATASET NAME RULE" because Cannot read properties of undefined (reading 'ZIDENTIFIER')
...

In these notes, I have text alternated to text drawings made with the Apple pencil.

https://github.com/obsidianmd/obsidian-importer/issues/134#issuecomment-1967497540


Color schema added to ~/.alacritty/alacritty.yml but did not change anything

OSX High Sierra
ZSH? - I am not configred to use zsh but it seems like using zsh
Another issue
sudo cp alacritty-completions.zsh /usr/share/zsh/functions/Completion/X/_alacritty
This command says no such file or directory

I will give a try pull request but before I need to notice that:
alacritty -v says alacritty not found
code . says code not found, it is shortcut for visual studio code

You'll have to find the alacritty binary wherever it's installed (somewhere under /Applications; try find -name alacritty /Applications).
In any case, this sounds like a configuration error.


Read and work with errors

Hi. First of all I want to thank you for this project ;-)
I would like to know how to read your error messages and work with them.
The following scenario: I want to acquire a specific IP with AcquireSpecificIP() and it could be possible that this IP is already acquired, but that's ok. So I would like to read the error message like this
_, err = ipam.Ipamer.AcquireSpecificIP(ctx, prefix, ip)
if err != nil {
	if err == goipam.ErrAlreadyAllocated {
		log.Warnln("this is ok")
	} else {
		log.Errorln(err)
		return err
	}
}

But this does not work as expected, since I could see the error message is an assembled string. Can you tell me how to work with Variables and your error messages?

I guess you have to use:

_, err = ipam.Ipamer.AcquireSpecificIP(ctx, prefix, ip)
if err != nil {
	if errors.Is(err, goipam.ErrAlreadyAllocated) {
		log.Warnln("this is ok")
	} else {
		log.Errorln(err)
		return err
	}
}

Yes, that is how it works 👍
Thanks for the quick reply


Create partOf subclass term for visualization

To create a more human friendly partonomy, add an additional partOf subclass and connect the partonomy nodes with it. Work closely with @jpsluka to get the right structure which will be used in the CCF UI.

Write SPARQL query to return all partOf triples where partOf is the predicate.

@jpsluka and @SamuelFriedman need to talk more about what exactly we want.
We wanted multiple part_of edges replaced by a single part_of edge where each connecting node along the way only was one incoming edge and one outgoing edge. Thus, we want to skip over such nodes.

@jpsluka Any ideas about what you want to do for such an element? I think that creating a subclass of part_of is not necessarily the right path because it is such a high level element. I'm more inclined simply to remove those nodes that only have one incoming and one outgoing edge and replace those edges with a single edge between the child and parent node. The child node is a part of its grandparent. We need to get this done by April 30 for the 0.3.0 release.

we have to be careful with removing partOf's that came from UBERON (or the ontologies that UBERON was created from). The correct solution would be to create a new relationship specific for the HuBMAP UI. OWL allows sub-relationships, so we can define, e.g., partOf_HuBMAP as a sub-relationship of partOf. Initially we just duplicate the existing partOf's as new partOf_HuBMAP relationships. We then edit these new partOf's to represent how we want to navigate in the UI.

We will duplicate the partOf relationships that we want to include and make the terms partOf_HUBMAP.


[XFail] Xfailed projects failing on linux.

The following tests are failing on Ubuntu with tools built from
release/5.6 and main.
https://ci.swift.org/job/swift-5.6-source-compat-suite-ubuntu-2004/1/
https://ci.swift.org/view/Source Compatibility/job/swift-source-compat-suite-ubuntu-2004/111/
========================================
Failures:
  FAIL: AsyncNinja, 5.0, 7bd7ea, Swift Package
  FAIL: Kitura, 5.0, 8578c4, Swift Package
  FAIL: Kitura, 4.0, f1c316, Swift Package
  FAIL: Perfect, 4.2, cdc17d, Swift Package
  FAIL: SwiftLint, 5.0, 180d94, Swift Package
========================================

@swift-ci please test

@swift-ci please test linux platform

We currently dont support Linux PR testing on this repo, I will look into adding it.