azure: get away from password auth

@errordeveloper / @mikedanese How is auth handled for GCE/AWS?
I don't like using password auth for the VMs. I'm guessing GCE just deploys without auth and expects you to use gcloud or Cloud Console to push short lived keys into the VM just-in-time?
I'm very surprised there isn't an SSH provisioner for Terraform...

In EC2 you have an SSH key that you pick for your instances, it is the job
of the OS provisioning scripts (e.g. cloud-init) to put that in the right
place. It depend on the distro which user you will get, on Ubuntu it is the
'ubuntu' user, and on Amazon Linux it is the 'ec2-user.  You can configure
your instances without SSH too, but EC2 doesn't provide any other means on
debugging issue, so I doubt anyone does that. You can either import a
public key, or generate a key pair for you. However, there is only one
public key that can be associated with an instance. The GCE has a much
nicer solution to all this, with dynamic user provisioning, but it requires
an agent. I forgot how exactly default user account work though... I
haven't used Azure with Terraform, so I am not sure what is the issue
exactly. Is it somehow to do with different Azure account types?
On Tue, 26 Jul 2016, 23:37 Cole Mickens<EMAIL_ADDRESS>wrote:

@errordeveloper https://github.com/errordeveloper / @mikedanese
https://github.com/mikedanese How is auth handled for GCE/AWS?
I don't like using password auth for the VMs. I'm guessing GCE just
deploys without auth and expects you to use gcloud or Cloud Console to
push short lived keys into the VM just-in-time?
I'm very surprised there isn't an SSH provisioner for Terraform...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes-anywhere/issues/182, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAPWS85auROMibRHwQWo5Hok0LvtQIgtks5qZowXgaJpZM4JVqcE
.

Yes, user authorized_key provisioning works the same or similarly in Azure, but at the moment I'm only using password auth currently with Terraform.
Is the Terraform/aws/phase1 implementation using SSH keys? Is it a required field in the config.json or otherwise how is it specified as input to the terraform template?

If a key name is unspecified, current implementation actually expects
'kubernetes-anywhere' key to exist. User can import the key using
additional 'aws_key_pair', but that's something I discovered recently, so I
haven't documented it yet. I would be very glad if we could align on where
SSH keys should come from, and make the change once we have consensus.
Now I recall importing my key to GCE as metadata, when I used it with
Terraform, but I forgot the exact context, and whether I only had to do it
once for my account?
On Wed, 27 Jul 2016, 00:15 Cole Mickens<EMAIL_ADDRESS>wrote:

Yes, user authorized_key provisioning works the same or similarly in
Azure, but at the moment I'm only using password auth currently with
Terraform.
Is the Terraform/aws/phase1 implementation using SSH keys? Is it a
required field in the config.json or otherwise how is it specified as
input to the terraform template?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes-anywhere/issues/182#issuecomment-235434905,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPWS1lkbH-N-PqHKAvr48WXmqY1I6NRks5qZpUfgaJpZM4JVqcE
.


Add enum merging RFC

@PascalSenn @benjie I pulled up some usage stats on the 3000+ enums in our graph:
Input: 19.4%
Output: 38.5%
Both: 38.5%

Thanks for the stats @fotoetienne !


Unable to create war

using gradle build is reacing 88 percent and the console is getting stuck after that

NVM there was a problem with gradle build, which got resolved after using gradlew build


setup live deployment

make angular run in live mode

ng serve --prod -> http://localhost:4200/vendor/lodash/lodash.min.js 404 (Not Found)

find out how the polyfills are generated within system.js


submit to supermarket.chef.io?

Any plans to upload this cookbook to supermarket.chef.io?

Submitted here https://supermarket.chef.io/cookbooks/gocd.


illegal hardware instruction when running model-archiver with onnx model

When I execute the model-archiver it exists with the following error:
illegal hardware instruction (core dumped)  model-archiver --model-name model --model-path . --handler  -f

Command executed:
model-archiver --model-name model --model-path . --handler mxnet_vision_service:handle -f

Script used to export onnx model from a pytorch model:
import os
import torch
import json
import torchvision
import numpy as np
import caffe2.python.onnx.backend as onnx_caffe2_backend
import onnx

def export_to_onnx_and_test():
    model = torchvision.models.resnet.ResNet(block=torchvision.models.resnet.Bottleneck,
                                             layers=[1, 1, 1, 1],
                                             num_classes=10)
    model.train(False)
    dummy_input = torch.rand(1, 3, 224, 224)
    torch_out = model(dummy_input)
    os.makedirs("output_model", exist_ok=True)
    torch.onnx.export(model, dummy_input, "output_model/model.onnx", export_params=True)
    signature = {
        "inputs": [
            {
                "data_name": "data",
                "data_shape": [0, 3, 224, 224]
            }
        ],
        "input_type": "image/jpeg"
    }
    with open("output_model/signature.json", "w") as f:
        json.dump(signature, f)

    with open("output_model/synset.txt", "w") as f:
        for idx in range(10):
            f.write("{} label\n".format(idx))

    # testing model
    model = onnx.load("output_model/model.onnx")
    onnx.checker.check_model(model)
    prepared_backend = onnx_caffe2_backend.prepare(model)
    W = {model.graph.input[0].name: dummy_input.data.numpy()}
    c2_out = prepared_backend.run(W)
    np.testing.assert_almost_equal(torch_out.data.cpu().numpy(), c2_out[0], decimal=3)

if __name__ == "__main__":
    export_to_onnx_and_test()

script to run after generating the onnx model:
cd output_model
curl -O https://raw.githubusercontent.com/awslabs/mxnet-model-server/master/examples/model_service_template/mxnet_vision_service.py
mkdir mxnet_utils
cd mxnet_utils
curl -O https://raw.githubusercontent.com/awslabs/mxnet-model-server/master/examples/model_service_template/mxnet_utils/image.py
curl -O https://raw.githubusercontent.com/awslabs/mxnet-model-server/master/examples/model_service_template/mxnet_utils/ndarray.py
cd ../
model-archiver --model-name model --model-path . --handler mxnet_vision_service:handle -f

os: arch linux (kernel: 5.0.5-arch1-1-ARCH)
python:                       3.7
python packages installed from pip:
numpy:                       1.14.6
onnx:                          1.5.0
mxnet-mkl:                 1.4.0.post0
(mxnet also give the same problem)
mxnet-model-server:  1.0.3
protobuf                      3.7.1
torch                           1.0.1.post2
torchvision                  0.2.2.post3

@ahmed-shariff : Could you provide more context.

What are you trying to achieve? Are you trying to package an ONNX model into the model archive or are you trying to convert an onnx model to an MXNet model?
You are running model-archiver on current directory. What does your current directory have? Could you share a ls -la of all the files you are trying package into your model archive?

@vdantu thank you for the quick response.

I am trying to package an ONNX model into a model archive so that I can serve it using MMS
The contents of the directory are all generated by the scripts I've included. The ls -la output of the directory:

total 31616
drwxr-xr-x 3 shariff shariff     4096 May 10 17:22 .
drwxr-xr-x 4 shariff shariff     4096 May 10 17:58 ..
-rw-r--r-- 1 shariff shariff 32346537 May 10 17:22 model.onnx
drwxr-xr-x 2 shariff shariff     4096 May 10 17:22 mxnet_utils
-rw-r--r-- 1 shariff shariff     2943 May 10 17:22 mxnet_vision_service.py
-rw-r--r-- 1 shariff shariff       95 May 10 17:22 signature.json
-rw-r--r-- 1 shariff shariff       80 May 10 17:22 synset.txt

tree -a of the directory:
.
├── model.onnx
├── mxnet_utils
│   ├── image.py
│   └── ndarray.py
├── mxnet_vision_service.py
├── signature.json
└── synset.txt

1 directory, 6 files

@ahmed-shariff : Thanks for sharing this.
So, your local directory has all the files and model files required to serve the model. Couple of points,

Model-archiver tries to convert your onnx model to a MXNet model. So, possibly your issue is coming from ONNX to MXNet conversion.
I tried running the same command on "squeezenet" model downloaded from ONNX model zoo and having all the files you have shown above, and it seems to work. Would you be able to share your ONNX file model file, so that we can try?

Also, please share the output of pip show model-archiver.

I can understand the confusion :D
Were you able to run the scripts above?
I ran into this problem with my own models. For the purpose of testing and reproducing, I initialized a resnet model using torchvision and exported the model with it's initial parameters. I tar'd the whole directory with the onnx model for your reference (file).
I also tried the squeezenet from https://github.com/onnx/tutorials/blob/master/tutorials/ONNXMXNetServer.ipynb with the model-archiver command, and still get the same error:
$ tree -a
.
├── mxnet_utils
│   ├── image.py
│   └── ndarray.py
├── mxnet_vision_service.py
├── signature.json
├── squeezenet.onnx
└── synset.txt

1 directory, 6 files
$ model-archiver --model-name model --model-path . --handler mxnet_vision_service:handle -f
[1]    926 illegal hardware instruction (core dumped)  model-archiver --model-name model --model-path . --handler  -f

The pip show model-archiver output:
Name: model-archiver
Version: 1.0.2
Summary: Model Archiver is used for creating archives of trained neural net models that can be consumed by MXNet-Model-Server inference
Home-page: https://github.com/awslabs/mxnet-model-server/model-archiver/
Author: MXNet SDK team
Author-email<EMAIL_ADDRESS>License: Apache License Version 2.0
Location: /home/amsha/virtualenv/maxnetmodelserver/lib/python3.7/site-packages
Requires: future, enum-compat
Required-by: mxnet-model-server

@ahmed-shariff : I downloaded the artifacts you had uploaded to google drive. I don't see core dump, but I do see these errors:
ERROR - Failed to import model.onnx file to onnx. Verify if the model file is valid
Traceback (most recent call last):
  File "/py3env/bin/model-archiver", line 11, in <module>
    load_entry_point('model-archiver', 'console_scripts', 'model-archiver')()
  File "/Users/dummy/model-archiver/model_archiver/model_packaging.py", line 63, in generate_model_archive
    package_model(args, manifest=manifest)
  File "/Users/dummy/model-archiver/model_archiver/model_packaging.py", line 40, in package_model
    t, files_to_exclude = ModelExportUtils.check_custom_model_types(model_path, model_name)
  File "/Users/dummy/model-archiver/model_archiver/model_packaging_utils.py", line 93, in check_custom_model_types
    symbol_file, params_file = ModelExportUtils.convert_onnx_model(model_path, onnx_file, model_name)
  File "/Users/dummy/model-archiver/model_archiver/model_packaging_utils.py", line 165, in convert_onnx_model
    sym, arg_params, aux_params = onnx_mxnet.import_model(os.path.join(model_path, onnx_file))
  File "/py3env/lib/python3.6/site-packages/mxnet/contrib/onnx/onnx2mx/import_model.py", line 59, in import_model
    sym, arg_params, aux_params = graph.from_onnx(model_proto.graph)
  File "/py3env/lib/python3.6/site-packages/mxnet/contrib/onnx/onnx2mx/import_onnx.py", line 115, in from_onnx
    mxnet_sym = self._convert_operator(node_name, op_name, onnx_attr, inputs)
  File "/py3env/lib/python3.6/site-packages/mxnet/contrib/onnx/onnx2mx/import_onnx.py", line 61, in _convert_operator
    op_name, new_attrs, inputs = convert_map[op_name](attrs, inputs, self)
  File "/py3env/lib/python3.6/site-packages/mxnet/contrib/onnx/onnx2mx/_op_translations.py", line 434, in reshape
    reshape_shape = list(proto_obj._params[inputs[1].name].asnumpy())

