How to share memory among 2 GPUS for distributed inference?

Environment Setup
Runtime environment:
Target: x86_64-unknown-linux-gnu
Cargo version: 1.75.0
Commit sha: https://github.com/huggingface/text-generation-inference/commit/c38a7d7ddd9c612e368adec1ef94583be602fc7e
Docker label: sha-6c4496a
Kubernetes Cluster deployment
2 A100 GPU with 80GB RAM
12 CPU with 32 GB RAM
TGI version: 2.0.0
TGI Parameters:
MAX_INPUT_LENGTH: "8000"
MAX_TOTAL_TOKENS: "8512"
MAX_CONCURRENT_REQUESTS: "128"
LOG_LEVEL: "INFO"
MAX_BATCH_TOTAL_TOKENS: "4294967295"
WAITING_SERVED_RATIO: "0.3"
MAX_WAITING_TOKENS: "0"
MAX_BATCH_PREFILL_TOKENS: "32768"
Question
I am courious about how to optimize distributed inference for LLMs. I see in that in the docs you mention this:
### A note on Shared Memory (shm)

[`NCCL`](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/index.html) is a communication framework used by `PyTorch` to do distributed training/inference. `text-generation-inference` make use of `NCCL` to enable Tensor Parallelism to dramatically speed up inference for large language models.

In order to share data between the different devices of a `NCCL` group, `NCCL` might fall back to using the host memory if peer-to-peer using NVLink or PCI is not possible.

To allow the container to use 1G of Shared Memory and support SHM sharing, we add `--shm-size 1g` on the above command.

If you are running `text-generation-inference` inside `Kubernetes`. You can also add Shared Memory to the container by creating a volume with:

\- name: shm
  emptyDir:
   medium: Memory
   sizeLimit: 1Gi

and mounting it to `/dev/shm`.

Finally, you can also disable SHM sharing by using the `NCCL_SHM_DISABLE=1` environment variable. However, note that this will impact performance.

We currently have this setup with K8s:
        - name: m
          emptyDir:
            sizeLimit: 1Gi
            medium: Memory

However, I feel like I am missing something.
Say GPU memory size is G, model weight in megabytes is M and free available memory for processing requests is F.
Then when I deploy a model with size M (where M < G) with SHARDED=True and over 2 full GPUs(G_1 and G_2). What I expect is the model weights taking M megabytes from GPU1 (G_1) and then the available/free memory, F, for processing tokens/requests should be (G_1 - M) + G_2 = F. Right?
Instead what I am seeing is that the model is replicated on both GPUs, so F = (G_1 - M) + (G_2 - M) . I believe this is not what we want. For example with Mistral7b:

Sharded
GPU 1
GPU 2

False
66553MiB /  81920MiB 81% used
Does not exist

True
66553MiB /  81920MiB 81% used
66553MiB /  81920MiB 81% used

We would like to have the model only on 1 GPU (if it fits) and then use the extra available GPUs just for inference, i.e, increasing our memory budget at processing time by sharing the memory between the left over memory from the GPU where the model weights live and the memory from the GPU without model weights.
This is what makes me think we are not using NCCL correctly, or maybe my assumptions are wrong, and what I am saying is not possible to do?
Visual description

Good question.
In transformer inference, both prefill & decode phase use GPU VRAM.  i.e., processing is done by moving model weights, kvcache, embeddings, etc., from VRAM to L2, L1 & registers of GPU processing cores and intermediate states, and results are written back to VRAM (See FlashAttention 1 & 2 for more details).  This is similar to traditional programs (instruction & data) needed to be loaded in RAM before processing by CPUs.  So in your pictorial representation, Ideal Scenario is not possible.
In your pictorial representation, Current Scenario is called as Data Parallelism.  Full model weights are loaded in 2 GPUs each of 81% VRAM.  We have 2 model instances.  This is widely supported by several serving frameworks & engines including TGI.
What you are asking is: A single model to be sharded across multiple GPUs. For ex: 40.5% in GPU 1 & 40.5% in GPU 2.  To have only one model instance.  To complete one inference both GPUs being utilized.  There are several parallelism techniques (Pipeline, Tensor, Sequence).  TGI supports Tensor Parallelism.  It comes into play when one model is too big to fit into a single GPU VRAM.  It is not common to do this for models that fit within a single GPU's VRAM.
That's because generally speaking, inference is bandwidth limited.  So, inference engine implementations are trying efficiently to use memory bandwidth (VRAM <> Cache communication).  If we do sharding for a  model that fits into VRAM, the communication overhead is greater (GPU 1 Cache <> GPU1 VRAM <> PCIe/NVLink <> GPU2 VRAM <> GPU2 Cache).  We want to keep compute intensity as low as possible to utilize GPU cores efficiently.
With modern techniques like FlashAttention, PagedAttention, Quantization, memory bandwidth is being utilized more efficiently.  So for specific model serving configurations (large batch sizes, quantized, etc.,), it could technically make sense to shard a model across 2 GPUs.  This is similar to "Multi Processing" paradigm in CPU workloads.  I'm not sure if this is mainstream though.  Because, single GPU inference is still in the order of seconds & milliseconds.  I also see the benefits of this in ensemble model inference in local inference setup on M3 & M4 chips.
But anyways, I am also curious to know TGI team's (@OlivierDehaene, Et al.,) thoughts on this.  Came across AlpaServe which discusses this.
Thanks,
Venkat

Thank you so much for such well written response! Maybe we could explore adding support for these features, since I do think for cases where batch sizes are very big, it would really help to leverage both GPUs VRAM at the same time right?

No problem @martinigoyanes. vLLM supports this: https://github.com/vllm-project/vllm/issues/2304
Maybe TGI already supports this natively or through vLLM integration ?  I have to look into TGI config to have more clarity on this.

I am down to collaborate with you @Venkat2811 on supporting this ! I think TGI supports TP when model does not fit on 1 GPU but it does not allow you to force it to happen even when model fits in 1 GPU

I think TGI supports TP when model does not fit on 1 GPU but it does not allow you to force it to happen even when model fits in 1 GPU

Yes, would like to validate this first to be sure.  If this is the case, would be happy to collaborate with you @martinigoyanes !

I think the increase in throughput is so much worth it since you can leverage 100% VRAM from the extra GPU, even after taking into account the added latency from GPU-to-GPU communication.
When serving LLMs for "real" use cases, you must put some kind of rate limiter in front of it. And, most of the time, the downstream client of the LLM,  would rather have increased latency than being rate limited in total tokens used. With this increase in throughput from using 100% VRAM of extra GPU you can offer your downstream clients a much higher amount of total tokens per minute while trading off some latency from communications.
What do you think? I feel like this would be a very valuable feature for TGI

Hey @martinigoyanes ,

you can leverage 100% VRAM from the extra GPU

Maybe there is a terminology/communication gap here.  The above statement is not correct.  Higher throughput is achieved by increasing inference batch size by splitting model layers across several GPUs.  This would require different layers of model to be loaded in different GPUs (base memory).  50% of compute (kv cache memory) is done in 1GPU, and the rest in 2nd GPU as a simple example.  It is analogous in MapReduce.

I think TGI supports TP when model does not fit on 1 GPU but it does not allow you to force it to happen even when model fits in 1 GPU

We have to verify this before proceeding.
Resources:
Tensor Parallelism:

https://huggingface.co/docs/transformers/main/en/perf_train_gpu_many#tensor-parallelism
https://github.com/vllm-project/vllm/blob/e9cdd2b1e20beb1c21c55441d0e6a4ed86f4e292/docs/source/serving/distributed_serving.rst#L6

Different types of parallelism:

https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/nlp/nemo_megatron/parallelisms.html

Multi Model inference on GPU cluster of several machines:

https://arxiv.org/abs/2302.11665 (Google probably has a variation of this for serving their models)

When serving LLMs for "real" use cases, you must put some kind of rate limiter in front of it

vLLM, TGI & Triton are already powering several "real" use cases already :)
Eg: Your 60 concurrent requests were served with latency.  TGI router's queuing system + back pressure management made it possible.

Maybe there is a terminology/communication gap here. The above statement is not correct. Higher throughput is achieved by increasing inference batch size by splitting model layers across several GPUs. This would require different layers of model to be loaded in different GPUs (base memory). 50% of compute (kv cache memory) is done in 1GPU, and the rest in 2nd GPU as a simple example. It is analogous in MapReduce.

Yes you are right, I think I was not precise enough. I said "100%" but of course you still have to host a % of the model while doing TP. However, I mean that you can utilize much more GPU VRAM which leads to you being able to process higher batch sizes. I was neglecting the size of the model in memory when it is spread among 2 gpus because of the sake of making my point about trade-off of latency-throughput, sorry.

Eg: Your 60 concurrent requests were served with latency. TGI router's queuing system + back pressure management made it possible.

Yeah, indeed! However, the queueing system in TGI is a bit "naive" since it has no sense of prioritization. I would argue that in real-case scenarios, when you have multiple downstream clients. You would allow some of them to consume more total tokens per minute than others depending on how critical the downstream task is. While TGI, allows all requests to fill in the queue. That could also be an extension of TGI, to have some sense of prioritization in the queueing system based on API keys and the token usage of each API key. However, I think that given that TGI is an open-source project, it is better to "keep it simple" and this kind of extensions should/can be built around TGI. What do you think?


BUG: Rancher pod killed during backup restore when pruning is enabled

Issue
While restoring a backup in Rancher with the exact same configuration as in the previous one, the rancher pod gets killed and Rancher UI dissappears as can be seen in the video
https://github.com/user-attachments/assets/3a6530e0-172d-48b2-963d-62dcde8352a1
Step to reproduce (long way)

Deploy Rancher 2.8.5
Deploy a git repo
Create a Backup using the Backup app on Rancher (preferably on S3)
Create a new Rancher 2.8.5
Deploy default Backup app
Restore previously backed image WITH prune enabled (marked and recommended by default)

Short version to reproduce

Deploy Rancher 2.8.5
Create the following secret

kubectl create secret generic aws-secret \
  --from-literal=accessKey=xxx \
  --from-literal=secretKey=yyy

Deploy default Backup app with this info:

