Representation of relations in on-disk format

These thoughts are based on our discussions around #409 and other single-cell stuff. However, as they are rather generic in nature I created a new ticket. As I assume that issues like these will come up in the future, my question is whether we can come up with default strategies how to address them?
There are various levels of representation that need to be consistent with each other:

The abstract Data Schema. This is basically a graph in which nodes are entities and edges are relations between them (for simplification I do not distinguish between entities and concepts as they are the same at this level).
The schema.yaml, which is the representations of the Data Schema in a file under the constrains of OpenAPI. In here, entities are represented as objects and relations as _id attributes to these objects. Whether a given _id is a primary or foreign key is not explictly specified, but naming convention (e.g., primary key is always <object_name>_id) should be good enough for now.
The TSV+JSON representation aka the "DataRep standard". Here entities become rows (for TSV) or records (JSON).

In my perception, the representation of entities across these levels is by and large ok, but it's the relations that give us trouble:

Part of the problem is the question whether schema.yaml is a representation of the Data Schema (as described above) or a template for TSV+JSON or both.
The representation of relations on the TSV+JSON level MUST be sufficient reconstruct all relations potentially present on the abstract level. While doing this, the representation SHOULD be a simple as possible.
Unidirectional linkage between entities (e.g., a Cell record referencing a Rearrangement via its rearrangement_id without a reciprocal reference being present in the Rearrangement) on the TSV+JSON is sufficient to fulfill point (2). Bidirectional linkage creates potential problems of consistency and thus SHOULD be avoided. There MAY be exceptions to this based on performance (but see (4) first).
If we accept multiple ways to represent relations (i.e., referencing from A to B, or B to A or both) we create variants, the number of which will grow exponentially with the number of entities. This creates numerous opportunities to generate ambigous output and therefore would put the burden on the side of software that reads and writes the TSV+JSON. In addition, not all implementors will be aware of the full repercussions of their chosen design. For once Freedom is Slavery, therefore we should settle to do this in only a single way.
It is unlikely that there will be any general rule to always represent relations in a specific file or file type (e.g., "always in the JSON" vs. "always in the TSV") as the best implementation depends on multiple factors:

type of relation (1:1, 1:N, N:N)
restrictions on multiple reference based on format or parsing performance
types of the linked entities (local vs. global, see (6))

Entities come in different types, which are sometimes not directly obvious to us (see discussions around Receptor):

A local entity is something that exists within a study because it was somehow observed with its context and can only meaningfully be interpreted within this context.
An global entity is something abstract that exists independent of an actual observation (it is probably the same thing as a concept within an ontology, but I am not 100% sure about this). It should be noted that while it MAY be stored remotely this is not necessarily the case, however even a local storage does not change its global type.
local <-> global relations should be represented in the local entity.

Finally, for global entities in remote repositories we need to consider whether they can be created and/or modified there (this is the same problem as for ontologies). For relations, it does raise the question of the temporary local write-caching of global entities and the update procedures once the entity is accepted to the remote repository. If we do not want to bother with a local write-cache then we need to accept that we cannot provide the complete information (as some global objects might not exist), i.e. some relations will be NULL-ed on the side of the local entity.

Part of the problem is the question whether schema.yaml is a representation of the Data Schema (as described above) or a template for TSV+JSON or both.

@bussec I haven't quite absorbed all of the above, but it seems to me that if schema.yaml doesn't capture our Data Schema AND act as a precise description of our file formats (TSV and JSON) then we aren't doing a good job 8-)

Part of the problem is the question whether schema.yaml is a representation of the Data Schema (as described above) or a template for TSV+JSON or both.

@bussec I haven't quite absorbed all of the above, but it seems to me that if schema.yaml doesn't capture our Data Schema AND act as a precise description of our file formats (TSV and JSON) then we aren't doing a good job 8-)

Yes, but also no. The schema we use is JSON schema which means it can annotate and validate JSON documents, but it has little to say about file formats, especially TSV, binary formats, and so on. However, the JSON specification describes the file format, so with the combination of the two, we have a precise description but only for JSON. There's no "TSV schema" as far as I know like we have for JSON. Mostly we do what everybody else does, which is to document the TSV with a set of descriptive rules and constraints, in particular we interpret certain JSON schema constructs (properties are columns names, nullable is blank string, etc.).
To answer your question @bussec , for JSON we have both, but not for TSV and other formats.
One thing I guess we are missing is a schema for the repertoire metadata file itself, maybe we should have something like this: if we want to be complete:
RepertoireMetadataFile:
    type: object
    properties:
        Info:
            $ref: '#/Info'
            description: Info object
        Repertoire:
            type: array
            description: List of Repertoire objects
            items:
                $ref: '#/Repertoire'

In my perception, the representation of entities across these levels is by and large ok, but it's the relations that give us trouble:

@bussec Yes, and this goes to the purpose of the JSON schema which is to just describe entities, i.e. singular JSON documents. Specification of relations between JSON documents is out of its scope. If we want to be more formal about the relations, which we probably should #347 , maybe JSON-LD is worth looking into.

It's not formal/rigorous (at least not yet), but I thought on the last call we had said that the Repertoire/metadata file would be responsible for describing relationships: this Rearrangements file(s) goes with that Cell file and those Clones. That seems like exactly what JSON-LD is for, so +1 for that.

Well I did some reading up on JSON-LD. LD stands for Linking Data, which I find misleading. Of course, I assumed that meant it was about linking JSON data objects, but apparently that's not what it does. Or that's one of the things it does but it's more than that. What it really seems to be is a way to semantically resolve data with different syntax, primarily by embedding schema/metadata. An example is the best way to illustrate.
Say we have the concept of a Person. Now every website might implement that concept differently with different data elements. We have Person in MiAIRR with the study data collector (collected_by) and data submitter (submitted_by) fields. Twitter has its own fields to represent a Person, so does Facebook and so forth. So what if we wanted to do queries on Person without having to handle all of the different ways it could be implemented in data elements. Well that's what JSON-LD does. It uses schema.org to define a large ontology of concepts, like Person, and allows you to annotate (link) the fields on your website to those concepts. Essentially instead of having just collected_by, we would have a large JSON object that "describes" what collected_by really is.
Now after saying all that, I'm not completely incorrect either. JSON-LD as a core concept has IRI's (Internationalized Resource Identifiers). As it says in the specification, "IRIs can often be confused with URLs (Uniform Resource Locators), the primary distinction is that a URL locates a resource on the web, an IRI identifies a resource. While it is a good practice for resource identifiers to be dereferenceable, sometimes this is not practical." Most of the examples I read show using IRI's to link to concepts, versus to be direct links to other JSON object, but an IRI is general as a "resource" can be just about anything.
So we can in essence use JSON-LD to describe our relations, but it's also used to describe entities.

Part of the problem is the question whether schema.yaml is a representation of the Data Schema (as described above) or a template for TSV+JSON or both.

Reading this again in light of today's call, it seems to me that the biggest issue to be addressed here is that schema.yaml is currently mostly only a template for the TSV+JSON. Points 4-7 seem to me to be mostly about how we think about implementing points 2 and 3 in the "on-disk" representation. @bussec am I on the right track yet?

@bussec am I on the right track yet?

@scharch Yes!

For me, the representations of relations on-disk isn't the direct problem per se. The underlying question is how do we want (or allow) users to perform operations utilizing these relationships?
For example, with Cell <-> Rearrangements, we can imagine asking two different questions. 1) Given a set of rearrangements, what cells do they belong to, or 2) Given a set of cells, what rearrangements belong to them.
When it comes to on-disk format, where the relationship is stored determines how easy the question can be answered.
Let's say just cell_id is stored in Rearrangements. That makes 1) easy to answer because you just look at cell_id for your given set of rearrangements. However 2) is harder because you cannot just look at your Cells to get the answer, you have to search across all of the rearrangements to find the ones with the right cell_id.
Now let's say just the array of rearrangement_ids is stored in Cell. Well that flips the ease of the questions. Now 1) is harder because you have to search through each Cell's array for the right rearrangement_id, while 2) is easy because the rearrangements are immediately available in the Cell.
Do we even know if both questions will be asked, or if one is more common than the other? When we create our on-disk formats, do we want to bias the ease/difficulty of answering one question over the other?
In general, for a 1-to-N relationship in an on-disk format, the (space) efficient representation is to put the relation value within the N-side entity. For example, with Cell <- 1 - to - N -> Rearrangements, that would imply a single cell_id field in Rearrangements. If you place the relation value on the 1-side entity, you essentially put a table (of size N) in that 1-side entity, i.e. an array of rearrangement_id in Cell.
If we follow that space efficient design, then we consistently bias making 1) easy and 2) hard. If it ends up that 2) is a very common analysis option, we inherently make that a computationally expensive process.
We could, of course, require the relation to be stored on both sides, thus making both questions easy. However, this is where the conflict comes in with the ADC API. The ADC API is necessarily intertwined because the response from an API request is assumed to exactly correspond to the on-disk format.
If we require the relation on both sides, that means we require 1) that users can perform queries on that relationship with either the /cell API or the /rearrangement API and 2) that the data that comes back from the /cell and /rearrangement API contains that relationship.
Why is that problem? Well technically it shouldn't be because that relationship should be there when the data is loaded into the ADC. However, that's not the reality. The reality is that rearrangement data is generated and loaded first, without relationship info to clones, cells and etc. Only later will clone data be generated. That clone data will have the relationship to the rearrangements and thus can be loaded, but to put the relationship on the other side, in the rearrangements, requires updating and/or reloading all of the rearrangement data.
Oh, and that space efficient design above? That's on the rearrangement side so yes, that still requires updating and/or reloading all of the rearrangement data.
Thus for a practical manner for the ADC, having the relationship on just the one side, to make 2) easy, is also easier from a data management perspective.
So I suppose the last question is to @bcorrie and others who run repositories, are you okay with updating/reloading all of your rearrangement data? Is that just part of the cost of running a repository?

I am not sure what is the expected or hoped for output of this discussion, but it definitely doesn't feel like a v2.0 discussion - unless some of it is resolved in the Manifest or RepertoireGroup discussion. 8-)