So, the ONNX model in that package is incorrect. You might want to verify if this model is proper.
--model-name shouldn't matter. You should be able to give any model name and it should technically work.
What is your host configuration? Are you running on ec2 instances or on your local host? Also, what are the CPU and memory available in the host. I am not able to recreate this error and would like to recreate it.

I was able to run the same model on onnxruntime and the onnx caffe backend.
I am running this on a local host for now. It only havs 4GB memory with an i5 (A rusty old thinkpad). I'll try it on another pc as soon as possible and let you know what comes of it.

I executed the scripts in a different pc, and the same error you got. Will investigate further and update.
The error output:
Traceback (most recent call last):
  File "/home/user/.conda/envs/torch/bin/model-archiver", line 10, in <module>
    sys.exit(generate_model_archive())
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/model_archiver/model_packaging.py", line 61, in generate_model_archive
    package_model(args, manifest=manifest)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/model_archiver/model_packaging.py", line 38, in package_model
    t, files_to_exclude = ModelExportUtils.check_custom_model_types(model_path, model_name)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/model_archiver/model_packaging_utils.py", line 91, in check_custom_model_types
    symbol_file, params_file = ModelExportUtils.convert_onnx_model(model_path, onnx_file, model_name)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/model_archiver/model_packaging_utils.py", line 163, in convert_onnx_model
    sym, arg_params, aux_params = onnx_mxnet.import_model(os.path.join(model_path, onnx_file))
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/mxnet/contrib/onnx/onnx2mx/import_model.py", line 59, in import_model
    sym, arg_params, aux_params = graph.from_onnx(model_proto.graph)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/mxnet/contrib/onnx/onnx2mx/import_onnx.py", line 115, in from_onnx
    mxnet_sym = self._convert_operator(node_name, op_name, onnx_attr, inputs)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/mxnet/contrib/onnx/onnx2mx/import_onnx.py", line 61, in _convert_operator
    op_name, new_attrs, inputs = convert_map[op_name](attrs, inputs, self)
  File "/home/user/.conda/envs/torch/lib/python3.7/site-packages/mxnet/contrib/onnx/onnx2mx/_op_translations.py", line 434, in reshape
    reshape_shape = list(proto_obj._params[inputs[1].name].asnumpy())
KeyError: 'concat0'

@ahmed-shariff : Awesome. Do keep us posted about your findings. This might be helpful for the general community :)

@ahmed-shariff : How are the experimentations coming along? Do you need any help?

Seems it's a problem with the op translation in mxnet with onnx, and it has been reported in mxnet: https://github.com/apache/incubator-mxnet/issues/14916

@ahmed-shariff : Oh. Interesting find. We can track this issue with MXNet then right? Should we close this issue in MMS repo?

Yes, it is a mxnet issue it seems. Closing issue. Thank you for the assist :D


fix: preserve scroll position on navbar back button

Fix: Back Button Scroll Position Reset
Problem
Clicking the back button in the navbar currently causes the page to scroll back to the top, losing the user's previous scroll position. This disrupts the user experience when navigating back from content pages.
Solution
Modified the Navbar component to include scroll position management. The implementation preserves the exact scroll location when users click the back button, matching expected browser behavior and improving navigation UX.

Scroll Management Implementation

Added scroll position tracking
Implemented position restoration
Added browser navigation handling

Testing Done

Back button preserves scroll position
Works on both short and long pages
Tested on mobile devices
Verified with different navigation patterns

Steps to Test

Checkout the testing branch.
Navigate to any long content page.
Scroll down partially.
Click the back button in the navbar.
Verify that the scroll position is maintained.

Notes

No new dependencies added.
No breaking changes introduced.
Existing functionality remains unaffected.
Changes only impact scroll behavior on back navigation.

i feel this is just a bit of over engineering rather than having a good dx. closing this pr now but feel free to contribute on anything else.


POM-315 privacy policy translation

duplicate ?
https://github.com/coi-gov-pl/gui-web-pomogamukrainie-forum/pull/188

@bbartosiak it's not a duplicate, this is in a different place


Better debug support

Hey!
Thank

Thanks @StyleT! Let's make new release 0.1.5?

Released as https://www.npmjs.com/package/js-acl/v/0.1.5

@StyleT Thank you, Have a nice day! 🍰


Can nom work with AsyncRead?

Does nom offer a way to work against async streams (like https://tokio-rs.github.io/tokio/tokio/io/trait.AsyncRead.html)?

Hello,
to integrate with tokio, it's a good idea to write a tokio transport, as in https://github.com/sozu-proxy/lapin/blob/master/futures/src/transport.rs#L31-L55
nom is designed for that kind of use case :)

Hello @Geal,
I think with this approach we do call some parsers over and over, for example if we receive an stream that contains HTTP request, we parse the method multiple times. am I right?

It depends on the protocol you're parsing, but it's a tradeoff you have to decide about:

either you write manually a state machine working byte by byte, like https://github.com/nodejs/http-parser (personally, I think it's cumbersome to write and maintain, and also a bit slow to run)
or you have a state machine that knows which parser to apply next, ie, parse method and uri, store it, then call the header parser in a loop, then parse the body if necessary. The HTTP parser in sozu works that way
or you could also assume that most requests will fit entirely into you input buffer, so in the common case when you get to it all the data is already in the buffer and the parser is called once, or the parser tells you that it needs more data in rare cases for which you have to accumulate more data and try again

@Geal Thanks a lot for detailed explanation.

@Geal Thanks a lot for detailed explanation.

I think this issue should be open.  Did Tokio remove transports?  I feel like this would need async versions of Compare, InputTakeAtPosition, InputTake,  InputIter, etc.  I.E. A whole new crate.

You can use nom-bufreader now, it helps a lot

Add that to the README :)


Prior Output and Simulation Input Requirements

Hi all,
I have a question regarding the prior.sample() outout and simulation. __call__() input requirements:
Background:
I am dealing with a simulator which has a lot of parameters and specifications (~50), but only some of them should be set as "inferable" while the rest of them is set to a constant value. However, which parameters and/or specificatios are fix values changes from application to application and should be implemented in a felxible way.
Simulator:
I have a simulator which takes as input a dictionary of the parameters and specifiactions which should be used for this simulation run (such as: run_params=dict(p1=[v_11, v_12, ..., v_1n], ..., pn=[v_n1, v_n2, ..., v_nn]) and run_specs=dict(s1=[v_11, ..., v_ 1n], sn=[v_n1, ..., v_nn]) ); all parameters/specifications which have not been specified in the dictionary are set to the default values.
#  in general, the input looks like this:
#               input = dict(p1=[v_11, v_12, ..., v_1n], ..., pn=[v_n1, v_n2, ..., v_nn])

input_specs = dict()
input_params = dict(Ttm=1.2, Rm=0.2, Mi=0.19)  # simulate one batch of inputs in one run
summ_stats = simulator(input_specs, input_params)

Prior:
According to the simulator I have a prior which samples values from a distribution and returns them in two dictionaries which can be passed to the simulator.
# in general, prior.sample(n) returns the tupe (prior_specs, prior_params) which match
# the input to the simulator (as above)

run_specs, run_params = prior.sample(n)   # sample n values from the prior and run the simulator for all values
summ_stats = simulator(run_specs, run_params)

Question:
Is this data structure of having two dicts as simulator input / prior output valid when using the sbi package? Until now I have implemented a workaround which converts ndarray outputs of the prior to the required dict inputs of the simulator but that is dependent on providing the prior output in the correct order (so that prior[0] matches param_to_infere[0]).

Hi Fololo,
thanks for your question. And yes, this setup is in principle valid. However, we are expecting as simulator a python function with array like, numpy array or torch tensor, argument for the parameters. And as prior a torch distribution or scipy stats distribution.
Thus, for you it would work to write a short wrapper for every parameter spec you want to do inference over: define a prior for the parameters of interest and write a wrapper for the simulator that takes the prior output and makes sure it is mapped to the corresponding parameters.
Does this make sense to you?

Ok thank you. So I defenitely need two wrapper functions: one to combine all prior samples for the different parameters in one array/tensor which I then pass to the simulator and one to mapp them back to the right parameters.
Something like the following:
Prior --> 'unmap' values to tensor/array --> pass to simulator --> 'remap' values to corresponding params

If you are able to define your prior as torch or scipy distributions then you would need only one I believe. Namely the one around the simulator that takes the tensor of parameters sampled from the prior and arranged them in a dict as needed for your simulator. Or not?

But how would I know the key for each prior sample which tells me how to map the value to the corresponding parameter type then? If I only get a tensor and I map it to the dict I am again dependent on the order of the tensor (which I wan to prevent).
But anyways, I think I found a good solution to the problem. I the end, the prior and simulator are all wraped in one class and the user defines the parameters to infere in a ordered manner. This order is saved and the  prior is defined accordingly. So I actually know the order and how to map prior->parameter.
Thank you for you constant help once again :)

@Fololo I am just curious, why do you need the extra class?
Isn't it that you as a user always know the order of your parameters? You either pass a multi-dimensional prior or a list of independent priors to sbi and your simulator function gets the batch of samples from the prior and uses them accordingly.

@janfb in the end you are right, it was just a matter of implementation. I am relying on a matlab model which was implemented by someone else (who is not familliar with python) and I wanted to make my code as close a possible to how the model is used in matlab. So I wrapped everything in a python class (not just for sbi but to have the whole model in python)
If you just use the model with sbi you probably wouldn't need the class.

Yes, makes sense. Closing this issue then. Thanks!


Docs incorrectly suggest comma separated post_install_args with commas

The docs suggest this...
[cluster yourcluster]
...
post_install = https://raw.githubusercontent.com/aws-samples/aws-parallelcluster-monitoring/main/post-install.sh
post_install_args = https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main,aws-parallelcluster-monitoring,install-monitoring.sh
additional_iam_policies = arn:aws:iam::aws:policy/CloudWatchFullAccess,arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess,arn:aws:iam::aws:policy/AmazonSSMFullAccess,arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
tags = {"Grafana" : "true"}