bucketName: epinio-ci
  credentialSecretName: aws-secret
  credentialSecretNamespace: default
  enabled: true
  folder: mmt-rancher-backup
  endpoint: s3.eu-central-1.amazonaws.com
  endpointCA:
  insecureTLSSkipVerify: false
  region: eu-central-1

Go to Restore Backup and ensure "Prune" checkbox is marked
Using the previously pointed information target this bucket: 285-bu-07241230-da49091a-ddeb-4196-881d-d032bea9ea6e-2024-07-24T10-36-02Z.tar.gz. It basically contains this gitrepo on local cluster:

URL: https://github.com/rancher/fleet-examples
Branch: master
Path: simple

Observed Behavior
Rancher pod gets deleted and although tries to recreate is never able to do so
https://github.com/user-attachments/assets/bb3f3900-3245-4851-acf5-0eece0402760
Expected behavior
Pod should be able to recover well.
Gitjob is correctly deployed and active
Additional info

This affects Rancher 2.7-head, 2.8-head and 2.9-head, however, it seemed not to affect Rancher 2.7.6(at least when tried for anoher issue)
If the recovery is done within the same cluster that the back was taken, the UI survives
If the restore is done WITHOUT pruning, the UI survives, although ocassionally the gitjob is in a waiting status

Testing environment

Single cluster k3s with k8s version v1.27.10+k3s1

ping @MKlimuszka - asking for help

The Rancher pod going down during a prune is expected behaviour for an in-place restore. The prune setting is true by default to facilitate in-place restores and should be false for migrations. From reading the short steps and the longer steps it's a bit unclear if this process should be a migration or an in-place restore.
This part of the short steps makes me think a migration:

Create a Backup using the Backup app on Rancher (preferably on S3)
Create a new Rancher 2.8.5

As does this:

If the recovery is done within the same cluster that the back was taken, the UI survives

Overall my advice would be to follow the migration documentation to successfully restore the backup on the new cluster. This restore is done without rancher installed/running at all, and once successfully restored you start rancher. After which point you should create new backups for the rancher app running on this cluster.
From a "In-place restore" vs "Migration" point of view, the primary question to ask is "what cluster did Rancher live on when this backup was taken?" If the answer is "a different one", then it's a migration; otherwise it can be an in-place restore. Even though the backup was successfully restored once upon migration, the backup was still created on a different cluster so should not be used for in-place restores.

The Rancher pod going down during a prune is expected behaviour for an in-place restore. The prune setting is true by default to facilitate in-place restores and should be false for migrations. From reading the short steps and the longer steps it's a bit unclear if this process should be a migration or an in-place restore.
This part of the short steps makes me think a migration:

Create a Backup using the Backup app on Rancher (preferably on S3)
Create a new Rancher 2.8.5

As does this:

If the recovery is done within the same cluster that the back was taken, the UI survives

Overall my advice would be to follow the migration documentation to successfully restore the backup on the new cluster. This restore is done without rancher installed/running at all, and once successfully restored you start rancher. After which point you should create new backups for the rancher app running on this cluster.
From a "In-place restore" vs "Migration" point of view, the primary question to ask is "what cluster did Rancher live on when this backup was taken?" If the answer is "a different one", then it's a migration; otherwise it can be an in-place restore. Even though the backup was successfully restored once upon migration, the backup was still created on a different cluster so should not be used for in-place restores.

Thanks @mallardduck .
The issue was raised under the wrong assumption that migration could be done the same way of restoration on the same cluster. Not being the case, I understand this issue does not apply anymore. Closing it.


Fixed suppressing exceptions raised by onTimer action.

For some unclear reasons the Timer class suppressed exceptions and the OnException action was never called (so error handler didn't work before this fix).

@PeterKottas please review and consider to merge. Thank you!

Hey mate, just came back from a long holiday, that's the reason I haven't replied sooner. Will have a chance to give my attention to github again in the following days. Sorry for the wait, I'll check it out and let you know soon ;)


[Compatibility] Conflict with DAE causes Max Spell Points to increase on cast

Not sure why this is happening but I think it might be a change to something with DAE recently or with 1.2.2 DND 5e (i've not experienced it before)
However, if an effect from DAE increases the max spell points (for example, resources.primary.max + 10), casting a spell on an actor with spell points enabled and consuming the points will increase the maximum value by some strange amount.

Addendum, I realize the amount being increased is based on what's being added by dae. For example, if you have resource.primary.max + 10, the maximum value of the spell points increases by 10 each time. I assume the maximum value is being re-calculated and updated on each cast, causing this to happen.

Addendum, I realize the amount being increased is based on what's being added by dae. For example, if you have resource.primary.max + 10, the maximum value of the spell points increases by 10 each time. I assume the maximum value is being re-calculated and updated on each cast, causing this to happen.

This is how generally Active Effects work, you'd have to use another syntax for it to be bug-less as it will change everytime you update it. Like how you change your AC while wearing armor it will update back to the set amount by the armor.

This is how generally Active Effects work, you'd have to use another syntax for it to be bug-less as it will change everytime you update it. Like how you change your AC while wearing armor it will update back to the set amount by the armor.

Seeing as I didnt have dmg progression on, I don't think theres any reason it should be updating the max anyways.

Seeing as I didnt have dmg progression on, I don't think theres any reason it should be updating the max anyways.

the "calculateSpellPoints" funcion is the one responsible of changing the max spell point resource value, this funciont is called only on class item update and it does nothing if the DMG calculations is "off".
There must be something else going on here.

the "calculateSpellPoints" funcion is the one responsible of changing the max spell point resource value, this funciont is called only on class item update and it does nothing if the DMG calculations is "off".
There must be something else going on here.

I figured out the issue. On line 183/184, you have it updating the entire resource as opposed to only the value when processing the points after casting.
   update.data.resources = {
      [spellPointResource.key] : spellPointResource.values
    };

This particular block seems to update both the current and max spell points when it runs.
Instead, it should only update the value of the resource.
I tried it using this block of code and it works as expected (but not efficiently because I literally copy-pasted from later down the code lol)
let updateActor = {[`data.resources.${spellPointResource.key}.value`] : spellPointResource.values.value};
        actor.update(updateActor);

I imagine you probably figured this out by now since it's been a while since this issue was posted

This shuld be fixed in version 1.1.4


Remove QUIT from return switch.

I think that it's better to remove QUIT from return switch on row 78.
Because according to the documentation https://redis.io/commands/quit/
"Note: Clients should not use this command. Instead, clients should simply close the connection when they're not used anymore. Terminating a connection on the client side is preferable, as it eliminates TIME_WAIT lingering sockets on the server side."
"As of Redis version 7.2.0, this command is regarded as deprecated.
It can be replaced by just closing the connection when migrating or writing new code."

Good catch 👍
Should be an easy fix.


feat: add out of the box banner component

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#221  👈
#220
#219
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @connorlindsey and the rest of your teammates on  Graphite


[text-field]: Size API - default width on the host, host width controls the input's width

Usage of size attribute to set the size of the textfield.

@yinonov , @YonatanKra
usually when we are using attributes its for pre-defined members (like connotation, shape density...).
Are we doing this in the text-field?
why not change the width with css-variable or simply setting default width on host and user can change it with style on component?

@yinonov , @YonatanKra
usually when we are using attributes its for pre-defined members (like connotation, shape density...).
Are we doing this in the text-field?
why not change the width with css-variable or simply setting default width on host and user can change it with style on component?

@rachelbt
https://www.w3schools.com/tags/att_input_size.asp

@yinonov
I've set in the linked PR 20ch default inline-size as we talked.
I've opened an issue for using the size API


Per tag generation doesn't work when passed using JSON

To Reproduce

Create script to use per tag using json based open API spec (https://api.unkey.dev/openapi.json)

import * as OpenAPI from "fumadocs-openapi";

void OpenAPI.generateFiles({
  input: ["*.json"],
  output: "../content/docs/reference",
  per: "tag",
})

Run script and no errors are caught in promise rejection nor files generated

Current vs. Expected behavior
Expect a page for each tag generated however no pages are generated.
Provide environment information
Node.js v22.1.0

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 24.0.0: Thu May 30 21:33:22 PDT 2024; root:xnu-11<IP_ADDRESS>1.2~1/RELEASE_ARM64_T8122
  Available memory (MB): 16384
  Available CPU cores: 8
Binaries:
  Node: 22.1.0
  npm: 10.7.0
  Yarn: N/A
  pnpm: 9.0.6
Relevant Packages:
  next: 14.2.4 // Latest available version is detected (14.2.4).
  eslint-config-next: N/A
  react: 18.3.1
  react-dom: 18.3.1
  typescript: N/A
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)
Integrations (e.g Contentlayer, OpenAPI, Typescript DocsGen)
Additional context
Thanks for fixing the docs, it seems per tag generation doesn't work with the tag option flagged.
For example
import * as OpenAPI from "fumadocs-openapi";

void OpenAPI.generateFiles({
  input: ["*.json"],
  output: "../content/docs/reference",
  per: "tag",
})

Doesn't generate anything and no errors are caught.
The JSON is valid and has tags for example
"/v1/keys.getKey": {
      "get": {
        "tags": ["keys"],
        "operationId": "getKey",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The id of the key to fetch",
              "example": "key_1234"
            },
            "required": true,
            "name": "keyId",
            "in": "query"
          },
          {
            "schema": {
              "type": "boolean",
              "nullable": true,
              "description": "Decrypt and display the raw key. Only possible if the key was encrypted when generated."
            },
            "required": false,
            "name": "decrypt",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "The configuration for a single key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Key"
                }
              }
            }
          },
          "400": {
            "description": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrUnauthorized"
                }
              }
            }
          },
          "403": {
            "description": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrForbidden"
                }
              }
            }
          },
          "404": {
            "description": "The server cannot find the requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 Forbidden to hide the existence of a resource from an unauthorized client. This response code is probably the most well known due to its frequent occurrence on the web.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrNotFound"
                }
              }
            }
          },
          "409": {
            "description": "This response is sent when a request conflicts with the current state of the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrConflict"
                }
              }
            }
          },
          "429": {
            "description": "The user has sent too many requests in a given amount of time (\"rate limiting\")",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrTooManyRequests"
                }
              }
            }
          },
          "500": {
            "description": "The server has encountered a situation it does not know how to handle.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrInternalServerError"
                }
              }
            }
          }
        }
      }
    },

