Can the Secret version in URI used in Azure key vault reference be optional?

I wanted to use the Azure key vault reference in my azure app service app setting so that I can store my storage account connection string in key vault and refer that through key vault reference.
Looks like currently the secret version is required in the secret Uri, which will introduce a need to update each and every app service configuration in case of storage account key regeneration.
Is it possible to make the secret version optional and if not passed, read the current latest version of the secret always?
I have seen few discussions around this, but any ETA that we can expect this feature available since this will be a value add in storage account key regeneration.

@sanalkumarp -
Thank you for your question.
Can you please share with us the URL of the document that you are having issues with?
Please note that we scope issues on this repo to feedback related to the docs. If you have a product question, please post it on Microsoft QnA or Stack Overflow. Thank you for your understanding.

Hi @MonikaReddy-MSFT, Thanks for your response.
Use Key Vault references for App Service and Azure Functions
This is the document I am referring to. In the doc, it is mentioned as below:
Versions are currently required. When rotating secrets, you will need to update the version in your application configuration. For example, a complete reference would look like the following:
I just wanted to know if the secret version will be made optional so that we can use the Secret URI without any version in it, to fetch the current version of the secret.
Also, this is contradictory to the below lines in the Azure key vault secret documentation (https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates):
Objects in Key Vault can be addressed by specifying a version or by omitting version for operations on current version of the object. For example, given a Key with the name MasterKey, performing operations without specifying a version causes the system to use the latest available version. Performing operations with the version-specific identifier causes the system to use that specific version of the object.
I wanted to use the secret URI without the version, and hence wanted to be sure on the support for the same.
Thanks.

The behavior is as documented. We are working to enable versionless references, but today we only support them with the version pinned. This should be changing relatively soon, although I cannot share a firm estimate on when.

@mattchenderson  - Thank you for providing your insights.
@sanalkumarp - I hope @mattchenderson has answered your question.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


program compilation problem with ROS

Hi, I want to use pinocchio in ROS. However, when I  compile the program with catkin_make, I get the following error:
In file included from /opt/openrobots/include/pinocchio/fwd.hpp:25:0,
from /opt/openrobots/include/pinocchio/spatial/fwd.hpp:9,
from /opt/openrobots/include/pinocchio/multibody/model.hpp:9,
from /opt/openrobots/include/pinocchio/parsers/urdf.hpp:9,
from /home/skywoodsz/MQuadruped_ws/src/champ_exter_control/src/pinocchio_control_test.cpp:6:
/opt/openrobots/include/pinocchio/container/boost-container-limits.hpp:30:9: error: #error "You should include pinocchio before the Boost headers (e.g. #include <pinocchio/fwd.hpp>)"
# error "You should include pinocchio before the Boost headers (e.g. #include <pinocchio/fwd.hpp>)"
I can compile the program with make. My system version is ubuntu1604, ROS-Kinetic and Pinocchio2.6.5. Could you tell me how to fix this problem? Thanks!

Upgrade your system. 16.04/kinetic is way too old for anything.
Don't mix robotpkg binaries and ROS stuff, as pinocchio and its dependencies are provided by both and they are usually not compatible with each other.
Read the error message. It says that you should check in /home/skywoodsz/MQuadruped_ws/src/champ_exter_control/src/pinocchio_control_test.cpp that the first header you include is #include <pinocchio/fwd.hpp>, especially before anything from boost or anything that could include boost.

To add to (3), include #include <pinocchio/fwd.hpp> prior to the ros.h header since ROS implicitly includes Boost. Here is a minimal example for how to use Pinocchio with ROS: https://github.com/wxmerkt/pinocchio_ros_example


docs: install

:tada: This PR is included in version 1.10.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


That way we can validate the functionality separately; also it would minimize risk. If you disagree let me know.


Fake being in GOPATH when generating code.

What this PR does / why we need it:
This is a workaround for the code generators requiring $GOPATH to put output in the correct location.
Details in the issue.

Fixes #1252

I ran into the same issue (currently working on multiple api version, and conversion-gen, etc).
I've solved it with something like this:
if [[ -d ${CODE_GEN_DIR} ]]; then
    echo "Using cached code generator version: $VERSION"
else
    git clone https://github.com/kubernetes/code-generator.git "${CODE_GEN_DIR}"
    git -C "${CODE_GEN_DIR}" reset --hard "${VERSION}"
    (
        cd "${CODE_GEN_DIR}"
        # Make sure code-gen uses the local kudo codebase, and not a remote module
        go mod edit -replace=github.com/kudobuilder/kudo=../../../
    )
fi

in the update_code_gen.sh.
This looks a bit easier than faking the gopath, but maybe I have overlooked something?

Mmmmm, this might fix a different issue than the one I mentioned in my previous comment. In my case the issue was that the codegens used a go module of kudo to analyze the code and generate stuff.


mind publishing fast_cli_core?

<eom> :)

Hey @cdaringe, thank you for your interest. I'd love to publish both crates, but unfortunately, fast_cli_core relies on atroche/rust-headless-chrome, which is not being published for a very long time. 😔 This forced me to use direct git dependency, which crates.io won't accept.
Until a new release is published, I won't be able to proceed to push my crates.
I also considered moving to jonhoo/fantoccini, but it is too much effort right now.
But I'm happy to hear and review alternatives that could get this code to crates.io.

Thanks for the thoughtful response! No sweat, no need to apply haste or
hacks! I can shell out to the CLI to get the data in the interim! Perhaps,
when the other deps get in order, a publish could occur!
On Mon, Nov 7, 2022 at 1:11 AM Federico Dionisi @.***>
wrote:

Hey @cdaringe https://github.com/cdaringe, thank you for your interest.
I'd love to publish both crates, but unfortunately, fast_cli_core relies
on atroche/rust-headless-chrome
https://github.com/atroche/rust-headless-chrome, which is not being
published for a very long time. 😔 This forced me to use direct git
dependency, which crates.io won't accept.
Until a new release is published, I won't be able to proceed to push my
crates.
I also considered moving to jonhoo/fantoccini
https://github.com/jonhoo/fantoccini, but it is too much effort right
now.
But I'm happy to hear and review alternatives that could get this code to
crates.io.
—
Reply to this email directly, view it on GitHub
https://github.com/fdionisi/fast-cli/issues/1#issuecomment-1305305721,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHU57LJLQSVBMOKRAGTEPLWHDBTNANCNFSM6AAAAAARYVPN44
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Sent from Gmail Mobile

Good news, @cdaringe! It's finally published on crates.io. No README yet, but the crate is there. 😁


Teach allowEmptyValues to be an array of optional vars

It happened to me several times that I needed to be able to leave a variable empty (for example an optional Sentry DSN). The issues and PRs on this repo seem to suggest that I'm not the only one that has this need.
This patch allows to specify an array of optional variables in allowEmptyValues, while being backward-compatible.

Any progress on this?

@imjordanxd I do not use dotenv-safe anymore, feel free to take over this PR and implement the requested changes!

Closing in favor of #98.


Track - Should it be an enum?

Following on from #111, does Track also make sense to be an enum?
If yes, where do we draw the line?

Is it location (i.e. BL)? Probably not
Is it location + combo (i.e. BL1, BLX)? Maybe?
Is it location + combo + direction? Maybe?
Is it actually a composite? i.e. BL, with combo = 1, reverse = 0?
Something else?

This one is a little bit fiddly. 🤔

Fixed through #110


add chain id to domains

What is the change?
Add ChainIdConverter to ethereum-etl-cli to support adding chain_id to all the domain data models such as block, log, transaction etc. The chain_id will be obtained from the web3 provider using eth_chainId
This converter is added for kafka, postgres and console (for debugging) outputs
Why do we need it?
To aggregate data across chains and start indexing the data (more details)
Test plan

[x] Tested using console exporter on local docker

[ ] Test on rinkeby with kafka as output sink

[ ] Test on rinkeby with kafka + postgres as output sinks

@parrik I will create a follow up PR to add chain_id to all the batch jobs in the interest of changing fewer files. This PR adds the chain_id column to the streaming exports

verified changes with latest docker image


ldap

Hi.
When i added into "Custom airflow-webserver-site" preference, it is not implemented.
I need to add auth_backend_web=airflow.contrib.auth.backends.ldap_auth
But in airflow.cfg option din't appear and airflow didn't start.

I guess it problem because need to put two same option together in different block.
[api]
auth_backend = airflow.api.auth.backend.default
[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.ldap_auth

Hi @ururu-fy.
Thanks for informing.
Support of custom configs has been added in commit 92dd09b407bea97af792231b6dd3c3c287112d3b.

Sorry, wrong option's name. Everything is OK. Thanks!

Done.


Bug: support Android prior to API 19

verify the following issue
java.lang.NoClassDefFoundError: java.util.Objects
	at com.github.openwebnet.view.device.DeviceListAdapter.<init>(DeviceListAdapter.java:73)
	at com.github.openwebnet.view.device.DeviceListFragment.onCreateView(DeviceListFragment.java:73)
	at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
	at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
	at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
	at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
	at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
	at com.github.openwebnet.view.MainActivity.onStart(MainActivity.java:211)
	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1188)
	at android.app.Activity.performStart(Activity.java:5382)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
	at android.app.ActivityThread.access$700(ActivityThread.java:159)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:176)
	at android.app.ActivityThread.main(ActivityThread.java:5419)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
	at dalvik.system.NativeStart.main(Native Method)

I just reproduced the bug this morning by running the app on an API-16 virtual device.
See http://docs.oracle.com/javase/7/docs/api/java/util/Objects.html :
java.lang.Objects was added in Java 1.7.
On Android the class only exists starting with API 19. See http://developer.android.com/reference/java/util/Objects.html
I can think of a couple fixes for this:

update the minSdkVersion to 19
remove all Java 7 API calls from the code base