But that fails due to the scripts incorrect assumption that
post_install_args = https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main,aws-parallelcluster-monitoring,install-monitoring.sh

is a bash array initialization. Which it's not.  So the script then fails at this point ...

monitoring_url=${cfn_postinstall_args[0]}
monitoring_dir_name=${cfn_postinstall_args[1]}               <===== THIS IS EMPTY STRING
monitoring_tarball="${monitoring_dir_name}.tar.gz"        <===== THIS IS ".tar.gz"
setup_command=${cfn_postinstall_args[2]}
monitoring_home="/home/${cfn_cluster_user}/${monitoring_dir_name}"

case ${cfn_node_type} in
    MasterServer)
        wget ${monitoring_url} -O ${monitoring_tarball}     <===== THIS TRYS TO SAVE ".tar.gz"
        mkdir -p ${monitoring_home}                                   <===== THIS IS IMPACTED BY EMPTY STRING
        tar xvf ${monitoring_tarball} -C ${monitoring_home} --strip-components 1  <==== THIS JUST FAILS
    ;;
    ComputeFleet)

    ;;
esac

What I did to fix the issue was hack the script up to change the post_install_args to be like this...
cfn_postinstall_args=("https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main" "aws-parallelcluster-monitoring" "install-monitoring.sh")

And I was able to get an exit code of 0 :)

I am having the same problem..can you please share your V2 config file..I badly need it

I am having the same problem..can you please share your V2 config file..I badly need it

@murugappanp the work around is very simple, replace commas with spaces and double-quotes are optional depending on the value, so for example...
if the docs tell you to do this
post_install_args = https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main,aws-parallelcluster-monitoring,install-monitoring.sh

you ignore that for reasons I stated above and instead do this...
post_install_args = ("https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main" "aws-parallelcluster-monitoring" "install-monitoring.sh")

The goal there being to format the value of post_install_args as valid bash array initialization. The double-quotes might be optional, check out google for examples of proper bash arrays like ... https://opensource.com/article/18/5/you-dont-know-bash-intro-bash-arrays

Thanks Alfred..I just tried the same and still the cluster does not build...The error is below and I have attached my config. as well
my version is 2.11.5
Cluster creation failed.  Failed events:

AWS::EC2::SecurityGroup MasterSecurityGroup Resource creation cancelled
AWS::CloudFormation::Stack CloudWatchLogsSubstack Resource creation cancelled
AWS::CloudFormation::Stack EBSCfnStack Resource creation cancelled
AWS::EC2::EIP MasterEIP Resource creation cancelled
AWS::IAM::Role CleanupResourcesFunctionExecutionRole 2 validation errors detected: Value '?true?' at 'tags.1.member.value' failed to satisfy constraint: Member must satisfy regular expression pattern: [\p{L}\p{Z}\p{N}.:/=+-@]*; Value '?Grafana?' at 'tags.1.member.key' failed to satisfy constraint: Member must satisfy regular expression pattern: [\p{L}\p{Z}\p{N}.:/=+-@]+ (Service: AmazonIdentityManagement; Status Code: 400; Error Code: ValidationError; Request ID: ce0cd82d-7ca1-410d-84ba-251141a569f6; Proxy: null)
AWS::IAM::Role RootRole 2 validation errors detected: Value '?true?' at 'tags.1.member.value' failed to satisfy constraint: Member must satisfy regular expression pattern: [\p{L}\p{Z}\p{N}.:/=+-@]*; Value '?Grafana?' at 'tags.1.member.key' failed to satisfy constraint: Member must satisfy regular expression pattern: [\p{L}\p{Z}\p{N}.:/=+-@]+ (Service: AmazonIdentityManagement; Status Code: 400; Error Code: ValidationError; Request ID: da6346f1-766e-4f53-8ee7-611909789ead; Proxy: null)

[aws]
aws_region_name = us-east-1
[global]
cluster_template = default
update_check = false
sanity_check = true
[vpc public]
vpc_id = xxx
master_subnet_id = xxx
additional_sg = xxx
[cluster default]
key_name = mykey
base_os = alinux2
scheduler = slurm
master_instance_type = t2.micro
s3_read_write_resource = *
vpc_settings = public
ebs_settings = myebs
queue_settings = compute
post_install = https://raw.githubusercontent.com/aws-samples/aws-parallelcluster-monitoring/main/post-install.sh
post_install_args = ("https://github.com/aws-samples/aws-parallelcluster-monitoring/tarball/main" "aws-parallelcluster-monitoring" "install-monitoring.sh")
additional_iam_policies = arn:aws:iam::aws:policy/CloudWatchFullAccess,arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess,arn:aws:iam::aws:policy/AmazonSSMFullAccess,arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
tags = {“Grafana” : “true”}
[queue compute]
compute_resource_settings = default
disable_hyperthreading = true
placement_group = DYNAMIC
[compute_resource default]
instance_type = c5.large
min_count = 0
max_count = 4
[ebs myebs]
shared_dir = /shared
volume_type = gp2
volume_size = 20
[aliases]
ssh = ssh {CFN_USER}@{MASTER_IP} {ARGS}

Closing this


"Cannot redeclare block-scoped variable length"

When I try to work on a JS file that has a "const length = 100" line at the top with "js/ts.implicitProjectConfig.checkJs": true, I get an ugly "Cannot redeclare block-scoped variable length" error because it conflicts with some lib.dom.ts file... but that's in fact not a concern at all:

I think something like this would probably pose a significant barrier to folks trying to get started with checkJS.

This is a duplicate of https://github.com/microsoft/TypeScript/issues/31783
Moving upstream for more feedback. I don't think the code causes issues  when run in a browser

Correct, I tried in node and browser contexts with no issues.

The problem here is that if you downlevel this code to var, it starts misbehaving again, and we don't know whether or not you're doing that. Beside that, we could add some logic here to separate the "global scope that's actually global" and the "global scope that is shadowable with a block-scope let/const" but to be honest this really doesn't seem to come up much.


Additional fields in the notification response for orders

A typical order related notification looks like this:
{
  "notifications": [
    {
      "notification": {
        "buyerHandle": "das_test",
        "buyerId": "QmVLRA8hzADMwYDxXXFgHf2i9bbmbcm9WQHVojeAensNcR",
        "notificationId": "QmUh2aupaEoudW5feEFeyGmturjSDWxpfdDnzKeuZhx4rR",
        "orderId": "QmZwQbg4XPCRqFqWhDw4Z1694jpD7GjdxuxCebkXpwP2t7",
        "slug": "vintage-dress-physical-w-options2",
        "thumbnail": {
          "small": "QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9",
          "tiny": "QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz"
        },
        "title": "Vintage dress (physical; w/ options)",
        "type": "order"
      },
      "read": false,
      "timestamp": "2018-06-08T00:36:16Z",
      "type": "order"
    }
  ],
  "total": 123,
  "unread": 122
}

There are two issues:

Currently, we have to make a separate API call (GET /ob/order/{orderId}) to fetch the price of the item from the order notification. This is a problem for mobile as we have this design for displaying order-related notifications:

Having to make an GET /ob/order API call just to fetch the price is wasteful and adds unnecessary overhead.

It is impossible to tell from this notification alone whether or not the node is the buyer or seller. We have to add additional logic in a client to check against the node's own peerId against the buyerId to determine whether or not they are the seller.

I propose that we:

[ ] Add a price object, with the value and currencyCode to the order notification
[ ] Add a field called vendor, which is a boolean to denote whether the node is the seller or not.

@drwasho Can you show an example of what these fields would look like when implemented? Curious about the diff between value and price. Additionally, how about putting the vendorID into the payload and the user can compare their own VendorID to either the Vendor or the Buyer ID to see which party they are to this transaction?

Can you show an example of what these fields would look like when implemented?

Sure thing, the only thing I changed was to use buyer instead or vendor for the boolean value.
{
  "notifications": [
    {
      "notification": {
        "buyerHandle": "das_test",
        "buyerId": "QmVLRA8hzADMwYDxXXFgHf2i9bbmbcm9WQHVojeAensNcR",
        "notificationId": "QmUh2aupaEoudW5feEFeyGmturjSDWxpfdDnzKeuZhx4rR",
        "orderId": "QmZwQbg4XPCRqFqWhDw4Z1694jpD7GjdxuxCebkXpwP2t7",
        "price": {
          "amount": 10,
          "currencyCode": "USD",
          "modifier": 0
        },
        "slug": "vintage-dress-physical-w-options2",
        "thumbnail": {
          "small": "QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9",
          "tiny": "QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz"
        },
        "title": "Vintage dress (physical; w/ options)",
        "type": "order",
        "buyer": true
      },
      "read": false,
      "timestamp": "2018-06-08T00:36:16Z",
      "type": "order"
    }
  ],
  "total": 123,
  "unread": 122
}

Additionally, how about putting the vendorID into the payload and the user can compare their own VendorID to either the Vendor or the Buyer ID to see which party they are to this transaction?

The goal here is to prevent the client from needing to check against the value of their own peerID, which they have to do now. They should just be able to tell from the notification whether or not they're the buyer => which will determine whether or not we fetch the buyer's profile to display in the notifications view.

Agreed with @drwasho that the price item would be represented as
"price": {
          "amount": 1000,
          "currencyCode": "eth",
          "priceModifier": 0.0,
          "coinDivisibility": 100000000
        },

where amount represents the quantity of the smallest divisible unit of the currency represented in currencyCode. priceModifier represents the same value present on the listing metadata when the listing type is CRYPTOCURRENCY, it represents the markup of the listing's sale price over market value, and defaults to null. coinDivisibility is the same value present on the listing metadata and indicates the smallest amount of the currency that can be represented.
The role of the node will be represented by the role field so the client is informed which party this user represents on the transaction.
Example:
{
  "notifications": [
    {
      "notification": {
        "buyerHandle": "das_test",
        "buyerId": "QmVLRA8hzADMwYDxXXFgHf2i9bbmbcm9WQHVojeAensNcR",
        "notificationId": "QmUh2aupaEoudW5feEFeyGmturjSDWxpfdDnzKeuZhx4rR",
        "orderId": "QmZwQbg4XPCRqFqWhDw4Z1694jpD7GjdxuxCebkXpwP2t7",
        "price": {
          "amount": 1000,
          "currencyCode": "eth",
          "priceModifier": 0.0,
          "coinDivisibility": 100000000
        },
        "slug": "vintage-dress-physical-w-options2",
        "thumbnail": {
          "small": "QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9",
          "tiny": "QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz"
        },
        "title": "Vintage dress (physical; w/ options)",
        "type": "order",
        "role": "buyer"
      },
      "read": false,
      "timestamp": "2018-06-08T00:36:16Z",
      "type": "order"
    }
  ],
  "total": 123,
  "unread": 122
}

