Problem with ajax-request on https://www.instagram.com/graphql/query/?variables

Please follow the guide below

Issues submitted without this template format will be ignored.
You will be asked some questions and requested to provide some information, please read them carefully and answer completely.
Do not post screenshots of error messages or code.
Put an x into all the boxes [ ] relevant to your issue (like so [x] no spaces).
Use the Preview tab to see how your issue will actually look like.
Issues about reverse engineering is out of scope and will be closed without response.

Before submitting an issue, make sure you have:

[x] Updated to the lastest version v1.5.5
[ ] Read the README and docs
[ ] Searched the bugtracker for similar issues including closed ones
[ ] Reviewed the sample code in tests and examples

Which client are you using?

[ ] app (instagram_private_api/)
[x] web (instagram_web_api/)

Purpose of your issue?

[x] Bug report (encountered problems/errors)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections requests more details for particular types of issues, you can remove any section (the contents between the triple ---) not applicable to your issue.

For a bug report, you must include the Python version used, code that will reproduce the error, and the error log/traceback.
Paste the output of python -V here:
The great library!!!But unfortunately some error occurred now
The same issues as was before https://github.com/ping/instagram_private_api/issues/64, when the parser request with ajax error happened. Looks like Instagram blocked request.
from instagram_web_api import Client, ClientCompatPatch, ClientError, ClientLoginError

web_api = Client(auto_patch=True, drop_incompat_keys=False)

tdm_tag = web_api.tag_feed('python', count=100)

Error/Debug Log:
HTTPError                                 Traceback (most recent call last)
~/VirtEnv/insta_parser/lib/python3.5/site-packages/instagram_web_api/client.py in _make_request(self, url, params, headers, query, return_response, get_method)
    262             self.logger.debug('REQ DATA: {0!s}'.format(data))
--> 263             res = self.opener.open(req, data=data, timeout=self.timeout)
    264

/usr/lib/python3.5/urllib/request.py in open(self, fullurl, data, timeout)
    471             meth = getattr(processor, meth_name)
--> 472             response = meth(req, response)
    473

/usr/lib/python3.5/urllib/request.py in http_response(self, request, response)
    581             response = self.parent.error(
--> 582                 'http', request, response, code, msg, hdrs)
    583

/usr/lib/python3.5/urllib/request.py in error(self, proto, *args)
    509             args = (dict, 'default', 'http_error_default') + orig_args
--> 510             return self._call_chain(*args)
    511

/usr/lib/python3.5/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
    443             func = getattr(handler, meth_name)
--> 444             result = func(*args)
    445             if result is not None:

/usr/lib/python3.5/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
    589     def http_error_default(self, req, fp, code, msg, hdrs):
--> 590         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    591

HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

ClientError                               Traceback (most recent call last)
<ipython-input-16-46f519cb158a> in <module>()
----> 1 tag_feed_info = web_api.tag_feed('python', count=100)

~/VirtEnv/insta_parser/lib/python3.5/site-packages/instagram_web_api/client.py in tag_feed(self, tag, **kwargs)
    807         }
    808
--> 809         return self._make_request(self.GRAPHQL_API_URL, query=query)
    810
    811     def location_feed(self, location_id, **kwargs):

~/VirtEnv/insta_parser/lib/python3.5/site-packages/instagram_web_api/client.py in _make_request(self, url, params, headers, query, return_response, get_method)
    278
    279         except compat_urllib_error.HTTPError as e:
