ValueError: Could not interpret metric identifier: loss

I am trying to implement a GridSearchCV over only a few hyperparameters but hit a block. I have spent so long combing over the Scikeras and tensorflow.keras compatibilities and just landed on using only Scikeras. There still seems to be some incompatibility issue and I don't know where.
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import tensorflow as tf
import keras
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import GridSearchCV
from scikeras.wrappers import KerasClassifier
from skopt import BayesSearchCV
from skopt.space import Real, Categorical, Integer

# ... (Your code for loading and merging DataFrames goes here) ...

# outcome_labels: Array of win/loss/draw results
outcome_labels_a = pd.read_csv('a_form.csv').T
outcome_labels_b = pd.read_csv('b_form.csv').T

# Assuming you have:
# team_a_data: DataFrame for Team A
# team_b_data: DataFrame for Team B
df_a_disposals = pd.read_csv('a_disposals.csv').T
df_a_disposals = df_a_disposals.drop(index = 'Player')
df_a_kicks = pd.read_csv('a_kicks.csv').T
df_a_kicks = df_a_kicks.drop(index = 'Player')
df_a_tackles = pd.read_csv('a_tackles.csv').T
df_a_tackles = df_a_tackles.drop(index = 'Player')
df_a_pplayed = pd.read_csv('a_pplayed.csv').T
df_a_pplayed = df_a_pplayed.drop(index = 'Player')

df_b_disposals = pd.read_csv('b_disposals.csv').T
df_b_disposals = df_b_disposals.drop(index = 'Player')
df_b_kicks = pd.read_csv('b_kicks.csv').T
df_b_kicks = df_b_kicks.drop(index = 'Player')
df_b_tackles = pd.read_csv('b_tackles.csv').T
df_b_tackles = df_b_tackles.drop(index = 'Player')
df_b_pplayed = pd.read_csv('b_pplayed.csv').T
df_b_pplayed = df_b_pplayed.drop(index = 'Player')

# Concatenate dataframes
team_a_data = pd.concat([df_a_disposals, df_a_kicks, df_a_tackles, df_a_pplayed], axis = 1)
team_b_data = pd.concat([df_b_disposals, df_b_kicks, df_b_tackles, df_b_pplayed], axis = 1)
print(team_a_data.shape)
print(team_b_data.shape)
# Combine player data for both teams
combined_data = pd.concat([team_a_data, team_b_data], axis=0)

# Merge with outcomes data
team_a_merged = pd.merge(team_a_data, outcome_labels_a, left_index = True, right_index = True)
team_b_merged = pd.merge(team_b_data, outcome_labels_b, left_index = True, right_index = True)
merged_data = pd.concat([team_a_merged, team_b_merged], axis=0)
print(team_b_merged.head())

x = merged_data.drop(columns = ['0_y'])
y = merged_data['0_y']

# Splitting initial 70%
x_train, x_remaining, y_train, y_remaining = train_test_split(x, y, test_size=0.3, random_state=42) # Splitting initial 70%
# Further split remaining 30%
x_val, x_test, y_val, y_test = train_test_split(x_remaining, y_remaining, test_size=0.5, random_state=42)

# Create the model (simplifying for illustration)
def create_model(hidden_layer_dim=32, loss='binary_crossentropy', optimizer='adam', learning_rate=0.01):
    model = Sequential([
        Dense(units=32, activation='relu', input_shape=(x_train.shape[1],)), # Adjust 'units' for hidden layer size
        Dense(units=16, activation='relu'),
        Dense(units=1, activation='sigmoid')
    ])
    model.compile(optimizer=keras.optimizers.Adam(learning_rate=learning_rate),
                  loss='binary_crossentropy',
                  metrics=['accuracy'])

    return model

# Parameter grid
param_grid = {
    "hidden_layer_dim": [50, 100, 200],
    "loss": ["binary_crossentropy"],
    "optimizer": ["adam", "sgd"],
    "optimizer__learning_rate": [0.0001, 0.001, 0.1],
}

model = KerasClassifier(model = create_model, hidden_layer_dim=50, epochs=20, batch_size=32)

# Create a GridSearchCV object
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, scoring = 'accuracy')  # Consider cross-validation

# Fit the grid search to your training data
grid_result = grid.fit(x_train, y_train)

# Best model
print(grid_result.best_params_, grid_result.best_score_)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[54], [line 28](vscode-notebook-cell:?execution_count=54&line=28)
     [25](vscode-notebook-cell:?execution_count=54&line=25) grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, scoring = 'accuracy')  # Consider cross-validation
     [27](vscode-notebook-cell:?execution_count=54&line=27) # Fit the grid search to your training data
---> [28](vscode-notebook-cell:?execution_count=54&line=28) grid_result = grid.fit(x_train, y_train)
     [30](vscode-notebook-cell:?execution_count=54&line=30) # Best model
     [31](vscode-notebook-cell:?execution_count=54&line=31) print(grid_result.best_params_, grid_result.best_score_)

File [c:\Users\will_\Code\.venv\lib\site-packages\sklearn\base.py:1474](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1474), in _fit_context.<locals>.decorator.<locals>.wrapper(estimator, *args, **kwargs)
   [1467](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1467)     estimator._validate_params()
   [1469](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1469) with config_context(
   [1470](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1470)     skip_parameter_validation=(
   [1471](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1471)         prefer_skip_nested_validation or global_skip_validation
   [1472](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1472)     )
   [1473](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1473) ):
-> [1474](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/base.py:1474)     return fit_method(estimator, *args, **kwargs)

File [c:\Users\will_\Code\.venv\lib\site-packages\sklearn\model_selection\_search.py:970](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:970), in BaseSearchCV.fit(self, X, y, **params)
    [964](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:964)     results = self._format_results(
    [965](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:965)         all_candidate_params, n_splits, all_out, all_more_results
    [966](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:966)     )
    [968](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:968)     return results
--> [970](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:970) self._run_search(evaluate_candidates)
    [972](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:972) # multimetric is determined here because in the case of a callable
    [973](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:973) # self.scoring the return type is only known after calling
    [974](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:974) first_test_score = all_out[0]["test_scores"]

File [c:\Users\will_\Code\.venv\lib\site-packages\sklearn\model_selection\_search.py:1527](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:1527), in GridSearchCV._run_search(self, evaluate_candidates)
   [1525](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:1525) def _run_search(self, evaluate_candidates):
   [1526](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:1526)     """Search all candidates in param_grid"""
-> [1527](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:1527)     evaluate_candidates(ParameterGrid(self.param_grid))