Looking further, it appears that the order websocket notification is only ever received by the vendor. Can you confirm @drwasho that it is still required? The desktop team has also requested the listing type to be included. You can expect listingType: "SERVICE" or similar in the response.

Final example of schema:
{
  "notifications": [
    {
      "notification": {
        "buyerHandle": "das_test",
        "listingType": "SERVICE",
        "buyerId": "QmVLRA8hzADMwYDxXXFgHf2i9bbmbcm9WQHVojeAensNcR",
        "notificationId": "QmUh2aupaEoudW5feEFeyGmturjSDWxpfdDnzKeuZhx4rR",
        "orderId": "QmZwQbg4XPCRqFqWhDw4Z1694jpD7GjdxuxCebkXpwP2t7",
        "price": {
          "amount": 1000,
          "currencyCode": "eth",
          "priceModifier": 0.0,
          "coinDivisibility": 100000000
        },
        "slug": "vintage-dress-physical-w-options2",
        "thumbnail": {
          "small": "QmVsoT9iabv6GZhxhvtjSpQMJA6QyMivGTs6MmHJr6TBm9",
          "tiny": "QmbjyAxYee4y3443kAMLcmRVwggZsRDKiyXnXus1qdJJWz"
        },
        "title": "Vintage dress (physical; w/ options)",
        "type": "order"
      },
      "read": false,
      "timestamp": "2018-06-08T00:36:16Z",
      "type": "order"
    }
  ],
  "total": 123,
  "unread": 122
}

Sorry @placer14 I missed your earlier comment.

Listing type is awesome, thanks to the desktop team.

Looking further, it appears that the order websocket notification is only ever received by the vendor.

Is this also true for the REST response, I assume it is? There are other order-related notifications such as disputes (and I think a notification requiring the buyer to release funds and leave a review) where I really need to know the role of node for that order, so if it's not too much trouble could we please include role?

No problem, @drwasho. The scope of this issue was only for the order websocket notification. I don't know about the REST response or the other notifications and prefer not to inflate the scope here (let's discuss that separately from this). Can we agree that the order websocket does not require role and that 1188 is complete?

Resolved with @drwasho with additional discussion moved to #1230


ACS docs for collapsed sampling of hyperparameters

@samuelklee Just a few new equations in the proposed methods.  Should be a quick review.

Coverage decreased (-0.04%) to 91.817% when pulling 4664631f001b15c404fa656e914558ba1418d72c on db_hyperparameter_docs into c955c1c51d0b85dbcc9e248f929e55b32b02712a on master.

looks good!


PabloDraw 3.3.13-beta cannot run on Fedora Workstation 39

I downloaded PabloDraw version 3.3.13-beta from the official GitHub releases page, extracted the "pablodraw-linux-x64.tar.gz" file, checked if the binary was marked as executable under the file properties (already was)
With everything in place I proceed to execute it by double clicking it but nothing happens, no user interface, no error screens, nothing as if I hadn't even touched it.
I then chose to run it through the terminal to see if it would output anything, and this is what I received;
[user@fedora pablodraw-linux-x64]$ ./PabloDraw
An error occurred.  Please report this information to https://github.com/cwensley/pablodraw/issues:
System.NullReferenceException: Arg_NullReferenceException
   at GLib.GType.op_Explicit(Type)
   at GLib.Object.ClassInitializer.AddProperties(IntPtr)
   at GLib.Object.ClassInitializer.ClassInit(IntPtr)

(PabloDraw:18836): GLib-GObject-CRITICAL **: 23:56:31.413: g_object_new_is_valid_property: object class '__gtksharp_5_Eto_GtkSharp_Forms_GtkShrinkableVBox' has no property named 'homogeneous'

(PabloDraw:18836): GLib-GObject-CRITICAL **: 23:56:31.416: ../gobject/gsignal.c:2522: signal 'destroy' is invalid for instance '0x558e65a9e420' of type '__gtksharp_5_Eto_GtkSharp_Forms_GtkShrinkableVBox'

(PabloDraw:18836): Gtk-CRITICAL **: 23:56:31.416: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(PabloDraw:18836): Gtk-CRITICAL **: 23:56:31.418: gtk_box_pack: assertion 'GTK_IS_WIDGET (child)' failed

(PabloDraw:18836): Gtk-CRITICAL **: 23:56:31.425: gtk_box_pack: assertion 'GTK_IS_BOX (box)' failed

(PabloDraw:18836): GLib-GObject-CRITICAL **: 23:56:31.428: g_object_new_is_valid_property: object class '__gtksharp_6_Eto_GtkSharp_Forms_EtoVBox' has no property named 'homogeneous'

(PabloDraw:18836): GLib-GObject-CRITICAL **: 23:56:31.428: ../gobject/gsignal.c:2522: signal 'destroy' is invalid for instance '0x558e659a5ec0' of type '__gtksharp_6_Eto_GtkSharp_Forms_EtoVBox'

(PabloDraw:18836): Gtk-CRITICAL **: 23:56:31.428: gtk_box_pack: assertion 'GTK_IS_BOX (box)' failed

(PabloDraw:18836): Gtk-CRITICAL **: 23:56:31.428: gtk_box_pack: assertion 'GTK_IS_BOX (box)' failed
Unhandled exception. System.NullReferenceException: Arg_NullReferenceException
   at GLib.GType.op_Explicit(Type)
   at GLib.Object.ClassInitializer.AddProperties(IntPtr)
   at GLib.Object.ClassInitializer.ClassInit(IntPtr)
Abortado (imagem do núcleo gravada)
Checking my Mono version through the mono --version command;
Mono JIT compiler version <IP_ADDRESS> (tarball Mon Aug 14 07:03:42 UTC 2023)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug
	Interpreter:   yes
	LLVM:          supported, not enabled.
	Suspend:       hybrid
	GC:            sgen (concurrent by default)

My operating system is Fedora Workstation 39 (64-bits, running on an AMD Ryzen 5 5600G processor, 16 GB of total RAM memory)
Kernel: 6.7.10-200.fc39.x86_64
Gnome: 45.5
Window manager: Mutter
I am keep my system updated daily.

Same as #104 #106 and #112


Issue with using deploy_k8s - BOSH_NAME and BOSH_ENVIRONMENT

/kind bug
What happened:
Cannot deploy Kubernetes to VMWare using the instructions described here:
https://docs-cfcr.cfapps.io/installing/deploying-cfcr/
What you expected to happen:
Kubernetes should be deployed.
How to reproduce it (as minimally and precisely as possible):
Follow the steps described against a VMware environment.
Anything else we need to know?:
Analyzing the deploy_k8s script, I found a couple issues:

export_bosh_environment (lib/deployutils - line 6) method exports BOSH_NAME based on the directory containing the CFCR environment previously generated.
In the method deploy_to_bosh() (lib/deploy_utils - line 67) BOSH_ENVIRONMENT is filled with the content of BOSH_NAME. The net effect is that bosh now tries to execute bosh deploy using the folder name as environment, rather than the ip address of the previously deployed bosh director. One can get past that by removing the BOSH_ENVIRONMENT="${BOSH_NAME}" attribution

Environment:

Deployment Info (bosh -d <deployment> deployment):
Environment Info (bosh -e <environment> environment):
Kubernetes version (kubectl version):
Cloud provider (e.g. aws, gcp, vsphere):

Hi,
Thank you for raising this issue. We are planning to deprecate these scripts in favour of using https://github.com/cloudfoundry/bosh-bootloader with plan patches to deploy Bosh and Bosh CLI to deploy CFCR.
As a result we won't be debugging this further.


[Feature] Support boolean literals equals and notEquals

Support boolean literal evaluation, eg. true = true, (true = true) != false

Save literal value as an object
Register scalar function with func names and argument types. If a function cannot be found via function function names and argument types, look for functions through func names and # of params by default.
Currently, we only support equal and notEqual type matching for boolean and double.

This might not be the best way to support literal equations let's first straighten out the target:
do we want to support this on transform or predicate
I think let's focus on transform functions. in this case I think the missing piece is to add literal handling to binaryoperatortransformfunction on both side
do we want to do typed equal / not-equal check
let's only do non-typed check. b/c typed solution will be very complex: see #8596
with the basic solution in we can focus on #8596 to actually make the literals typed.

I am not sure if I fully understand about your point on literal support for binaryTransform.  Shouldn't two literal eval fall into scalar function by default?
Or you meant expressions like SELECT <BOOL_EXPR> = TRUE ? this is already supported.
I am not against using proposal https://github.com/apache/pinot/issues/8596 depending on the priority. This PR is hacky and expensive. but I feel it is not worse than the implementation we already have right now.

Discussed offline. Since this is not urgent, I'll do some refactoring first.


Overhaul how wxGridBagSizer is created/maintained

Description:

Currently, working with a wxGridBagSizer is really annoying. The problem is that when you add or insert an item it always gets placed at row 0, column 0. You then have to change the property to the correct row and column number. If you are appending to the end, then you have to know what the current highest row or column is to know what to set the new one to. If you try to insert a row, then you have to manually change the row number of every item after it. This isn't a huge problem if you create the all the contents at one time. It becomes a huge problem if at a later time you or someone else needs to modify it.
I think what makes this confusing is that the Navigation panel displays this as single child heirarchy that allows mixing rows and columns in any order. What might work is to create an abstract Row component that is a parent containing row number and span properties. It would have children which would be the actual coluns. Moving column items within the Row node would change the column number. Moving Row items would include all of the column children. The advantage of this is that we would know exactly what to do when inserting an item -- if a column item is selected, then we insert a column, and if a row item is selected, we insert a row (right-click menu would allow appending a child instead).

PR #365 completed work on wxGridBagSizer -- any additional problems should now have their own issue.


stat: depth argument is not respected

Performing a stat with depth of 1 still traverses a directory, and 0 still stats that dir/file.

Addressed by PR https://github.com/odeke-em/drive/pull/426


Add Indonesian translation

There might be an error with the travis configuration, since i edited non-code files and it results in build failed.


fix: resolve duplicate fields generated when inheriting multiple tables

For example, I created tables following:
create table example_a {
id integer not null,
name varchar(32),
};
create table example_b {} inherits (example_a);
create table example_c {} inherits (example_a, example_b);
and then sqlc generated golang struct for table example_c:
type ExampleC struct {
ID int32
Name string
ID int32
Name string
}
So I fixed this in this PR.

