Getting out of hbm memory error on TPU

Description
Trying to train a language model -
t2t-trainer --model=lstm_seq2seq --hparams_set=lstm_seq2seq --problem=languagemodel_lm1b8k_packed --train_steps=250000 --eval_steps=8 --data_dir=$DATA_DIR --output_dir=$OUT_DIR --use_tpu=True --cloud_tpu_name=$TPU_NAME --hparams='optimizer=Adafactor, weight_dtype=bfloat16, hidden_size=1024, batch_size=1024'
Getting the following error (copied imp stuffs only)
I tried to change the batch number. But no success. This is relatively a smaller model, 2 layer LSTM, 1024 hidden, 8k vocab (arguments take on 64 MB). But program takes more than 8 GB. Why is it so? Is there anyway I can use more than 1 TPU?

INFO:tensorflow:Error recorded from training_loop: Compilation failure: Ran out of memory in memory space hbm. Used 8.83G of 8.00G hbm. Exceeded hbm capacity by 848.88M.

Total hbm usage >= 8.83G:
    reserved        528.00M
    program           8.25G
    arguments        64.32M (99.9% utilization)

Output size 64.32M (99.9% utilization); shares 64.25M with arguments.

Program hbm requirement 8.25G:
    reserved           4.0K
    global            65.0K
    HLO temp          8.25G (100.0% utilization, 0.0% fragmentation (1.01M))

  Largest program allocations in hbm:

  1. Size: 4.00G
     Operator: op_name="XLA_Args"
     Shape: bf16[256,2048,4096]{2,1,0}
     Unpadded size: 4.00G
     XLA label: %arg_tuple.1996.1402 = (s32[], s32[], f32[], f32[4,1024]{1,0}, bf16[4,1024]{1,0}, f32[4,1024]{1,0}, bf16[4,1024]{1,0}, s32[4]{0}, s32[], s32[], f32[4,1024]{1,0}, f32[], bf16[], bf16[], s32[], bf16[2048,4096]{1,0}, bf16[4096]{0}, bf16[2048,4096]{1,0}, bf16[...
     Allocation type: HLO temp
     ==========================

  2. Size: 4.00G
     Shape: bf16[256,2048,4096]{2,1,0}
     Unpadded size: 4.00G
     XLA label: %arg_tuple.3500.0 = (s32[], f32[2048,4096]{1,0}, f32[4096]{0}, f32[2048,4096]{1,0}, f32[4096]{0}, s32[], f32[4,1024]{1,0}, f32[4,1024]{1,0}, f32[4,1024]{1,0}, f32[4,1024]{1,0}, bf16[], bf16[], bf16[], bf16[], (pred[256,4]{1,0}, s32[]), (bf16[256,4,1024]{2,...
     Allocation type: HLO temp
     ==========================

  3. Size: 32.06M
     Operator: op_type="Reshape" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross_entropy/softmax_cross_entropy_with_logits/Reshape_1"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %reshape.101.remat4 = f32[1024,8201]{0,1} reshape(f32[4,256,1,1,8201]{1,0,4,2,3} %fusion.250.remat4), sharding={maximal device=0}, metadata={op_type="Reshape" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross...
     Allocation type: HLO temp
     ==========================

  4. Size: 32.06M
     Operator: op_type="SoftmaxCrossEntropyWithLogits" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross_entropy/softmax_cross_entropy_with_logits"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %fusion.247 = (f32[1024]{0}, f32[1024,8201]{0,1}) fusion(f32[1024]{0} %log.remat2, f32[1024,8201]{0,1} %reshape.101.remat4, f32[1024]{0} %reduce.5, bf16[1024,1024]{1,0} %bitcast.45, bf16[8201,1024]{1,0} %get-tuple-element.1637), kind=kOutput, calls=%fused_...
Allocation type: HLO temp
     ==========================

  5. Size: 32.06M
     Operator: op_type="MatMul" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/symbol_modality_8201_1024_1/softmax/MatMul"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %fusion.213.remat4.1.remat3 = f32[1024,8201]{0,1} fusion(bf16[1024,1024]{1,0} %bitcast.45, bf16[8201,1024]{1,0} %get-tuple-element.1637), kind=kOutput, calls=%fused_computation.200.clone.clone.clone.clone.1.clone.clone.clone, sharding={maximal device=0}, m...
     Allocation type: HLO temp
     ==========================

        TPU compilation failed
         [[{{node tpu_compile_succeeded_assert/_4879872842451564100/_21}} = TPUCompileSucceededAssert[_device="/job:worker/replica:0/task:0/device:CPU:0"](TPUReplicate/_compile/_14987246518586785693/_20)]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

         [[{{node tpu_compile_succeeded_assert/_4879872842451564100/_21_G306}} = _Recv[client_terminated=false, recv_device="/job:worker/replica:0/task:0/device:TPU:7", send_device="/job:worker/replica:0/task:0/device:CPU:0", send_device_incarnation=-5499342681075470468, tensor_name="edge_226_tpu_compile_succeeded_assert/_4879872842451564100/_21", tensor_type=DT_FLOAT, _device="/job:worker/replica:0/task:0/device:TPU:7"]()]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

INFO:tensorflow:training_loop marked as finished
WARNING:tensorflow:Reraising captured error
Traceback (most recent call last):
File "/usr/local/bin/t2t-trainer", line 33, in <module>
    tf.app.run()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "/usr/local/bin/t2t-trainer", line 28, in main
    t2t_trainer.main(argv)
  File "/usr/local/lib/python2.7/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 393, in main
    execute_schedule(exp)
  File "/usr/local/lib/python2.7/dist-packages/tensor2tensor/bin/t2t_trainer.py", line 349, in execute_schedule
    getattr(exp, FLAGS.schedule)()
  File "/usr/local/lib/python2.7/dist-packages/tensor2tensor/utils/trainer_lib.py", line 438, in continuous_train_and_eval
    self._eval_spec)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 471, in train_and_evaluate
    return executor.run()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 637, in run
    getattr(self, task_to_run)()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 647, in run_worker
    return self._start_distributed_training()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 788, in _start_distributed_training
    saving_listeners=saving_listeners)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu_estimator.py", line 2409, in train
    rendezvous.raise_errors()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/error_handling.py", line 128, in raise_errors
    six.reraise(typ, value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu_estimator.py", line 2403, in train
    saving_listeners=saving_listeners
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 354, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 1207, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 1241, in _train_model_default
    saving_listeners)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 1471, in _train_with_estimator_spec
    _, loss = mon_sess.run([estimator_spec.train_op, estimator_spec.loss])
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 671, in run
    run_metadata=run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 1156, in run
    run_metadata=run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 1255, in run
    raise six.reraise(*original_exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 1240, in run
    return self._sess.run(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 1312, in run
    run_metadata=run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 1076, in run
    return self._sess.run(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 929, in run
    run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1152, in _run
    feed_dict_tensor, options, run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1328, in _do_run
    run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1348, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.ResourceExhaustedError: Compilation failure: Ran out of memory in memory space hbm. Used 8.83G of 8.00G hbm. Exceeded hbm capacity by 848.88M.

Total hbm usage >= 8.83G:
    reserved        528.00M
    program           8.25G
    arguments        64.32M (99.9% utilization)

Output size 64.32M (99.9% utilization); shares 64.25M with arguments.

Program hbm requirement 8.25G:
    reserved           4.0K
    global            65.0K
    HLO temp          8.25G (100.0% utilization, 0.0% fragmentation (1.01M))

  Largest program allocations in hbm:

  1. Size: 4.00G
     Operator: op_name="XLA_Args"
     Shape: bf16[256,2048,4096]{2,1,0}
     Unpadded size: 4.00G
     XLA label: %arg_tuple.1996.1402 = (s32[], s32[], f32[], f32[4,1024]{1,0}, bf16[4,1024]{1,0}, f32[4,1024]{1,0}, bf16[4,1024]{1,0}, s32[4]{0}, s32[], s32[], f32[4,1024]{1,0}, f32[], bf16[], bf16[], s32[], bf16[2048,4096]{1,0}, bf16[4096]{0}, bf16[2048,4096]{1,0}, bf16[...
     Allocation type: HLO temp
     ==========================

  2. Size: 4.00G
     Shape: bf16[256,2048,4096]{2,1,0}
     Unpadded size: 4.00G
     XLA label: %arg_tuple.3500.0 = (s32[], f32[2048,4096]{1,0}, f32[4096]{0}, f32[2048,4096]{1,0}, f32[4096]{0}, s32[], f32[4,1024]{1,0}, f32[4,1024]{1,0}, f32[4,1024]{1,0}, f32[4,1024]{1,0}, bf16[], bf16[], bf16[], bf16[], (pred[256,4]{1,0}, s32[]), (bf16[256,4,1024]{2,...
     Allocation type: HLO temp
     ==========================

  3. Size: 32.06M
     Operator: op_type="Reshape" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross_entropy/softmax_cross_entropy_with_logits/Reshape_1"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %reshape.101.remat4 = f32[1024,8201]{0,1} reshape(f32[4,256,1,1,8201]{1,0,4,2,3} %fusion.250.remat4), sharding={maximal device=0}, metadata={op_type="Reshape" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross...
     Allocation type: HLO temp
 ==========================

  4. Size: 32.06M
     Operator: op_type="SoftmaxCrossEntropyWithLogits" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/padded_cross_entropy/smoothing_cross_entropy/softmax_cross_entropy_with_logits"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %fusion.247 = (f32[1024]{0}, f32[1024,8201]{0,1}) fusion(f32[1024]{0} %log.remat2, f32[1024,8201]{0,1} %reshape.101.remat4, f32[1024]{0} %reduce.5, bf16[1024,1024]{1,0} %bitcast.45, bf16[8201,1024]{1,0} %get-tuple-element.1637), kind=kOutput, calls=%fused_...
     Allocation type: HLO temp
     ==========================

  5. Size: 32.06M
     Operator: op_type="MatMul" op_name="lstm_seq2seq/parallel_0_6/lstm_seq2seq/lstm_seq2seq/symbol_modality_8201_1024_1/softmax/MatMul"
     Shape: f32[1024,8201]{0,1}
     Unpadded size: 32.04M
     Extra memory due to padding: 28.0K (1.0x expansion)
     XLA label: %fusion.213.remat4.1.remat3 = f32[1024,8201]{0,1} fusion(bf16[1024,1024]{1,0} %bitcast.45, bf16[8201,1024]{1,0} %get-tuple-element.1637), kind=kOutput, calls=%fused_computation.200.clone.clone.clone.clone.1.clone.clone.clone, sharding={maximal device=0}, m...
     Allocation type: HLO temp
     ==========================

        TPU compilation failed
         [[{{node tpu_compile_succeeded_assert/_4879872842451564100/_21}} = TPUCompileSucceededAssert[_device="/job:worker/replica:0/task:0/device:CPU:0"](TPUReplicate/_compile/_14987246518586785693/_20)]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

         [[{{node tpu_compile_succeeded_assert/_4879872842451564100/_21_G306}} = _Recv[client_terminated=false, recv_device="/job:worker/replica:0/task:0/device:TPU:7", send_device="/job:worker/replica:0/task:0/device:CPU:0", send_device_incarnation=-5499342681075470468, tensor_name="edge_226_tpu_compile_succeeded_assert/_4879872842451564100/_21", tensor_type=DT_FLOAT, _device="/job:worker/replica:0/task:0/device:TPU:7"]()]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

Environment information
OS: <Linux version 4.9.0-8-amd64 running on gcloud>

$ pip freeze | grep tensor
# mesh-tensorflow==0.0.5
tensor2tensor==1.12.0
tensorboard==1.12.0
tensorflow==1.12.0
tensorflow-metadata==0.9.0
tensorflow-probability==0.5.0

$ python -V
# Python 2.7.13

did you find any solution?

Yes, all I had to do was to use v3-8 TPU. It offers 16 GB memory to hold the model and intermediate results.

well you didn't find a way to use more than 1 tpu? Or any other way to solve the problem? I can't use v3-8 TPUs (only v2-8 are available to me)

We need to used multiple cores, like v2-32, v2-64 etc. But they do not come with free credit $300. Need to upgrade the account to use multiple TPUs.

t2t-trainer --model=lstm_seq2seq\
 --hparams_set=lstm_seq2seq\
 --problem=languagemodel_lm1b8k_packed\
 --train_steps=250000 --eval_steps=8\
 --data_dir=$DATA_DIR --output_dir=$OUT_DIR --use_tpu=True\
 --cloud_tpu_name=$TPU_NAME\
 --hparams='optimizer=Adafactor, weight_dtype=bfloat16, hidden_size=1024, batch_size=1024'

@ranjeethks @maggieezzat what about using a smaller batch size? For example, try batch_size=512 ?

v2-8 TPU has 64 GB, with 8 cores (i.e. shards)
You have to explicitly set the number of TPU cores (i.e. shards) to 8.
Otherwise, it defaults to 1; which is why you only got 8 GB of memory.

v2-8 TPU has 64 GB, with 8 cores (i.e. shards)
You have to explicitly set the number of TPU cores (i.e. shards) to 8.
Otherwise, it defaults to 1; which is why you only got 8 GB of memory.

Hi, I was wondering how to set the number of TPU cores?
Thanks!

v2-8 TPU has 64 GB, with 8 cores (i.e. shards)
You have to explicitly set the number of TPU cores (i.e. shards) to 8.
Otherwise, it defaults to 1; which is why you only got 8 GB of memory.

Hi, I was wondering how to set the number of TPU cores?
Thanks!

Do you figure it out? I am also trying to use the full memory but failed. it seems use only one (8GB) at all

Did you find any solution @wppply?

Did you find any solution @wppply?

yes, the TPU is using 8 cores automatically. T2T has 8* batch size within code. And the 8GB is actually showing only the usage of single TPU. There is meaningless to show 8 of them, because they are always split into 8 evenly.


Prevent crash on bad data from weatherunderground

Although the Weather Underground API is pretty much defunct this should probably be merged so that someone doesn't inadvertently dump their entire homebridge because of it. I am working on handling the new WU API but that will take a while.

I will release this update to npm later today. Thanks for your fix!

Released it today. I'm really looking forward to your implementation of the new api.


Understanding convexifing a variable based on Dantzig-Wolfe reformulation

Dear support team,
I have some issues distinguishing how to select the variables and also convexifing those in the context of D-W reformulation. Let me explain more:
In a one-dimensional cutting stock problem, the variable $x_{i,k}$, in the Kantrovich model, is declared of the number of items final of width $w_{i}$ is cut in roll $k$. For that, we need to introduce the variable $\lambda_{k}^p$, where the set $p$ defines the extreme points of the original solution space. Now, by substituting the variable $x_{i,k}$ by whose reformulated parameter, $a_{i,k}^p$, to capture the added columns coefficients, we can rewrite the demand constraint as, ($\sum_k \sum_p a_{i,k}^p \lambda_{k}^p \geq r_i \ , \forall i$).
A trick that was used here is to transform the variable $y_{k}$ based on the variable $\lambda_{k}^p$. As far as I know, when the width of master rolls, $W$, are the same we can aggregate ($\sum_{p} \sum_{k} \lambda_{k}^p = \sum_{p} \lambda_{}^p$). Also, as long as we minimize the original and already the master problems we can ommit the convexity constraint. Now, my questions are:

Why do we select the variable $x_{i,k}$ and why not go ahead with the variable $y_{k}$?

How actually may the variable $y_{k}$ be interpreted by the variable $\lambda_{k}^p$? ($y_{k}$ is a binary while $\lambda_{k}^p$ is a general integer. Also, $\lambda_{k}^p$ is used to select the number of a specific feasible pattern that came from the sub-problem. I am a bit confused to understand the idea!).

In defining the convexifing variable $\lambda_{k}^p$ , why do we select index $k$ instead of index $i$? Is it correct to select an index we ask to decompose the problem based on it? (e.g. if we have a variable $s_{i,j,k}$ in the constraint of the form ($\sum_{j,k} s_{i,j,k} \leq c_{i}, \ \forall i$), and would like to decompose the problem w.r.t the index $i$, should we declare the convexifing variable as $a_{i,j,k}^p \lambda_{i}^p$ and rewrite the constraint as $\sum_{p} \sum_{j,k} a_{i,j,k}^p \lambda_{i}^p \leq c_{i}, \ \forall i$?)

Can the mentioned trick for aggregating the variable be applied in all the cases as long as we have the same resources like identical machines, stations, vehicles, etc.?

How can GCG perform to select the variables for transforming it in whose convexifing form?

Is it possible to write the master and sub-problems, in an LP format, in a specific iteration of the column generation algorithm by GCG?

I am looking forward to hearing from you
All the best
Abbas

Dear support team,
May I have your insight regarding the above questions?
If it needs more information please, let me know and provide that.
Best regards

Not a pygcgopt issue! Please use forums or other resources for that.

@jurgen-lentz,
What about my last two questions? (I think they would be related to the GCG)
Thanks


Buildsystem improvement

The current buildsystem has some issues:

cmake "Superbuild" is not well suited to building many interdependent projects with potentially complex policies,
cmake is not well suited to installing python,
installing python libs to a prefix does not work well,
mixing python versions is a nightmare.

So, in order to resolve that we should:

[x] as a stopgap, validate the improved SuberBuild ( !214 ),
[x] improve PDI in docker experience (see #138 ),
[ ] use setup.py/distutils to package python libs instead of cmake ( #149 ),
[ ] integrate PDI in the spack default repository ( #151 ),
[ ] provide a self-contained PDI distribution using spack ( #150 ).

marked the checklist item as a stopgap, validate the improved SuberBuild ( !214 ), as completed

In GitLab by @ksiero on Feb 6, 2020, 09:29
marked the checklist item improve PDI in docker experience (see #138 ) as completed

closed


PlotLine values not updating, PropTypes wrong

For some reason, PlotLine values are not updating. Maybe I am missing a point, but It seems
that PlotLine needs to provide componentDidUpdate.
My solution was to add following code:
  componentDidUpdate (prevProps) {
        this.props.removePlotLine(prevProps.id);
        const { axisId, dimension, ...rest } = this.props;
        this.props.addPlotLine(rest);
    }

Because of the other bug I've reported, this solution will not fix the problems, because this.props.removePlotLine won't pass the id to highcharts (Described in: #15)
The PropTypes seems to be copied from PlotBand. This means value property is not existing in PlotLine but from and to.
My quick solution for BOTH bugs (#16, #15) is extending the PlotLine Component and provide some additional functionalities for removing the plot line (this is a dirty hack):
import { PlotLine as OrignalPlotLine } from 'react-jsx-highcharts';
import PropTypes from 'prop-types';
import boundContextHelper from 'react-jsx-highcharts/src/utils/boundContextHelper';

class PlotLine extends OrignalPlotLine {
    static propTypes = {
        id: PropTypes.string.isRequired,
        axisId: PropTypes.string, // Provided by Axis component
        dimension: PropTypes.string, // Provided by Axis component
        value: PropTypes.number.isRequired,
        xAxis: PropTypes.string,
        yAxis: PropTypes.string,
        color: PropTypes.string,
        addPlotLine: PropTypes.func, // Provided by AxisProvider
        removePlotLine: PropTypes.func // Provided by AxisProvider
    };

    constructor(props) {
        super(props);

        const id = props.axisId || props.id;
        if (!id) return null;

        const axis = props.get(id);

        const getBoundAxisMethod = boundContextHelper(props.getChart(), axis);
        const removePlotLine = getBoundAxisMethod(axis && axis.removePlotLine);

        this.removePlotLineFixed = removePlotLine;
    }

    componentWillUnmount () {
        this.removePlotLineFixed(this.props.id);
    }

    componentDidUpdate (prevProps) {
        this.removePlotLineFixed(prevProps.id);
        const { ...rest } = this.props;
        this.props.addPlotLine(rest);
    }
}

export default PlotLine;

Gonna post a little snippet asap how to reproduce the problem.

Ah of course! Annoyed with myself for failing to a componentDidUpdate for these components.
It took me a little longer than I had expect to implement your suggested fix, as the PlotBand.Label/PlotLine.Label components were trying to update a removed band/line.
Is it possible for you to try building you application against the master branch, and see if these issues are fixed?

P.s. I've publish 1.3.3 as a pre release, which might be easier than trying to use master npm install<EMAIL_ADDRESS>

I can confirm that the reported bugs are now fixed. I guess the highstock package is not updated yet. But this was good for the comparison since I just needed to import from highstock and then from highcharts to figure out whether the bugs was fixed or not. Thanks :)

Fantastic. Just published as a stable release<EMAIL_ADDRESS>and<EMAIL_ADDRESS>


Refactor EditorSceneFormatImporter

The EditorSceneFormatImporter is mostly used internally, but it is exposed, so I figured it should be properly documented and refactored for use from GDScript as it is very barely (and possibly poorly) documented.
It would be great if someone well-versed with the scene format import system would help me with this, because I am unfamiliar with the codebase and going by examples from classes that are already there.
Tasks:

[ ] Documentations

[x] Constants
[ ] Method descriptions (help wanted)

[ ] Safeguards to prevent badly written plugins from crashing the editor
[ ] Fix improperly exposed functions

Huh, does this have something to do with my commits or is it an existing problem?

It's unrelated, will just restart

Does someone know how to update the GDExtensions API?

Oh.... so even exposing a new argument breaks compat...

I think the GDE compat crisis is averted, but breaking GDS compat break is probably inevitable because get_import_options was originally exposed wrong.


Upgrade to emerald-cli v0.16

Codecov Report

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

@@          Coverage Diff           @@
##           master    #361   +/-   ##
======================================
  Coverage    8.52%   8.52%
======================================
  Files         201     201
  Lines        2533    2533
  Branches      440     440
======================================
  Hits          216     216
  Misses       1918    1918
  Partials      399     399

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 44bf101...3df8302. Read the comment docs.


Do not understand how this warning is occuring: warning - exception while invoking a callback: {"code":0}

I have created a sample test app to test out sqlite3 with React-Native.  As part of my testing I'm intentionally inserting a duplicate record into a table to catch and deal with the error.  The app is correctly going into the error callback but Im also getting a mystery warning that I cannot determine the cause from:  warning - exception while invoking a callback: {"code":0}
My insert statement looks like this:

 db.executeSql("INSERT INTO TestTable (primaryKey) VALUES (?);",
 ["Key1"],
 (results: any) => {console.log("Cb Success"); resolve(results)},
 (err: any) => {console.log("Cb Error"); reject(err)});

My logs look like this:

C:\React\SqliteSandbox\DB.tsx:119 Cb Error //<-- Completely expected from error callback
C:\React\SqliteSandbox\node_modules\react-native-sqlite-storage\lib\sqlite.core.js:94 warning - exception while invoking a callback: {"code":0} //<-- I have no idea where this comes from?
C:\React\SqliteSandbox\ScreenOne.tsx:31 ScreenOne Insert Error: [object Object]  //<-- this is from the calling button that catches the promise rejection

Context
Trying to evaluate Sqlite for React-Native project to replace Realm DB
Your Environment

React Native SQLite Storage Version used: react-native-sqlite-storage: ^6.0.1
React Native version used: react-native: 0.65.1
Operating System and version (simulator or device): Android 7.1.1

Suggest you use debugger in your IDE to dig more into this issue.


Problem about Slam in Rviz

ISSUE TEMPLATE ver. 0.2.0

Which TurtleBot3 you have?

[ v] Burger
[x] Waffle
[ ] Waffle Pi

Which SBC(Single Board Computer) is working on TurtleBot3?

[ ] Raspberry Pi 3
[ ] Intel Joule 570x
[ v] etc (PLEASE, WRITE DOWN YOUR SBC HERE)JetsonTX2

Which OS you installed in SBC?

[ ] Ubuntu MATE 16.04 or later
[ ] Raspbian
[v ] etc (PLEASE, WRITE DOWN YOUR OS)Ubuntu 16.04

Which OS you installed in Remote PC?

Robot model and laser scan show errors.
and TF is warning.
slam operation is working but i cannot know where the robot is in the map of rviz.
Please give me some help.
Thank you.

Hi :)
Before you launch slam, you are supposed to set TURTLEBOT3_MODEL parameter
$ export TURTLEBOT3_MODEL=waffle

If it isn't solved yet, please make sure the condition of topic communication by openning rqt
$ rqt

Thank you for your reply.
from your previous replies, I solved this problem by timesync.
http://emanual.robotis.com/docs/en/platform/turtlebot3/faq/#timesync-between-turtlebot3-and-remote-pc
I'm using remote pc and turtlebot3 by connecting wireless router which is not online. So turtlebot and pc' time is not synchronized. After connecting Internet both pc and turtlebot or one by one,  timesync makes slam work well.
Thank you!

Good, If you have any further questions, please feel free to open issue.


Making evaluation of deliverables and its impact on the project plan

wrote the evaluation in Milestone-Review page https://github.com/bounswe/bounswe2023group8/wiki/Milestone-Review

Nice evaluation!


Unify item indexing in PopupMenu

In c++ some methods used p_idx and some p_item as there was no actual difference in how these values were used the difference just become confusing, they are already unified as index in GDScript, same could be done for TabBar
Might be considered a nitpick but parameter names differing can be easily read as that something of value differs

Thanks!

Thank you!


fix: Updated Node SDK per latest updates in sdk-core templates.

PR summary
The Node SDK needed to be updated per latest updates in sdk-core templates.
Fixes: https://github.ibm.com/CloudEngineering/node-sdk-template/pull/62
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[ ] Feature
[x] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[x] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?
Totally functional.
What is the new behavior?
Totally functional.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
This PR removes codecov from the project entirely. Related to https://github.ibm.com/CloudEngineering/node-sdk-template/pull/62/

:tada: This PR is included in version 0.17.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Migrate from (legacy) Packaged App to new Chrome App (once storage wipe bug is fixed)

Old:
https://developer.chrome.com/extensions/apps
New:
https://developer.chrome.com/apps/about_apps
Storage wipe problem:
https://code.google.com/p/chromium/issues/detail?id=302577

This was fixed some time ago:
https://github.com/readium/readium-js-viewer/commit/4ccf4db4e28c157912b9bfe35166d65a2f0a3deb
https://github.com/readium/readium-js-viewer/commit/506032e04dee4778f1291e30890c7f0814fd2da2

And for the record, changelog from early 2014 (different codebase file structure back then, prior to a massive build system refactoring, which makes it hard to track down using the Git commit history from the head of the master or develop branches):
https://github.com/readium/readium-js-viewer/commit/c7f05ba25caa4077f7ca67f23de2273a2e9483f9#diff-738fce7b295981b1ef38efe3c072922c
=> introduction of code to migrate publications from the WebSQL database to HTML5 FileSystem storage (from old Extension to legacy Chrome Packaged App?)
So pretty much a year later (early 2015), the transition from legacy Chrome Packaged App to Chrome Platform App occurs, with Ryan fixing a data migration bug in the Chrome app platform (v42 release), and finally the Readium app is upgraded too (and in the process, users loose the address bar, built-in CTRL-F in-page search, tabs, etc.)
So, the suggestion to rollback from the current Readium Chrome App to an Extension (in order to work around Google's planned deprecation) not only raises questions in terms of UX, but also with respect to technical feasibility and development costs (debatable benefits for end-users and developer community, given the transition of efforts to Readium2, or the ReadiumJS 1-2 hybrid aka "Readium NG").


[FLINK-33030][python]Add python 3.11 support

What is the purpose of the change
At the moment python 3.11 is not supported. In this PR I've added this support.
Brief change log
Added python 3.11 support.
Verifying this change

Existing python tests.
Manually

dev/build-wheels.sh

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

cc @gyfora @mbalassi @morhidi

@HuangXingBo I've just double checked and seems like the maven central pemja is still showing 0.3.1 as latest:
https://central.sonatype.com/artifact/com.alibaba/pemja
I presume we need this since Flink uses this as dependency, right?
https://github.com/apache/flink/blob/c7f6470bb8cc314e7651b03e171af057f4edec1e/flink-python/pom.xml#L126-L132
Could you please help to release the new version?

Just added wheel building debug code to the PR which must be reverted back when Azure passed.

I've just analyzed through why pemja 0.4.0 is not found and the reason is that:

0.3.0 has pom inside: https://repo.maven.apache.org/maven2/com/alibaba/pemja/0.3.0/

0.4.0 has no pom inside: https://repo.maven.apache.org/maven2/com/alibaba/pemja/0.4.0/

The end result is the following failure:
06:13:53.385 [ERROR] Failed to execute goal on project flink-python: Could not resolve dependencies for project org.apache.flink:flink-python:jar:1.19-SNAPSHOT: Could not find artifact com.alibaba:pemja:jar:0.4.0 in alicloud-mvn-mirror (http://<IP_ADDRESS>:8888/repository/maven-central/) -> [Help 1]

@HuangXingBo can the mentioned missing files added or new release is required?

Rebased to the latest master.

Sorry for the late reply. It's been a holiday in China for the past few days. I'll solve the problem of pemja asap.

Thanks for the help!
Rebased to the latest master + bumped the version.

@flinkbot run azure

Wheel builds passed here: https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=53694&view=results

Fixed the notice file + reverted the temp azure hack to test wheel building.

grpcio-tools bump is also required so put back the wheel building test code.

Finally there is a green result including wheel builds: https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=53722&view=results
Reverting the azure hack agains and the PR is ready to review/merge.

We're good to go :)

When either the proto file or the tool version is changed then protobuf generation is required. The related howto can be found in the following place: https://github.com/apache/flink/blob/master/flink-python/README.md#protobuf-code-generation
Since the grpcio-tools==1.50.0 has different parameter set and generates class files in an interface file it must be re-generated.

Thanks for taking care!


OctoPrint doesn't offer to update slicer to v 1.1.1

The latest release of the OctoPrint-Slicer (v1.1.1) is not popping up the dialog box when I log in saying there are updates available. In the past, your updates have always shown up when I first logged in.
If I go to the Software Update section in OctoPrint, It shows that I have 1.1.0 and says "everything is up to date".

@John-Mc this is a known issue of OctoPrint. From the anecdotal information I heard so far there are at least 20% of the chance when OctoPrint won't prompt for a plugin update.
A workaround is to click Advanced options on Software Update settings, and click Force check for update. Please let me know if OctoPrint still won't prompt for new version after "force check"

Force check for update worked. I had not run into that problem before. In fact I had not even noticed the advanced options choice (but then I haven't been using OctoPrint all that much). Good to know.


This.isNew not working properly.

When using the property This.isNew in a dialog, the result is always TRUE no matter if it is an inserted record or update.
See sample  where issue occurs.

this.isNew is a function. so call this like
this.isNew()

Also, where you have make the test? I have try now, and the function return the correct value in afterLoadEntity
protected afterLoadEntity() {
    super.afterLoadEntity();

    var testNew = this.isNew();
}

Yes, that's a function, could be a property, but has to stay for now backward compability

Thanks, not sure how I missed that.


migrate Gopkg.toml and Gopkg.lock to the latest dep format

Update Gopkg.toml and Gopkg.lock to follow the breaking changes
introduced by https://github.com/golang/dep/pull/644
Otherwise dep ensure with the latest dep version will complain about
dep: WARNING: Unknown field in manifest: dependencies

and ignore all [[dependencies]] entries

That looks perfect - thanks for doing that.


Lock source-map-support verion to 0.5.13

Summary

source-map-support 0.5.14 introduces a "breaking change" which will cause the original function name gets lost in the Jest error stack in the jest scenario. see this issue https://github.com/facebook/jest/issues/10633.
I think we should let source-map-support stay to 0.5.13 explicitly on package.json because ^0.5.6 could resolve to a version above 0.5.13. this will cause a problem on the user side.
I am working on Yarn dedupe check on ci. When I ran yarn dedupe on jest codebase, source-map-support  will resolve to the latest version 0.5.21 which break a lot of snapshot test because the "breaking change" source-map-support 0.5.14 introduces. see this run for detail: https://github.com/facebook/jest/pull/12717/checks?check_run_id=6138255708
Test plan

Green CI.

works for me 🙂
changelog entry?

updated! thanks for review.


Allow micromatch options?

Great work on anymatch, it's just what I needed!
Is there any chance of being able to pass options to the micromatch.isMatch() method, e.g. { dot: true } as seen in the micromatch API docs?

it would be cool to see it as 12th element of the function, lol.

I'm guessing that with this addition, the signature would be:
anymatch(matchers, testString, [options], [returnIndex], [startIndex], [endIndex])
Should be fairly trivial to implement, seeing as it's a different type to the other arguments... I agree that it's not the cleanest though.

@timkendrick yes, as discussed, the challenge here would be what to do with the API signature. It has been my intention so far for anymatch to simply operate with good defaults, but I agree that customizing options should be allowed.
I just have to think on whether I want to break the API and go to 2.0 or do something else.
If there is going to be an [options] all the other existing arguments would probably get rolled into it rather than just extending the signature as in your example above.

Or maybe it would be more like anymatch(matchers, [options], testString... in order to be able to use it with a bound matcher function. Wonder if this could be added without a breaking change.
Would be happy to hear any other ideas and perspectives about this.

Well I imagine 95% of all anymatch use cases are just detecting whether there is a match or not using standard defaults, whereas the returnIndex, startIndex and endIndex (and perhaps globbing options too) all seem fairly niche to me, and could be passed as a separate [options] object.
If it were up to me, I'd release a 2.0 with a signature like this:
anymatch(matchers, testString, [options])
...where you'd have options.returnIndex, options.glob etc:
var match = anymatch(['*.js', '*.css'], testString, {
  returnIndex: true,
  glob: {
    dot: true
  }
});

I personally prefer putting booleans in an options argument like this, seeing as otherwise they're confusing to read, unless you know the signature off by heart.
This is all just personal preference though.

Also, I wasn't entirely sure what the purpose of the startIndex and endIndex arguments is – couldn't you just do var boundedMatchers = matchers.slice(startIndex, endIndex) before running the anymatch() test?

On second thoughts, how about just returning the actual rule that matched (i.e. the string/regexp/function), rather than its index?
That way you get rid of the confusing interplay between returnIndex and startIndex/endIndex, and if you really need the index of the rule you can always do matchers.indexOf(returnedMatch).
...so you could do something like:
var matchers = ['*.js', '*.css'];
var testString = 'index.js';

var matchedRule = anymatch(matchers, testString, { returnRule: true });
var matchedIndex = matchers.indexOf(matchedRule);

assert(matchedRule === "*.js");
assert(matchedIndex === 0);

I feel like I may be wading in a bit heavily here though, so let me know if I'm missing the bigger picture!

@es128 - Just seen your comment now about the bound matchers. I get your point about sticking the options before the testString, to make currying easier. It struck me as a little unusual though, seeing as most npm packages (minimatch, del, all sorts really) that specify an [options] parameter all seem to have it as the last (non-callback) argument, which seems to me to be the de facto convention.
If it were me, I'd follow the minimatch signature as closely as possible (seeing as anymatch seems to be very popular as a drop-in replacement), and then maybe make a separate module that builds on it to facilitate the flashier-but-presumably-much-less-popular "bound function" use case. Then again, this is all just me speculating, so feel free to ignore.

If it were up to me, I'd release a 2.0 with a signature like this:

I think we should follow micromatch signature. e.g.
anymatch(files, patterns, opts) not anymatch(matchers, filepath, opts)
what about
var matcher = require('is-match')

function isMatchers (fp, matchers, opts) {
  if (typeof fp !== 'string') {
    throw new TypeError('is-matchers expect `fp` be string')
  }
  opts = typeof opts === 'object' ? opts : {}
  matchers = Array.isArray(matchers) ? matchers : [matchers]

  var len = matchers.length
  var i = 0

  while (i < len) {
    var match = matchers[i++]
    var isMatch = matcher(match, opts)
    if (!isMatch(fp)) {
      continue
    }
    return true
  }
  return false
}

var matchers = [
  'path/to/file.js',
  'path/anyjs/**/*.js',
  /foo.js$/,
  function (string) {
    return string.indexOf('bar') !== -1 && string.length > 10
  }
]

console.log(isMatchers('path/to/file.js', matchers)) // true
console.log(isMatchers('path/anyjs/baz.js', matchers)) // true
console.log(isMatchers('path/to/foo.js', matchers)) // true
console.log(isMatchers('path/to/bar.js', matchers)) // true
console.log(isMatchers('bar.js', matchers)) // false

Do the job that i think is the purpose of this lib - matching with array of different type of matchers (mixed).
At all currently the lib is too complex and "flexible" and confusing, imo.

also you will be able to pass arrays in that matchers array
var matchers = [
  'path/to/file.js',
  ['path/anyjs/**/*.js', '!path/anyjs/**/foo.js'],
  /foo.js$/,
  ['barbaz', '!barfaz'],
  function (string) {
    return string.indexOf('bar') !== -1 && string.length > 10
  }
]

hm, okey, that not work, lol. need tests

Well thanks for all the opinions folks, but each feature is there for a reason and were added organically in response to actual needs. I utilize them in anysort for instance, which was used to support the desired functionality in Brunch configurations.
The bound matcher functionality from my perspective is not as niche as you seem to think and is important for performance reasons in some implementations, which corresponds to the purpose behind startIndex and endIndex as well.
Whatever you may feel about the current API signature, my bias is heavily toward backward compatibility. So I see a choice between two options for accommodating this request.

Make options an optional argument between matchers and testString as mentioned above. Concerned about the possibility of this getting too messy to maintain, but in theory it should be simple enough to add in considering the argument types of object and string are very definite. I understand the point about optional arguments in the middle typically only coming before a callback, but there are plenty of examples of overloaded and complex method signatures, even in node core, that make me not consider this a substantial barrier to going with this choice.
Introduce an entirely new public method with a signature that is not encumbered by history. That could be like one of the proposals above, except anymatch.foo(...) instead of just anymatch(...). Or perhaps something like anymatch.custom(options) which returns an equivalent instance of the current anymatch function except bound to use the options that were passed.

Make options an optional argument between matchers and testString as mentioned above.

why not as first place? LOL, it would be the best place.

but there are plenty of examples of overloaded and complex method signatures, even in node core

that's not means it is encouraging to continue to do it, lol. in same logic - why to use promises when decades use callbacks ("even in node core [modules]")?
Dont think Im aggressive, Im just curios why people love to continue to do the things wrong, not following signatures, semantics and etc, even when they think for new major release and it is considerable to have breaking changes.

@es128 – thanks for the responses. Sounds like you've got a clear vision for what you want anymatch to do. Go for it!
I was just looking for a drop-in replacement for minimatch that adds regexp and filter function support, so I think I'm probably going to go for multimatch instead (if he accepts my pull request, that is).
Time for me to bow out of this conversation... hope it goes well!

@timkendrick have you looked at micromatch's .matcher() method? It may already provide what you've been looking for.

There's a bit of context at https://github.com/es128/anymatch/commit/5d862c7f6a260e4da5ce2511e500a186f5fdeced about how/why anymatch is different, but that doesn't seem relevant to your use case.
I assume micromatch.matcher() does accept the options argument, but if not it can probably be added with less fuss than what happened here.
Closing this issue for now as the need is likely already met (or will be) elsewhere, but the possibility of API changes here will stay in the back of my mind to potentially be applied in the future.

Thanks for the tip, @es128 – multimatch's .matcher() method is kind of what I was looking for, but I don't think it's quite right. I need to be able to specify an array of patterns (each of which could be a glob, RegExp or function), and match an array of filenames against any of those patterns. The .matcher() or .filter() micromatch methods only seem to allow one pattern, so I imagine you'd have to reduce the patterns array into a combined matcher function, then use that function to filter the filenames array, which all seems a bit messy. Anyway, thanks for the help!

Alright well if you don't end up getting what you need from either multimatch or micromatch let me know and I may still be able to help you here.

Thanks @es128!

fwiw, if we use .matcher in the main micromatch export, seems like it would have been a lot easier to add this to micromatch than to extend the functionality of multimatch. just my 2c, I may do this anyway


[Plugin Proposal]: Ping specific room when there are open PRs that are marked approved

Opened by @meetmangukiya at gitter/coala/coala/maintainers

So some PR notification system, yeah why not :D

@Makman2 @meetmangukiya this should rather be a part of gitmate, dont you guys think?


Create pl-founders-retreat.md

PL Founders @ ETH Denver 2024
Can you please add the logo to the event? protocol-labs-network-small-logo.svg

Event added using the Pull request - https://github.com/memser-spaceport/pln-events/pull/428


Working with Threads

Add a section to the driver documentation about working with threads. Most drivers offer thread safety, but driver.pq3 does not.
Discuss: one connection per thread, synchronizing using a queue, and explicit locking.

Hello, James.
I am using driver.pq3 in my multithread application (connection per thread).
I found that lazy initilization of module's varaibles sometimes makes me to organize my source to prevent errors.

        global _pg_iri, _pg_driver, _pg_param
	if _pg_iri is None:
		from . import iri as _pg_iri
		from . import driver as _pg_driver
		from . import clientparameters as _pg_param
But I think, I will be relatively easy to make support of thread safety for model "connection per thread"

Hmm. Yeah, that was silly of me.
Could you see if this fixes your issue:
    global _pg_iri, _pg_driver, _pg_param
if _pg_iri is None:
    from . import driver as _pg_driver
    from . import clientparameters as _pg_param
    from . import iri as _pg_iri

Having _pg_iri last should make the race condition benign.

Thank you I will try if it is necessary
And... when I wrote that "I will be relatively easy to make" I meant "It will be relatively easy to make" :)

Yeah, connection per thread should just work.

Hello, I would like to ask if it is still true that to establish and close connection inside threads is OK?

Should be. However, when closing a Connection, only one thread should be performing the operation.

Hm, not very clear to me. I have one main thread that creates and starts child threads in unpredictable time (all at ones, one after another, overlapping in some way). In each child thread I create separate db connection by calling postgresql.open() and perform queries with db.query(), db.prepare(). What do you mean "However, when closing a Connection, only one thread should be performing the operation"?

I can not rely on Python garbage cleaning when exiting thread code?
If I have to close db connection with db.close(), closing one connection can in some way interact with connections from other threads? I am afraid there is no way to do it as threads are completely time independent. They can start and end any time.

I can not rely on Python garbage cleaning when exiting thread code?

If you rely on garbage collection, I believe a resource warning will be emitted by Python's socket module.
Doing so will only cause the socket to be closed and no termination message will be issued to the server.
I would not advise relying on garbage collection for Connection close.

If I have to close db connection with db.close(), closing one connection can in some way interact with connections from other threads? I am afraid there is no way to do it as threads are completely time independent. They can start and end any time.

No. The driver is not thread aware and there is no communication between connections. You can either db.close() or with db:, but only one thread should be performing the operation on a single Connection. Sharing a single Connection across multiple threads is not safe unless operations are protected by a synchronization primitive.
If each thread has its own Connection, you're safe.

Use the issue as documentation.

Hello, after one year with happy usage of model "connection per thread" new error sometimes rises. It looks like it always happens at the very beginning when the multiple threads start at the same time. The error looks like this:
  File "/usr/local/gabina/venv/m_backupSchema-2.1.2/lib/python3.11/site-packages/postgresql/__init__.py", line 74, in open
    std_params = _pg_param.collect(prompt_title = None)
                 ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'collect'

Can it be some race condition with importing pypostgresql library? Should be imported in main thread or child thread?
https://github.com/python-postgres/fe/blob/1cd1b4476739fbcb0dc840fe5a2260209eba75c6/postgresql/__init__.py#L37C1-L37C40

_pg_param is the last global initialized and _pg_iri is the first, so I think so. Naturally, this will only occur if you're using postgresql.open. Using Connectors directly instead of postgresql.open is advisable for most applications.
Workarounds:

Perform one postgresql.open prior to launching any threads.
Fill in the globals manually(_pg_param, _pg_iri, _pg_driver).
Patch init.py to check all globals (planned fix for this)

The deferred imports, likely, don't have any value these days. They were used to avoid unused modules in applications that used Connectors directly. Today, the primary advantage this has is dodging bitrot in _pg_param.
The third workaround is what I plan to apply. Remaining synchronization issues should be handled by Python's import locks and object level locks in nogil Pythons.

Thanks for advice we have changed open() with driver.connect() and problem is gone :)


Add a cluster manager resource

One of the most common use cases for ZooKeeper is coordinating cluster membership. Copycat should have a high level resource to facilitate tracking cluster members.

f65bbe3fcb0e9befeb96a1a19493a3837efe784a


Problem with v3.4.1 release

v3.4.0 is still showing up as latest release on https://github.com/twbs/bootstrap-sass/releases and composer fetches v3.4.0.  Please can you check - is the v3.4.1 release not fully available somehow?

Composer is unrelated to this repo. Not sure who even handles that TBH. So make an issue upstream.

Thanks.  Composer seems to be fixed now.


Add examples

While starting to use this library, I had some trouble understanding how to
perform the 3 following tasks, therefore I thought I would contribute
some examples to the documentation.
The examples should help to:

Clone/push using SSH
Stage all files

Hopefully it will also help some other people.

Thanks!


error handling

Hello jNizM 👋 .
I browsed this repo and notice a small, but general, issue with your error handling. The functions I looked at does most of its clean up at the end of the function, which is never reached if an exception is thrown. For example, if LoadLibrary is successful, the library is not freed in case of an invalid file name. The easiest way to handle this is with try-catch-finally, consider this example version of win7\bcrypt_md2_file.ahk,
bcrypt_md2_file(filename)
{
    static BCRYPT_MD2_ALGORITHM := "MD2"
    static BCRYPT_OBJECT_LENGTH := "ObjectLength"
    static BCRYPT_HASH_LENGTH   := "HashDigestLength"

	try {
		if !(hBCRYPT := DllCall("LoadLibrary", "str", "bcrypt.dll", "ptr"))
			throw Exception("Failed to load bcrypt.dll", -1)

		if (NT_STATUS := DllCall("bcrypt\BCryptOpenAlgorithmProvider", "ptr*", hAlgo, "ptr", &BCRYPT_MD2_ALGORITHM, "ptr", 0, "uint", 0) != 0)
			throw Exception("BCryptOpenAlgorithmProvider: " NT_STATUS, -1)

		if (NT_STATUS := DllCall("bcrypt\BCryptGetProperty", "ptr", hAlgo, "ptr", &BCRYPT_OBJECT_LENGTH, "uint*", cbHashObject, "uint", 4, "uint*", cbResult, "uint", 0) != 0)
			throw Exception("BCryptGetProperty: " NT_STATUS, -1)

		if (NT_STATUS := DllCall("bcrypt\BCryptGetProperty", "ptr", hAlgo, "ptr", &BCRYPT_HASH_LENGTH, "uint*", cbHash, "uint", 4, "uint*", cbResult, "uint", 0) != 0)
			throw Exception("BCryptGetProperty: " NT_STATUS, -1)

		VarSetCapacity(pbHashObject, cbHashObject, 0)
		if (NT_STATUS := DllCall("bcrypt\BCryptCreateHash", "ptr", hAlgo, "ptr*", hHash, "ptr", &pbHashObject, "uint", cbHashObject, "ptr", 0, "uint", 0, "uint", 0) != 0)
			throw Exception("BCryptCreateHash: " NT_STATUS, -1)

		if !(f := FileOpen(filename, "r", "UTF-8"))
			throw Exception("Failed to open file: " filename, -1)
		f.Seek(0)

		while (!f.AtEOF && dataread := f.RawRead(data, 262144))
			if (NT_STATUS := DllCall("bcrypt\BCryptHashData", "ptr", hHash, "ptr", &data, "uint", dataread, "uint", 0) != 0)
				throw Exception("BCryptHashData: " NT_STATUS, -1)

		VarSetCapacity(pbHash, cbHash, 0)
		if (NT_STATUS := DllCall("bcrypt\BCryptFinishHash", "ptr", hHash, "ptr", &pbHash, "uint", cbHash, "uint", 0) != 0)
			throw Exception("BCryptFinishHash: " NT_STATUS, -1)

		loop % cbHash
			hash .= Format("{:02x}", NumGet(pbHash, A_Index - 1, "uchar"))

	} catch exception {
		throw exception
	} finally {
		; conditional clean up
		if f
			f.Close()
		if hHash
			DllCall("bcrypt\BCryptDestroyHash", "ptr", hHash)
		if hAlgo
			DllCall("bcrypt\BCryptCloseAlgorithmProvider", "ptr", hAlgo, "uint", 0)
		if hBCRYPT
			DllCall("FreeLibrary", "ptr", hBCRYPT)
	}
    return hash
}

Also note, when using RawRead (and a few other FileObject methods) you should use it with AtEOF, as I added,
while (!f.AtEOF && dataread := f.RawRead(data, 262144))

this is because when RawRead is used inside a try block it will throw an exception if no bytes are read. If you do not use AtEOF callers cannot use your functions in a try block, and hence cannot respond correctly to other expections.
Cheers, and thanks for sharing.

Rewrite code and added your error handling.
Thank you for reporting Helgef


custom tooltip callback does not provide label or text

If I define a custom callback like:
            tooltips: {
                enabled: false,
                mode: 'label',
                position: 'average',
                custom: function (tooltip) {

                    console.log(this.text);
                    if (!tooltip.text){
                        return;
                    }
             }

and I analyze the output of the log (or in debugging). Then the object tooltip does not have a text property or label or anything alike. see http://www.chartjs.org/docs/#advanced-usage-external-tooltips where it says it would have the text. (neither a title or label property).
How can I get the text of the tooltip and create my own tooltip output? I want to place it into a div and show the tooltips permanently (which I haven't managed with version 2 of chartjs either) there.
best regards

So the tooltip.text property does not exist in v2. so that needs to be updated in the docs.
There are a couple of custom tooltip examples in https://github.com/chartjs/Chart.js/tree/master/samples/tooltips that may be useful to you

Fixed in #3751


Response code as attribute instead of xml comment

I've created some code for a ResponseCodeAttribute and operation filter to go with it.
Personally I like this more than the brittle xml construct for documenting response codes.
I'd be happy to submit a PR if you think this would be a great addition to Swashbuckle core.
It looks like this:
    [ResponseCode(StatusCode = (int)HttpStatusCode.BadRequest, Description = "Value must be greater than zero.")]
    [ResponseCode(StatusCode = (int)HttpStatusCode.PaymentRequired, Description = "Credit balance insufficient.")]

Firstly, I agree with you re the brittle use of XML for describing different response codes. It's probably my least favorite feature in SB. But, a lot of people seem to use it so there it is :)
With the exception of ResponseTypeAttribute (which is already provided by WebApi), I've always been reluctant to introduce a whole set of meta-data attributes that affect nothing other than the

I never thought of the attributes and comments as lifeless noise/markers. You certainly have a point. In the beginning these get created and updates correctly, and after a while they might get out-of-sync. That depends one the dev though.
An extra lib might be a better idea. Who will initiate?

If you're interested, I think you should initiate this? I'm happy to refer to it in the main docs.
There's a whole range of operation-level meta-data (response codes, tags, oauth scopes etc..) that could be denoted by these attributes and so a separate project would allow these to be contributed to and released independently of the main project.
I would just have one ask if it's OK with you - that the attribute names are prefixed by "Swagger" so it's clear they're for documentation purposes only.

Ok. Let's do this.
What shall I call it?
Swashbuckle.Annotations
Swashbuckle.Contrib.Annotations
...

Swashbuckle.Annotations sounds good to me

@DavidDeSloovere - not sure if you' ve kicked anything off yet but after a series of issues/feature requests around the "inferior" Xml comments approach, I'm thinking maybe this should be added to Core after-all.

Haven't started yet. Really sorry about that.
So your call: add to core or seperate project?
I've got some time tomorrow.

Watching with interest ;)

First version is a fact:
https://github.com/DavidDeSloovere/Swashbuckle.Annotations

Hey man - nice work getting this going ...
How would you feel about ultimately merging back into the main project as we had briefly discussed above? Despite my original comments and personal preference for keeping documentation-only attributes out of controllers, I'm starting to feel this functionality should be available out-of-the-box. A lot of people appear to to want it!

To be honest, I would not be happy with merging it back into the core. That's because I wrestled with the project setup and build (myget) for a few hours (on a sunday morning). And all that would have been for nothing. But that personal.
Maybe more important, the package has already been published and I would hate to leave a version 1.0 there forever without a change.
If you want it there by default, you could add it as a dependency to Swashbuckle package itself, it that makes sense. I only take a dependency on Swashbuckle.Core package.
But you own Swashbuckle, so if you want to take it in, you're the boss.

Giving this some thought on the ride to work, maybe it's best to just integrate this into Swashbuckle.
I can easely remove the github repo and myget feed.
I have already unlisted the nuget package. Hope not to many people will have installed this already.

Hey man - I'm feeling a little bad about this because it was my suggestion to originally separate into a separate package but I thought there was still an outstanding question above as to which way we would go.
Response codes in particular are coming up in more and more issues and I think simple, clean expressive attributes is the best way to solve it. I do think it makes most sense to come out of the box, particularly given the apparent demand. I also want to get this released ASAP so I don't have to keep referring people to the hacky XML docs approach.
 If so, do you want to create the PR and I'll merge it in ASAP and be sure to give you some creds in the readme.
Thanks again for all the assistance.

Two questions for now: in what branch and what namespace do you want these?

You can go ahead and create your own feature branch for this - "swagger-annotations" then when you're done just kick off a pull request based on that branch. Then I'll go ahead and merge it in.
Re the namespace, I think Swashbuckle.Swagger.Annotations makes the most sense. So, you'll need to create the corresponding folder in the Swashbuckle.Core project.
I would also suggest no need for the config extension method - just have the filter registered out of the box in the same way it's done for HandleFromUriParams.
Re-opening the issue to track

I have custom code working, in combination with Swashbuckle 5.0.4 from nuget.
I created a new branch from master and there seem to be a lot of changes: SchemaRegistry > DataTypeRegistry, responses > ResponseMessages, ResponseMessage does not contain description and schema...
So I based my branch off swagger_2.0

@DavidDeSloovere - many thanks for pushing this feature through. Just realized a pre-release version (5.1.0-rc1) with the changes. Can you check it out and make sure it all works as expected then I'll release proper and update the docs
Update-Package Swashbuckle -Pre

Just tried the 5.1.0-rc1 and it looks great !
Another win for Swashbuckle.
Btw, Microsoft using swashbuckle for Azure app service... awesome!

Hi there guys, sorry might be doing something stupid but I have added the following attribute to an action and when I view the documentation, this type isn't being documented? I am expecting to be shown under "Response Messages" and the column "Response Model" to show the type?
Is there additional config I have missed?
[SwaggerResponse(HttpStatusCode.BadRequest, "Bad Response", typeof(IEnumerable))]
Should mention I am using version 5.1.3 of Swashbuckle.
Nice work on the extension, like it very much :+1:

Hey guys,
This improvement works great. Just wanted to say thanks. And for anyone coming to this page looking for annotations using Azure's Web API project template: it is using an outdated version of SB. So go ahead and update your reference to get the new Annotation namespace.

I too am experiencing an issue with the Response Type. I have specified Exception as being the response type for internal server error (500) using the attributes as follows:
[SwaggerResponse(HttpStatusCode.InternalServerError, "Unexpected error.", typeof(Exception))]

However the resultant documentation just shows "Object" because SB has generated the following in the definitions section:
		"Object": {
			"type": "object",
			"properties": {

			}
		},

When it should've created:
		"Exception": {
			"type": "object",
			"properties": {
				"Data": { "type": "object" },
				"HelpLink": { "type": "string" },
				"HResult": { "type": "integer", "format": "int32" },
				"InnerException": { "type": "object", "schema": "$ref":"#/definitions/Exception"},
				"Message": { "type":"string" },
				"Source": { "type": "string" },
				"StackTrace": { "type": "string" },
				"TargetSite": { "type": "object" }
			}
		},

Obviously there would be some cut off in the definition, but when the response comes over the wire, the JSON is adequately formulated as the following:
{
  "Message": "There was an unexpected error."
}

Is there something I need to do to get Swashbuckle to understand this type?

@easygoingalex @OnamChilwan
I think the issue is that the models you're returning do not have XML documentation for framework classes available to swagger, so it generates an object rather than Exception.
You can either create your own XML documentation file for the framework classes you need and add that during Swashbuckle configuration, or create an operation filter.


Add a co-maintainer?

Hi @sboschert,
Looks like this cookbook isn't getting maintained. Are you open to adding me as a maintainer so I can land some open PRs and keep this cookbook working in newer versions of the various tools?
Cheers!

Hey,
somehow I didn't get notifications for the pending PRs. I'll look into them in the next few days.
Sorry for the delay...

Sebastian

I added you. You should have received an invitation.

Alright, I guess I can close this issue.


going vertically instead of horizontally

Hey, Is there a way to make the tree condense itself in specific width, and then the rest of the tree just push it down? So I just gotta scroll down to see the whole tree, not scrolling horizontally

Hi,
I'm sorry but there is no way to push down the tree in a smaller container for now, I'll check if I can do anything.


Feat: Alert Component

close: #11

@majidsajadi
Do I need to define the action buttons as in the design system or is the actions slot sufficient?

@malikarami LGTM, Thanks.


org.xerial.snappy.SnappyError: [UNSUPPORTED_PLATFORM] pure-java snappy requires access to java.nio.Buffer raw address field

Hello Guys,
We recently upgraded to jdk 17 with Redhat as base image and ever since we started getting the below error
org.xerial.snappy.SnappyError: [UNSUPPORTED_PLATFORM] pure-java snappy requires access to java.nio.Buffer raw address field
snappy version : <IP_ADDRESS>(works with jdk11 Redhat base image but not when we upgrade to jdk17 Redhat base image)
If i revert to jdk11 Redhat docker base image, the issue goes away. I was refering to https://github.com/xerial/snappy-java/issues/289 which is basically same but alpine based docker image is being used over there and the solution is wrt to a alpine package, What do i have to do in Redhat base docker mage for jdk 17? Appreciate any help on this

We were able to workaround the problem by adding the runtime java env --add-opens=java.base/java.nio=ALL-UNNAMED which resolved the problem
Ref: https://stackoverflow.com/questions/69728301/unable-to-make-field-long-java-nio-buffer-address-accessible-module-java-base-d
https://blogs.oracle.com/javamagazine/post/its-time-to-move-your-applications-to-java-17-heres-why-and-heres-how
But the above seems like a last resort workaround as per the above link and probably might need the fix in snappy?

We run a similar issue too, using Alpine as base Docker image. The solution was to install a native lib and tell to Spark to use it.
I wrote a small post : https://thomasdecaux.medium.com/use-snappy-compression-native-when-running-spark-on-alpine-5fee0ce28ed7

apk add java-snappy-native
 spark.executor.extraJavaOptions: -Dorg.xerial.snappy.use.systemlib=true -Dorg.xerial.snappy.lib.path=/usr/lib/libsnappyjava.so

In my case, I'm using Apache Parquet with Hadoop client library. I faced same issue with snappy-java library.
The fix solution is

Add native library of java-snappy: sudo apk updateapk --no-cache update && sudo apk add java-snappy-native
Add JVM arguments when starting application: java -jar -Dorg.xerial.snappy.use.systemlib=true -Dorg.xerial.snappy.lib.path=/usr/lib/libsnappyjava.so app_name.jar

If you are using alpine linux (also with docker), let try to adding gcompat package.
apk add --no-cache gcompat
In my case worked with jdk17 as well

We run a similar issue too, using Alpine as base Docker image. The solution was to install a native lib and tell to Spark to use it.
I wrote a small post : https://thomasdecaux.medium.com/use-snappy-compression-native-when-running-spark-on-alpine-5fee0ce28ed7

apk add java-snappy-native
 spark.executor.extraJavaOptions: -Dorg.xerial.snappy.use.systemlib=true -Dorg.xerial.snappy.lib.path=/usr/lib/libsnappyjava.so

I found that after the java-snappy-native installation finished, my jdk became jdk8 instead of jdk17

Released https://github.com/xerial/snappy-java/releases/tag/v<IP_ADDRESS>, which dropped pure-java support.


Issue triaging bot should add need-triage if the triaging is not complete

As an example see issue https://github.com/Azure/azure-sdk-tools/issues/6474. When it was created it was assigned to someone but didn't have any labels added to it so I would have expected this to add the "needs-triage" label so that triaging could be completed.
For triaging purposes I think we should minimally have a label after we process the new issue with the bot even if that label is only "needs-triage". That should be regardless of whether it is assigned or not.
cc @jsquire @JimSuplizio

In the example case, the author of the issue should have assigned labels if they were desired.
If the person creating the issue has rights to assign a person and chooses to do so, they have assumed responsibility for that issue.   This is also the case when labels are added but a person is not assigned.   Both of these are valid states for an issue.   We do not want automation to assume that it knows better than a human and start adding labels, assignees, or making other changes that potentially overwrite the intent of the author.
I'll leave this for Jim to weigh in, but my inclination is to "by design" this.

@kurtzeborn what are your thoughts here?
We always get folks creating issues and somethings they assign or label incompletely. However I certainly think for labels we should always have a label added and if the author added one great but if they didn't we should add the "needs-triage" label because that will trigger it to show up for triage by the triaging team.

We talked about this today.  The "needs-triage" label should be added whenever there are no labels on an issue.  Whether the issue is assigned to someone or not is mostly irrelevant for this rule.  The labels (such as "Central-EngSys") are what cause issues to be automatically included into appropriate GitHub projects.
So the bot should add "needs-triage" to newly created issues (since the last run) which have no labels on them already.  If there are labels on the issue, then the bot can skip adding "needs-triage".

@kurtzeborn:  Respectfully, that's not how the triage process is intended to work.   As the owner of the automation rules and repository process, that's not something that I'm comfortable bringing forward as a generalized rule.
Conceptually, I have no objections to using a different flow in tools, but we don't have a mechanism for overriding logic.  You would have to turn off the common triage rule and write a custom one that was only enabled here.  IMHO, that's more work and maintenance than is justified but I won't block if you feel strongly about it.

@jsquire from your perspective do you look at issues in the repo that have no labels applied (regardless if they are assigned or not)? If not when do these issues with no labels get looked at? It seems like there is opportunity for issues to fall through the cracks and not ever show up in any triaging meeting.

@weshaggard: Personally, I do tend to notice when tags are off, as I'm doing multiple triage scans a day.  In most repos, someone will notice the lack of tags and follow-up.  They also appear on the data quality reports run by our PM team.
That said, the person making the assignment must have write permissions to our repository and, as such, is a known partner or team member.  If they assign a person to an issue, that person is assumed to be responsible for that issue.   While we would like people to follow our patterns for tagging, people will often not when opening short-lived issues for tracking and the folks doing repo triage are not expected to clean up the mess.
There is also the issue of the race condition for automation where an issue is created without issues, then in separate updates assignments and tags are done.  The amount of false positive "needs-team-triage" that occur as a result of that has been disruptive to metrics and causing extra work for those doing triage.  I've tuned that rule to consider assignments as well and do not want to reintroduce the noise for a "needs-triage" race condition.

I agree the race conditions are annoying and we could potentially handle some of that clean-up via a scheduled job if we chose to.
While folks that create an issue as well as assign it do have permissions and could label things, we know not everyone that has permissions knows to label or how to correctly label. If you are OK with the potential of issues dropping through the cracks and the assignee also not correctly routing or responding to the issue then I'll stop pushing on this. For EngSys triaging we will just need to update our triaging of the tools repo to find all issues with no labels or with "needs-triage" label in order to help ensure everything gets looked at by the triage team. I suspect other repos might also need to do something similar.


Client on Linux

running beamng on steam.
installed the mod into the folder.
starting the ./kissmp-bridge in command line - shows "Bridege is running!"
starting beamng via steam
game shows that the mod is installed
BUT I cant find any drop down in game window, where I could locate a game server etc....
what can I do ?

Appears to be working perfectly fine on a mostly fresh install of Popos 20.04 running beamng under steamplay/proton.

reinstalled beamng via steam - droped kissmultplayer.zip again and its working now.
maybe beamMP messed with the installation - which I tried before.


Support multiple transactions in a single voting

It should be possible for the DAO to create a proposal containing multiple transactions. After voting, if the proposal is approved, the transactions execute sequentially.
For example:

Create proposal containing [transaction1, transaction2, transaction3].
Create tally to vote proposal.
If tally is Approved, then execute the transactions in order (i.e. First transaction1, wait to be included in a block. Then transaction2, etc.)

This will avoid the DAO the hassle to vote on every transaction for a single purpose. E.g. deployment of a new feature involving more than one contract, update the state of many addresses in the oracle, create/transfer tokens to multiple addresses, etc.

Implementation here: https://github.com/hhh01398/hud/pull/29


Rust SDK

Tracking Rust SDK related activity

not actively being worked, but high interest remains.  keeping open...


Health API

Provide support to the health-API endpoints.
In case of exceptions on the REST-V1 / REST-V20 this API can (possibly) provide extra information regarding the status of the services.
import sys
import json
import oandapyV20
from oandapyV20.exceptions import V20Error
import oandapyV20.contrib.healthAPI as health

# for time being: add health URL's to available environments
setattr(sys.modules["oandapyV20.oandapyV20"],
                   "TRADING_ENVIRONMENTS",
                    {"health": {
                     "stream": "http://api-status.oanda.com",
                     "api": "http://api-status.oanda.com",
                     }})

api = oandapyV20.API(access_token=None, environment="health")

r = health.Services()
print("REQ: {}".format(r))
try:
    api.request(r)

except Exception as err:
    print("Pretty bad! health service not accessible")
    exit(2)

else:
    print("{}".format(json.dumps(r.response, indent=2)))
    print("# services: ", len(r.response['services']))
    # show some info
    for service in r.response['services']:
        print('ID  : {}'.format(service['id']))
        print('DESC: {}'.format(service['name']))
        print('ST: {}'.format(service.get('current-event').get('status').get('description')))

see #88


Default profile credentials not working in latest builds

When upgrading to the latest versions of the AWSSDK.S3 or AWSSDK.SecurityToken packages, profile credentials no longer work.
Expected Behavior
After instantiating an IAmazonS3 via dependency injection it should be using AssumeRoleAWSCredentials when the Profile in appsettings.json is set to a credential profile that specifies the use of a role.
Current Behavior
Rather than picking up the role from the profile, the S3 client is defaulting to BasicAWSCredentials
Steps to Reproduce (for bugs)
Upgrade either/both of the following packages:
AWSSDK.S3 package past version <IP_ADDRESS>
AWSSDK.SecurityToken past version <IP_ADDRESS>
Context
I can no longer connect to S3 using my role base credentials.
Your Environment

AWSSDK.Core version used: N/A
AWSSDK.S3 version used: ><IP_ADDRESS>
AWSSDK.SecurityToken: ><IP_ADDRESS>
Operating System and version: Mac OS Catalina
Visual Studio version: Rider 2019.3
Targeted .NET platform: .NET Core

.NET Core Info

.NET Core version used for development: 2.1
.NET Core version installed in the environment where application runs: 2.1

Thank you for raising this!  I have identified the root cause and proposed the fix to the team.  A release is likely to be delayed due to restrictions around the holidays.  In the meantime, please use a version earlier than Core <IP_ADDRESS> or remove "role_session_name" from your profile.  If you are not using a role session name in your profile and you are still experiencing this issue, please let us know and provide the property names in your profile.

Hi @pixelharmony, I believe that this issue is now fixed.  Please let us know if you are still experiencing this issue when you get a chance.  If you are, please provide us with the property names in your profile (e.g. role_arn, role_session_name).

I seem to be having this problem with DynamoDB
Rather than load settings as suggested:
public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();

    services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
    services.AddAWSService<IAmazonS3>();
    services.AddAWSService<IAmazonDynamoDB>();
}

I'm having to resort to the following:

                services.AddSingleton<IAmazonDynamoDB>(sp =>
                {
                    var clientConfig = root.GetAWSOptions();
                    var credentials = new BasicAWSCredentials(
                        System.Environment.GetEnvironmentVariable("AWS_ACCESS_KEY_ID"),
                        System.Environment.GetEnvironmentVariable("AWS_SECRET_ACCESS_KEY"));
                    return new AmazonDynamoDBClient(credentials, clientConfig.Region );
                });

[netcoreapp2.1]:
Top-level Package                                 Requested   Resolved

Amazon.Lambda.APIGatewayEvents                  1.2.0       1.2.0
Amazon.Lambda.Core                              1.1.0       1.1.0
Amazon.Lambda.Serialization.Json                1.5.0       1.5.0
AWSSDK.DynamoDBv2                               <IP_ADDRESS>    <IP_ADDRESS>
AWSSDK.Extensions.NETCore.Setup                 3.3.101     3.3.101
Microsoft.Extensions.Configuration              3.1.8       3.1.8
Microsoft.Extensions.Configuration.Json         3.1.8       3.1.8
Microsoft.Extensions.Hosting                    3.1.8       3.1.8
Microsoft.NETCore.App                     (A)   [2.1.0, )   2.1.0
Newtonsoft.Json                                 12.0.3      12.0.3
SolarLunarName.Standard                         1.0.2       1.0.2


[Menu] MenuItem does not support "to" prop.

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example:
Steps:
The following code
import { Badge, MenuItem } from "@mui/material";
import FullScreenDialog from "../pages/Credits/Credits";
import { Link } from "@tanstack/router";
//.....
<MenuItem LinkComponent={Link} to="/credits">
          Credits
        </MenuItem>

produces the following typescript error
No overload matches this call.
  Overload 1 of 3, '(props: { href: string; } & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; disabled?: boolean | undefined; disableGutters?: boolean | undefined; divider?: boolean | undefined; selected?: boolean | undefined; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>): Element', gave the following error.
    Type '{ children: string; LinkComponent: LinkFn<"/", "">; to: string; }' is not assignable to type 'IntrinsicAttributes & { href: string; } & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; ... 4 more ...; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>'.
      Property 'to' does not exist on type 'IntrinsicAttributes & { href: string; } & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; ... 4 more ...; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>'.
  Overload 2 of 3, '(props: { component: ElementType<any>; } & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; ... 4 more ...; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>): Element | null', gave the following error.
    Property 'component' is missing in type '{ children: string; LinkComponent: LinkFn<"/", "">; to: string; }' but required in type '{ component: ElementType<any>; }'.
  Overload 3 of 3, '(props: DefaultComponentProps<ExtendButtonBaseTypeMap<MenuItemTypeMap<{}, "li">>>): Element | null', gave the following error.
    Type '{ children: string; LinkComponent: LinkFn<"/", "">; to: string; }' is not assignable to type 'IntrinsicAttributes & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; ... 4 more ...; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>'.
      Property 'to' does not exist on type 'IntrinsicAttributes & { autoFocus?: boolean | undefined; classes?: Partial<MenuItemClasses> | undefined; dense?: boolean | undefined; ... 4 more ...; sx?: SxProps<...> | undefined; } & Omit<...> & CommonProps & Omit<...>'.

Also the menuitem API references the "component" prop while the actual code doesn't use that prop anymore. Its been replaced with LinkComponent. https://mui.com/base/react-menu/components-api/#menu-item
Current behavior 😯
Typescript is throwing an error.
Adding ts-ignore to the line makes the MenuItem work.
Expected behavior 🤔
No typescript error.
Context 🔦
Create a menu item and use a routing library such as tanstack router or react-router-dom to navigate.
The docs should be updated for this simple and common use case.
Your environment 🌎

npx @mui/envinfo
System:
    OS: macOS 13.1
  Binaries:
    Node: 19.8.1 - ~/.nvm/versions/node/v19.8.1/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 9.5.1 - ~/.nvm/versions/node/v19.8.1/bin/npm
  Browsers:
    Chrome: 112.0.5615.137
    Edge: Not Found
    Firefox: Not Found
    Safari: 16.2
  npmPackages:
    @emotion/react: ^11.10.6 => 11.10.6
    @emotion/styled: ^11.10.6 => 11.10.6
    @mui/base:  5.0.0-alpha.126
    @mui/core-downloads-tracker:  5.12.1
    @mui/icons-material: ^5.11.16 => 5.11.16
    @mui/material: ^5.11.15 => 5.12.1
    @mui/private-theming:  5.12.0
    @mui/styled-engine:  5.12.0
    @mui/system:  5.12.1
    @mui/types:  7.2.4
    @mui/utils:  5.12.0
    @types/react: ^18.0.28 => 18.0.38
    react: ^18.2.0 => 18.2.0
    react-dom: ^18.2.0 => 18.2.0
    typescript: ^4.9.3 => 4.9.5

Also the menuitem API references the "component" prop while the actual code doesn't use that prop anymore.

The component prop still works for the Material UI MenuItem (docs), it's only been dropped from Base UI components!

Its been replaced with LinkComponent

I think according to the code here, LinkComponent is only used as a fallback if you pass to or href without overriding the default component.
So this should work for you:
<MenuItem component={Link} to="/home">
  Home
</MenuItem>

Here's a working sandbox: https://codesandbox.io/s/https-github-com-mui-material-ui-issues-37130-fi0ybi?file=/src/App.tsx (It uses react-router-dom, I couldn't get the @tanstack/router sandbox to work 🤷♂)

However, with mj12albert method, the a element is directly inside the ul element. The correct form is to include the li element inside the ul element.


Git integration

Allow for scripts versioning using a Git integration.
What about results data (influxdb) and dashboards (grafana)? It might be easier to save reports exported as pdf files.

It would be very cool to have Kraken able to push/pull scripts directly to/from our git repository without extra steps (being able to pull from git is more important, though)


Replacing method at compilation-time

Maybe I got it all wrong, but is it even possible to exclude attribute consumer MemberDeclarationSyntaxs from compilation?
So if I have a code generation-consumer method, I still have it with same identifier, but slightly changed at buildtime

No. Code generation is limited to adding members/types, not replacing existing ones. That's something of a fundamental limitation of the overall system for several reasons -- not so much a limitation of this project.

@AArnott  Why is it considered a limitation of the overall system? I have been working a weaver tool based on this same approach and it works for me.
I made some slight changes but in general borrows all the same concepts that you have here


Failed Utility Batch Extrinsic shown as Successful

Hi Team,
I was doing some tests with utility batch extrinsics and deliberately included an extrinsic that would cause the batch to fail - you can see here (https://porcini.rootscan.io/extrinsics/12367803-1) that it seems like the extrinsic was successful and the tokens were transferred, but comparing to old explorer (https://explorer.rootnet.cloud/extrinsic/0012367803-000001-527f4) you can see the batch failed and no tokens were transferred...

Hey @RichieRichCR
Would you mind joining our Discord Server to discuss some details on this one?


Jupyter Intro Material

Need to update to the latest versions from Jupyter
No need to experiment with plotting in jupyter-examples/ 3. Plotting.ipynb
Eradicate all mention of pylab

Also fix busted link in "sharing notebooks" example

Make the example code more domain relevant.

Here are the new examples, which have changed significantly:
http://nbviewer.jupyter.org/github/jupyter/notebook/tree/master/docs/source/examples/Notebook/
@WardF how would you feel teaching from these? Should I pull these into our repo?

We have new content this time around. See how that goes and make new notes as necessary.

I missed this. Sorry.  Working on material now will pull from these as best I can.

No worries.


Preview ServiceVersions should use PascalCase

Based on .NET guidelines for capitalization, preview ServiceVersion values should be PascalCase, e.g. "V2021_09_21_Preview" instead of "V2021_09_21_preview". This violates the AZC0016 analyzer recently added to catch cases like this.
At this time, this is caused by a generator bug but, even when fixed, you should consider whether this introduces an undesirable breaking change. For example, if you've already shipped to customers but haven't changed the preview version, you may want to keep it by redefining the same class outside the "Generated" folder.
The easiest way is to move the entire options class that defines your ServiceVersion to the project folder outside the "Generated" folder and next to your client class. When the code is generated again, this class will not be re-generated and you fully own all updates. This is often desirable when you have to maintain multiple versions as well, such as after you ship your first GA and want to ship another preview of GA, or even if you support multiple previews.
If you are able to rename the value to use the uppercase "_Preview" suffix, please remove the GlobalSuppressions.cs file added to your project in PR #23793.

If you haven't shipped, renaming the property in a non-generated source file as described in the issue is best; however, if you have shipped, see https://github.com/Azure/azure-sdk-for-net/pull/23793#pullrequestreview-760329231 for a good suggestion to define additional members and hide the old ones. These preview ServiceVersions should be deleted once you GA anyway, so you would not have to support them forever

This issue has been fixed - https://github.com/Azure/azure-sdk-for-net/blob/aad3be7a5488a95a8c2fbdb2c2610d5f540fcd77/sdk/agrifood/Azure.Verticals.AgriFood.Farming/src/Generated/FarmBeatsClientOptions.cs#L21C13-L22C37.
Closing the issue, please feel free to reopen if I am mistaken.


Can I use all of node's modules?

Can I use all of node's modules with React Native Desktop? Such as fs?

Unfortunately, no. At the moment you can do the bridge like Electron does, but it's a certain amount of additional work.

You could take a look at react-native-fs, however, this will require some changes to make it work with macOS I presume.

Is there some way to run a terminal command? I could get away with starting node in a separate process. Do you suppose there's already a module that could help with this?
Thanks!

There is no such module, but it's not hard to build, something like child_process polyfill, but with worse quality of course. It would be easier to me write initial implementation if you have particular use cases such as node modules you want to use, or even project I can help you with.

I'd be happy to share my usecase! - I'm making ratpack, a tool for building and running js. it's basically an electron wrapper around webpack/webpack-dev-server. the problem is, electron makes the app pretty heavy (~65 mb in my case), and it makes autoupdates less pleasant (electron doesn't support delta updates on mac yet). I'd be happy to outsource the 'core' work to a node process, and control/communicate via an RN layer (which I assume will be lighter). There's a lot more to it of course, but this is what I was investigating at the moment.

Great! I'll fork it with proof-of-concept implementation of RN-node module. If it works I can extract it as a stand-alone module. Let's try and see that happens.

Oh! Thank you so much! Please don't go out of your way for this, there's clearly no rush :) Looking forward to it!

I submitted pull request https://github.com/threepointone/ratpack/pull/31 for anyone who interested.


Chinese support?

will it consider support Chinese?

@jinfagang DeepPavlov supports multilingual transformers that you can use to train Chinese models. What kind of models you are interested in?


⚠ Bofrost.ch has degraded performance

In 29a3e69, Bofrost.ch (https://www.bofrost.ch) experienced degraded performance:

HTTP code: 200
Response time: 1492 ms

Resolved: Bofrost.ch performance has improved in 478fbba after 7 minutes.


Segmentation Fault when installing on Windows

Hello,
I've been using Bluesky for a while now, but I was trying to install it on a new Windows machine. There is a pygame_parachute segmentation fault (see screenshot) that happens consistently over different python versions: 3.6, 3.7, 3.8, 3.9. According to setup-python.errors.then.readme.txt pyopengl_accelerate doesn't work for 3.7 so for attempts with python >=3.7 I only installed pyopengl (however the file seems old so I'm not sure if the issue still remains).

I am running Windows 10, and creating new virtual environments through anaconda to test the issue. The neccesary packages have been installed by running setup-python.bat and running check.py returns the following screenshot

Lastly, I am also unable to open it through running Bluesky_pygame.py, but the error there seems to me unrelated to what I've reported previously:

Any clue on how to fix these issue would be appreciated.
Cheers,
Ralvi

Hi @risufaj,
pyopengl is indeed still required, pyopengl_accelerate not. The segmentation fault is difficult to debug without more information on where it occurs, the terminal output you show doesn't really tell anything.
The issue starting the pygame version however was more clear. I've made some fixes here: d1e9c4b. These should allow you to start the pygame version again.

Hi @jooste
thanks for the reply. the pygame version seems fine now, thanks.
I was trying to run again the other version but now error is different, which is really strange as I did no changes:

This error typically occurs when there is a stale bluesky process still running in the background. You can check this with the Windows Task Manager. If bluesky processes are listed even though you don't have bluesky running you should terminate them, which should resolve the error you show.

Well it seems that terminating stale python/bluesky processes seemed to have solved both issues :).
But just to confirm, I replicated the first error on another machine with a fresh installation of bluesky. From my observation, the segmentation fault happens after running bluesky for the first time after the packages are installed. If you close your cmd/anaconda prompt or whatever and terminate python processes and re-run then it works.
In any case, I'm closing issue.