Original Issue https://github.com/fuma-nama/fumadocs/issues/478

Very interesting, I'll take a deeper look tomorrow (maybe add the unkey schema as a test case for ensure it's working on larger JSON schemas?)

Sure sounds good! Feel free to use our API as it is a big file.
It works perfectly without the tag! Let me know how I can help @fuma-nama

I copied the JSON schema of Unkey, it turns out it's because the document doesn't contain info for tags on the root level.
Since the specification: https://swagger.io/docs/specification/grouping-operations-with-tags says it is optional, I think I'll support that while giving a warning about tags is not defined. (it's better to include description for tags)

And I'd also like to renew the current API so that people can customise the generator easier, so you can expect some breaking changes will be made.

Released v3 today, I've tested on the latest Unkey API schema.

awesome let me give this a shot today.
Appreciate all the work! Love to sponsor the project when / if this becomes an option

Confirmed this is all working as expected. 🚀


Response time alerts

we are getting quite a few of these
investigate and resolve
Kushal is point dev

may need to assign based on other priorities

For now, I have it suppressed for 5 hours so it is triggered less frequently.  From the data, it shows that it's only happening in WestUS2 for the in memory app.

PR #586 was created to adjust a couple Alert's threshold , we still need to keep the eye on them.


try to stabilize flimsy tests

These tests fail from time to time, e.g. in this run: https://github.com/apollographql/apollo-client-nextjs/actions/runs/8523111570/job/23344752684
Let's see if we get them more stable?

The infuriating thing is that these tests do not fail on localhost.

But downgrading my local node to v20 does fail the unit tests... Bumping the node version to 21 for the unit tests.

Logged as a node bug at https://github.com/nodejs/node/issues/52325 and pinned the node version for now.


Grey out / disable previous slots

Context
Previous events can't be created anymore with the frontend.
There will still probably be easy workarounds to bypass this feature, but that shouldn't be an issue.
Alternatives
Include an expert setting to allow previous events. There may be reasons why someone wants to allow the creation of events in the past.

I made some refactorings to improve performance and reliability.

Closes #1


test-branch/execute-job/quoted-authorization/1bd306b2-8fa8-4660-b116-37e61ffbdc92

PR for testing 1a9056d6c16e67b3eea235b125050d9c92cfc998

/canonical/self-hosted-runners/run-workflows 1a9056d6c16e67b3eea235b125050d9c92cfc998


python39Packages.python-lz4 build failure on x86_64-linux as of b1d30570

Issue description
Build of python39Packages.python-lz4 failed on x86_64-linux as of b1d3057032753ccf51bac45b145244f2cff9fc69. This is currently breaking python39Packages.tensorflow-datasets.
error: builder for '/nix/store/q4pzfva2xzhxl8fvgby4ckx6bfgymbxj-python3.9-python-lz4-4.3.2.drv' failed with exit code 137;
       last 10 log lines:
       > ........................................................................ [ 24%]
       > ........................................................................ [ 24%]
       > ........................................................................ [ 24%]
       > ........................................................................ [ 25%]
       > ........................................................................ [ 25%]
       > ........................................................................ [ 25%]
       > ............................                                             [ 25%]
       > tests/block/test_block_1.py ..............                               [ 25%]
       > tests/block/test_block_2.py /nix/store/2n1ma7vdb7312vhrbccmv97nhx0q5snc-pytest-check-hook/nix-support/setup-hook: line 53:   248 Killed                  /nix/store/6wnk0fn9zikc5ydxp91pbzhp7sc78cnz-python3-3.9.16/bin/python3.9 -m pytest
       > /nix/store/0swa08bbslxc9wbfixbcd196aa1117lx-stdenv-linux/setup: line 1586: pop_var_context: head of shell_variables not a function context
       For full logs, run 'nix log /nix/store/q4pzfva2xzhxl8fvgby4ckx6bfgymbxj-python3.9-python-lz4-4.3.2.drv'.
error: 1 dependencies of derivation '/nix/store/c85snh7dyjlrplndvjp7xl419vghmbz2-python3.9-construct-2.10.68.drv' failed to build
error: 1 dependencies of derivation '/nix/store/3p6snwq0gknrlg80ch9nvryid59chfbx-python3.9-cramjam-2.6.2.post1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/5m4lrccnmd6zada731v68d2h1s35sdbv-python3.9-fastavro-1.7.2.drv' failed to build
error: 1 dependencies of derivation '/nix/store/y3nq298n9qwb3fp5fnqjhnmyxk5m7aki-python3.9-joblib-1.2.0.drv' failed to build
error: 1 dependencies of derivation '/nix/store/xnnz6zcpy04a207p9rv7b2q5ag5jp3ns-python3.9-apache-beam-2.45.0.drv' failed to build
error (ignored): error: cannot unlink '/tmp/nix-build-bazel-build-jaxlib-0.4.4.drv-0/output': Directory not empty
error: 1 dependencies of derivation '/nix/store/zpqyzipn1vhdlw61s4hxj35xbjigbwlr-python3.9-brotlipy-0.7.0.drv' failed to build
error: 1 dependencies of derivation '/nix/store/q9797ak0vwjiivyal195czprp5ggci1m-python3.9-fastparquet-2023.4.0.drv' failed to build
building '/nix/store/5i21i9c5j8rprn9590cv164fqw8nlcd2-python3.9-pyzmq-24.0.1.drv'...
building '/nix/store/vza7k9bmwmc7b1vl5603fr4q6r62587a-python3.9-raven-6.10.0.drv'...
error: 1 dependencies of derivation '/nix/store/i8iwqfjr1p7cc6pnfpmr2dv62118y8ah-python3.9-tensorflow-datasets-4.8.2.drv' failed to build

full build log
python39Packages.tensorflow-datasets maintainers cc: @ndl
python39Packages.python-lz4 maintainers cc: @costrouc
Other cc: n/a
Steps to reproduce

Checkout nixpkgs at commit b1d3057032753ccf51bac45b145244f2cff9fc69
Run nix-build -A python39Packages.python-lz4