A table can inherit from more than one parent table, in which case it has the union of the columns defined by the parent tables. Any columns declared in the child table's definition are added to these. If the same column name appears in multiple parent tables, or in both a parent table and the child's definition, then these columns are “merged” so that there is only one such column in the child table. To be merged, columns must have the same data types, else an error is raised. Inheritable check constraints and not-null constraints are merged in a similar fashion. Thus, for example, a merged column will be marked not-null if any one of the column definitions it came from is marked not-null. Check constraints are merged if they have the same name, and the merge will fail if their conditions are different.

https://www.postgresql.org/docs/current/ddl-inherit.html


when i load one html in other using jquery its not working properly

function loadpage(text){
if (text === 'environments') {
$('#contentdisplay').load('../html/environments.html');
}
;
	};

I am trying to load html page like this its not working properly. In single when i run only separate html its working fine.

It's not clear what you are trying to achieve. If you are trying to bootstrap an Angular app asynchronously, you should manually bootstrap it using angular.bootstrap().
In any case, this sounds like a general support question. Please, use one of the appropriate support channels for these types of questions.
GitHub issues are reserved for bug reports and feature requests.
Thx !

Thank you for information.
On Wed, Mar 2, 2016 at 1:34 PM, Georgios Kalpakas<EMAIL_ADDRESS>wrote:

Closed #14161 https://github.com/angular/angular.js/issues/14161.
—
Reply to this email directly or view it on GitHub
https://github.com/angular/angular.js/issues/14161#event-574286270.


[mac] add "Radio Filter" mechanism

This commit implements new radio filter mechanism in OpenThread The
radio filter is mainly intended for testing. It can be used to
temporarily block all tx/rx on the IEEE 802.15.4 radio. When radio
filter is enabled, radio is put to sleep instead of receive(to ensure
device does not receive any frame and/or potentially send ack). Also
the frame transmission requests return immediately without sending
the frame over the air (return "no ack" error if ack is requested,
otherwise return success). This commit also add CLI command
radiofilter for this feature. It also adds test_radio_filter to
validate the behavior of the new feature. This feature requires
OPENTHREAD_CONFIG_MAC_FILTER_ENABLE.

@abtink @jwhui
One small problem with radio filter is that it blocks 15.4 radio totally, so we can't specify a extended address to block.
I am not totally clear about our testing requirement yet. May take some time to figure out.

One small problem with radio filter is that it blocks 15.4 radio totally, so we can't specify a extended address to block.
I am not totally clear about our testing requirement yet. May take some time to figure out.

We can consider extending this if there is a need for such filtering in the test. I must say, adding radio filter per extended address may not be as straight-forward. It should be possible/easy to block all tx to an extended address and dropping any received frame from it. But to truly block, I think we need to also avoid sending ack to frames from the filtered extended address.  Acks are managed by radio platform so blocking them to a particular extended address requires changes/support in radio platform and new radio plat APIs.

Pinging to review/merge this. Thank you.
@simonlingoogle @jwhui


test(cdk/testing): start the e2e-app and run webdriver tests in bazel

This solution is temporary and linux-only. We should eventually replace
it with a more robust solution

Ready for review


[Improvement][!web,*]  Vulnerabilities in dependencies need to be improved

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Vulnerabilities in dependencies need to be improved
all pom.xml
Use case
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

jmx_prometheus_javaagent 0.16.1
CVE: https://github.com/advisories/GHSA-3mc7-4q67-w48m, https://github.com/advisories/GHSA-9w3m-gqgf-c4p9, https://github.com/advisories/GHSA-mjmj-j48q-9wg2
See details in https://github.com/prometheus/jmx_exporter/releases

snakeyaml 1.33
CVE: CVE-2022-1471
See detail in https://bitbucket.org/snakeyaml/snakeyaml/wiki/Changes
Related issues:
https://github.com/StevenBuglione/spring-boot-2-snakeyaml2-upgrade
https://github.com/Tencent/spring-cloud-tencent/issues/982  支持或者兼容 Snakeyaml 2.0
https://blog.csdn.net/LJQClqjc/article/details/128388601  漏洞深度分析|CVE-2022-1471 SnakeYaml 命令执行漏洞
https://blog.csdn.net/weixin_44981472/article/details/131943181  nakeyaml升级2.0版本遇见的坑，解决办法

guava 31.1-jre
CVE: CVE-2023-2976, CVE-2020-8908
See details in https://github.com/google/guava/releases


Export more Node tests for use in public API

After #49929, we will expect downstream users to use more node tests when visiting the AST; isExpression is one function that is very commonly used in our own transforms and likely should be exported.
I'm not sure if there are any other tests we should export; probably worth a grep.

Why would we export isExpressionNode? It is kind of an esoteric function, somewhat like isParameterDeclaration, and doesn't make for a good node test.

It's mentioned in isExpression's doc comment.