The underlying issue is that JSON Schema does not have an explicit representation for relations between objects other than inheritance and composition. Unlike for example in LinkML where you can specify what it points to (the range) and the cardinality of the relation.
So from that sense we are not going to solve this other than decide upon a convention and best practices...

So from that sense we are not going to solve this other than decide upon a convention and best practices...

From this perspective, is this not already solved. We have designated _id fields that are links between the objects, and the cardinality of those relationships are documented here: https://docs.airr-community.org/en/stable/datarep/overview.html#relationship-between-schema-objects
So it seems to me like the "only" things missing are:

A formal way of encoding what those expected relationships are in the specification
A way of grouping things on disk so that you know which entities belong together for analysis (Manifest)

is #672 relevant here?

is #672 relevant here?

Possibly, in the JSON relationship sense, but that doesn't seem like a v2.0 thing that we are likely to resolve.

We have on disk file formats for our schema objects
We have _id fields that link schema objects
We have documentation on the intended cardinality of the relationships
We have a mechanism for grouping files that store different types of data into a data set (Manifest)

For 2.0 do we want anything more?

is #672 relevant here?

It is a convention but probably not one we should follow. I haven't seen any followup that suggests this is becoming commonly used, or supported by more tools, etc.

As noted, JSON schema itself does not have explicit representation of relations between objects. This is something that the AKC project will be defining by using LinkML, so we will see what mechanisms that we can utilize when integrating back with AIRR standards.


Add "Target Battery Charge Level" and "Charging Current Limit"

Not sure if this is all that's needed to get the 2 new sensors into Home Assistant.

This should resolve #181

Hello @gurtjun,
Just a simple question.
Did you test your PR?  And if so, did it work?
It is not possible to add new scopes to the list of scopes. However, you can remove existing scopes, if you want that.
So, you cannot add: energy:charging_current_limit and energy:estimated_charging_time
If you add it to the list of scopes the Volvo API will return an error:
error_description: "The requested scope is invalid, unknown, malformed, or exceeds that which the client is permitted to request."
error: "invalid_scope"

It does not match with the "client" authorization.
Sorry for that, but it is the way it currently is.
Regards

Hello @gurtjun,
Just a simple question.
Did you test your PR? And if so, did it work?
It is not possible to add new scopes to the list of scopes. However, you can remove existing scopes, if you want that. So, you cannot add: energy:charging_current_limit and energy:estimated_charging_time
If you add it to the list of scopes the Volvo API will return an error:
error_description: "The requested scope is invalid, unknown, malformed, or exceeds that which the client is permitted to request."
error: "invalid_scope"

It does not match with the "client" authorization.
Sorry for that, but it is the way it currently is.
Regards

No, did not test this yet. Therefore the pull request.

Sorry,
It will not work
Regards

Ok, will try manually tomorrow

Sorry,
It will not work
Regards

Indeed, just did several tests and get the same result when adding the new scopes...
Maybe this gets resolved in version v1.9.0b1 (when using OTP authentication). But I'm unable to install the beta version.
When logging into Volvo's developer portal I'm able to retrieve the charging current limit and target battery percentage using my Volvo ID and the VCC-API-KEY

@Dielee I was able to install version v1.9.0b1 but I don't get the OTP code in my mailbox 🙁 I can see the following logs but eventually the add-on fails to start
volvo2mqtt [106] - INFO: Waiting for otp code... Please check your mailbox and post your otp code to the following mqtt topic "volvoAAOS2mqtt/otp_code". Retry 3/15

@Dielee seems that there was quite a delay on receiving the email at my side, eventually filled in the OTP code and it started loading all the available sensors 🙌
However, when updating the addon locally and restarting it, after filling in the OTP code again I do get an error response from the get_token(auth_session, data) method in volvo.py

@Dielee nevermind, reinstalled everything and now version 1.9.0b1 works like a charm. Restarted home assistant, everything keeps working. Only when I restart the add-on, I need to fill in the OTP code again.

Please do not mix the new OTP authentication with your PR. I will check your PR later this week. For the OTP auth discussion, open up a new issue and don't hijack this PR.
Thanks!

Please do not mix the new OTP authentication with your PR. I will check your PR later this week. For the OTP auth discussion, open up a new issue and don't hijack this PR.
Thanks!

Good point! Regarding this PR: from the moment I add the scopes to the request things go wrong (also in OTP branch)

So, the new scopes are not working at this time.
The requested scope is invalid, unknown, malformed, or exceeds that which the client is permitted to request.
Because of this, I will not merge this PR. Sorry!

So, the new scopes are not working at this time.
The requested scope is invalid, unknown, malformed, or exceeds that which the client is permitted to request.
Because of this, I will not merge this PR. Sorry!

Ok, could it be that the new scopes need to be requested first for the client application in Volvo’s developer portal?
If I want to publish my own application to get the client id and secret I need to select the scopes I want to use:

Yes, maybe. I tried to publish an application for more than 3 months without any success.
So, it could help.... nobody knows.


Failed to get unit file state for nm-cloud-setup.service

Environmental Info:

k3s version v1.22.5+k3s1 (405bf79d)
go version go1.16.10
Node(s) CPU architecture, OS, and Version:

Linux master-public-1 5.11.0-1022-oracle #23~20.04.1-Ubuntu SMP Fri Nov 12 15:45:47 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
Cluster Configuration:

OCI Ampere VM.Standard.A1.Flex with Ubuntu 20
Describe the bug:

During fresh install on an fresh system an error "Failed to get unit file state for nm-cloud-setup.service" occured after installation.
Steps To Reproduce:

curl -sfL https://get.k3s.io | sh -
Expected behavior:

k3s is installed
Actual behavior:

"Failed to get unit file state for nm-cloud-setup.service: No such file or directory" message during start after fresh install.
This file is missing, but exists in /etc/systemd/system/k3s.service, line 26:
ExecStartPre=/bin/sh -xc '! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service'
Also it may be helpful - it is hanging about 3 minutes before fails.
Additional context / logs:

-- > journalctl -xe
-- A start job for unit k3s.service has begun execution.
--
-- The job identifier is 742.
Jan 11 15:48:20 master-public-1 sh[1322]: Failed to get unit file state for nm-cloud-setup.service: No such file or directory
Jan 11 15:48:21 master-public-1 k3s[1325]: time="2022-01-11T15:48:21Z" level=info msg="Starting k3s v1.22.5+k3s1 (405bf79d)"

ubuntu@master-public-1:~$ systemctl status k3s.service
● k3s.service - Lightweight Kubernetes
     Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)
     Active: activating (start) since Tue 2022-01-11 15:41:34 UTC; 1min 10s ago
       Docs: https://k3s.io
    Process: 793 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exited, status=0/SUCCESS)
    Process: 829 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
    Process: 830 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
   Main PID: 857 (k3s-server)
      Tasks: 6
     Memory: 155.6M
     CGroup: /system.slice/k3s.service
             └─857 /usr/local/bin/k3s server

Jan 11 15:41:34 master-public-1 systemd[1]: Starting Lightweight Kubernetes...
Jan 11 15:41:34 master-public-1 sh[793]: + /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service
Jan 11 15:41:34 master-public-1 sh[808]: Failed to get unit file state for nm-cloud-setup.service: No such file or directory
Jan 11 15:41:39 master-public-1 k3s[857]: time="2022-01-11T15:41:39Z" level=info msg="Starting k3s v1.22.5+k3s1 (405bf79d)"

Backporting

[ ] Needs backporting to older releases

For the record, the check is there to ensure that the nm-cloud-setup.service is NOT running.

But if the nm-cloud-setup.service is not installed at all the pre start check is failing 🤔 .

No, it doesn't. It will log a message about not finding it, but the shell command will exit with a 0 return code.

Ok, I'll double check on that because I though it was the only error preventing k3s to start, but I'm maybe wrong. Thanks for the answer 👍

I got the same response.  Running on Raspberry Pi 4 with Bullseye 64bit.

If k3s is failing and you see this message in your logs, look further - this is not the cause of your problem.


Update to Scala 2.12.0

Fixes #14.

Coverage remained the same at 88.618% when pulling df8b681dab8073f1bd98b19e7ceaa9a38e039416 on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.

Coverage increased (+0.8%) to 89.431% when pulling 8889bb67804e4368fe748fce4a4627eaf5434bb0 on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.

Coverage increased (+0.8%) to 89.431% when pulling 8889bb67804e4368fe748fce4a4627eaf5434bb0 on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.

Coverage increased (+3.8%) to 92.437% when pulling f11c902eacfbf3960c3038dd54206e51fd01a56a on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.

Coverage increased (+3.8%) to 92.437% when pulling 169bf3d06f7fb736e6db6b15fe88d59a87c711c1 on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.

Coverage increased (+3.8%) to 92.437% when pulling 169bf3d06f7fb736e6db6b15fe88d59a87c711c1 on scala-2.12 into ab6e5a435a9fb2b2c64f73016fa0f8897a56b4fd on master.


Installation problem on VDI

Hi,
I tried to install the latest version (<IP_ADDRESS>) of TissUUmap on our Virtual Desktop Infrastructure with the Windows Server 2012R2. The installation finished with no problem. But when I tried to start the software, an error window popped up with the following message: "Traceback (most recent call last): File "tissuumaps\gui.py, line 21, in  ImportError: DLL load failed while importing QtGui: The specified procedure could not be found."

I tried to uninstall and install the <IP_ADDRESS> version and it was the same problem.
Could you let me know how to solve this?
Thanks!
Best,
Jianjiang

Hi,
Thanks for reporting this, I don't have a Windows Server 2012R2 to test unfortunately.
I tried to compile the installer with a more recent version of pyinstaller to see if it could fix this issue, can you test?
You can find the installer here, in the bottom of the page: https://github.com/cavenel/TissUUmaps/actions/runs/8597311418

Everything should be included in the installer, but yes it can cause some issues if Python is in the Environment Variable path. Maybe you could test by removing it from the path, to test TissUUmaps?