Either way I think we can rename this issue to "Bug: support Android prior to API 19". :-)

I will use Preconditions, we already have Guava dependency, I will add it explicitly in build.gradle

This commit fixes java.lang.NoClassDefFoundError: java.util.Objects, but now we have this nice layout

The branch moreau-nicolas/openwebnet-android@2a8c162ef27e9475acc9632c05edc5da51c7037f helps with removing the remaining NoClassDefFound exceptions (tested with Maven local repository).
@niqdev: I can't submit a PR untill openwebnet/rx-openwebnet#3 has been merged and a new version of rx-openwebnet has been released.
Meanwhile, I'll check this black rectangle thing.

Well done, I forgot to check the library also! :disappointed_relieved:

I've released rx-openwebnet version 0.7.2

Thanks !

I've merged few PRs so I don't actually know which one introduced this regression, but could you verify if you have the same problem, i.e. huge margin between cards? Thanks

Yes, I got it too. :(
Do you want me to investigate ?

Yes please! Sorry I will delete the comment on the other card and I will close the issue again.
I've just opened a new issue
Thanks

I will fix the maxWidth for light and automation:

This commit fixes the maxWidth

I think we can close this issue: everything runs as expected on API 16, which is the documented minSdkVersion in the Manifest.


fails when issuing  go get -v -t ./...   What go version works ?

go version
go version go1.9beta1 linux/amd64
Please post on your WiKi which go version is needed ... I tried above go verison yet it fails
cd /home/stens/src/gopath/src/github.com/keybase/
git clone git@github.com:keybase/client
cd client
go get -v -t ./...

github.com/keybase/kbfs (download)
github.com/keybase/client/go/vendor/github.com/blang/semver
github.com/keybase/client/go/vendor/github.com/hashicorp/golang-lru
github.com/keybase/client/go/vendor/golang.org/x/net/html/atom
github.com/keybase/client/go/vendor/github.com/keybase/clockwork
github.com/keybase/client/go/vendor/golang.org/x/net/html
github.com/keybase/client/go/vendor/golang.org/x/net/context
github.com/keybase/client/go/vendor/github.com/keybase/go-codec/codec
github.com/keybase/client/go/vendor/github.com/keybase/go-jsonw
github.com/keybase/client/go/gregor
github.com/keybase/client/go/vendor/github.com/keybase/backoff
github.com/keybase/client/go/vendor/github.com/keybase/go-logging
github.com/keybase/client/go/vendor/github.com/mattn/go-isatty
github.com/keybase/client/go/vendor/golang.org/x/crypto/poly1305
github.com/keybase/client/go/vendor/golang.org/x/crypto/salsa20/salsa
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/ed25519/internal/edwards25519
github.com/keybase/client/go/vendor/golang.org/x/crypto/nacl/secretbox
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/errors
github.com/keybase/client/go/vendor/github.com/andybalholm/cascadia
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/armor
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/brainpool
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/cast5
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/ed25519
github.com/keybase/client/go/vendor/github.com/PuerkitoBio/goquery
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/curve25519
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/elgamal
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/s2k
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/rsa
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/ecdh
github.com/keybase/client/go/vendor/github.com/keybase/go-triplesec/sha3
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/packet
github.com/keybase/client/go/vendor/golang.org/x/crypto/salsa20
github.com/keybase/client/go/vendor/golang.org/x/crypto/pbkdf2
github.com/keybase/client/go/vendor/golang.org/x/crypto/twofish
github.com/keybase/client/go/vendor/golang.org/x/crypto/scrypt
github.com/keybase/client/go/vendor/github.com/keybase/saltpack/encoding/basex
github.com/keybase/client/go/vendor/github.com/keybase/go-triplesec
github.com/keybase/client/go/vendor/golang.org/x/crypto/ed25519/internal/edwards25519
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/util
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/cache
github.com/keybase/client/go/vendor/golang.org/x/crypto/ed25519
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/comparer
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/storage
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/filter
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/opt
github.com/keybase/client/go/vendor/github.com/golang/snappy
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/openpgp/clearsign
github.com/keybase/client/go/vendor/golang.org/x/crypto/curve25519
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/errors
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/iterator
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/journal
github.com/keybase/client/go/vendor/golang.org/x/crypto/nacl/box
github.com/keybase/client/go/vendor/golang.org/x/crypto/ripemd160
github.com/keybase/client/go/vendor/golang.org/x/net/context/ctxhttp
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/memdb
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb/table
github.com/keybase/client/go/vendor/h12.me/socks
github.com/keybase/client/go/vendor/stathat.com/c/ramcache
github.com/keybase/client/go/vendor/github.com/miekg/dns
github.com/keybase/client/go/vendor/github.com/keybase/cli
github.com/keybase/client/go/vendor/github.com/syndtr/goleveldb/leveldb
github.com/keybase/client/go/vendor/camlistore.org/pkg/buildinfo
github.com/keybase/client/go/vendor/go4.org/readerutil
github.com/keybase/client/go/vendor/camlistore.org/pkg/images/fastjpeg
github.com/keybase/client/go/vendor/golang.org/x/image/math/f64
github.com/keybase/client/go/vendor/golang.org/x/image/draw
github.com/keybase/client/go/vendor/github.com/nf/cr2
github.com/keybase/client/go/vendor/github.com/rwcarlsen/goexif/tiff
github.com/keybase/client/go/vendor/github.com/rwcarlsen/goexif/exif
github.com/keybase/client/go/vendor/golang.org/x/image/tiff/lzw
github.com/keybase/client/go/vendor/golang.org/x/image/tiff
github.com/keybase/client/go/vendor/camlistore.org/pkg/images/resize
github.com/keybase/client/go/chat/s3
github.com/keybase/client/go/vendor/camlistore.org/pkg/images
github.com/keybase/client/go/vendor/github.com/nfnt/resize
github.com/keybase/client/go/vendor/golang.org/x/sync/errgroup
github.com/keybase/client/go/gregor/storage
github.com/keybase/kbfs/vendor/github.com/keybase/clockwork
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/gregor
github.com/keybase/kbfs/vendor/github.com/keybase/go-codec/codec
github.com/keybase/kbfs/vendor/golang.org/x/net/context
github.com/keybase/kbfs/vendor/github.com/keybase/backoff
github.com/keybase/kbfs/vendor/github.com/keybase/go-jsonw
github.com/keybase/kbfs/vendor/github.com/keybase/go-logging
github.com/keybase/kbfs/vendor/github.com/mattn/go-isatty
github.com/keybase/kbfs/vendor/bazil.org/fuse
github.com/keybase/kbfs/vendor/github.com/davecgh/go-spew/spew
github.com/keybase/kbfs/vendor/github.com/go-errors/errors
github.com/keybase/kbfs/vendor/github.com/vaughan0/go-ini
github.com/keybase/kbfs/vendor/github.com/goamz/goamz/aws
github.com/keybase/kbfs/vendor/github.com/bitly/go-simplejson
github.com/keybase/kbfs/vendor/github.com/hashicorp/golang-lru/simplelru
github.com/keybase/kbfs/vendor/github.com/hashicorp/golang-lru
github.com/keybase/kbfs/vendor/github.com/goamz/goamz/dynamodb
github.com/keybase/kbfs/vendor/golang.org/x/net/html/atom
github.com/keybase/kbfs/vendor/golang.org/x/net/html
github.com/keybase/client/go/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc
github.com/keybase/client/go/vendor/github.com/keybase/saltpack
github.com/keybase/kbfs/vendor/github.com/andybalholm/cascadia
github.com/keybase/kbfs/vendor/github.com/PuerkitoBio/goquery
github.com/keybase/client/go/protocol/gregor1
github.com/keybase/kbfs/vendor/github.com/blang/semver
github.com/keybase/kbfs/vendor/golang.org/x/crypto/poly1305
github.com/keybase/kbfs/vendor/golang.org/x/crypto/salsa20/salsa
github.com/keybase/kbfs/vendor/golang.org/x/crypto/nacl/secretbox
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/ed25519/internal/edwards25519
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/errors
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/armor
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/brainpool
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/cast5
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/ed25519
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/curve25519
github.com/keybase/client/go/protocol/keybase1
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/ecdh
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/elgamal
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/s2k
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/rsa
github.com/keybase/kbfs/vendor/github.com/keybase/go-triplesec/sha3
github.com/keybase/kbfs/vendor/golang.org/x/crypto/salsa20
github.com/keybase/kbfs/vendor/golang.org/x/crypto/pbkdf2
github.com/keybase/kbfs/vendor/golang.org/x/crypto/scrypt
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/packet
github.com/keybase/kbfs/vendor/golang.org/x/crypto/twofish
github.com/keybase/kbfs/vendor/github.com/keybase/go-triplesec
github.com/keybase/kbfs/vendor/github.com/keybase/saltpack/encoding/basex
github.com/keybase/kbfs/vendor/golang.org/x/crypto/ed25519/internal/edwards25519
github.com/keybase/kbfs/vendor/golang.org/x/crypto/ed25519
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp
github.com/keybase/kbfs/vendor/github.com/keybase/go-crypto/openpgp/clearsign
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/util
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/cache
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/comparer
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/storage
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/filter
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/opt
github.com/keybase/kbfs/vendor/github.com/golang/snappy
github.com/keybase/kbfs/vendor/golang.org/x/crypto/curve25519
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/errors
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/iterator
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/journal
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/memdb
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb/table
github.com/keybase/kbfs/vendor/golang.org/x/crypto/nacl/box
github.com/keybase/kbfs/vendor/golang.org/x/crypto/ripemd160
github.com/keybase/kbfs/vendor/golang.org/x/net/context/ctxhttp
github.com/keybase/kbfs/vendor/h12.me/socks
github.com/keybase/kbfs/vendor/github.com/syndtr/goleveldb/leveldb
github.com/keybase/kbfs/vendor/stathat.com/c/ramcache
github.com/keybase/kbfs/vendor/github.com/miekg/dns
github.com/keybase/kbfs/vendor/github.com/pkg/errors
github.com/keybase/kbfs/ioutil
github.com/keybase/kbfs/vendor/github.com/golang/mock/gomock
github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc
github.com/keybase/kbfs/vendor/github.com/keybase/saltpack
github.com/keybase/kbfs/vendor/github.com/keybase/go-merkle-tree
github.com/keybase/client/go/logger
github.com/keybase/client/go/protocol/chat1
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/gregor1
github.com/keybase/client/go/kex2
github.com/keybase/kbfs/vendor/github.com/pmezard/go-difflib/difflib
github.com/keybase/kbfs/vendor/github.com/stretchr/testify/assert
github.com/keybase/kbfs/kbfshash
github.com/keybase/kbfs/kbfssync
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1
github.com/keybase/kbfs/vendor/github.com/rcrowley/go-metrics
github.com/keybase/client/go/libkb
github.com/keybase/client/go/gregor/client
github.com/keybase/client/go/chat/types
github.com/keybase/client/go/chat/msgchecker
github.com/keybase/client/go/chat/pager
github.com/keybase/kbfs/vendor/github.com/stretchr/testify/require
github.com/keybase/kbfs/vendor/github.com/shirou/gopsutil/internal/common
github.com/keybase/kbfs/kbfscodec
github.com/keybase/kbfs/vendor/github.com/shirou/gopsutil/mem
github.com/keybase/kbfs/vendor/golang.org/x/net/internal/timeseries
github.com/keybase/kbfs/vendor/golang.org/x/sync/errgroup
github.com/keybase/kbfs/vendor/golang.org/x/sys/unix
github.com/keybase/kbfs/vendor/golang.org/x/net/trace
github.com/keybase/kbfs/vendor/golang.org/x/time/rate
github.com/keybase/client/go/vendor/github.com/docopt/docopt-go
github.com/keybase/client/go/vendor/github.com/dustin/go-humanize
github.com/keybase/client/go/flexibletable
github.com/keybase/client/go/vendor/github.com/kardianos/osext
github.com/keybase/client/go/lsof
github.com/keybase/client/go/vendor/github.com/keybase/go-ps
github.com/keybase/client/go/vendor/github.com/keybase/go-crypto/ssh/terminal
github.com/keybase/client/go/vendor/github.com/keybase/go-updater/process
github.com/keybase/client/go/vendor/golang.org/x/crypto/ssh/terminal
github.com/keybase/client/go/pinentry
github.com/keybase/client/go/minterm
github.com/keybase/client/go/vendor/code.google.com/p/rsc/gf256
github.com/keybase/client/go/vendor/code.google.com/p/rsc/qr/coding
github.com/keybase/client/go/spotty
github.com/keybase/client/go/vendor/github.com/keybase/go-updater/watchdog
github.com/keybase/client/go/vendor/github.com/kr/text
github.com/keybase/client/go/vendor/code.google.com/p/rsc/qr
github.com/keybase/client/go/kbnm/hostmanifest
github.com/keybase/client/go/qrcode
github.com/keybase/client/go/vendor/github.com/qrtz/nativemessaging
github.com/keybase/client/go/kbnm/installer
github.com/keybase/client/go/vendor/bazil.org/fuse
github.com/keybase/client/go/kbnm
github.com/keybase/client/go/mounter
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/chat1
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/kex2
github.com/keybase/client/go/protocol
github.com/keybase/client/go/systests
github.com/keybase/client/go/tools/naclkey
github.com/keybase/client/go/tools/tfilt
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/libkb
github.com/keybase/client/go/tools/zip
github.com/keybase/client/go/auth
github.com/keybase/client/go/pvl
github.com/keybase/client/go/badges
github.com/keybase/client/go/chat/globals
github.com/keybase/client/go/chat/signencrypt
github.com/keybase/client/go/pvlsource
github.com/keybase/client/go/encrypteddb
github.com/keybase/client/go/engine
github.com/keybase/client/go/externals
github.com/keybase/client/go/libcmdline
github.com/keybase/client/go/chat/signencrypt/example
github.com/keybase/client/go/chat/utils
github.com/keybase/client/go/install
github.com/keybase/client/go/chat/storage
github.com/keybase/client/go/teams
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/pvl
github.com/keybase/kbfs/env
github.com/keybase/client/go/chat
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/auth
github.com/keybase/client/go/kbtest
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/pvlsource
github.com/keybase/kbfs/kbfscrypto
github.com/keybase/kbfs/vendor/github.com/keybase/client/go/externals
github.com/keybase/kbfs/kbfsblock
github.com/keybase/kbfs/tlf
github.com/keybase/kbfs/kbfsmd
github.com/keybase/kbfs/libkbfs
github.com/keybase/client/go/service
github.com/keybase/client/go/client
github.com/keybase/client/go/keybase
github.com/keybase/kbfs/fsrpc
github.com/keybase/client/go/bind
# github.com/keybase/client/go/bind
go/bind/keybase.go:57:9: undefined: getDNSServers
go/bind/keybase.go:142:42: cannot use kbCtx (type *"github.com/keybase/client/go/libkb".GlobalContext) as type libkbfs.Context in argument to libkbfs.DefaultInitParams:
	*"github.com/keybase/client/go/libkb".GlobalContext does not implement libkbfs.Context (wrong type for GetRunMode method)
		have GetRunMode() "github.com/keybase/client/go/libkb".RunMode
		want GetRunMode() "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/libkb".RunMode
go/bind/keybase.go:147:31: cannot use kbCtx (type *"github.com/keybase/client/go/libkb".GlobalContext) as type libkbfs.Context in argument to libkbfs.Init:
	*"github.com/keybase/client/go/libkb".GlobalContext does not implement libkbfs.Context (wrong type for GetRunMode method)
		have GetRunMode() "github.com/keybase/client/go/libkb".RunMode
		want GetRunMode() "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/libkb".RunMode
go/bind/keybase.go:147:60: cannot use serviceCn literal (type serviceCn) as type libkbfs.KeybaseServiceCn in argument to libkbfs.Init:
	serviceCn does not implement libkbfs.KeybaseServiceCn (wrong type for NewCrypto method)
		have NewCrypto(libkbfs.Config, libkbfs.InitParams, libkbfs.Context, "github.com/keybase/client/go/logger".Logger) (libkbfs.Crypto, error)
		want NewCrypto(libkbfs.Config, libkbfs.InitParams, libkbfs.Context, "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger) (libkbfs.Crypto, error)
go/bind/keybase.go:147:80: cannot use kbCtx.Log (type "github.com/keybase/client/go/logger".Logger) as type "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger in argument to libkbfs.Init:
	"github.com/keybase/client/go/logger".Logger does not implement "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger (wrong type for CCriticalf method)
		have CCriticalf("github.com/keybase/client/go/vendor/golang.org/x/net/context".Context, string, ...interface {})
		want CCriticalf("github.com/keybase/kbfs/vendor/golang.org/x/net/context".Context, string, ...interface {})
go/bind/keybase.go:158:47: cannot use log (type "github.com/keybase/client/go/logger".Logger) as type "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger in argument to libkbfs.NewKeybaseDaemonRPC:
	"github.com/keybase/client/go/logger".Logger does not implement "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger (wrong type for CCriticalf method)
		have CCriticalf("github.com/keybase/client/go/vendor/golang.org/x/net/context".Context, string, ...interface {})
		want CCriticalf("github.com/keybase/kbfs/vendor/golang.org/x/net/context".Context, string, ...interface {})
go/bind/keybase.go:159:44: cannot use []"github.com/keybase/client/go/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc".Protocol literal (type []"github.com/keybase/client/go/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc".Protocol) as type []"github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc".Protocol in argument to keybaseService.AddProtocols
go/bind/keybase.go:160:34: cannot use log (type "github.com/keybase/client/go/logger".Logger) as type "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger in argument to fsrpc.NewFS:
	"github.com/keybase/client/go/logger".Logger does not implement "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/logger".Logger (wrong type for CCriticalf method)
		have CCriticalf("github.com/keybase/client/go/vendor/golang.org/x/net/context".Context, string, ...interface {})
		want CCriticalf("github.com/keybase/kbfs/vendor/golang.org/x/net/context".Context, string, ...interface {})
go/bind/keybase.go:160:34: cannot use fsrpc.NewFS(config, log) (type "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1".FsInterface) as type "github.com/keybase/client/go/protocol/keybase1".FsInterface in argument to "github.com/keybase/client/go/protocol/keybase1".FsProtocol:
	"github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1".FsInterface does not implement "github.com/keybase/client/go/protocol/keybase1".FsInterface (wrong type for List method)
		have List("github.com/keybase/kbfs/vendor/golang.org/x/net/context".Context, "github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1".ListArg) ("github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1".ListResult, error)
		want List("github.com/keybase/client/go/vendor/golang.org/x/net/context".Context, "github.com/keybase/client/go/protocol/keybase1".ListArg) ("github.com/keybase/client/go/protocol/keybase1".ListResult, error)

Your version of Go should work, but the issue is that you shouldn't be building in go/bind since that only works on mobile with Android studio or Xcode.
If you just want to run the local client (without KBFS and the GUI), it's:
cd /home/stens/src/gopath/src/github.com/keybase/
git clone git@github.com:keybase/client
cd client/go/keybase
go install

Sorry for any confusion.


docker compose tweaks

Move all reusable service definitions to .docker/common.yml.
compose.yml rebuild all images and use "dev" versions by default.
Remove compose overrides.

@knopki it looks good
Did you test it?

@pyoner Of course I test it 👀
Everything is working except metis-bff of course. You need to copy example config and initialize db. Config from inside of image not used because of volume. DB init doesn't work because of entrypoint override. "dev build"

@pyoner can I merge?

@knopki I have got an error
➜  metis-backend git:(tweak-dockerf-compose) docker-compose build --no-cache
[+] Building 0.0s (2/2) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 2B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/snap/docker/common/var-lib-docker/tmp/buildkit-mount1419726589/Dockerfile: no such file or directory

@knopki got an error for podman
➜  metis-backend git:(tweak-dockerf-compose) podman-compose build --no-cache
podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 3.4.4
Traceback (most recent call last):
  File "/home/pyoner/.local/bin/podman-compose", line 8, in <module>
    sys.exit(main())
  File "/home/pyoner/.local/lib/python3.10/site-packages/podman_compose.py", line 2941, in main
    podman_compose.run()
  File "/home/pyoner/.local/lib/python3.10/site-packages/podman_compose.py", line 1423, in run
    cmd(self, args)
  File "/home/pyoner/.local/lib/python3.10/site-packages/podman_compose.py", line 1754, in wrapped
    return func(*args, **kw)
  File "/home/pyoner/.local/lib/python3.10/site-packages/podman_compose.py", line 1994, in compose_build
    build_one(compose, args, cnt)
  File "/home/pyoner/.local/lib/python3.10/site-packages/podman_compose.py", line 1957, in build_one
    raise OSError("Dockerfile not found in " + ctx)
OSError: Dockerfile not found in .docker/.

@knopki I have got an error

docker compose's output is very uninformative.

@knopki got an error for podman

Working on my machine © (podman-compose 1.0.3/1.0.6, podman 4.2.0)
This is very strange. There is not even a podman build ... in the output. It looks like it can't even build metis-backend due to trying to find the Dockerfile in .docker directory (where is common.yml). It's as if it resolves the path in common.yml instead of just merging values (as in the compose file specification).
I moved build.context definitions to the root compose.yml. @pyoner can you try again?

@knopki thank you for the fix!
docker is working now

@pyoner New version. metis-gui with bind mounts. Should work after merge of: https://github.com/basf/metis-gui/pull/145 and https://github.com/basf/metis-gui/pull/146


BUGFIX: Repair broken "t" and "T" mappings

The title says it all. Pay particular attention to the commit message for ae1c95b.  That commit really fixes the bug for directories, and the following commit fixes the same issue for bookmarks.
It's funny that open() has a different signature for bookmark nodes than for file and directory nodes. This made the change more difficult to make general, but still doable.

Thanks, @PhilRunninger!!! As one last adjustment, do you think it would be a good idea to open tabs at the end of all open tabs, like with :$tabnew?  This has been suggested before in some issue or PR, and I shot it down... mainly because the user wanted an option. I almost think this should be the default...
Either way, the tab can be moved after the fact to the desired location.  It's a minor change, but I would like to see it added.  Since the mappings were already broken, no one depended on them anyway...

I have no opinion on this one, since I don't use tabs. Opening tabs at the end is consistent with other IDEs, so it's probably OK. Since is it new behavior, I would suggest putting a mention in the FAQ Wiki, explaining the change and the command to move tabs after they're created.

Got it.  I'll add it to the CHANGELOG as well.

The CHANGELOG has been updated and the change for new tabs has been made. So the issues are considered fixed.
I'll merge now and update the Wiki in a few minutes.


add sentry support to lambda

Codecov Report

Merging #4 into master will decrease coverage by 1.03%.
The diff coverage is 72.72%.

@@            Coverage Diff             @@
##           master       #4      +/-   ##
==========================================
- Coverage   87.01%   85.97%   -1.04%
==========================================
  Files           6        6
  Lines         154      164      +10
  Branches       16       16
==========================================
+ Hits          134      141       +7
- Misses         19       22       +3
  Partials        1        1

Flag
Coverage Δ

#javascript
85.97% <72.72%> (-1.04%)
:arrow_down:

Impacted Files
Coverage Δ

index.js
81.25% <72.72%> (-18.75%)
:arrow_down:

Continue to review full report at Codecov.

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


🐛 [flutterfire_ui] Web not Linking Google Provider

Bug report
Describe the bug
After the user has successfully logged in with phone auth, when navigating to the ProfileScreen and trying to enable Google auth, a new user account is created instead of linking to the logged in user.
Steps to reproduce
Steps to reproduce the behavior:

login with phone number
when profile screen shows, connect with google
new firebase account is created instead of linking with phone auth account

Expected behavior
the two accounts are linked
Sample project

main.dart
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutterfire_ui/auth.dart';
import 'package:my_app/firebase_options.qa.dart';

Future<void> main() async {
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PhoneInputScreen(
        actions: [
          SMSCodeRequestedAction(
            (context, action, flowKey, phone) {
              Navigator.of(context).push(
                MaterialPageRoute(
                  builder: (_) => SMSCodeInputScreen(
                    action: action,
                    flowKey: flowKey,
                    actions: [
                      AuthStateChangeAction<SignedIn>(
                        (context, state) {
                          Navigator.of(context).push(
                            MaterialPageRoute(
                              builder: (_) => const ProfileScreen(
                                providerConfigs: [
                                  GoogleProviderConfiguration(
                                    clientId: DefaultFirebaseOptions.webClientId,
                                  ),
                                ],
                              ),
                            ),
                          );
                        },
                      )
                    ],
                  ),
                ),
              );
            },
          ),
        ],
      ),
    );
  }
}

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.68.1)
[✓] Connected device (4 available)
[✓] HTTP Host Availability

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.17.6
Flutter SDK 3.0.5
my_app 0.0.1+1