Should we do the same thing for other aggregate node test functions like isStatementOrBlock, isModuleReference, isJsxChild, isLeftHandSideExpression, isUnaryExpression, isClassElement, isTypeElement, and isObjectLiteralElement (and probably some others I've forgotten)?
Originally, isStatement didn't reference parent pointers, but someone changed that at some point unfortunately, which is why there's now also isStatement. Honestly, I'd rather rename both methods so that isStatement is the non-parent-pointer referencing one.

Yes, definitely; I'm going through now and exporting the ones that are used in visitEachChild, our own transformers, etc.
I'll look into isExpression; probably I can roll that into #52283.

Originally, isStatement didn't reference parent pointers, but someone changed that at some point unfortunately, which is why there's now also isStatement. Honestly, I'd rather rename both methods so that isStatement is the non-parent-pointer referencing one.

By "also isStatement", do you mean isStatementOrBlock?
For now while in draft I just exported isStatement, but what's really interesting to me is that isStatementOrBlock (the "no parent" form) is used in just one place which... immediately casts the result to Statement and ignores the Block part.

I've been meaning to add a separate file like nodeTests.ts for all of the aggregate node tests we want to make public, with its own lint rule that no function in the file can reference .parent.

That's an interesting idea; we already have nodeTests.ts so perhaps we just need to move things there or something.

And if you have a better method you want to do, by all means feel free to do it; I was just sending this PR ASAP just so downstream users have something to use for the new test-requiring stricter API.

Originally, isStatement didn't reference parent pointers, but someone changed that at some point unfortunately, which is why there's now also isStatement. Honestly, I'd rather rename both methods so that isStatement is the non-parent-pointer referencing one.

By "also isStatement", do you mean isStatementOrBlock?
For now while in draft I just exported isStatement, but what's really interesting to me is that isStatementOrBlock (the "no parent" form) is used in just one place which... immediately casts the result to Statement and ignores the Block part.

No, I meant isStatement. IIRC, isStatement used to be what isStatementOrBlock is now, but someone added more logic to it that uses parent pointers, so I added isStatementOrBlock to get back the old logic. Almost all of the public node tests are intended to be used with transforms, and transforms cannot rely on parent pointers. Any node test that does rely on parent pointers can only be safely used against a parse tree node, such as inside the checker.

I was just confused by the sentence:

Originally, isStatement didn't reference parent pointers, but someone changed that at some point unfortunately, which is why there's now also isStatement

As it says "also isStatement" when the first part mentioned that same function; I was just looking for what I was supposed to be modifying, if anything.

I've been meaning to add a separate file like nodeTests.ts for all of the aggregate node tests we want to make public, with its own lint rule that no function in the file can reference .parent.

That's an interesting idea; we already have nodeTests.ts so perhaps we just need to move things there or something.

I'd prefer to keep single-node tests in a separate file from aggregate node tests so I can eventually write lint rules to enforce their structure and avoid issues like the change that spurred the creation of isStatementOrBlock.

As it says "also isStatement" when the first part mentioned that same function; I was just looking for what I was supposed to be modifying, if anything.

Ah, I missed that bit. I've edited my comment to reference the correct function.

Some node tests we're not exporting, but should, include:

isClassElement
isTypeElement
isObjectLiteralElement
isDeclaration

The first three are already exported, but let me export isDeclaration.

Aside from my comment on isDeclaration, this looks fine.


V2: Ideas

Replace deep_merge within Vagrantfile
One repository for Debian and Ubuntu (1 branch for distributon version)
Remove Legacycode as renamed folder logic
Make application based roles, to prevent having application code in other roles

debian: todo
ubuntu: https://github.com/vagrant-php/ubuntu


Path Not Found error when running the app using smart-form-renderer version >= 0.31.2

Describe the bug
I update smart-form renderer to latest version (0.33.1) in my app, when I run my app I got path not found error:

location where path is not found:

look at the node_modules, smart-form-renderer build using pascal case (StorybookWrappers) instead of camel case (storybookWrappers):

To Reproduce
node version: 18.17.1
yarn version: 1.22.19
app build using CRA
install @aehrc/smart-forms-renderer to the app
yarn add @aehrc/smart-forms-renderer

import SmartFormsRenderer from @aehrc/smart-forms-renderer
import { SmartFormsRenderer } from '@aehrc/smart-forms-renderer';

use SmartFormsRenderer component in the app
return (
  <SmartFormsRenderer
    questionnaire={questionnaire}
  />
)

run the app
yarn start

Expected behavior
After I updated smart-form-renderer my app still running properly with no error come from smart-form-renderer module

Hi @basilmdrecords, thanks for raising this.
I've cleaned up the /lib folder and re-published. Can you try out the latest version v0.34.2?
I indeed changed StorybookWrappers to storybookWrappers a couple minor versions ago. I think the issue was that the ts compilation didn't clean up the old StorybookWrappers folder and assumed it was the same folder to write to.
Let me know how it goes.

thank you.. it's fixed

@ir4y I believe this is the issue you are facing. I have cleaned it up for versions >0.34.x.
Try out the latest versions - 0.35.6 or 0.35.5.


Throttle callback query

Add callback query to Throttling manager eg. https://github.com/AudDMusic/python-bot/blob/6ac44ed8bc3bdcc05518134625bd40bb4b428e94/telegram/middlewares/throttling/buttons.py

Done.
TODO: refactoring Throttling middleware class.


Update README.md

Summary
FutureWarning
Details and comments
FutureWarning: adjacency_matrix will return a scipy.sparse array instead of a matrix in Networkx 3.0.  w = nx.adjacency_matrix(graph)
#pip install scipy -U (>=scipy-1.8.0)
#pip install networkx -U (>=networkx-2.8)

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

I see this is your first PR here. Its going to be helpful to outline/explain in the PR here your rationale for the change for the maintainers here. The summary and details were left blank. And eventually the change would just be the new code and any new comment/explanation if applicable, and not keep old code there etc commented out.

Thanks,
FutureWarning: adjacency_matrix will return a scipy.sparse array instead of a matrix in Networkx 3.0.  w=nx.adjacency_matrix(graph).

The sample in the readme is checked under CI to ensure it continues to work. With the above change it fails under Python 3.7

      File "/home/runner/work/qiskit-optimization/qiskit-optimization/test/test_readme_sample.py", line 62, in test_readme_sample
    self.fail(str(ex))

      File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/unittest/case.py", line 693, in fail
    raise self.failureException(msg)

    AssertionError: module networkx has no attribute to_scipy_sparse_array

as the latest networkx 2.8 requires Python 3.8 and above, so under 3.7 pip falls back to installing an older networkx where 3.7 was still supported.
As far as I can see the future warning just says that the return type is going to be switched from a matrix to an array to presumably notify anyone that may need to adapt their code. It seems that here its fine with the matrix, and also the array since you did that explicitly and the code still works ok. So when the adjacency_matrix code is changed from matrix to array in 3.0 the above should still work fine. I cannot see any other deprecation warning to suggest the adjacency_matrix  function is going away. Given the issue with 3.7 and the fact that it seems the code will continue to work I am wondering if there is really any need to do anything at present. @t-imamichi Any thoughts?

The sample in the readme is checked under CI to ensure it continues to work. With the above change it fails under Python 3.7

      File "/home/runner/work/qiskit-optimization/qiskit-optimization/test/test_readme_sample.py", line 62, in test_readme_sample
    self.fail(str(ex))

      File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/unittest/case.py", line 693, in fail
    raise self.failureException(msg)

    AssertionError: module networkx has no attribute to_scipy_sparse_array

as the latest networkx 2.8 requires Python 3.8 and above, so under 3.7 pip falls back to installing an older networkx (2.6.3) where 3.7 was still supported and where that function does not exist.
As far as I can see the future warning just says that the return type is going to be switched from a matrix to an array to presumably notify anyone that may need to adapt their code. It seems that here its fine with the matrix, and also the array since you did that explicitly and the code still works ok. So when the adjacency_matrix code is changed from matrix to array in 3.0 the above should still work fine. I cannot see any other deprecation warning to suggest the adjacency_matrix function is going away. Given the issue with 3.7 and the fact that it seems the code will continue to work I am wondering if there is really any need to do anything at present. @t-imamichi Any thoughts?

Although the old code remains in place, for those who make updates every day, you can add the new code as an explanation underneath so that they are saved in the search for code for the update.

Although the old code remains in place, for those who make updates every day, you can add the new code as an explanation underneath so that they are saved in the search for code for the update.

I think all the future warning says is that the return type will change. The new code will be what the adjacency_matix call will become internally, as far as I can tell, from the networkx source code. So the code as it was works now, and will work in the future. Its just that at present it also has the warning about the upcoming change - I expect in 3.0 the warning will be removed and the function internally will call the new ...sparse_array method instead of ...sparse_matrix. There is a TODO in the networkx code around that change. So in practice this change will make no difference and this sample will continue to work, just as it works now, as you show. Perhaps in a code sample,  having the future warning being emitted, may cause concern, as I guess it did for you. A comment could be added to note this perhaps. But since Qiskit supports 3.7 still whatever is done this sample has to work there as well. Lets see what @t-imamichi thoughts are too.

Although the old code remains in place, for those who make updates every day, you can add the new code as an explanation underneath so that they are saved in the search for code for the update.

I think all the future warning says is that the return type will change. The new code will be what the adjacency_matix call will become internally, as far as I can tell, from the networkx source code. So the code as it was works now, and will work in the future. Its just that at present it also has the warning about the upcoming change - I expect in 3.0 the warning will be removed and the function internally will call the new ...sparse_array method instead of ...sparse_matrix. There is a TODO in the networkx code around that change. So in practice this change will make no difference and this sample will continue to work, just as it works now, as you show. Perhaps in a code sample, having the future warning being emitted, may cause concern, as I guess it did for you. A comment could be added to note this perhaps. But since Qiskit supports 3.7 still whatever is done this sample has to work there as well. Lets see what @t-imamichi thoughts are too.

In a few months, everyone will inevitably have to change. Until then, you can postpone it. You'll change it when the time comes.

Thank you for the heads up about FutureWarning of networkx. The example uses networkx to just generate an adjacency matrix.
It's easy to replace that part without using networkx.
I made a PR to do that. https://github.com/Qiskit/qiskit-optimization/pull/365

@WhiteSymmetry What do you think of #365?

In a few months, everyone will inevitably have to change. Until then, you can postpone it. You'll change it when the time comes.

Just to comment to this. As far as I can see no change is needed at all. The code works now and will work in the future when adjacency_matrix return is changed (you proved that by doing explicitly what I believe what adjacency_matrix will be become in 3.0 when its return type is changed). The fact is that the code does not depend on matrix, or sparse array as the return type and works with either as you showed. Networkx is issuing a warning now in case you do.
Anyway @t-imamichi provided an alternative that avoids using a graph package altogether which maybe nicer as it uses a docplex model.

@WhiteSymmetry Do you have any comment on #365?  If not, I will merge #365 and close this PR.

@WhiteSymmetry Do you have any comment on #365? If not, I will merge #365 and close this PR.

no comment


Generalize functions starting with s and t

Summary
Generalizes functions starting with s and t. All trace_*_quad_form functions are also optimized by replacing trace(multiply(A,B)) with transpose(A).cwiseProduct(B).sum().
Tests
This is just a refactor. No new tests.
Side Effects
None.
Release notes
Generalized functions starting with s and t.
Checklist

[x] Math issue #1470

[x] Copyright holder: Tadej Ciglarič
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

@serban-nicusor-toptal I think Jenkins has some problems with windows workers here.

Hmm, maybe its not limited to windows.

Restart Stage sometimes fails to work, I restarted the entire job.

@SteveBronder @andrjohns This one is also waitinig for a review.


Are weights other than imagenet used?

Hi,
I'm interested in:
https://huggingface.co/timm/tf_efficientnet_b7.ns_jft_in1k
The efficientnet model is available in keras, but I'm interested in the advanced pretrained weights used here.
When I load kimm.models.EfficientNetB7(), I get
Downloading data from https://github.com/james77777778/keras-image-models/releases/download/0.1.0/efficientnetb7_tf_efficientnet_b7.ns_jft_in1k.keras
Which seems great to me as tf_efficientnet_b7.ns_jft_in1k is what I'm interested in.
In this repo kimm/_src/models/efficientnet.py I see
class EfficientNetB7(EfficientNetVariant):
available_weights = [
(
"imagenet",
EfficientNet.default_origin,
"efficientnetb7_tf_efficientnet_b7.ns_jft_in1k.keras",
)
]
But I can't kimm.models.EfficientNetB7("efficientnetb7_tf_efficientnet_b7.ns_jft_in1k.keras")
It tells me the only weights available are "imagenet"
And I only see
add_model_to_registry(EfficientNetB7, "imagenet")
I'm assuming you loaded EfficientNetB7 with tf_efficientnet_b7.ns_jft_in1k but mislabeled it as imagenet?
Would be helpful to know which weights I'm actually working with.
Thanks for the awesome work by the way.

Hey @tristandb8
Thanks for your kind words!
Actually, kimm.models.EfficientNetB7() loads "efficientnetb7_tf_efficientnet_b7.ns_jft_in1k". I renamed it to "imagenet" to simplify the naming convention.
You can check this script, which includes a correctness check:
https://github.com/james77777778/keras-image-models/blob/main/tools/convert_efficientnet_from_timm.py
Let me know if you encounter any issues.


[Feature request] is-core-module

Can be easily replaced by importing isBuiltin from node:module
https://nodejs.org/api/module.html#moduleisbuiltinmodulename

@SuperchupuDev I've considered this before. But is-core-module also supports getting built-in modules of a specific Node.js version by passing the second argument. This behavior mismatch could potentially be breaking. I haven't found a sound solution here yet.

Also, the toxic dependency of the is-core-module is hasown, which brings its friend function-bind:
https://npmgraph.js.org/?q=is-core-module

And nolyfill already provides @nolyfill/hasown for hasown's replacement.

i'd consider is-core-module itself toxic too, unless you need the second arg there is no reason for all of this over the platform provided isBuiltin.  Resolve doesn't use it https://github.com/browserify/resolve/blob/fd788d94d037e32d4f4be948e2f7e15f6981f004/lib/sync.js#L106
If you replaced it with a function that throws if the second arg is used, people can decide for themselves.

i'd consider is-core-module itself toxic too, unless you need the second arg there is no reason for all of this over the platform provided isBuiltin. Resolve doesn't use it https://github.com/browserify/resolve/blob/fd788d94d037e32d4f4be948e2f7e15f6981f004/lib/sync.js#L106

@dominikg
I agree with you that is-core-module is indeed toxic. But the @nolyfill/is-core-module has to completely override every is-core-module (if we do conditional override, people will end up having both @nolyfill/is-core-module and is-core-module inside their node_modules). The resolve doesn't use the second argument, but other dependents might.

there are very few uses of it with the second argument set on github, and all but one of them set it to a very high version to get 'latest' info
https://github.com/search?q=%2F(%3F-i)(%3F%3AisCore|isCoreModule|isBuiltinModule)\([^\)]%2B\%2C[^\)]%2B\)\)%2F+AND+(language%3AJavaScript+OR+language%3ATypeScript+)&type=code&p=2
(names found via https://github.com/search?q=%2F['"]is-core-module['"]%2F+AND+(language%3AJavaScript+OR+language%3ATypeScript+)&type=code&p=2 )
i think it would be pretty safe to even just ignore the second arg instead of throwing an exception.

oh, you could also make this a 2 for 1 by going after https://www.npmjs.com/package/is-builtin-module too

oh, you could also make this a 2 for 1 by going after https://www.npmjs.com/package/is-builtin-module too

@dominikg IMHO we should not override is-builtin-module:

It leaves very little footprint in the node_modules

Installation size 7.7 KiB with 2 packages: https://pkg-size.dev/is-builtin-module

It is modern

It is even an ESM-only package

It even promotes module.isBuiltin API in its README.

7.7kb is still a lot more than the native function.
would it be possible to cut a new major to bump min node or have nolyfill18 so that you can reduce it to a single call?

Would it be possible to cut a new major to bump min node or have nolyfill18 so that you can reduce it to a single call?

The discussion about bumping the minimum supported Node.js version is here: https://github.com/SukkaW/nolyfill/issues/63
Also, I noticed that Node.js implements module.isBuiltin in JS under the hood when implementing @nolyfill/is-core-module, so technically module.isBuiltin does not have less function invocation.


Keeping api keys in secrets.

Hello, first of all i wanted to thank you for making this plugin (Been needing this for a while haha).
I wanted to ask if there is a way to create the key list or just 1 key in a secret when using k8s for example.
Atm i saw it's in simple text which can compromise the application.
Ty very much for the contribution!

Hey @benshalev849
The Middleware CRD is written by Traefik, unfortunately when writing a plugin you have no control over it. I saw this issue on Traefik a while ago but it looks like it was closed as stale.
Personally we use Helm with the Helm Secrets plugin to store the API keys encrypted with SOPS in the chart when deploying the middleware.
It should be possible to use the Kubernetes Go SDK to make an API call and get the secret in the plugin code itself, but I don't have the time right now to have a play with it.

Hello,
looks like the official enterprise plugin uses hashed keys to avoid having them in plain text.
However using something like bcrypt to systematically encrypt incoming key could significantly slow down the credentials check.
If you are interested I could take the time to implement this as a non breaking change.

@thpiron Feel free to raise a PR, thanks for letting me know it does make more sense to hash them, I just needed this functionality quickly.
I'd have time to implement this probably later this month, but if you have time sooner just raise a PR and we can merge it in 👍

@dtomlinson91 open a draft here: #4.
Code is functional, if it's good enough I'll add some unit tests before merging.


fix: Do not ignore routes at i18nextMiddleware level

Fixes #374.

Hi @isaachinman , I however encounter the same issue with a static build (next export). Fallback languages is used (en) before user language is quicly loaded (fr). Any fix so that the client wait for the language to be loaded?

@eric-burel Static exports are not supported as first class by this package. Of course the user language isn't loaded during SSR - the content is static and headers/cookies aren't being checked.

Thanks for the very fast answer. I guess there is no better solution indeed in static mode. I could maybe do smth so that when no language is loaded yet, we display nothing instead of fallbacking to the i18n token name for better UX (text will seem to appear but that's better than flashing the wrong text). I understand that it's outside the scope of this project though.

You can configure the fallback behaviour via react-i18next options, if I recall correctly.
There isn't (and won't ever be) a great "truly static" solution until/unless you adhere strictly to locale subpaths. If you're interested in hearing about experimental work therein, feel free to email me.
That being said, serverless support should come this year.
Good luck!

Thanks! We will probably work more thoroughly on i18n as we plan to move Vulcan framework from Meteor to Next, out-of-the-box i18n is one of our critical features. Right now I am on a project where it's more secondary so I am happy with current version of this lib. It's great despite the complexity of setting up i18n.

According to this doc you can't prevent fallbacking to key, only prevent fallbacking to another language. It sounds weird but that's how it seems to work, worst case scenario is that user will see the i18n key.


adjusted the underline to match the header length.

You can push this commit to your other pull request, #267.


0.1.0-rc2 Community Patch Breaks trading perk profit marking

Appraiser and Whole Seller mark profits within the interface gui. if you bought grain for 10c in a village then go to a town where they will buy grain for 30c, the grains value of 30 will be highlighted in green. This is the behaviour of the base game since 1.2 or 1.3
this is not the case with 0.1.0-rc2 of this mod. i.e. this mod breaks one of the few perks Taleworlds has fixed ;)

i just doublechecked and the fix i'm referring to is part of the 1.3.0 beta

for reference here is what it should look like

nevermind the save i was using must have had issues; wasn't able to reproduce this issue. apologies


Unboxer has an unbustable cache, which can take weeks to clear out

Unboxer has multiple layers of caching.

It has a cache of the Master-Index.xml file (revalidated via etag every five minutes)
It manages an LRU cache directory of downloaded zips from IF Archive (which can be invalidated by changes to the Master-Index.xml file)
The app returns a Cache-Control: max-age header on every response

On error responses (e.g. 404 errors), it uses max-age: 86400 (24 hours)
On OK responses, it uses max-age: 604800 (7 days)

There's an nginx cache in front of the app, caching all that stuff for 1 to 7 days, and passing along the Cache-Control header
There's Cloudflare caching in front of nginx, which therefore also caches everything for 1 to 7 days, and passing along the Cache-Control header.
Client-side browsers (and any proxy the user might have) honors the Cache-Control header, caching everything for 1 to 7 days. For HTML documents, the user can refresh the cache by clicking the refresh button, but there's no easy user-visible way to refresh subresources in the user's browser.

When the IF Archive team updates a zip, they update it in place. In the worst case, this means:

User visits the file on Monday the 1st at noon, priming nginx's cache and Cloudflare's cache.
The file is updated on the IF Archive at 12:01pm.
User visits the file on Monday the 8th at 11:59am, and they happen to hit a Cloudflare endpoint that doesn't have the file cached locally, so it requests the file from nginx, which responds with the old version, caching for seven days.
User visits the file on Monday the 15th at 11:58am, and they get outdated Cloudflare cached content; Cloudflare recommends that the user continue caching for 7 days.
User visits the file on Monday the 15th at noon. Their browser cache is "fresh" and so they get outdated content. They refresh their browser, and the HTML is updated, but subresources are not refreshed.
A user with a fresh cache visits the file on Monday the 22nd at noon. At last, there can be no cache that thinks it's fresh enough to serve this content. Cloudflare now revalidates its cache with nginx, whose cache has long since expired, and, now, finally, fresh content is conveyed to the user.

This would be a very unlucky outcome; but it's still pretty much guaranteed that any updates to a zip file won't be reflected on the unboxer for seven days, if only thanks to nginx caching.

The nginx cache is only for subdomains, so it uses either the nginx or CloudFlare caches, but not both.

Thanks; I updated my description with the full story.
Here are some options for what to do.

We could set HTML to Cache-Control: max-age=0, or at least, a very small number, ensuring that the user's browser will try to contact us for the latest HTML. That's not quite as bad as it seems, because the browser will do a conditional GET request, so nginx will likely just return a 304 Not Modified response.

Alternately, it is possible to purge nginx's cache on an URL-by-URL basis.
The way you do that is to add a secret proxy_cache_bypass header. https://serverfault.com/questions/493411/how-to-delete-single-nginx-cache-file
proxy_cache_bypass $http_x_b2ca678b4c936f905fb82f2733f5297f;

curl -s -o /dev/null  -H "X-b2ca678b4c936f905fb82f2733f5297f: 1" "https://23nwbwjk2e.unbox.ifarchive.org/23nwbwjk2e/www/index.html"

Since the nginx configuration is currently being generated by nginx.sh, we can keep the key secret in the production options.json.
When it's time to purge nginx's cache, we can fetch those URLs with the bypass header.
But, this is much more complicated than just setting max-age=0, and, if we continue to use max-age=604800, the user's browser will still try to cache files for 7 days.

As for Cloudflare, since the subresources are the target of a 301 redirect, we could add a cache key as an URL parameter.
For example, currently we redirect from https://23nwbwjk2e.unbox.ifarchive.org/23nwbwjk2e/www/audio/bgm/Theme1.ogg to https://unbox.ifarchive.org/23nwbwjk2e/www/audio/bgm/Theme1.ogg, with no Cache-Control header on the redirect.
We could instead do a 302 redirect, Cache-Control: max-age=0, and make the destination be https://unbox.ifarchive.org/23nwbwjk2e/www/audio/bgm/Theme1.ogg?hash=98487658efd7b63f3e3cf237522bcae7, Cache-Control: max-age=31536000 (1 year). If Theme1.ogg ever changes, we'll use a different URL for it, ensuring that the user gets fresh content.

Alternately, Cloudflare has an API to purge files from its cache. https://developers.cloudflare.com/api/operations/zone-purge
It requires a secret key, and I think it might be complicated to compute exactly which URLs need to be purged, so I like this idea slightly less.


Automated deployment of the web content

Rather than rebuilding the public content manually each time updates are made, it would be good to set up automatic deployment. See: http://gohugo.io/tutorials/automated-deployments/ for a suggested method.

Also see:

http://gohugo.io/tutorials/automated-deployments/
http://discuss.gohugo.io/t/automated-hugo-deployments-anywhere-using-wercker/539
http://jekyllrb.com/docs/deployment-methods/#git_postreceive_hook
http://www.andrewcodispoti.com/deploy-process/

Automated deployment is tricky with the firewall, so at the moment I'm using the method described here:
http://www.andrewcodispoti.com/deploy-process/
This means that within LCP we can build the website with "git push deploy master". I'll look into the automatic deployment when the higher priority things are out of the way...

The current method (laboratory group members manually triggering builds with "git push deploy") meets our needs, so I'm closing this issue.


[Editor type] with_active_layer family of functions → get_active_layer family of functions

(This PR is by @MatthewBlanchard.)

Replaces the Editor::with_active_layer family of functions with a new Editor::get_active_layer family of functions.
Removes now unused Editor glyph editing API's.

@MatthewBlanchard Do you mind if instead of merging from MatthewBlanchard:master, I move commit 2d1908f into a new branch, and then work on nicely separating the different things you changed into different commits?

You'd still be credited for the commits obviously, I'd put you as Author and myself under Co-Authored-By.
A single +582 −658 to the source code and not data files is a little big for me to merge.

That's fine by me

OK, closing this then :)


