Metadata: Sysprogs.WinCDEmu version 4.1

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I know it is failing because of the driver installation prompt, but when running winget install Sysprogs.WinCDEmu, the install is successful.

Sadly, no.
The version in the repo and the version in your PR both requires driver installation:


Internal Address Setting is not alterable, etcd from private network can't join the cluster

I recently connected a second site to an existing cluster, it was wished that the etcd runs also on one node of the other connected side, since this infrastructure should gradually migrate.
The problem: Everything is fine, connection works perfect routing is working, just RKE won't configure etcd correctly. This should,  at least what the docs are saying, be fixable by deploying with the internalAddress specified in the RKE config. However, this is not editable in the rancher ui and I don't seem to find a way to make it work.
So finally reaching out here, see log below for some insight.
2020-07-24 21:32:58.977617 I | embed: rejected connection from "<IP_ADDRESS>:44064" (error "tls: \"<IP_ADDRESS>\" does not match any of DNSNames [\"node-1\" \"node-2\" \"localhost\" \"kubernetes\" \"kubernetes.default\" \"kubernetes.default.svc\" \"kubernetes.default.svc.cluster.local\"] (lookup kubernetes.default.svc.cluster.local on <IP_ADDRESS>:53: no such host)", ServerName "", IPAddresses ["pub-ip" "pub-ip2" "<IP_ADDRESS>" "<IP_ADDRESS>"], DNSNames ["node-1" "node-2" "localhost" "kubernetes" "kubernetes.default" "kubernetes.default.svc" "kubernetes.default.svc.cluster.local"])

Version is currently rancher v2.4.3

anyone an idea how to fix that or make rancher add those missing ips. I tried already adjusting the values in the metadata inside the local cluster (I took a backup before), but even if I change those resources there, it will restore to the before state, so either I did not alter the right ones, or I am missing something :/
@superseb maybe you can help on that?

trying my luck again, anyone who can help on this?

ping, trying with you  @superseb again :/ sry to bother so much

Please describe the issue in detail, meaning:

Provide the docker run command used to register the host
Provide docker inspect etcd from the current nodes and the newly added to see what is configured
Details on network config on the current and newly added host (ip a s/ip route show)

~It is also unclear if you actually added it with the correct addresses initially or if you are trying to edit to the correct address afterwards? I wouldn't expect the latter to work, it would just need to be deleted, cleaned and re-added with the correct configuration.~ I see the edited title. Why is removing and re-adding the node not an option? You are basically running into https://github.com/rancher/rancher/issues/14102 now.

@superseb  The nodes run also openebs, removing them would mean to have huge trouble with not loosing the data of the existing pvs... . I tried just resubmitting the joining command with the internal address provided on the old nodes, but this has no effect at all.

Provide the docker run command used to register the host

Which one, the new one or the old? This is not a problem with adding a new host, this is a problem altering an old one. The old one was added without the internal/external address provided, exactly that is the problem and is not alterable in the aftermath.

Provide docker inspect etcd from the current nodes and the newly added to see what is configured

https://pastebin.com/84Np0JxJ - From one of the current nodes (newly added, I had to remove it currently b/c it can't be added need to add that first again)
Replaced ips node1 and node2 are the public ips of the nodes, those need to be the private ones instead, which is exactly what I am trying to solve.

Details on network config on the current and newly added host (ip a s/ip route show)

That I will not post publicly, only in a disclosed channel.
However:
ip addresses assigned: NIC1 6 Public IPs
ip addresses assigned: NIC2 2 Private IPs
For the new machine on the other side
ip addresses assigned: NIC1 1 Private IP - This one does not have a public ip, the networks are connected to each other and communicate normally on layer2, but only on the private range not publicly (this node is not exposed to the internet just the ethernet which all nodes have access to).
Routes:
Nothing special: Calico routing, I have nodes on the other side for the workers, communication is fine.

What I have tried was editing the metadata state of rancher for this cluster already. I edited the cluster resource and node resources, however rancher will restore the state from somewhere again as soon as an update for those nodes runs. And that is where it gets stuck, where the information is coming from. In theory the task should be easy:
Reconfigure rke to use internal adresses, rollout new certificates for etcd, done.

More infos what I tried
kubectl edit clusters/clusterId - edit ips accordingly
kubectl edit nodes/nodename - edit ips accordingly
kubectl -n clusterid edit nodes.management.cattle.io/internal-id - edit ips accordingly
rerun setup task by minor settings change

I finally solved it oO, I just had an idea: What happens when I change the /etc/hosts file accordingly to resolve to the private ip. Did that, restarted docker, and now it started displaying the correct ips... . I tried to add the etcd host again, and worked without problems.

ok happy to early, etcd can't join since etcd is still reporting  rejected connection from "<IP_ADDRESS>:43152" (error "tls: "<IP_ADDRESS>" does not match any of DNSNames

even with spoofed dns entries it will result in this:
2020-08-05 17:48:17.473226 E | rafthttp: request cluster ID mismatch (got f43462c8c88a5f56 want 4137c9d7f3e23b91)

I guess best thing is stop letting rancher handle etcd and take into my own hands :/