File [c:\Users\will_\Code\.venv\lib\site-packages\sklearn\model_selection\_search.py:947](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:947), in BaseSearchCV.fit.<locals>.evaluate_candidates(candidate_params, cv, more_results)
    [940](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:940) elif len(out) != n_candidates * n_splits:
    [941](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:941)     raise ValueError(
    [942](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:942)         "cv.split and cv.get_n_splits returned "
    [943](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:943)         "inconsistent results. Expected {} "
    [944](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:944)         "splits, got {}".format(n_splits, len(out) // n_candidates)
    [945](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:945)     )
--> [947](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:947) _warn_or_raise_about_fit_failures(out, self.error_score)
    [949](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:949) # For callable self.scoring, the return type is only know after
    [950](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:950) # calling. If the return type is a dictionary, the error scores
    [951](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:951) # can now be inserted with the correct key. The type checking
    [952](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:952) # of out will be done in `_insert_error_scores`.
    [953](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_search.py:953) if callable(self.scoring):

File [c:\Users\will_\Code\.venv\lib\site-packages\sklearn\model_selection\_validation.py:536](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:536), in _warn_or_raise_about_fit_failures(results, error_score)
    [529](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:529) if num_failed_fits == num_fits:
    [530](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:530)     all_fits_failed_message = (
    [531](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:531)         f"\nAll the {num_fits} fits failed.\n"
    [532](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:532)         "It is very likely that your model is misconfigured.\n"
    [533](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:533)         "You can try to debug the error by setting error_score='raise'.\n\n"
    [534](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:534)         f"Below are more details about the failures:\n{fit_errors_summary}"
    [535](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:535)     )
--> [536](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:536)     raise ValueError(all_fits_failed_message)
    [538](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:538) else:
    [539](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:539)     some_fits_failed_message = (
    [540](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:540)         f"\n{num_failed_fits} fits failed out of a total of {num_fits}.\n"
    [541](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:541)         "The score on these train-test partitions for these parameters"
   (...)
    [545](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:545)         f"Below are more details about the failures:\n{fit_errors_summary}"
    [546](file:///C:/Users/will_/Code/.venv/lib/site-packages/sklearn/model_selection/_validation.py:546)     )

ValueError:
All the 54 fits failed.
It is very likely that your model is misconfigured.
You can try to debug the error by setting error_score='raise'.

Below are more details about the failures:
--------------------------------------------------------------------------------
54 fits failed with the following error:
Traceback (most recent call last):
  File "c:\Users\will_\Code\.venv\lib\site-packages\sklearn\model_selection\_validation.py", line 895, in _fit_and_score
    estimator.fit(X_train, y_train, **fit_params)
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\wrappers.py", line 1491, in fit
    super().fit(X=X, y=y, sample_weight=sample_weight, **kwargs)
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\wrappers.py", line 760, in fit
    self._fit(
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\wrappers.py", line 928, in _fit
    self._fit_keras_model(
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\wrappers.py", line 536, in _fit_keras_model
    raise e
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\wrappers.py", line 531, in _fit_keras_model
    key = metric_name(key)
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\utils\__init__.py", line 111, in metric_name
    fn_or_cls = keras_metric_get(metric)
  File "c:\Users\will_\Code\.venv\lib\site-packages\keras\src\metrics\__init__.py", line 204, in get
ValueError: Could not interpret metric identifier: loss

Same error on my side as well

Hi @williamhunterwilson ,
It seems the source of error is from below piece of code from your error stack which is from scikeras.
  File "c:\Users\will_\Code\.venv\lib\site-packages\scikeras\utils\__init__.py", line 111, in metric_name
    fn_or_cls = keras_metric_get(metric)

Here  scikeras seems passing the string 'loss' to the argument metric in the above function keras_metric_get(metric) instead of a metric name that Keras accepts.

Use the tensorflow==2.14.1. I was using the version as mentioned, it was working perfectly. Today, I ported my project to ec2 and tried to run the notebook. Ended up getting the error. I believe TensorFlow have released new version 2.16. So it might not be compatible yet with libraries like SciKeras.

Use the tensorflow==2.14.1. I was using the version as mentioned, it was working perfectly. Today, I ported my project to ec2 and tried to run the notebook. Ended up getting the error. I believe TensorFlow have released new version 2.16. So it might not be compatible yet with libraries like SciKeras.

I tried uninstalling tensorflow and reinstalling version 2.14.1 as you tried but still got the error. I don't think the error is with tensorflow as I don't actually use it anywhere, I just imported it for good measure. Maybe it is a compatibility issue with keras and scikeras??

Can you check your Keras version? I'm using TensorFlow's Keras API, and the Keras version installed with it is 2.14.
So my working project has
Keras : 2.14.0
SciKeras: 0.12

Can you check your Keras version? I'm using TensorFlow's Keras API, and the Keras version installed with it is 2.14.
So my working project has Keras : 2.14.0 SciKeras: 0.12

I reinstalled the versions you used but still got the error that all my fits failed.

But the models were still tested???

Can you check your Keras version? I'm using TensorFlow's Keras API, and the Keras version installed with it is 2.14.
So my working project has Keras : 2.14.0 SciKeras: 0.12

I reinstalled the versions you used but still got the error that all my fits failed.

But the models were still tested???
Please don't mind the horrible accuracy and loss values, it's all just test values 😅

I have this code
!pip install sklearn-deap
!pip install tpot
%pip install scikeras
%pip install keras
%pip install --upgrade pip
Anything above 2.10 is not supported on the GPU on Windows Native
%pip install "tensorflow<2.11"
and i solved the error 'ValueError: Could not interpret metric identifier: loss'
with the last line. (%pip install "tensorflow<2.11")

Can you check your Keras version? I'm using TensorFlow's Keras API, and the Keras version installed with it is 2.14.
So my working project has Keras : 2.14.0 SciKeras: 0.12

I reinstalled the versions you used but still got the error that all my fits failed.

But the models were still tested???
Please don't mind the horrible accuracy and loss values, it's all just test values 😅

I have this code !pip install sklearn-deap !pip install tpot %pip install scikeras %pip install keras %pip install --upgrade pip
Anything above 2.10 is not supported on the GPU on Windows Native
%pip install "tensorflow<2.11"
and i solved the error 'ValueError: Could not interpret metric identifier: loss' with the last line. (%pip install "tensorflow<2.11")

That's correct ths mate

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import tensorflow as tf
import keras
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import GridSearchCV
from scikeras.wrappers import KerasClassifier
from skopt import BayesSearchCV
from skopt.space import Real, Categorical, Integer

This worked! I had to play around with my environments and play around with the order of the installs but YES
Thank you!!

Hi @williamhunterwilson ,
Could you please confirm whether you have tested with Older TF and whether it works . Please confirm this is issue with keras3 and submit a repro code for same.
Thanks!

This seems not an issue with keras3. If other libraries using Keras make sure the version it is used and install the same.

Hi @williamhunterwilson ,
Could you please confirm whether you have tested with Older TF and whether it works . Please confirm this is issue with keras3 and submit a repro code for same.
Thanks!

I think the issue may be with Scikeras and the newer versions of TF
I have tested with:
Keras 2.10.0
Tensorflow 2.10.1
Scikeras 0.12.0
I used to test in a jupyter notebook with these csv files:
a_disposals.csv
a_form.csv
a_kicks.csv
a_pplayed.csv
a_tackles.csv
b_disposals.csv
b_form.csv
b_kicks.csv
b_pplayed.csv
b_tackles.csv
CODE
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import tensorflow as tf
import keras
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import GridSearchCV
from scikeras.wrappers import KerasClassifier
from skopt import BayesSearchCV
from skopt.space import Real, Categorical, Integer
outcome_labels_a = pd.read_csv('a_form.csv').T
outcome_labels_b = pd.read_csv('b_form.csv').T
Assuming you have:
team_a_data: DataFrame for Team A
team_b_data: DataFrame for Team B
df_a_disposals = pd.read_csv('a_disposals.csv').T
df_a_disposals = df_a_disposals.drop(index = 'Player')
df_a_kicks = pd.read_csv('a_kicks.csv').T
df_a_kicks = df_a_kicks.drop(index = 'Player')
df_a_tackles = pd.read_csv('a_tackles.csv').T
df_a_tackles = df_a_tackles.drop(index = 'Player')
df_a_pplayed = pd.read_csv('a_pplayed.csv').T
df_a_pplayed = df_a_pplayed.drop(index = 'Player')
df_b_disposals = pd.read_csv('b_disposals.csv').T
df_b_disposals = df_b_disposals.drop(index = 'Player')
df_b_kicks = pd.read_csv('b_kicks.csv').T
df_b_kicks = df_b_kicks.drop(index = 'Player')
df_b_tackles = pd.read_csv('b_tackles.csv').T
df_b_tackles = df_b_tackles.drop(index = 'Player')
df_b_pplayed = pd.read_csv('b_pplayed.csv').T
df_b_pplayed = df_b_pplayed.drop(index = 'Player')
Concatenate dataframes
team_a_data = pd.concat([df_a_disposals, df_a_kicks, df_a_tackles, df_a_pplayed], axis = 1)
team_b_data = pd.concat([df_b_disposals, df_b_kicks, df_b_tackles, df_b_pplayed], axis = 1)
Combine player data for both teams
combined_data = pd.concat([team_a_data, team_b_data], axis=0)
Merge with outcomes data
team_a_merged = pd.merge(team_a_data, outcome_labels_a, left_index = True, right_index = True)
team_b_merged = pd.merge(team_b_data, outcome_labels_b, left_index = True, right_index = True)
merged_data = pd.concat([team_a_merged, team_b_merged], axis=0)
x = merged_data.drop(columns = ['0_y'])
y = merged_data['0_y']
Splitting initial 70%
x_train, x_remaining, y_train, y_remaining = train_test_split(x, y, test_size=0.3, random_state=42) # Splitting initial 70%
Further split remaining 30%
x_val, x_test, y_val, y_test = train_test_split(x_remaining, y_remaining, test_size=0.5, random_state=42)
Create the model (simplifying for illustration)
def create_model(hidden_layer_dim=32, loss='binary_crossentropy', optimizer='adam', learning_rate=0.01):
model = Sequential([
Dense(units=32, activation='relu', input_shape=(x_train.shape[1],)), # Adjust 'units' for hidden layer size
Dense(units=16, activation='relu'),
Dense(units=1, activation='sigmoid')
])
model.compile(optimizer=keras.optimizers.Adam(learning_rate=learning_rate),
loss='binary_crossentropy',
metrics=['accuracy'])
return model

Parameter grid
param_grid = {
"hidden_layer_dim": [50, 100, 200],
"loss": ["binary_crossentropy"],
"optimizer": ["adam", "sgd"],
"optimizer__learning_rate": [0.0001, 0.001, 0.1],
}
model = KerasClassifier(model = create_model, hidden_layer_dim=50, epochs=20, batch_size=32)
Create a GridSearchCV object
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, scoring = 'accuracy')  # Consider cross-validation
Fit the grid search to your training data
grid_result = grid.fit(x_train, y_train)
Best model
print(grid_result.best_params_, grid_result.best_score_)
OUTPUT:
{'hidden_layer_dim': 200, 'loss': 'binary_crossentropy', 'optimizer': 'sgd', 'optimizer__learning_rate': 0.001} 0.6606060606060606

Hi @williamhunterwilson ,
If Sci_keras is using Keras internally then it has to be made compatible with new version. IMHO this needs to be addressed at sci_keras . I am not sure what is the latest TF/Keras version it was tested.
Keras3 is made compatible for tensorflow ,torch and jax libraries as backend. We can't address compatibilities with other libraries since sci_keras is not a dependency for Keras.
Can you test the model with Keras as standalone package with any of the above 3 backends and still having issue then please comeback with the report.
Thanks!


Malformed UTF-8 near bytes 11 d7 fd

When using this library sometimes i get this error.
Here is the .backtrace:

  in block  at /home/demanuel/.raku/sources/70DD524CA8827A911588D5FFEB621C3FD9423B96 (IO::Socket::Async::SSL) line 815
  in block  at SETTING::src/core.c/Rakudo/Supply.pm6 line 445
  in method run-supply-code at SETTING::src/core.c/Rakudo/Supply.pm6 line 445
  in block  at SETTING::src/core.c/Rakudo/Supply.pm6 line 407
  in method run-emit at SETTING::src/core.c/Rakudo/Supply.pm6 line 122
  in any  at /usr/share/perl6/runtime/CORE.c.setting.moarvm line 1
  in sub emit at SETTING::src/core.c/control.pm6 line 180
  in block  at SETTING::src/core.c/Channel.pm6 line 136
  in block  at SETTING::src/core.c/Rakudo/Supply.pm6 line 250
  in method run-with-updated-recursion-list at SETTING::src/core.c/Lock/Async.pm6 line 176
  in method protect-or-queue-on-recursion at SETTING::src/core.c/Lock/Async.pm6 line 142
  in method run-supply-code at SETTING::src/core.c/Rakudo/Supply.pm6 line 256
  in block  at SETTING::src/core.c/Rakudo/Supply.pm6 line 183
  in block  at SETTING::src/core.c/Supply-factories.pm6 line 303
  in block  at SETTING::src/core.c/ThreadPoolScheduler.pm6 line 242
  in block  at SETTING::src/core.c/ThreadPoolScheduler.pm6 line 241
  in method run-one at SETTING::src/core.c/ThreadPoolScheduler.pm6 line 236
  in block  at SETTING::src/core.c/ThreadPoolScheduler.pm6 line 278

Unfortunately i don't have yet more information.
Best regards,
David Santiago

forgot to specify it as binary with :bin
Closing it.


react router for shareable links as well

This issue was done https://github.com/RENTFT/front-mooncat/pull/18


Feature: last/first side loop

thanks for merging this, there's an issue with the event handling of pages (scrolling, tapping etc...) when loop is enabled. I'll submit a fix soon


[kjobctl] Make the output of the "describe job" command a viable yaml

What would you like to be added:
Make the output of the "describe job" command a viable yaml (parsable while maintaining the same intended structure).
Why is this needed:
The output of this command is currently human readable but cannot be used with scripts easily.
Completion requirements:
The output of the "describe job" command should be parsable by yaml. The listings should be parsed properly.
It would also be fine it this option is hidden under a flag (like "-o yaml").

Did you try kjobctl list slurm name -o yaml?

Did you try kjobctl list job name -o yaml?

Haven't found this one, thank you. :)
It would still be nice to have this option for the "describe job", but it seems this will be enough for my use case.
Feel free to close this issue as resolved.

We are aiming to make this as similar to kubectl as possible. Note that kubectl describe does not support the -o yaml option.
@mimowo @mwysokin WDYT?

/close


Exceptions with breadcrumbs using Sentry.LoggerBackend

Environment

Elixir version (elixir -v): All
Erlang/OTP version (erl): all
Sentry version (mix deps): 7.x
Operating system: All

Description
When a process crashes or an exception is raised sentry-elixir will capture the exception correctly. However, if you use breadcrumbs or other context sentry-elixir will not pass this correctly.
As I understand the code we are using the Process dictionary to hold all context.  The problem comes up when you are utilizing Sentry.LoggerBackend as your logger backend.  The logger and the process the exception occurred in are not the same resulting in no context being sent.
Expected Behavior
Context will be passed correctly when errors and exceptions happen.
Actual Behavior
Context is lost because the logger is a different process.
Steps to Reproduce
defmodule Test.MimicGenserver do
  alias GenServer
  use GenServer

  def start_link(_) do
    GenServer.start_link(__MODULE__, %{}, name: __MODULE__)
  end

  def init(_) do
    {:ok, %{}}
  end

  def error, do: GenServer.call(__MODULE__, :error)

  def terminate(reason, state) do
    :normal
  end

  def handle_call(:error, _from, _state) do
    Sentry.Context.add_breadcrumb(%{category: "will not show"})
    {:stop, "crash", :error, nil}
  end
end

defmodule ClientTest do
  use ExUnit.Case

  alias Test.MimicGenserver
  import ExUnit.CaptureLog

  test "if breadcrumb exists" do
    # assert {:ok, %{"test" => "test"}} = Client.make_request(request())
    bypass = Bypass.open()
    pid = self()
    start_supervised!(MimicGenserver)

    Bypass.expect(bypass, fn conn ->
      {:ok, body, conn} = Plug.Conn.read_body(conn)
      decoded_body = Jason.decode!(body)
      assert body =~ "will not show"
      send(pid, "API called")
      Plug.Conn.resp(conn, 200, ~s<{"id": "340"}>)
    end)

    Application.put_env(:sentry, :dsn, "http://public:secret@localhost:#{bypass.port}/1")

    capture_log(fn ->
      MimicGenserver.error()
      assert_receive "API called"
    end)
  end

end

Solution?
I threw together a solution last night that I would be willing to clean up a bit more and submit if you are open to PR's and adding another dependency.
My idea is to move away from the process dictionary and to utilize something like cachex as the context store.  When the context is set we could obtain the PID of the process and store that as the key in cachex.  This would allow us to utilize 98% of the context module that's in place.  When the exception is logged we can grab the PID from the metadata allowing us to obtain the context for the specific process.  Allowing us to pass the context with the error.
The only limitation I can think of with this solution is how we would monitor the process and delete keys when the process is killed normally.
Other than that I think this could be a major version bump as you would need to also incorporate a supervisor tree and start sentry as an application within your application.  If you didnt want to do a major version bump we could possibly break this out in to another module and switch between the process dictionary context and cachex context depending on if a user mounted the application.
Final thoughts...
You  may already have plans to add this or have another idea.  Just wanted to throw some thoughts your way in case you need a helping hand to implement this.  It's something I feel we are going to need to do for multiple apps we use. That or we may implement some custom functionality that mimics the above.  Utilizing a new logger, custom context module and a custom before_send event.
Thanks for the work!  The code was extremely easy to follow and took minimal effort to understand.

@joshualcoffee thanks for opening an issue and the detailing the current limitations and possibilities!
I would like to expand what's possible with Context around processes, but it's unlikely I'll add a required dependency. The most likely case is something that allows configuration of where the Context is read from and written to. Default configuration being the same process dictionary functionality that exists now, and Sentry could include a configuration option to substitute a different module with an optional dependency on something like cachex. With that, it is potentially possible to avoid a major version change.
Does something along those lines fit with what you'd like to see?

I think that's a fair point regarding the dependency.  I was really on the fence if it even belonged.  Cachex was my first go to as reading and writing to context could be extensive.
I think utilizing the Process dictionary may lead to bleeding concerns.  For the most part, the process dictionary should only be accessed via the process that called it. From my knowledge, I believe the only way to retrieve the process dictionary outside of the process is through Process.info(pid).  This could result in pretty huge memory leaks as the dictionary is copied over and over when you do that.
Process.put("set", "me")
> Process.info(self())
> Process.info(self())

You will see the history keeps growing.
Outside of that, you cannot guarantee the process is alive at the time of a crash.  Let's say a genserver crashes that you have set some context on.  Once this error hits the logger the process could have already been killed.
I think the main concern is no one is able to utilize context or breadcrumbs on exceptions.  This somewhat breaks the "let it crash" paradigm as you now need to trap exits to truly utilize this functionality.
I have a few ideas that may work:
Idea 1

Add documentation that context is not carried over for logged errors
manually submit errors via capture_exception or capture_message.
This is not my favorite as I think it couples functionality a bit too much. It also relies on errors as some sort of control flow via trapping or always responding with some error tuple.

Idea 2

Make Sentry.Context a behaviour.
Allow devs to pass their context module in the config
Modify the existing code to read from the context module.

I think this would require some rewriting as the process pid the error comes from will need to be passed to the capture_error.
Side note:
A nice feature would be to allow devs to pass a context key on capture exception or capture the message that would retrieve context.  The use case for this is a complex genstage.  You could set context as the genstage was being processed.  If an error occurs the context would be passed to sentry and tagged accordingly.
This may be out of scope for this library as it could be a dev concern.  However, it starts to move in to the gray area because of crashing processes.
Solution I've come up with
Just in case anyone else is facing the same problem. I've created a new context module that utilizes cachex.  Im using the process PID to as the key in cachex.
defp set_context(current, key, new, context_key) when is_map(current) and is_map(new) do
    merged_context =
      current
      |> Map.get(key, %{})
      |> Map.merge(new)

    new_context = Map.put(current, key, merged_context)
    set_and_get_context(context_key, new_context)
  end

  def clear_all(key) do
    Cachex.del(@cachex_key, key)
  end

  defp get_context(key) do
    case Cachex.get(@cachex_key, key) do
      {:ok, %{} = result} -> result
      _ -> %{}
    end
  end

I also copied the Sentry.LoggerBackend and modified it a bit to pass the PID that the error occurred in.  I can then retrieve that in the before_send.  In the before send I modify the event adding the proper context.  The event is then processed accordingly.
I've not fully tested this but so far it seems like it's working.

I think one of the more difficult parts will be clearing a key when it's no longer needed. Possible to monitor process when data gets added, but I'm not sure on the implications or details of managing it.


Confused about lngDict prop

In the readme and in the example you can see something like this in _app.js:
import { I18nProvider } from 'next-localization';
import { useRouter } from 'next/router';

export default function MyApp({ Component, pageProps }) {
    const router = useRouter();
    const { lngDict, ...rest } = pageProps;

    return (
        <I18nProvider lngDict={lngDict} locale={router.locale}>
            <Component {...rest} />
        </I18nProvider>
    );
}

If you log out lngDict it's always undefined, what's the point of that prop? Am I missing something?
Using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Thank you.

lngDict contains the key:value pairs of your translation in a specific language. You can load it on server-side or client-side.

lngDict contains the key:value pairs of your translation in a specific language. You can load it on server-side or client-side.

Why is used in the example if it's always undefined? Is there a reason? Or maybe is not always undefined?

Why is used in the example if it's always undefined? Is there a reason? Or maybe is not always undefined?

You have to set it in one of the methods https://github.com/StarpTech/next-localization#usage-with-getstaticprops


cnap/core:add qat_zip to compress/decompress the frame

This PR is to fix #91, and it depends on the Intel QAT driver and QATzip.
For usages examples:
#initialization
qat = QATFrameZip()
#compression
compressed_data = qat.compress(frame_data)
#decompression
decompressed_data = qat.decompress(compressed_data)
#teardown&close
qat.teardown_session()
qat.close_session()

@Yanbo0101 How about changing qat_zip.py to qat.py and QATFrameZip to QAT? then it can be used for more scenarios and add more features like encryption or decryption.

@Yanbo0101 How about changing qat_zip.py to qat.py and QATFrameZip to QAT? then it can be used for more scenarios and add more features like encryption or decryption.
I have made the modifications and submitted them.  For encryption and decryption, initializing QAT and establishing a session are somewhat different from QATzip, so I have retained class QATzip. Could you please review again？Thanks!


Added Kaleidoscope Simulation with Processing

Community Contribution
Link to live project, video, or image:
https://youtu.be/BD4Y-88ryvE
Sharing

[x] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
@bhaswar.py
Twitter:
@denisovich_py

Thanks Violet!


Cast_Valid_5

This is currently failing for reasons unknown:
public type u8 is (int n) where 0 <= n && n <= 0x00_ff

public int[] bases = [1,2,4,8,16,32,64,128]

public function toUnsignedInt(byte b) -> (int r)
ensures 0 <= r && r <= 255:
    //
    int x = 0
    int base = 1
    int i = 0
    //
    while i <= 7
        where 0 <= i
        where 0 <= x && x < base
        where i > 7 || base == bases[i]:
        if (b & 0b00000001) == 0b0000_0001:
            x = x + base
        // NOTE: following mask needed in leu of unsigned right shift
        // operator.
        b = (b >> 1) & 0b01111111
        base = base * 2
        i = i + 1
    //
    return x

Ok, this is an interesting one.  There are two problems with the loop invariant.  We can verify with this:
where 0 <= x && x < base
where (i > 7 && base == 256) || base == bases[i]

Another way to do it is to change the length of the bases array to include an 8th element.


Catch up latest (v1.1) SQLite table schema and SQL queries

including CBLDatabaseUpgrade.m

Remove attachments table
Remove maps table


Getting the currently playing track ID

Is there a way to access the config properties in the main Amplitude object to detect the currently playing track ID?

Thanks for adding this through Github. I am going to refer this to @danpastori for more information.

Hi @mrcury,
I just added a method to access the index of the track that is currently playing. To get the index, you'd just run: Amplitude.activeIndex() and it will return the index of the track that is now playing.
If you need more meta data for the song, you can add any data to the song object when initializing amplitude, and retrieve that data with Amplitude.getActiveSongMetadata(). That will return whatever you have in the song object.
Let me know if this works!

Worked a treat! Thanks, you guys rock 🤘

Awesome, glad to hear! Thanks for using Amplitude!!


bulleted list in a grid plate needs to operate like a p tag

right now it's not possible to put a bulleted list inside of a grid plate without manual intervention. Then when it's in the grid plate (via code view / edit) it works for normal keyboard functions but the toolbar options don't show up so you can't bold text, add links, etc.
The first one may be complicated but the showing the toolbar piece should be relatively easy.

#456 fixed w/ this


Update signing.py for encode error

When session_dict has Chinese charactors, Encoded error occur.
change  django.core.signing.JSONSerializer encoded mode from latin-1 to utf-8

All bugfixes require an accepted ticket. Please create a ticket and describe your use case. Also, I'm not sure if it'll be valid because you can always use a custom SESSION_SERIALIZER, see ticket-21124, ticket-20922, and 58a086acfbec833f44cd53e984972250bbb67457.


Error rezipping ipa file when .app file inside has spaces

For whatever reason, this error stops happening when the /tmp/ipa_helper folder is deleted entirely.  May have something to do with the hash being different if there was a space?

This looks like it has stopped happening, I'm closing this ticket for now

This isn't just when .app file has spaces in its name, not sure why this is happening


Update wait timer expiration in SGX enclave to match simulator.

Signed-off-by: Jamie Jason<EMAIL_ADDRESS>

Realized when chatting with Peter, James, and Boyd that the wait timer expiration values in the simulator and SGX versions are different.


fix: accessing deleted board

Relates to:

#1382

Fixes:

#1382

Screen Recording
https://user-images.githubusercontent.com/8330038/232097658-251614c0-de7a-4c19-a4e9-9dffca954e7b.mov
Proposed Changes

When a user is in a board that is deleted:

He receives a message via socket
He is redirected to the board-deleted page
This will happen in the Main Board and also on the Sub-Boards

This pull request closes #1382

I'm not sure if is this the best solution for this feature. We can simply redirect the user to the board's page if the getBoard request receives an error


Prevent date format to change based on duration and keep a fixed Datetime format when zooming in/out.

The first label shows January 2010.
When the value is the start of the month/start of the year, it is different than the rest of the ticks.
It is documented here - https://apexcharts.com/docs/datetime/

@junedchhipa  Is there way to display it like 01 Jan, instead of Jan `10, without affecting the chart drill-down due to zooming ?

In the same doc page, you will see
b). xaxis.labels.format
The X values formatting for datetime values can also be formatted by:
xaxis.labels.format = 'DD/MM'
This will fix the labels formatter and will not consider whether the difference in time is in years/months/days/hours
xaxis: {
labels: {
format: 'DD/MM',
}
}
c). xaxis.labels.formatter
Overrides everything and applies a custom function for the xaxis value.
xaxis: {
labels: {
formatter: function (value, timestamp) {
return new Date(timestamp) // The formatter function overrides format property
},
}
}

Yeah, this will lead to display the labels in the same format no matter what. This doesn't work out with the requirement I have. BTW, thanks for the info.


Output length not described

Why isn't  Output Buffer Length described? What if the configuration descriptor is requested and it doesn't fit in the provided buffer? What status is returned?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0a83ceb9-bfe0-4ad4-e0a2-150bfd67d0c8
Version Independent ID: d2a1b247-0120-4a52-4601-d3d1ef5e250c
Content: IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION
Content Source: wdk-ddi-src/content/usbioctl/ni-usbioctl-ioctl_usb_get_descriptor_from_node_connection.md
Product: windows-hardware
GitHub Login: @windows-driver-content
Microsoft Alias: windowsdriverdev

Hi @BrianCatlin,
I’ve created an internal work item for myself to investigate this with the USB team, and I’ll make a note here when I complete the changes. In the meantime, I’m closing the GitHub issue while it’s tracked in the bug. Thanks again for helping to improve the docs.


Refactor module builder and fix issue 41

Fixes #41 by adding -vhlo-to-version pass before -vhlo-legalize-to-stablehlo in order to update VHLO to latest version. That converts v1 ops to v2 ops, and then -vhlo-legalize-to-stablehlo successfully converts vhlo.dot_general_v2.
Refactored module builder in the process:

Reorganized code into multiple functions
Changed module builder to return PJRT status instead of throwing errors, previous error messages are now logged and status is reported from api_impl.cc::ClientInstance::Compile function
Removed unnecessary includes and sorted them

FYI @vladimirjovanovicTT


man is broken/needs rebuilding after libgdbm update

hayai[msys][4]:~% man ls
C:/msys64/usr/bin/man.exe: error while loading shared libraries: msys-gdbm-4.dll: cannot open shared object file: No such file or directory

Hello, I had the same issue and I downgraded to the version of libgdbm and gdbm to 1.11 and it resolved it. I found the packages in /var/cache/pacman/pkg and used 'pacman -U' to downgrade.

+1

Confirmed, thanks.


Usable in PHP/Curl call ?

Hi,
Is this usable in a PHP/Curl call on the response ? I'd like to have a readable steps output as well and trying to figure out how!

If I understand correctly, you’d like a PHP script or curl call to be able to request directions from OSRM and get human-readable instructions as part of the response, correct? This library is designed to be run either on a server (as part of a Node.js-based API) or in a browser environment. The Mapbox Directions API relies on this library to provide instructions as part of the route response. You can use the API in curl or PHP using that language’s standard library.

In the Directions API response, there are instructions properties as well as voiceInstructions and bannerInstructions objects that provide instructions suitable for display and text-to-speech. Is there a particular aspect of the instructions that you consider unreadable?

Thanks for the update! I know that data is in but don't know how to use it with this projext. An example how to call it (serverside) would be very helpfull, I have seen someone else also asking for it but no usable answer there. Maybe update the Readme a little bit ?

If you use something like the Directions API, you don’t need this project; OSRMTI is working behind the scenes to make the instructions human-readable. You’d only need to use this project directly if you use OSRM directly. I don’t know for sure, but I suspect it’d be challenging to use OSRMTI directly on the server-side in a PHP environment, since OSRMTI requires a Node.js environment. With an existing API such as Mapbox’s, your PHP application can interact with the API over HTTP, sidestepping those challenges.

OK, thanks for the explanation! I'm running my own OSRM server but never heard about OSRMTI and cannot find that much about it as well so I think I need this project as well. I wrote my own API against OSRM so that works, I get the steps but I only need to make them readable.

Ah, I see. This documentation shows how you’d integrate your API with OSRMTI if your API is written in Node.js. On the other hand, if your API is written in PHP, then you may need to port OSRMTI to PHP. The good news is that index.js is pretty stable and fairly lightweight – the most important parts of this library are the translation files and test fixtures, which are all in JSON and therefore portable across languages.

OK, then I need to find out how to create a proof on concept out of the Docs, but that might needs some extention... the Docs. Or I'm overseeing something.

Unfortunately, I’m afraid if you’re looking into porting this library to PHP, there isn’t much in the way of documentation that I can point you to. The meat of the library’s logic is in this file – hope that helps a bit.


Add King's Rock flags for Gens 2-4

As discussed in issue #3343, Gens 2-4 use "move scripts" to allow King's Rock to proc for specific moves. This pull adds mods to said gens to reflect this. Sources used are UPC (linked in the relevant task in #2367) and Bulbapedia (for Gen 4, since there is no archive for the Gen 4 move list on UPC). Additionally, this pull adds checks to Gen 2 to limit multi-hit moves to a single roll for status and to prevent moves from flinching sleeping/frozen targets unless the user is holding a King's Rock.
Notes:

The multi-hit check, which is mainly for King's Rock, also limits Twineedle to a single roll for poison, which I believe is accurate
Snore is affected by King's Rock, but already has a chance to flinch. I was unsure how this scenario is handled in-game, both in flinch chance and in ability to flinch sleeping/frozen targets. (There are a few other such moves in Gens 3 & 4, such as Rolling Kick, Twister, and Dark Pulse)

Do you know when the single roll takes place? I'd assume after all hits, right? So the "poisoned" message would only happen after Twineedle's last hit?

Do you know when the single roll takes place? I'd assume after all hits, right? So the "poisoned" message would only happen after Twineedle's last hit?

Mm, yea, good point. I'll try to fix that.

For Gen 4, I checked UPC against your list from Bulbapedia and found these changes to be made:
+ Dragon Rage, Gust, Pound, Wring Out, Zen Headbutt
- Tickle

I know Tickle is actually flagged in Gen 3 for whatever reason, and for Gen 4 Zen Headbutt sounded odd so I went and checked a disassembly. https://github.com/JimB16/PokePlat/blob/master/data/poketool/waza/waza_tbl/data_00000428.s
Zen Headbutt is index number 428
Flag2 = 51 = 0b00110011 = UPC notation ||fe||ba = kingsrock/mirror/protect/contact
Gen 4 also introduced Razor Fang, so whatever is done with King's Rock should be copied there too.

Do you know when the single roll takes place? I'd assume after all hits, right? So the "poisoned" message would only happen after Twineedle's last hit?

While this sounds right, if Gen 2 Twineedle's first hit breaks a substitute, the second hit can't poison. PS already handles this by deleting its secondaries when it hits a sub, but UPC also says flinches from King's Rock can happen if a sub is broken, so that may need to be revisited. The Crystal disassembly doesn't seem to back up that claim, but I'm by no means an expert on reading asm. I'll try to test that in-game soon.
Re: King's Rock and moves that can already flinch, for Gens 3 and 4 UPC says "(This effect is cumulative with additional effects that already cause their target to flinch.)", which to me reads as being a completely independent roll since effect chances have never been additive.
For Gen 2 and 3 I'll double check UPC's flags with the pret disassemblies later. Overall this is looking really good! :+1:

Cool. I've updated the Gen 4 flags, and I'll change the multi-hit check to after the last hit instead of the first. I've also copied the flags over to Razor Fang for Gen 4, under the assumption that the list is the same as King's Rock. I guess I'll also need to implement a kingsrock flag or something to the secondary, to deal with e.g. Snore. I'll wait to commit though until you double check the Gen 2 and 3 flags. I'll also leave the sub interaction alone for the time-being.
One other thing, I was confused by the original Gen 3 King's Rock mod; was there a specific reason that it wasn't adding the King's Rock secondary if the move already had secondaries? Was that just an early attempt at limiting it to the right moves?

Well, this sucks:

Feel free not to deal with that in this PR since it'll involve refactoring some other stuff.
Your lists for Gen 2 and 3 moves match the respective game's code, so all's good there.

Was that just an early attempt at limiting it to the right moves?

As far as I know, yeah. The person who implemented Gen 3 several years ago used a combination of UPC and Bulbapedia, so some things were originally done wrong or half-wrong.

I rounded the 11.7% chance in Gen 2 up to 12% so that when it's translated into "chance out of 256", it'll round down to 30 instead of 29.
This looks well done to me! @Zarel did you have any other comments?

This looks good!


Util.js:55 Uncaught TypeError: Cannot use 'in' operator to search for '_leaflet_id' in undefined

Hi,
I created a button to create rectangles. When clicking the button I get this error:
Util.js:55 Uncaught TypeError: Cannot use 'in' operator to search for '_leaflet_id' in undefined
This just happens with Leaflet 1.8.0 and newer versions (with 1.7.0 works).

Here the fiddle:
https://jsfiddle.net/7cx2ztuq/1/
Thanks

Hi,
Already found the error, it is not Geoman related it is Leaflet related.
In previous versions you could do the following:
    var lyrBus; // empty layer, a placeholder
    if (map.hasLayer(lyrBus)) {
      map.removeLayer(lyrBus);
  }

From 1.8.0 version onwards you need to provide a proper argument, otherwise you will get the error mentioned:
    var lyrBus = L.marker([51.505, -0.09]); // need to be initiated with a Leaflet layer
    if (map.hasLayer(lyrBus)) {
      map.removeLayer(lyrBus);
  }


ConfigureCouchbase simpleCouchbaseClient() have a return type of CouchbaseDistributedMapClient

Makes injecting the concrete type simpler. True also for S3DistributedMapClient

Implemented in https://github.com/aol/micro-server/pull/234


better support for on-demand apply resource

In some scenario, user want to have a dedicated docker for a while. For example, user is using jupyter notebook, he need response immediately, and save some scripts persistent in a pod. It has some initial support now, and it can be better.
Details,

Support user to mount some folder like home. It can be persistent, and download/upload in storage. So that user can work on some scripts in a pod, and save/upload them out of pod.
Limit count of on-demand request for each user. It avoid all resources are occupied by several users.
provide timeout and return mechanism to make sure idle resource can be recycled.
Provide better experience and make sure it e2e works for jupyter. For example, provide a page that user can request a on-demand machine with resource requirement, time range (with maximum limitation) for jupyter.

the feature requirement has been decoupled into jupyter notebook support and storage support. closed.


Add Storybook and Changsets to design system example.

Addresses / builds on:

https://github.com/vercel/turborepo/discussions/374
https://github.com/vercel/turborepo/discussions/389
https://github.com/vercel/turborepo/discussions/983
https://github.com/vercel/turborepo/discussions/1109
https://github.com/vercel/turborepo/issues/209

This example uses:

🏎 Turborepo — High-performance build system for Monorepos
🚀 React — JavaScript library for user interfaces
🛠 Tsup — TypeScript bundler powered by esbuild
📖 Storybook — UI component environment powered by Vite

See README for the full guide.

Ready for re-review 🚢

Since this design system example has bundling/versioning involved, would y'all mind me opening a PR to add peerDependencies in the correct spots?


Add-CSGroup

Parameters

Name string - the name of the group
LeaderID integer - the ID of the user who will be group leader

Adds a group to the system.

Written and passing test, will be in 2.0.0


Merge pull request #1 from FreeCodeCamp/staging

example fixed by adding semicolon to statement1

You are mistaken, you have not changed any files at all.  :smile:
You need to follow the instructions here:
https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-To-Create-A-Pull-Request-for-Free-Code-Camp
The most important thing is that you must edit on a branch.  You should never, ever edit or submit a PR from your copy of staging.
If you need assistance, ask for help in Help Contributors


App crashes when you scroll down chapters while having tags scroll sideways

Steps to reproduce

Go into a manga that has a long list of tags (so that you can keep the tags scrolling sideways by swiping rapidly from right to left) and enough chapters (so you can scroll down).
Rapidly swipe the tags from right to left, to make them scroll for a bit.
While the tags are still scrolling, rapidly scroll to go down the chapter list.
TachiyomiSY crashes right after.

Expected behavior
The app shouldn't crash, and you should be able to keep scrolling down the chapter list.
Actual behavior
The app suddenly crashes and exits.
Crash logs
tachiyomi_crash_logs.txt
Tachiyomi version
1.10.1
Android version
Android 11
Device
OnePlus 8
Other details
I blocked out some of the major readily-identifiable manga details (especially things like title and description text) in the attached image, just in case.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extension's repository.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version 1.10.1.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Dammit compose


Make BoolError constructor public

Allows retrieving the string by matching or constructing BoolErrors
without the from_glib() helper function

IMHO better add getter

IMHO better add getter

See https://github.com/gtk-rs/gtk/pull/523 for another reason. Alternatively we could also add a getter and new() function, but that seems like it has no advantage and just adds noise.

Well, it doesn't harm to have it. Thanks!


ymuse: init at 0.20

Description of changes
Add ymuse, a graphical MPD client.

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 185362 run on x86_64-linux 1

1 package built:

ymuse

Thank you!


@xstate/test: Maximum call stack size exceeded

Description
@xstate/test, @xstate/graph: getting "Maximum call stack size exceeded at JSON.stringify" while trying to evaluate test plans todosModel.getSimplePathPlans()
Expected Result
No exception
Reproduction
A simple machine which makes it happen. BTW removing cycle by changing TODO_CANCEL's target to Done state makes it work.
Model
const todosModel = createModel(todosMachine).withEvents({
  SET_TODOS: {
    cases: [{
      todos: [{id: 'new_id', name: 'new_name'}]
    }],
  },
  ADD_NEW: {
    cases: [{todo: {id: 'new_id', name: 'new_name'}}],
  },
  TODO_CANCEL: {
    cases: [{id: 'new_id'}],
  },
})

Machine
export const todosMachine = Machine({
  id: 'todos',
  context: {
    todos: [],
    selectedID: null,
  },
  initial: 'Initializing',
  states: {
    Initializing: {
      on: {
        SET_TODOS: {
          target: 'Idle',
          actions: assign({
            todos: (ctx, event) => {
              const todos = event.todos.map(todo => ({
                todo,
              }));

              return ctx.todos.concat(todos);
            },
          }),
        },
      },
    },
    Idle: {
      entry: [
        assign({selectedID: null}),
      ],
      on: {
        ADD_NEW: {
          target: 'Adding',
          actions: assign({
            selectedID: (ctx, evt) => evt.todo.id,
            todos: (ctx, evt) => {
              return ctx.todos.concat({
                todo: evt.todo,
              });
            },
          }),
        },
      },
    },
    Adding: {
      on: {
        TODO_CANCEL: {
          target: 'Idle',
          cond: ({selectedID}, evt) => evt.id === selectedID,
        },
      },
    },
    Done: {},
  },
});

Well this does model that your user can infinitely add todos, so at least it's accurate 😅
Try adding filtering to prevent the overflow:
const todosModel = createModel(todosMachine, {
  // Tell the algorithm to limit state/event adjacency map to states
  // that have less than 5 todos
  filter: (state) => state.context.todos.length < 5
}).withEvents({
  // ...
})

@davidkpiano what's then the definition of a simple path in this case? I was thinking cycles are not related for some reason

what's then the definition of a simple path in this case?

The path generation still follows the "no cycles" rule, but the states generated are still different; even if their value is the same, the context is different.


ARTEMIS-4726 removing scheduled msg from q via mngmnt can cause negative msg count

@clebertsuconic, can you review and merge for 2.34.0?


[SwitchBase] Server/Client className missmatch

Upgraded @material-ui/core to v4.0.0-beta.0 and wanted to use <SwitchBase /> to create a custom component while on the same page using the <Checkbox /> component. This however breaks styling when served SSR as there's a className missmatch. All other components seem to be fine.
My environment is Next.js and I was able to reproduce this on your "Next.js v4-alpha example".

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
No Server/Client className missmatch.
Current Behavior 😯

Server/Client className missmatch.
Steps to Reproduce 🕹
Download the example or clone the repo:
curl https://codeload.github.com/mui-org/material-ui/tar.gz/next | tar -xz --strip=2  material-ui-next/examples/nextjs-next
cd nextjs-next

Install it and run:
npm install
npm run dev

Adding the above mentioned components to pages/index.js like below:
import React from "react";
import Container from "@material-ui/core/Container";
import Typography from "@material-ui/core/Typography";
import Box from "@material-ui/core/Box";
import MuiLink from "@material-ui/core/Link";
import ProTip from "../src/ProTip";
import Link from "../src/Link";
import CancelIcon from "@material-ui/core/internal/svg-icons/Cancel";
import WarningIcon from "@material-ui/core/internal/svg-icons/Warning";
import Checkbox from "@material-ui/core/Checkbox";
import SwitchBase from "@material-ui/core/internal/SwitchBase";

function MadeWithLove() {
  return (
    <Typography variant="body2" color="textSecondary" align="center">
      {"Built with love by the "}
      <MuiLink color="inherit" href="https://material-ui.com/">
        Material-UI
      </MuiLink>
      {" team."}
    </Typography>
  );
}

export default function Index() {
  return (
    <Container maxWidth="sm">
      {/* These two cause Server/Client className missmatch. */}
      <Checkbox />
      <SwitchBase
        icon={<WarningIcon />}
        checkedIcon={<CancelIcon />}
        type="checkbox"
      />

      <Box my={4}>
        <Typography variant="h4" component="h1" gutterBottom>
          Next.js v4-alpha example
        </Typography>
        <Link href="/about" color="secondary">
          Go to the about page
        </Link>
        <ProTip />
        <MadeWithLove />
      </Box>
    </Container>
  );
}

@maeertin You import a private component:
import SwitchBase from "@material-ui/core/internal/SwitchBase";

Material-UI introduces tree shaking support. In this case, you can try:
import SwitchBase from "@material-ui/core/esm/internal/SwitchBase";

Hey, thanks for the quick response!
Yeah I understand it's a private component, but a handy one nonetheless. Too bad, felt like a className away :)
Cheers

@maeertin Does the suggested patch works? We could consider making this component public. Having an example of use case would help us arbitrate.


Small Changes

I suggest making a few small changes to a couple of abilities:

Excalibur and Magical Amplification change into а toggle ability.

Since the Hero has healing abilities, I think we need to strengthen his "Deus Ex Machina" ability a little and make it also enhance the treatment. Namely, whenever he channels positive energy to heal a creature, he heals the maximum possible amount.
This is partly a level 20 paladin ability. HOLY CHAMPION

Giving the "Killing Intent" effect(shaken, frightened, and cowering) always lasts 2 rounds (more if you want. Maybe even 5 rounds?). Or the same amount of time for the effects to end at the same time.
I noticed that they constantly last different number of rounds. And this is a little strange.

rework Supermassive
AC is much more important than health points, because of this, the ability rather harms than helps. Therefore, I propose to remove the penalty to AC. In addition, also remove regeneration, because there is the same skill.

I think 2 rounds will be enough for the "Killing Intent" ability. Since this skill is activated every round.


(wip) TETP-56: Add browser tests

Description :sparkles:
New PR for browser tests due to instability of the review environment.
Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #1100 (1afd4f8) into develop (be2e6e6) will decrease coverage by 6.95%.
The diff coverage is 0.56%.

@@             Coverage Diff             @@
##           develop    #1100      +/-   ##
===========================================
- Coverage    63.42%   56.46%   -6.96%
===========================================
  Files          969      202     -767
  Lines        26411     4353   -22058
  Branches      2748      405    -2343
===========================================
- Hits         16751     2458   -14293
+ Misses        9235     1816    -7419
+ Partials       425       79     -346

Impacted Files
Coverage Δ

frontend/tet/admin/.testcaferc.js
0.00% <0.00%> (ø)

.../browser-tests/actions/tet-admin-header.actions.ts
0.00% <0.00%> (ø)

...nd/tet/admin/browser-tests/login/login.testcafe.ts
0.00% <0.00%> (ø)

...rontend/tet/admin/browser-tests/utils/url.utils.ts
0.00% <0.00%> (ø)

frontend/tet/admin/reporter.config.js
0.00% <0.00%> (ø)

...sts__/utils/i18n/get-tet-admin-translations-api.ts
0.00% <0.00%> (ø)

...src/components/posting/postingHero/PostingHero.tsx
85.18% <0.00%> (ø)

frontend/tet/youth/.testcaferc.js
0.00% <0.00%> (ø)

...rontend/tet/youth/browser-tests/pages/frontpage.ts
0.00% <0.00%> (ø)

...ntend/tet/youth/browser-tests/pages/postingpage.ts
0.00% <0.00%> (ø)

... and 796 more

Continue to review full report at Codecov.

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

Duplicate of https://github.com/City-of-Helsinki/yjdh/pull/1038


Capture both Surefire and Failsafe test runs in coverage reports

Description
Updates the Jacoco configurations in azure-client-sdk-parent to allow for both Surefire and Failsafe test runs to be included in the Jacoco code coverage report. Now, in the target folder three Jacoco exec files will be created:

jacoco-unit.exec for code coverage captured when running Surefire tests
jacoco-it.exec for code coverage captured when running Failsafe tests
jacoco.exec which is the merged coverage reports for Surefire and Failsafe tests

Code coverage validation is done against jacoco.exec as it's the full representation of test coverage.
Additionally, this PR upgrades the versions of maven-compiler-plugin, maven-failsafe-plugin, and maven-surefire-plugin and updates test compilation to ignore the module path, allowing for less difficulties when testing with code not required by the projects source code module-info.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

Do not merge until after releases in case the new dependencies cause any issues


Add item to array through --set?

I have an array defined in my values.yaml file:
envVar:
- name: ENV1
  value: "VALUE1"
- name: ENV2
  value: "VALUE2"
- name: ENV3
  value: "VALUE3"

That I then access in the deployment file with
env:
{{- range .Values.environmentVar }}
  - name: {{ .name }}
    value: {{ .value }}
{{- end }}

But now I would like to define some more environment variables at the moment of chart install, something like:
helm install release-name ./chart --set env.ENV4="VALUE4"
Is this achievable somehow?

My current workaround is to add a second range:
env:
{{- range .Values.environmentVar }}
  - name: {{ .name }}
    value: {{ .value }}
{{- end }}
{{- range .Values.runtimeVar}}
  - name: {{ .name }}
    value: {{ .value }}
{{- end }}

and then depoy with:
 --set runtimeVar[0].name="ENV4",runtimeVar[0].value="VALUE4"

Your workaround is probably the best way, as it will work better with upgrades and flags like --reuse-values.

Closing this issue as answered. Please feel free to comment here and let us know if you have further questions. Thanks!


How to get Component Editor content into my parent vue instance

I am very new to vue-component model binding. How can access the quill-editor model data in my application?
I registered the component like this
Vue.component('quill-editor', require('./components/QuillEditor'));
Now i should be able to access its content
                           <quill-editor v-model="course.description"></quill-editor>
Can anyone help me.

This issue is stale because it has been open for 60 days with no activity.

This issue was closed because it has been inactive for 7 days since being marked as stale.


pr:pull-kubernetes-federation-e2e-gce flaked 94 times in the past week

 Issue by fejta-bot
Wednesday Sep 13, 2017 at 22:28 GMT
Originally opened as https://github.com/kubernetes/kubernetes/issues/52455

Flaky Job: pr:pull-kubernetes-federation-e2e-gce
Flakes in the past week: 94
Consistency: 86.80%
Flakiest tests by flake count:

Test
Flake Count

Federation Up
95

DumpFederationLogs
89

FederationTest
5

Flakiest Jobs

This is no longer relevant and we have a separate PR job now.
/close


HELPFUL: Metrics

It would be very helpful to provide metrics to the administrators such as mean response time, etc.

A perfect example would be a dashboard that can be used for info at a glance.


holepunch tools: init

Adds the following cli tools released by holepunch, see https://docs.pears.com/ for more information.
hyperbeam for example is an alternative for magic-wormhole and hyperssh a similar tool for establishing ssh connections between machines behind NAT's.
Those are some of the components that have previously been shipped with the deprecated and since removed hyperspace-cli package, see https://github.com/NixOS/nixpkgs/pull/188834

hyperssh: init at 5.0.3
hypershell: init at 0.0.15
hyper-cmd-utils: init at 1.0.0
hyperbeam: init at 3.0.2

See https://docs.pears.com/tools

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

[x] 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

[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 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.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 364237

x86_64-linux

:white_check_mark: 4 packages built:

hyper-cmd-utils
hyperbeam
hypershell
hyperssh


SQL Alchemy data layer is not being initialized without storage clients.

I'm trying to implement customdatalayer using postgres sql database by not using aws or azure storage clients instead locally.
initialization : cl_data._data_layer = SQLAlchemyDataLayer(conninfo=conninfo)
log: SQLAlchemyDataLayer storage client is not initialized and elements will not be persisted!
2024-12-09 15:55:26 - Your app is available at http://localhost:8000
Need help

Need help? Share your code!

I have configured the issue and it was solved by importing and defining the below
from chainlit.data.base import BaseStorageClient
cl_data._data_layer = SQLAlchemyDataLayer(conninfo="postgresql+asyncpg://username:password@:5432/postgres",storage_provider=BaseStorageClient)
By the way thanks for replying.


bug in optimization

Hi,
Got an image where things go wrong:
https://github.com/nextcloud/nextcloud.com/pull/1248/files#diff-fd432c615a1a70b26b64e3e187a74a8e
https://github.com/nextcloud/nextcloud.com/pull/1248/files#diff-a4c83a7c5d4aa2a21624a18c168bfbab
Anything I can do to help/fix it?

Can you provide more details on which images are broken?

I think the links above show the images directly, if you click 'display rich diff' - it is the bottom two in the list.

thanks for reporting @jospoortvliet !
We are using svgo for optimizing svgs with these plugins enabled for lossless: https://github.com/dabutvin/Imgbot/blob/master/CompressImagesFunction/Compressors/SvgoCompress.cs#L10-L25
I just checked with the default svgo installation on my laptop with your image and got no visible issue, so it must be something with our configuration. We should go through and track down which plugin is causing the issue and disable it for now as well as report it to the svgo project

I tracked this down to the convertStyleToAttrs plugin in svgo.
Looking at the original nextcloud-hub-logos.svg
Those elements that changed colors have both an inline style and a class on them
one element for example:
<path style="fill:#ffffff" class="st2" d="M 13.8,15.8 1,9.6 C -0.2,9.1 -0.2,8.3 1,7.8 L 13.8,1.7 c 1.2,-0.5 2.8,-0.5 4,0 l 12.8,6.1 c 1.2,0.5 1.2,1.3 0,1.8 l -12.8,6.1 c -1.1,0.5 -2.9,0.5 -4,0.1 z"/>

and the class st2 is declared in a css block
.st2 {
    fill: #0082c9;
}

In this case the inline style attribute wins over the css class rule
When we run the convertStyleToAttrs plugin, it converts the element to
<path fill="#ffffff" class="st2" d="M 13.8,15.8 1,9.6 C -0.2,9.1 -0.2,8.3 1,7.8 L 13.8,1.7 c 1.2,-0.5 2.8,-0.5 4,0 l 12.8,6.1 c 1.2,0.5 1.2,1.3 0,1.8 l -12.8,6.1 c -1.1,0.5 -2.9,0.5 -4,0.1 z"/>

replacing the inline style attribute with a fill attribute
The fill rule in the css block associated with the class st2 wins out over the fill attribute and they change colors.
--
I found an issue logged against the plugin for the same situation in the github repo https://github.com/svg/svgo/issues/1040
for now I think it would be best for us to disable this plugin until that issue can be resolved.

the plugin is now disabled live in production.
Thanks for bringing this up @jospoortvliet really appreciate it 👍


[WIP] php: add hydra builds for PHP 7.0 and 5.5

Motivation for this change
PHP 7.0 and 5.5 are not built on hydra and so don't have binary substitutes (7.0 5.5)
I suppose that inherit alone is too lazy and don't get the inherited packages evaluated by Hydra.
This is using the same approach ruby does, adding explicit keys for inherited packages.
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

cc php maintainer @globin

it seems to not be a inherit problem so this PR is irrelevant


Dead link

When you follow the link for "Configure certificate infrastructure for SCEP", you will discover that it is a dead link.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8b4b43c7-e56a-f762-846f-51257983d3ab
Version Independent ID: fa5d8ebb-02ea-cbc1-9b29-69bb710643e3
Content: How to use single sign on (SSO) over VPN and Wi-Fi connections (Windows 10) - Microsoft 365 Security
Content Source: windows/security/identity-protection/vpn/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md
Product: w10
Technology: windows
GitHub Login: @DulceMontemayor
Microsoft Alias: dansimp

Yes, looks like the target page(s) was/were moved in commit https://github.com/MicrosoftDocs/memdocs/commit/4ae71ed25d10c4189ee8f7758eef021d9d724386 (file specific link: https://github.com/MicrosoftDocs/memdocs/commit/4ae71ed25d10c4189ee8f7758eef021d9d724386#diff-9748553fa83345f099a9e88013c8aeff).
*
The new page link is this one: https://docs.microsoft.com/mem/intune/protect/certificates-scep-configure
*
Oh well. We will just have to amend the broken links whenever we find them. Pity there is no "What links here?" tool to collect all links across the repository to correct for the 1702 changed files and folders.
*
BTW, if you find more of these, please post a comment for everything you find, so I can add them to my PR, which I will create in a moment.

Very well, there you are. PR #6767 created to repair the broken link.
(This ticket will be closed automatically when the PR gets merged.)

Thank you for your patience. The PR has finally been merged and the link should now be working just fine.
Thank you also for reporting the dead link in the first place. 👍


fix bug in Vector mode method

This change will fix this issue. #65
Also added Rspec test code to test the new Vector mode method.

Sure. I can totally rewrite this. I am not super familiar with the rebase. Should I make another commit, then squash the two commits and submit another pull request?

Just make another commit, squash them both into a single commit, and then push to your upstream with the --force flag. That should reflect it here.

I think it worked. Thanks!


merge power grid contact

@soneryaldiz
Now the routing seems good.

@soneryaldiz @854768750
Could you help to review this branch? Thank you!


Typo in TensorFlow Core Tutorials - Image classification

URL(s) with the issue:
https://github.com/tensorflow/docs/blob/master/site/en/tutorials/images/classification.ipynb
Description of issue (what needs changing):
Typo
Clear description
Create the model
The model consists of three convolution blocks with a max pool layer in each of them. There's a fully connected layer with 512 units on top of it thatr is activated by a relu activation function.

In Create the model section,
thatr should be that
Create the model
The model consists of three convolution blocks with a max pool layer in each of them. There's a fully connected layer with 512 units on top of it that is activated by a relu activation function.

Submit a pull request?

Thanks for the report.
Can you please make a pull request? This doc lives here: https://github.com/tensorflow/docs/blob/master/site/en/tutorials/images/classification.ipynb
If not familiar, check out this section in the TensorFlow doc contributor guide.

Thank you for review the issue.
Can you please check out the pull request I made? https://github.com/tensorflow/docs/pull/1148

This was merged. Thanks


uploadUrl not set from web.php configuration file

Hi, I'm writing a tutorial for Tuts+ about this module (see https://code.tutsplus.com/tutorials/programming-with-yii2-getting-started--cms-22440) ...
I'm finding that 'uploadUrl' => '/hello/uploads' is being ignored by the widget.
'modules' => [
'redactor' => 'yii\redactor\RedactorModule',
'class' => 'yii\redactor\RedactorModule',
'uploadDir' => '@webroot/uploads',
'uploadUrl' => '/hello/uploads',
],
I had to manually change RedactorModule uploadUrl to get it to work:
class RedactorModule extends \yii\base\Module
{
public $controllerNamespace = 'yii\redactor\controllers';
public $defaultRoute = 'upload';
public $uploadDir = '@webroot/uploads';
public $uploadUrl = '/hello/uploads';

Any idea what I might be doing wrong?
Is there a way to extend the module from my own tree rather than making changes in your plugin vendor tree?
Thanks so much for a great plugin!

Hi @newscloud ,
you have inited the module wrong. See the following example:
'modules' => [         'redactor' => [             'class' => 'yii\redactor\RedactorModule',             'uploadDir' => '@webroot/path/to/uploadfolder',             'uploadUrl' => '@web/path/to/uploadfolder',             'imageAllowExtensions'=>['jpg','png','gif']         ],     ],
The modules is an associative array and the redactor is a subarray of it.


Fix bug in constructing urls on windows

Overview
This should fix the Windows bug on creating url to get status of the request.

Pull Request Test Coverage Report for Build 193

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at ?%

Totals

Change from base Build 192:
0.0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls

@pshivraj It has to do something with credentials. I am restarting the job, to make sure it works.

@pshivraj It has to do something with credentials. I am restarting the job, to make sure it works.

Yes probably as I was unable to reproduce this error locally for the current PR.

Runs locally just fine... just travis problem. Will fix soon.


throws null value with composite key query on null data document

Making query with composite keys when a doc is created but data hasn't been set yet, it throws null value exception
Null check operator used on a null value

PR: #298

I ended up forgetting to release an update. It's now out: https://pub.dev/packages/fake_cloud_firestore/changelog#249. Thank you!


Build failure in sample project

I cloned this project and tried to run the sample module but I'm facing build failure in sample project. I checked with kdoctor, cocoapod is properly installed. But getting this issue specifically to this project. Please let me know if anything is missing from my side.
Environment diagnose (to see all details, use -v option):
[✓] Operation System
[✓] Java
[✓] Android Studio
[✓] Xcode
[✓] Cocoapods

Conclusion:
  ✓ Your system is ready for Kotlin Multiplatform Mobile Development!

Getting these errors in build logs:

Task failed with an exception.
-----------
* What went wrong:
Some problems were found with the configuration of task ':cocoapodBuildMokoSocketIoIphoneosArm64' (type 'CompileCocoaPod').
  - Type 'dev.icerock.gradle.tasks.CompileCocoaPod' property 'podsDir' specifies directory 'moko-socket-io/sample/ios-app/Pods' which doesn't exist.

    Reason: An input file was expected to be present but it doesn't exist.

    Possible solutions:
      1. Make sure the directory exists before the task is called.
      2. Make sure that the task which produces the directory is declared as an input.

    Please refer to https://docs.gradle.org/7.5/userguide/validation_problems.html#input_file_does_not_exist for more details about this problem.
  - Type 'dev.icerock.gradle.tasks.CompileCocoaPod' property 'podsProject' specifies directory 'moko-socket-io/sample/ios-app/Pods/Pods.xcodeproj' which doesn't exist.

    Reason: An input file was expected to be present but it doesn't exist.

    Possible solutions:
      1. Make sure the directory exists before the task is called.
      2. Make sure that the task which produces the directory is declared as an input.

    Please refer to https://docs.gradle.org/7.5/userguide/validation_problems.html#input_file_does_not_exist for more details about this problem.

here reason was that pod install was not called in ios-app before open gradle project.


Support Schulze voting system

https://en.wikipedia.org/wiki/Schulze_method

@ximex Interesting feature request! Can you help implement this?

There are many already implementations:

https://github.com/dgruss/schulze
https://github.com/bjornlevi/schulze
https://github.com/search?utf8=✓&q=schulze

We used the first one in our organization.

I would like to help with this, but I don't know much about the code base and python.. ^^
@emanuelschuetze can you outline what needs to be done to add another voting system? Or what files would need to be touched?

Hm. We should first discuss whether this should be a (configurable) core feature (means you can activate this method once per election/assignment or globally for all elections/assignments in the frontend config or if we want to have a plugin that adds a new module / main menu tab. The last approach has the advantage that we can develop all features we need for this but do not have to care about every aspect in our core modules (like PDF ballot papers ...). But of course this is only one way ...

I think it would be good if the core would support multiple voting systems out of the box.

Ok. Then we need a new entry for this config var and then someone has to implement the logic in backend and frontend. First one should have a look at the poll module and assignment/models.py and assignments/views.py and assignments/serializers.py. Just look for the config variable and try to add the differnent logic at the respective places.

Thanks, I will have a look..

https://github.com/bradbeattie/python-vote-core also looks good.

Progress tracked in https://github.com/OpenSlides/OpenSlides/issues/6724


Cannot preform multiple pairing

I am not sure if I have found a bug or am I doing something wrong.
What I am trying to do is scan for my ble device, connect to it, start the pairing scheme(typing the in number) and once successful repeat the whole process again. The reason for repeating the process of pairing is incase my device was to fail for any given reason, a user would reset the device and start the pairing process again.
What I am experiencing is that once my device is paired, if I was to repeat the cycle again on my app, I am able to scan and see the device, but when I connect I do not get an option to retype the pin in this 2nd instance. But I was re repeat this process again, the pin input screen does appear. It seems that the screen appears every other time.
Is it possible to force the plugin to unpair a device?
This is my code
`
async  ble_test(){
console.log("Starting BLE TEST");
try {
  await BleClient.initialize();

console.log('BLE INT');
await BleClient.requestLEScan(
  {
   // services: [HEART_RATE_SERVICE],
   name:"3400-DEMO",
  },
  result => {
    console.log('received new scan result', result);
    this.Azure.ble_device_id = result.device.deviceId;
    this.connecttodevice(this.Azure.ble_device_id);
  },
);

setTimeout(async () => {
  await BleClient.stopLEScan();
  console.log('stopped scanning');
}, 5000);

} catch (error) {
console.error(error);
}
}
`

Which platform are you using? iOS? If yes, on iOS there is no API to handle bonding. It is performed automatically when accessing a characteristic that requires security. See e.g. https://devzone.nordicsemi.com/f/nordic-q-a/8507/getting-an-ios-central-app-to-bond

No I am testing on Android.
What I discovered, I need to manually unpair the device it I want re connect with pin screen. Is there anything in library to force a unpairing?

On Android, there is no public API for removeBond, see BluetoothDevice. So no, there is nothing in the library to force unbonding.
Also this plugin does not yet expose the createBond method on Android, see #50. So I don't even know how you managed to start the bonding process?

Hi
Maybe it could be my device, Once i start the pairing process, i get this pop up from the device requesting i enter the pin e..g 123456

createBond and isBondedhave been added for Android.


Remove all instances of sendAction

This PR started removing deprecated sendAction calls.
But I believe there are some instances of sendAction that you probably missed: https://github.com/offirgolan/ember-light-table/blob/2-x/addon/mixins/table-header.js#L181
Maybe they are not intended to be in use, but I'm basically copy-pasting the examples from your guides and I stumbled upon this. I'm using your @next branch that points me to 2.0.0-beta.2

@MichalBryxi there definitely are still a few that have been missed. Did you want to open up a PR to continue the removal process? I may have some time in the next couple of weeks to pickup/ help with this as I'm keen to get current Ember deprecations sorted on the 2.x branch.

@fran-worley - https://github.com/offirgolan/ember-light-table/pull/686

@alexander-alvarez I believe this can be closed as the PR was merged and released as part of 2.0.0.beta.3


Assertions for two-dimensional arrays of long

Check List:

Fixes #1182
Unit tests : YES
Javadoc with a code example (on API only) : YES

Integrated thanks @mwajcht!


Test all status code responses on Secrets endpoints

Is your feature request related to a problem? Please describe.
The integration test suite should be testing all possible responses on each endpoint.
On the Secrets endpoints, failure is never tested.

Create Secret

[x] 201
[x] 400
[x] 401
[x] 403
[x] 422

Fetch Secret

[x] 200
[x] 400
[x] 401
[x] 403
[x] 404
[x] 422

Fetch Multiple Secrets

[x] 200
[x] 401
[x] 403
[x] 404
[x] 422

Describe the solution you would like
The solution is to expand the number of test cases per endpoint.
One test case per response for each endpoint should do the trick.
Describe alternatives you have considered
n/a
Additional context
n/a

closed by https://github.com/cyberark/conjur-openapi-spec/pull/104

closed by https://github.com/cyberark/conjur-openapi-spec/pull/104