Data sidebar blank upon returning from download manager

What Happened
From user report (thanks @jwrcoleman !):

When I go back and from the download manager to the map, the data sidebar ends up blank.

What Should Happen
The map and data sidebar should retain the previously selected location.
To Reproduce
Still looking for a reliable repro; add details when found.  Initial guess is that this is an issue with frontend states.

Tested on Firefox (88.0.1 (32-bit)). Couldn't reproduce; closing.


Customizable simulator iframe

We would like to customize the makecode-editor-extension and makecode-simulator as provided by jacdac-docs, but we are having trouble making these changes work outside the local environment. The issue seems to be that there isn't yet a way to make the simulator iframe source from a different url.
What changes I have made so far do work locally when using ?localeditorextensions=1&localhostmessagesims=1. Hosting our jacdac-docs fork on github.io in the same manner as microsoft.github.io/jacdac-docs works locally with pxt-microbit when targetconfig.json and simulator.messageSimulators.jacdac.url in pxtarget.json were updated with the fork's url.
Obviously changing the current jacdac url in pxtarget in production for us is out of the question, but there doesn't appear to be an existing way to configure it from the package.
So far I've also tried creating a new item in simulator.messageSimulators and updating our fork of pxt-jacdac to use that as the type/channel, but sendCustomEventAsync checks specifically for a "jacdac" type and therefore throws an error. Given that the simulator is spawned based on the "channel" of the message, I've tried making the extension emmit "jacdac" type messages on a differently named channel but I'm not sure if there's an actual distinction between these fields since they get used Interchangeably.
I'm looking on some guidance on how best make the iframe simulator configurable.

By design, all injected iframe need to be allowed through the pxttarget.json configuration and vetted by the MakeCode team. I would recommend moving this question to the https://github.com/microsoft/pxt-microbit repo.