I tried to uninstall python and install the software, but it still does not work with the same issue.


NO-JIRA: bring in CI fixes from the main branch into the 2024a branch

Description
ddc595f4 (HEAD -> jd_2024, origin/jd_2024, fork/jd_2024) NO-JIRA: chore(tests): fix `NOTEBOOK_REPO_BRANCH_BASE` so it points to 2024a branch and tests fetch the right test data
b3010969 NO-JIRA: fix selftest, need to use gmake on macOS (#799)
76441175 NO-JIRA: chore(tests): fix deploying Python 3.8-based images in 2024a
350bc2b1  RHOAIENG-16076: tests(gha): run Makefile tests on opendatahub-io/notebooks Github Actions (#775)
3c2fb93f RHOAIENG-16076: tests(gha): install a cri-o backed kubernetes for running Makefile tests (#783)
b4b6a7b7 RHOAIENG-16076: tests(gha): change to using rootful podman, so that we can share containers/storage with cri-o later (#782)
56b52807 RHOAIENG-16149: chore(Makefile): implement advice from https://tech.davis-hansson.com/p/make/ (#778)
5dd46ebc RHOAIENG-16076: fix(gha): move the trivy db to the lvm volume as to not run out of disk space
fefa4694 RHOAIENG-16076: tests(gha): use the same registry, tag, and output image name in all branches
3f66f8aa RHOAIENG-16149: chore(Makefile) download arch-appropriate version of kubectl (#779)
6a2aad64 RHOAIENG-16076: tests(gha): mount the lvm volume with performance flags (#781)
0219a595 RHOAIENG-16076: tests(gha): pre-pull trivy vulnerabilities db to prevent failures to download later (#777)
53a558b5 NO-JIRA: chore(tests): add the workspace trust dialog step to the code-server test on 2024a branch
5aee3fd1 RHOAIENG-15152: test(tests/browser): add playwright test for starting code-server (#774)
7ba5f43e RHOAIENG-15152: feat(codeserver/e2e): add initial playwright e2e test project skeleton (#755)

How Has This Been Tested?

https://github.com/jiridanek/notebooks/actions/runs/12397175917/job/34607114220

Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

/override ci/prow/images
not relevant for the PR

/lgtm

/approve

/override ci/prow/images

/override "build (rocm-jupyter-pytorch-ubi9-python-3.9) / build"
known issue
======================================================================
FAIL: test_torch_version (__main__.TestPytorchNotebook)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ipykernel_130/2183400500.py", line 21, in test_torch_version
    self.assertEqual(actual_major_minor, expected_major_minor, "incorrect version")
AssertionError: '2.4' != '2.2'
- 2.4
?   ^
+ 2.2
?   ^
 : incorrect version

/honk


Use remote context instead of embedded one

See https://github.com/hbz/skohub-vocabs/issues/87#issuecomment-648089503

https://github.com/skohub-io/skohub-vocabs/blob/master/src/context.js has to be published somewhere and referenced it in every vocab/concept description instead of embedding the whole context.
The context should be created for each SkoHub instance separately, e.g. https://skohub.io/context.jsonld & https://openeduhub.github.io/context.jsonld
Right, @literarymachine?

The context should be created for each SkoHub instance separately, e.g. https://skohub.io/context.jsonld &
https://openeduhub.github.io/context.jsonld
Right, @literarymachine?

Not sure how to best approach this yet. Which part of the "SkoHub" instance is responsible to deploy the vocab? Manual deployment? We could also create a context file when a vocab is built with skohub-vocabs and deploy it along with the vocab. This would result in many copies of the context being made available, but each vocab build would remain self-contained.


fixed debug type for win32 + allow user to chose debug type via settings

Hello again!
I had a problem with zig that forced it to recompile everything in my project from scratch in wsl, so I switched to windows. And I've got another one problem: I couldn't debug my app with gdb. The only solution I found was to use MSVC debugger (using "type"="cppvsdbg").
This pull request enables the ability for a user to modify the debug type and sets a rational default debug type value for windows platform.

Don't intend to support Windows so I'll trust you that it works.
Thanks for one more valuable contribution.

'cppvsdbg' debugger works on my pc, and several afticles confirm this too (https://github.com/ziglang/zig/issues/7505 or https://dev.to/watzon/debugging-zig-with-vs-code-44ca)
Nevertheless, users now can choose whatever type they wish. Cheers!


Monitoring Plugins suggestions

Summary
Suggestion for some new popular integrations

New relic
Graylog
Sentry
PagerDuty

Thank you for the suggestion, but most of those are already suggested (#1715, #1055, #605).
Additionally, in order to improve maintainability and avoid an explosion of plugins, we might go with monitoring plugins that are based on the protocol used to send the monitoring data, rather than by service. Using a different service would be a matter of implementing a new protocol.


Release notes

Type of Issue
[ ] Bug Report
[ ] Feature Request
[x] General Request

Description
It would be great to have a release note for each new version of the package to help developers understanding what's going on in the different versions.
It would be good to highlight bug fixes, new features and breaking changes in there to help developers get the most of this great tool.
Thank you

Is the changelog sufficient?

If that is updated on each version release, then yes but honestly I find having all the information in the same place as a better solution. But that should be up to you.


Fix bug determining access group membership when access group contains a dash in its name

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 42.462%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

compass/views/api/init.py
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
307

Relevant Lines:
723

💛  - Coveralls


Support range and class tokens

Closes #5

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

66 of 66 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
153

Relevant Lines:
153

💛  - Coveralls


Get-CsOnlineUser: different results since March 25th, 2022

Hi,
so before March 25th 2022, 07:10 CET, the following used to work flawlessly:
PS C:\Users\User\Desktop> Get-CsOnlineUser -Filter { LineURI -like "tel:+1*"} | Ft LineUri, WhenChanged

LineUri          WhenChanged
-------          -----------
tel:+122233440   24.10.2021 22:46:21
tel:+122233441   30.07.2021 20:16:59
tel:+122233442   05.03.2022 11:25:02

Since March 25th 2022, 07:10 CET (without upgrading my PS module), I was getting this error:
PS C:\Users\User\Desktop> Get-CsOnlineUser -Filter { LineURI -like "tel:+1*"} | Ft LineURI, WhenChanged
Get-CsOnlineUser : Phone number has non digit chars. tel:+
At line:1 char:1
+ Get-CsOnlineUser -Filter { LineURI -like "tel:+1*"} | Ft LineURI, When ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: ({ PageSize = , ...et = Extended }:<>f__AnonymousType81`11) [Get-CsOnlineUser], Exception
    + FullyQualifiedErrorId : BadArgument,Microsoft.Teams.ConfigApi.Cmdlets.GetCsOnlineUser

Okay, so apparently Microsoft deployed something. I changed my command to this - however, now the WhenChanged parameter is empty:
PS C:\Users\User\Desktop> Get-CsOnlineUser -Filter { LineURI -like "+1*"} | Ft LineUri, WhenChanged

LineUri          WhenChanged
-------          -----------
tel:+122233440
tel:+122233441
tel:+122233442

In the meantime I upgraded to MicrosoftTeams 4.1.0 , and the behavior is still the same.
Microsoft, what have you done? I have two tenants that are affected by this, and interestingly my dev tenant still behaves the "old" way (as shown in the first command).
Why is the WhenChanged parameter empty when using a filter?

@isrumnon

@fgrueninger WhenChanged when used for Filtering or when viewed in the bulk output (without using -Identity parameter) is now available in preview, you can raise a support request with your tenant information to get this enabled this for your tenant

@yogkumgit we can go ahead and close this ticket

@isrumnon can you please please tell me when this bug is going to be fixed for all tenants (without raising support requests)?

@fgrueninger this will be generally available for all tenants by November end

Still not fixed unfortunately. Microsoft, when are you finally going to fix this?!


Download Videos from UK division of Discovery+?

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

The US division of discovery+ makes you have a paid license and links are easily grabbable from the url however the UK division has a free section however the URL relating to the vids are hidden away in the coding of the website. how can you grab them plus critically can these be downloaded if grabbed correctly.

You might like to suggest some test URLs ...


Proposal: Notify users about interesting lobbies

This is a draft proposal for a feature that is unfinished but has a functional prototype. I'm putting this out here for discussion because while I personally will use this feature it may not have sufficient utility to warrant developing further.
Users in FAF have the ability to be notified when friends join lobbies because those lobbies are obviously likely to be interesting to the user. There are other potential use-cases where a user might like to be notified of a lobby without having to be on the play tab, for example:

Players who wish to be notified when a lobby is almost full to avoid lobby sim.
Players who want to be notified about lobbies of their favorite maps around their level. (For example I might only care about Setons lobbies with an average rating of 1500 or higher, or Gap/Astro with an average rating of under 1000).

This PR allows the user to receive these notifications using the following conditions:

Example notifications:

I would like to put this idea out for discussion to establish its utility and what changes might be made.
(Much of the logic to determine whether a lobby is interesting or not is found in CustomGameController.java but that only happened because I had to be in there to listen in on the filtered list of games . If needed in the future I would refactor this out to its own class.

If there is no one working on this then i will close it soon TM

Yes, sorry, I'll close it. I don't have the time (or the desire tbh) to implement lobby filtering so that these notifications can be integrated alongside it. Hopefully somebody in the future who really wants lobby filtering can include this feature in the future.


Add telcoin decimals + chainid

Description
Update telcoin to have 2 decimal places so that it is claimable on the frontend
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Dependency changes
[ ] Code refactor / cleanup
[ ] Documentation or wording changes
[x ] Other

How should this be tested?
Please provide instructions so we can test. Please also list any relevant details for your test configuration.

[ ] Test A
[ ] Test B

Visual context
Please provide any relevant visual context for UI changes or additions. This could be static screenshots or a loom screencast.
Checklist:

[ ] I have performed a self-review of my own code
[ ] I have requested at least 2 reviews (If the PR is significant enough, use best judgement here)
[ ] I have commented my code where relevant, particularly in hard-to-understand areas
[ ] If package-lock.json has changes, it was intentional.
[ ] The base of this PR is master if hotfix, develop if not

@mikebmikeb does this need to go live asap? If so, I can convert this PR into a hotfix.

@garethfuller yeah it does, sorry

Replacing this PR here: #1392


Azure Marketplace images shipping with outdated version of WinGet

Brief description of your issue
The Azure Marketplace image ships with an outdated version of WinGet that no longer works due to the old CDN being retired. As far as I'm aware, there is no way to automate updating WinGet. As a workaround, I am currently having to log in to each image after they are deployed and manually update WinGet via the Microsoft Store.
Steps to reproduce
Create a new Azure VM using an Azure Marketplace image (I am using Windows 10 (22H2) EVD + Office ProPlus Gen 2), and immediately attempt to use WinGet. It will fail, as the version of WinGet is pointing to the retired CDN.
Expected behavior
Azure Marketplace images should ship with the latest version of WinGet.
Actual behavior
Azure Marketplace images ship with an older, non-working version of WinGet.
Environment
NA

Are you looking for an "easier" way to do this (like a script) or is the ask about updating the image (with a newer version of WinGet) on the Azure Marketplace images?

I think updating the image in the Azure Marketplace would be preferred, but a script would certainly work as well.

Triggering updates via the store does require a bunch of clicking around, and you might get more than you bargained for in terms of how long that takes to complete given updates for other packages in the Microsoft Store.
I'm trying to find a supported mechanism to get the Microsoft Store to just update the App Installer without necessarily triggering all the other updates.
I believe you can install the "Microsoft.WinGet.Client" PowerShell module and then just run the "Repair-WinGetPackageManager" cmdlet in PowerShell 7 (Known chicken and egg scenario). I'm only bringing this up as we may have found a solution using Windows PowerShell which is available on first login. I'll check on that.
In the short term, you could just open https://aka.ms/getwinget in a browser and install the package after it downloads as a quicker method of updating WinGet.

What version of WinGet is included on that image?
If it's new enough not to require MSA authentication in the Microsoft Store, you could try:
winget install "App Installer" -s msstore --force
It's likely to look like it failed after some progress, but it does work on clients that were updated to use the device entitlement rather than the user entitlement.

This PowerShell command might also work:
Add-AppPackage https://aka.ms/GetWinGet

I tested those methods and they all worked to upgrade WinGet unattended.


[Performance] Improve performance of compiled ReplayBuffer

Description
Performance improvements for compiled ReplayBuffer.extend/sample with LazyTensorStorage. For the cases tested in the benchmark, compiled gives the same or better performance than eager.
This uses the changes from #2426 to avoid using multiprocessing features, but also adds some other changes to avoid graph breaks in other places.
The benchmark and test are updated to include both cases where the storage's max size is reached and not reached.
Motivation and Context
Part of #2501

[x] I have raised an issue to propose this change (required for new features and bug fixes)

Types of changes
What types of changes does your code introduce? Remove all that do not apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds core functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation (update in the documentation)
[ ] Example (update in the folder of examples)

Checklist
Go over all the following points, and put an x in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!

[x] I have read the CONTRIBUTION guide (required)
[x] My change requires a change to the documentation.
[x] I have updated the tests accordingly (required for a bug fix or a new feature).
[x] I have updated the documentation accordingly.

Do you think we should add a benchmark for the E2E replay buffer interactions?

Yeah I think that's a good idea, but I thought the benchmark I added was exercising the end-to-end interface, so I'm not entirely sure what you mean. Do you have a specific case in mind? Maybe something that actually uses the data for something rather than just expand/sample?


Search

which i believe we have today in the old elements hub component - need to adapt and make sure it does what we want it to do

Link to subfeature: https://stoplightio.productboard.com/feature-board/planning/features/6464686


Delete UserPool, Buckets on stack removal

gh-342
When I delete my stacks, most commonly feature branch stacks, I don't want their buckets and user pools sticking around. In fact, in my lab account I currently have a bunch of leftover buckets and user pools.

I wonder if this warning from the PR build has been present for a while:
(node:2449) UnhandledPromiseRejectionWarning: Error: Parameter names must be fully qualified (if they include "/" they must also begin with a "/"): DouglasnaphasMadliberationrefs/pull/344/merge-FrontendBucketName
    at Object.arnForParameterName (/home/runner/work/madliberation/madliberation/node_modules/@aws-cdk/aws-ssm/lib/util.ts:22:11)
    at new StringParameter (/home/runner/work/madliberation/madliberation/node_modules/@aws-cdk/aws-ssm/lib/parameter.ts:448:25)
    at new MadliberationWebapp (/home/runner/work/madliberation/madliberation/lib/madliberation-webapp.ts:140:37)
    at /home/runner/work/madliberation/madliberation/bin/madliberation.ts:152:3
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:2449) 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(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:2449) [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.

I was slightly concerned that, since this is making changes to a User Pool resource, the change would fail due to an inability to change certain settings on an existing User Pool. However, since setting the removalPolicy on the UserPool ultimately calls applyRemovalPolicy, which is a method on CfnResource, it looks like removal policies are a CloudFormation thing, not a Cognito thing, which makes sense.
So I am not worried about this making changes to existing User Pools.


Fix Re-download option to rewrite files

Re-downloading a file now rewrites the previously downloaded version of the file. Re-downloading a file earlier downloaded a new copy of the file and the filename was appended with a number. On opening the file from within the app always opened the first download, which might in some cases get corrupted.
Closes #105

Rebased onto development and force pushed changes.
This does not support for the FolderModuleFragment. Checkout FolderModuleFragment.downloadOrOpenFile.

Also, add to CHANGELOG.md please.

Thanks.

I didn't notice this was a PR into crux-bphc:master. Long story short, I had to cherry-pick the commit in development and push it. Please ensure that your pr is into crux-bphc:development from now on out.

Sorry about that. I will keep that in mind in the future.
On Tue, Apr 21, 2020 at 5:51 PM Abhijeet<EMAIL_ADDRESS>wrote:

I didn't notice this was a PR into crux-bphc:master. Long story short, I
had to cherry-pick the commit in development and push it. Please ensure
that your pr is into crux-bphc:development from now on out.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/crux-bphc/CMS-Android/pull/162#issuecomment-617145430,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOCASOBDAVB53IR5ZEOBJ3DRNWFVXANCNFSM4LV7WUKA
.


Fix #1350 error with rsa crypt

#1350
Simple enough.
More details: apparently phpseclib changed the method from loadKey to load, so this change fixes this.

I agree with @bshaffer that all I see is the method name loadKey for the versions of phpseclib pinned by the client (~0.3.10|~2.0).
@Saqibm128 which version of google/apiclient are you pinned to?
The following installs, but includes a client back to before phpseclib was introduced into the library, so I'm not sure where a conflict with loadKey would come up.
"require": {
    "google/apiclient": "*",
    "phpseclib/phpseclib": "dev-master"
}

Pulling in a newer version conflicts, google/apiclient v2.0.0 requires phpseclib/phpseclib ~2.0 -> satisfiable by phpseclib/phpseclib[2.0.x-dev].
"require": {
    "google/apiclient": "~2.0",
    "phpseclib/phpseclib": "dev-master"
}

I'm not sure there is anything we can do here.

Entirely my mistake. Accidentally manually placed wrong version of phpseclib into the vendor folder. Closing request. Thank you


Update _DropFirstSequence.next() for removal of ++ operator

SIL is different (bb6, bb8 and bb9), but the amount of instructions appears to be the same: https://gist.github.com/nielsandriesse/91a12210170125eaba17

@nadavrot Any concerns?  The change LGTM.

LGTM. We'll track the performance changes after this commit lands.

Thanks, Nadav.


Added data attribute with post UUID to article element in post template

Having the Post UUID available in the template will make it available for use by code injection scripts that can make valuable use of it. Specifically, I've created one that injects Disqus comments on post pages that could really benefit from having the post UUID available for use in the disqus_identifier variable to allow Disqus to uniquely identify the post it associates comments with.

This is a great implementation of UUID, with a valid use-case. Unfortunately it fails the most important test for a default theme which is designed to help people understand Ghost themes:

Will it be useful to most people? Can this be added without causing confusion for most people?

In this instance it's a feature which is caters only to fairly advanced use-cases, and would be more than likely to confuse beginner developers who open the Casper theme for the first time and are already very overwhelmed.
We'll probably make use of this exact implementation in several future (more advanced) themes, but just not this one :)


【bug】wrong description in apiserver-builder/docs/concepts/auth.md

in section Client Certificate Authentication,there are some words:
"By default, a main Kubernetes API server configured with the --client-ca-file option automatically creates a ConfigMap called extension-apiserver-authentication in the kube-system namespac"
but according to https://kubernetes.io/docs/reference/generated/kube-apiserver/, extension-apiserver-authentication shoud be generated by --proxy-client-cert-file，not --client-ca-file

If you look closely in that documentation, you'll notice that it says requestheader-client-ca-file is used.  If you look at the code, you'll see that client-ca-file is also used.  If at least one of those is present, then the ConfigMap will be created, since the purpose of the configmap is to communicate the CAs used to validate RequestHeader auth and normal client cert auth.

@DirectXMan12 i have noticed that, i just want to reject myself.thank you for your reply,the documentations are very good for the beginner!


Update KENG manifests

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4488

Relevant Lines:
6886

💛  - Coveralls


V3 spec updates 20200918

[x] Change metadata encoding URI
[x] Configurable chunk key separator, defaulting to '/' (resolves #13)
[x] Change chunk key path to begin "data/root" to mirror metadata key paths
[x] Update cloud example data and reinstate cloud doctest

cc @davidbrochart, @Carreau


allow TranspilationSourceAttribute to target an interface

I'd like to be able to export interfaces as well. I tested it out by declaring my own copy of the attribute and putting it on an interface and it worked just fine, so I don't think any other changes are required.

System.Text.Json.JsonSerializer can serialize interfaces but not deserialize. Therefore, Tapper does not support interfaces.
If we support interfaces, we need to consider JsonPolymorphicAttribute and JsonDerivedTypeAttribute perfectly. This is very complex and raises many concerns.


skip refines when validation already failed

Fixes #238
@colinhacks let me know what to change.

I fixed this using a different on your approach. Thanks for this PR and pointing out this issue!


Initial documentation for Auxilium.js

Start the documentation process for Auxilium.js using converting JSDoc to MD.
Using nom run docs will update the current README.md file with any changes made within the JSDocs of the modules.

Coverage increased (+0.87%) to 91.27% when pulling 621ebeb30b2bcec4d1035791194eaffc7c7d3316 on nick/documentation into 6c644dd236763ae745b487988ed7903899e1521c on master.


[Backport - Newton] MaaS: Modify ceph alarm evaluations

Changes ceph_cluster_stats and ceph_mon_stats WARN alarms
to critical.
Connects rcbops/u-suk-dev#1403
@alextricity25 let me know if we need to hold off on this until after release.

I'm fine with merging this, just keep in mind that it might not make it into the initial 14.0.0 release. My plan right now is to make that tag off the commit that rc2 is pointing to.


Variable declarations in sections don't use overrode notation.

Consider the following code
section test
  definition union (A : Type) (B : Type) := A + B + B
  notation A `+` B := union A B

  definition idn {A : Type} {B : Type} {C : A + B → Type} (f : Π (a : A), C (sum.inl (sum.inl a))) (a : A) : A := a
  check idn
end test

If you set pp.notation = false you see that @idn : Π {A : Type} {B : Type} {C : union A B → Type} ...
However, if you try to declare the parameters for idn using variables like this, you get a type error.
section test
  definition union (A : Type) (B : Type) := A + B + B
  notation A `+` B := union A B

   variables {A : Type} {B : Type} {C : A + B → Type} (f : Π (a : A), C (sum.inl (sum.inl a)))
   check C
end test

Lean assumes C : sum A B →  Type, ignoring the information provided by the type of f, which demonstrates that the correct type is C : union A B → Type. This is a problem, since by merely declaring variables separately from the definition of a function, one can get a type error.

@11Kilobytes Thanks for this. I don't think this should be considered a problem, though.
Overloading is inherently problematic. Sometimes it is useful; it is nice to be able to use + for sum types and arithmetic, we find it convenient to use ⁻¹ to turn around an equation as well as to take an inverse, and it is nice to use ++ for concatenating lists and vectors. But it should be used sparingly, because it introduces ambiguities. So, for example, we "hide" the type constructor + in the sum namespace, and we put ⁻¹ in eq.ops, so they are not overloaded by default. And, in these cases, the overloads rarely cause problems, because the context makes it clear which one is meant.
In your example, I think it is just a bad idea to use + for two different binary type constructors at once. It is possible to fix your example by making the new operation higher priority:
import data.sum
open sum

section test
  definition union (A : Type) (B : Type) := A + B + B
  notation [priority std.priority.default+1] A `+` B := union A B

   variables {A : Type} {B : Type} {C : A + B → Type} (f : Π (a : A), C (sum.inl (sum.inl a)))
   check C
end test

But in this case, I would recommend using another token, either a new unicode character, or some funny combination of keyboard symbols like +!+.
Is there a compelling example where you really need such an ambiguous overload?

@avigad, I don't know if this is really compelling, but originally I was constructing sum types in terms of sigma types. The definition in terms of sigma types played the role of the function union here. However, this is just a theoretical exercises with no practical relevance (even in pure math).

That sounds like a good exercise. If I understand correctly, the point is to relate the two different definitions of the sum type. If you still want to have + available for the original sum, I'd suggest using a notation like +' or +₂. You can do that like this:
  infix ` +₂ `:65 := union

I used the same binding strength that + has, as defined in library/init/reserved_notation.lean. Adding the spaces tells the pretty printer to use the extra spaces when printing.
Alternatively, you can leave the sum namespace closed (or use open - [notation] sum to open it without the notation), and then use sum A B for the old sum and A + B for the new one.
I hope that helps!

K. Feel free to close this issue @avigad, and thanks for helping me (even if this wasn't quite the venue).

My pleasure! The venue is perfectly reasonable. Could you close the issue? Leo and Soonho manage the repository, so otherwise they will have to do it.

Some additional information.
Lean uses constraint solving for disambiguating the user input.
The example definition idn ... works because Lean treats it as a "single" elaboration problem.
On the other hand, the variables ... command creates independent problems. It is really "syntax sugar" for:
variable {A : Type}
variable {B : Type}
variable {C : A + B → Type}
variable (f : Π (a : A), C (sum.inl (sum.inl a)))

So, C : A + B → Type is fully elaborated before Lean even starts processing f.
+ is overloaded in your example, and both interpretations are acceptable before we process f.
Jeremy suggested several workarounds, here is another one.
Where it is necessary to disambiguate, Lean allows us to precede an expression with the notation #<namespace> to specify the namespace in which notation is to be interpreted.
So, you can also write:
namespace test
  definition union (A : Type) (B : Type) := A + B + B
  notation A `+` B := union A B

   variables {A : Type} {B : Type} {C : #test A + B → Type} (f : Π (a : A), C (sum.inl (sum.inl a)))
   check C
end test


Able to see banners and signs through walls when looking at a projected image

labeled as: Bug
Issue spotted on GitHub version: https://github.com/teaconmc/SlideShow/releases/tag/0.5.4
Minecraft Java, Forge 1.16.5
When I project an image on the projector I'm able to see banners and signs through walls. Is that normal?

It got fixed after rejoining multiple times, still curious how it happened


Updates code and version

Describe your changes
My changes ....
Issue ticket number and link
Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] If it is a core feature, I have added thorough tests.
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

PR Description
🤖 Generated by PR Agent at 11a8e328811a41bc8cd1bf840c7268b7623f8b52
This PR includes two main changes:

Refactoring the logic in the webhook.go file to improve the handling of user exclusions in the 'exclude' function and to change the 'match' variable declaration in the 'Handle' function.
Updating the Go version used in the Dockerfile from 1.20 to 1.24.

PR Walkthrough
pr_agent:walkthrough

PR Analysis

🎯 Main theme: The PR mainly focuses on updating the Go version and making some changes in the code logic.
📝 PR summary: This PR updates the Go version from 1.20 to 1.24 in the Dockerfile. It also modifies the logic in the webhook.go file, particularly in the 'Handle' and 'exclude' functions.
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 2, because the PR is relatively small and the changes are straightforward. However, the lack of tests increases the review effort slightly.
🔒 Security concerns: No

PR Feedback

💡 General suggestions: It's good to see that you're keeping the codebase up to date with the latest Go version. However, it would be beneficial to provide more context in your commit messages and PR description. This will help reviewers understand the purpose and impact of your changes.

 🤖 Code feedback:

relevant file: pkg/webhook/webhook.go
suggestion: Consider simplifying the logic in the 'exclude' function. The current nested conditionals are a bit hard to follow. You could use a switch statement or separate the conditions into different functions for clarity. [medium]
relevant line: if name == "" {

relevant file: Dockerfile
suggestion: It's good to see the Go version being updated. However, make sure to test the application thoroughly after such an update, as it might introduce breaking changes or incompatibilities. [important]
relevant line: FROM golang:1.24 as builder

How to use
  Instructions

Tag me in a comment '@robert-nemet' and add one of the following commands:
/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs: Generate docstring for new components introduced in the PR.
/generate_labels: Generate labels for the PR based on the PR's contents.
see the tools guide for more details.

To edit any configuration parameter from the configuration.toml, add --config_path=new_value.
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, add a /config comment.

PR Description updated to latest commit (https://github.com/robert-nemet/klock/commit/11a8e328811a41bc8cd1bf840c7268b7623f8b52)

@CodiumAI-Agent /ask is this ok pr?

Question: is this ok pr?
Answer:
Based on the provided PR, it seems to be well-structured and follows good practices. The changes made in the code are clear and the PR description provides a good overview of the changes. However, there are a few points to consider:

In the webhook.go file, the match variable declaration has been changed from match := true to var match = true. This change doesn't seem to have any significant impact on the code as both declarations are equivalent in Go. If there's a specific reason for this change, it would be helpful to mention it in the PR description.

The refactoring of the exclude function seems to improve the readability and logic of the code. It now checks for empty name and uid separately, which makes the function easier to understand.

The Go version has been updated in the Dockerfile from 1.20 to 1.24. This is a good practice to keep the project up-to-date with the latest stable versions. However, it's important to ensure that this doesn't introduce any breaking changes in the project.

The PR description mentions that the changes have been thoroughly tested, especially for core features. It's important to ensure that all tests pass after the changes, and if possible, to add new tests that cover the new logic.

The PR description could be improved by providing more details about the changes, especially the refactoring in the webhook.go file. It would be helpful to explain why these changes were necessary and how they improve the code.

In conclusion, this PR seems to be generally well done, but could benefit from a more detailed description and justification for the changes.


Headers, FormData, Request and Response aren't global

The fetch is the only one that's global, the other ones are not global.
import * as headers from "ext:deno_fetch/20_headers.js";
import * as formData from "ext:deno_fetch/21_formdata.js";
import * as request from "ext:deno_fetch/23_request.js";
import * as response from "ext:deno_fetch/23_response.js";

https://github.com/rscarson/rustyscript/blob/e34ce9374993b0edc8f15bff17d40d8d089dd4e4/src/ext/init_fetch.js#L1C1-L4C59

Good catch!
I'll push 0.1.3 to crates.io as soon as the tests finish running!

@rscarson For the fetch to work, the other variables need to be global. I couldn't find any test or example that validates the fetch. Have you tested it?

I will add tests tonight that validate it
Sorry for the oversight!

There is indeed a problem with fetch related to permissions

Alright tests are passing on fetch now - pushing a new version now with the fix


HystrixDashboard - threadpool does not display right TPS

In order to fix issue with TPS in hystrix-dashboard, code changes were made previously in  hystrixCommand.js https://github.com/Netflix/Hystrix/issues/1251, but as these changes were not done in hystrixThreadPool.js which causing a different value for TPS in threadpool section of dashboard.
 // the following will break when it becomes a compound string if the property is dynamically changed
		convertAvg(data, "propertyValue_metricsRollingStatisticalWindowInMilliseconds", false);

Above line of code was removed from below method in previous changes in hystrixCommand.js:
/**
	 * Since the stream of data can be aggregated from multiple hosts in a tiered manner
	 * the aggregation just sums everything together and provides us the denominator (reportingHosts)
	 * so we must divide by it to get an average per instance value.
	 *
	 * We want to do this on any numerical values where we want per instance rather than cluster-wide sum.
	 */
	function convertAllAvg(data) {
		convertAvg(data, "errorPercentage", true);
		convertAvg(data, "latencyExecute_mean", false);
		convertAvg(data, "latencyTotal_mean", false);

		// the following will break when it becomes a compound string if the property is dynamically changed
		convertAvg(data, "propertyValue_metricsRollingStatisticalWindowInMilliseconds", false);
	}

But same calculation is also being done in hystrixThreadPool.js as below:
function converAllAvg(data) {
		convertAvg(data, "propertyValue_queueSizeRejectionThreshold", false);

		// the following will break when it becomes a compound string if the property is dynamically changed
		convertAvg(data, "propertyValue_metricsRollingStatisticalWindowInMilliseconds", false);
	}

I think previously removed line(avg calculation for propertyValue_metricsRollingStatisticalWindowInMilliseconds) is also not required in hystrixThreadPool.js which causing wrong value for TPS in threadPool section of dashboard. I have updated code with this change and started a pull request for review. Please let me know if changes are good to go to fix this issue.

Please see https://github.com/Netflix/Hystrix/issues/1251
In my opinion this feature is broken. Also calculation for commands is invalid. This is related to Turbine 1.0 and 2.0 incompatibility: https://github.com/Netflix/Turbine/issues/100

Dashboard module moved to https://github.com/Netflix-Skunkworks/hystrix-dashboard


Excessive Microsoft.Dynamics.NAV.EditorServices memory usage. Is that normal?

Describe the bug
Excessive Microsoft.Dynamics.NAV.EditorServices memory usage
To Reproduce
When I go to Windows Task Manager, I see a huge memory consumption on the process.
Expected behavior
Screenshots

5. Versions:

AL Language: 4.0.182565

Business Central: 14.0.29530

@jbakach is that ~350 MB? It seems to be in line with expectations.
What is the size of your project? Do you have code analysis enabled? What analyzers do you have enabled?

Hi @atoader deeping on this issue, I found a pattron:
My project is 9,52 MB:
I have 1 instance of VS Code:
Without publishing the extension it consumes the following;

Once I publish...

And it keeps consuming this amount of memory until I close the VS Code and open it again. If I open VS Code again it keeps consuming a lot of memory once I open a *.AL file.
Why that? Does it upload in memory all the NAV source code to analyze?
I have the following configuration:

Maybe disabling the option of background analyze would help?
Thanks in advance!
Best regards,
Jamal Bakach

Hi! The source will be read into memory and the state will be maintained in memory for the duration of the process. The memory will not be freed until the .NET GC decides it needs to do so and even then, certain artifacts, are cached and kept in memory so that later compilations can be faster.
You can learn more about how this works internally by reading about the architecture of the Roslyn compiler (we follow the same architectural patterns) and by reading how the .NET GC works internally.
I will close this issue as "by-design" as there is no action we can take at the moment. We are continuously improving the performance of our compiler and you might see improvements in this area in the future.

Hi @atoader,
Thanks for your response and explanation.
Is there any way to only compile and check for errors when publishing or creating the package? Like we've been using within C/Side for all these years?
Thanks again for your help.
Best regards,
Jamal Bakach.

Hi @jbakach,
If you just want to compile the code into an .app file and it doing that check for errors then you can use alc.exe from Powershell.
alc.exe can be found in the VSCode extension.

Hi @thpeder, what I pretend is to only compile when I want to genere the app through VS Code.
Is there any way to prevent the error check while developing and just only check for errors when you try to generate the app?
I think that in this way the compiler will only need to check for any errors in that moment. Just like in C/SIDE.
Thanks again.

Hi @jbakach,
No, at the moment you can get that. You could disable the extension in VSCode when you don't need it, but we don't provide any such feature.
If you want to see that, head over to https://aka.ms/BusinessCentralideas and either upvote the idea or be the first to suggest it there.


Add feature for statically linked openssl with reqwest

This adds a feature flag that uses native-tls-vendored instead of native-tls from reqwest.

Hi there. Thank you. This looks good. I'll try to merge this and publish a new release in the next few days.

I just published version 0.21.0.

Thanks for the merge! 🙏


Black screen on launch

My device is ios14beta1. I just tested version 2.0. I don't know why it will flash back when I open it. Is it a signature problem? I use @ JS_ John's signature. Let's go back and try it. Is it a code problem? Hope to fix it. Thank you

That’s not an issue. I haven’t designed a loading screen yet.

did you jailbraked?
iOS14 must be jailbroken to run VM

Yeah, have you jailbroken or used Xcode? Otherwise it won't work.


v1.19.5 version bump

Backstage release v1.19.5 has been published, this Pull Request contains the changes to upgrade to this new release
Please review the changelog before approving, there may be manual changes needed to enable new features:

Changelog: v1.19.5
Upgrade Helper: From 1.19.2 to 1.19.5

Created by Version Bump<PHONE_NUMBER>

Closing in favor of v1.20.0-next.2


Increase test timeout to reduce flakiness

Ref: https://github.com/FuelLabs/fuels-ts/issues/2967#issuecomment-2313138412

Raw error example:
 FAIL  packages/account/src/test-utils/launchNode.test.ts > launchNode > should throw on error and log error message
Error: Test timed out in 5000ms.

@arboleya I don't think this did the job:

https://github.com/FuelLabs/fuels-ts/actions/runs/10681798669/job/29606209965#step:6:1075


How to support multi language

Moment supports multiple languages moment.lang('zh-cn');  "React-date-range" how to support?

You can change the language of moment on componentWillMount in your component and React-date-range automatic apply language of moment.

localization completely reworked, check out https://github.com/Adphorus/react-date-range/blob/master/CHANGELOG.md


Branding

I'm not sure if this should be permanently in our codebase or if we should just create an flist of it and move on

Codecov Report

Merging #11 into zerostor will increase coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           zerostor      #11      +/-   ##
============================================
+ Coverage      58.4%   58.43%   +0.03%
============================================
  Files           208      208
  Lines         24543    24543
============================================
+ Hits          14334    14342       +8
+ Misses         8588     8581       -7
+ Partials       1621     1620       -1

Impacted Files
Coverage Δ

cmd/admin-heal-ops.go
52.91% <0%> (+1.55%)
:arrow_up:

cmd/retry.go
86.95% <0%> (+4.34%)
:arrow_up:

cmd/xl-v1-common.go
100% <0%> (+6.25%)
:arrow_up:

Continue to review full report at Codecov.

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


Replaces scope-safe builder usage in Apalache internals with scop-unsafe builder usage

[ ] Tests added for any new code
[x] Ran make fmt-fix (or had formatting run automatically on all files edited)
[ ] Documentation added for any new functionality
[ ] Entries added to ./unreleased/ for any new functionality

The unsafe builder leverages native scala objects, and is not susceptible to stack-depth issues, unlike the State-based builder.
The changes introduced are as follows:

ScopeUnsafeBuilder is added as an analogue to ScopedBuilder, from existing unsafe builder components
Unsafe components have been changed to trait from class to facilitate inheritance
Constructors for typed operator parameters have been separated out and are reused across both builders
tlaU is added as a convenience instance, analogous to at.forsyte.apalache.tla.types.tla
BuilderUT and BuilderT have been added to the convenience imports, representing TlaEx and TBuilderInstruction respectively. All instances of TBuilderInstruction have been replaced with BuilderT
In oreder to avoid even more refactoring, imports of the scoped builder, at.forsyte.apalache.tla.types.tla have been systematically replaced with at.forsyte.apalache.tla.types.{tlaU => tla, BuilderUT => BuilderT}.
Places where map was used over BuilderT (e.g. _.map(simplifier.simplifyShallow)) have been replaced with abstract methods (e.g. applySimplifyShallowToBuilderEx), overloaded for BuilderT and BuilderUT.

No rule  or data structure semantics have been modified.

Shall we merge this one?

Shall we merge this one?

Let me just add .unreleased/


Blank app when no "downloads" folder in home

Hi 👋🏽 ,
Describe the bug
Blank app upon launching. Everything under "Application" menu is non-responsive.
To Reproduce
Steps to reproduce the behavior:

Install Ubuntu with non-English language, I guess
Download AppImage, make it executable
Launch the app

Screenshots

Add logs from DevTools
Uncaught Error: ENOENT: no such file or directory, mkdir '/home/marie/downloads/y2mp3'
    at mkdirSync (node:fs:1334:3)
    at file:///tmp/.mount_y2mp3-IMxfqy/resources/app.asar/resources/app.bundle.js:2:1800618
    at file:///tmp/.mount_y2mp3-IMxfqy/resources/app.asar/resources/app.bundle.js:2:1983090
    at file:///tmp/.mount_y2mp3-IMxfqy/resources/app.asar/resources/app.bundle.js:2:1983094

OS: Ubuntu
Version [e.g. 22]
App Version [e.g. 1.0.1]

🔨  Fix
My system is in french so my "downloads" folder is actually called "Téléchargements". I just added a "downloads" directory, relaunched the app and everything's working just fine now 🎉.

Thanks for reporting @mjeammet!
I didn't think about other languages 😅
Maybe I'll try to find the download folder but if I can't find, I'll ask the user to selectnthe folder


fix: 🚑 remove app id and secret from code

There were some still valid credentials ! Here is an example of how to avoid hard-coding credentials, but the most important now is to revoke your credentials :

nice one


Gh pages dev

Conflicts:
README.md
Typical.md

@sdgilley,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Crash when hovering over buttons while using Create mod

Describe the bug
The game crashes altogether without providing a reason when hovering over buttons related to Minefortress after installing the Create mod. I have tried almost any combination of Minefortress versions and Create mod versions and the outcome is always the same.
To Reproduce

Use Minecraft 1.20.1 fabric
Install both Minefortess and Create mod for fabric
Launch new fortress world in either creative or survival
Hover over literally any UI element
game freezes and has to be shut down using task manager due to it crashing

Screenshots
A screenshot wouldn't help in this case as it doesn't required any setup or niche interaction.
Environment info:

OS: Windows
Minecraft version: fabric 1.20.1
Mod Version: any version for 1.20.1
Create Mod Version: any version with a fabric port for 1.20.1

Any other mods that you use
Create mod for fabric

Not only create mod.
Fabric Seasons extras
One of Farmers Delight Mods/addons


Restructure unstructured

unstructured.py split into resqpy class specific modules

Codecov Report

Merging #295 (f986996) into integration (6d2be96) will increase coverage by 4.08%.
The diff coverage is 87.36%.

:exclamation: Current head f986996 differs from pull request most recent head c594701. Consider uploading reports for the commit c594701 to get more accurate results

@@               Coverage Diff               @@
##           integration     #295      +/-   ##
===============================================
+ Coverage        57.56%   61.65%   +4.08%
===============================================
  Files               53       90      +37
  Lines            26232    26679     +447
===============================================
+ Hits             15101    16448    +1347
+ Misses           11131    10231     -900

Impacted Files
Coverage Δ

resqpy/unstructured/pyramid_grid.py
19.71% <19.71%> (ø)

resqpy/unstructured/tetra_grid.py
89.42% <89.42%> (ø)

resqpy/unstructured/unstructured_grid.py
90.25% <90.25%> (ø)

resqpy/unstructured/prism_grid.py
94.52% <94.52%> (ø)

resqpy/unstructured/hexa_grid.py
96.87% <96.87%> (ø)

resqpy/unstructured/__init__.py
100.00% <100.00%> (ø)

resqpy/strata.py
88.99% <0.00%> (-0.03%)
:arrow_down:

resqpy/derived_model.py

resqpy/organize.py

resqpy/surface.py

... and 44 more

Continue to review full report at Codecov.

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


ovsdb-idl: Support for readonly columns that are fetched on-demand

There is currently no mechanism in IDL to fetch specific column values
on-demand without having to register them for monitoring. In the case
where the column represent a frequently changing entity (e.g. counter),
and the reads are relatively infrequent (e.g. CLI client), there is a
significant overhead in replication.
This patch adds support in the Python IDL to register a subset of the
columns of a table as "readonly". Readonly columns are not replicated.
Users may "fetch" the readonly columns of a row on-demand. Once fetched,
the columns are not updated until the next fetch by the user. Writes by
the user to readonly columns does not change the value (both locally or
on the server).
The two main user visible changes in this patch are:

The SchemaHelper.register_columns() method now takes an optionaly
argument to specify the subset of readonly column(s)
A new Row.fetch(columns) method to fetch values of readonly columns(s)

Usage:
# Schema file includes all columns, including readonly
schema_helper = ovs.db.idl.SchemaHelper(schema_file)

# Register interest in columns with 'r' and 's' as readonly
schema_helper.register_columns("simple", [i, r, s], [r, s])

# Create Idl and jsonrpc, and wait for update, as usual
...

# Fetch value of column 'r' for a specific row
row.fetch('r')
txn.commit_block()

print row.r
print getattr(row, 'r')

# Writing to readonly column has no effect (locally or on server)
row.r = 3
print row.r     # prints fetched value not 3

Signed-off-by: Shad Ansari<EMAIL_ADDRESS>

I cherry-picked this to master.  Thank you!


Unable to set charset of multipart/form-data request

From<EMAIL_ADDRESS>on May 30, 2013 15:27:45
What steps will reproduce the problem? 1. Create any request that is multipart/form-data.
2. Try sending an xml string with UTF-8 encoding
HttpClientConfig clientConfig = new HttpClientConfig();
clientConfig.httpMultipartMode(HttpMultipartMode.STRICT);
RestAssuredConfig raConfig = new RestAssuredConfig();
raConfig.httpClient(clientConfig);
RequestSpecification req = given().filter(new RequestLoggingFilter(System.out))
.header(USERID_HEADER, "th\mdulpers")
.header(TENANTID_HEADER, "1234")
.header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
.header(IDMSESSIONID_HEADER, "RandomStringValue")
.header(HttpHeaders.CONTENT_TYPE, MediaType.MULTIPART_FORM_DATA)
.header(REQUESTID_HEADER, UUID.randomUUID().toString())
.config(raConfig)
.multiPart("request", draftInput, "application/xml")
.multiPart("config", docConfig, "application/xml").post(url); What is the expected output? What do you see instead? Actual output is -
"Content-Disposition"
": "
"form-data; name="request""
"[\r][\n]"
"Content-Type"
": "
"application/xml; charset=US-ASCII"
"[\r][\n]"
"Content-Transfer-Encoding"
": "
"8bit"
There is no way to set the charset to UTF-8. Result is a 400 bad request. What version of the product are you using? On what operating system? OS: Windows 7 (Microsoft Windows [Version 6.1.7600])
JDK: jdk1.7.0_13
Rest-Assured: 1.8.1-SNAPSHOT Please provide any additional information below.
Original issue: http://code.google.com/p/rest-assured/issues/detail?id=239

From<EMAIL_ADDRESS>on May 30, 2013 06:45:44
Status: Accepted

From<EMAIL_ADDRESS>on June 02, 2013 23:46:08
Implemented support for this in master. Depend on 1.8.1-SNAPSHOT after having added the following repo:
<repositories>
<repository>
<id>sonatype
<url> https://oss.sonatype.org/content/repositories/snapshots/ <snapshots />
</repository>
</repositories>
You should now be able to use the com.jayway.restassured.builder.MultiPartSpecBuilder. Please verify it.
Status: Fixed


Azure DevEx Architecture Board: Review of IC3 ACS Calling

Combined sessions:
Session 1
New SDK Review meeting has been requested.
Service Name: IC3 ACS Calling
Review Created By: Jorge Garcia Hirota
Review Date: 3/8/2023 2:05 PM PT
Hero Scenarios Link: here
Architecture Diagram Link: Not Provided
Core Concepts Doc Link: here
APIView Links:
Android apivew revision
JS apivew revision
Windows platform
iOS
Description: Add ability into ACS SDK to publish and remove 'Raise hand' states on the call.
Detailed meeting information and documents provided can be accessed here
Session 2
Service Name: IC3 ACS Calling
Review Created By: Jorge Garcia Hirota
Review Date: 3/8/2023 2:05 PM PT
Hero Scenarios Link: Not Provided
Architecture Diagram Link: Not Provided
Core Concepts Doc Link: Not Provided
APIView Links: Javascript,
Description: New API to get Proxy URL and TURN info.

Hi @garchiro7,
2 things. First, we'll need the API Views for the other languages for this review with usage samples. Second, could this meeting be merged with the meeting on 3/7? Do you feel each meeting needs the full 2 hours.

This will be 4 languages (this feature is ready for iOS, Android, .net & JS)  the team is working hard to get those 4 links on time. Yes, the other one is small one, so we can do it. My only concern is if the ARB can review 4 SDKs in one hour.

pending iOS., I'll back to you

@ronniegeraghty  done with iOS API view

No one showed up to present for Session 2 so we'll have to reschedule.

Hi @ronniegeraghty  is there a way to combine the session 2 with this one?  https://github.com/Azure/azure-sdk/issues/5625


[Improvement]: Enhance dab CLI tool to check the configuration validity

What happened?
As the development is in progress, the configuration schema changes tend to be quite significant.  I would like to be able to use the dab command tool to check if the current schema is still valid.
As a user I want to validate the schema by using the command
dab validate
that would output all the problems with the schema, and if applicable all related configurations (implied by the multi database support) in the current folder.
Version
0.8.52
What database are you using?
Azure SQL
What hosting model are you using?
AppService
Which API approach are you accessing DAB through?
REST, GraphQL
Relevant log output
No response
Code of Conduct

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

hi @kliszaq,
Thank you for your feedback. Does this issue #1579, serve what you need? Please add to its comments if you find anything missing.
Thanks
Aniruddh.

Indeed, #1579  is what I was asking for.


Upgrade devtools to 0.1.1 and RSpec to 3.3.1

I removed the outdated Gemfile.devtools and pointed the Gemfile
to the newly released devtools gem
I updated RSpec to 3.1.1 and updated the specs accordingly.  The
syntax conversions for RSpec 3 were performed using Transpec. I've
preserved the conversion summary below.

This conversion is done by Transpec 3.1.1 with the following command:
transpec --keep its,oneliner

37 conversions
from: obj.stub(:message)
to: allow(obj).to receive(:message)

20 conversions
from: obj.should_receive(:message)
to: expect(obj).to receive(:message)

16 conversions
from: == expected
to: eq(expected)

For more details: https://github.com/yujinakayama/transpec#supported-conversions

Anima's dependency on >= 2.1 breaks the build.  I can add an updated travis matrix

Ok I'm not quite sure why Travis is still failing now. It looks like it is saying there is a conflict between rspec versions it wants to use but I don't know where that conflict would be coming from.

Updating the bundler development dependency fixed the bundling issue. Now new rubocop cops are failing the build since they aren't configured.  I'll try to update the rubocop settings accordingly.
Since I expect to run into a few more build issues I'll split up my opinionated changes (like modifying rubocop settings) in separate commits which I can squash down, modify, or throw out later.

Alright there are still some JRuby build issues which I'll look into (at least for jruby-head).  @dkubb would it be fine to drop everything below 2.1.7 from the travis matrix?
The MRI builds pass except for mutant which finds new mutations now that it is updated.  I'm happy to try and tackle these mutations but it might make sense in the context of a separate PR.

Some builds fail due to a neutral failure quoted below.  I'm going to add this to ignore_subjects for now

--- Neutral failure ---
Original code was inserted unmutated. And the test did NOT PASS.
Your tests do not pass initially or you found a bug in mutant / unparser.
Subject AST:
(def :define
  (args)
  (begin
    (send nil :desc
      (dstr
        (str "Measure docs in ")
        (begin
          (send
            (ivar :@config) :path))
        (str " with yardstick")))
    (block
      (send nil :task
        (ivar :@name))
      (args)
      (send nil :yardstick_measure))))

Unparsed Source:
def define
  desc("Measure docs in<EMAIL_ADDRESS>with yardstick")
  task(@name) do
    yardstick_measure
  end
end

Some builds fail due to a neutral failure quoted below. I'm going to add this to ignore_subjects for now

JFYI: In the presence of neutrals: You cannot know the killed evils are killed for real. So the coverage in presence of neutrals cannot be trusted.

would it be fine to drop everything below 2.1.7 from the travis matrix?

@backus sure. If someone wants it added back in they can create a PR with the fixes and travis additions. I don't use anything except ruby 2.2.3 in production now anyway.

@dkubb This should be ready for review

@backus I did a code only pass over the diff and noticed 2 class of problems I'd like to see addressed. On the first instance I left a verbose description, on each instance a link to the description. The idea is that if you fix the instances, the "instance comment" will not be visible in the PR view anymore, as a confirmation you catched all instance of a certain class. I realize you did the transform with transproc, but still I think we should always go for the best possible expectations.
OT: Conceptually I think github should provide better review tooling.
Also I notice that this code base still uses 1.8 hashes, I think we should add a dedicated commit to use 1.9 style hashes where possible.

Fixed the mentioned problems @mbj and also used rubocop to update the hash syntax.  The instance comments were actually really helpful for knowing if I addressed everything.  They were also helpful for getting to the issues quickly (using jq):
curl 'https://api.github.com/repos/dkubb/yardstick/pulls/27/comments' | jq 'map(.path) | .[]' -r | sort | uniq | xargs -L1 open

@backus I finished a pass over this code. I think once the flagged issues are resolved I'm ready to merge.

@backus looks great. I will merge once everything is green.

@backus thanks for your contribution!

:)


Different response status code between HotChocolate 13.0.5 and 13.1.0

Is there an existing issue for this?

[X] I have searched the existing issues

Product
Hot Chocolate
Describe the bug
With 13.1.0, when a request is sent without a token, HC returns a status code of 500. In 13.0.5, it was 401.
Steps to reproduce

Have Authorize on a query
Upgrade to 13.1
Request without a token

Relevant log output
N/A

Additional Context?
Full repro available at Full repro: https://github.com/EricStG/HC131AuthRepro
But since the code is simple enough, here's the main bit:
using HotChocolate.Authorization;

var builder = WebApplication.CreateBuilder(args);
builder.Services
    .AddAuthorization()
    .AddAuthentication();

builder.Services
    .AddGraphQLServer()
    .AddAuthorization()
    .AddQueryType<Query>();

var app = builder.Build();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.MapGraphQL();

app.Run();

public class Book
{
    public string Title { get; set; }
}

[Authorize]
public class Query
{
    public Book GetBook() =>
        new Book
        {
            Title = "C# in depth.",
        };
}

Version
13.1.0

Seeing the same behavior after upgrading to 13.1.0.

This is correct ... we messed up authorization with 13.0.x. Now the default behaviour is in line with version 12 plus all the improvements we did.
The reason for the 500 in this case is because the root field was non-null and this lead the error propagation to erase the result. Which is correct.

If this is not being reopened, could you please document how we can configure HotChocolate to return 401? I have multiple versions of mobile app's released. I cannot suddenly return a 500 error and this blocks me from updating HotChocolate
Also, shouldn't a change like this be a major version change? So instead of going from 13.0.5 -> 13.1.0 it should be 14? It's a pretty big change to add to a minor version update

This is graphql spec behavior called non-null propagation. The status code itself can be controlled via header.

Could you please eleborate? I might be looking the wrong places, but how would you control the response of HotChocolate by the header or put it in legacy mode?

https://chillicream.com/docs/hotchocolate/v13/server/http-transport/#supporting-legacy-clients


.bind(foo='foo')  does not work for Retrievers

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.

Example Code
from langchain_core.retrievers import BaseRetriever
from langchain_core.callbacks import CallbackManagerForRetrieverRun
from langchain_core.documents import Document
from typing import List

class CustomRetriever(BaseRetriever):

    # the signature is slightly modified with the addition of `spam`
    def _get_relevant_documents(
        self, query: str, *, spam, run_manager: CallbackManagerForRetrieverRun
    ) -> List[Document]:
        return [Document(page_content=query['query'])]

retriever = CustomRetriever()

# Binding a spam attribute,
spam = {'query': RunnablePassthrough()} | retriever.bind(spam=2)
spam.invoke("bar")

Error Message and Stack Trace (if applicable)

TypeError                                 Traceback (most recent call last)
Cell In[33], line 17
14 retriever = CustomRetriever()
16 spam = {'query': RunnablePassthrough()} | retriever.bind(spam=2)
---> 17 spam.invoke("bar")
TypeError: BaseRetriever.invoke() got an unexpected keyword argument 'spam'
Description
Details
.bind() does not seem to be working well with Retrievers.
The BaseRetriever.invoke() does not support variadics arguments. Runtime binding on a retriever raises a TypeError.
A possible workaround is to use a RunnableLambda wrapping the retriever.get_relevant_documents and dispatching the bounded arguments to a get_relevant_documents. .
How to reproduce
Instantiate a CustomRetriever as per Langchain's documentation and bind an argument to it.
What to expect
bind should dispatch bounded argument to retrievers too.
System Info
System Information

OS:  Linux
OS Version:  #1 SMP Fri Apr 2 22:23:49 UTC 2021
Python Version:  3.11.6 (main, Nov  1 2023, 14:10:18) [GCC 9.4.0]

Package Information

langchain_core: 0.1.15
langchain: 0.1.0
langchain_community: 0.0.12
langchain_openai: 0.0.2.post1

Packages not installed (Not Necessarily a Problem)
The following packages were not found:

langgraph
langserve

You'd want to overwrite the invoke function as well to pass through kwargs:
from langchain_core.retrievers import BaseRetriever
from langchain_core.callbacks import CallbackManagerForRetrieverRun
from langchain_core.documents import Document
from langchain_core.runnables import RunnableConfig, RunnablePassthrough, ensure_config
from typing import Any, List, Optional

class CustomRetriever(BaseRetriever):

    # the signature is slightly modified with the addition of `spam`
    def _get_relevant_documents(
        self, query: str, *, spam, run_manager: CallbackManagerForRetrieverRun
    ) -> List[Document]:
        return [Document(page_content=query['query'])]

    def invoke(
        self, input: str, config: Optional[RunnableConfig] = None, **kwargs: Any
    ) -> List[Document]:
        config = ensure_config(config)
        return self.get_relevant_documents(
            input,
            callbacks=config.get("callbacks"),
            tags=config.get("tags"),
            metadata=config.get("metadata"),
            run_name=config.get("run_name"),
           **kwargs
        )

retriever = CustomRetriever()

# Binding a spam attribute,
spam = {'query': RunnablePassthrough()} | retriever.bind(spam=2)
spam.invoke("bar")

@nfcampos should we update BaseRetriever.invoke to do this be default?

@baskaryan
Hi. Thanks for your help. It might be silly but shouldn't _aget_relevant_documents also accept variadic arguments, for ainvoke to support binding ?

@baskaryan
Hi. Thanks for your help. It might be silly but shouldn't _aget_relevant_documents also accept variadic arguments, for ainvoke to support binding ?

Yep! Both should be fixed in #16551, which will be out in next langchain-core release


Exporting object in another schema generates invalid DDL

log on as userA with DBA privileges
export view vw1 of userB

=> the generated DDL duplicates the view name:
create or replace view userB.vw1.vw1

I fixed the regular expression by also matching an already present owner in the DDL returned from PL/SQL-Developer.


[spaceship] opt-in to skipping 2FA upgrade with SPACESHIP_SKIP_2FA_UPGRADE=1

Motivation and Context
Fixes #18098
Spaceship Apple ID login fails due to Apple ID prompting to be upgraded to 2FA.
Description
Web allows Apple ID login to skip the upgrade but requires a handful of requests to tell the session that this will be skipped. Attempts to do this on a 412 status code if SPACESHIP_SKIP_2FA_UPGRADE=1 is set.
⚠ This may not work into the future when 2FA is hard forced on everyone
Steps
Below are the steps that are done to skip the 2FA upgrade. This was all done with trial and error and matching up request and response headers from web inspector 😇

Get widget key - From location header from signing request
2 Gets repair options - https://appleid.apple.com/account/manage/repair/options
Do upgrade later - https://appleid.apple.com/account/security/upgrade/setuplater
Post complete - https://idmsa.apple.com/appleauth/auth/repair/complete
Store cookie
Fetch olympus session

Testing Steps
Update Gemfile and run bundle install, bundle update fastlane, or bundle update
gem "fastlane", :git => "https://github.com/fastlane/fastlane.git", :branch => "joshdholtz-skip-2fa-upgrade"

We have tested this PR from our side and it works perfectly. Waiting for merging impatiently

:wave: Out of curiosity, is the plan for this to get merged into master and shipped into an actual release, or should we point to this branch indefinitely?

@cocoahero It's getting released now


feat(demo): make markdown generate prettier guidelines

Proposed Changes
Added some markdown overrides so that guidelines appear in a cleaner way.
Potential Breaking Changes
None.
Acceptance Criteria

[ ] The proposed changes are covered by unit tests
[ ] The potential breaking changes are clearly identified
[ ] README.md is adjusted to reflect the proposed changes (if relevant)

the review of what is in the readme.md files will be done in a new task?
For example what is at the bottom of this page the links does not work => https://vapor.coveo.com/feature/PR-2353/index.html#/input/Button

the review of what is in the readme.md files will be done in a new task?

Yes, another PR


[0010] Fix buffer address space to be Vulkan device address space.

Fixes #98

@llvm-beanz @s-perron  I think this fixes #98. PTAL.