--> 280             raise ClientError('HTTPError "{0!s}" while opening {1!s}'.format(e.reason, url), e.code)
    281         except (SSLError, timeout, SocketError,
    282                 compat_urllib_error.URLError,   # URLError is base of HTTPError

ClientError: HTTPError "Bad Request" while opening https://www.instagram.com/graphql/query/?variables=%7B%22tag_name%22%3A%22python%22%2C%22first%22%3A100%7D&query_hash=ded47faa9a1aaded10161a2ff32abb6b
'''

This was already fixed in 18302d94a514df977f468dfb0572850d80c510b3. You can no longer specify any count parameter greater than 50.


Question : horizontally scrollable table

I understand from Bootstrap documentation that a table within a <div class="table-responsive"> should be horizontally scrollable, but I can't get Pode.Web tables to become scrollable although they are already enclosed in that exact div.
Being a noob at HTML and Bootstrap I am probably missing something obvious, but I would be grateful if you could point me to the right direction.
By the way, I love Pode.Web, thanks for your work.

Off the top of my head, I'm not too sure.
When I get chance, I'll have a look; though I've a feeling there could be a parent div overriding the x-overflow to hide it 🤔

Another user in Discord had the same question, and got it working via -CssStyle. Be interesting to see if it's possible to have this in Pode.Web built in:
New-PodeWebTable -CssStyle @{'display'='block';'overflow-x'='auto';'white-space'= 'nowrap'}

Excellent, that worked like a charm! Many thanks to you and to the Discord contributor.


Implement routing in Inbound traffic in sidecar

Describe the feature request
currently, as far as my understanding, there is no way to configure route (similar to virtual service) in Inbound traffic in the sidecar.
for example, I have this inbound listener
    {
        "name": "<IP_ADDRESS>_8080",
        "active_state": {
            "version_info": "2021-10-27T10:54:47Z/51",
            "listener": {
                "@type": "type.googleapis.com/envoy.config.listener.v3.Listener",
                "name": "<IP_ADDRESS>_8080",
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": 8080
                    }
                },
                "filter_chains": [{
                    "filter_chain_match": {
                        "destination_port": 8080,
                        "transport_protocol": "raw_buffer"
                    },
                    "filters": [
                        {
                            "name": "envoy.filters.network.http_connection_manager",
                            "typed_config": {
                                "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager",
                                "stat_prefix": "inbound_<IP_ADDRESS>_8080",
                                "route_config": {
                                    "name": "inbound|8080||",
                                    "virtual_hosts": [{
                                        "name": "inbound|http|8080",
                                        "domains": [
                                            "*"
                                        ],
                                        "routes": [{
                                            "match": {
                                                "prefix": "/"
                                            },
                                            "route": {
                                                "cluster": "inbound|8080||",
                                                "timeout": "0s",
                                                "max_stream_duration": {
                                                    "max_stream_duration": "0s"
                                                }
                                            },
                                            "decorator": {
                                                "operation": "echo-postgresql.default.svc.cluster.local:8080/*"
                                            },
                                            "name": "default"
                                        }]
                                    }]
                                }
                            }
                        }
                    ]
                }],
                "traffic_direction": "INBOUND"
            }
        }
    }

It will be awesome if we can implement custom routing instead of only providing the default routes in inbound|http|8080 VirtualHost. For example:
{
    "routes": [{
            "match": {
                "prefix": "/api"
            },
            "route": {
                "cluster": "inbound|8080||",
                "timeout": "0s",
                "max_stream_duration": {
                    "max_stream_duration": "0s"
                }
            },
            "decorator": {
                "operation": "echo-postgresql.default.svc.cluster.local:8080/*"
            },
            "name": "api-route"
        },
        {
            "match": {
                "prefix": "/"
            },
            "route": {
                "cluster": "inbound|8080||",
                "timeout": "0s",
                "max_stream_duration": {
                    "max_stream_duration": "0s"
                }
            },
            "decorator": {
                "operation": "echo-postgresql.default.svc.cluster.local:8080/*"
            },
            "name": "default"
        }
    ]
}

I am trying to implement Envoy Local Rate Limit but blocked on this since I cannot specify which path that I want to rate limit. For example:
    - applyTo: HTTP_ROUTE
      match:
        context: SIDECAR_INBOUND
        routeConfiguration:
          vhost:
            name: "inbound|http|8080"
            route:
              name: "api-route"

Describe alternatives you've considered

for rate limit, implement routing inside the rate limit plugin, but it's hard to understand and the filtering is not that good.
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter#using-rate-limit-descriptors-for-local-rate-limiting

Affected product area (please put an X in all that apply)
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context

A workaround here is to create a new Route, for example of I want to rate limit everything but /geton the httpbin service, I can use this Envoy Filter:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: filter-local-ratelimit-svc
  namespace: istio-system
spec:
  workloadSelector:
    labels:
      app: httpbin
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.filters.http.local_ratelimit
          typed_config:
            "@type": type.googleapis.com/udpa.type.v1.TypedStruct
            type_url: type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
            value:
              stat_prefix: http_local_rate_limiter
    - applyTo: HTTP_ROUTE
      match:
        context: SIDECAR_INBOUND
        routeConfiguration:
          vhost:
            name: inbound|http|8000
      patch:
        operation: INSERT_FIRST
        value:
          decorator:
            operation: httpbin.default.svc.cluster.local:8000/*
          match:
            prefix: /get
          name: get
          route:
            cluster: inbound|80||
            max_stream_duration:
              grpc_timeout_header_max: 0s
              max_stream_duration: 0s
            timeout: 0s
    - applyTo: HTTP_ROUTE
      match:
        context: SIDECAR_INBOUND
        routeConfiguration:
          vhost:
            name: inbound|http|8000
            route:
              name: default
      patch:
        operation: MERGE
        value:
          typed_per_filter_config:
            envoy.filters.http.local_ratelimit:
              "@type": type.googleapis.com/udpa.type.v1.TypedStruct
              type_url: type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
              value:
                stat_prefix: http_local_rate_limiter
                token_bucket:
                  max_tokens: 3
                  tokens_per_fill: 3
                  fill_interval: 60s
                filter_enabled:
                  runtime_key: local_rate_limit_enabled
                  default_value:
                    numerator: 100
                    denominator: HUNDRED
                filter_enforced:
                  runtime_key: local_rate_limit_enforced
                  default_value:
                    numerator: 100
                    denominator: HUNDRED
                response_headers_to_add:
                  - append: false
                    header:
                      key: x-local-rate-limit
                      value: 'true'


Update AUR version number

The incorrect version number was causing the package to always try to update in AUR.
fixes #75

Brilliant! Thanks a lot @hausofwong. I'll merge it in a day or two and update the AUR repo.
I'll let you know when it's done.

No problems. Just realized the listed AUR package is already at v3, so we better bump it up just make sure we don't get the same issue again.

Ok, even though it's merged I can't update aur repo yet. Will keep it open for awhile
thanks @hausofwong for the PR


Demo site database error during checkout

DatabaseError at /shop/checkout/
column shop_order.transaction_id does not exist
Looks like you need to run migrations for the cartridge changes from Nov 10.

Thanks Ken, all fixed.


pytorch 2.0 Torch Compiled model error at test_step

Bug description
Error torch._dynamo.exc.BackendCompilerFailed: debug_wrapper raised RuntimeError: Inference tensors do not track version counter.
Error only happened during test step
version
lightning==2.0.0
torch==2.0.0+cu117

the code is inspired by post from: https://lightning.ai/pages/blog/training-compiled-pytorch-2.0-with-pytorch-lightning/
but changing the structure into datamodule and adding test in the trainer
in code below, if
self.model = torch.compile(
            create_model("resnet18", num_classes=10)
        )

is using non compiled model
self.model =  create_model("resnet18", num_classes=10)

will not having this error
How to reproduce the bug
# Full Code:
import torch
import lightning as L
import torchmetrics
import torch.nn as nn
import torchvision
import torchvision.transforms as transforms
from timm import create_model

class CIFAR10DataModule(L.LightningDataModule):

    def __init__(self, batch_size = 32) -> None:
        super().__init__()
        self.transform = transforms.Compose(
            [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]
        )

        self.batch_size = batch_size

        self.train_set = torchvision.datasets.CIFAR10(
            root="~/data", train=True, download=True, transform=self.transform
        )
        self.test_set = torchvision.datasets.CIFAR10(
            root="~/data", train=False, download=True, transform=self.transform
        )

    def train_dataloader(self):
        return torch.utils.data.DataLoader(
            self.train_set, batch_size=self.batch_size, shuffle=True, num_workers=4
        )

    def test_dataloader(self):
        return torch.utils.data.DataLoader(
            self.test_set, batch_size=self.batch_size, shuffle=False, num_workers=4
        )

class LitModel(L.LightningModule):
    def __init__(self):
        super().__init__()
        self.model = torch.compile(
            create_model("resnet18", num_classes=10)
        )
        self.criterion = nn.CrossEntropyLoss()
        self.accuracy_score = torchmetrics.Accuracy(
            task="multiclass", num_classes=10
        )

    def forward(self, x):
        return self.model(x)

    def common_step(self, x, y, stage):
        logits = self.model(x)
        loss = self.criterion(logits, y)
        acc = self.accuracy_score(logits, y)
        self.log(
            f"{stage}_loss", loss, on_epoch=True, prog_bar=True, logger=True
        )
        self.log(
            f"{stage}_acc", acc, on_epoch=True, prog_bar=True, logger=True
        )
        return loss, acc

    def training_step(self, batch, batch_idx):
        x, y = batch
        loss, acc = self.common_step(x, y, "train")
        return loss

    def test_step(self, batch, batch_idx):
        x, y = batch
        loss, acc = self.common_step(x, y, "test")
        return {"test_loss": loss, "test_acc": acc}

    def configure_optimizers(self):
        return torch.optim.Adam(self.model.parameters(), lr=0.001)

def main():
    datamodule = CIFAR10DataModule()
    model = LitModel()
    trainer = L.Trainer(
        max_epochs=3,
        devices="auto",
    )
    trainer.fit(model, datamodule=datamodule)
    test_result = trainer.test(ckpt_path="best", datamodule=datamodule)
    print(test_result)

if __name__ == "__main__":
    main()

Error messages and logs
# Error messages and logs here please

(venv) (base) ?  appadmin@gcp-rpamr-01  ~/development-model-retrain git:(update-torch) ? python test_torch20.py
Files already downloaded and verified
Files already downloaded and verified
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]

  | Name           | Type               | Params
------------------------------------------------------
0 | model          | OptimizedModule    | 11.2 M
1 | criterion      | CrossEntropyLoss   | 0
2 | accuracy_score | MulticlassAccuracy | 0
------------------------------------------------------
11.2 M    Trainable params
0         Non-trainable params
11.2 M    Total params
44.727    Total estimated model params size (MB)
Epoch 2: 100%|█| 1563/1563 [00:31<00:00, 49.39it/s, v_num=1, train_loss_step=0.539, train_acc_step=0.812, train_loss_epo`Trainer.fit` stopped: `max_epochs=3` reached.
Epoch 2: 100%|█| 1563/1563 [00:32<00:00, 48.78it/s, v_num=1, train_loss_step=0.539, train_acc_step=0.812, train_loss_epo
Restoring states from the checkpoint path at /home/appadmin/development-model-retrain/lightning_logs/version_1/checkpoints/epoch=2-step=4689.ckpt
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Loaded model weights from the checkpoint at /home/appadmin/development-model-retrain/lightning_logs/version_1/checkpoints/epoch=2-step=4689.ckpt
Testing DataLoader 0:   0%|                                                                     | 0/313 [00:00<?, ?it/s]Failed to collect metadata on function, produced code may be suboptimal.  Known situations this can occur are inference mode only compilation involving resize_ or prims (!schema.hasAnyAliasInfo() INTERNAL ASSERT FAILED); if your situation looks different please file a bug to PyTorch.
Traceback (most recent call last):
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 1674, in aot_wrapper_dedupe
    fw_metadata, _out = run_functionalized_fw_and_collect_metadata(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 606, in inner
    flat_f_outs = f(*flat_f_args)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 2776, in functional_call
    out = Interpreter(mod).run(*args[params_len:], **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 136, in run
    self.env[node] = self.run_node(node)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 177, in run_node
    return getattr(self, n.op)(n.target, args, kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 294, in call_module
    return submod(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/nn/modules/linear.py", line 114, in forward
    return F.linear(input, self.weight, self.bias)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_inductor/overrides.py", line 38, in __torch_function__
    return func(*args, **kwargs)
RuntimeError: Inference tensors do not track version counter.

While executing %self_fc : [#users=1] = call_module[target=self_fc](args = (%self_global_pool_flatten,), kwargs = {})
Original traceback:
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 727, in forward_head
    return x if pre_logits else self.fc(x)
 |   File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 731, in forward
    x = self.forward_head(x)

Traceback (most recent call last):
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/output_graph.py", line 670, in call_user_compiler
    compiled_fn = compiler_fn(gm, self.fake_example_inputs())
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/debug_utils.py", line 1055, in debug_wrapper
    compiled_gm = compiler_fn(gm, example_inputs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/__init__.py", line 1390, in __call__
    return compile_fx(model_, inputs_, config_patches=self.config)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_inductor/compile_fx.py", line 455, in compile_fx
    return aot_autograd(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/backends/common.py", line 48, in compiler_fn
    cg = aot_module_simplified(gm, example_inputs, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 2805, in aot_module_simplified
    compiled_fn = create_aot_dispatcher_function(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/utils.py", line 163, in time_wrapper
    r = func(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 2498, in create_aot_dispatcher_function
    compiled_fn = compiler_fn(flat_fn, fake_flat_args, aot_config)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 1802, in aot_wrapper_dedupe
    compiled_fn = compiler_fn(wrapped_flat_fn, deduped_flat_args, aot_config)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 1278, in aot_dispatch_base
    _fw_metadata, _out = run_functionalized_fw_and_collect_metadata(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 606, in inner
    flat_f_outs = f(*flat_f_args)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 1800, in wrapped_flat_fn
    return flat_fn(*add_dupe_args(args))
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_functorch/aot_autograd.py", line 2776, in functional_call
    out = Interpreter(mod).run(*args[params_len:], **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 136, in run
    self.env[node] = self.run_node(node)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 177, in run_node
    return getattr(self, n.op)(n.target, args, kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/fx/interpreter.py", line 294, in call_module
    return submod(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/nn/modules/linear.py", line 114, in forward
    return F.linear(input, self.weight, self.bias)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_inductor/overrides.py", line 38, in __torch_function__
    return func(*args, **kwargs)
RuntimeError: Inference tensors do not track version counter.

While executing %self_fc : [#users=1] = call_module[target=self_fc](args = (%self_global_pool_flatten,), kwargs = {})
Original traceback:
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 727, in forward_head
    return x if pre_logits else self.fc(x)
 |   File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 731, in forward
    x = self.forward_head(x)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/appadmin/development-model-retrain/test_torch20.py", line 94, in <module>
    main()
  File "/home/appadmin/development-model-retrain/test_torch20.py", line 90, in main
    test_result = trainer.test(ckpt_path="best", datamodule=datamodule)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 706, in test
    return call._call_and_handle_interrupt(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/call.py", line 44, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 749, in _test_impl
    results = self._run(model, ckpt_path=ckpt_path)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 935, in _run
    results = self._run_stage()
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 971, in _run_stage
    return self._evaluation_loop.run()
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/loops/utilities.py", line 174, in _decorator
    return loop_run(self, *args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/loops/evaluation_loop.py", line 115, in run
    self._evaluation_step(batch, batch_idx, dataloader_idx)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/loops/evaluation_loop.py", line 375, in _evaluation_step
    output = call._call_strategy_hook(trainer, hook_name, *step_kwargs.values())
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/trainer/call.py", line 288, in _call_strategy_hook
    output = fn(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/lightning/pytorch/strategies/strategy.py", line 387, in test_step
    return self.model.test_step(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/test_torch20.py", line 75, in test_step
    loss, acc = self.common_step(x, y, "test")
  File "/home/appadmin/development-model-retrain/test_torch20.py", line 57, in common_step
    logits = self.model(x)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/eval_frame.py", line 82, in forward
    return self.dynamo_ctx(self._orig_mod.forward)(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/eval_frame.py", line 209, in _fn
    return fn(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/eval_frame.py", line 337, in catch_errors
    return callback(frame, cache_size, hooks)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py", line 404, in _convert_frame
    result = inner_convert(frame, cache_size, hooks)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py", line 104, in _fn
    return fn(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py", line 262, in _convert_frame_assert
    return _compile(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/utils.py", line 163, in time_wrapper
    r = func(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py", line 324, in _compile
    out_code = transform_code_object(code, transform)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/bytecode_transformation.py", line 445, in transform_code_object
    transformations(instructions, code_options)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/convert_frame.py", line 311, in transform
    tracer.run()
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/symbolic_convert.py", line 1726, in run
    super().run()
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/symbolic_convert.py", line 576, in run
    and self.step()
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/symbolic_convert.py", line 540, in step
    getattr(self, inst.opname)(inst)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/symbolic_convert.py", line 1792, in RETURN_VALUE
    self.output.compile_subgraph(
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/output_graph.py", line 517, in compile_subgraph
    self.compile_and_call_fx_graph(tx, list(reversed(stack_values)), root)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/output_graph.py", line 588, in compile_and_call_fx_graph
    compiled_fn = self.call_user_compiler(gm)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/utils.py", line 163, in time_wrapper
    r = func(*args, **kwargs)
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/torch/_dynamo/output_graph.py", line 675, in call_user_compiler
    raise BackendCompilerFailed(self.compiler_fn, e) from e
torch._dynamo.exc.BackendCompilerFailed: debug_wrapper raised RuntimeError: Inference tensors do not track version counter.

While executing %self_fc : [#users=1] = call_module[target=self_fc](args = (%self_global_pool_flatten,), kwargs = {})
Original traceback:
  File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 727, in forward_head
    return x if pre_logits else self.fc(x)
 |   File "/home/appadmin/development-model-retrain/venv/lib/python3.9/site-packages/timm/models/resnet.py", line 731, in forward
    x = self.forward_head(x)

You can suppress this exception and fall back to eager by setting:
    torch._dynamo.config.suppress_errors = True

Testing DataLoader 0:   0%|          | 0/313 [00:01<?, ?it/s]
(venv) (base) ?  appadmin@gcp-rpamr-01  ~/development-model-retrain git:(update-torch) ?

Environment

Current environment
#- Lightning Component (e.g. Trainer, LightningModule, LightningApp, LightningWork, LightningFlow): LightningModule, LightningDataModule
#- PyTorch Lightning Version (e.g., 1.5.0): 2.0.0
#- Lightning App Version (e.g., 0.5.2):
#- PyTorch Version (e.g., 2.0): 2.0.0+cu117
#- Python version (e.g., 3.9): 3.9
#- OS (e.g., Linux): Ubuntu 22.04.2 LTS x86_64
#- CUDA/cuDNN version: 11.7
#- GPU models and configuration: NVIDIA Tesla T4
#- How you installed Lightning(`conda`, `pip`, source): pip
#- Running environment of LightningApp (e.g. local, cloud): Google Compute Engine

More info
No response
cc @tchaton

This seems to be problem on pytorch side https://github.com/pytorch/pytorch/issues/93042#issuecomment-1410954858
One way to temporary fix it would be to change
_no_grad_context(loop_run: Callable) -> Callable: in lightning.pytorch.loops.utlities
to
def _no_grad_context(loop_run: Callable) -> Callable:
    def _decorator(self: _Loop, *args: Any, **kwargs: Any) -> Any:
        if not isinstance(self, _Loop):
            raise TypeError(f"`{type(self).__name__}` needs to be a Loop.")
        if not hasattr(self, "inference_mode"):
            raise TypeError(f"`{type(self).__name__}.inference_mode` needs to be defined")
        context_manager: Type[ContextManager]
        if dist.is_available() and dist.is_initialized() and dist.get_backend() == "gloo":
            # gloo backend does not work properly.
            # https://github.com/Lightning-AI/lightning/pull/12715/files#r854569110
            # TODO: explore why and possibly open an issue in PyTorch repository
            context_manager = torch.no_grad
        elif isinstance(self.trainer.accelerator, TPUAccelerator):
            context_manager = torch.no_grad
        elif _TORCH_GREATER_EQUAL_1_13 and isinstance(self.trainer.strategy, FSDPStrategy):
            # https://github.com/pytorch/pytorch/issues/95957
            context_manager = torch.no_grad
        elif self.inference_mode:
            #CHANGE HERE inference mode to no_grad, which creates version counters
             context_manager = torch.no_grad
        else:
            context_manager = torch.no_grad
        with context_manager():
            return loop_run(self, *args, **kwargs)

    return _decorator

Opened #17215 to fix this issue. As a workaround, you can do Trainer(inference_mode=False)


Using PM2 css not loaded

I try to install on my server. the service using pm2, using <IP_ADDRESS>:8080 and create virtualhost so i can access using my subdomain.
but all the css and js not loaded, and return
{"code":"ResourceNotFound","message":"/css/bootstrap.min.css"}
when i try to access directly.
and when i try to change service on the chrome extension the domain became red.
how can i tell the service is working?
the pm2 log show only this
xBrowserSync-API started on <IP_ADDRESS>:8080 ...

never mind, all i need to change is process.env.XBROWSERSYNC_DB_USER & process.env.XBROWSERSYNC_DB_PWD at the config.js

Hi @aphe, glad you solved your issue. I do recommend you run v1.1.0 as the dependencies have been updated and it supports running the service over HTTPS. I'm currently testing before upgrading https://api.xbrowsersync.org and merging to master, but if you do find any issues please raise them here.

v.1.1.0 is beautifull.
is there a plan to support browser history as well?

is there a plan to support browser history as well?

It's been requested here, if it's something you're interested in please do register your feedback on the issue!


GMBH

This package doesn't seem to be working on the German GMBH

Seems to be working for me at least for simple examples:
[ins] In [4]: basename("foot GMBH")
Out[4]: 'foot'

[ins] In [5]: basename("foot gmbh")
Out[5]: 'foot'

Thanks ronarbo, it was entirely my mistake, I had one case of G M B H, which, I suppose, the package would not pick up, and I had another case that was resolved by running basename() twice, as the documentation suggests. My apologies for not marking this as resolved, and thanks again for looking into this.


Fix concurrency issue with TimeSeriesUploadQueue

If a new time series is added during the list comprehension in upload()
the iterator for the dict view will fail. Move everything inside lock.

Use with self.lock?

Yes, I'm planning to go through the entire lib and do that throughout.


Refactor thriftCodecToCompressionKind() utility function

Refactor thriftCodecToCompressionKind() utility function in ParquetReaderUtil.h/ParquetReaderUtil.cpp.

@majetideepak @czentgr Please take a look.

@pdabre12 Please run make format-fix. The pipeline fails in the format-check phase.


[BUG] DrCIF failure due to single class in sub-sample

DrCIF fails stochastically under windows, on test_contracted_drcif, the line assert len(drcif.estimators_) > 1, because drcif.estimators_ ends up having length 1.
Do you have an idea what is going on here, @MatthewMiddlehurst?
We are fixing the random seed, but the resulting samples might change with versions of the underlying packages or the operating system.
Example here: https://github.com/alan-turing-institute/sktime/runs/7706482325?check_suite_focus=true

Update: I think this is the single class problem again, when the sklearn estimators are being used as components in re-samples.


cannot open KCV in windows 10

ERROR, date = 2015-08-10 6:26:38 PM -07:00, sender = System.Windows.Threading.Dispatcher,
System.IO.FileLoadException: Could not load file or assembly 'Counter, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'Counter, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at System.ComponentModel.Composition.Hosting.AssemblyCatalog.LoadAssembly(String codeBase)
at System.ComponentModel.Composition.Hosting.AssemblyCatalog..ctor(String codeBase)
at Grabacr07.KanColleViewer.Composition.PluginService.Initialize()
at Grabacr07.KanColleViewer.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<_ctor>b__0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)


Update sdkconfig.defaults

@fh5201 Please avoid submitting your pull requests for testing in the espressif/esp-at project. Instead, we kindly ask that you make them under your own fh5201/esp-at project.
Thank you for your understanding and cooperation.


Send resp immediately on GET /events

Fixes #14354

@cpuguy83 the test failing might be legit. Do you mind to check?

Yeah, this is a racey test, I've seen it fail in other cases randomly as well.

LGTM
Not sure why we including this to 1.7.1, but ok.

@LK4D4 I didn't test against 1.6, but it was reported as a regression is all.

Yeah, confirmed 1.6.2 has this behavior.

LGTM

Cherry picked into #14264

@icecrime, @cpuguy83 I've removed this PR from the release. Tests were failing intermittently and it's not a regression. We can consider adding it later if we strongly feel like it must go into the release.

Curious, this test is failing intermittently or something else?

yes, this test.


LocalDateTime not work in Apache Camel quarkus

Bug description
Hello guys, please help, I have my pod made in Quarkus with Apache Camel and native mode, I have an issue with my pod, since it is not updating the record of my logs with the current date, for example I have this in my route :
.log("\n["+getCurrentDateTime()+"]")
but I see that the date that the log gives me is the exact date on which the pod was created, and it does not change for each request, additionally I leave you this function
private Timestamp getCurrentDateTime() {
    LocalDateTime now = LocalDateTime.now();
    return Timestamp.valueOf(now);
}

I don't know if there are incompatibility issues with camel, I read that I can use this ${date:now:yyyyMMdd}, but my code is already in a testing environment and I want to know if there is any reason to see this strange behavior and if it can be solved.

Thanks for the report @brianmolinaspring!
I think the behavior would be the same in JVM mode. Your getCurrentDateTime() method is simply called only once on route creation.
To reach what you want, you might use something like the following:
.log("${bean:myBean.getCurrentDateTime()}")

@Named("myBean")
@RegisterForReflection
class MyBean {
  private Timestamp getCurrentDateTime() {
     LocalDateTime now = LocalDateTime.now();
      return Timestamp.valueOf(now);
  }
}

ok friend, thanks for answering, with this every time I call the log does the log update? What makes it different is the annotation?

What makes it different is the annotation?

The main difference is that with .log("${bean:myBean.getCurrentDateTime()}") you pass an expression that will be evaluated on each call rather than a value obtained at route creation.

thanks, @ppalaga , your support helped me

Happy to hear that!


fix: improve warning for both token & credential-provider

Cargo issues a warning when both a credential-provider and a token are configured for a registry.
This change removes the warning if the credential-provider is cargo:token since that will use the token. The warning message text is also tweaked to include the name of the credential-provider that's overriding the token.

:pushpin: Commit 3f004c613c426e76131aa483fdcb4136cf9cfb1a has been approved by weihanglo
It is now in the queue for this repository.

:hourglass: Testing commit 3f004c613c426e76131aa483fdcb4136cf9cfb1a with merge d9a4cf1938a9a1fd9f47704fe627ce8e0e3fb2fc...

:sunny: Test successful - checks-actions
Approved by: weihanglo
Pushing d9a4cf1938a9a1fd9f47704fe627ce8e0e3fb2fc to master...

:sunny: Test successful - checks-actions
Approved by: weihanglo
Pushing d9a4cf1938a9a1fd9f47704fe627ce8e0e3fb2fc to master...

:eyes: Test was successful, but fast-forwarding failed: 422 Changes must be made through a pull request.


[Suggestion] Shield Entirely Blocks Ravager Hits

one of the ravager's mechanics revolves around the shield blocking all the damage from the ravager.

It's not a ravager's mechanic, it's a shield mechanic. Shield used to block 100% of damages, but I added a feature that allows you to put a maximum damage absorption amount for shield (5 by default). If you don't like it, you can deactivate this specific feature in the configs ;)

Maybe have a config for specific mobs to have the shield absorb all the damage like how it's set with creepers. (Also I would consider it a mechanic of the ravager with the shield In mind because the ravager was released long after the shield.)


Create a common template for MLE optimizers

Most MLE optimizer implementation have very simmilar code. A common "template" could be created to avoid code repetition.

Unnecessary if https://github.com/soldasim/BOSS.jl/issues/31 is resolved.

The other MLE fitters (apart from OptimizationMLE) have been deprecated in 318636cd21a5a8de1b20d6c67c5e5e79e31dcfe9 and will be removed in the future.
Thus, any code repetition will be removed. Closing this issue.


TSBBLOC-507 add deposit event on l2 land tunnel

Description
Added Deposit event to Polygon Land Tunnel
Checklist:

[x] Pull Request references Jira issue
[x] Pull Request applies to a single purpose
[ ] I've added comments to my code where needed
[ ] I've updated any relevant docs
[ ] I've added tests to show that my changes achieve the desired results
[x] I've reviewed my code
[x] I've followed established naming conventions and formatting
[ ] I've generated a coverage report and included a screenshot
[x] All tests are passing locally

LGTM! We should redeploy the tunnels again right? for this change 036226cbb841e524de03d787dd489ccb20f2617b


Adding a background image props to mdlCard component ?

Goodmorning everyone,
I thought if it was a good idea to add a props backgroundImage or something like that, for the component mdlCard, so you can dynamically add if necessary the images as wallpaper

I added the feature to the list on #8
If you want to tackle the feature, feel free to submit a PR. I'll help you if you need help 😄


package.json - type module

Hi. How I can use "type": "module" in package.json with module federation.
Is it possible to add this feature to the templates?

Added as react-esm.


fix/sponsor

Fix image for sponsor
Fix benefits grid and color

Looks great. I'll piggyback on this PR and add some sponsor content change. Give me a min.

LGTM :shipit:


Events page shows 'Device ID' instead of Device name

See below, we should show the Device Name instead of Device ID.

Fixed the changes are made from back-end


flex-grow  incompatibilities with the browsers

Report

[x] I have searched existing issues and this is not a duplicate

Issues and Steps to Reproduce
root node height is 500px, when I set flex-grow (1) to a node,  and the parent node height length is unset, then the node will get height 0,  different to web which get 500px.
Expected Behavior
same as web
Actual Behavior
get zero
Link to Code

Hello World!

When applicable, use this fiddle to post a web repro.

this is the html code

Hello World!

Thanks for reporting. Does your config use web defaults or not?

A quick look makes me assume ‘flex: 1 1 0’ is the issue as everything else looks pretty normal. This sets flex-basis to 0px which is something yoga has had issues with before if the node with flex basis itself has children with a larger size.
Without a repro I can’t be sure but that would be my best guess. You putting this through the test generation script though (make sure it handles flex property first otherwise re-write it using flex -grow/-shrink/-basis)

Thanks for reporting. Does your config use web defaults or not?

yes, i have tried both useWebDefauls ，it is the same

Thanks for reporting. Does your config use web defaults or not?
i have not configured,  it seems that  when user set "flex", if i  split it to flexGrow,flexShrink,flexbasis is ok, otherwise when i just set flex in YGStyle it is different


Determine the future of tower-web

Currently, tower-web fits the niche of being the only Rust web framework that is:

async
macro based
compiles on stable

There is a space for it to evolve. I have also mentioned in the past the plan to merge with Warp. At a high level, the goal for that would be to update the macros to generate warp filters.
However, reality is that I don't have time to focus on this right now. My time is going to be entirely consumed on updating Tokio, Tower, mio, bytes, etc... to std::future and release the next major version of those libraries. So, until that is done, I can't spend any dev time on tower-web.
Given that, I see two options.
a) deprecate tower-web and suggest to use warp (and revisit come the end of 2019 / 2020 if time becomes available).
b) pull in additional contributors who would be able to do the development (significant) and I can focus on mentoring that group.
I would like to see b) happen, but that would require people to step up as it would be significant work. The default option would be a), to deprecate tower-web.
If any are interested in taking on development, please comment in here and we can see if something can get going.

Thanks for the update regarding integration with warp, one of the things that's kept me from looking at it too seriously is the uncertainty regarding whether or not it was going to be sunsetted out in favor of tower-web. I believe I speak for everyone when I say that it's completely understandable that you have enough on your plate already this year. :)
If you believe that it's possible to imagine a future version of tower-web that exists solely as a code generation layer on top of warp, then for the moment it seems to suggest that volunteers could focus on improving warp and getting it ready to someday serve as such a foundation (unless you think it's already there...?).

Hi. I'm using tower-web as my first option in some projects and I believe no other framework fits that niche you said. I would like to help to maintain the project alive.

@bstrie you interested in participating in dev?
@mfcastellani great!
I will let this issue stay open a bit, and maybe next week reach out to any who express interest and we can have a gitter meeting or something like that.

@carllerche I recently began a job where one of our components makes use of tower-web, so I could ask my employer if they would like to sponsor me contributing to it. However, note that they were thinking about taking a look at warp due to the fact that they want to be able to handle websockets and HTTP on the same port, which (I believe) warp supports but tower-web does not currently; presumably integrating warp with tower-web would render moot this kind of feature disparity. I understand you and seanmonstar don't have a lot of time, but since you're the two who best grok what a merger of warp and tower-web would entail, then if you could put your heads together and give us a roadmap or design document then it would go a long way towards letting third parties pick up the work.

@bstrie
Yeah, I avoided worrying about websockets specifically because warp had it, and the long term goal is to merge.
At a high level, my goal is to reduce tower-web to the macro stuff that will generate something... the exact details of what that something is is TBD.
I think the best first step is to use tower::Service as the integration point. So:

reduce tower-web to only code / macros that generate a T: Service.
Improve warp's support for integrating and filtering over T: Service.

A lot of what exists today in tower-web has already been extracted.

Thanks, that's a good starting point. The other question I have is if you have any ideas off the top of your head regarding breaking changes that you've been wanting to make to tower-web's API, since this is probably a good excuse. If you have significant changes in mind, then combined with warp integration it might make sense to fork tower-web into a new project entirely (how's "twerp" for a terrible proposed name? :P )

The set of breaking changes might be something best determined as a group. I think, the primary goal, will be to simplify and reduce. (I also need to reload the context as I dumped it from the cache).

I can't commit full capacity but I'm happy to help wherever I can - I'm using tower-web in production with great success!

@carllerche I am potentially interested in contributing, but more as someone who can triage and potentially work on open issues, as opposed to feature work

is this still ongoing ? @carllerche .
If yes, I would be interested in getting involved


Posts should have an optional header photo.

A metaimg property was added to posts in this issue this is the image that shows up when a link to a post is shared on social media. Like this:

I wonder how this header photo would come into play... @lynchifer Are you imagining it shows up on the main page as users scroll through posts or would we just show it on the post-detail route (viewing a single post).

Removing from MVP

Closing due to inactivity


Upgrade to wagmi v0.4.3

Upgrading wagmi to ^0.4.3
Upgrading @rainbow-me/rainbowkit to 0.2.1

legend


Use already existing PVC for data

Hey,
we already deployed elasticsearch 6.6.0 and would like to use helm for the next update. Is it possible to use the "old" pvc containting our data without having copy it somewhere?
Right know, after reading the docs, I thought of:

mounting it as an additional volume
setting the data path in elasticsearch.yml
setting the size of existing data volume from 30Gi to 0Gi to prevent wasting storage

Is there any easier way?

Is it possible to use the "old" pvc containting our data without having copy it somewhere?

Have you tested this out? I think it may not work depending on your Kubernetes environment. One of the "tricks" that statefulsets do is to make sure that a pod gets correctly scheduled onto a node that is able to attach its storage. As an example, if you deploy a statefulset to a multi-zone cluster the statefulset will make sure to deploy the pod into the same zone that the storage was created in.

Is there any easier way?

https://github.com/elastic/helm-charts/tree/master/elasticsearch/examples/migration is an example for how to migrate from the helm/charts/elasticsearch version but most of it is relevant for any Kubernetes deployment.


Bug fix for when no webdriver options are passed in.

The following error is thrown when the "options" variable is undefined, making the first example in the README invalid.
/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/deepmerge/index.js:35
        Object.keys(src).forEach(function (key) {
               ^
TypeError: Object.keys called on non-object
    at Function.keys (native)
    at deepmerge (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/deepmerge/index.js:35:16)
    at DestroyableTransform._transform (/home/user/Projects/test/node_modules/gulp-webdriver/index.js:19:20)
    at DestroyableTransform.Transform._read (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:184:10)
    at DestroyableTransform.Transform._write (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:12)
    at doWrite (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:237:10)
    at writeOrBuffer (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:227:5)
    at DestroyableTransform.Writable.write (/home/user/Projects/test/node_modules/gulp-webdriver/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:194:11)
    at write (/home/user/Projects/test/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
    at flow (/home/user/Projects/test/node_modules/gulp/node_modules/vinyl-fs/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)

Nice thanks!

No problem. On another note, I can't seem to find documentation anywhere about how these Webdriver instances make their way into the test specs. I've only used Jasmine, and the instance shows up as a global variable called "browser" (which I found out from a random article on Google), do you know if this is also true for Mocha and Cucumber?

The readme says that gulp-webdriver is using the wdio testrunner form WebdriverIO. As you can read here http://webdriver.io/guide/testrunner/frameworks.html:

Within your spec files or step definition you can access the webdriver instance using the global variable browser. You don’t need to initiate or end the Selenium session. This is taken care of by the wdio testrunner.

Damn it, I don't know how I missed that. Do you think it's a good idea to include this as part of the README here, or do you consider it as an unrelated concern?

I am happy to clarify that also in the readme of this project. Would you like to make another PR?

Yep, I'll do it over the weekend. Thanks for the prompt response and pointing out the documentation.

Awesome thanks!

Done.

Merged :+1:


File size & memory constantly increasing for keras models with StringLookup layer after reloading & resaving

Please go to TF Forum for help and support:
https://discuss.tensorflow.org/tag/keras
If you open a GitHub issue, here is our policy:
It must be a bug, a feature request, or a significant problem with the documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
Here's why we have that policy:.
Keras developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.
System information.

Have I written custom code (as opposed to using a stock example script provided in Keras): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): macOS 12.3.1
TensorFlow installed from (source or binary): binary from pip
TensorFlow version (use command below): 2.8.0
Python version: 3.8.3
Bazel version (if compiling from source): N/A
GPU model and memory: Intel UHD Graphics 630 1536MB
Exact command to reproduce: 1) pip install psutil 2) python test.py train 3) python test.py

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the problem.
When a keras Model has a StringLookup layer, and saved as SaveModel format, the file size and the memory usage keeps increasing after reloading & resaving.
I have created a minimum script to reproduce the issue. To assess the memory usage, I used psutil package so please install it if you do not have it.
Running python test.py train will create a very simple model with only a StringLookup layer and a Dense layer, and save it.
And then you can run python test.py many times to see the file size and the memory usage every time. On my laptop, file size increased by roughly 4K/run and memory usage increased by 3MB/run.
Interestingly, if the model is saved as H5 format this issue is gone.
Describe the current behavior.
After running the third command (python test.py) for many times, it is quite noticeable that the file size and the memory usage increases after each reload.
Describe the expected behavior.
The file size and the memory usage should not be constantly increasing.
Contributing.

Do you want to contribute a PR? (yes/no): no
If yes, please read this page for instructions
Briefly describe your candidate solution(if contributing):

Standalone code to reproduce the issue.
The test script is attached:
test.py.zip
Source code / logs.
Pasting the code of test.py for readability:
import numpy as np
import os
import psutil
import sys
import tensorflow as tf
import itertools
from tensorflow import keras
from tensorflow.keras.layers import Input, StringLookup, Dense
from tensorflow.keras import Model

vocabulary = list('ABCDEFGHIJKLMN')
seq_length = 100
batch_size = 16

def build_model():
    # Build a simple model with only the StringLookup and activation
    input_layer = Input(shape=(seq_length,), dtype='string', name='input')

    output_layer = StringLookup(
        vocabulary=vocabulary,
        mask_token='',
        output_mode='multi_hot',
        name='string_lookup'
    )(input_layer)

    output_layer = Dense(1, activation='sigmoid')(output_layer)
    return Model(inputs=input_layer, outputs=output_layer)

def train_model(model):
    # Train the model with batch_size x seq_length batches
    x_arr = np.array([np.random.choice(vocabulary, size=(seq_length,)) for _ in range(batch_size)])
    y_arr = np.random.choice([0, 1], size=(batch_size,))

    model = build_model()
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics='AUC')
    model.fit(x_arr, y_arr, batch_size=1, epochs=1)

    return model

def save_model(model):
    # Save the model and print the saved model file size & memory usage
    tf.keras.models.save_model(model, 'models/test/')
    print(os.path.getsize('models/test/saved_model.pb'), psutil.Process().memory_info().rss)

def load_model():
    return tf.keras.models.load_model('models/test/')

if __name__ == '__main__':
    if len(sys.argv) > 1 and sys.argv[1] == 'train':
        save_model(train_model(build_model()))
    else:
        save_model(load_model())

@atticusfyj I tried to replicate the issue on colab and faced the following error
OSError: No file or directory found at /content/test

Could you please find the gist here and let me know if I am missing something to reproduce the issue.
Thank you!

@atticusfyj I tried to replicate the issue on colab and faced the following error
OSError: No file or directory found at /content/test

Could you please find the gist here and let me know if I am missing something to reproduce the issue. Thank you!

Seems that you did not run python test.py train first? It should be run first to create a model and then we can run the command without train to reload & resave.

python test.py train
python test.py

Please run 1) for once and then run 2) many times to see the growing trend.

@gowthamkpr I was able to replicate the issue on colab , please find the gist here.
Thank you!

@sushreebarsa @gowthamkpr May I know what the normal flow is for bug fix? Any chance we can have some workaround first?

Hello, Thank you for reporting an issue.
We're currently in the process of migrating the new Keras 3 code base from keras-team/keras-core to keras-team/keras.
Consequently, This issue may not be relevant to the Keras 3 code base. After the migration is successfully completed, feel free to reopen this issue at keras-team/keras if you believe it remains relevant to the Keras 3 code base.
If instead this issue is a bug or security issue in legacy tf.keras, you can instead report a new issue at keras-team/tf-keras, which hosts the TensorFlow-only, legacy version of Keras.
To know more about Keras 3, please take a look at https://keras.io/keras_core/announcement/. Thank you!


Compiler creates TOO MUCH msil code in GetHashCode : IEqualityComparer -> int

(moved from https://github.com/dotnet/roslyn/issues/12634)
I do not know, whether the issue does apply to newer F# compiler versions, but this is what I found:
The F# compiler v12 creates WAY TOO MUCH MSIL code in the overridden method
GetHashCode : IEqualityComparer -> int in F# enumerations.
Version Used:
Microsoft Visual Studio Ultimate 2013 Version 12.0.40629.00 Update 5, 64Bit
Microsoft .NET Framework Version 4.5.51209
F# Compiler Version 12.0.30815.0
Steps to Reproduce:

Create a (big) enum, e.g.:

type MathematicalOperators =
    | OR | AND | XOR | SHL | SHR | ROL | ROR | ADD | SUB | MOD | DIV | MUL | POW | EQ | NEQ | LOW | LEQ | GRT | GEQ

Compile :wink:
Inspect the assembly using a decompiler (e.g. dnSpy or ILSpy).

Actual Behavior:
You will see a big chunk of IL code inside the method MathematicalOperators.GetHashCode : IEqualityComparer -> int.
I will not post the IL code, as it is much to long, I will however post the corresponding C# interpretation, as it is pretty accurate:
if (this != null)
{
	switch (this.Tag)
	{
	case 0:
		return 0;
	case 1:
		return 1;
	case 2:
		return 2;
	case 3:
		return 3;
	case 4:
		return 4;
	case 5:
		return 5;
	case 6:
		return 6;
	case 7:
		return 7;
	case 8:
		return 8;
	case 9:
		return 9;
	case 10:
		return 10;
	case 11:
		return 11;
	case 12:
		return 12;
	case 13:
		return 13;
	case 14:
		return 14;
	case 15:
		return 15;
	case 16:
		return 16;
	case 17:
		return 17;
	case 18:
		return 18;
	}
	return 0;
}
return 0;

Expected Behavior:
It is needless to say, that I expected less compiled code. The following lines would just do it fine:
if (this == null) // rather useless, but whatever
	return 0;
else
	return this.Tag;

Or did I somehow miss some kind of feature/joke/...?

Thanks, that can be fixed.  Not a joke, just a special case where the result of GetHashCode happens to be equal to Tag.

@dsyme : Ah, thank you Sir. I was not quite familiar with the F# implementation of GetHashCode (how much it differs from the C# implementation etc.) and I did not compare it with other compilation results.
I am happy to know, that it is not a big F# compiler problem ;)


cross-origin websocket errors through Cisco AnnyConnect VPN when using nginx reverse proxy

If someone give me any help or suggestion, I'll appreciate it.
I've read https://docs.mattermost.com/install/config-proxy-nginx.html and set up nginx-proxy and it seems to work fine.
(I've also read https://github.com/mattermost/mattermost-docker/issues/107)
The following is current setting.
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
    listen       80;
    server_name  mattermost.mysite.local;

    location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost:80;
    }

    location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_pass http://mattermost:80;
   }
}

However, when I connect to the mattermost through Cisco Any Connect VPN, I have the following error:
(Confirmed by Chrome browser console)
Websocket connection to 'ws://mattermost.mysite.local/api/v4/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
At first I thought the error might be caused by Cisco Any Connect VPN, because the error doesn't happen without the VPN software. (I mean when directry connected from internal Lan.)
However, when connected to mattermost without nginx reverse proxy with using Cisco Any Connect VPN, no error happens. So I assume that I may be able to do someting by changing Nginx setting.
I'd like to solve the issue, but I don't have any idea to deal with it.
So any ideas or suggesitions are welcoming.
Thank you in advance.

Your configuration looks OK, maybe your VPN breaks your HTTP headers ?

Hmm. Thank you for your comment. Probably I should ask the internal network manager about the VPN network.. I'm still waiting for any suggestion, but after a few days. I'll close this incident if I can't get any other suggestion. Thank you.


Impact of long expiry on transaction progress bar

While expiry is a good maximum to use on RFQ order progress bars, OTC order expiries are usually much longer. We might be able to cap it at some number of minutes based on some factors, for discussion.

As discussed on call let's set the progress bar to have a max of 300 seconds.

@dmosites max of 300 seconds only for OTC orders then?

For any order: the timeout (as illustrated by the progress bar) would be 300 even if expiry is beyond that. RFQ orders would have a lower expiry of e.g. 170 so their timeout would be 170.


Add MQ-MAS simulation

What is this issue related to? We have MQ-MAS simulations in the documentation.

Closing this issue because nobody remembers what it's about


Flutter MDI window with multi Child Window Screen

may i create MDI window with multi child screens. this help to work on multi screens at the same time

Use case

Proposal

Currently, Flutter apps acts like a tablet app, support for multiple windows (even the usual SDI) is due.
https://github.com/flutter/flutter/issues/30701

Closing as duplicate of #30701
Thank you


Automated cherry pick of #6769: region: retry set influxdb policy until completed

Cherry pick of #6769 on release/3.1.
#6769: region: retry set influxdb policy until completed

Codecov Report

Merging #6771 into release/3.1 will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@              Coverage Diff               @@
##           release/3.1   #6771      +/-   ##
==============================================
+ Coverage         7.48%   7.50%   +0.01%
==============================================
  Files              585     585
  Lines            98953   98954       +1
==============================================
+ Hits              7411    7422      +11
+ Misses           90970   90960      -10
  Partials           572     572

Flag
Coverage Δ

#aFlag
7.50% <0.00%> (+0.01%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/cloudcommon/policy/resources.go
0.00% <ø> (ø)

pkg/cloudprovider/objectstore.go
2.51% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

pkg/compute/models/buckets.go
1.24% <0.00%> (ø)

pkg/compute/models/guestdisks.go
0.58% <ø> (+0.01%)
:arrow_up:

pkg/compute/models/secgroups.go
1.90% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/snapshots.go
1.56% <0.00%> (+<0.01%)
:arrow_up:

pkg/hostman/hostinfo/hostinfo.go
0.00% <0.00%> (ø)

pkg/hostman/isolated_device/isolated_device.go
3.22% <0.00%> (-0.06%)
:arrow_down:

pkg/util/rbacutils/policyset.go
75.00% <0.00%> (+9.78%)
:arrow_up:

... and 3 more

Continue to review full report at Codecov.

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

/lgtm

/approve


Use royalty free font?

I need to look at which font weights we're using and then reach out to the company to buy a license


Consider adding validation to ReceiveMessages when Prefetch is used

If using ReceiveMessages and a PrefetchCount value greater than 0, the maximum number of messages that would get returned is equal to the PrefetchCount value. As such, it might make sense to prevent users from setting the maxMessages to be more than PrefetchCount when PrefetchCount is greater than 0.
This wouldn't apply to ReceiveDeferredMessages or PeekMessages as these operations use the management link and do not respect Prefetch.
This code shows that link credits can not be increased when using Prefetch:
https://github.com/Azure/azure-amqp/blob/061a523b0a26ba9fe098c855ec10b1897d98ff6f/src/ReceivingAmqpLink.cs#L263

Let's say the prefetch count is configured through a setting and the number of messages to retrieve is set dynamically. How the prevention would work? I would not want this to throw. Logging a warning would be OK.

Yeah, I thought about this more and think throwing would be too extreme. I think we can at least log a warning.

Logging would be fine. Throwing wouldn't.
Similar to a message that was prefetched and going into processing after it's lock has expired. Should it be prevented from processing? It would be nice but then there's a risk of clock skew between the broker and the processing endpoint. What if that time gap would be enough to process a message and we'd skip the processing, eventually causing the message to end up in a DLQ for no good reason. Again, logging to verify settings would be appropriate. Taking action not so much.

Closing as we are not planning to expose PrefetchCount - https://github.com/Azure/azure-sdk-for-net/issues/13077

Reopening as we will leave PrefetchCount public!


Check that the new solution for k8s v1.23 deploys on last versions of AWS

Note: We'll need this cluster in order to apply the legacy-shimming-diff tool between the old and the new cluster.

As it says here https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html.
AWS won't release EKS 1.23 until August 2022.
We have to check our canaries that are on 1.19 and update them to a newer version because June 30, 2022 will be end of support.


Can not remove page actions with designer

Describe the bug
During customization of page actions, I encountered the repeated error, that Business Central can not handle removing the "Statistics" Action in the Customer Card.
To Reproduce
Steps and to reproduce the behavior:

Go to 'Customer Card'.
Start Designing the page.
Chose either 'Customer' -> 'Statistics' order 'Navigate' -> 'History' -> 'Statistics'
'Remove' action

(Thus, I am able to hide the whole 'History' block. All the other fields provide just hiding the field. 'Statistics' is the only with remove. Perhaps this is the source of the error.
AL Code to reproduce the issue
Expected behavior
I expect the action to be removed from the action bar.
Screenshots

5. Versions:

AL Language:

Business Central: Version: Plattform 14.0.35916.0 + Anwendung 35970 (DE Business Central 14.5)
Azure AD tenant: common, Environment: Production

Let's get the issue to a team who will fix and backport it, as this repository is only for issues related to the AL compiler in latest developer preview environment for Dynamics 365 Business Central. We suggest that you open a support case or file a bug in Collaborate, to ensure that all Business Central users benefit from your catch as soon as possible.
To open a support case, you can:

Open a support request to CSS through the PartnerSource portal
Contact your Service Account Manager (SAM) in your local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also direct you "step by step" how to open a support request or how to get credentials, if this is the first time for you or your company

If you file the bug in Collaborate, remember to include steps to reproduce the issue, and the Business Central build number and country version you're using.


Netlify builds tend to fail

Description of the issue
Netlify builds will tend to fail, e.g. https://app.netlify.com/teams/patternfly-elements/builds/621e4e78fff2bb000701761a
These types of failures are caused by the netlify runner failing to bust the node_modules cache under various circumstances
possible fixes:

program the netlify runner to bust the cache on changes to patches/*.diff
have netlify retry failed builds by clearing the cache first

see https://answers.netlify.com/t/automatically-retry-failed-builds-without-cache/52730


Add triangle wave node

This node creates values from 0.0 to "Scale" based on input value.
Example: using ping-pong node with scale=0.18 over "V" component.

Should this node be in the "procedural2d" category, rather than "math", as it seems to mainly be an image generator as opposed to doing a math-like operation on an input value?

@dbsmythe Triangle wave is defined as a math node in other softwares. that's why i put it there. It's a mathematical operation after all.

@jstone-lucasfilm Should i inverse the amplitude value?
it gets more frequency with a smaller value, I think it should be inverted? or let it be as it is?

@Cinifreak Ah, I see what you mean now.  The amplitude input affects both the amplitude and the frequency of the wave at the same time.
My sense is that we should make these two independent inputs that the artist can control, though this requires some modifications to the graph implementation.  In the future, this would allow an artist to swap between different wave nodes (e.g. triangle, sawtooth, square), keeping the same amplitude and frequency inputs, and expect consistent results across all of them.
Does that sound like a reasonable approach to you as well?

@Cinifreak Let us know how the suggestions above sound to you, and we're happy to assist with the generalization of this node to support both amplitude and frequency.

This latest version looks excellent, thanks @Cinifreak!
Before merging this change, I wanted to check with you and @crydalch about the best name for "frequency" node inputs in MaterialX.
In the Unified Noise nodes that @crydalch recently contributed, he used the name freq for frequency inputs, with the UI names stating the capitalized word Frequency:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/cdd53d2c2bb369c89aa7b3344243d9687a04491b/libraries/stdlib/stdlib_defs.mtlx#L1001
Should we follow this same convention for the new trianglewave node as well?

Yes it would be better to follow @crydalch naming to unify it across all nodes. Just confirm that and i will change it for this PR and consider this for any upcoming nodes PR in the future!

Sounds good, thanks @Cinifreak, and let's move forward with the convention for frequency inputs that @crydalch has set.

Sorry to be a pest after so much iteration, I have a couple of suggestions in order for this to be a fully functional triangle function as typically used in signal processing. In addition, to period, which you have already, some extra clarification, and some other fields are also typically necessary:

does the nominal triangle run between 0 and 1? I assume yes, but it should be documented.

bias: a value to add to the signal. bias in conjunction with amplitude allows us to place the signal wherever we like, for example, (-1, 1) or (0.75, 1.25)

rising: a flag that indicates whether the triangle is rising or falling. /|_ vs |_

It's a very short step from the proposal to a fully fledged triangle generator :)

I think frequency should be further clarified. Frequency means iterations per period. What is the period of this node? Is it 1.0? So 4 cycles between 0 and 1 is encoded as 4? That seems logically implicit, but it should be stated.

@meshula I've actually switched over from frequency to period in the latest version, for the very reasons you note above.  For the difference between height and amplitude, the current implementation generates an unsigned wave from zero to height, so the amplitude would actually be half of this value.  That's the motivation for using height as the name in the current node, assuming the unsigned wave is preferred for artistic reasons.

Today I had another look at common references in the industry, and it does appear that unsigned, non-negative triangle waves are the most common, as seen in this example:
https://dev.epicgames.com/community/snippets/o4A/unreal-engine-triangle-wave-material-function
Assuming that's the preferred visual behavior, perhaps height is the right choice of names for this implementation?  I'm very open to other ideas on this, and I'm aiming to learn what artists will expect from this node when they place it in a graph.

I edited my note above to remove the reference to rising as that's for a sawtooth wave.
amplitude is not a great choice, I agree. I'm not fond of height and would prefer magnitude since that's defined as the difference between maximum and minimum values and a more usual mathematical term, and height, being a measure, might make one wonder if any units are involved. I don't think artists would be confused by the use of magnitude.
my desire for a bias can presumably be addressed with a subsequent node in the graph, although that does arm wave optimal code generation away to "the compiler will take care of it" :)

Minimally my request would be that a note is made that height is a unitless value.

@meshula That sounds like a good suggestion to me, and I like the idea of switching from height to magnitude.  Naming things is hard, and there's a strong possibility that the conventions chosen here will apply to future wave-type nodes in MaterialX, so it's worthwhile to get the details right.
Since the definition of this node is itself a graph (rather than custom shader code), we'll pay the same shader compiler cost whether these controls are applied externally (e.g. by scaling or biasing the result) or applied from within the graph definition.
@Cinifreak @crydalch Does the proposed set of built-in artist inputs, magnitude and period seem ideal to you both, or should we simplify or extend it further?

@meshula That sounds like a good suggestion to me, and I support the idea of switching from height to magnitude.  Naming things is hard, and there's a strong possibility that the conventions chosen here will apply to future wave-type nodes in MaterialX, so it's worthwhile to get these details right.
Since the definition of this node is itself a graph (rather than custom shader code), we'll pay the same shader compiler cost whether these controls are applied externally (e.g. by scaling or biasing the result) or applied from within the graph definition.  If these controls are rarely used, however, then we'll end up paying a greater cost by providing these controls than if we simply allowed the artist the scale and bias results to achieve the effect they are after.
Does the proposed set of built-in artist inputs, magnitude and period seem ideal to you all, or should we simplify or extend it further?

@meshula @Cinifreak Maybe we're overthinking this, and the best answer is the simplest?  Looking at other wave nodes in material graph editors, it looks like the most popular interface is to provide no controls at all, and to rely upon the artist to add nodes when they need additional scale or bias features.
As one example, here is the presentation of wave nodes in NodeToy, where all wave nodes have the same minimal interface as a sine wave:

Following that approach, what if we were simply to remove both the height and period controls, making this a pure triangle wave generator?
I like @Cinifreak's choice to generate triangle waves with a period of one and output values in the [0-1] range, which seems consistent with triangle wave nodes in applications in the industry.

From Blender, here is the detention of the node that behave I made it in the first iterations like this. just input and increment value to move to it. I think it shouldn't be complex or having something more than that!

@Cinifreak Could we take this even further and remove the scale input as well?  That would align with the trianglewave nodes in Unity and NodeToy, for example, and it would remove any potential confusion as to what scale refers to (e.g. height-only, height and frequency, etc).

But how will the user control the increment value ?
let's say I have ramp [0, 1] and i want to use this node to increment from 0.2, So, i get 5 waves for that range. How will the user do that with this node with just the input value?

@Cinifreak In Unity and NodeToy, for example, the artist just adds a multiply node after the trianglewave, and this scales the result in the same fashion that the scale input would have done.  I think I can see why these applications made this decision, as it aligns trianglewave with other wave nodes like sine, and it makes sure that the artist only pays for the functionality they use in their graph, rather than having an extra multiply inside of trianglewave that they may not have needed.

I think we have misunderstanding here. The scale here is not a multiplier. scale is not a good naming I know.
but here is the equation this node simulates: Triangle Wave(Value) = Scale - abs( (abs(Value) % (2*Scale)) - Scale)

@Cinifreak In your original proposal, the scale input affected both the height and the period of the resulting waveform.  To create exactly that same effect with a pure trianglewave node, I believe you would just scale both the input and the output of the trianglewave by the same constant value.  Scaling the input affects the period, and scaling the output affects the height.
Does that approach seem reasonable to you?  The advantage of splitting this out into separate artist-created nodes is that we don't create extra behavior inside the node that artists may never use, but that they'll still pay for every time they place a trianglewave in their graph.

@Cinifreak In your original proposal, the scale input affected both the height and the period of the resulting waveform. To create exactly that same effect with a pure trianglewave node, I believe you would just scale both the input and the output of the node by constant values (where the input scale is one over the output scale). Scaling the input affects the period, and scaling the output affects the height.
Does that approach seem reasonable to you? The advantage of splitting this out into separate artist-created nodes is that we don't create extra behavior inside the node that artists may never use, but that they'll still pay for every time they place a trianglewave in their graph.  Additionally, it seems to align with most triangle wave nodes that I see in DCC applications.

@Cinifreak I've made the change described above, and let me know how this looks to you.  This seems like the leanest possible implementation of trianglewave (a graph of just five nodes), which makes it a good candidate as a core node in MaterialX.

Thank you for that effort. I will give it a test and let you know ASAP.

@jstone-lucasfilm I like the notion of treating "any" wave as one would treat a sine function, i.e. the input to a triangle wave spans one cycle over [0 .. 1] (as opposed to over 0 to 2*pi), and the output is ranged between 0..1. Given this simple formulation, it would make sense to me to add sawtooth (with a "rising" flag), and square (with a "duty cycle" parameter). Then you'd have the usual set of sin, saw, tri, and square. I can't decide if it's confusing or not that a sin completes a cycle over a circle, and the proposed new generators cycle over zero to one. I think it's probably not confusing, and 0...1 is definitely less confusing than wondering if sine takes radians or degrees.
(sawtooth rises, or falls, as noted earlier)
(duty cycle, 0.5 is the usual square wave, 0.1 is 1 10% of the time, 0.9 is 1 90% of the time)

Completely agree, @meshula, and I think this proposal makes a great template for additional wave nodes in the future.  In particular, squarewave seems like a valuable core node, and its presence would make certain existing nodes simpler to implement (e.g. checkerboard), not to mention future nodes.
For sawtoothwave, this might end up being identical to our existing modulo node, which by default returns the fractional component of the input scalar.  But I'm not against having sawtoothwave as an alias for this node if it's clearer from an artistic perspective.

Rather than add a  function that's basically the same as , I'd vote for leaving it out and then instead creating a  (or something- naming is hard) that would be a higher-level wrapper for all the xxwave nodes plus "sine" (similar in idea to the unifiednoise2d/3d nodes).  And the  node could include things like period and height and other niceties.  (I do agree that adding a  node with a dutycycle input would be good)

I totally agree with @dbsmythe.
About the node right now, @jstone-lucasfilm it's working now from zero to one and repeats on integer boundaries as you described it. But it didn't mean that because now it's behaving like sine. My contribution was a node that sets a value from zero to an increment value and repeats to the largest value in the input.
As i said before in a previous example, If I have a ramp [0, 1] and want to get a wave every 0.2 I will connect this ramp to node's input and set the incremental value (I named it in the first iteration "scale") to 0.2 and the output should be waves starts from zero to 0.2 and back down to Zero untill it finishs the ramp range. (That's why I called it ping-pong node before)
I think what we have now is another behaviour that could be helpful if we have all the waves set in one node not just this triangle wave as a single node.

@Cinifreak I think I may be missing what you're suggesting above.  I like @dbsmythe's proposal to omit sawtoothwave since modulo already exists, but wouldn't trianglewave and squarewave still be useful nodes?  Further in the future, we can certainly create a unifiedwave that combines all of the possible options, but I would imagine we'd still want individual wave generators to be available.  What are your thoughts?

@Cinifreak I'm not sure I fully understand what you're suggesting in the post above.
I like @dbsmythe's proposal to omit sawtoothwave since modulo already exists, but wouldn't trianglewave still be a useful node to support?  Further in the future, we can extend this to a unifiedwave that combines all of the possible wave types, but I would imagine we'd still want individual wave generators to be available, as they are in environments such as Unity and NodeToy.
Let me know if the current pull request looks good to you, or if there are additional changes that should be made before we merge!

I tested the final edit. I still seeing that we have to let user control how many periods he needs at least. I pushed another update with just two inputs in and period, If you want to change the parameter name feel free to do that. Also, now every period will remain consistent from zero to one and if users need to change the height they can multiply it as @jstone-lucasfilm said before. We don't have to set a multiplier inside the node. Give it a second look and let me know what do you think about that?

@Cinifreak Couldn't the artist just multiply the input by 1 / period to get this same effect?
Although I'm open to adding useful controls, I'm noticing that the trianglewave nodes in Unity and NodeToy don't provide a period input (or any other input beyond in), so perhaps it's not something that artists found they needed in a core node like trianglewave?
As @dbsmythe notes above, we can always design very high-level wave nodes later on, providing a very rich set of controls and options, but that doesn't necessarily mean that our underlying core nodes need to provide them as well.

I tested to do 1/period to get the same effect as this screenshot but it didn't work. I could miss something.
But, we can go with your edit after all, I agree with @dbsmythe suggestion we can set the core nodes first then in the future we can build on it. I was just recommending period from an artist perspective because I'm already using it in Herringbone tilling.

@Cinifreak If you want to get the effect above, then you should just multiply the input by five, effectively making the period 1/5.  I'll go back to the earlier implementation for now, and I'll see if I can post a screenshot using the technique described here.  Thanks for all of your work on this node, and I think it should be very useful!

Oh, Okay I understand the technique now. Thank you for you patience. Let's Merge the earlier implementation. Thanks again!


Inform about SDSF requirement for some installation steps

Is your request for enhancement related to a problem? Please describe.
Related to https://github.com/zowe/zowe-install-packaging/issues/3704 and https://github.com/zowe/zowe-install-packaging/issues/3477
Describe the solution you'd like
Identify and describe which of the automated steps of Zowe installation have a dependency on SDSF being available in the z/OS system.

Just to add more details, this is how the error may look on the customer side:
A zwe init certificate --update-config
...
IRX0043I Error running /Zowe/bin/utils/opercmd.rex, line 130: Routine not found

So we can document SDSF as a requirement in Addressing z/OS requirements or in the Configuring section as it is related to zwe utility.
And we can document IRX0043I with opercmd.rex error in the troublesooting section as well