Technical details
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.0-1037-azure, Ubuntu, 22.04.2 LTS (Jammy Jellyfish), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.16.0`
 - nixpkgs: `/nix/store/llj3nls9hrdayymarlxarsz9iaswfm7p-source`

Contents of ~/.config/nixpkgs/config.nix:
{ allowUnfree = true; cudaSupport = true; cudaCapabilities = ["8.0"]; }

Misc.
This issue was automatically generated by nixpkgs-upkeep.

CI workflow that created this issue.
Internal tags: -553887970133908212 -6375925430813068795

       > tests/block/test_block_2.py /nix/store/2n1ma7vdb7312vhrbccmv97nhx0q5snc-pytest-check-hook/nix-support/setup-hook: line 53:   248 Killed                  /nix/store/6wnk0fn9zikc5ydxp91pbzhp7sc78cnz-python3-3.9.16/bin/python3.9 -m pytest

appears to be OOM killed

should not happen again after https://github.com/samuela/nixpkgs-upkeep/commit/c82b3619dd65ead8e0a1ce602507d216c9efadb9


Need to update steps before installation

Should update the page in in the Installation steps:
Without Set-ExecutionPolicy, will always get the error " The command was found in the module 'Microsoft.PowerApps.Administration.PowerShell', but the module could not be loaded."

Execute the following commands firstly:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
dir . | Unblock-File
2. Import necessary modules:
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber

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

ID: 02f1be79-2b3a-31da-7a7d-ace1eac5d1f1
Version Independent ID: fa7c7450-15a6-edc8-5671-f45763267ca6
Content: PowerShell support (preview) - Power Platform Admin center
Content Source: power-platform/admin/powerapps-powershell.md
Service: power-platform
GitHub Login: @jimholtz
Microsoft Alias: jimholtz

@DavidPaf
Handling this via email.


Million lint does not work in VSCode

What version of million are you using?
1.0.0-rc.23 (Million Lint)
Are you using an SSR adapter? If so, which one?
None
What package manager are you using?
npm
What operating system are you using?
Windows
What browser are you using?
Chrome
Describe the Bug
We installed Million Lint, the next config looks just fine but unfortunately when we try use the Million Lint VSCode extension, it shows an error message (please see image below)
How to reproduce:

Click Ctrl + Shift + P -> "Million Lint" -> Find Issues

See the following error:

Command 'Million Lint': Find issues results in an error
command 'million.outlierViewExplain' not found
The same error with the same reproduction appears in Mac and in another windows machine.
What's the expected result?
We want million lint to work and find issues in our code.
Link to Minimal Reproducible Example
https://github.com/ornakash/million-minimal-reproduction
Participation

[ ] I am willing to submit a pull request for this issue.

Similar issue. Have yet to get the VSCode extension to work on an M3 MacBook Pro (just stating for better clarity).

Getting the same error in M2 Macbook

Just tried using it and ran into the same issue @aidenybai any hints?

In VSCode it just says "Start your dev server!"
I do see that the server has started though:
 ⚡ Million Lint v1.0.0-faire.1
 - Ingest server: http://localhost:42423

In VSCode it just says "Start your dev server!"
I do see that the server has started though:
 ⚡ Million Lint v1.0.0-faire.1
 - Ingest server: http://localhost:42423

I was having the same issue. I realised you have to actually open your application in the browser. Once I did this, I started seeing information about the page I was viewing in the VS Code Extension

I had it open for what it is worth.

Getting the same issue - browser is open, using Vitejs.

Hey guys @ornakash @jpmonette @lilouartz @AbbasPlusPlus @hobbescodes
We deployed a new product experience; hopefully, you don't need to run the command anymore! Can you try running the setup script npx million@latest? Once it's done, please restart your VSCode/Cursor. Let me know if that works for you!


Only log tx errors on higher detail level

Description
It turns out that the default logging output for ApplyTxErrs is quite verbose, which causes annoyances in benchmarking as well as in relays with all mempool logging enabled.
This PR only emits the reason for transaction removal/rejection on a higher-then-default detail level/verbosity. With the new tracing system, this can be configured like this:
TraceOptions:
  Mempool:
    severity: Info
    detail: DDetailed

An alternative approach would be to unconditionally trace the error, but make sure that it is very terse with the default detail level.
Checklist

[x] Commit sequence broadly makes sense and commits have useful messages
[ ] New tests are added if needed and existing tests are updated.  These may include:

golden tests
property tests
roundtrip tests
integration tests
See Runnings tests for more details

[ ] Any changes are noted in the CHANGELOG.md for affected package
[ ] The version bounds in .cabal files are updated
[ ] CI passes. See note on CI.  The following CI checks are required:

[ ] Code is linted with hlint.  See .github/workflows/check-hlint.yml to get the hlint version
[ ] Code is formatted with stylish-haskell.  See .github/workflows/stylish-haskell.yml to get the stylish-haskell version
[ ] Code builds on Linux, MacOS and Windows for ghc-8.10.7 and ghc-9.2.7

[ ] Self-reviewed the diff

Note on CI
If your PR is from a fork, the necessary CI jobs won't trigger automatically for security reasons.
You will need to get someone with write privileges.  Please contact IOG node developers to do this
for you.

With the new tracing system (trace-dispatcher), the necessary config would look like this:
UseTraceDispatcher: True

TraceOptions:
  "": # Options for all tracers, if not overwritten:
    [...]

  Mempool.RemoveTxs:
    detail: DDetailed

  Mempool.RejectedTx:
    detail: DDetailed


[LinksAndButtons] lesson added

[LinksAndButtons] added images and videos for demos lesson
[LinksAndButtons] added diacritics to some files
[LinksAndButtons] added lesson in Constants

Closing this one. Let's handle the task here: https://github.com/FrontEnd-ro/frontend.ro/pull/149


Add support for freebsd/arm64

Go 1.14 will support freebsd/arm64, golang.org/x/sys@33540a1f6037 is the earliest commit that brings in necessary arm64 bits.

Looks good to me, have plans to use lab on freebsd/arm64, please share!


ensure eslint  have not lint oxlint's rules.

Confirm.
https://eslint.org/docs/latest/use/configure/configuration-files-new#rule-configuration-cascade.


where does the input dimension changes in discriminator?

I'm using PGGAN and I found out that
in the optimizeParameters function on base_GAN.py, the self.real_input shape changes right after it enters discriminator(before going through any layers).
the self.real_input had shape of [16, 3, 4, 4]
and I printed out the input x, in the discriminator forward function
It printed [4,3,4,4] .
why is that and where does it change the dimension?

Did you use multi-GPUs to train?

Did you use multi-GPUs to train? Maybe 4 GPUs I guess?

Yes that was the problem.


small race in the HTTP watch init code

This is sometimes triggered if you run ./test.native test HTTP.MEM 4 --verbose &> l in a loop.

Is this bug this error?
### stderr ###
# Failure("Fail workers:  watch-tag add 0:true x=1/0/0:1/1 s=0/0/0:0/0 0/0 (322, 300.810s): expecting 0/0, got 0/1")
# W: Test 'test_irmin' fails: Command '/home/travis/.opam/system/build/irmin.0.9.4/_build/lib_test/test.native -q' terminated with error code 2
# E: Failure("Tests had a 100.00% failure rate")
# make: *** [test] Error 1

Because if so, it can also mess up Travis builds for programs that depend on Irmin ;-) (maybe we should only run tests for the package being tested?)

yes this is indeed the error ... I need to find time to fix this, sorry :-(

No problem; just checking it was known!

maybe we should only run tests for the package being tested

the opam file has been fixed to do this in 0.9.5

Can definitely reproduce with the test loop described in the first post:
2015-06-19 15:35:06.413 HTTP         DEBUG: post /tag/watch {"task":{"date":"1434724506","uid":"661","owner":"Irmin piana.mac.cl.cam.ac.uk.[..
2015-06-19 15:35:06.413 WATCH        DEBUG: watch [6: 0k/0g]: id=50
--------------------------------------------------------------------------------
2015-06-19 15:35:06.413              INFO : ASSERT workers: [pre-condition] watch-tag add 0:true x=0/0/0:1/0 s=0/0/0:0/0 0/0 (0, 0.000s)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2015-06-19 15:35:06.413              INFO : ASSERT state: [pre-condition] watch-tag add 0:true x=0/0/0:1/0 s=0/0/0:0/0 (0, 0.000s)
--------------------------------------------------------------------------------
2015-06-19 15:35:06.413              DEBUG: [waiting for]  watch-tag add 0:true x=1/0/0:1/1 s=0/0/0:0/0
2015-06-19 15:35:06.413 HTTP         DEBUG: post /tag/update/t0 {"params":"ffde71f2990949351222f5fe8968cde1d819703c"}
2015-06-19 15:35:06.416 HTTP.server  INFO : Connection 15: POST /tag/update/t0
2015-06-19 15:35:06.416 HTTP.server  DEBUG: process: length=53 body="{\"params\":\"ffde71f2990949351222f5fe8968cde1d819703c\"}"
2015-06-19 15:35:06.416 MEM          DEBUG: update
2015-06-19 15:35:06.416 WATCH        DEBUG: notify-all[3.0]: firing!
2015-06-19 15:35:06.416 WATCH        DEBUG: notify-all[3.1]: firing!
2015-06-19 15:35:06.416 HTTP.server  INFO : Connection 14: POST /tag/watch
2015-06-19 15:35:06.416 HTTP.server  DEBUG: process: length=115 body="{\"task\":{\"date\":\"1434724506\",\"uid\":\"661\",\"owner\":\"Irmin piana.mac.cl.cam.ac.uk.[.."
2015-06-19 15:35:06.416 HTTP         DEBUG: got response: {"result":null}
2015-06-19 15:35:06.416 WATCH        DEBUG: watch [3: 0k/2g]: id=2
2015-06-19 15:35:06.416              DEBUG: check-worker: expected 0/1, got 0/0
2015-06-19 15:35:06.416 HTTP.server  DEBUG: Connection 15: closed!
2015-06-19 15:35:06.418              DEBUG: Test.retry 0, 0.001s
2015-06-19 15:35:06.418              DEBUG: check-worker: expected 0/1, got 0/0
2015-06-19 15:35:06.420              DEBUG: Test.retry 1, 0.004s
...
2015-06-19 15:40:06.957              DEBUG: Test.retry 320, 300.541s
2015-06-19 15:40:06.958              DEBUG: check-worker: expected 0/1, got 0/0
2015-06-19 15:40:06.965 MEM          DEBUG: iter
                  [ERROR]
Failure("Fail workers:  watch-tag add 0:true x=1/0/0:1/1 s=0/0/0:0/0 0/0 (321, 300.541s): expecting 0/0, got 0/1")


c program execution problem

Type: Feature Request
no c file is executing it says no such or directory
VS Code version: Code 1.90.2 (5437499feb04f7a586f677b155b039bc2b3669eb, 2024-06-18T22:34:26.404Z)
OS version: Windows_NT x64 10.0.22631
Modes:

This sounds like an issue with your code or configuration


Parser is not running startElement if XML contains &ndash

This looks strange however I'm not an expert in XML formatting..
I have a XML response which replaced all #8122; (which is dash symbol) with &ndash. Unfortunately startElement of node-expat's parser even doesn't run now.

Trying to reproduce with <lol>––</lol> and getting:
[["startElement","lol",{}],["text","–"],["error","undefined entity"]]
Please paste your sample XML.

Closing as there's been no response from the original poster.


Setup UI test for application

Why
Setup UI test for an application.
Acceptance Criteria

Setup UI test structure for an application
Add tests for current UI
Able to run on Github Actions

Closed: Release 1.0.0 mainly focus on API projects.


add debug locks version

Checklist

[X] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[X] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

This is a version that enables debuglocks for debugging.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Navier Miniapp

Hi !
I would like to understand this miniapp, can I have a reference for this code ? I would like to know the weak formulation of the problem, for example.
Best wishes,

See https://mfem.org/fluids and the references therein.

Hello,
If I understand correctly you use a projection methods to solve equations. In this method, I don't uderstand when you solve div(u) = 0 ?
Best wishes,
LS

Like described in the references, the incompressibility condition, div(u) = 0, is imposed weakly by replacing terms during the derivation.

So you never solve div(u) = 0 directly?

No, it is implicitely being solved, as the term div(u) = 0 was being used while deriving the formulation that is implemented. That means, the implemented formulation also satisfies div(u) = 0.


Use released version of authoritative catalog repos for releases

It looks like a fork of concepticon/concepticon-data and a non-released commit is used here:
https://github.com/lexibank/bodtkhobwa/blob/288d281a7ab05dd1a1698125c39dda1ede35a0a2/cldf/cldf-metadata.json#L31-L32

I think it would be good practice to use clones of the original repos, and only release tags.

Maybe it's even a good idea to use a special, read-only clone of the catalogs for dataset creation. With cldfbench catconfig that should be relatively easy to achieve.

Yes, but if I am "developing" datasets, I have to change in multiple directions, and in those cases, I am reluctant of fixing one thing, as it may often appear that I have to change, e.g., something in Concepticon as well. As this is not yet released, I guess, it is enough to account for that, once all repos are in place.

Yes, using a read/write repos is fine as well - although it might require more attention. But I would not use personal forks of the repositories, because that makes tracing provenance a lot harder.

Yes, that's fine, I'll switch to that. I just need to get used to it, as before the personal fork was the standard, and now I need to slowly get my data adjusted.

Fixed here: https://github.com/lexibank/bodtkhobwa/commit/ba8ef3850a9b63fafdc216a1f39854b80e7ed099


Have it supportted JupyterLab 3.x?

I've started working on this repository again, and first try to support v2 in #96. After v2 is released, I'll work on v3 support.
I need to investigate what are the theme-releated breaking changes between v1/v2 and v2/v3, so it may take a while. If you want to track the progress, please subscribe the PR above.

I've started working on this repository again, and first try to support v2 in #96. After v2 is released, I'll work on v3 support.
I need to investigate what are the theme-releated breaking changes between v1/v2 and v2/v3, so it may take a while. If you want to track the progress, please subscribe the PR above.

PR for v3 support can be tracked at #97.

PR for v3 support can be tracked at #97.


Update SDK models

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Found some issues with the new models in codegen.

Issues have been resolved.


Redesign Parser for Complex Numbers

The complex number parser and lexers should be redesigned to be more simple and allow for scientific notation.
The parse and lexer are implemented in org.flag4j.io.parsing.ComplexNumberParser and  org.flag4j.io.parsing.ComplexNumberLexer.
The parser should be able to parse strings of any of the following forms where a, and b are string integers or decimal numbers which may also be negative. White space does not matter:

"a + bi" or "a - bi"
"a + i" or "a - i"
"a + -i" or "a - -i"
"a"
"bi"
"i" or "-i"

In addition to the above forms, a and b may be in scientific notation and thus either may be represented as the following strings where  x, and y are string integers or decimal numbers which may also be negative. White space does not matter:

"xey" which represents $x*10^y$
"xEy" which represents $x*10^y$

Deterministic Finite Automata for parsing a number:

Non-deterministic Finite Automata for parsing a complex number where \d-DFA is the number DFA from above. Can easily be made deterministic be removing $\varepsilon$ connection and replacing with two outgoing edges of \d-DFA's start state. Further, the accept states and edges of  \d-DFA need to be removed. The edges from \d-DFA which used to connect to the accept state within \d-DFA need to now connect to the accept state in the NFA and the edge value needs to be replaced with the edge value of the edge connecting the \d-DFA node to the accept state.

If the complex number lexer implemented this Finite Automata then it would allow for a huge simplification in the parsing grammar as both the real and imaginary value tokens can then be parsed by Double.parseDouble(String). The grammar would become:
Simplified CFG:  is a double parseable by Double.parseDouble(String) (i.e. ). Assumes all white space has been removed.
<COMPLEX_NUMBER> → <DOUBLE>
   | <DOUBLE> <Sign> <IMAGINARY>
   | <IMAGINARY>
<IMAGINARY> → <DOUBLE> i
   | i
   | - i
<SIGN> → + | -


Fix Typos in Documentation

Fix Misspelling of RMarkdown from RMarkdwon
Fix SQL File Template Description to Correctly Express Composition

Fixes #3933

@TheFanatr : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@TerryGLee: I'm sorry - only the author of this article, @kraigb, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


A way to use target temperature in an automation

Is your feature request related to a problem? Please describe:

I am trying to use the set temperature on the thermostat as a test condition for automations.
The Home app doesn't allow me to use the thermostat in an automation condition at all.  Eve lets me test against the mode (cool/heat/off) and temperature but, after a lot of bashing my head against the wall trying to work out why my automations weren't working, I discovered that the temperature value Eve lets me have is the detected temperature (which on my system is always 0, due to the Touch Wifi's limitations).
What I'm ultimately trying to achieve with my automations is to change the zone settings based on temperature sensors I've placed around the house.  Our HVAC system is not particularly well designed.  If we want to cool or heat both upstairs and downstairs, upstairs always reaches the target temperature much quicker than downstairs, but the system keeps on blowing everywhere until everything is at the target temperature.  At the moment, the result is that upstairs is like a refrigerator while downstairs is still warmer that we'd like it.  Switching the upstairs zone off in that situation helps with both of those issues (stops cooling upstairs, more cool air blowing downstairs).
So, in essence, I'm trying to set up an automation that triggers at regular intervals, checks the target temp on the thermostat against a sensor in each zone, and then turns the zone off if it's already at temperature.
Describe the solution you'd like:

For the lack of a better idea, would it be possible to add (optional) dummy switches which are switched on when their respective temperature is set on the thermostat, and off otherwise?
So, say, a switch for each of 16, 17, 18, 19 ... 24 (that's about as extensive a range as we use across the year).
I could then use those in my automation conditions.
Describe alternatives you've considered:

I imagine it would be non-trivial to get Apple or Eve to change the way their apps read thermostat data for automation conditions.
Additional context:

I hope that I'm not missing an obvious solution / just not operating the apps correctly.
Many thanks.

Hi @VocalOverdub, yeah the HomeKit automation can be a bit limited. One option you could try is MQTT. The plugin will report the target temperature via MQTT. You might then be able to use node-red or homebridge-mqttthing to do the automation you want.

Once again, thank you very much for being both helpful and quick.
I had seen MQTT mentioned in your documentation, but had no idea what it was.
I'm now running mosquitto and homebridge-mqttting, and have everything I need to do what I want.


Removing repetitive parts in docs

Currently:

The section Verification Manual is repeated, because of the later .. include.
I would just remove this part here, and leave Verification manuals without the summary header.

Thank you @germa89 for catching this error!
However, I would done the contrary and change the :start-line: to keep an identical structure for the Verification Manuals and the Technology Showcases

Way better! I am doing that then!


Consider RETURN_TIME_AS_PERIOD for timestamp times

This should fix #920

Hi @onlynone! Thanks for opening this PR.
This definitely should work. Could you add a test that covers this change?

I think it's not necessary to add the 4 examples to the test, but it's ok for me.

cc: @Gallaecio


Update RPC endpoints adding support to historical querying

Depends on https://github.com/lambdaclass/ethereum_rust/issues/244
All these endpoints receive a Block param to specify which state to use
eth_call
eth_createAccessList
eth_getBalance
eth_getCode
eth_getStorageAt

We use use that block to get the state_root and use it as an entry point to query the state

Would like to work on this. Some more context could be helpful.
As I understand, this can be worked on only after world state persistence is done?

Hi @varun-doshi , we're not taking external contribution yet, we want the project to be a bit more mature before that

Understood
I'll circle back once its open for contributions


Need to support deploy to on-premise machines

We need to support deploy to on-premise machines.

GCP ref docs:

https://cloud.google.com/load-balancing/docs/negs
https://cloud.google.com/load-balancing/docs/negs/internet-neg-concepts


Install 'dot' inside container so make product-graph works

Fairly straightforward - AOSP lets you use 'make product-graph' but it relies on the 'dot' binary to write the result out to a PDF

Pull requests are welcome. :)


CIF upgrade from 1 to 2

I cant find a QA section or anything that discusses upgrade of the CIF from 1.0 to 2.0 for customers with existing 1.0 running in their system. Do we simply install CIF2.0 and both would run?

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

ID: 2f3accbb-99d5-96ee-94e1-4315b3901388
Version Independent ID: b871c767-ae4e-2240-0782-0126b1dc149a
Content: Dynamics 365 Channel Integration Framework guide
Content Source: ce/customer-service/channel-integration-framework/channel-integration-framework.md
Service: dynamics-365-customerservice
Sub-service: channel-integration-framework
GitHub Login: @gandhamm
Microsoft Alias: mgandham

Thanks for your comment, @aledoy. This issue has been assigned to the doc author for review.

@aledoy
Thank you for your comment. I've forwarded your question to the engineering team and here's their input:
1,0 and 2.0 can co-exist, as mentioned earlier, depends on which app the user wants to have channel providers configured. As for package installation. In the past v1 and v2 are independent packages. Now its part of cifv2 single package so no upgrade required anymore.
I hope this has answered your question. We will go ahead and update our FAQ document with this information.

What if the customer already has 1.0 and wants to be on 2.0, what are the steps? Do they simply install 2.0 and leave 1.0 in the environment?

@aledoy,
Yes, that's correct. Both can coexist in the same environment. CifV2 is for multisession apps and CifV1 is for single session apps. CifV2 has different channel provider entity and different configurations than CifV1.

@aledoy, I hope our response has helped you with your issue. I'll be going ahead and closing this topic now. If there are futher queries, please feel free to reach out to us.


Error in view data / url prop

Currently if the project has the base url localhost/test and we navigate to some/sub/page the result is a url change to localhost/test/test/some/sub/page in the brower by inertiajs. This url no longer matches the route we are currently at.
The issue seems to be that a path as part of the base url is not handled correctly.
This line in \Inertia\Response causes the issue.
'url' => $request->getBaseUrl().$request->getRequestUri(),

This looks like a duplicate of #236

I do not believe this is a duplicate of #236, but a solution might solve both issues.

@claudiodekker seems this was introduced in https://github.com/inertiajs/inertia-laravel/pull/333
If I am not mistaken this anyway shouldn't be Inertia's job. The behavior before was just fine and the issue which lead to the PR should be solvable by e.g. setting root in the NGINX config (untested).

It should in my opinion be Inertia's job to handle different server configurations. The problem as far as I can see is that #333 is the wrong fix for the problem. At least in my case where I'm setting RewriteBase /to/project in .htaccess
The combination of $request->getBaseUrl() and $request->getRequestUri() generates a invalid url with that server config. Looking at how fullUrl() / getUri() builds the url $this->getBaseUrl() + $this->getPathInfo() + $queryString (or fullUrl()) seems to be the right approach and should handle more server configurations.

Thanks @kimhf. I can't wait this gets released.
I have just started using inertia a couple days ago. This will solve my problem with a project in subfolder.

Hope this gets fixed soon, it fixed my issue as well. ✊

also interested in a fix, at the moment I have to mess with the toResponse function in /vendor/inertiajs/inertia-laravel/src/Response.php

I am also interested in this fix! Currently unable to update a site to Laravel 9 because of this issue.

This also fixed my issue. Hope it gets merged soon.

Holy sh**! I lost one week of my life because of this bug!
I tested 3 different web server (apache, nginx, IIS) to finally find this bug!

I noticed this issue after submitting issue #421 and proposing PR #422
I spent 4 hours this afternoon before finding this bug!

also interested in a fix, at the moment I have to mess with the toResponse function in /vendor/inertiajs/inertia-laravel/src/Response.php

This is how I've dealt with it too in the meantime.

This fixed my problem too, I'm glad I found the solution I was struggling since the beggining of this week. Thanks

I spent a lot of time trying to fix this thing in my nginx conf, until I started looking at Laravel & InertiaJs packages to understand the source of the duplication. Definitely this patch is the right solution for the problem. I can't wait to see this merged (in the mean time, I'm going to production with a fork ¯_(ツ)_/¯).

I can't wait to see this merged!!!!!!!!

I have same issue so i downloaded the package and edited it localy


Fixed #2006 - AnalyzeBehaviour::getUniqueGoalId

Fixed #2006
Take the Shapes graph and the data graph and create Strings of those statements. Order them in Array and calculate the SHA-256 Hash of this sorted array. Convert the hash to base64 and return it.

closing in favor of #2008


Add list users and list members to SDK

FEATURE REQUEST

Add missing functionalities list users and list members to Users SDK.

must-have

There is already PR for this issue
https://github.com/mainflux/mainflux/pull/1589


local rate limit: follow up to #21327

Signed-off-by: Kuat Yessenov<EMAIL_ADDRESS>Commit Message: Change to unsigned, added wrap-around, more comments.
Additional Description:
Risk Level: low
Testing: regression testing
Docs Changes: no
Release Notes: no
Platform Specific Features: no

LGTM but you need to fix DCO, sorry.
/wait

/retest


VolumeDriver parameter is not documented in the API

VolumeDriver is introduced here, but not documented, as far as I can see.
I believe it should be in docs/sources/reference/api/docker_remote_api_v1.19.md, at least.
Noting that #15342 seeks to move it somewhere else.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

I added it to v.1.21, you can see it in https://github.com/calavera/docker/blob/6549d6517bf9a7c79d21a86cbf36af10fcdbfbe0/docs/reference/api/docker_remote_api_v1.21.md
It was added for 1.19 only for experimental, I don't think it needs to be documented there.
It is fully supported in 1.20, but as you mention, it's in the Config struct. I rather not port the documentation back because, as #15342 describes, it makes the container configuration not portable.
Thanks for reporting it, I'm going to close the issue as fixed, but feel free to reopen it if you have further comments.


Update dubbo-fescar.md

rename Fescar to Seata
What is the purpose of the change
rename Fescar to Seata
Brief changelog
rename Fescar to Seata
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Test your code locally by running docsite start, and make sure it works as expected.
[x] Make sure no files under build directory is added.
[x] If this contribution is large, please follow the Software Donation Guide.

already merged with another PR.


Output standardization and formatting

This is related to: #824
The current accepted solution to format output looks somewhat like this:
[#] Informational [and human readable] output
10.0

While this works fine for simple outputs, it does not really transform very well for more formatted output [like tables] as you can see here:

The table header is shifted four characters to the right, which breaks the alignment with the actual values below.
As human-readability is important for the AAA, this should be formatted in a better way, so the header conforms to the values below properly.
Now there are several ways to circumvent this, some better and more practical than others:
1. Allow [#] to occur at the end of the string
This may introduce some inconsistencies, as there could be a mix of implementations using [#] at the end instead of the start, but it would be a pretty simple fix for these kinds of issues.
2. Use some kind of zero-width unicode character
It would be possible to print out a unicode character which takes up no space, such as the zero-width space.
Now this has the big advantage of being invisible to someone just executing the implementation or looking at its source code.
However it would be very unintuitive for developers, as you need to copy paste the char in front of every string and depending on the IDE/Text editor this may be more or less difficult. It also may not be displayed properly on GitHub (which makes reviewing harder) or in terminals that do not support non ASCII chars.
Older languages and esolangs may also not have support for unicode characters.
3. Use some kind of control ASCII character
This is basically the same as above, but instead of using a unicode character, it would be possible to use C0/C1 ASCII control codes.
All the points above (unintuive for developers/reviewers, difficulties with rendering) do still apply, but nearly every language does support ASCII.
However this does not seem to be a suitable solution, as these chars often get rendered like this:

While I haven't tried all of the control characters, it looks like they all get rendered the same (which disqualifies them, as they are not zero-width in nature, which was the original goal).
4. Use smaller character to indicate non-result output
It would be possible to use | instead of  [#], which would mitigate the problem as it does not shift the output as much.
However it would not be that clear to the reader why it is there and it does not look as good as the original solution.

None of these ways seem ideal to me, but currently I think that the first or fourth way would be the best, as the others do have major limitations which may have unforeseen impact in the future.
As this is kind of blocking the output standardization, comments and thoughts on this would be greatly appreciated.

I'd think using [#] at the end of all control strings would be a better idea, and we would need to remove inconsistencies afterwards for the already-standardized one (I think it's a bit of work, but not that bad, except for annoying languages).
You really can't use | for now, because of the way the Computus table is displayed for JavaScript... As it uses console.table(values);, the output uses | for everything...

As a naive question, would it be possible to have the character be [#]\n instead of [#]? This way we don't have to change things too much, and can still get readable output?
The other comment here is that we need the tables to be consistent for each implementation so that they can be properly verified. Should we create a "print table" command and put it in some sort of "aux code" directory where we can also put any code that is necessary to format output for the validator?

As a naive question, would it be possible to have the character be [#]\n instead of [#]? This way we don't have to change things too much, and can still get readable output?

It would be possible to use [#]\n, however in my opinion it clutters up the output a bit, as we would now have two lines without the actual result, see:
[#]
Result One:
400

vs
[#] Result One:
400

vs
Result One: [#]
400

I don't have strong feelings about any of the options, but I think that more concise output should be favored.

The other comment here is that we need the tables to be consistent for each implementation so that they can be properly verified. Should we create a "print table" command and put it in some sort of "aux code" directory where we can also put any code that is necessary to format output for the validator?

While it would be possible, this would require a print table function for every language which would need to be included in every implementation printing this (adding non algorithm related code to the implementations).
There has already been some discussion on this topic on discord [here] (related to how lists get printed out) and the outcome was that writing a parser which accepts lists/tables from multiple languages and transforms them into a more consistent format should be done.
This way no implementations would need to get changed and it would not be required to print out lists/tables in non language-idiomatic ways.

I am still pushing for the [#]\n character as it makes formatting tables in the terminal slightly easier; however, I am happy to be overruled.

Okay, as we decided on using [#]\n #855 and #857 need to be reworked as they are currently using the old style. Apart from that, nothing stands in the way of output standardization. I'll update related issues.


Reconcile output format for Float and Decimal

Today (with the Decimal Infra PR), Float( 1e20 ) results in 1E20 and Decimal( 1E+20 ) results in<PHONE_NUMBER>00000000000.  We need to rationalize if these should the same, different, and what formats we should use by default.

We should have a test that explicitly calls Text function:
Text(Float(1e20))  // "1e+20"
Text(Decimal(1e20)) // "100000000000000000000"

Addressed by https://github.com/microsoft/Power-Fx/pull/1709


Could i intall this package by CocoaPods ?

I'm stucking in swift PM fetching/resolving :(
I really need this package
I need you help

there's something wrong with your project configuration that won't let you fetch this library. no one else has this issue


Fix bug which sometimes resulted in wrong deck opacities

I was able to replicate this bug reliably when the last card of a deck was going to a player's own score pile.

Yeah and the delay feels pretty natural actually.


Modification of README.md file, & Creation of dedicated Contributing.md file and LICENSE.

1. Modifications in README.md file
1) Add animated line separators and add GSSoC 2024 Extended accepted banner
I want to add animated line separators in the README.md file to make it look more attractive and readable. I would also like to add the GSSoC 2024 Extended accepted image for Contributors to know that this repository is officially accepted for GSSoC contribution.

2) Replace the Contact section  with a Team section
The present Contact section in the README.md file is not looking attractive:

The Team section will look more organized and readable and let the Contributors know whom to contact if they face any issues.

3) Updation of the Contributors section
The current Contributors section is the README.md file is not updated to the latest Contributors.

I would like to update it and try to automate the process.

2. Add a dedicated Contributing.md
A dedicated file for contributors to refer to and understand where to begin with. Merging the README.md with the Contributing section reflects poor documentation style. I will provide a brief idea about the contribution in the README.md file and provide a redirect to the newly made Contributing.md file for contributors to refer to.
I would also add a redirect to Contributing.md from README.md
Reference file image:

3. Add MIT LICENSE
The MIT LICENSE is missing in your project:

The presence of a LICENSE file explicitly states the terms under which the code can be used, modified, and shared. If a project does not have a LICENSE file, it implies that the author has not granted any rights to others, and legally, no one has permission to use, distribute, or modify the code.
So, adding a LICENSE file is a best practice for open-source projects.

I would like to work on the issues so that I can contribute to making the repository more accessible and friendly for other Contributors.
Please assign this issue to me under level3, gssoc-ext and hacktoberfest-accepted(if available) labels.

@rajdeepchakraborty-rc, Sure please go ahead with this task, unfortunately I can only assign it Level 2 instead of Level 3

@rajdeepchakraborty-rc, Sure please go ahead with this task, unfortunately I can only assign it Level 2 instead of Level 3

That's fine! Thanks for assigning the issue to me. I have a few pending issues assigned to me and will start working on this issue soon after I am done with them.

I will provide you updates about the work and also ask any queries in this chat too

@rajdeepchakraborty-rc Sure 👍🏼

@SaranshBangar I wanted to update you regarding the work progress.

I have added the MIT License to your project:

I modified the Contribution Guide section:

Before

After

Also added a redirect to the Contributing.md file from the README.md file:

This is the newly added Contribution.md file that I have created:

This is the new Team Section that I have added:

Before

After

Here is a video showing the changes done:
https://github.com/user-attachments/assets/9608875d-1369-4874-9d19-fadda5d7b765
Let me know if you want any changes or something that I should add.

Resolved in #84


pull request for e2e test at 11/17/2016 03:26:02

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add pytest-plugin topic on github

You may want to make your project discoverable by adding pytest-plugin topic to this repository. See https://github.com/topics/pytest-plugin

Thanks, good idea. Done.


update systemd & dbus dependencies

Update the outdated systemd and dbus dependencies which are now provided
as go modules.  This will further tighten our dependencies and releases
and pave the way for the upcoming auto-update feature.
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

@giuseppe PTAL

Change LGTM

Had to run another go mod tidy to clean up the go.mod file. I wonder why make vendor didn't do that. Maybe we need to check the call order ?

/lgtm


TypeError: Cannot read property 'quality' of undefined

➜  BilibiliVideoDownload git:(master) ✗ node app.js
请输入av号...av50596322
这是个单P视频
(node:71797) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'quality' of undefined
at Object.getQuality (/Users/liyumin/Files/BilibiliVideoDownload/utils/getUrl.js:47:46)
at async main (/Users/liyumin/Files/BilibiliVideoDownload/app.js:20:16)
(node:71797) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:71797) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

发现原因了，不应该加av两个字。建议在文档里面写清楚一下。


Support "last_green" Bazel binary.

This commit introduces the "last_green" version specifier that allows Bazelisk users to run a Bazel binary that was built at the last green commit of https://buildkite.com/bazel/bazel-bazel, which should be close to Bazel-at-head (ideally).
Both the Python and the Go implementation have been updated.

Merged in https://github.com/philwo/bazelisk/commit/ec12a929961d473fca6a88f13a4f4465cf7af2e5 - thanks!


Support for passing filename to command

So, I absolutely love this project, but I have one problem: While I can pass the filename[s] to a Python function, I can't pass them to the command option. For normal Python code this isn't a big problem; however, compiling code with PyInstaller makes the python option unusable.
With that in mind, I would like it if you could add the ability to do something like this:
foo = menus.FastCommand('Foobar', type='FILES', command="foo ? ?", command_vars = ["FILENAME", "DIR"]
where command_vars is an iterable specifying the context menu-related variables (e.g. the filename or the current working directory) with which to replace the ?s in command.

Hm, I was curious how the python option would work with things such as pyinstaller. That's an extremely cool idea, and I never thought about it before. I'll try and implement this feature when I can and I'll close the issue then. Thanks for the feedback!

@saleguas  You're welcome.

That's an extremely cool idea

I got it from Sqlite3's Python API.

i would propose a different style
foo = menus.FastCommand('Foobar', type='FILES', command=lambda file, dir: f"foo {file.name} {fir.name}", command_vars = ["FILENAME", "DIR"]

Where file and dir are pathlib.Path. It is the more readable.

Implemented c2c4b02


stable/unifi implements subPath functionality

Is this a new chart
No.
What this PR does / why we need it:
The unifi chart can now be configured with subPath to store data in a subdirectory of existing PVs instead of only at the root directory.
Which issue this PR fixes
No issues linked to this PR.
Special notes for your reviewer:
Hi @billimek @mcronce, this PR implements the same informal standard for subPath as many other charts like stable/nextcloud, stable/prometheus, etc.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign @billimek

/ok-to-test

/lgtm


Will meteor warning prevent deployment from success?

Hi @arunoda, thx for another great Meteor tool!
However, I have problem deploying my Meteor project.
I failed at the stage of Invoking deployment and here is error message returned by mup logs -n 400
Meteor._wrapAsync has been renamed to Meteor.wrapAsync
 >> stepping down to gid: meteoruser
 >> stepping down to uid: meteor user

I guess it's because of one of the package I use still using the old code, but I want to know if this is the reason that my deployment fail, is there any workaround for this?

Hi, I have the same problem
This si my configuration:
{
// Server authentication info
"servers": [
{
"host": "ec2-x-x-x-x.us-west-1.compute.amazonaws.com",
"username": "ubuntu",
//"password": "password"
// or pem file (ssh based authentication)
"pem": "~/Downloads/pemname.pem"
}
],
// Install MongoDB in the server, does not destroy local MongoDB on future setup
"setupMongo": true,
// WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
"setupNode": true,
// WARNING: If nodeVersion omitted will setup 0.10.36 by default. Do not use v, only version number.
"nodeVersion": "0.10.33",
// Install PhantomJS in the server
"setupPhantom": true,
// Application name (No spaces)
"appName": "appname",
// Location of app (local directory)
"app": "/Users/Suriel/Documents/proyectos/xxx",
// Configure environment
"env": {
"PORT": 80,
"ROOT_URL": "http://x.x.x.x/appname",
"MONGO_URL": "mongodb://localhost:27017/"
},
// Meteor Up checks if the app comes online just after the deployment
// before mup checks that, it will wait for no. of seconds configured below
"deployCheckWaitTime": 15
}
-----------------------------------STDERR-----------------------------------
p info spawn args   '/opt/leaderboard/tmp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/share/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/include/nodejs/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/usr/include/nodejs',
gyp info spawn args   '-Dmodule_root_dir=/opt/leaderboard/tmp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
gyp info ok
npm WARN package.json<EMAIL_ADDRESS>No description
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No README data
-----------------------------------STDOUT-----------------------------------
npm-bcrypt/node_modules/bcrypt/build'
><EMAIL_ADDRESS>install /opt/leaderboard/tmp/bundle/programs/server/node_modules/fibers
> node ./build.js

`linux-x64-v8-3.14` exists; testing
Binary is fine; exiting
<EMAIL_ADDRESS>node_modules/ansi-regex

<EMAIL_ADDRESS>node_modules/ansi-styles

<EMAIL_ADDRESS>node_modules/chalk

<EMAIL_ADDRESS>node_modules/escape-string-regexp

<EMAIL_ADDRESS>node_modules/strip-ansi

<EMAIL_ADDRESS>node_modules/supports-color

<EMAIL_ADDRESS>node_modules/has-ansi

<EMAIL_ADDRESS>node_modules/eachline

<EMAIL_ADDRESS>node_modules/type-of

<EMAIL_ADDRESS>node_modules/amdefine

<EMAIL_ADDRESS>node_modules/asap

<EMAIL_ADDRESS>node_modules/underscore

<EMAIL_ADDRESS>node_modules/meteor-promise

<EMAIL_ADDRESS>node_modules/promise

<EMAIL_ADDRESS>node_modules/source-map-support

<EMAIL_ADDRESS>node_modules/semver

<EMAIL_ADDRESS>node_modules/source-map

<EMAIL_ADDRESS>node_modules/fibers
Waiting for MongoDB to initialize. (5 minutes)
----------------------------------------------------------------------------

how can fix it?

Try updating everything like meteor to 1.2 (which I suspect you did) and use node 0.10.40 which is the one compatible with meteor or 1.2.

I could finally. Some reasons is because I created a new instance on aws, so the deploy was from scratch, updated node to 0.10.40 on mup.json. Thank you.


Test Explorer: 0/0 tests passed after running all tests

When I run all tests, the label resets back to 0/0 tests passed after all tests were run.
This is very confusing.

This was a result of a bad filter function that caused all test runs to be treated extension-triggered. The "real" test run would then never have results, or get any output. More importantly, this results in "show test output" usually showing nothing. Taking this as a candidate.


Add default physics material and physics material override for root CSGShape

Adds a default physics material, same that StaticBody3D has, and adds a new property to override the default physics material.
Fixes #36893
Small demo project: csg-physics-material-demo.zip

Production edit: This closes https://github.com/godotengine/godot-proposals/issues/7568.

We've discussed this in a PR meeting, and decided it would be good to open a proposal to discuss this further. The existing issue can be converted to one, but it'd be better to open a new proposal and supersede the issue. This may be adding too much to the CSG systems which were mainly created for blocking and prototyping.

We've discussed this in a PR meeting, and decided it would be good to open a proposal to discuss this further. The existing issue can be converted to one, but it'd be better to open a new proposal and supersede the issue. This may be adding too much to the CSG systems which were mainly created for blocking and prototyping.

A proposal was opened: https://github.com/godotengine/godot-proposals/issues/7568

See also this proposal: https://github.com/godotengine/godot-proposals/issues/7401


Add link to GitHub repo to the web

Is it possible that the link is now gone? I found this repo by chance, had no idea it existed.

It is not :) Users are typically blind.</no offense>

Thanks! None taken, I was searching in the footer :)

Maybe this is a feature request (but I don't expect that so many users are desperately waiting for our repo :)

I you let me, I can send a PR to add a GH link to the footer :)

No problem, any help appreciated :)

Sorry I didn't get to this :(

It'll be in the navbar, I hope it's ok :)

Awesome, thanks!


doc: update readme

Link back to original author.
Remove open collective link (doesn't work anyways).

No, thank you! :heart:


Better e-mail adapter testing

This adds some additional tests and a better e-mail adapter check. Before, we checked the controller instead of the controller's adapter so the adapter check was always true (we always have a user controller).

Good catch! LGTM!


Feat/l4 routing

Add beta support for L4 routing using TCPIngress
Custom Resource.
Plain TCP port based routing and SNI-based routing for TLS over TCP are
supported.
Annotations for KongIngress are supported on TCPIngress resource as
well to change the protocols for the corresponding route, however, that
should be rarely required.
Documentation will follow in a separate commit in future.
Fix #343

Is this already released? Is there documentation for this?

This is part of 0.8 release happening this Thursday.


Refactor bool libfuncs to use the BlockExt trait

See: https://github.com/lambdaclass/cairo_native/pull/518
Refactor the code implementing the libfuncs to use the trait methods from BlockExt.

Good day, can you assign this task to me.

@edg-l
Hi again
Hope you are doing great.
Looking forward to contributing and learn more about the project
If not assigned yet, can I get the chance to work on this issue?

Hi @wugalde19, I have started working on  this issue already.
I  think there are a couple of open issues you can pick from the issues tab.

Closed by #563


Bump MSRV to Rust 1.38

It was released nearly 3 years ago and meets our MSRV policy.
This allows using const_in_array_repeat_expressions (https://github.com/rust-lang/rust/issues/49147) and <pointer>.cast().

FYI @cuviper (because this PR affects rayon's MSRV)
Also, aside from this PR, I would like to update our MSRV policy to support 1 year instead of 6 months. Otherwise, it is impossible for rayon to actually maintain their MSRV policy (because our current MSRV policy allows us to increase the MSRV as a minor change).

bors r+

Thanks for the heads-up. I have no problem with this tiny bump. :slightly_smiling_face:
FWIW, I'm looking at 1.56 in rayon-rs/rayon#964, but that will wait a few months yet to meet our 1-year MSRV policy.

FYI this has broken rand's CI (using Rust 1.36). It's not critical since it's only through rand using rayon as a dev-dependency, but still a little annoying seeing a patch release bump the MSRV.

@dhardy

still a little annoying seeing a patch release bump the MSRV.

We had treated MSRV bump as a major change in the past, but maintaining that policy was a pain for both maintainers and users, so we changed our policy. See https://github.com/crossbeam-rs/crossbeam/pull/444#discussion_r343737057 and https://github.com/crossbeam-rs/crossbeam/issues/503#issuecomment-631106295 for more.
(FYI, https://github.com/rust-lang/libc/pull/2845 and https://github.com/rust-lang/libs-team/issues/72 are the latest discussions on MSRV for crate widely used in the ecosystem. )

It's not critical since it's only through rand using rayon as a dev-dependency

FWIW, AFAIK, dev-deps often have much more lenient MSRV policy than the crate under test, so there are many projects that do not run cargo test on MSRV, but only run cargo build. (e.g., serde, syn, regex, tokio, futures, etc.)

Committing only to support rustc versions no more than 6 months or 1 year old honestly sounds like a sensible option to me. We've seen very little concern about bumping the MSRV of rand in the past.

but still a little annoying seeing a patch release bump the MSRV

Sorry, I shouldn't complain about something already using the best apparent solution!

@dhardy
Just FYI. I am not sure if this is the best way, but instead of bumping the MSRV of my library, I have been working around it by pinning dependencies to some older versions in Cargo.lock when testing the MSRV.
moka-rs/moka/blob/78050701a/.github/workflows/CI.yml#L55-L67
      - name: Pin some dependencies to specific versions (MSRV only)
        if: ${{ matrix.rust == '1.51.0' }}
        # hashbrown >= v0.12 requires Rust 2021 edition.
        # native-tls >= v0.2.9 requires more recent Rust version.
        # async-global-executor >= 2.1 requires Rust 2021 edition.
        # pull-down-cmark >= 0.9.2 requires Rust 2021 edition.
        run: |
          cargo update -p dashmap --precise 5.2.0
          cargo update -p indexmap --precise 1.8.2
          cargo update -p hashbrown --precise 0.11.2
          cargo update -p native-tls --precise 0.2.8
          cargo update -p async-global-executor --precise 2.0.4
          cargo update -p pulldown-cmark --precise 0.9.1


use reflection to load default externs.

We need to avoid CommandLineRunner because it's a naughty dependency in google3.
Reflection is a last resort, other options are:

make a change in closure compiler to move the getDefaultExterns to AbstractCommandLineRunner, which Tyler said is okay, then wait for a release
make the case that we want to depend on open_source_jscomp despite their concerns
copy/paste the code to read externs.zip entries and turn into SourceFile
remove our ability to understand any default libraries and require all externs be explicitly passed in

Those are all reasonable options, but this change is the easiest.

More context: this is needed to be in third_party/java_src

Well, this maintains the same dependency, except worse, because now it's only visible at runtime, right? So this does not seem like an improvement of the situation.
What about making that change to move the method, and then depending on //third_party/java_src/jscomp:head until the (weekly?) release?

This does fix the problem because we don't enter this conditional when
running internally. Previously we weren't classloading it because we used a
jar dependency.
I'll see about moving it.
On Wed, Sep 9, 2015 at 8:32 AM Martin Probst<EMAIL_ADDRESS>wrote:

Well, this maintains the same dependency, except worse, because now it's
only visible at runtime, right? So this does not seem like an improvement
of the situation.
What about making that change to move the method, and then depending on
//third_party/java_src/jscomp:head until the (weekly?) release?
—
Reply to this email directly or view it on GitHub
https://github.com/angular/closure-to-dts/pull/93#issuecomment-138948494
.

Also, since we depend on this in our open-source repo we'll need to wait
more like two weeks to get a release.
On Wed, Sep 9, 2015 at 9:51 AM Alex Eagle<EMAIL_ADDRESS>wrote:

This does fix the problem because we don't enter this conditional when
running internally. Previously we weren't classloading it because we used a
jar dependency.
I'll see about moving it.
On Wed, Sep 9, 2015 at 8:32 AM Martin Probst<EMAIL_ADDRESS>wrote:

Well, this maintains the same dependency, except worse, because now it's
only visible at runtime, right? So this does not seem like an improvement
of the situation.
What about making that change to move the method, and then depending on
//third_party/java_src/jscomp:head until the (weekly?) release?
—
Reply to this email directly or view it on GitHub
https://github.com/angular/closure-to-dts/pull/93#issuecomment-138948494
.

While we wait for a release, an easy fix is to make a local modification in the checked in version that returns an empty list here.

not pursuing this


WW-5075 Fixes for OSGi plugin in 2.5.x

Initial attempt to fix OSGi Plugin issues discovered during examination of WW-5075.

Indication is that the OSGi Plugin has been failing since Struts 2.3.4.
Applied fix to ResourceFinder to restore 2.3.x logic that was broken in 2.5.x.
Implemented changes to restore OSGi Plugin functionality for 2.5.x.
Applied changes to the OSGi Admin Bundle to function under 2.5.x.
Updated the OSGi Admin Bundle JS libraries and related CSS to newer versions.
Added new unit tests for the OSGi plugin.
The OSGi plugin will only function properly with exploded/expanded WAR files.

Hello Apache Struts Team.
This activity took a lot longer than originally planned, but finally it is at a state where a PR for 2.5.x seemed reasonable.  Originally the plan was to focus only on a 2.6.x revision, but due to all the issues found along the way (in 2.3.x, and 2.5.x), I decided it was better to stabilize the OSGi plugin for 2.5.x first.
If after a review this PR is accepted for 2.5.x, I will proceed to put together a separate PR for 2.6.x (probably not a cherry-pick, but we will see).
The Demo Bundle remains non-functional even after this PR (in part due to Spring dropping its OSGi integration a while back and the Demo Bundle depends on it).  A 2.6.x version will probably drop the Demo Bundle.

Hmmm.  The OSGi plugin builds are all failing for the same reason, unit test failures because Felix cannot create its default cache directory ("/tmp.felix-cache").
I had no issues with the unit tests failing on my local builds (using various JDKs), so it could be a Linux/Windows difference, or due to permissions in the CI environment.  Not sure if there is a workaround for either the test configuration or the CI environment for this condition.

Wow, thanks a lot!
Regarding felix cache permission issue, it seems you or user can use org.osgi.framework.storage configuration property e.g. System.getProperty("java.io.tmpdir")?

Coverage increased (+0.2%) to 47.29% when pulling d61be3e4ce7d12219678cdf1f5b3aa548222696b on JCgH4164838Gh792C124B5:WW-5075_S2_5_OSGiPluginUpdate into 4504e610f1a08e3d9f519f25048c4e83b90a1f87 on apache:struts-2-5-x.

Hi.  It looks like the latest commit fixed the test-failure issue involving the cache directory, and the builds for all four JDKs completed.
Let me know if there are any additional changes that should be made.  :)

LGTM 👍


esp_http_client: redirect_counter is never reset, will lead to redirection error if client is reused (IDFGH-12636)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v4.4.7
Espressif SoC revision.
ESP32
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
Custom Board
Power Supply used.
USB
What is the expected behavior?
I expect esp_http_client_perform to reset esp_http_client_handle_t.redirect_counter so I can re-use the http_client handle multiple times.
What is the actual behavior?
esp_http_client_handle_t.redirect_counter  is never reset.
Steps to reproduce.

Create an http client using esp_http_client_init
Set connection info / URL.
Call esp_http_client_perform multiple times, with the endpoint returning a 301 / 302 redirect
After 10 times, the error will appear. esp_http_client_perform fails.

E (88888) HTTP_CLIENT: Error, reach max_redirection_count count=10
E (88889) HTTP_CLIENT: Error response

Debug Logs.
No response
More Information.
I'm not sure if this is intended. I want to avoid creating a new http client handle every time, so I'm reusing the client handle. The endpoint/server always stays the same. I just change the POSTed content using esp_http_client_set_post_field.
Use case: POST to a server using http, but if the server returns a redirect to https, it should be followed. I guess the "ideal solution" would probably be to use the https URL in the first place, so change it on my code?

Hello @hurricanefrog
Thanks for reporting the issue. I have created a patch to fix this issue. Can you please check and let me know if the patch helps you in resolving the issue?
Thanks!
IDFGH-12636.txt


Thn 2008 http status code for invocation

Incorrect Http.statusCode tag removed from HttpIntegration and added to Invocation.

Pull Request Test Coverage Report for Build 851

0 of 0   changed or added relevant lines in 0 files are covered.
39 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.08%) to 69.022%

Files with Coverage Reduction
New Missed Lines
%

dist/plugins/Invocation.js
1
87.39%

dist/ThundraWrapper.js
4
60.57%

dist/plugins/integrations/HttpIntegration.js
9
71.67%

dist/plugins/integrations/AWSIntegration.js
25
70.47%

Totals

Change from base Build 849:
-0.08%

Covered Lines:
2650

Relevant Lines:
3589

💛  - Coveralls


Impossible to import Deployer after adding upgradable lib to hardhat config

🐛 Bug Report for hardaht-zksync plugins
💥 Plugin name
hardhat-zksync-upgradable / hardhat-zksync-deploy
📝 Description
When requiring the deploy lib in a different file after adding the upgradeable to hardhat config, the lib attempts to redefine hardhat tasks which throws to the following error
Error HH209: Redefinition of task deploy-zksync failed. Unsupported operation adding mandatory (non optional) param definitions in an overridden task.

🔄 Reproduction Steps

Step 1: in hardhat.config.js : require('hardhat-zksync-upgradable')
Step 2: in separate file : const { Deployer } = require('hardhat-zksync-deploy') (tested in separate monorepo package)
throw the following error

Error HH209: Redefinition of task deploy-zksync failed. Unsupported operation adding mandatory (non optional) param definitions in an overridden task.

For more info go to https://hardhat.org/HH209 or run Hardhat with --show-stack-traces```

🤔 Expected Behavior
Should be able to import the Deployer class.
😯 Current Behavior
Impossible to import the Deployer class in a separate monorepo package.
📋 Additional Context
I have added the following workaround https://github.com/unlock-protocol/unlock/pull/13078/commits/3b08b5a87776efe61e211f57f8aca7fb8bc75f9c which is not ideal but fixes the issue if I use 1.2.0 but will fail with 1.2.2.

It seems that in our examples, everything is works. However, in your project, we observed that hardhat imports hardhat-zksync-deploy twice index.ts, which leads to the error you encountered. To address this issue, you can use the following workaround within the helper package:
const { Deployer } = require('@matterlabs/hardhat-zksync-deploy/dist/deployer');
We'll dedicate some time to investigating why this duplication occurs within your monorepo setup. Thank you for bringing this to our attention!

Hello! I'm excited to share that we've just released a new update that integrates the deployer directly into HRE. This enhancement promises to streamline our processes even further, making deployment tasks more efficient and seamless. Additionally, we've introduced several other functionalities designed to simplify your workflow. While our official documentation for these features is still undergoing review, you can find detailed descriptions in the plugin readme. Feel free to explore these new additions to enhance your experience!