dependencies:
- firebase_auth 3.9.0 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 1.22.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutterfire_ui 0.4.3+9 [cloud_firestore collection crypto desktop_webview_auth email_validator firebase_auth firebase_core firebase_database firebase_dynamic_links flutter flutter_facebook_auth flutter_localizations flutter_svg google_sign_in sign_in_with_apple twitter_login]

transitive dependencies:
- async 2.8.2 [collection meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.2.0
- charcode 1.3.1
- clock 1.1.0
- cloud_firestore 3.4.8 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_firestore_platform_interface 5.7.4 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 2.8.7 [cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- collection 1.16.0
- crypto 3.0.2 [typed_data]
- desktop_webview_auth 0.0.9 [crypto flutter http]
- email_validator 2.1.17
- fake_async 1.3.0 [clock collection]
- firebase_auth_platform_interface 6.8.0 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 4.4.1 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.5.1 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 1.7.2 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_database 9.1.4 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_database_platform_interface 0.2.2+4 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.1+6 [firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins js]
- firebase_dynamic_links 4.3.7 [firebase_core firebase_core_platform_interface firebase_dynamic_links_platform_interface flutter meta plugin_platform_interface]
- firebase_dynamic_links_platform_interface 0.2.3+12 [firebase_core flutter meta plugin_platform_interface]
- flutter_facebook_auth 4.4.1+1 [flutter flutter_facebook_auth_platform_interface flutter_facebook_auth_web]
- flutter_facebook_auth_platform_interface 3.2.0 [flutter plugin_platform_interface]
- flutter_facebook_auth_web 3.2.0 [flutter flutter_web_plugins js flutter_facebook_auth_platform_interface]
- flutter_localizations 0.0.0 [flutter intl characters clock collection material_color_utilities meta path vector_math]
- flutter_svg 1.1.5 [flutter meta path_drawing vector_math xml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- google_sign_in 5.4.1 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- google_sign_in_android 6.1.1 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.5.0 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 2.3.0 [flutter plugin_platform_interface quiver]
- google_sign_in_web 0.10.2 [flutter flutter_web_plugins google_sign_in_platform_interface js]
- http 0.13.5 [async http_parser meta path]
- http_parser 4.0.1 [collection source_span string_scanner typed_data]
- intl 0.17.0 [clock path]
- js 0.6.4
- matcher 0.12.11 [stack_trace]
- material_color_utilities 0.1.4
- meta 1.7.0
- path 1.8.1
- path_drawing 1.0.1 [vector_math meta path_parsing flutter]
- path_parsing 1.0.1 [vector_math meta]
- petitparser 5.0.0 [meta]
- plugin_platform_interface 2.1.2 [meta]
- quiver 3.1.0 [matcher]
- sign_in_with_apple 3.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_span 1.8.2 [collection path term_glyph]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- term_glyph 1.2.0
- test_api 0.4.9 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- twitter_login 4.2.3 [flutter crypto http]
- typed_data 1.3.1 [collection]
- vector_math 2.1.2
- xml 6.1.0 [collection meta petitparser]

Thanks for the detailed report @kulture-rob-snider
I am seeing the same behavior using the code sample provided.
/cc @Lyokone

Maybe @lesnitsky will have an idea since it's flutterfire_ui related?

Most likely it is fixed on #9343, but I'll double check


let the empty string mean null (#993)

When dbt encounters the empty string in a csv, treat it as NULL instead of ''.
Fixes #993

I noticed that in seed in snowflake, the empty string will be converted to string NULL and not SQL NULL. Is there a way that I want SQL NULL to be seeded and not STRING NULL?


Approved expenses are showing pinned expenses with RBR

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number:
Reproducible in staging?: needs reproduction
Reproducible in production?: needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @dubielzyk-expensify
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1720606818055389
Action Performed:

Created expenses with tags departments
The report was approved
After a while Tags Departments does not exist or deleted
Log in to the app
Observe the LHN

Expected Result:
Approved expenses shouldn't have an RBR red dot in the LHN, nor should the expense be pinned.
Actual Result:
Approved expenses are showing with RBR red dot in the LHN, and the expense is pinned.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

View all open jobs on GitHub

confirming in thread: https://expensify.slack.com/archives/C049HHMV9SM/p1720606818055389
Seems weird Jon hasn't been paid since Jan 2024. 🤔

Alright, Jon confirmed the history doesn't contain any previous reimbursement reportAction. The report was only approved on Jan 27th.

I can repro this pretty easily.

Enable "category required" on the workspace
Submit a couple of expenses without categories
Approve the expense report
Observe the two expenses remain pinned in the LHN with a red dot

I took it further to pay the expense report and the red dots and pinning are removed when paid, which we expect:

CC: @JmillsExpensify I think we put this one in #wave-control as violations polish. Putting it there, but let me know if you disagree with that.

@trjExpensify we wanna remove RBR from transaction detail reports (1, 3) in LHN but still show RBR in expense report (2)?

@situchan what do you think of the proposal?

updating today

@dominictb I am still seeing RBR after replacing isSettled with isReportApproved

@dominictb I don't think your additional notes are needed. Tom's RBR in expense report should be showing for different reason (not related to transaction violations).
Let's just fix "RBR display bug" (RBR -> no RBR). No need to fix "RBR hidden bug?" (no RBR > RBR)

report type
Before approval
After approval (before fix)
After approval (after fix)

expense report
🔴
🔴
🔴

expense report

transaction detail
🔴
🔴 (bug to fix)

transaction detail

@dominictb's main solution looks good to me.
🎀👀🎀 C+ reviewed

Checklist time!

Gentle bump @situchan

[x] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/37767
[x] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/37767/files#r1714194625
[x] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A

Regression Test Proposal

Create an expense with violation (i.e. no category or no tag)
Approve the report
Go to transaction detail
Observe the LHN
Verify that report doesn't have an RBR red dot in the LHN and isn't pinned

Payment summary as follows:

$250 to @situchan for the C+ review
$250 to @dominictb for the fix

Paid!


Enable Partial Flat Object

Description
Before this PR, flat_object can only be defined at the root field of JSON object in 2.7 and 2.8, because the json object is flatten so it lost the structure of a tree. Now,  this PR enables json object to be partially mapped as flat_object field type while other fields in the JSON can be other field type.
The main idea is to remember the flat object field name as mappedFieldTypeName in the dynamic created field (only in query time and it will vanish after returning result), which helps the logic to identify the starting point of a flat object, to decide if a query contains a dot path after flat object field name.
In the example given in the issue,
issue.label is defined as a flat_object, so issue.labels is the flat object field name, andissue.label.comment contains a dot path after the flat_object field name .
Related Issues
#7136
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

PRO Ready for reviews and comments @reta @dblock

@mingshl can you add tests for the new changes?

closes #7136


Image is taking up 13GB and doesn't even work

Docker WSL is taking up over 300 GB !!!!
I uninstalled Ubuntu
AND IT STILL TAKING UP SPACE
HOW DO I REMOVE THIS ?

If WSL is hogging up memory and CPU on your machine you can control it's behaviors using https://learn.microsoft.com/en-us/windows/wsl/wsl-config.
As for cleaning up any cached docker images you can reference... https://docs.docker.com/config/pruning/


Changes related to SE-0028

Replaces old identifiers with new ones

One thing i'm not sure about PRETTY_FUNCTION which actually is define for FUNCTION but is not covered in SE-0028
Should we rename it too or left same for compatibility?

The changes to the .c and .h files seem very wrong to me, they won't build.

My bad, will fix

@lattner reverter those changes, sorry for that ¯_(ツ)_/¯

what corresponding commit for the compiler is this attached to?

This one

thanks

@swift-ci Please test


Add hero image for /analysis

If can have alternative to colored logo.
Need to maintain color identification on page though.

Also, maybe keep colored logo at small sizes if this helps avoid readability/scaling issues for a large image.

closing as future redesign will make this redundant


Refactor: transaction broadcast request options construction

Small PR to refactor the way that the transaction broadcast request's options are constructed.
Also includes a change to export the cvToValue function.

We should follow the PR templates and start using the changelog since there are many 3rd party integrators of this library now. Any changes breaking or not need to be documented so not to impact downstream apps.


simplify and standardize generic CRUD views

Prefactor for adding Assistants.

Make all generic CRUD views class based views
Extract and simplify the 'make_crud_urls' utility

Looks good. Out of interest, why the change?

It makes it easier to use in other places.


setTimeout not work correctly when debugging in chrome

React Native version: 0.60.4
Steps To Reproduce

create new react-native-init project
call setTimeout in onPress prop of button
setTimeout fired without delay

Please provide demo code, and what is your platform? I'll re-open once you provide more info. Thank you


libc 0.3: Replace c_void with u8 in read, write, memcpy and many other functions

libc 0.3: Replace c_void with u8 in read, write, memcpy and many other functions
Because when I write something, I usually have *const u8, not *const c_void. So this patch will make these functions easier to use.
This is breaking change

This was bad idea. Closing


Crashing option parsing, no options help

Try to get options help:
/bloom --help

(no output)
Maybe help is with short option?
$ ./bloom -h
Segmentation fault (core dumped)

What about other options?
$ ./bloom -w
Segmentation fault (core dumped)
$ ./bloom -width
Segmentation fault (core dumped)
$ ./bloom -height
Segmentation fault (core dumped)
$ ./bloom -gpu
Segmentation fault (core dumped)

Some of the options do have argument validation:
$ ./bloom --benchfilename --benchwarmup --benchruntime foo
Filename for benchmark results must not start with a hyphen!
Warmup time for benchmark mode must be specified as a number!
Benchmark run duration must be specified as a number!

But those fail to complain about missing argument:
$ ./bloom --benchfilename
$ ./bloom --benchwarmup
$ ./bloom --benchruntime

And there's no checking for invalid options:
$ ./bloom -argh --hmph

(Should output the help instead.)

You could e.g. have something like this at start of arg parsing loop in VulkanExampleBase::VulkanExampleBase():
bool havearg = (i+1 < args.size());
And  use that to check whether extra arg is present.  If it's not present, or doesn't match expected format (e.g. number), output help.

I have reworked command line argument handling, which is now handled by a separate class with more error checking and help message output. While it does not implement everything noted in this issue, it's better than before and sufficient for the sample use case.

I have reworked command line argument handling, which is now handled by a separate class with more error checking and help message output. While it does not implement everything noted in this issue, it's better than before and sufficient for the sample use case.


Defer routeChangeComplete until head was updated

What problem are we trying to solve?
Currently the routeChangeComplete event fires before the head was updated.
Solution
Defer the routeChangeComplete event until the head update is done.
Closes: #4044, #4889
Related: #574, #4838

I wonder if the tests still pass with the suspense support update of next/head

^^test only^^

I removed the fix, but the tests are not passing.

What i meant to say is that the head update doesn’t get triggered until componentDidMount

I am closing this, since it is out of date. We should tackle this later.


Trying to generate classic recap, getting error

Python 3.8
ValueError: Could not find a format to read the specified file in single-image mode

I switched to python 3.11 and it no longer has this error. Seems like python 3.8 is not a compatible version

Thanks for bring this up @limelody, I'll update the documentation to keep this noted. I'll close this issue now


[BUG]

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.5.4
What problem did you encounter?
I got this when i dowload bloxstrap and i need help. System.AggregateException: One or more errors occurred. (The given key 'content-platform-dictionaries.zip' was not present in the dictionary.)
[Inner Exception]
System.Collections.Generic.KeyNotFoundException: The given key 'content-platform-dictionaries.zip' was not present in the dictionary.
Bloxstrap_20241221T063257Z.log
Bloxstrap Log
No response

update
https://bloxstraplabs.com/

tytyt


RECONFIGURATION UNKNOWN issue running single exp script WITH metacontrol

mros1_reasoner in 353c3bebab9e0a08e8a9d891e78f8f87dfe2ba0e
Command executed:
./run_single_sim.sh -i 2 -g 2 -n standard -r true -p 1.3
INFO] [1590138841.922033]:   >> Finished MAPE-K ** EXECUTION **
== RECONFIGURATION UNKNOWN ==

@marioney is there a way to preserve the terminal running mros1_reasoner so as to debug this more easily?

Sure Just add an sleep command before the exit in the ./run_single_sim.sh
if [ "$launch_reconfiguration" = true ] ; then
	echo "Launching: mros reasoner"
	gnome-terminal --window --geometry=80x24+10+10 -- bash -c "source $PYTHON3_VENV_PATH/venv3.6_ros/bin/activate;
	source $PYTHON3_VENV_PATH/devel/setup.bash;
	source $REASONER_WS_PATH/devel/setup.bash;
	roslaunch mros1_reasoner run.launch onto:=mvp.owl;
        sleep 20;
	exit"
fi

This has been solved now that all info is automatically loaded from the rossystem files,

mros1_reasoner the autogen ontology file
rosgraph_manipulator the autogen yaml file


ElasticExplore not finding spaceid that exists

Description
So looks like elasticexplore by spaceid isnt working.   I suspect during elasticopenhub when we make the call to /api/v1/spaces?limit=100 we are storing the spaceid, but when we attempt to find it in the artifact it cant be found
https://github.com/qlik-oss/gopherciser/blob/master/session/artifactmap.go#L318
Example of scenario attached
Steps to Reproduce

See attached scenario file, which runs against perf6.eu.qlik-stage.com.  Run this scenario with traffic logs enabled and notice even though the space exists (response in previous /api/v1/spaces call during elasticopenhub, we still get space id not found.
qcsTest.txt

Expected behavior
Space id should be found as it exists
Actual behavior
Space id not found
Environment
Operating system
QCS perf6.eu.qlik-stage.com tenant

Versions

Version of Go (go version):
[Other relevant versions]

setting "keepcurrent": true will temporary fix the issue, this will however also keep any "personal" apps etc in list. It manifests as we now clear the entire map of everything. Will make a modification which keeps spaces.


Refactor data_management/dataset_bulding.py for cleaner code

dataset_bulding.py has a lot of code that is similar through the different function. It woud be nice to see if some refactoring and OO programming can be done. I'm thinking about making a class/interface and then different instantiations depending on the usage we want.

Closing as data_management/dataset_bulding.py does not exist anymore with the ivaodomed integration.


Ensure Broker Ingress uses Publisher-Confirm.

The channel must be configured to use Publisher Confirm, since the acks are asynchronous. As per this article here:
https://www.rabbitmq.com/tutorials/tutorial-seven-java.html#:~:text=Publisher confirms are a RabbitMQ,of on the server side.

@gvmw Indeed it is a good way to exert back-pressure, but it is also the only way to ensure guarantee of delivery of messages for senders. Otherwise, it is a fire-and-forget model which is not what the majority of customers expect.
As you propose, the simplest solution is to force a FIFO model by blocking further HTTP requests until the previous send has received its publisher-confirm. But I guess you can configure the HTTP Sink to accept up to N outstanding HTTP request (or send operations). That way you have extra concurrency and yet ensure delivery.

/unassign

/assign

This is what I have in my head so far:
RabbitMQ

The main goal for publisher-confirms is to make publishing reliable. That is it: give publisher good amount of guarantees. For example if message is a persistent message it will be acked only after storing on disk (note the expected latency - "hundreds of milliseconds" as per https://www.rabbitmq.com/confirms.html#publisher-confirms-latency)
As a side-effect publisher-confirms can be used to throttle publishers. Again, persistent message are the obvious example here - if disk is overloaded the confirms will arrive later and iff publisher has some sort of a limit regarding unacknowledged messages count, at some point it will have to stop publishing and wait.
In the RabbitMQ world publisher-confirms are opt-in and can be used only for a subset of messages but a publisher. Even inside same connection only some channels can be in confirm mode.

Knative
Knative wants to help its users to focus on important things. Providing good defaults, safety, flexibility and so on.
It will be good to not overload broker.
On safety and Knative guarantees.
We ca use publisher-confirms to make publishing synchronous and say to users that if sink returned 200 broker accepted the event
I personally don't see much value in this yet, since having routable message doesn't imply or guarantee something useful will come out. The receiving end can be down or not existing or overloaded and so on. In my view apps should be ready to process lost events regardless of the reason.
Using publisher-confirms for throttling and safety

The simplest way - make all requests synchronous inside sink instance by using mutex. Do not process next HTTP request till this one not acked. I think it kills parallelism.
Maintain concurrent counter and let users configure the batch size - how many unacknowledged messages one sink instance allowed to have. Question here - what if we don't control how many sink instances we will have? can we still overload Broker by multiplication?

My concerns:

Mutex kills parallelism
With scaled out sink it might be possible to overload Broker
Apps should be prepared for message loss anyway
This will be a global policy, not as granular as in the raw RabbitMQ world
If messages persistent potential latency (hunderds of milliseconds) can kill user experience.

It's great seeing the context that you've been building @ikvmw in the open.
I know for a fact that @embano1 cares a lot about events not being lost between the Source and the Broker. Maybe he can share more of the real-world use-case that requires those guarantees, since it is difficult to empathise with an end-user when we don't understand the context in which they operate this architecture.
Maybe I am over-simplifying this because I do not have the context that you have @ikvmw, but a mutex does sound like the simplest implementation to me, and I would like to see it proven wrong by benchmarks and real-world use-cases. This is the image that I have in mind:

Queues Don't Fix Overload is a the article where this image is used - thank you @ferd 🙌🏻 - and it explains why this simple implementation can go far. While the irony is not lost on me - we are putting an HTTP back-pressure mechanism in front of RabbitMQ queues 🤔 - I think that it captures the current context well. There is a really good related article that you may enjoy even more: Handling Overload.
When all is said and done, I fall-back on Make it work. Make it right. Make it fast. What this means is that I would do the simplest thing - 🐶 Mutex, come here - and then figure out what better looks like. Not having publisher confirms at all is no better than what we are proposing here, and I know for sure that whatever we come up with first will not be as good as the follow-up.
I would love to read what others think on the subject. @MarcialRosales 👀

Thanks Gerhard,
Do you recall, what is our default regarding message persistence here?

In Knative Eventing RabbitMQ messages are persistent by default. Did you mean something else?
From the perspective of messages reaching one or more queues / streams in the broker, I would recommend looking at setting the mandatory flag too, since messages with no destination (no queue or stream to be routed too), they will be confirmed as received, but they will be discarded within RabbitMQ. That's what I remember, worth double-checking: RabbitMQ Data Safety on the Publisher Side

Thanks @xtreme-sameer-vohra for this link: https://github.com/knative/specs/blob/main/specs/eventing/control-plane.md
My interpretation of the spec leads to this conclusion:
We have to use publisher confirms first and foremost to satisfy this spec passage:
A Broker MUST publish a URL at status.address.url when it is able to receive events. This URL MUST implement the receiver requirements of event delivery. Before acknowledging an event, the Broker MUST durably enqueue the event (where durability means that the Broker can retry event delivery beyond the duration of receiving the event).

and here are the requirements of event delivery:  https://github.com/knative/specs/blob/main/specs/eventing/data-plane.md#event-delivery. From here I deriver that responding 200 is valid only if broker durably enqueued.
There is also one more interesting find: 429 | Too Many Requests / Overloaded. We can limit the number of unacked messages and shoot 429 right away if too many in flight.

I personally don't see much value in this yet, since having routable message doesn't imply or guarantee something useful will come out. The receiving end can be down or not existing or overloaded and so on. In my view apps should be ready to process lost events regardless of the reason.

As you already quoted from the Knative SPEC, this would violate the safety guarantees of the SPEC. In the VEBA project the most common question we receive is "do you guarantee reliable delivery of an event". Let's not debate on what a "guarantee" here is for now. Talking to our users, they want at-least-once semantics from the Knative source, e.g. vSphere events, to the trigger/dispatcher (sink). Currently we only provide weaker at-most-once semantics, see related issues.
In the Knative world, RabbitMQ is mostly used for fire-and-forget events and so standard messaging patterns, e.g. channels, retries, correlation IDs, etc. don't apply. Once the sender (source) gets a 200 from the ingress, it considers this event delivered in compliance with the SPEC (which currently is not the case).
If an event is accepted by the broker and there is a configured dispatcher (trigger), the event will remain in the queue until the dispatcher is either deleted or comes back online. So I don't fully understand why "nothing useful" would come out of this setup. Also, not sure how one can "process lost events"? Perhaps I'm not fully understanding your context :)

The simplest way - make all requests synchronous inside sink instance by using mutex. Do not process next HTTP request till this one not acked. I think it kills parallelism.
Maintain concurrent counter and let users configure the batch size - how many unacknowledged messages one sink instance allowed to have. Question here - what if we don't control how many sink instances we will have? can we still overload Broker by multiplication?

I am not sure why we need this? Are you referring to the dispatcher/trigger as sink here?
We have support for inbound rate limiting in the Go CloudEvents SDK, which was exactly built for this reason (protect ingress and sinks from overload by applying 429 back-pressure signals).

Thanks for the reply.
Ticket
This ticket started without any spec reference and was about back-pressure. Once Sameer pointed to the relevant spec part the discussion comes much simplified for me.
Context

So I don't fully understand why "nothing useful" would come out of this setup.

What I meant is that if it's possible that event won't be processed in-time from sender PoV (think RPC-style) it doesn't matter for sender why it was like that - because broker failed or receiver.
VEBA
I totally get VEBA use case and we always have it in mind during our discussions.
200
We can produce 200 in spec sense only we we make sure RabbitMQ accepted the message. Hence we need publisher-confirms. So we send the message and wait till it acked or nacked by RabbitMQ. I'm not set on mutex btw since I don't like killing parallelism.
429
I love 429! Question is - how we generate it. I.e. how we on ingress side can detect that RabbitMQ doesn't feel well. We can track time-to-ack and unacked count. For both we need publisher confirms.
I'm actually thinking creating a new issue or renaming this one.

We have support for inbound rate limiting in the Go CloudEvents SDK, which was exactly built for this reason (protect ingress and sinks from overload by applying 429 back-pressure signals).

@xtreme-sameer-vohra @benmoss can we expect the same from CE SDKs in other languages?

This is how I want to approach the implementation:

Get 200 working - for this we have to send response only after message acked. Since on ingress side we dial new connection for each message (why not reuse though?) and create a new channel, I think mutex not needed. We don't share confirm go channel here and buffer size can be just set to 1.

Get 429 working - Introduce a new setting UnackedLimit and keep global atomic counter. Increase when sending, decrease when acked. If counter approached UnackedLimit return 429 immediately.

Update to the post above - Ingress reuses single connection and channel for all messages

Get 200 working - for this we have to send response only after message acked.

ACK

Ingress reuses single connection and channel for all messages

Thx for confirmation, that was also my understanding. And any form of additional locking/synchronization should also not be needed, correct?

Get 429 working - Introduce a new setting UnackedLimit and keep global atomic counter. Increase when sending, decrease when acked. If counter approached UnackedLimit return 429 immediately

This sounds like it can be done with the CE Go SDK RateLimiter, no?

And any form of additional locking/synchronization should also not be needed, correct?

not quite like this. When we put channel in confirm mode each message has associated delivery tag and amqp091-go sends confirmations to the single go channel. So publishers have to pick up "their" confirmations. IIUC this usually approached with concurrent hashmaps. So say having separate go thread that just consumes confirmations and then consults hash maps and resends confirmation to exact publisher thread via delivery tag mapping. What's also interesting - rabbitmq can confirm multiple messages at once. Delivery tag is basically an uint and RabbitMQ can say "I confirm up to this Tag".

This sounds like it can be done with the CE Go SDK RateLimiter, no?

Thank you for the hint, very useful for someone like me who's just scratching golang surface.

Quick update after our discussion yesterday:

publisher confirmations are always async
waiting for confirmations (delivery guarantee) increases latency, so must be configurable (default should be safe, i.e. wait for ack)
configuration could be done via annotation on the knative broker for RMQ
to parallelize request handling, we need to use goroutines in conjunction with a rate limiter to bound the work
each goroutine handles one ingress request, waits for publisher confirmation and returns status to caller
no need for global locks in the ingress HTTP handler

Question: will RMQ only ever ack a particular message or send batched responses, e.g. "I ack up to ID X (incl. other previous in-flight requests)? This would complicate the goroutine logic a bit IMHO if we don't have a 1:1 mapping between HTTP request -> publish to RMQ.

We will have 1:1 mapping between HTTP request -> publish to RMQ. But because RMQ can batch acks, exactly like you describe "I ack up to ID X", we won't have 1:1 between acks/nacks and publishing. Therefore I'm search for  a ?good? thread-safe map implementation.
Looking at this post https://medium.com/@deckarep/the-new-kid-in-town-gos-sync-map-de24a6bf7c2c I understand that I maybe have three options:

Use regular map and RWLock
Use sync.Map
Use third-part skip-list implementation, a-la https://github.com/sean-public/fast-skiplist

Question: can you please describe how the delivery confirmation works in RMQ? I hope we can find a way to simplify parallel in-flight request handling without heavy locking.
Say I have three messages in flight (sent concurrently via separate goroutines calling channel.Publish()), message 1, 2 and 3. RMQ successfully processed 1 and 2. Will I only receive one confirmation? What will the deliveryTag look like, i.e. how can I correlate message 1 or 2 to the corresponding int returned in the deliveryTag?

Here is how it works:
The go client will always synchronize publishes via mutex. It won't return deliveryTag. When channel was put in confirm mode channel user and server independently track it by incrementing for each message.
For us this means that as soon we are in confirm mode we initialize the counter and wrap channel.Publish, storage and increment in mutex. So we reduce time mutex held by removing confirm waiting.
Regarding number of confirmations. when message 1 2 3 sent any combination possible - three consecutive confirms or one with deliveryTag 3 and multiple-true. Or deliveryTag 2 and multiple=true and then deliveryTag 3 and multiple=false.
What can't happen though is when confirmation for message 3 multiple=false comes before confirmation for message 2.

What's new:
amqp-go client resequences confirms. https://github.com/rabbitmq/amqp091-go/blob/main/confirms.go
Without client rewrite "out-of-bound" confirms will be buffered and sent to listener channel only after all confirms with DeliveryTag lower are sent to the listener. On plus side, looks like we don't have to deal with mutliple:true.
On scaling side, while it's expected that ingresses will be replicated at some point we want to provide adequate level of parallelism for single-node ingress scenario (capacity planning, failure modes, etc). We want to use up to N rabbitmq channels and round-robin them for sends.


Sidebar modifications

Sidebar fixes in multiple parts
Added a control with SB6

https://www.loom.com/share/3782346638384f6390f91f78ed974203
To finish it:

Just add some controls for the colors as I did in the next part, for some styles we want to pass
Check Logo Component because when is collapsed is getting so small
Adjust some spacings

const StyledLink = styled.span
display: block;
display: flex;
justify-content: ${({ styles, isCollapsed }) => styles?.justifyContent ? styles.justifyContent : isCollapsed ? 'center' : 'start'};
padding: 1rem 1.5rem;
``

@esuarezz Also - you have not paid attention again to the requirement we have on Commit messages and also naming of PRs
Again I have mentioned this several times in previous PRs by you, please focus on these details. Please consider this the final request on learning this. It's simple enough to look at past commits from others to understand and look at the links provided.


Spec discussion

Notes from an virtual spec discussion we just had over Zoom:
Other syntax for sel(...)
Replace
- sel(linux): xtensor

with
- if: linux
   put: xtensor

(this should also work for list, e.g.
- if: linux
  put:
  	- xtensor
  	- xsimd
  	- ...

To skip certain steps, we will use
    if:
      - unix and py > "3.6"
      - unix and py > ver("3.6")
      - unix and vercmp(py, "3.6")
    # implies `put: {skip: true}` when used at a top-level step key

The recursive parsing logic for this will stay exactly the same.
We can extend that eventually to for loops:
- for: element in mylist
   put: {{ element[0:10] }}

Rename outputs to tasks or steps
And furthermore, make sure that _not each step has to produce a package!
A package is only produced if the step has a package key.
Otherwise, there can be build output produced (for later splitting) or it can be used to run non-output specific tests (the tests can require other outputs from the recipe).
steps:
- step:
    name: buildstep
  requirements:
    build:
      - "{{ compilers('cxx') }}"
    host:
      - libcpp
      - libxnd
- package:
    name: libx
    version: "1.2.3"
  requirements:
    stepresult:
      # note: this needs to make sure that the
      #.      proper variant is selected!
      - buildstep
    run:
      - something
    test:
      - otherpkg
  test:
    commands:
      - checklibx
- test:
    name: supertest
    commands:
      - pip check
  requirements:
    test:
      - libx

Replace Jinja functions with YAML dictionary
Instead of writing {{ compiler('cxx') }} it was suggested to write compiler: cxx.
Other currently used functions:
# All currently availble jinja functions in boa:

- compiler: cxx
- compiler: fortran
- cdt: xorg-libx11
- run_exports:
    - pin_subpackage:
        name: "{{ name }}"
        # default optional values below
        max_pin: "x.x.x.x.x"
        exact: false
requirements:
  run:
    - pin_compatible:
        name: xtensor
        # default values below
        lower_bound: null
        upper_bound: null
        min_pin: "x.x.x.x.x.x"
        max_pin: "x"
        exact: false

# this is pretty actually useless, we should probably keep it a jinja function or put all env vars into the context to make them usable from jinja anyways
# although we could have a special section in `context` where you can add env vars (similar to github actions)
- environ: MYXPKG_VERSION

I went ahead and test-implemented the steps syntax to something like this:
Recipe with multiple steps + splitting
context:
  name: multistep
  version: 0.7.3

package:
  name: '{{ name|lower }}'
  version: '{{ version }}'

build:
  number: 0

steps:
  - step:
      name: buildstep
    build:
      script:
        - echo "File 1" > file_1.txt
        - echo "File 2" > file_2.txt
        - echo "File 3" > file_3.txt

  - package:
      name: multistep-a
      version: 1.2.3
    source:
      - step: buildstep
    build:
      script:
        - cp file_1.txt $PREFIX/file_1.txt

  - package:
      name: multistep-b
      version: 1.2.3
    source:
      - step: buildstep
    build:
      script:
        - cp file_2.txt $PREFIX/file_2.txt
        - cp file_3.txt $PREFIX/file_3.txt

However, I also noticed some issues, especially around variants, requirements & run_exports.
I am working on additional visualizations right now so we can make sure that we get it right. Basically, the dependee needs to inherit variants & run exports and stuff like this.

I think it would be a fine idea to explicitly add environment variables into the recipe -- maybe as part of the context. An additional benefit is that we can use them to compute variants and replace the hacky regex-approach taken in conda-build to find "used variants" with something explicit. I need to find the right place(s) to do this. There is also the script_env key which we could use for this purpose.

Everything looks good to me. The keyword put doesn't feel right, but I couldn't think of a better name other than then.

To skip certain steps, we will use

I don't understand this part.

(this should also work for list, e.g.

- if: linux
  put:
  	- xtensor
  	- xsimd
  	- ...
  	```

 How would this work if we need a list of lists?

@mariusvniekerk  just pointed out that the documentation currently cuts off in a slighly awkward place when talking about defined "env" variables.
I think boa is currenty missing some Jinja vars like:

PYTHON
R
...

we should make a list and figure out which are absolutely needed and add them to the context.

I think all the env vars here are also accepted as jinja vars

That's a backward incompatible change that'll be hard to debug if it was changed.


Version supportability

Can you please clarify which versions are supported? There are two seemingly conflicting statements on this page:

Prerequisites ... Python 3.4+.

The Python SDK for Data Factory supports Python 2.7, 3.3, 3.4, 3.5, 3.6 and 3.7.

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

ID: 06b12410-3d72-8cc9-be6c-3b8e8521b90d
Version Independent ID: 9ef477fb-8321-4763-d340-0fee977f4beb
Content: Quickstart: Create an Azure Data Factory using Python - Azure Data Factory
Content Source: articles/data-factory/quickstart-create-data-factory-python.md
Service: data-factory
GitHub Login: @djpmsft
Microsoft Alias: daperlov

@VitalyMCT  Thank you for reaching out. At this time we are reviewing the ask and will provide an update as appropriate

@VitalyMCT : Thanks for the ask ,we are reaching out to the internal team to get help on the ask . I will update once I hear from them .

@VitalyMCT After verifying with internal sources it is recommended to use Python 2.7 or 3.5.3+. For more info, please refer to https://github.com/Azure/azure-sdk-for-python
I am still engaging with Internal team to make necessary updates to the doc to reflect correct information.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply and reopen the issue. We will gladly continue the discussion.
Thank you.


Update documentation where ASA is refered as alpha

Here's one place from Docs where ASA is referenced as alpha: https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/supported-languages-environments#supported-azure-compute-services-host

completed via https://github.com/MicrosoftDocs/azure-dev-docs-pr/pull/4682


Dropdown from Bootstrap 5.3.0 alpha1 is not allowing href to redirect

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
This is my code:

      Payment type

When I click to the Payment type, the page is not redirected to /payment-type.
Reduced test cases
You can navigate to https://getbootstrap.com/docs/5.3/components/dropdowns/, get and test and try to add a link. Notice your link is not redirecting, even a simple /#, like in the examples.
What operating system(s) are you seeing the problem on?
macOS
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
v5.3.0-alpha1

For sure @julien-deramond, I'm going to provide one in few minutes...

@julien-deramond, I found a weird behavior. Seems related when running Bootstrap + Vite (latest version). I was not able to reproduce in environments like CodePen and StackBlitz, but I have the full steps for how to reproduce in Vite world.
Let's go to the steps to create a minimal example to reproduce the problem.

Create a Vite application (TypeScript template):

npm create vite@latest my-app -- --template react-ts

Open the existing file src/App.tsx and replace its entire existing content as following:

import './App.css'
[my-app.zip](https://github.com/twbs/bootstrap/files/10768101/my-app.zip)

function App() {
  return (

            <button
              className="btn nav-link text-success"
              role="button"
              data-bs-toggle="dropdown"
              aria-expanded="false"
            >

              Settings

Google

            </button>

  )
}

export default App

Replace the entire HTML file index.html as following:

<!DOCTYPE html>

    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <link
<EMAIL_ADDRESS>      rel="stylesheet"
    />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + React + TS</title>


Nonce validation failure when password reset link is opened in a separate browser

Describe the issue:
Unable to login just after the password reset, if the link is opened in a separate browser
How to reproduce:

In browser A, try to access an application
At login page, follow the forgot password flow and provide the username
When received the reset link, open that in a different browser (browser B)
Enter new password and complete the password reset
When redirected to login page after the password is reset, enter the new credentials
You'll get an error saying suspicious login

Expected behavior:
Login successfully to the application
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: 5.12.0-m7
OS: Any
Database: Any
Userstore: Any

This can be reproduced in WSO2 Identity Server 5.11.0 even in the self registration scenario. Furthermore, [1] is related to this.
[1] - https://github.com/wso2/product-is/issues/11474

This issue can be resolved by adding the access URL within the service provider. For example, you can add https://localhost:9443/myaccount as the access URL in the my-account service provider. However to edit service providers that are added by default you need to add the following config.
[system_applications]
read_only_apps = []


BH: SFPMAD supports inverting sign of op A and op C

Utilizing this saves insns for inverting operands for subtract and mul by negative

migrated to top level repo


Compile fails if destination file directory doesn't exist

For example if I have this in my json file:
{
  "compile": {
    "css": {
      "build/styles.min.css": [
        "src/scss/styles.scss"
      ]
    },
    "js": {
      "build/scripts.min.js": [
        "src/js/*.js"
      ]
    }
  },
  "dependencies": {
    "nextapps-de/winbox": "0.2.82"
  },
  "settings": {
    "fec": {
      "scss-import-path": "gpm_modules"
    },
    "gpm": {
      "ext": ["js", "css", "scss"]
    }
  }
}

and the build directory doesn't exist, compiling throws a Failed to open stream: No such file or directory error.

Fixed https://github.com/itsahappymedium/fec/commit/94f5f82495ca2fa4b9ab6ebc88aef2adc7b6a96e


Moving an element or parent element to another part of the DOM breaks the listener.

I have used the library with good results :) On the site that I am developing though the elements get rearranged when the browser width is made smaller. This is achieved with jQuery append without detaching the DOM element which leaves for example click event listeners in place. This makes resizes of the element no longer fire any events. :(
Is there any work around or fix for this? Should I reinitialize the resize listener?
Reproduction:
http://jsfiddle.net/a3gmxmmk/2/
Browser: Windows 7 Chrome

Closing this issue due to inactivity, feel free to re-open with more recent steps to reproduce if this is still an issue! 🛑


fix: cookie consent translations

Description :sparkles:
Issues :bug:
Closes :no_good_woman:
DEV-XXX:
Related :handshake:
Testing :alembic:
Automated tests :gear:
Manual testing :construction_worker_man:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #260 (d249fec) into master (9ee5d9d) will decrease coverage by 0.53%.
The diff coverage is 32.00%.

@@            Coverage Diff             @@
##           master     #260      +/-   ##
==========================================
- Coverage   82.02%   81.49%   -0.53%
==========================================
  Files         115      116       +1
  Lines        2392     2416      +24
  Branches      817      821       +4
==========================================
+ Hits         1962     1969       +7
- Misses        424      440      +16
- Partials        6        7       +1

Impacted Files
Coverage Δ

src/domain/cookieConsent/CookieConsent.tsx
0.00% <0.00%> (ø)

src/domain/matomo/Matomo.tsx
80.00% <88.88%> (+3.52%)
:arrow_up:

src/headless-cms/components/CmsArticle.tsx
0.00% <0.00%> (ø)

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


:path fails to match routes with model binding

Hi, I'm experiencing an issue related to endpoint's routes, let me explain with a basic example:
Assuming the route:
[HttpGet("/something/myResource/{identifierNumber}")] public string GetClient([FromRoute] ClientRequest request)
Where ClientRequest class is:
    public class Client
    {
        public int IdentifierNumber { get; set; }
    }

If you use any other client than swagger UI to make the request call, it will work correctly, but from swagger UI it will fail to bind the parameters in the :path header showing something like:

Looks like something is wrong between Swashbuckle and model binder with different casing conventions, as workaround I can replace {identifierNumber} by {IdentifierNumber} but this smells like a bug for me.
If you reproduce this case you will be able to see the issue.
My Swashbuckle version: latest
Working with Net5

If it helps, here is my example controller class:
	[Route("api/user-summary")]
	[ApiController]
	public class UserSummaryController : ControllerBase {

		[HttpGet("{Agency}/{FirstName}", Name = "GetSummary")]
		public SummaryResponse Get([FromRoute] SummaryRequest request) {
			// do work with request object
			return new SummaryResponse {
				Agency = request.Agency,
				FirstName = request.FirstName
			};
		}

		public class SummaryRequest {

			[FromRoute]
			public string Agency { get; set; }

			[FromRoute]
			[RegularExpression(@"^.{1,40}$", ErrorMessage = "Characters not allowed.")]
			public string FirstName { get; set; }

		}

		public class SummaryResponse {

			public string? Agency { get; set; }

			public string? FirstName { get; set; }

			// other properties

		}

	}

No news regarding the issue is stills there.

The problem here is the difference in casing between the property name (IdentifierNumber from @gpgpublickey's example) and the corresponding route parameter in the route template ({identifierNumber}). So, to quickly resolve you can use the uppercase name in the route template OR force Swashbuckle to use pascal casing for all parameter names with the DescribeAllParametersInCamelCase() config setting.


simutrans: 120.2.2 -> 120.4.1

Motivation for this change
Fix broken build.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Build works, but I get the following error when I try to run simutrans:
Error: Cannot open 'font/prop.fnt'
Error: Cannot open 'font/prop.fnt'
No fonts found!Error: No fonts found!

Strange. For me,it does start, even if I use a pure nix-shell. Can you start it with simutrans -debug 3 and post the entire output? Do you have Nix or NixOS? Which version?

nix-info -m:

system: "x86_64-linux"
host os: Linux 5.4.25, NixOS, 20.03beta687.16dd1df0817 (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.2
channels(pschuprikov): ""
channels(root): "nixos-20.03beta687.16dd1df0817, nixos-stable-19.09.2284.bf7c0f0461e, nixos-unstable-20.09pre217537.d96bd3394b7"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

simutrans -debug 5 doesn't get much more talkative:
Use work dir /nix/store/1vic2mmap93ahpmq5h957ddi3abwjmi1-simutrans-120.4.1/bin/
Reading low level config data ...
Simutrans version 120.4.1 from Sep 23 2018
SDL_driver=x11, hw_available=0, video_mem=0, blit_sw=0, bpp=32, bytes=4
Screen Flags: requested=10, actual=10
dr_os_open(SDL): SDL realized screen size width=704, height=560 (requested w=704, h=560)
Error: Cannot open 'font/prop.fnt'
Error: Cannot open 'font/prop.fnt'
No fonts found!Error: No fonts found!

Running simutrans from /nix/store/1vic2mmap93ahpmq5h957ddi3abwjmi1-simutrans-120.4.1/share/simutrans with the -use_workdir does not give that error.

This is getting confusing. I removed my ~/.simutrans directory, but running result/bin/simutrans still works for me.
The startup script always sets use_workdir, so I do not understand why the work directory is /nix/store/1vic2mmap93ahpmq5h957ddi3abwjmi1-simutrans-120.4.1/bin/ in your log.
Can you post the content of /nix/store/rhfdrmv5z8w1gy7dzwbpmqwx14yg6p74-simutrans-120.4.1/bin/simutrans? What hapens if you run that? How are you building simutrans? nix-build . -A simutrans ?

The startup script always sets use_workdir

Thanks! It made me check what nixpkgs-review did. Turns out it has't included simultrans into the nix-shell. Everything works runs just fine now, thanks for the build fix!


A soft render need

We have some unit test need access render backend, these tests were not support run in CI, also not include in test code coverage report.
And we also need a soft render to support platform not have a gpu.

CI should work with wgpu https://github.com/gfx-rs/wgpu/pull/1365


Feat export all schemas in index

Description
This generates an index file in ./generated/schemas that exports all schemas
References
Closes #52
Closes #37

@omar-dulaimi Could you review and tell me if I need to change something?

Hey @Feelixe-tin
Yes of course, I will. In the meantime just make sure to test your changes inside a working project like Nextjs or something else, so we could eliminate any possible circular references.

I have tested in my nuxt3 project it and works well.

Thank you, I will look into it.
Also, do you think it makes more sense to have one index file per folder instead?
So one in /schemas, ´/schemas/enums´, schemas/objects instead of just the one in schemas/

Thank you, I will look into it. Also, do you think it makes more sense to have one index file per folder instead? So one in /schemas, ´/schemas/enums´, schemas/objects instead of just the one in schemas/

Yeah, of course. Just as long as you don't face any circular references issues when you import it in your project

Released in https://github.com/omar-dulaimi/prisma-zod-generator/releases/tag/0.8.6
Thanks @Feelixe-tin