https://github.com/microsoft/pxt-microbit/issues/4993


withDefaults() infers wrong type when using a default value factory function

Version
3.2.6
Reproduction link
github.com - vue3-issue-default-function-prop
Steps to reproduce
I have the following functions and the same type definitions in service.ts, This function simply returns a string:
export const defaultFunc = function(): string {
    return 'result'
}

export type DefaultFunc = () => string

Then import them in a setup script and set props, defaults using defineProps and withDefault:
<script setup lang="ts">
import { defaultFunc } from './service';
import type { DefaultFunc } from './service';

interface Props {
  fetchData?: DefaultFunc
}

// set default function prop
const props = withDefaults(defineProps<Props>(), {
  fetchData: defaultFunc
});

// print default prop function value
console.log('======> default prop fetchData:', props.fetchData);
</script>

call this component and does not pass the prop fetchData, then check the console output of the web page.
What is expected?
Then console print the function itself:
======> default prop fetchData: ƒ () {
  return "result";
}

What is actually happening?
the console prints the return value of the default function, not the function itself.
======> default prop fetchData: result

How to resolve the issue

Passing in the function when the component is called.

Write directly to the type of the default function instead import it:

<script setup lang="ts">
import { defaultFunc } from './service';

interface Props {
  fetchData?: () => string // <=============== look here
}

const props = withDefaults(defineProps<Props>(), {
  fetchData: defaultFunc
});

console.log('======> default prop fetchData:', props.fetchData);
</script>

Then console will print the function itself correctly:
======> default prop fetchData: ƒ () {
  return "result";
}

Other ways to trigger the issue
Use typeof to get the function type and use it in the props interface:
<script setup lang="ts">
import { defaultFunc } from './service';

interface Props {
  fetchData?: typeof defaultFunc // <=============== look here
}

const props = withDefaults(defineProps<Props>(), {
  fetchData: defaultFunc
});

console.log('======> default prop fetchData:', props.fetchData);
</script>

More information

The default prop function in the <template> correctly returns the function itself.

The same issue occurs when the default prop function return a Promise.

Here is my npx envinfo --binaries --system:

System:
    OS: Windows 10 10.0.18363
    CPU: (8) x64 Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
    Memory: 6.18 GB / 15.77 GB
Binaries:
    Node: 12.16.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.10 - C:\Program Files\nodejs\yarn.CMD
    npm: 6.13.4 - C:\Program Files\nodejs\npm.CMD

the example above was created using yarn create vite with typescript.

This is expected and not related to withDefault() specifically.
Functions as default value will be executed to get the actual default value. This is useful/needed when teh default should be an fresh object for each component instance, for example.
The solution is to wrap the function in another function:
const props = withDefaults(defineProps<Props>(), {
  fetchData: () => defaultFunc
});

Though I can't test it right now and verify that types like that solution as well ...

Ok could test it. Types don't like it.

Thanks for your quick answer!
In general, this truly useful, when I need a string[] prop, ts will prompt me to set a function for default as a factory.
interface Props {
  tags: string[]
}

const props = withDefaults(defineProps<Props>(), {
  tags: () => []
});

Along this line of thinking, I think withDefaults should prompt me to provide a function as the "function factory". But as you can see, withDefaults wants me to provide a function with exactly same type.

And strangely, when I used the import DefaultFunc type in props interafce, default function was executed.
import type { DefaultFunc } from './service';

interface Props {
  fetchData?: DefaultFunc
}

// props.fetchData print "result" on console

But when I replaced DefaultFunc with type () => string, the function was not executed.

interface Props {
  fetchData?: () => string
}

// props.fetchData print f() { return "result" } on console

I can't find difference between them.

Functions as default value will be executed to get the actual default value.

In fact,when prop type is Function,vue will not call the default value,see code.
interface Props {
  fetchData?: () => string
}

// set default function prop
const props = withDefaults(defineProps<Props>(), {
  fetchData: () => '1'
});

So the () => '1' will not be called.

I can't find difference between them.

import type { DefaultFunc } from './service';

interface Props {
  fetchData?: DefaultFunc
}

This is because In the condition, sfc-compiler can not generate the right type,see [code].(https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cbmltcG9ydCB7IGRlZmF1bHRGdW5jIH0gZnJvbSAnLi9zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgRGVmYXVsdEZ1bmMgfSBmcm9tICcuL3NlcnZpY2UnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBmZXRjaERhdGE/OiBEZWZhdWx0RnVuY1xufVxuXG5jb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICBmZXRjaERhdGE6IGRlZmF1bHRGdW5jXG59KTtcblxuY29uc29sZS5sb2coJz09PT09PT4gZGVmYXVsdCBwcm9wIGZldGNoRGF0YTonLCBwcm9wcy5mZXRjaERhdGEpO1xuPC9zY3JpcHQ+Iiwic2VydmljZS50cyI6ImV4cG9ydCBjb25zdCBkZWZhdWx0RnVuYyA9IGZ1bmN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdyZXN1bHQnXG59XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRGdW5jID0gKCkgPT4gc3RyaW5nIn0=)
In the output js code.You can find that the type of fetchData is null rather than Function


How to access child properties?

Thank you very much for providing this package! I have the following problem: I would like to access e.g. property P1033, which is a child of P4952. How can I access this using this library? For example, entity Q49546: when accessing P4952 on Q59546, I only get
"P4952" => Wikidata\Property^ {#576
        +id: "P4952"
        +label: "safety classification and labelling"
        +value: "Regulation (EC) No. 1272/2008, NFPA 704: Standard System for the Identification of the Hazards of Materials for Emergency Response"
      }

without any children (no GHS properties). Trying to access the child properties (P1033) directly on the root entity (Q59546) does not help, as they are not set there. How can I achive this? If this is not yet possible, do you accept PRs?

Hello. Sorry for taking so long to answer, too much to do. As for your question, this version of the library does not really provide access to the sub-properties. Values of all properties come in the form of strings and in the current version it is not possible to get their ID.
I will try in the coming days to find some solution, but I can't promise anything. And if you are still interested in making a PR I will certainly accept it.

No worries, thanks for the answer. I will have time to look into it in ca. 2 weeks and could/will then submit a PR.

@GenieTim I wanted to say thanks for the help! You did a great job, especially with the SPARQL query!
As a result, I had to change the structure a little bit, but I hope now there will be no problems with getting any data.
As for the answer to your initial question, in the new version this can be done like this:
$entity = $wikidata->get('Q49546');

$entity->properties->get('P4952')->values->first(function ($value) {
    return $value->id === 'Q2005334';
})->qualifiers->first(function ($qualifier) {
    return $qualifier->id === 'P1033';
});

And result should be like this:
Qualifier {
  id: "P1033"
  label: "GHS signal word"
  value: "danger"
}


[WIP] docs: RHIDP-1474 Adding OAuth2 proxy as an authentication provider

docs: Adding OAuth2 proxy as an authentication provider
fixes https://issues.redhat.com/browse/RHIDP-1474

Hi @kadel can you have a look at this? The current content is inspired from upstream. I expect the behavior to be different. Can you give me some hints?

Triage: Closing as we do not currently support this.


Better visual feedback when adding photo to thread

done! via https://github.com/textileio/textile-mobile/pull/375


Various debug mode logging improvements

This pull request improves various debug mode related logging:

When debug mode is enabled, also set paramiko and kombu logger level to DEBUG
When disable_logging function is called, actually reset logger levels back to INFO
When debug mode is enabled, don't filter out all log messages using level DEBUG generated by pyamqp, but only the ones generated by heartbit_tick function which is called every 2 seconds. Disabling all the DEBUG messages means we lose some valuable debugging information.

With this stuff I managed to track down root cause for #3290.
The problem is that API starts listening and accepting connections before we fully establish connection to RabbitMQ.
If you check st2api.log you will see that this message is only printed later one, after executions API has already been hit which means first execution will get "stuck" in requested state since it will never actually reach the exchange.
2017-08-03 10:38:30,940<PHONE_NUMBER>77648 DEBUG connection [-] Start from server, version: 0.9, properties: {'information': 'Licensed under the MPL.  See http://www.rabbitmq.com/', 'product': 'RabbitMQ', 'copyright': 'Copyright (C) 2007-2015 Pivotal Software, Inc.', 'capabilities': {'exchange_exchange_bindings': True, 'connection.blocked': True, 'authentication_failure_close': True, 'basic.nack': True, 'per_consumer_qos': True, 'consumer_priorities': True, 'consumer_cancel_notify': True, 'publisher_confirms': True}, 'cluster_name'<EMAIL_ADDRESS>'platform': 'Erlang/OTP', 'version': '3.5.7'}, mechanisms: ['AMQPLAIN', 'PLAIN'], locales: [u'en_US']
2017-08-03 10:38:30,942<PHONE_NUMBER>77648 INFO mixins [-] Connected to amqp://guest:**@<IP_ADDRESS>:5672//


Optimize PopupMenu rendering

As proposed by me in https://github.com/godotengine/godot/issues/13962 . Results look exactly as in the "after" images there (right side). Also "fixed" the node context-menu to still display "Sub-Resources:" on the very left with a negative horizontal offset.

Moved and rewrote measurement related code to a private method which returns a MeasureInfo instance.
Rewrote rendering completely using this info.
Simplified mouse hover item detection using this info.

Some example imagery:

Time to slowly add (new) icons to existing menues without ruining their look when some are still missing... 😎

Since it's a relatively big refactoring, this will have to wait for after Godot 3.0 is released as we're in feature freeze. Looks cool, though :)

That's fine to me! I originally tried to not use the refactored measurement stuff, but not using that typically results in repetitive lengthy code which is hard to change in case something is added / modified in the future.

the only thing i dont like about this is the text alignment for the shortcuts, it was easier to identiffy before. although this is a personal preference i think they are easier to identify and differentiate when using right alignment.

We finally got to check this PR in a review meeting, sorry for the huge delay. We like the new look and the code changes make sense, so could you rebase it against the current master branch?

the only thing i dont like about this is the text alignment for the shortcuts, it was easier to identiffy before. although this is a personal preference i think they are easier to identify and differentiate when using right alignment.

I tend to agree with this, I'm more used to right-aligned accelerators which seem to be the norm in most software I use -- checked in Dolphin and Konsole (Qt 5), Firefox (GTK+3), GIMP (GTK+2).

I'm sorry, at the moment I don't have time left for a rebase :(

Closing as the PR has conflicts and no update so it can't be merged for the time being. It's a nice feature though and a new rebased PR would be welcome, either from OP or from another contributor extending the work in this PR (which is what the salvageable label means).
Thanks for the initial work, I hope it will make it in the master branch eventually.