Okay, I had the exact same issue: my original cluster was created on a cloud provider and only had public IP's. I wanted to move all the nodes behind a firewall, on private network. However, I could not get the new master to join the exisiting etcd cluster. Rancher would mix the external IP and the internal IP (there are numerous issues about that) and the same error would keep popping up:
embed: rejected connection from "<IP_ADDRESS>:51728" (error "tls: \"<IP_ADDRESS>\" does not match any of DNSNames

I could not get <IP_ADDRESS> (which is the internal IP of the machine I'd like to get off the public network) in the SSL certificate. I could not set rke.cattle.io/internal-ip and then rotate the certificates (to let them be regenerated).
My solution to this (after trying so much options), was to use iptables routing to rewrite the IP:
iptables -t nat -A OUTPUT -p tcp -d <IP_ADDRESS> -j DNAT --to-destination EXTERNALIP
iptables -t nat -A PREROUTING -p tcp -d <IP_ADDRESS> -j DNAT --to-destination EXTERNALIP
iptables -t nat -A POSTROUTING -j MASQUERADE

<IP_ADDRESS> is the IP of the new internal master node
EXTERNALIP is an external IP (on the firewall) which I used to NAT (just for the time being).
This makes the request to etcd appear from the original external IP (which is inside the etcd certificate /etc/kubernetes/ssl/kube-etcd-*.pem and allows the certificate to be used and etcd to be migrated! 🎉

still an issue wont ever be stale

Is this the same as https://github.com/rancher/rancher/issues/14102 or does it have something else to it?

They could be very well related. There's currently no way to change IP addresses. Rancher generates ETCD SSL certs which are bound to specific IP addresses and are not regenerated which break communications with new nodes.

no not at all related.
This is about existing clusters that are trying to add afterwards a private network and connect a new etcd node on this private network. With rke without rancher this is easy pie, with rancher controlling rke it is impossible. In general I would wish more control of rke since rancher is breaking just too many things and it is really hard and some things impossible to fix those issues....

still an issue

iptables -t nat -A OUTPUT -p tcp -d <IP_ADDRESS> -j DNAT --to-destination EXTERNALIP
iptables -t nat -A PREROUTING -p tcp -d <IP_ADDRESS> -j DNAT --to-destination EXTERNALIP
iptables -t nat -A POSTROUTING -j MASQUERADE

@gerwim do you have any script for that?
@superseb may reopen that issue.... its still valid

@ItsReddi script? What do you mean? Those are three lines of commands. :-)


feat: compress url

Description:
Port - https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-url
BREAKING CHANGE:
No
Related issue (if exists):
No

@kdy1 Rebased

Oh CI failed

Give me sec, I will check

Found small problem, WIP

@kdy1 Fixed

Thank you!


bindDataGetter deprecate get* prefix

This is to avoid unwanted clashes with getter functions starting with "get".
bind* functions are already implemented, so a deprecation notice should be emitted before v2's removal of the function prefix.

Rename the interface to bindData rather than bindDataGetter and deprecate the entire function.


[NT-1089] "native_project_cards" experiment setup

📲 What
Sets up the native_project_cards experiment and prepares the necessary outputs for implementation of this experiment.
🤔 Why
So that we can experiment on the design of the native project cards.
🛠 How
In order to properly show this experiment, we need to guarantee that we know the experimental variant before any project cards are loaded. In order to accomplish this, while also ensuring that we're not over-calling Optimizely's activate function on every instance of DiscoveryPageViewController, the logic for calling activate on the native_project_cards experiment was moved to DiscoveryViewModel, which is the higher level VM that manages the configuration and updating of the parent pageViewController's VCs. By moving the Optimizely configuration and activation logic to this level, we can be guaranteed that the experiment variation has been assigned by the time getVariation is called in DiscoveryPageViewModel.
This PR:

adds logic that waits for Optimizely configuration to be finished before loading the child DiscoveryPageViewControllers into the DiscoveryPagesDataSource
activates the native_project_cards experiment in DiscoveryViewModel. In order to get the variation in DiscoveryPageViewModel to be passed down to the VC, we call getVariation
adds a Optimizely.Variant parameter to the projectsLoaded output on DiscoveryPageViewModel. This will be used to determine which class of project cards to load into the data source
adds a backgroundColor output in DiscoveryPageViewModel that is updated based on the variant
adds a optimizelyConfigurationFailed input in AppDelegateViewModel that is used to notify the VM when Optimizely configuration fails. This then fires a notification that can be observed so logic can proceed when there is a configuration failure

👀 See
A device white-listed into the experimental variant (grey background):

♿ Accessibility
N/A
🏎 Performance
N/A
✅ Acceptance criteria

[ ] all Discovery navigation should be working as expected: changing filters, changing sorts, pagination
[ ] whitelist your device into the native_project_cards experiment. You should see the background of discovery pages is grey

          1 Warning

:warning:
Big PR

  Generated by :no_entry_sign: Danger


What prerequisites do I need to successfully build these contracts?

Running ./build.sh on a vanilla Ubuntu 18.04 Docker container fails because cmake isn't installed. Once I installed that I got a different error. I installed build-essential and got another error.
Instead of trying to troubleshoot all of those things one at a time, could you let me know the minimum set of tools I need (in addition to eosio and the CDT) in order to build these contracts?

I think you need to install the latest eosio precompiled and the latest eosio.cdt
Then run the build with the following since the default location changed:
./build.sh -e /usr/ -c /usr/bin/
I'mnot sure if that's all you need since I'm doing it and I get stuck on
[  5%] Linking CXX executable eosio.bios.wasm


Add support to skip current session and token from being terminated/revoked when updating the password

Is your suggestion related to an experience ? Please describe.
Currently, when the password is updated by the user, all the sessions are terminated, and all the tokens are revoked. Hence, the user is logged out from the current session, and will have to log in again with the new password.
Describe the improvement
With this improvement, it is possible to skip the current session/token from being terminated/revoked, which stops the user from being logged out from the current session.

Related to https://github.com/wso2/product-is/issues/8988


Move crates to 2021 edition

Changes

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

Current dependencies on/for this PR:

main

PR #357

PR #358   👈

PR #359

PR #360

This stack of pull requests is managed by Graphite.


Introduce fmt.Sprintf where applicable

Description
I replaced '?' with fmt.Sprintf to parameterize table names in methods, as it would throw the following error otherwise: "Bind variables cannot be used for table names"
Issue reference
fixes #1387
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly

[ ] Created/updated tests

[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

Thanks @mbimbij!
Did you test this locally to confirm it's working? (silly question perhaps, but needed :))

@yaron2
not a silly question :) , but besides make test i haven't performed any other test yet.
This is my very first PR in an open source project (woohoo)
I am just getting started with Dapr, and i don't know go and its ecosystem. I was very unsure where to start honestly
I found out this page and this one, i will go through them tomorrow to try to figure this out.
If you have any tips, feel free to share with me.
I will comment back when i tested my work, or if i am stuck

@yaron2
Conformance tests added and passing. Need to start cassandra with docker-compose manually out of band however.
Tell me if it needs anything else

manual tests work, after following these instructions to test locally.
curl-ing the sidecar self-hosted

and here, verifying with cqlsh

Please run 'go mod tidy' and push the changes
One of the files needs to be gofmt-ed. Go to the Files Changed view to see which.

hi @yaron2

go mod tidy did not produce any change :/
got you. I applied go fmt and the file should now be properly formatted

Merged. Thanks for your contribution @mbimbij!

you are very welcome @yaron2 .
I enjoyed doing that contribution very much :)


allow passing device_id to login method in client

Signed-off-by: Valentin Deniaud<EMAIL_ADDRESS>

done

Thanks @Zil0. Pushing a change with a minor tweak to the wording, and then merging this.


always see actively focused element

pinned expression: document.activeElement

super easy to do in devtools right now, but there's no visual. how common is this, can we do it easily?


More optimization and changed package name

Have not tested yet.

Any commits pending will need to be re-done as this pull request will break all pending commits/pull requests.

Creating new with commits


Format docstrings so they pass pydocstyle's criteria

Detailed Description
We plan to use pydocstyle to automatically check that our docstrings conform to a standard format.  It would be amazing to have help tweaking our existing docstrings to conform!
pydocstyle's list of criteria is here: http://www.pydocstyle.org/en/stable/error_codes.html
Here's the Pull Request (and discussion) about enabling pydocstyle for nowcasting_utils: https://github.com/openclimatefix/nowcasting_utils/pull/23

The PR showing the errors from the linter for SatFlow is here: #96

Also, any updates should probably wait for #94 to be merged, as that removes ~5400 lines of code and a ton of files, and shrinks SatFlow a lot


Evaluation: add time series evaluation with metadata

We have an "eval with metadata" method, but we don't currently have the equivalent for time series.
Made more complicated here by the fact that we have multiple predictions for multiple time steps...
https://github.com/deeplearning4j/deeplearning4j/blob/master/deeplearning4j-nn/src/main/java/org/deeplearning4j/eval/Evaluation.java#L203

Is this still viable issue?

Closing old issues.


[Vault] Allow kubernetes auth mount point to be configurable

Currently, the Vault destination and source plugins can authenticate themselves using Kubernetes Service Accounts.
This is achieved via the auth_kubernetes method in the hvac library. However, the mount point used for the Kubernetes authentication backend with this method defaults to kubernetes which will not necessary be true for all environments, in particular ones where a Vault cluster may be used for multiple Kubernetes clusters. Therefore I would suggest that we make this mount point configurable on a per-destination basis to increase the portability of the Vault plugins.

hello!
I have this need, for example the Vault Agent authenticates in the API as: http://vault.vault.svc:8200/v1/auth/kubernetes/k8s-server1/login instead of the default: http://vault. vault.svc:8200/v1/auth/kubernetes/login
Is there already a definitive solution for this Vault difficulty with Kubernetes?


[MM-12215] Make deep link URL prefix configurable for Release/Beta

Summary
Default deep link URL prefix is now mattermost-beta
To set to mattermost-mobile (or anything else, for that matter) in production releases, set new fastlane ENV variable DEEPLINK_PREFIX to mattermost-mobile
Ticket Link

MM-12215

Device Information
This PR was tested on:

iPhone 11 Simulator
Android 9 (OnePlus 5 device)

Screenshots
Release Build

to Permalink
to Channel

Beta Build

to Permalink
to Channel

Deep Link URL patterns
Release Build

mattermost-mobile://<teamname>/channels/<channelname>
mattermost-mobile://<teamname>pl/<permalinkID>

Beta Build

mattermost-beta://<teamname>/channels/<channelname>
mattermost-beta://<teamname>pl/<permalinkID>

@chuttam Is this ready for review?

@hanzei Yes, it is.

@chuttam Would you mind resolving the conflict and requesting the reviews? Or should I take care of requesting the reviews?

APP_SCHEME is indeed a way better name. Changes done.
Adding to documentation now.

Already added the env var for APP_SCHEME in our circleCI

@chuttam
Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Fetching origin
+++ Updating remotes done...
!!! 'upstream/release-1.28' not found. The second argument should be something like upstream/release-0.21.
    (In particular, it needs to be a valid, existing remote branch that I can 'git checkout'.)


Enable federated auth for big query

Trello card
https://trello.com/c/5YFXDRps
Context
All services will be migrated to the workload identity federation for improved security.
Changes proposed in this pull request
Enable the analytics module for get-into-teaching app on production
Guidance to review
Events should be published to Google Big Query

 GIT bug: Invalid template interpolation value


doc: component override basic conversion

What
This MR is about extending a component from theme-chocolatine.
How
I've based myself on V2 documentation and adapted it to new folder organization
Demo
https://deploy-preview-770--heuristic-almeida-1a1f35.netlify.app/docs/remixed/guides/override-a-component

Please update the target branch to main.
I can't review it right away, it'll be later or on monday. Sorry.


Preferred behaviour for strchr and strrchr?

I'm fixing strchr and adding strrchr, similar to the C functions.
The version that reflects the C functions would have:

strchr ( caddr u delim -- caddr' | 0 )
strrchr ( caddr u delim -- caddr' | 0 )

In both cases caddr' points to the matching delim or null.
BUT is the above useful form?  Would the following make sense?

strchr ( caddr u delim -- caddr' u' )
strrchr ( caddr u delim -- caddr' u' )

Where caddr' u' returns the trailing string from the matching delim or caddr 0 for not found.  For strchr it seems to make sense as you scan left to right, you probably care about the trailing string more often.
However in the case of strrchr do you want the trailing string from the point of the matching delim or
as you scan right to left you should we return leading string upto but not including the delim?
If we stick to the C behaviour, then the caller can pick the leading or trailing string from the matching delim as needed.  (I might have just answered my own question, but I'm sure @ruv you have thoughts.)  If the C behaviour is better, then next question is should I return caddr' or u'?
Here are test cases based on the 2nd behaviour:
.( strchr strrchr ) test_group
: tw_empty S" " ;
: tw_no_delim S" foobar" ;
: tw_leading_delim S" /foo/bar" ;
: tw_middle_delim S" foo/bar" ;
: tw_trailing_delim S" foo/bar/" ;

t{ tw_empty '/' strchr tw_empty COMPARE -> 0 }t
t{ tw_no_delim '/' strchr tw_empty COMPARE -> 0 }t
t{ tw_middle_delim '/' strchr S" /bar" COMPARE -> 0 }t
t{ tw_leading_delim '/' strchr tw_leading_delim COMPARE -> 0 }t
t{ tw_trailing_delim '/' strchr S" /bar/" COMPARE -> 0 }t

t{ tw_empty '/' strrchr tw_empty COMPARE -> 0 }t
t{ tw_no_delim '/' strrchr tw_empty COMPARE -> 0 }t
t{ tw_middle_delim '/' strrchr S" /bar" COMPARE -> 0 }t
t{ tw_leading_delim '/' strrchr S" /bar" COMPARE -> 0 }t
t{ tw_trailing_delim '/' strrchr S" /" COMPARE -> 0 }t
test_group_end

There is a well-known word scan ( sd char -- sd )
: scan ( c-addr1 u1 char -- c-addr2 0 | c-addr3 u3\0 )
  \ c-addr2 = c-addr1 + u1
  \ c-addr3 is the address of the leftmost character char within the input string
  \ u3 is the number of consecutive characters char
  >r  begin  dup while  over c@ r@ -
    while  1 /string  repeat then
  r> drop
;

The version that reflects the C functions would have:

strchr ( caddr u delim -- caddr' | 0 )

strrchr ( caddr u delim -- caddr' | 0 )

In both cases caddr' points to the matching delim or null.
BUT is the above useful form? Would the following make sense?

strchr ( caddr u delim -- caddr' u' )

strrchr ( caddr u delim -- caddr' u' )

A more useful result is one that can be both analyzed and ignored.  If you return caddr|0, you have to always analyze this result.
I can suggest:

( c-addr1 u char -- c-addr2 0 | c-addr3 1 ), where  c-addr2 = c-addr1 + u.

This can be extended to support xchar:

( c-addr1 u xchar -- c-addr2 0 | c-addr3 +n\0 ), where  c-addr2 = c-addr1 + u.

Regarding strrchr.  Your idea is that r means "scan from right to left". But this should mean that you return the left part starting from the found character.  So, a better concept is that you return the last occurrence of the character.
Some options for naming are:

seek-char
seek-char-last

There is a well-known word scan ( sd char -- sd )

If scan is so well known, why am I the last to hear about it (sniff)?  Why isn't it in the standard as part of the String word set?  Why do I never win the lottery?  Inquiring minds want to know!  Buddha damn it.  Sheesh.

A more useful result is one that can be both analyzed and ignored. If you return caddr|0, you have to always analyze this result.

Hmm.  Yes.  Its nice to be able to ignore a result, but if you're searching for a delim, then you probably have plans for it.  Though now I'm starting to lean towards:

strchr ( caddr u delim -- u' ) where u' <= u
strrchr ( caddr u delim -- u' ) where u' <= u

Then the offset u' can be applied as desired.

I can suggest:
* `( c-addr1 u char -- c-addr2 0 | c-addr3 1 )`, where  _c-addr2_ = _c-addr1_ + _u_.

You might Rabbit, you might.

Regarding strrchr. Your idea is that r means "scan from right to left". But this should mean that you return the left part starting from the found character. So, a better concept is that you return the last occurrence of the character.

Yep I noticed that just as I got the two words working, which is why I posed the question, cause I realised that C idioms don't always travel well.

Some options for naming are:
* `seek-char`
* `seek-char-last`

Well the point of strchr and strrchr is that as a C programmer I recognise them and have a rough expectation as to how they behave.  Kinda of like what I did with ebs.  It might not translate exactly, but feels comfortable.
Plus I have words like strrev strdup tolower isxdigit etc. already.  Using the C names, saves me having to think about new names.

When the character is not found, strchr returns the rightmost zero-length substring, strrchr returns the leftmost zero-length substring. This is important for address arithmetic, so the corresponding test cases could be added:
t{ s" foobar" 2dup + -rot '#' strchr -rot = -> 0 true }t
t{ s" foobar" over -rot '#' strrchr -rot = -> 0 true }t

https://github.com/SirWumpus/post4/blob/5c43cad560ac2f9fca3da834c2b1c5ee4f246ba8/src/post4.p4#L1494-L1498
There is a well-known word asciiz> ( c-addr -- c-addr u ),  see github search.
BTW, the name "scan" is used for different words in the wild.

When the character is not found, strchr returns the rightmost zero-length substring, strrchr returns the leftmost zero-length substring. This is important for address arithmetic, so the corresponding test cases could be added:
t{ s" foobar" 2dup + -rot '#' strchr -rot = -> 0 true }t
t{ s" foobar" over -rot '#' strrchr -rot = -> 0 true }t

✅

https://github.com/SirWumpus/post4/blob/5c43cad560ac2f9fca3da834c2b1c5ee4f246ba8/src/post4.p4#L1494-L1498
There is a well-known word asciiz> ( c-addr -- c-addr u ), see github search.

❌  I would have NEVER have guessed what asciiz> does without reading the code or docs.  strlen though clear as a bell.

BTW, the name "scan" is used for different words in the wild.

So using strchr then avoids potential conflicting versions of scan, which is probably for the best.  I'd like Post4 to bring familiar elements from C (or Java (hmm);  C++ doesn't count (vile)) that new comers can relate to, provided they don't conflict with Standard words.


Install fails  with dep pyyaml: AttributeError: cython_sources

Installing pynitrokey fails due to old pyyaml 5.4.1.
cmd_2023-07-23_12.47.44_pip_errors.log
There is already an issue, but It seems, they are unwilling to maintain 5.4: https://github.com/yaml/pyyaml/pull/726#issuecomment-1640397938
Installing pynitrokey from master works, since the spsdk dependency has been updated and it doesn't require pyyaml anymore.
Is it possible to cut a new release?

Thanks for the report.  I’ve released 0.4.39.  It should be available on PyPI soon.


fix gdal file load on windows

Closes #436
@tiemvanderdeure  if you can try this on windows that would help (if the tests here actually pass!)

Codecov Report

Merging #437 (2eae2dd) into main (c6f4a24) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #437   +/-   ##
=======================================
  Coverage   79.36%   79.36%
=======================================
  Files          41       41
  Lines        3973     3974    +1
=======================================
+ Hits         3153     3154    +1
  Misses        820      820

Impacted Files
Coverage Δ

src/sources/gdal.jl
85.57% <100.00%> (+0.04%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add trust_remote_code=True to a few BHASA scenarios

The Hugging Face datasets for facebook/flores, ai4bharat/IndicQA, ai4bharat/IndicSentiment and tmu-nlp/thai_toxicity_tweet contain custom data loaders. In future versions of datasets, trust_remote_code=True will be required to run these custom data loaders. We add trust_remote_code=True for these datasets for future-proofing.
We pin the revision for these datasets to prevent code injection attacks.
The dataset thai_toxicity_tweet redirects to tmu-nlp/thai_toxicity_tweet, so we change the name to the canonical name. In general, top level Hugging Face object URLs are being deprecated.

cc @raileymontalan @weiqipedia


[fmt] build failure

Host Environment

Package: fmt:x86-windows
Vcpkg version: 2020.06.15-nohash
OS: Windows 10 Enterprise (Build: 19041.572)

To Reproduce
Steps to reproduce the behavior:
./vcpkg install fmt
-- Using cached C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/downloads/fmtlib-fmt-4fe0b11195b7cd71f39253c44db2c9dddf6b82d4.tar.gz
-- Cleaning sources at C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/buildtrees/fmt/src/dddf6b82d4-f2c5fef865.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/downloads/fmtlib-fmt-4fe0b11195b7cd71f39253c44db2c9dddf6b82d4.tar.gz
-- Applying patch fix-warning4189.patch
-- Using source at C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/buildtrees/fmt/src/dddf6b82d4-f2c5fef865.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
-- Installing: C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/packages/fmt_x86-windows/share/fmt/copyright
-- Using msys root at C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/downloads/tools/msys2/c809757c94447846
-- Fixing pkgconfig file: C:/Users/Nigel Ho/Documents/GitProjects/vcpkg/packages/fmt_x86-windows/lib/pkgconfig/fmt.pc
-- CHECK_LIB_fmt_RELEASE:CHECK_LIB_fmt_RELEASE-NOTFOUND
CMake Error at scripts/cmake/vcpkg_fixup_pkgconfig.cmake:232 (message):
Library "fmt" was not found! If it is a system library use the
SYSTEM_LIBRARIES parameter for the vcpkg_fixup_pkgconfig call! Otherwise,
correct the *.pc file
Call Stack (most recent call first):
scripts/cmake/vcpkg_fixup_pkgconfig.cmake:298 (vcpkg_fixup_pkgconfig_check_files)
ports/fmt/portfile.cmake:44 (vcpkg_fixup_pkgconfig)
scripts/ports.cmake:135 (include)
Error: Building package fmt:x86-windows failed with: BUILD_FAILED

@hosongguang , please create a clone without space in vcpkg path, same issue with #13103, and would fix by PR #13126.


SQL Lexer Quotes

(Original issue 179 created by None on 2007-01-03T16:37:38+00:00)
{{{
#!sql
select * from db..table;
union
select distinct
s1.spid
,s1.status
,"waiting user"=suser_name(s1.suid)
,"blocking user"=suser_name(s2.suid)
,waithost=isnull(s1.hostname, s1.ipaddr)
,blk=isnull(convert(char(5),s1.blocked),'')
,dbname=isnull(db_name(s1.dbid),'')
,"time bloking"=s1.time_blocked
,table_id = isnull(object_name(l.id, l.dbid),'')
,s2.blocked
from master..sysprocesses s1
,master..sysprocesses s2
,master..syslocks l
where s1.blocked != 0
and s1.blocked  = s2.spid
and s1.spid    *= l.spid
order by s1.spid,s1.dbname
go
update db1.dbo.sysobjects
set id = 0
}}}
As you can see the quotes are not handled correct. This was reported via IRC by slav0nic. Should be lexed as String.Other.
Reported by blackbird

(Original issue was assigned to gbrandl)
(Original issue 179 last updated on 2007-01-08T17:14:53+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by gbrandl on 2007-01-08T17:14:53+00:00)
Fixed in r2646.

(Original comment by gbrandl on 2007-01-08T15:41:53+00:00)
http://dpaste.com/4481/

(Original comment by slav0nic on 2007-01-08T11:51:08+00:00)
  broken too
http://dpaste.com/4476/


feat: add script to re-run all failed "CI (Lint + Molecule)" jobs

Why TF ever there have been many occasions where a CI would fail without having changed anything and not because of bit-rot (which the weekly exec of ci is for) but because of some weird timeout or idk yet
WARNING  Retrying execution failure 1 of: ansible-galaxy role install -vr requirements.yml

bad: https://github.com/JonasPammer/ansible-role-motd/runs/7216368980
ok on re-run: https://github.com/JonasPammer/ansible-role-motd/runs/7253561247

still want to try this out! remove stale label


Constraints on the input for add_edge when it is a list

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangGraph/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 LangGraph/LangChain rather than my code.
[X] I am sure this is better as an issue rather than a GitHub discussion, since this is a LangGraph bug and not a design question.

Example Code
Q1: When the start_key in add_edge is a list, the end_key can't be __end__.
from langgraph.graph import END, MessageGraph, StateGraph

def foo(state: MessageGraph) -> None:
    return

graph_builder = StateGraph(MessageGraph)
graph_builder.set_entry_point("enter")
for node in ["enter", "A", "B"]:
    graph_builder.add_node(node, foo)
graph_builder.add_conditional_edges("enter", lambda _: True, {True: "A", False: "B"})

graph_builder.add_edge(["A", "B"], END)
# graph_builder.add_edge("A", END)
# graph_builder.add_edge("B", END)

app = graph_builder.compile()

Q2: When the input is a list, you must add the node before adding an edge.
However, if the input is a str, you don't necessarily need to add the node first.
from langgraph.graph import END, MessageGraph, StateGraph

def foo(state: MessageGraph) -> None:
    return

graph_builder = StateGraph(MessageGraph)
graph_builder.set_entry_point("enter")

graph_builder.add_edge(["A", "B"], END)
# graph_builder.add_edge("A", END)
# graph_builder.add_edge("B", END)

for node in ["enter", "A", "B"]:
    graph_builder.add_node(node, foo)
graph_builder.add_conditional_edges("enter", lambda _: True, {True: "A", False: "B"})

app = graph_builder.compile()

Error Message and Stack Trace (if applicable)
Q1
Traceback (most recent call last):
  File ".\issue.py", line 14, in <module>
    graph_builder.add_edge(["A", "B"], END)
  File ".\langgraph\graph\state.py", line 378, in add_edge
    raise ValueError(f"Need to add_node `{end_key}` first")
ValueError: Need to add_node `__end__` first

Q2
Traceback (most recent call last):
  File ".\issue.py", line 11, in <module>
    graph_builder.add_edge(["A", "B"], END)
  File ".\langgraph\graph\state.py", line 374, in add_edge
    raise ValueError(f"Need to add_node `{start}` first")
ValueError: Need to add_node `A` first

Description
Basically, Q1 is a subissue of Q2.

Is it necessary to check if the node has already been added in the high-level module of the code?
I removed these parts and it still runs, and it can solve the problem mentioned above.
At least the result of draw_mermaid_png is the same. I haven't conducted further tests.

However, I found that when the input is a list, it uses waiting_edges, but when the input is a str, it doesn't use waiting_edges.
After further observation, I noticed that during subsequent compilation, nodes are always added first.
At this point, it makes me reconsider whether the previous check for node existence in add_edge is necessary.

Upon further observation, I found that the underlying behavior differs when the input is a string or a list, such as with different channel_name values.
Since I currently don't understand the underlying workings of langgraph (e.g., how channels operate), I'm unsure if directly modifying the preliminary checks in the higher-level module's add_edge might cause additional issues.

A simple question to summarize the above explanation: Will the outputs be exactly the same for the following two inputs?
graph_builder.add_edge(["A", "B"], END)

graph_builder.add_edge("A", END)
graph_builder.add_edge("B", END)

System Info
langgraph==0.2.14
platform==windows
python-version==3.12.5

I am using the langgraphJS and found some bugs related to the two types of inputs you've mentioned.

Fan-out and fan-in with extra steps

The code is derived from the Create branches for parallel execution offical doc.
workflow
  .addNode("a", nodeA.call.bind(nodeA))
  .addNode("b", nodeB.call.bind(nodeB))
  .addNode("b2", nodeB2.call.bind(nodeB2))
  .addNode("c", nodeC.call.bind(nodeC))
  .addNode("d", nodeD.call.bind(nodeD))
  .addEdge(START, "a")
  .addEdge("a", "b")
  .addEdge("b", "b2")
  .addEdge("a", "c")

  // >>> method 1 (right way) <<<
  .addEdge(["b2", "c"], "d")

  // method 2 (wrong way) - The following will add one extra `I'm D` to the aggregate
  // .addEdge("b2", "d")
  // .addEdge("c", "d")

  .addEdge("d", END);

The output from method 1 - ✅
// from method 1
Adding I'm A to
Adding I'm B to I'm A
Adding I'm C to I'm A
Adding I'm B2 to I'm A,I'm B,I'm C
Adding I'm D to I'm A,I'm B,I'm C,I'm B2
{ aggregate: [ "I'm A", "I'm B", "I'm C", "I'm B2", "I'm D" ] }

The output from method 2 - ❌ an extra "I'm D" is presented.
// From method 2
Adding I'm A to
Adding I'm B to I'm A
Adding I'm C to I'm A
Adding I'm B2 to I'm A,I'm B,I'm C
Adding I'm D to I'm A,I'm B,I'm C
Adding I'm D to I'm A,I'm B,I'm C,I'm B2,I'm D
{
  aggregate: [ "I'm A", "I'm B", "I'm C", "I'm B2", "I'm D", "I'm D" ]
}

function routeToBCorCD(state: GraphState): string[] {
  const { which } = state;
  return which === "bc" ? ["B", "C1"] : ["B", "C2"];
}

workflow
  .addNode("A", NodeA.call.bind(NodeA))

  .addNode("C2", NodeC2.call.bind(NodeC2))

  .addNode("B", NodeB.call.bind(NodeB))

  .addNode("C1", NodeC1.call.bind(NodeC1))

  .addNode("D", NodeD.call.bind(NodeD))

  .addEdge(START, "A")

  .addConditionalEdges("A", routeToBCorCD, { B: "B", C1: "C1", C2: "C2" })

  .addEdge(["B", "C1", "C2"], "D") // This method to fan-in

  .addEdge("D", END);

 const res = await app.invoke({
    messages: [],
    which: "bc",
  });

Output: ❌ "I am D" is missing
Add I am A to []

Add I am B to [I am A]

Add I am C1 to [I am A]

Add I am D to [I am A,I am B,I am C1]
{ messages: [ 'I am A', 'I am B', 'I am C1' ], which: 'bc' }

Must use the following method to fan-in to avoid this bug
  .addEdge("B", "D")
  .addEdge("C1", "D")
  .addEdge("C2", "D")

https://langchain-ai.github.io/langgraph/how-tos/branching/
import operator
from typing import Annotated, TypedDict

from langgraph.graph import END, START, StateGraph

class State(TypedDict):
    aggregate: Annotated[list, operator.add]

class ReturnNodeValue:
    def __init__(self, node_secret: str) -> None:
        self._value = node_secret

    def __call__(self, state: State) -> State:
        print(f"Adding {self._value} to {state['aggregate']}")
        return {"aggregate": [self._value]}

builder = StateGraph(State)
builder.add_node("a", ReturnNodeValue("I'm A"))
builder.add_edge(START, "a")
builder.add_node("b", ReturnNodeValue("I'm B"))
builder.add_node("b2", ReturnNodeValue("I'm B2"))
builder.add_node("c", ReturnNodeValue("I'm C"))
builder.add_node("d", ReturnNodeValue("I'm D"))
builder.add_edge("a", "b")
builder.add_edge("a", "c")
builder.add_edge("b", "b2")

builder.add_edge(["b2", "c"], "d")  # will get one D output
# builder.add_edge("b2", "d")
# builder.add_edge("c", "d")  # will get extra D output

builder.add_edge("d", END)
graph = builder.compile()

graph.invoke({"aggregate": []})

# list

Adding I'm A to []
Adding I'm B to ["I'm A"]
Adding I'm C to ["I'm A"]
Adding I'm B2 to ["I'm A", "I'm B", "I'm C"]
Adding I'm D to ["I'm A", "I'm B", "I'm C", "I'm B2"]

# str

Adding I'm A to []
Adding I'm B to ["I'm A"]
Adding I'm C to ["I'm A"]
Adding I'm B2 to ["I'm A", "I'm B", "I'm C"]
Adding I'm D to ["I'm A", "I'm B", "I'm C"]
Adding I'm D to ["I'm A", "I'm B", "I'm C", "I'm B2", "I'm D"]

From this example, I tried two types of input (using str twice or a list once), and the results were indeed different.
I guess that using a list requires waiting for all the results to arrive before outputting the aggregated results at once. However, using str separately means two independent parallel paths are running, right?

import operator
from typing import Annotated, TypedDict

from langgraph.graph import END, START, StateGraph

class State(TypedDict):
    aggregate: Annotated[list, operator.add]

class ReturnNodeValue:
    def __init__(self, node_secret: str) -> None:
        self._value = node_secret

    def __call__(self, state: State) -> State:
        print(f"Adding {self._value} to {state['aggregate']}")
        return {"aggregate": [self._value]}

builder = StateGraph(State)
builder.add_node("a", ReturnNodeValue("I'm A"))
builder.add_edge(START, "a")
builder.add_node("b", ReturnNodeValue("I'm B"))
builder.add_node("c", ReturnNodeValue("I'm C"))
builder.add_node("d", ReturnNodeValue("I'm D"))
builder.add_edge("a", "b")
builder.add_edge("a", "c")

builder.add_edge(["b", "c"], "d")  # will get a D output
# builder.add_edge("b", "d")
# builder.add_edge("c", "d")  # also get a D output

builder.add_edge("d", END)
graph = builder.compile()

graph.invoke({"aggregate": []})

# list and str

Adding I'm A to []
Adding I'm B to ["I'm A"]
Adding I'm C to ["I'm A"]
Adding I'm D to ["I'm A", "I'm B", "I'm C"]

However, in this situation, it always outputs just one "D."
Could you help me understand where I might be mistaken?

import operator
from typing import Annotated, TypedDict

from langgraph.graph import END, START, StateGraph

class State(TypedDict):
    aggregate: Annotated[list, operator.add]

class ReturnNodeValue:
    def __init__(self, node_secret: str) -> None:
        self._value = node_secret

    def __call__(self, state: State) -> State:
        print(f"Adding {self._value} to {state['aggregate']}")
        return {"aggregate": [self._value]}

builder = StateGraph(State)

builder.add_edge(["b2", "c"], "d")  # Move it before add_node.

builder.add_node("a", ReturnNodeValue("I'm A"))
builder.add_edge(START, "a")
builder.add_node("b", ReturnNodeValue("I'm B"))
builder.add_node("b2", ReturnNodeValue("I'm B2"))
builder.add_node("c", ReturnNodeValue("I'm C"))
builder.add_node("d", ReturnNodeValue("I'm D"))
builder.add_edge("a", "b")
builder.add_edge("a", "c")
builder.add_edge("b", "b2")
builder.add_edge("d", END)
graph = builder.compile()

graph.invoke({"aggregate": []})

Additionally, comment on the pre-checks of the source code.

It can work and the results are the same, is the pre-check necessary?

However, in this situation, it always outputs just one "D." Could you help me understand where I might be mistaken?

I am running the following code:
import { END, START, StateGraph, StateGraphArgs } from "@langchain/langgraph";
import { visualization } from "../visualization";

interface GraphState {
  aggregate: string[];
  which: string;
}

const graphState: StateGraphArgs<GraphState>["channels"] = {
  aggregate: {
    default: () => [],
    reducer: (x, y: string[]) => x.concat(y),
  },
  which: {
    default: () => "bc",
    reducer: (x, y: string) => (y ? y : x),
  },
};

const workflow = new StateGraph<GraphState>({
  channels: graphState,
});

class ReturnNodeValue {
  private _value: string;

  constructor(value: string) {
    this._value = value;
  }

  public call(state: GraphState): Pick<GraphState, "aggregate"> {
    console.log(`Adding ${this._value} to ${state.aggregate}`);
    return { aggregate: [this._value] };
  }
}

const nodeA = new ReturnNodeValue("I'm A");
const nodeB = new ReturnNodeValue("I'm B");
const nodeC = new ReturnNodeValue("I'm C");
const nodeD = new ReturnNodeValue("I'm D");
const nodeE = new ReturnNodeValue("I'm E");

function routeToBCorCD(state: GraphState): string[] {
  const { which } = state;
  return which === "bc" ? ["b", "c"] : ["c", "d"];
}

workflow
  .addNode("a", nodeA.call.bind(nodeA))
  .addNode("b", nodeB.call.bind(nodeB))
  .addNode("c", nodeC.call.bind(nodeC))
  .addNode("d", nodeD.call.bind(nodeD))
  .addNode("e", nodeE.call.bind(nodeE))
  .addEdge(START, "a")
  // .addConditionalEdges("a", routeToBCorCD, { b: "b", c: "c", d: "d" })
  .addConditionalEdges("a", routeToBCorCD, {
    b: "b",
    c: "c",
    d: "d",
  })
  .addEdge(["b", "c", "d"], "e")
  .addEdge("e", END);

const app = workflow.compile();

visualization(
  "./src/langgraph/parallel-node-execution/images/conditional-branching.png",
  app
);

async function main() {
  const endState = await app.invoke({
    aggregate: [],
  });

  console.log(endState);

  const endState2 = await app.invoke({
    aggregate: [],
    which: "bd",
  });

  console.log(endState2);
}

main();

The output
Adding I'm A to
Adding I'm B to I'm A
Adding I'm C to I'm A
The image has been saved.
{ aggregate: [ "I'm A", "I'm B", "I'm C" ], which: 'bc' }
Adding I'm A to
Adding I'm C to I'm A
Adding I'm D to I'm A
{ aggregate: [ "I'm A", "I'm C", "I'm D" ], which: 'bd' }

As you can see, I'm E is missing here.

The same issue can be reproduced in Python.
import operator
from collections.abc import Sequence
from typing import Annotated

from langgraph.graph import END, START, StateGraph
from typing_extensions import TypedDict

class State(TypedDict):
    aggregate: Annotated[list, operator.add]
    which: str

class ReturnNodeValue:
    def __init__(self, node_secret: str) -> None:
        self._value = node_secret

    def __call__(self, state: State) -> State:
        print(f"Adding {self._value} to {state['aggregate']}")
        return {"aggregate": [self._value]}

builder = StateGraph(State)
builder.add_node("a", ReturnNodeValue("I'm A"))
builder.add_edge(START, "a")
builder.add_node("b", ReturnNodeValue("I'm B"))
builder.add_node("c", ReturnNodeValue("I'm C"))
builder.add_node("d", ReturnNodeValue("I'm D"))
builder.add_node("e", ReturnNodeValue("I'm E"))

def route_bc_or_cd(state: State) -> Sequence[str]:
    if state["which"] == "cd":
        return ["c", "d"]
    return ["b", "c"]

intermediates = ["b", "c", "d"]
builder.add_conditional_edges(
    "a",
    route_bc_or_cd,
    intermediates,
)

# for node in intermediates:
#     builder.add_edge(node, "e")
builder.add_edge(intermediates, "e")

builder.add_edge("e", END)
graph = builder.compile()
print(graph.invoke({"aggregate": [], "which": "bc"}))
# print(graph.invoke({"aggregate": [], "which": "cd"}))

@gbaian10 for the first part of your question:

Q1: When the start_key in add_edge is a list, the end_key can't be end.

this is fixed this in https://github.com/langchain-ai/langgraph/pull/1478

Q2: When the input is a list, you must add the node before adding an edge.

This is a good point, but we discussed internally and decided to keep this as is for an extra layer of validation

for the remainder of this discussion / questions / examples you listed:
graph_builder.add_edge(["A", "B"], END)

^ This will triggers C after both A and B have completed
graph_builder.add_edge("A", END)
graph_builder.add_edge("B", END)

^ This will trigger C after either A or B have completed
In the last example you provided you can verify this by changing the edges to
builder.add_edge(["b", "c"], "e")
builder.add_edge(["c", "d"], "e")

The reason why the previous code snippet with builder.add_edge(["b", "c", "d"], "e") didn't work is because you need all of the nodes (b, c and d) to complete which they can't in that case.
Closing the issue as the library is working as intended -- thank you for the questions and thoughtful discussion.


Please, support tvOS

Hi, is there a reason why can't u support tvOS.
Tried to add your awesome pod and got this:
[!] The platform of the target x (tvOS 13) is not compatible with CheatyXML (3.0.0), which does not support tvOS.

Hi @Maxatma! Thanks for having pointed this out. I will have a look today 🙂

Hi @Maxatma! Thanks for having pointed this out. I will have a look today 🙂

@Maxatma Just added tvOS support (9.0 or later) 🎉
Just bump pod version to 3.1.0.
Feel free to report any issue you have!
Enjoy!

@Maxatma Just added tvOS support (9.0 or later) 🎉
Just bump pod version to 3.1.0.
Feel free to report any issue you have!
Enjoy!

Thanks!

Thanks!


No Swift_TransportException raised on relay access denied (SMTP)

When sending mail via SMTP transport, normal behaviour would be if you encounter SMTP errors to raise the exception and let the developper catch it.
Swift silently drops the exceptions (including message) returning False when calling send(...).
method: _doMailTransaction in file AbstractSmtpTransport.php
        } catch (Swift_TransportException $e) {
            $failedRecipients[] = $forwardPath;
        }

(this is just one example)

Probably a duplicate of #164 and #353

+1
I would really like to see this resolved somehow. Getting info on why an address was rejected is important. For me it's typically because I hit a sending limit with my mail provider.
Re-throwing the exception would probably make older implementations break, since they do not check for that exception. Why not just add an error-method containing the last error?


Remove image charts as they have been officially deprecated by Google

The Image Charts portion of Google Chart Tools has been officially deprecated as of April 20, 2012.
It will continue to work as per our deprecation policy.
https://developers.google.com/chart/interactive/docs/gallery/genericimagechart
https://developers.google.com/chart/interactive/docs/gallery/imagepiechart
https://developers.google.com/chart/interactive/docs/gallery/imagelinechart
https://developers.google.com/chart/interactive/docs/gallery/imagebarchart
https://developers.google.com/chart/interactive/docs/gallery/imagesparkline

Another alternative that was recently launched by Ramen is ChartURL (https://charturl.com/). They make it very easy to generate personalized charts which can be embedded into emails, web/mobile apps, etc.It's very similar to Google Image Charts but uses C3.js and can handle more data via an api call. You should check it out!

Sadly ChartURL was not a drop-in replacement for Google Image Charts API so Redsmin team built Image-Charts that is fully compatible with Google Image Charts API and even adds chart animation support (through gif)!


added func to flatten a MoveTree

fixes #158, #152, #136
other changes

fixed a few errors I encountered from core/board/board.go
added a method to core/board/board.go that adds a stone without removing captured stones

Let's get this merged. I'd like to start using it =)


Add loop invariant to loop of Verify_Message

For #1092

I added the nochangelog as this fixes a bug that was introduced since the last release (I think). Let me know if it works for you.

Shouldn't this PR close #1092?

Shouldn't this PR close #1092?

Yes, done. I used "For #..." instead of one of the many variants which would have worked.


why I can't login or put images to my private registry

when I login or put image to my private registry, I got the errors: [unable to decode token response: invalid character '<' looking for beginning of value]

anyone else met this problem before?

Well. I made a mistake.
I have configued hostname in harbor.cfg,but I didn't use this domain to login or pull images,instead,I use IP address.
after I configure /etc/hosts,everything works well.


Start SQLWarningsPanel to warn non-scalable SQL statement

Introduced a SQLWarningsPanel to detect any non-scalable SQL statement using EXPLAIN. Included some simple warnings for MySQL EXPLAIN.
#688

I'm still on the fence about including a panel that only works with one vendor. It seems better suited to be a third party panel until there's support for others.

Yes, I agree that this seems more appropriate as a third-party panel. We can link to it in the docs as soon as it's released.

Let's close this until it has more vendors :)

Let's close this until it has more vendors :)


Chunking Hierarchy Identification

Question
I am working on a custom chunking method where I need to identify headings, subheadings, and child headings separately. Here's the detailed explanation:
Current Issue:
I am using Docling to tag headings in a PDF.
Currently, all nested headings (subheadings and child headings) are marked as regular headings with ##.
There is no differentiation between parent headings and sub-level headings.
Objective:
I want to store section headings and titles as metadata for the content under each subheading.
Example: For a PDF with 3 chapters, each having multiple subheadings, the chunk should have:
Chapter Name as the Title.
Subheading as the Section Heading.
Current Limitation:
While I can extract the lowest level of headings, I am unable to identify the parent headings since the tags do not differentiate between them.
Assumption for Hierarchy:
I assume that chapter names are typically larger in font size compared to subheadings and child headings.
A hierarchy based on text size or boldness could be useful to identify different levels of headings.
Question:
Is there a way to distinguish headings, subheadings, and child headings separately based on these characteristics (e.g., font size, boldness)?
Any solution or guidance to achieve this would be highly appreciated.

+1

@Shubhamkumar782 Docling produces a DoclingDocument data-structure, which can be used in the HierarchicalChunker.
I think this solves your problem, just load the HierarchicalChunker from docling-core and leverage the chunk method.

@PeterStaar-IBM I see the chunk method in the HierarchicalChunker from docling-core, but the level of section-header is from the dl_doc: DLDocument. And in this #77

At the moment, the system is detecting only one level of section headers.
Is it supported deeper level of section headers now? Or I missed something?

@qianyue76 Yes, this is correct. We need to add a new feature to identify the level of the section-headers in PDF (for docx, html and pptx, this comes for free). Within the pdf, it is hard to identify the section-header level, but we have some ideas how to tackle them.
Of course, if you want to collaborate on that, please let us know!

ok, Please look at the email address on the MAINTAINERS.md. We can set up a quick sync and discuss next steps!

@PeterStaar-IBM I get it! Should I do something first?

Just write us an email, and we will follow up!

@PeterStaar-IBM ,
I have tried HierarchicalChunker but the thing is that still section heading is not getting captured.
I am also trying to solve this problem, I tried to analyse font size and bold information of font but that is also not enough to identify if that will be section heading.
As sometimes for some document heading will be same size of usual text size and it is not bold as well.
For now I have written regex based chunking which is very efficient but it will work for my current use case documents only and it's patch work, it's tough to generalize.
There are some possible ways with vision based models but I have not tried yet. I saw few examples only.
If I find some ways I will too update.

@Shubhamkumar782 we have ideas to solve this holistically, and are open to collaboration. Regex and other methods will only work for very specific use-cases, not bad but also not very satisfying.
If you have a working regex, you could always update the DoclingDocument with section-headers where the level gets updated.

@PeterStaar-IBM,
Good to hear.
Actually regex that I have will work for specific document so even if I update it in DoclingDocument, I will be not able to achieve what I want.

I'm also motivated to solve this problem; not just for PDFs but also docx input. I used to use pandoc for this and it maintained the headings/hiearchy so I could use the langchain chunkers, but it would lose details such as if a heading was 1.4.b.15 Example. It would replace that with something like ##### Example, but in my use case I need the original information like ##### 1.4.b.15 Example.


remove method which breaks debuggin in python 3

#1037

Removing this method fixes my specific problem, but introduces a new one – tracebacks are now incomplete. Here’s what happens if I use the release version of Werkzeug, deliberately triggering two exceptions in the interactive debugger:

Here’s the same code if I apply your patch:


Can get product list?

Can I get product list in livestream event like in TikTok Mobile app?

This is not supported at the moment.


Feature parity with java library

Currently missing:

get message from the data signature envelope
get stored Cardano address
get ED 25519 public key and ED 25519 signature encoded in it
get COSE payload (COSE wrapped message directly signed by the algorithm)

It would be nice to have that library is fully compatible with Sundae Swap's governance system, i.e. should make it easy to extract the following fields: (ED 25519-public key and ED 25519 signature as well as COSE payload) - mentioned above.

Hi Mati, I would now close this issue but more with the intention to put it in something like an "archive" as to mark it as "won't do" and if there is any specific need about this feature from the community I would start working on this 😊


Cannot read properties of undefined (reading 'compileAG')

TypeError: Cannot read properties of undefined (reading 'compileAG')
at l in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:24135
at <anonymous> in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:20316
at <anonymous> in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:20852
at y in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:21653
at Object.c [as _tokenizeString] in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:20047
at m._tokenize in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:7377
at m.tokenizeLine2 in vscode-file://vscode-app//node_modules.asar/vscode-textmate/release/main.js:1:6513
at p.tokenizeEncoded in src/vs/workbench/services/textMate/browser/tokenizationSupport/textMateTokenizationSupport.ts:54:40
at T.tokenizeEncoded in src/vs/workbench/services/textMate/browser/tokenizationSupport/tokenizationSupportWithLineLimit.ts:42:23
at o in src/vs/editor/common/model/textModelTokens.ts:427:28
at safeTokenize in src/vs/editor/common/model/textModelTokens.ts:69:14
at u.forceTokenization in src/vs/editor/common/model/tokenizationTextModelPart.ts:568:20
at u.tokenizeIfCheap in src/vs/editor/common/model/tokenizationTextModelPart.ts:582:9
at h.tokenizeIfCheap in src/vs/editor/common/model/tokenizationTextModelPart.ts:154:22
at w in src/vs/workbench/contrib/snippets/browser/commands/surroundWithSnippet.ts:23:21
at i.provideCodeActions in out/vs/workbench/workbench.desktop.main.js:1215:42589
at <anonymous> in src/vs/editor/contrib/codeAction/browser/codeAction.ts:124:47
at Array.map (<anonymous>)
at n in src/vs/editor/contrib/codeAction/browser/codeAction.ts:121:29
at <anonymous> in out/vs/workbench/workbench.desktop.main.js:693:78387
at callback in src/vs/base/common/async.ts:27:19
at i.h in out/vs/workbench/workbench.desktop.main.js:693:76228
at i.trigger in src/vs/editor/contrib/codeAction/browser/codeActionModel.ts:51:8
at <anonymous> in src/vs/editor/contrib/codeAction/browser/codeActionModel.ts:63:9
at runner in src/vs/base/common/async.ts:894:4

Go to Errors Site

Error continues to appear on 1.91. Corresponding issue will be marked as triaged.


openwayback:  google analytics + webmaster tools?

Do we want / can we have these for our local openwayback instance?

closed in favor of sul-dlss/swap/issues/12


Incorrect behavior in users tables with dates

These issues are specific to tables named users, case-insensitive.
I have not observed the issues in tables by other names, and I have tried this in multiple databases.
Also, this follows a conversation with @kostasb from Discord
https://discord.com/channels/996791218879086662/1002130113565053008/1051530218394890271
Observed issues:

Dates do not appear in UI

However the data is there when queried via client

Filtering by date does not work. The below query should return null, as it does in tables NOT named users.

Data from users is not available in "Search"

To Reproduce

Create a table users or Users in the Xata UI
Create schema via API

curl -v -X PUT https://<workspace>.<region>.xata.sh/db/<database>:main/tables/users/schema  --header 'Content-Type: application/json' --header "Authorization: Bearer <api_key>" -d '
{
      "columns": [
        {
          "name": "handle",
          "type": "string",
          "unique": true
        },
        {
          "name": "_handle",
          "type": "string",
          "unique": true
        },
        {
          "name": "profile",
          "type": "object",
          "columns": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "bio",
              "type": "text"
            },
            {
              "name": "location",
              "type": "string"
            },
            {
              "name": "website",
              "type": "string"
            }
          ]
        },
        {
          "name": "settings",
          "type": "object",
          "columns": [
            {
              "name": "app_theme",
              "type": "string",
              "notNull": true,
              "defaultValue": "system"
            }
          ]
        },
        {
          "name": "created_at",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        }
      ]
}'

Add a user via client. I used the generated client (npx xata codegen).

await xata.db.users.create('V7XH49jk5oWknYtn73wFwzsH74s1', {
  handle: 'test',
});

Expected behavior
For users data to work like data from other tables.
Software version
From package.json
"dependencies" {
<EMAIL_ADDRESS>"^0.21.3"
},
"devDependencies" {
<EMAIL_ADDRESS>"^0.11.4"
}

Additional context
I just started playing with Xata a few days ago, FYI.  I'm already a fan and hope to see you guys go far!

hi @corymartin thanks a lot of for the excellent report! I can confirm there is a bug, it seems related to the now function generating the date with a slightly different format (nanoseconds vs milliseconds).
In my tests, equality date comparison don't work because of this, but $gt and $lt work as expected, for example:
const res = await xata.db.test
  .filter({
    $all: [
      {
        created_at: {
          $ge: "2022-12-14T19:56:00.895Z",
        },
      },
      {
        created_at: {
          $lt: "2022-12-14T19:56:00.896Z",
        },
      },
    ],
  })
  .getMany();

We'll work on fixing this ASAP. If you can avoid dates with default value now for the moment, that would avoid these issues.

Thanks @tsg
However ‘now‘ did work as expected for me when the table was not named "users"

@corymartin I forgot to write back, but the fix for these issues should be in since yesterday. Can you try again, please, and let me know if you notice any issues?

Thanks @tsg
It worked with the TS client await xata.db.Table.create()
However with transactions - which I realize is still in beta - I get an error:
FetcherError: Bulk operation failed

{
  status: 400,
  errors: [
    {
      index: 0,
      message: 'table [UserPrograms]: select record: invalid record: column [createdAt]: cannot be null'
    }
  ],
  requestId: '6f657ab5-e132-9ac3-b5c5-acbce46232fd',
  cause: undefined
}

Also, it seems that FetcherError is not exported to the @xata.io/client package?
https://github.com/xataio/client-ts/blob/6500a88b92fa4239f8e0fd104a3ad5aa6c9542a6/packages/client/src/api/errors.ts#L14
I was looking to do an instanceof test on the error. XataError is exported but FetcherError is not of that type.
Is this by design?

Also, it seems that FetcherError is not exported to the @xata.io/client package?
https://github.com/xataio/client-ts/blob/6500a88b92fa4239f8e0fd104a3ad5aa6c9542a6/packages/client/src/api/errors.ts#L14
I was looking to do an instanceof test on the error. XataError is exported but FetcherError is not of that type.
Is this by design?

That's a bug, will export it in next release

@corymartin https://github.com/xataio/client-ts/releases/tag/%40xata.io/client%400.21.5

Thanks @tsg
It worked with the TS client await xata.db.Table.create()
However with transactions - which I realize is still in beta - I get an error:
FetcherError: Bulk operation failed

{
  status: 400,
  errors: [
    {
      index: 0,
      message: 'table [UserPrograms]: select record: invalid record: column [createdAt]: cannot be null'
    }
  ],
  requestId: '6f657ab5-e132-9ac3-b5c5-acbce46232fd',
  cause: undefined
}

Hi @corymartin, thanks for the report. After checking our logs, it appears in this request a value of null was specified for the createdAt field in the transaction. For security purposes we do not log the content of your request, but the trace implies that a null value was specified.
In order for the column value to receive the default timestamp ofnow, the createdAt field shouldn't be present in the insert or update operation on the record. In case it is present but null. the error you encountered is returned.
Let us know if you are still encountering this issue and, if that's the case, how the transaction request body is created?

@kostasb
The query I ran is:
    const programId = uniqueId();
    await xata.transactions.run([
      {
        insert: {
          table: 'UserPrograms',
          record: { id: programId, user: uid, title: 'now test' },
        },
      },
      {
        insert: {
          table: 'UserOwnedPrograms',
          record: { user: uid, userProgram: programId },
        },
      },
    ]);

I just ran it a few more times, each getting the same error as above
requestId: 'a9907441-d035-9a08-8a31-f49282469d53'
requestId: '5fbe42d3-337e-9a0f-ab8b-970e2d7e56d4'
requestId: '9d539135-3b2f-9992-b792-724bcce7ad8e'
There are 2 date columns (createdAt and updatedAt) where the schema is
        {
          "name": "createdAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        }

Schema dump
{
  "tables": [
    {
      "name": "Users",
      "columns": [
        {
          "name": "handle",
          "type": "string",
          "unique": true
        },
        {
          "name": "_handle",
          "type": "string",
          "unique": true
        },
        {
          "name": "profile",
          "type": "object",
          "columns": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "bio",
              "type": "text"
            },
            {
              "name": "location",
              "type": "string"
            },
            {
              "name": "website",
              "type": "string"
            }
          ]
        },
        {
          "name": "settings",
          "type": "object",
          "columns": [
            {
              "name": "appTheme",
              "type": "string"
            }
          ]
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        },
        {
          "name": "updatedAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        }
      ]
    },
    {
      "name": "UserPrograms",
      "columns": [
        {
          "name": "user",
          "type": "link",
          "link": {
            "table": "Users"
          }
        },
        {
          "name": "title",
          "type": "string",
          "notNull": true,
          "defaultValue": ""
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        },
        {
          "name": "updatedAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        }
      ]
    },
    {
      "name": "UserOwnedPrograms",
      "columns": [
        {
          "name": "user",
          "type": "link",
          "link": {
            "table": "Users"
          }
        },
        {
          "name": "userProgram",
          "type": "link",
          "link": {
            "table": "UserPrograms"
          }
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "notNull": true,
          "defaultValue": "now"
        }
      ]
    }
  ]
}

Thank you for the additional details @corymartin , we will investigate and get back to you with our findings or a fix, if applicable.

@corymartin we confirmed the problem with transactions failing to use the default value is due to a bug and we are working on it. I will let you know as soon as the issue is resolved.

Hi @corymartin the issue with transactions + default values has been resolved. The transaction requests in your earlier comment should work now!
Let us know in case you encounter any issues, here or at<EMAIL_ADDRESS>Otherwise I believe we can close this current issue if all items are addressed?

@kostasb LGTM! It is working as expected now. Thanks for addressing this.


Use payment delay for offset if no start_secs is specified

For defined activity, if we do not have start_secs set all of our payments will fire immediately on startup and thereafter run at regular intervals. Eg, if we have payments A running every 5 seconds and payment B every 10 seconds our payment dispatch will be:

0 seconds: send A and B
5 seconds: send A
10 seconds: send B

This seems like undesirable behavior when the start_secs field isn't set in our simulation file. Ideally, we'd distinguish between:

start_secs: 0 in sim file: fire the payment immediately
No start_secs in sim file: only fire the payment after its desired interval

So, using the example above when no start_secs is specified our payment dispatch should be:

0 seconds: no payments
5 seconds: send A
10 seconds: send B

This also impacts randomly generated payments - on startup all random payments will fire, then we'll take a look at the wait times that's been randomly generated and wait the appropriate amount of time. These should behave similarly to when no start_secs is defined in the sim file for defined behavior.

@carlaKC Yes, I think this makes a lot of sense. I can see that if a user does not specify a start time they would be surprised that any payments have gone out before the first interval time. I will take a look at the PR!


[CMake] Changing the order of CPMAddPackage() calls fixes YAML's SEGV

Refs #315

@data-man I am merging without thinking about why this fixed it, so that I can continue working on master. :)


Deadlock on background thread running query

Hi,
I faced a deadlock on 5 background threads which got stocked on @synchronized(lock) when running parse queries. I didn't run at the same moment all the 5 queries, but since the user hasn't received a response, the user left the page and return it (which cause the query to run once again).
This is not the first time I faced a deadlock in Parse SDK.
I also find out that calling to PFUser.currentUser() can cause a deadlock on main thread because BFTask use semaphore with "wait for ever"
One more deadlock I faced is which accessing a Parse object from the main thread to read one of its properties while a background thread is updating the object from a query result
The two last deadlocks I've mentioned are locking the main thread, therefore the app is freeze and after a short time the OS terminating it.
The first deadlock is only on background thread, so the app isn't freeze, but the user won't receive any data from server.

Hey @yoavramov, thanks for the report!
Any chance you can post the stack trace for this issue?
It's really hard to debug these as the flow you are describing works great, and I suspect it's closely related to your schema/flow of execution.

<Thread 1: MainThread>(
2   MyApp                           	 0x00b4bc05 -[PFOfflineStore getOrCreateObjectWithoutDataWithClassName:objectId:] + 316,
3   MyApp                           	 0x00b1d429 +[PFObject objectWithoutDataWithClassName:objectId:] + 208,
4   MyApp                           	 0x00b1d735 +[PFObject objectWithoutDataWithObjectId:] + 216,
5   MyApp                           	 0x0032c868 PFUser.withoutDataWithObjectId + 220,
6   MyApp                           	 0x0031cd70  + 124,
7   MyApp                           	 0x0064728c  + 1656,
8   MyApp                           	 0x0064819c  + 168,
9   MyApp                           	 0x005a5280  + 408,
10  MyApp                           	 0x005a2800  + 340,
11  MyApp                           	 0x005a2eac  + 56,
12  UIKit                               0x2e56855d  + 600,
13  UIKit                               0x2e5682cd  + 24,
14  UIKit                               0x2e6f1619  + 628,
15  UIKit                               0x2e61242b  + 422,
16  UIKit                               0x2e612235  + 44,
17  UIKit                               0x2e6121c9  + 184,
18  UIKit                               0x2e5659cb  + 546,
19  QuartzCore                          0x2df7b3e5  + 128,
20  QuartzCore                          0x2df76c35  + 360,
21  QuartzCore                          0x2df76abd  + 16,
22  QuartzCore                          0x2df7645f  + 222,
23  QuartzCore                          0x2df7624f  + 434,
24  QuartzCore                          0x2df6ff5d  + 56,
25  CoreFoundation                      0x2aecd04d  + 20,
26  CoreFoundation                      0x2aeca731  + 276,
27  CoreFoundation                      0x2aecab33  + 914,
28  CoreFoundation                      0x2ae166d1 CFRunLoopRunSpecific + 476,
29  CoreFoundation                      0x2ae164e3 CFRunLoopRunInMode + 106,
30  GraphicsServices                    0x327b41a9 GSEventRunModal + 136,
31  UIKit                               0x2e5c8445 UIApplicationMain + 1440,
32  MyApp                           	 0x00118d79 main + 108,
33  libdyld.dylib                       0x3982faaf  + 2
)
<Thread 7>(
2   MyApp                           	 0x00b4bc05 -[PFOfflineStore getOrCreateObjectWithoutDataWithClassName:objectId:] + 316,
3   MyApp                           	 0x00b1d429 +[PFObject objectWithoutDataWithClassName:objectId:] + 208,
4   MyApp                           	 0x00b13767 +[PFObject(Private) _objectFromDictionary:defaultClassName:completeData:decoder:] + 278,
5   MyApp                           	 0x00adb403 -[PFDecoder decodeDictionary:] + 2006,
6   MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
7   MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
8   CoreFoundation                      0x2af06a4d  + 24,
9   CoreFoundation                      0x2ae15c18  + 120,
10  CoreFoundation                      0x2af04471  + 256,
11  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
12  MyApp                           	 0x00adb3a7 -[PFDecoder decodeDictionary:] + 1914,
13  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
14  MyApp                           	 0x00b18fdf __69-[PFObject(Private) _mergeFromServerWithResult:decoder:completeData:]_block_invoke + 898,
15  CoreFoundation                      0x2af06a4d  + 24,
16  CoreFoundation                      0x2ae15c18  + 120,
17  CoreFoundation                      0x2af04471  + 256,
18  MyApp                           	 0x00b18a31 -[PFObject(Private) _mergeFromServerWithResult:decoder:completeData:] + 464,
19  MyApp                           	 0x00b18183 -[PFObject(Private) _mergeAfterFetchWithResult:decoder:completeData:] + 242,
20  MyApp                           	 0x00b1378d +[PFObject(Private) _objectFromDictionary:defaultClassName:completeData:decoder:] + 316,
21  MyApp                           	 0x00b135e3 +[PFObject(Private) _objectFromDictionary:defaultClassName:selectedKeys:] + 174,
22  MyApp                           	 0x00b6afdb __78-[PFQueryController findObjectsAsyncForQueryState:withCancellationToken:user:]_block_invoke32 + 938,
23  MyApp                           	 0x0093d27f __62-[BFTask continueWithExecutor:successBlock:cancellationToken:]_block_invoke + 142,
24  MyApp                           	 0x0093c79f __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 214,
25  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
26  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
27  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
28  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
29  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
30  MyApp                           	 0x0093b30b -[BFTask setResult:] + 66,
31  MyApp                           	 0x0093ddaf -[BFTaskCompletionSource setResult:] + 110,
32  MyApp                           	 0x0093cc73 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_3 + 554,
33  MyApp                           	 0x0093c79f __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 214,
34  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
35  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
36  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
37  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
38  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
39  MyApp                           	 0x0093b30b -[BFTask setResult:] + 66,
40  MyApp                           	 0x0093ddaf -[BFTaskCompletionSource setResult:] + 110,
41  MyApp                           	 0x0093cc73 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_3 + 554,
42  MyApp                           	 0x0093c8ef __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 550,
43  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
44  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
45  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
46  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
47  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
48  MyApp                           	 0x0093b30b -[BFTask setResult:] + 66,
49  MyApp                           	 0x0093ddaf -[BFTaskCompletionSource setResult:] + 110,
50  MyApp                           	 0x0093cc73 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_3 + 554,
51  MyApp                           	 0x0093c79f __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 214,
52  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
53  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
54  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
55  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
56  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
57  MyApp                           	 0x0093b30b -[BFTask setResult:] + 66,
58  MyApp                           	 0x0093ddaf -[BFTaskCompletionSource setResult:] + 110,
59  MyApp                           	 0x0093cc73 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_3 + 554,
60  MyApp                           	 0x0093c79f __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 214,
61  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
62  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
63  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
64  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
65  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
66  MyApp                           	 0x0093b30b -[BFTask setResult:] + 66,
67  MyApp                           	 0x0093ddaf -[BFTaskCompletionSource setResult:] + 110,
68  MyApp                           	 0x0093cc73 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_3 + 554,
69  MyApp                           	 0x0093c8ef __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 550,
70  MyApp                           	 0x00938edf __29+[BFExecutor defaultExecutor]_block_invoke_2 + 602,
71  MyApp                           	 0x00939665 -[BFExecutor execute:] + 88,
72  MyApp                           	 0x0093c6a1 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 204,
73  MyApp                           	 0x0093c119 -[BFTask runContinuations] + 568,
74  MyApp                           	 0x0093b477 -[BFTask trySetResult:] + 266,
75  MyApp                           	 0x0093df8b -[BFTaskCompletionSource trySetResult:] + 110,
76  MyApp                           	 0x00b881d5 -[PFURLSessionDataTaskDelegate _taskDidFinish] + 308,
77  MyApp                           	 0x00b8a361 -[PFURLSessionJSONDataTaskDelegate _taskDidFinish] + 3288,
78  MyApp                           	 0x00b889e7 -[PFURLSessionDataTaskDelegate URLSession:task:didCompleteWithError:] + 422,
79  MyApp                           	 0x00b85351 -[PFURLSession URLSession:task:didCompleteWithError:] + 164,
80  CFNetwork                           0x2aa107ff  + 58,
81  Foundation                          0x2bc31439  + 8,
82  Foundation                          0x2bb9c0a1  + 148,
83  Foundation                          0x2bb8eb0d  + 768,
84  Foundation                          0x2bc33d93  + 186,
85  libdispatch.dylib                   0x021bcd89 _dispatch_queue_drain + 1712,
86  libdispatch.dylib                   0x021b6ac5 _dispatch_queue_invoke + 88,
87  libdispatch.dylib                   0x021beb1b _dispatch_root_queue_drain + 1294,
88  libdispatch.dylib                   0x021bfe21 _dispatch_worker_thread3 + 108,
89  libsystem_pthread.dylib             0x39973d9d _pthread_wqthread + 668,
90  libsystem_pthread.dylib             0x39973af0 start_wqthread + 8
)
<Thread 15>(
2   MyApp                           	 0x00b4bc05 -[PFOfflineStore getOrCreateObjectWithoutDataWithClassName:objectId:] + 316,
3   MyApp                           	 0x00b1d429 +[PFObject objectWithoutDataWithClassName:objectId:] + 208,
4   MyApp                           	 0x00adb6f5 -[PFDecoder _decodePointerForClassName:objectId:] + 80,
5   MyApp                           	 0x00adb25d -[PFDecoder decodeDictionary:] + 1584,
6   MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
7   MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
8   CoreFoundation                      0x2ae22b11  + 92,
9   CoreFoundation                      0x2ae22a33  + 174,
10  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
11  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
12  MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
13  CoreFoundation                      0x2ae22b11  + 92,
14  CoreFoundation                      0x2ae22a33  + 174,
15  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
16  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
17  MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
18  CoreFoundation                      0x2ae22b11  + 92,
19  CoreFoundation                      0x2ae22a33  + 174,
20  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
21  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
22  MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
23  CoreFoundation                      0x2ae22b11  + 92,
24  CoreFoundation                      0x2ae22a33  + 174,
25  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
26  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
27  MyApp                           	 0x00adb5df __30-[PFDecoder decodeDictionary:]_block_invoke + 110,
28  CoreFoundation                      0x2ae7a5ff  + 54,
29  CoreFoundation                      0x2ae6ba6d  + 200,
30  MyApp                           	 0x00adb527 -[PFDecoder decodeDictionary:] + 2298,
31  MyApp                           	 0x00adba63 -[PFDecoder decodeObject:] + 162,
32  MyApp                           	 0x00b7294f -[PFRESTCommand forEachLocalId:] + 166,
33  MyApp                           	 0x00b72ab7 -[PFRESTCommand resolveLocalIds] + 50,
34  MyApp                           	 0x00b85dfb __75-[PFURLSessionCommandRunner runCommandAsync:withOptions:cancellationToken:]_block_invoke + 34,
35  MyApp                           	 0x00b86a01 -[PFURLSessionCommandRunner _performCommandRunningBlock:withCancellationToken:delay:forAttempts:] + 208,
36  MyApp                           	 0x00b868f9 -[PFURLSessionCommandRunner _performCommandRunningBlock:withOptions:cancellationToken:] + 416,
37  MyApp                           	 0x00b85d97 -[PFURLSessionCommandRunner runCommandAsync:withOptions:cancellationToken:] + 206,
38  MyApp                           	 0x00b3725b -[PFOfflineQueryController runNetworkCommandAsync:withCancellationToken:forQueryState:] + 158,
39  MyApp                           	 0x00b6ab19 __78-[PFQueryController findObjectsAsyncForQueryState:withCancellationToken:user:]_block_invoke + 392,
40  MyApp                           	 0x0093c79f __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 214,
41  libdispatch.dylib                   0x021b419b _dispatch_call_block_and_release + 10,
42  libdispatch.dylib                   0x021bec49 _dispatch_root_queue_drain + 1596,
43  libdispatch.dylib                   0x021bfe21 _dispatch_worker_thread3 + 108,
44  libsystem_pthread.dylib             0x39973d9d _pthread_wqthread + 668,
45  libsystem_pthread.dylib             0x39973af0 start_wqthread + 8
)

Those are the stack trace related to Parse API calls.
As you can see, the only thing i've done it accessing PFUser.currentUser() on the main thread. On the other 2 thread which are locked on the same point, there's not calls from my app, it's your thread and your calls.
This is just one deadlock I'm facing.
Another deadlock related to accessing to an object property on the main thread, while a background thread is parsing a PFQuery which contains this object, whether if it's one of the query result or have a relationship to one of the query result and fetched by using includeKey on PFQuery.

Hey guys, just pushed out a new branch today, richardross.collectdirtychildren.deadlock, that should fix at least one of the deadlocks that we've seen in this thread.
If you would like to test with that branch and see if it helps with your deadlocks, please feel free, and post stack traces if you still have deadlocks. Let's get these bugs squashed!

Here another stack trace which cause a deadlock.
(This version use the branch with the fix you've mentioned above)


Remove line from Family Record

In family record, under Family Services list, remove option of "receives consultation services"
Okay if it deletes past data.
Additionally, add two checkboxes in the Family Services list:
- family story created
- video created

tested and looks great.


version raise 0.1.2

Please see some things changed in this version:

fix the jumpage issue in Chromium browsers
Change popup CSS
reformat the file template_sphinx_preview with snake_case

@danwos LGTM. Approved for merge.


Fixes #1651

Fixes #1651

Docs Build status updates of commit dc5168c:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/reference/cli-reference/cli-ref-pack.md
:warning:Warning
View
Details

docs/reference/cli-reference/cli-ref-pack.md

Line 17: [Warning] Invalid file link:(~/consume-packages/package-references-in-project-files).

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


Data download dead link

Hi,
Both links you provided to download data (Google drive and Baidu Disk) seem to be dead links (error 404 on github).

Could you please refresh? It works for me.

Hi,
Thank you now it works !


Customize announcement/accessibility divs to avoid validateDOMNesting(...) warnings.

I have sortable table headers, but the announcement divs should not be placed as siblings to the  elements.
This could be solved by:

Customizing the location of the divs
Removing them altogether and recreating them manually outside the  elements
Ability to change the default <divs/> to another tag

Is there a way to achieve any of this?

        ...

        ...

        ...

        ...

        ...

        ...

        To pick up a draggable item, press the space bar.
        While dragging, use the arrow keys to move the item.
        Press space again to drop the item in its new position, or press escape to cancel.

        Draggable item firstName was dropped over droppable area firstName

    ...

      ...

- Warning: validateDOMNesting(...):
 cannot appear as a child of
.
-    at div
-    at HiddenText (webpack-internal:///./node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js:16:5)
-    at Accessibility (webpack-internal:///./node_modules/@dnd-kit/core/dist/core.esm.js:127:5)
-    at DndContext (webpack-internal:///./node_modules/@dnd-kit/core/dist/core.esm.js:2861:5)
...

I can't find any documentation about this, but I found an option in typings for container element.
You can set different container like this.
<DndContext accessibility={{ container: document.body }}>


Theme in the config not being used

In my config I have: "theme": "slate",
It doesn't seem to be working, because whenever I try to generate the docs (which works successfully), it uses this white and red theme.
Why is this?

Having the exact same problem. No setting from templates in my top level JSDoc configuration file seems to be taking effect.

+1

Changing theme in file "jsdoc>conf.json.EXAMPLE" worked for me


Query about the KL divergence calculation with RNF

Hi,I have been reading the paper and looking at the code, and I don't understand how the KL is being calculated in the loss term.
The loss calculation has a KL term with flow:
(q_z.log_prob(z0).sum() - p_z.log_prob(z).sum())
Can you explain why z0 is used for posterior and z is used for prior? And the flow_kld function seems to use z for both, how is that different ?

Hi @vikigenius , this is a good question. Thanks for asking.
The naming is a little misleading. flow_kld measures the KL divergence between q(z_T|x) and p(z_T), which is not the KL you listed from the loss function. The KL you mentioned is based on q(z_0|x) and p(z_T). Using flow_kld in loss function is not correct. To see why, here is a complete derivation,

In short, once you apply normalizing flow, and you include the summation of log Jacobian in your loss function, then the posterior in KL should be q(z_0|x) rather than q(z_T|x). The same derivation can also be found at other normalizing flow papers.
Let me know if this answers your question. Thanks again!

Thanks for the clear derivation, now it's clear.


Fix typo on CLI output

most likely a copy and paste error that resulted in the wrong variable being used in the info message

Thanks!


Link does not point to latest

Install with PowerShellGet

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

ID: 9c45e278-3e22-b218-24fa-6652560b305b
Version Independent ID: eed6d40d-0b69-a61e-fd86-aaea6360392b
Content: Install Azure PowerShell with an MSI
Content Source: docs-conceptual/azps-2.8.0/install-az-ps-msi.md
GitHub Login: @sptramer
Microsoft Alias: sttramer

@bgklein Thank you for your feedback! We will review and update as appropriate.

Hi @bgklein,
The version is staying consistent between the two docs.
The version you linked to is the doc for the 2.8.0 version of Azure powershell and it links to the 2.8.0 version of the powershell get doc. If you change to the 3.1.0 version of this doc, it links to the 3.1.0 version of powershell get.

I'm going to go ahead and close this thread. Please tag me if you have a followup question.


Apps & Marketplace Improvements: Installing Process

Going on the install steps of...

CRD (Custom Resource Definition) created successfully
helm cli pod brought up
helm cli command executed successfully
helm cli install logs available
app is up and running

If step 1 fails user is shown error whilst still in stepper
If step 1 completes user is shown new 'installing' page with spinner and description of step
After step 2 user is given the option to view the logs
After step 3 user is given the option of going to the helm app page
After step 5 user is automatically taken to helm app page(?)

Talking points

If this all happens quickly there could be lots of flashing changes on screen
Determining number 5 could be tricky

@Shavindra This is meatier ticket to take on that you, myself and @richard-cox should discuss before starting.

@lvuch This issue contains a step in a wizard like the Epinio Application create mentioned last week.

After 2.6.3 can we get together and discuss a nicer version?

@nwmac We need to confirm if these steps are possible to determine and what we should show for each (are they line items in a table like the previous comment?). It might also be worth waiting until the epinio code merges as it contains changes that would support a mid-wizard async action and the generic table from above.

@lvuch This issue contains a step in a wizard like the Epinio Application create mentioned last week.
After 2.6.3 can we get together and discuss a nicer version?

Yep sounds good just let me know when. I think enclosing it in a badge with appropriate progress text would work.

I am closing this as it is quite old and I think it has already been fixed. Please reopen if the problem persissts.

I am closing this as it is quite old and I think it has already been fixed. Please reopen if the problem persissts.

Neil and I are keen to keep this one. Requires a sync up / walk through to better explain what's needed

Closing this as it is a stale issue that will be addressed in a larger effort to improve the UX of the apps and marketplace design


mxnet/example/autoencoder/mnist_sae.py not converge with the specified parameters

Version of the code with the working parameters
Please fix this part of the example!
# pylint: skip-file
from __future__ import print_function
import mxnet as mx
import numpy as np
import logging
import data
from autoencoder import AutoEncoderModel

if __name__ == '__main__':
    # set to INFO to see less information during training
    logging.basicConfig(level=logging.DEBUG)

ae_model = AutoEncoderModel(mx.gpu(0), [784,500,300,150,10], pt_dropout=0.3,
        internal_act='relu', output_act='relu')

X, _ = data.get_mnist()
train_X = X[:60000]
val_X = X[60000:]

ae_model.layerwise_pretrain(train_X, 256, 150000, 'sgd', l_rate=0.001, decay=0.0,
                             lr_scheduler=mx.misc.FactorScheduler(20000,0.7))
ae_model.finetune(train_X, 256, 100000, 'sgd', l_rate=0.001, decay=0.0,
                   lr_scheduler=mx.misc.FactorScheduler(20000,0.6))
ae_model.save('mnist_pt.arg')
ae_model.load('mnist_pt.arg')
print("Training error:", ae_model.eval(train_X))
print("Validation error:", ae_model.eval(val_X))

This issue is closed due to lack of activity in the last 90 days. Feel free to reopen if this is still an active issue. Thanks!


[core-http] Handle case where proxySettings.host does not contain a valid hostname

<EMAIL_ADDRESS>changed ProxyOptions.host from optional to required:
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/35984/files
While updating @types/tunnel from 0.0.0 to 0.0.1, I used the non-null assertion operator to suppress the compiler error, but the code should really be improved to properly handle the case where URLBuilder.parse(proxySettings.host).getHost() returns undefined.  Maybe throw an exception with an appropriate message?
https://github.com/Azure/azure-sdk-for-js/blob/0abdc32a5ca1493756457744e8a6aa83503f973e/sdk/core/core-http/lib/axiosHttpClient.ts#L227-L235

@daviwil to confirm if the above still applies now that we have moved away from axios

This code still exists in the new fetch-based design, it was moved to proxyAgent.ts:
https://github.com/azure/azure-sdk-for-js/blob/master/sdk/core/core-http/lib/proxyAgent.ts#L20


Fix Windows Demo and Installation Issue

According to this comment. I tried to fix the issue again, but now I made this more sustainable:

Created a script that creates windows folder
That script will 'translate' all of shell scripts so it is runable inside windows environments
Add a little of  Windows installation related guide in the readme

So next time, if we want to run this from a Windows machine, we can run them from windows folder but if we are not using a Windows machine, we don't need to create them so it will make storage more efficient.
Thank you!

oops, forget one change here!


zd3934900: Don't throw exception if the response is successful

A capture of a charge failed because a 202 was returned. This led to the error
Error capturing charge from SQS message [queueMessageId=a4f345d9-c063-4a87-ad35-c31503a031f7] [errorMessage=HTTP 202 Accepted]

See the ticket for more details. I'm not actually sure how errorMessage=HTTP 202 Accepted came about; following the code path, a 202 should throw a
GatewayErrorException which gets rethrown as a runtime exception in
StripeCaptureHandler (new RuntimeException("Unrecognised response status during capture.")). But it's still worth checking the response is successful,
rather than just a 200 OK.

What feedback do you need?
If manual testing is needed, give suggested testing steps.

Code review checklist
Logging

[ ] only emit log lines at ERROR level which require immediate attention from a support engineer. These will trigger a zendesk alert.

Documentation

[ ] Updated README.md for any of the following ?

Introduced any new environment variables / removed existing environment variable
Added new API / updated existing API definition

I think this is ok as the GatewayClient is meant to be a generic thing. We should allow all responses in the "successful 2xx" category.