Clean up ddev release process

Describe the bug
Our releasing process isn't what we'd like it to be. It's much harder than ever before, mostly due to incomplete homebrew process and incomplete choco process.

Fix docs for trigger_release.sh so they reflect actual usage
Automate the homebrew bottle creation process. It's possible that goreleaser (which has automatic homebrew built in) could do more of the process for us.
Fix choco push process so it can be done automated, or at least documented correctly.

First major step, automatically building the homebrew bottles, went in with #1524.
Docs for trigger_release.sh have also been updated.
Now:

Better docs (or technique) for pushing to chocolatey
Automatic update of homebrew? Or at least PR creation?
Automatic push to AUR? @cweagans  ?

@rfay automated AUR push would be awesome. I'm not going to be able to do that for a while, but I can help with info/access in the mean time. I'll put this on my todo list for 1-2 months from now.

This is good enough for now.


Convert send_wire_message_actor to xtra::Actor

This will give us a generalized Sink interface for writing to the
connection.

I just finished looking at it in my local checkout, and was just about to post "approve", but couldn't find the PR anymore :D thanks for fixing this!


nghttp3: 0.6.0 -> 0.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/nghttp3/versions.
meta.description for nghttp3 is: "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C."
meta.homepage for nghttp3 is: "https://github.com/ngtcp2/nghttp3"
meta.changelog for nghttp3 is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.7.0 with grep in /nix/store/xk8r88v0rnh5w51mq8yzlslm2h0fzpyv-nghttp3-0.7.0
found 0.7.0 in filename of file in /nix/store/xk8r88v0rnh5w51mq8yzlslm2h0fzpyv-nghttp3-0.7.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
curlHTTP3
nghttp3
ngtcp2

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xk8r88v0rnh5w51mq8yzlslm2h0fzpyv-nghttp3-0.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A nghttp3 https://github.com/r-ryantm/nixpkgs/archive/1cf70d770d189ff13248d8e99fed6c561139de24.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xk8r88v0rnh5w51mq8yzlslm2h0fzpyv-nghttp3-0.7.0
ls -la /nix/store/xk8r88v0rnh5w51mq8yzlslm2h0fzpyv-nghttp3-0.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

curlHTTP3

2 packages built:

nghttp3
ngtcp2

Maintainer pings
cc @Izorkin for testing.

Needed update ngtcp2 and curl:
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index 90372cc97a2..b18d9a645ea 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -7,13 +7,13 @@

 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "0.7.0";
+  version = "0.8.1";

   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-REAN5TW0miWXI3HFxtW3znTKTrhsBbNqu1VfjC2w0no=";
+    sha256 = "sha256-Sn03nY80UmL5oeoK6ScPye1oSUmEKxgoz2VLHcvor3U=";
   };

   outputs = [ "out" "dev" "doc" ];

Can you open a PR with that?

@SuperSandro2000 created PR - github.com/NixOS/nixpkgs/pull/189757

curlHTTP3 does not compile with this bump.

@SuperSandro2000 needed curl 7.85.


Problem parsing large messages (i.e. 1MB)

Version of protoc (protoc --version)
3.0
Version of ProtocolBuffers.framework
ProtoBuf3.0-Swift3.0 branch (but most likely all the branches)
.proto file to reproduce
message Data {
    uint64              offset              = 1;
    bool                last                = 2;
    bytes               data                = 3;
}

Description
If this input.read is not able to read the full rSize of the message but only a subset, the function still returns a message with only the partial data.
At a minimum, this should give an error or a way for users to detect the issue, at best, a mechanism to progressively build the message (in multiple reads) should be provided.
Let me know I am completely off here or if more details are needed.

I need some details about this. How do you use this method? Do you have UnitTest or example?

I will try to give you more details or spend time building a UT for it.
In the meantime, understand that the problem is very localized to the input.read call I am referring to.
Since you do not check/use the return value (the actual number of bytes read or 0 (EOF) or -1 (error)), you basically assume input.read will always successfully read the full "maxLength" number of bytes. That is not always the case as explained in the InputStream.read() doc.

Can you try last version of protobuf-swift repository?

Thanks for bring the codebase up to speed with Swift 3.0, I've already moved to it.
I haven't yet tried with large messages, I will soon, but I don't see how anything  could be different, since the return value of inputStream.read() is still not being checked.

You talk about "length-delimited encoding/decoding"... If your file/stream has a correct format, then all will be ok. Please look test case:
    func testDelimitedEncodingEncoding()
    {
         do {
            let str =  (NSBundle(forClass:TestUtilities.self).resourcePath! as NSString).stringByAppendingPathComponent("delimitedFile.dat")
            let stream = NSOutputStream(toFileAtPath: str, append: false)
            stream?.open()
            for i in 1...100 {
                let mes = try PBProtoPoint.Builder().setLatitude(1.0).setLongitude(Float(i)).build()
                try mes.writeDelimitedToOutputStream(stream!)
            }
            stream?.close()

            let input = NSInputStream(fileAtPath: str)
            input?.open()
            let message = try PBProtoPoint.parseArrayDelimitedFromInputStream(input!)
            XCTAssertTrue(message[1].longitude == 2.0, "")
        }
        catch
        {
            XCTFail("Fail testDelimitedEncodingEncoding")
        }
    }

I compare return value with "!= 1", then return nil(== Invalid ProtocolBuffers stream) value.

Alex,
Maybe my understanding is still off, but I do think there is a clear problem here. I think your test is only succeeding because your file-based InputStream is able to keep up and always read the "maxLength" requested fully...
Let me try to describe it better.
I have a very simple "Data" message (simplified here):
message DataMessage {
    bytes               data                = 1;
}

The code I use to read/receive this message is like this:
	func processMessage() {
		do {
			if let msg = try DataMessage.parseDelimitedFrom(inputStream: inputStream!) {
				onMessage?(msg)
			}
			print("No more message for now")
		} catch {
			print("Parsing error: \(error)")
		}
	}

Important: My InputStream is a TCP connection here (Not a filesystem-based IO)
When the message/data size is relatively small (1K to 30K), things work just fine....
When the size gets bigger, here is what happens,

A Message is still produced by parseDelimitedFrom but the data is clearly not fully there.

If I modify your AbstractMessage.mergeDelimitedFrom() function like this:

    //Delimited Encoding/Decoding
    public func mergeDelimitedFrom(inputStream: InputStream) throws -> Self? {
        var firstByte:UInt8 = 0
        if inputStream.read(&firstByte, maxLength: 1) != 1 {
            return nil
        }
        let rSize = try CodedInputStream.readRawVarint32(firstByte: firstByte, inputStream: inputStream)
        let data  = Data(bytes: [0],count: Int(rSize))
        let pointer = UnsafeMutablePointer<UInt8>((data as NSData).bytes)

	// Original
	// inputStream.read(pointer, maxLength: Int(rSize))

        // Now just printing the return value if different then rSize
	let actuallyReadSize = inputStream.read(pointer, maxLength: Int(rSize))

	if (actuallyReadSize != Int(rSize)) {
		print("DANGER: actuallyReadSize(\(actuallyReadSize)) != rSize(\(rSize))")
	}
        return try mergeFrom(data: data)
    }

I do see the following printout:
DANGER: actuallyReadSize(400729) != rSize(1048594)

Subsequent message parsing is screwed up as the current inputStream is still receiving data from the previous message.....

Yes, clearly from this, you do the proper checking "!= 1" for the "firstByte" reading. No issue with that.
The problem is that you do no such check on the second inputStream.read() and there is no guarantee that the full data can be read (in one shot)..... My understanding is that InputStream.read() is a non-blocking call that will only return what it has read (up to maxLength).
Let me know if this makes it clearer or if I am still missing something. I will see how I can come up with a solution, but I don't know your codebase too well, so it may take some time.
Cheers. G.

@alexeyxo could you just confirm to me that you too consider this as a bug?

FYI, I still "know" that there is a bug here, but for now, instead of decoding the message directly from the socket InputStream, I first make sure I read all the data for the message (into a Data buffer) and only then use CodedInputStream....

Hi @gegles
How can you read data into Data buffer?
Kind regards,

I had tried something like
`let rawInput:NSInputStream = NSInputStream(data: dataResponse)
rawInput.open()
        var buffer = [UInt8](count: dataResponse.length, repeatedValue: 0)

        while rawInput.hasBytesAvailable {
            let len = rawInput.read(&buffer, maxLength: buffer.count)
            if len > 0 {
                let outData = NSData(bytes: &buffer, length: buffer.count)
                let codedInputStream = CodedInputStream(data: outData)

                let lengthRaw = try codedInputStream.readRawVarint32()
                let lengthThrough = try codedInputStream.pushLimit(lengthRaw)
                protobufMessage = try Com.Celertech.Baseserver.Communication.Protobuf.ProtobufMessage.parseFromCodedInputStream(codedInputStream)
                codedInputStream.popLimit(lengthThrough)
            }
        }`

But still like it doesn't work. The protobufMessage sill be nil
Do you have any idea?
Cheers.


Docker images referenced in kubernetes .yaml files are well out of date

The docker images referenced in make/kubernetes/ui-rc.yaml are not at all up-to-date on Docker Hub.  Docker Hub shows the last push as 8 months ago, and there have been significant changes to the UI code base since that time.
Optimally, the image would also be tagged with a release version, such that latest would be available and coupled with the most recent release, but downstream users would be able to compare their version to issues and code listed in GitHub.

There is an ongoing PR #1270 to fix it.

Fixed.


ISPN-7126 InfinispanIndexManager hangs under load

https://issues.jboss.org/browse/ISPN-7126
Reproducer only.
This test hangs on master and eventually times out, but works as expected before https://github.com/infinispan/infinispan/commit/ad0b1cc84778074769adf9312042fad74169bf2d

@gustavonalle Ok, looks like the problem is that the QueryInterceptor.visitPutKeyValueCommand thenAccept lambda does a blocking Cache.putIfAbsent (indirectly).
Before ISPN-5469, this would block a remote-executor thread. After ISPN-5469, this would block the OOB thread that received the response from the primary owner. That means we need less remote-executor threads, but we need more OOB threads. I only tested with 10 threads, but that got rid of the deadlock for me.
Bela and Pedro have been discussing merging the JGroups (ex-OOB) and remote-executor thread pools with JGroups 4.0 anyway, so I think just increasing the OOB thread pool size is acceptable for now. Ideally though, indexing would also be asynchronous and return a CompletableFuture.

@danberindei Thanks. I tried it yesterday and it solved for me as well. I was in doubt if that was the expected behaviour after 5469 and a bit reluctant to increase the OOB thread pool, but will do that for now.

@danberindei wrt index being asynchronous, I will see if the putIfAbsent during lucene lock acquiring can be asynchronous, this would avoid blocking in the OOB altogether (will block somewhere else)

@gustavonalle One step at a time :)


Unit Test: docker::v2::storage::blobs::tests::test_get_space_available failed

Details:
running 1 test
[2022-05-02T21:31:07Z INFO  pyrsia::artifacts_repository::artifact_manager] Creating directory /private/var/folders/cr/h8bkj2yx251f97xgspz80cq40000gp/T/privaterPM8iS/PyrsiaTest/SHA256
[2022-05-02T21:31:07Z INFO  pyrsia::artifacts_repository::artifact_manager] Creating directory /private/var/folders/cr/h8bkj2yx251f97xgspz80cq40000gp/T/privaterPM8iS/PyrsiaTest/SHA512
[2022-05-02T21:31:07Z INFO  pyrsia::artifacts_repository::artifact_manager] Creating an ArtifactManager with a repository in /private/var/folders/cr/h8bkj2yx251f97xgspz80cq40000gp/T/privaterPM8iS/PyrsiaTest
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ValueIncorrect(NotNumber('p'))', src/node_manager/handlers.rs:142:10
stack backtrace:
   0: rust_begin_unwind
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:143:14
   2: core::result::unwrap_failed
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/result.rs:1749:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/result.rs:1065:23
   4: pyrsia::node_manager::handlers::get_space_available
             at /Users/xuefeihan/project/rust/fishseabowl/pyrsia/src/node_manager/handlers.rs:141:37
   5: pyrsia::docker::v2::storage::blobs::tests::test_get_space_available::child::{{closure}}
             at /Users/xuefeihan/project/rust/fishseabowl/pyrsia/src/docker/v2/storage/blobs.rs:125:13
   6: pyrsia::docker::v2::storage::blobs::tests::test_get_space_available::child
             at /Users/xuefeihan/project/rust/fishseabowl/pyrsia/src/docker/v2/storage/blobs.rs:118:5
   7: core::ops::function::FnOnce::call_once
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
   8: rusty_fork::fork::fork::{{closure}}
             at /Users/xuefeihan/.cargo/registry/src/github.com-1ecc6299db9ec823/rusty-fork-0.3.0/src/fork.rs:107:23
   9: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:280:13
  10: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panic/unwind_safe.rs:271:9
  11: std::panicking::try::do_call
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:492:40
  12: ___rust_try
  13: std::panicking::try
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:456:19
  14: std::panic::catch_unwind
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panic.rs:137:14
  15: rusty_fork::fork::fork_impl
             at /Users/xuefeihan/.cargo/registry/src/github.com-1ecc6299db9ec823/rusty-fork-0.3.0/src/fork.rs:117:15
  16: rusty_fork::fork::fork
             at /Users/xuefeihan/.cargo/registry/src/github.com-1ecc6299db9ec823/rusty-fork-0.3.0/src/fork.rs:103:5
  17: pyrsia::docker::v2::storage::blobs::tests::test_get_space_available
             at /Users/xuefeihan/project/rust/fishseabowl/pyrsia/src/docker/v2/storage/blobs.rs:118:5
  18: pyrsia::docker::v2::storage::blobs::tests::test_get_space_available::{{closure}}
             at /Users/xuefeihan/project/rust/fishseabowl/pyrsia/src/docker/v2/storage/blobs.rs:118:5
  19: core::ops::function::FnOnce::call_once
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
  20: core::ops::function::FnOnce::call_once
             at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test docker::v2::storage::blobs::tests::test_get_space_available ... FAILED

failures:

failures:
    docker::v2::storage::blobs::tests::test_get_space_available

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 50 filtered out; finished in 0.10s

Unit Test: node_manager::handlers::tests::test_disk_usage also fails. I guess there is the same root cause:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ValueIncorrect(NotNumber('p'))', src/node_manager/handlers.rs:155:10

This hasn't failed in a long time. Can we close this @fishseabowl ?


Fixes for my-tickets view and public ticket view

We didn't set the secret key in the urls in the my_tickets view so it wasn't possible to actually comment on tickets visited from this view.

You have to merge the other two PRs I submitted before this one...

@tecbr Fixed I hope.

@timthelion - if you want to release the webhooks enhancement and the my tickets bugfix asa new release then please raise a PR with the the "version" parameter changed to 1.2.0 in setup.py


Programmed  in the print column does not display

What happened:

https://github.com/kubernetes-sigs/gateway-api/pull/1602 introduced the Programmed for the print column, but it does not work as:

$ kubectl  get gateways.gateway.networking.k8s.io  -n istio-system
NAME                    CLASS   ADDRESS                                                PROGRAMMED   AGE
knative-gateway         istio   istio-ingressgateway.istio-system.svc.cluster.local                 143m

What you expected to happen:

PROGRAMMED is trying to display the status of status.listeners.attachedRoutes[*].conditions.programmed but I wonder it is not possible.

How to reproduce it (as minimally and precisely as possible):

Just deploy Gateway API.

Test env

GATEWAY_API_VERSION="v0.6.0"
Istio 1.18-alpha.c197f978388c1d049584140df1944ca7d2f349e0

Anything else we need to know?:

The root cause seems that level of Programmed is wrong.
The current CRD has .status.conditions[?(@.type=="Programmed")].status but the Programmed field is under status.listeners.attachedRoutes[*].conditions.

out of gateway yaml with status to check for time saving
$ kubectl  get gateways.gateway.networking.k8s.io  -n istio-system  knative-gateway -o yaml
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"gateway.networking.k8s.io/v1beta1","kind":"Gateway","metadata":{"annotations":{},"name":"knative-gateway","namespace":"istio-system"},"spec":{"addresses":[{"type":"Hostname","value":"istio-ingressgateway"}],"gatewayClassName":"istio","listeners":[{"allowedRoutes":{"namespaces":{"from":"All"}},"name":"default","port":80,"protocol":"HTTP"}]}}
  creationTimestamp: "2023-02-08T04:20:24Z"
  generation: 3
  name: knative-gateway
  namespace: istio-system
  resourceVersion: "34759"
  uid: ce45475c-448b-4b4e-b49d-7968fb5a10e1
spec:
  addresses:
  - type: Hostname
    value: istio-ingressgateway
  gatewayClassName: istio
  listeners:
  - allowedRoutes:
      namespaces:
        from: All
    name: default
    port: 80
    protocol: HTTP
status:
  addresses:
  - type: Hostname
    value: istio-ingressgateway.istio-system.svc.cluster.local
  conditions:
  - lastTransitionTime: "2023-02-08T06:40:08Z"
    message: Resources available
    observedGeneration: 3
    reason: Accepted
    status: "True"
    type: Accepted
  - lastTransitionTime: "2023-02-08T06:40:08Z"
    message: Gateway valid, assigned to service(s) istio-ingressgateway.istio-system.svc.cluster.local:80
    observedGeneration: 3
    reason: ListenersValid
    status: "True"
    type: Ready
  - lastTransitionTime: "2023-02-08T06:40:08Z"
    message: Resources available
    observedGeneration: 3
    reason: ResourcesAvailable
    status: "True"
    type: Scheduled
  listeners:
  - attachedRoutes: 1
    conditions:
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: NoConflicts
      status: "False"
      type: Conflicted
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: Attached
      status: "False"
      type: Detached
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: Programmed
      status: "True"
      type: Programmed
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: Ready
      status: "True"
      type: Ready
    - lastTransitionTime: "2023-02-08T06:40:08Z"
      message: No errors found
      observedGeneration: 3
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    name: default
    supportedKinds:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute

@nak3 Programmed is a new condition for Gateway a/o v0.6.0 -- see https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2Fv1beta1.GatewayConditionType and https://gateway-api.sigs.k8s.io/geps/gep-1364 for more background. Perhaps it's possible that the version of Istio you're using isn't populating this new Condition type yet?

Thank you! Yes, you are correct. Istio seems not implement the status yet.
Then, I thought Programmed should have the default status rather than empty - and it started the PR https://github.com/kubernetes-sigs/gateway-api/pull/1701 :sweat_smile:
I'm closing here.

Oh, you are correct. It seems no conformance tests. Opened https://github.com/kubernetes-sigs/gateway-api/issues/1722

Istio does implement it under status.listeners.attachedRoutes[*].conditions as mentioned, are we actually supposed to put it under .status.conditions[?(@.type=="Programmed")].status as well?

are we actually supposed to put it under .status.conditions[?(@.type=="Programmed")].status as well?

Yes, this is a condition that we expect to be set on Gateways and Listeners, clearly our conformance tests have a pretty big gap since they're missing this. Thanks to @nak3 for filing issues to track this!


/bin/sh: 1: ameba: not found

After installing the extension this warning appeared /bin/sh: 1: ameba: not found. I'm using ameba as a dependency of my project.
Crystal 0.34.0 [4401e90f0] (2020-04-06)

LLVM: 8.0.0
Default target: x86_64-unknown-linux-gnu

Shards 0.10.0 [4091ac5] (2020-04-06)

Running sudo cp ./bin/ameba /usr/bin from my project dir did the trick

Yeah, so right now to let it work you need to install Ameba binary first which is available globally.
But yeah, the plugin should check <project_root>/bin/ameba first and afterward try to execute a global binary.

Any chance to let this be a config?

This issue is closed, but it's still not ideal - if you have some Crystal project with ameba and some projects without ameba (in dependencies), you just don't want to run ameba binary at all in the projects without ameba dependency. So the warning "/bin/sh: 1: ameba: not found" is very annoying (after each file save operation) in vscode for that projects without ameba support. Note: best solution for me is to uninstall ameba vscode plugin completely (for now) :(

Should be closed by https://github.com/crystal-ameba/vscode-crystal-ameba/issues/12


no ssvm mapping for bindgen

Looking at one of your articles, I am running into issues with the first bit of sample.
maximilian@💻:~/repos/second-state$ yarn ssvmup build
yarn run v1.22.4
$ /home/maximilian/repos/second-state/node_modules/.bin/ssvmup build
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
    Finished release [optimized] target(s) in 0.07s
:-) [WARN]: origin crate has no README
[INFO]: Installing wasm-bindgen...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ErrorMessage { msg: "no ssvm mapping for bindgen 0.2.65" }', src/install/mod.rs:149:20

The sample didn't have any examples of Cargo.toml, so through some trial and error, I've used the latest wasm-bindgen version.
[dependencies]
wasm-bindgen = "0.2.65"

[lib]
crate-type = ["cdylib", "rlib"]

Lastly, the error report:
name = 'ssvmup'
operating_system = 'unix:Ubuntu'
crate_version = '0.1.11'
explanation = '''
Panic occurred in file 'src/install/mod.rs' at line 149
'''
method = 'Panic'
backtrace = '''
   0:     0x56133faa4387 - backtrace::backtrace::trace::h79139ee5ae83da42
   1:     0x56133faa2263 - backtrace::capture::Backtrace::new::h31ca4dd762c8d675
   2:     0x56133f9f3019 - human_panic::report::Report::new::hd0cfc07ee016080c
   3:     0x56133f9f283b - human_panic::handle_dump::haa417dfa47d59a1f
   4:     0x56133f6fdd4c - ssvmup::setup_panic_hooks::{{closure}}::h714a1c417cc0903a
   5:     0x56133fad6c55 - std::panicking::rust_panic_with_hook::h1f2449d529a25f22
                               at src/libstd/panicking.rs:474
   6:     0x56133fad676b - rust_begin_unwind
                               at src/libstd/panicking.rs:378
   7:     0x56133fafb251 - core::panicking::panic_fmt::h2c05f81b567d1861
                               at src/libcore/panicking.rs:85
   8:     0x56133fafb053 - core::option::expect_none_failed::ha9782a6ef355446f
                               at src/libcore/option.rs:1211
   9:     0x56133f751e5f - ssvmup::install::download_prebuilt::h1bc678da6002c711
  10:     0x56133f750543 - ssvmup::install::download_prebuilt_or_cargo_install::h7bbf3aa5a5724474
  11:     0x56133f70e44c - ssvmup::command::build::Build::step_install_wasm_bindgen::h7025f176e071b36b
  12:     0x56133f70cf00 - ssvmup::command::build::Build::run::h8b1711bc4be9e55f
  13:     0x56133f708dc3 - ssvmup::command::run_ssvmup::hfc4a5d1a287f4849
  14:     0x56133f6fd99f - ssvmup::main::h235fcfb9e09737b7
  15:     0x56133f6fe373 - std::rt::lang_start::{{closure}}::h0019f8b6a3fb92ea
  16:     0x56133fad6643 - std::rt::lang_start_internal::{{closure}}::h9a4aa16acf1cdc99
                               at src/libstd/rt.rs:52
                           std::panicking::try::do_call::h0b6fc9f6090c1e2b
                               at src/libstd/panicking.rs:303
  17:     0x56133fae0e07 - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:86
  18:     0x56133fad716c - std::panicking::try::h9eaeeaa81242ec77
                               at src/libstd/panicking.rs:281
                           std::panic::catch_unwind::h07d504c1b691e8fb
                               at src/libstd/panic.rs:394
                           std::rt::lang_start_internal::hcea4e704875ab132
                               at src/libstd/rt.rs:51
  19:     0x56133f6fddf2 - main
  20:     0x7f26694590b3 - __libc_start_main
  21:     0x56133f6f75da - _start
  22:                0x0 - <unknown>
'''

I have found my issue from looking at the template project from a different article where it's pinned @ 0.2.61.  If the project follows semver, you may want to consider changing the pinning to ~0.2.0

Thank you for the feedback. Yes, I agree we should make it more robust -- or at least give better error messages.


Android build failed due to missing Gradle 2.2.0 dependencies

Recently, I started to run into Gradle not found issue on our Bitrise CI for our react-native app that uses react-native-material-kit:
A problem occurred configuring project ':react-native-material-kit'.
 Could not resolve all files for configuration ':react-native-material-kit:classpath'.
     Could not find com.android.tools.build:gradle:2.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.0/gradle-2.2.0.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.0/gradle-2.2.0.jar
     Required by:
         project :react-native-material-kit

According to this article: https://help.yoyogames.com/hc/en-us/articles/360020501832, over the last weekend, Google removed the version 2.2.0 of their gradle build tools from the standard repositories. It suggested to include a different maven repo: http://repo.spring.io/plugins-release/ so the dependent app can still build successfully.
Is it possible the maintainer can update the Android gradle setup so the master branch can still be used?
Related to this issue: https://issuetracker.google.com/issues/120759347#comment30, as for now 12/12, the gradle 2.2.0 is still missing from maven google and jcenter

I was able to solve it by following this thread: https://issuetracker.google.com/issues/120759347#comment85, closing this issue for now


Tab Icons not showing in 0.54.2

Version
Tell us which versions you are using:

react-native-router-flux v4.0.0-beta.28 (v3 is not supported)
react-native v0.54.2

Expected behaviour
Visible Icons
Actual behaviour
Not visible Icons

Add width and height style properties to the icon. See #2981.

@cjbutcher you rock, that was the trick.
Dupe of #2981


Issue #133: Exclude binaries for other platforms during build

Fix #133

Need to see if the tests pass, only the osx build works for me locally.
But... this should exclude all of the bundled php files for linux (didn't look like there was a linux specific binary), exclude the .exe and .dll for mac, and exclude the osx file for windows builds.

To test locally you may run npm run test.

npm run test does not run the various platform builds. It just runs the linter, which is fine. The travis and appveyor CI servers do appear to run platform builds, and it looks like each worked as expected if you inspect their output:
Appveyor:
npm run publish:win32
> @ publish:win32 C:\projects\php-assistant
> build --windows --ia32 --publish onTagOrDraft
CI detected, publish is set to onTagOrDraft, but neither GH_TOKEN nor BT_TOKEN is not set, so artifacts will be not published
Rebuilding app dependencies for arch ia32 to C:\projects\php-assistant\app
Packaging for platform win32 ia32 using electron 1.4.3 to dist\win-ia32-unpacked
Warning: For windows consider only distributing 64-bit, see https://github.com/electron-userland/electron-builder/issues/359#issuecomment-214851130
Building squirrel ia32 installer
Build success

Travis:
 npm run publish:$TRAVIS_OS_NAME
> @ publish:osx /Users/travis/build/rafajaques/php-assistant
> build --osx --publish onTagOrDraft
CI detected, publish is set to onTagOrDraft, but neither GH_TOKEN nor BT_TOKEN is not set, so artifacts will be not published
Rebuilding app dependencies for arch x64 to /Users/travis/build/rafajaques/php-assistant/app
Packaging for platform darwin x64 using electron 1.4.3 to dist/mac
Warning: App is not signed: CSC_LINK is not specified, and no valid identity in the keychain, see https://github.com/electron-userland/electron-builder/wiki/Code-Signing
Must be "Developer ID Application:" or custom non-Apple code signing certificate
Creating DMG
Creating MacOS zip

npm run publish:$TRAVIS_OS_NAME
> @ publish:linux /home/travis/build/rafajaques/php-assistant
> build --linux deb rpm freebsd pacman tar.xz --publish onTagOrDraft
CI detected, publish is set to onTagOrDraft, but neither GH_TOKEN nor BT_TOKEN is not set, so artifacts will be not published
Rebuilding app dependencies for arch x64 to /home/travis/build/rafajaques/php-assistant/app
Packaging for platform linux x64 using electron 1.4.3 to dist/linux-unpacked

Oh right. I thought you were talking about linter.
Never mind. The builds are ok.
Thanks.

I suspect those builds will never work properly on my machine since it's not windows and not linux.  I can build mac just fine locally, but that's it.  I did verify the build omitted the windows binaries though.


Don't rely on Hashie::Mash (compatibility with hashie 3.3.0)

Hashie 3.3.0 introduced incompatible changes to converting values in Hashie::Mash https://github.com/intridea/hashie/pull/197
I am not sure if this isn't a bug in Hashie, however here is a fix making grape work with Hashie 3.3.0.
Closes #736

I am still interested in this after #1680.

I believe this is fully addressed via https://github.com/ruby-grape/grape/pull/1594. Please reopen if you think otherwise.


Binding annotations should be preserved alongside Host assignment

Recap of related tangent in #2483 follows.
Use case:  I need to implement mesos task reconciliation in the kubernetes-mesos scheduler. If it crashes and then restarts, I want to be able to recover things like taskID, slaveID, offerID, etc. so as to rebuild the internal state of the scheduler. Once state is recovered, I can reconcile the against the tasks that the mesos master knows about.
If I can't use binding annotations for this, then I need to store state some other (super inconvenient) way. Currently the etcd registry assignPod() implementation drops binding annotations on the floor. It should not, and instead they should be preserved for later access.
Proposal: Store binding-related annotations in a new field: Pod.Status.Annotations

When setting Pod.Status.Host="{some-host-name}" via assignPod(), binding annotations are copied in from Binding
When cloning Pod.Status.Host in UpdatePod() (for an already-scheduled pod), the Pod.Status.Annotations are also cloned.

I don't think /bindings has to be a readable apiserver endpoint, as long as the binding metadata is exposed some other way, as proposed above.
I'd also like to propose that once binding annotations are "bound" to Pod.Status they become read-only. So they're essentially write-once, just like Pod.Status.Host is meant to be.
cc @smarterclayton @bgrant0607 @erictune
xref https://github.com/mesosphere/kubernetes-mesos/issues/73

There is one situation where we probably want to clear Host, actually: in the case that the pod can't actually be materialized on the selected node for some reason, such as #4135.

Any objection to a PR implementing my proposal? I'm happy to do the work.

You'll probably want to do it on top of #4248 (or after it lands) since that code path is changing significantly.

On Feb 12, 2015, at 12:18 AM, James DeFelice<EMAIL_ADDRESS>wrote:
Any objection to a PR implementing my proposal? I'm happy to do the work.
—
Reply to this email directly or view it on GitHub.

Though it is also represented in PodStatus, Host is properly a field in the PodSpec.
Status must be completely reconstructable based on observations. The proposed Pod.Status.Annotations would not be. Furthermore, I don't think we should introduce another annotations field to Pod. I'd prefer to add a podAnnotations field to Binding, and then merge them into the pod. As for clearing the annotations, I'd prefer to simply fail a pod that was rejected by a node so as not to have to deal with that.
Also note the discussion here re. moving binding to a pod subresource: https://github.com/GoogleCloudPlatform/kubernetes/issues/2726#issuecomment-73313472

See also #4375.


"Preview Mode" which shows ONLY target sentences

ll possibly help fix flow and readability of the sentences
To be implemented as a new mode for the /translate view

Resolved.


User tasks

Please consider adding the option of User tasks, so that these user tasks are saved in C:\Users\JMatos\AppData\Roaming\Code\User and not in the .vscode folder.
This would be helpful to create the option of syncing user tasks between several devices (from the same user). I use it to launch Python Help for example.

can i work on it ?
@alexr00

i started working on this issue.

Duplicate of #1435
This is a big change, and will require a significant amount of re-arranging of how tasks are currently grouped. See #1435 for all the history here.


All examples in the documentation fail to render.

Describe the bug
If you navigate to the example section in the documentation (for example), all the examples fail to render. Attempting to view the example on CodeSandbox external site also fails with a 404 error.
Provide an example via Codesandbox! (required)
Use a new react-table codesandbox to reproduce the issue.
Steps To Reproduce
Steps to reproduce the behavior:

Go to https://react-table.tanstack.com/docs/examples/basic'
See error

Screenshots

OS: Ubuntu 20.04
Browser Brave Browser (built on Chromium)
Version 1.14.81 Chromium: 85.0.4183.102 (Official Build) (64-bit)

This was an upstream issue with codesandbox.


By returning cursor.documents, instead of the plain cursor, there is a limit to how many documents can be returned

Source: https://github.com/erfanium/atlas_sdk/blob/b9ccb49a6593f2273e4317f4b51e165d516e6566/client.ts#L99-L115
I ran a find on a large collection and get 1000 documents back, even though I have more documents than that. This is because calling cursor.documents returns up to the batchSize in documents.
I think the API should instead return the plain cursor.

@vrachev You mean MongoDB applies some sort of limit on the find method?
We don't have such a thing named cursor in Atlas Data API. as far as i know, cursors and streaming is only available to drivers, not Data API

We don't have such a thing named cursor in Atlas Data API. as far as i know, cursors and streaming is only available to drivers

Sorry, you're right. I was looking at code from the x/mongo library which does use return a cursor.

@vrachev You mean MongoDB applies some sort of limit on the find method?

Might be a bug with the atlas data API then. When I run find() I get back 1000 documents, when I run aggregate() I get all ~1500 docs. Same (empty) predicate both times.

Might be a bug with the atlas data API then. When I run find() I get back 1000 documents, when I run aggregate() I get all ~1500 docs. Same (empty) predicate both times.

Interesting, i didn't saw anything about this behavior in official docs

closing this as we can't help about it


[BGVPK] Remove the photos app notification

Currently after download/install is finished the shell shows an "Added to Photos" toast which is a remainder of the download_enabler code. Look for a way to remove it without adding too many hooks.

will be fixed in next release


Commit .vscode workspace folder for common tasks

Seems like there are a couple of common tasks that everyone on the team does such as

Debugging the compiler
Debugging the language service
Debugging a specific test case

It'd be nice for people to just have that all set up.

This was done in #33758.
(I was looking for interesting infrastructure issues and noticed this one.)


proposal: x/exp/xiter: add Compare/CompareFunc{2}

Proposal Details
Proposed to add below functions:
func Compare[E cmp.Ordered](x, y Seq[E]) int

func Compare[E any](x, y Seq[E], cmp func(E, E) int) int

Same as seq2

Compare between two sequences seems to have quite a limited use. Because defining an order on a sequence can't be defined as a single implementation.
For example:
What would you do if the sequences have different sizes?
Would the order of a sequence compared to another sequence be its compare of each element? Then parts of it is ordered before and others after.
Another option is to sum the elements of the sequence and then compare the value. Or maybe it would first average the sequence and compare them on that.
But in that case you would see the sequence as a set and ignore its order.
So having a generic compare function between sequences is very application and type specific.

@borissmidt presumably this would be the equivalent of https://pkg.go.dev/slices#Compare but over sequences instead of slices.
Otherwise I agree that sequences, while sometimes as reliable as slices, are more general and there are a lot of new ways for the input to be unkind. To safely use these you'd need to know that both inputs were "nice".
I'm not really for or against these but it makes me uneasy, like the xiter.Equals* from the original proposal. I'm all for these going somewhere but maybe somewhere third party until they've proven to be generally useful without causing problems or confusion.


Code that compile but not in IDE

Hi,
Just to let you know even if I will investigate on my side.
When I give my script file to fsc the compilation is working but when I evaluate it with either VS or VS code I'm getting an error.
Repro steps
Create a new FSharp script file and paste
let inline equalsWithSameInput value f1 f2 = f1 value = f2 value

let equalsFromOneToTen = equalsWithSameInput [1.0 .. 10.]

Expected behavior
Working the same way as fsc does
Actual behavior
error FS0030: Value restriction. The value 'equalsFromOneToTen' has been inferred to have generic type
    val equalsFromOneToTen : ((float list -> '_a) -> (float list -> '_a) -> bool) when '_a : equality
Either make the arguments to 'equalsFromOneToTen' explicit or, if you do not intend for it to be generic, add a type annotation.

This is a case of the value restriction - please just either add explicit arguments to equalsFromOneToTen , or add type annotations to equalsFromOneToTen

Hi,
Thank you for your response but the compiler seems to handle it correctly so could you explain to me where does that limitation come from ? (fsi ?)


store.replaceReducer is not a function in middleware

Do you want to request a feature or report a bug?
Bug or feature
What is the current behavior?
When I access the store in the middleware and call replaceReducer I got this error
TypeError: store.replaceReducer is not a function

I can call replaceReducer at component level but not in a middleware
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar.
export const asyncReducerInjectorMiddleware = store => next => action => {
    store.asyncReducers = {}
    store.asyncReducers['myReducerName'] = asyncReducer;
    store.replaceReducer(createReducer(store.asyncReducers));
   next(action);
};

What is the expected behavior?
It should be able to call replaceReducer inside a middleware, or there is a reason why this is not working?
Thanks
Which versions of Redux, and which browser and OS are affected by this issue? Did this work in previous versions of Redux?
"redux": "^4.0.1"

From the API docs of applyMiddleware:

...middleware (arguments): Functions that conform to the Redux middleware API. Each middleware receives Store's dispatch and getState functions as named arguments, and returns a function.

So the middleware will not receive the entire store, and you probably wouldn't want to mutate the store and call replaceReducer inside a middleware anyway since that would run on every dispatch.
You could do this setup in your  configureStore function. If you really need it to be reusable you could do it in a store enhancer.

@mhelmer Thanks for the answer.
Unfortunately in my use case I need to access replaceReducer in the middleware.

you probably wouldn't want to mutate the store and call replaceReducer inside a middleware anyway since that would run on every dispatch

No, of course I will conditionally check, that was just an example.

Can we reconsider this? There are other user generated StoreEnhancers that make sense to be accessed via middleware that do not effect state. As it stands right now only dispatch and getState are available and that makes this very inflexible.
I get that you are trying to prevent the user from shooting themselves in the foot, but maybe pop a warning for dangerous built-ins when they are called instead?


MD056/table-column-count counts pipes inside backticks as column separators

The following table
| Word | Symbol | Meaning |
| ----- | ------ | -------- |
| `and` | `&&` | AND |
| `or` | `||` | OR |
| `xor` | `^^` | XOR |
| `not` | `!` | NOT |

will fail validation on content row 3 (actual row 4) with MD056/table-column-count Table column count [Expected: 3; Actual: 5; Too many cells, extra data will be missing].

This is correct per the GFM specification: pipe characters must be escaped in cell contents, even within an inline (like a code block). Example 200 and the comment above it call this out: https://github.github.com/gfm/#example-200

Oh, I see. Thanks! Now I know what to do to fix it.


Chore/comment cleanup

This project uses semver, please check the scope of this pr:

[x] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

Changes Unknown when pulling 7f2df5d795bc6770672454a3ede47f22c617c79e on chore/comment-cleanup into ** on master**.

Changes Unknown when pulling 93f76460c0ce253d16e4aa8a2f7383e6bddb968f on chore/comment-cleanup into ** on master**.

Changes Unknown when pulling 93f76460c0ce253d16e4aa8a2f7383e6bddb968f on chore/comment-cleanup into ** on master**.


CentralizedSamplingStrategy constructs a new recorder at each invocation when no service type in sampling request

When an AWSXRayRecorder is built without plugins and without explicitly setting the origin, CentralizedSamplingStrategy#shouldTrace will be called with a sampling request that doesn't have a service type. It has the following fallback:
https://github.com/aws/aws-xray-sdk-java/blob/9fb8e151ab77f75f7a4f2544c1e903365ea5b569/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java#L63-L65
Not only does the fallback construct a new recorder at each invocation, but it also ends up being wasted work because the result of defaultRecorder() won't have any plugins either.
I'd be happy to submit a fix, but don't know what would be your preferred approach:

Just remove the fallback since it isn't working anyway?
Make CentralizedSamplingStrategy or AWSXRayRecorderBuilder have a list of default plugins that will be queried for origin when the recorder doesn't have an origin? (Though it looks like only EC2Plugin could be on the list since ECSPlugin always "matches" and ElasticBeanstalkPlugin is too noisy when it doesn't.)
Something else?

@aapolait
Thanks for bringing this up! I'll do some digging to see if this ever worked and what the expected behavior should be.

Closing since this was released in version 2.2.x.


[Issue]Swift-Kuery-SQLite (Release 2.0.200) in Xcode

Context and Description
Swift-Kuery-SQLite (Release 2.0.200) in Xcode
Environment Details
macOS 10.15.6
Swift 5.2.4
Xcode 11.6

@diuming would you mind sharing more of the text of the logs?  Also can you share the dependencies you're specifying in Xcode?  I'm curious why there's a 2.0.201..<3.0.0 requirement there.  It should start from 2.0.200.

@dannys42
where can i find logs?
current added packages

add package Up to Next Major

add package Exact

add package Up to Next Minor

@diuming Thank for the additional info.  You are correct, it looks like the root cause was this line:
.package(url: "https://github.com/Kitura/Swift-Kuery.git", .branch("master")),

I've fixed it and it should hopefully be working for you now.

@dannys42 thanks for help.


Reply Message to the user with an attachement of docx file from GoogleDrive

Bot Info
*Bot Name : "Sample"

SDK Platform:  .NET
SDK Version: 3.9.1
Active Channels:  Skype
Deployment Environment:  Azure App Service

Issue Description
I have a few files in my Google Drive - docx and pdf files.  Upon request by the user, I want the Bot to send either a docx file or pdf file as an attachment. When I just provide the Google Drive link, it opens up a Browser to download the file. But I don't want that to happen. I want the user to be able to download the attachment right from the skype window itself.
I am able to send images and have them downloaded. But it is not working for pdf and docx files - I am setting the right content-type and content-url in the Attachment object.
Is there an elegant way to get this done ?
Expected Behavior
The Bot should be able to send me an attachment which I should be able to right click and save the file or I go to the folder where the attachment would have already got downloaded and pick the file from my local file system.
Actual Results
The bot just says quite and does not do anything when I send docx or pdf files.

Could you please add your bot name, and minimum reproducible code so we can check your bot and confirm if this is a bug or not?

Hi Jason, thank you for the response.  Name of the Bot is : "Sample"
If the Uri in the attachment is a image with appropriate Content-type it works else it gives the attachment as if we gave a link and when clicked on the thumbnail, it opens up the Browser to download. I don't want the user to switch between Apps (Skype and Browser and back) to download the file.
Here is the (quick messy)Code - tested with various content-types :
`
.....
if (possibleContentTypes.Count == 0)
{
possibleContentTypes.Add("image/jpeg");
possibleContentTypes.Add("application/vnd.google-apps.document");
possibleContentTypes.Add("application/octet-stream");
possibleContentTypes.Add("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
possibleContentTypes.Add("application/msword");
possibleContentTypes.Add("application/ms-word");
possibleContentTypes.Add("image/jpg");
//possibleContentTypes.Add("");
}
.....
private async static Task GetInternetAttachment(IDialogContext context, string contentType)
{
         //await context.PostAsync("cooking the attachment...");

        Attachment tempAttachment = new Attachment();
        tempAttachment.ContentType = contentType;
         tempAttachment.ContentUrl = "https://drive.google.com/file/u/1/d/xxxxxx/view?usp=drivesdk";
                    tempAttachment.Name = "test.docx";
        //await context.PostAsync("Inside the GetInternetAttachment and made the attachement object...about to return !!");
        return tempAttachment;

    }

private async Task SendAttachment2(IDialogContext context, string contentType)
{
bool isSuccess = true;
try
{
var mesgToUser = context.MakeMessage();
            Attachment attachmentToBeSent = await GetInternetAttachment(context, contentType);
            mesgToUser.Attachments.Add(attachmentToBeSent);
            await context.PostAsync(mesgToUser);
            context.Wait(MessageReceivedAsync);
        }
        catch (Exception e)
        {
            isSuccess = false;
        }
        return isSuccess;
    }

`

@JasonSowers  any help on this is appreciated. Thank you in advance for your time.

Have a same issue with Attachments. Hope this gets solved soon

@JasonSowers Same Issue here. are we able to send file attachments Yes Or no .If yes how.

Looking into this now, I'll get back to you for my findings.
I did find this specifying the correct MIME type, I learned something today 👍

The correct MIME type for DOCX is not application/msword but application/vnd.openxmlformats-officedocument.wordprocessingml.document.

After attempting to accomplish this in many different ways I was unable to produce the behavior you are looking for.  To download a file it does so through the browser.  That being said you may be able to implement a workaround using something like this or this by implementing another controller and calling it from where you need to send your file from.
After having a few conversations around the office, this is not a bug but is the intended way to send files to download.  We can log this as a feature request but cannot promise any timelines right now.
In my personal opinion the best way to implement this (from a UX perspective) with out of the box functionality was using a herocard with a download button
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
        {

            HeroCard h = new HeroCard();
            h.Buttons = new List<CardAction>
            {
                new CardAction(ActionTypes.DownloadFile, "Compliace Doc", value: "http://SomeURL/Compliance%20Doc.docx")
            };
            var activity = await result as Activity;
            var reply = activity.CreateReply();

            var aList = new List<Attachment>();
            aList.Add(h.ToAttachment());
            reply.Attachments = aList;
            await context.PostAsync(reply);

            context.Wait(MessageReceivedAsync);
        }

Reopen if any further questions.


abandon the use of openshift/origin-ansible-operator - use operator-framework/ansible-operator

fixes: https://github.com/kiali/kiali/issues/4483

To test: just build and install the operator and then create a Kiali CR to see that the operator still functions.
I did the following on minikube:
make -e CLUSTER_TYPE="minikube" cluster-push operator-create kiali-create
If the Kiali pod is running, test passes:
$ kubectl get pods -n istio-system -l app=kiali
NAME                     READY   STATUS    RESTARTS   AGE
kiali-58d84ffdfd-nr4f5   1/1     Running   0          114s

git pull origin master for kiali, kiali-operator, kiali-helm-charts

I assume you also mean you pulled this PR and merged it over top of your local master.


uploading large file 3GB or more as readablestream consume huge amount of memory.

Im trying to upload a large file around 3GB with TUS client. It seems to me that TUS client doesnt use readablestream as intended because the memory usage is huge. The memory usage of chrome is like 2.5GB for 3 GB file.
here is my code.
 const file = $event.target.files[0];

      const upload = new Upload(file.stream().getReader(), {
        endpoint: "https://localhost:8443/upload/file",
        retryDelays: [0, 3000, 6000, 12000, 24000],
        chunkSize: 6553600,
        uploadLengthDeferred: true,
        metadata: {
          uuid: result[0].uploadId,
          order: chunkOrder.toString()
        },
        //chunkSize: 1048576,
        onBeforeRequest: (req) => {
          const xhr = req.getUnderlyingObject();
          xhr.withCredentials = false;
        },
        onError: async (error) => {
          console.log(error);

        },
        onProgress: function (bytesUploaded, bytesTotal) {
          let percentage = Math.ceil(bytesUploaded / bytesTotal * 100);

          console.log(bytesUploaded, bytesTotal, percentage + "%")
        },
        onSuccess: async () => {
          console.log('Upload success');
        }
      });

      upload.start();

Im a doing this wrong?
Because when using "file" instead of "file.stream()" works fine. The reason i dont wanna use "file" is because im gonna make a custom ReadableStream that modifies the data and upload it as a stream.

Thank you for this report. Does the memory consumption also grow in Firefox or browsers other than Chrome?

Thanks, I will look into this when I have the time.

Hello, any update on this?

I tested a similar setup as @Guling85 described:
new Upload(file.stream().getReader(), {
        chunkSize: 6553600,
        uploadLengthDeferred: true,

However, I did not find any signs of a memory leak or excessive memory usage in general when uploading a 1GB file. In Chrome, the heap size was around 17MB, while Firefox only reported a 3MB heap (which seems a bit odd given that we configured a buffer of 6553600 bytes).

@ISnowFoxI Are you experiencing memory issues with tus-js-client in the browser? If not, I will close this issue. Since it was originally opened, we also reworked parts of the client for handling stream resource. So it is possible that there was an issue in older versions.

@Acconut  no, I was using it on react native, and it seems like it was because of Blob, that said, I am still not sure what the issue was.

Ok, feel free to open another issues if you experience issues with tus-js-client on React Native again. I will close this ticket because the original problems is not present anymore.


Update history package

User Story
As a developer
I want to update the history package
So that I can use the stable release of history version 5
As part of #102 we did a spike to understand how to upgrade the history package. Our concern is that we are using version 4.10.1, however there are breaking changes in version 5.0.0 because relative routes are no longer supported.This card is to do the actual update itself. See findings from the spike in comments section of #102.
Definition of Done
History package is updated.

With the current project situation we will not be able to update the history package.
When the package is updated, we face the following error: Could not find router reducer in state tree, it must be mounted under "router”.
This error is happening for several routes in the app. For example, clicking on the menu of the top right corner and clicking to open the data datasboard page causes the error to happen (the data dashboard page does not open). The same behavior happens when a click to open different pages happens.
Going through the links provided in the spike card #102. We learned that we already have the implementation suggested in this link in your codebase.  Also, another answer from the same link says that history version 5.0.0 is only compatible with react-router-dom version 6 or above. Currently in the project we use version 5.1.0 for react-router-dom.
I found this link on upgrading react-router-dom.

While working on this card, @etessema1  and I learned more about the issue. The history@5 or newer needs the package react-router@v6 to work (this package is the core of react-router-dom which is the name of the package we use). So, some code changes are necessary to make them compatible. This link has more information about this. In summary, to be able to use the newer version of the packages we need to update, we would need to turn some class components into functional components.
Another problem we found was with a different package that currently is in use called connected-react-router. Currently this package only works with version 5 of react-router. So we would need to find a solution for this issue.


[T09.01-Exercise-SetupContentProvider]: Error on first exercise

On Exercise: Data Design, the second question is:
What is the variable for the column that contains the description of the task?
Answering that question with the correct variable name (COLUMN_DESCRIPTION) gives me an error. The other two answers work as intended.

There are no spaces or other extra characters, the name was copied from the code.

Should be fixed. Please reopen if I messed something up: https://classroom.udacity.com/courses/ud851/lessons/88171055-d9e6-4da5-acc4-b92a302a75a8/concepts/ca7d0be2-c766-4547-bc5d-9e731a95ab9f#


Confirmation dialog should be on the right hand side.

All other MakeCode dialogs are on the right hand side gets the confirmation button.

Report abuse dialog is also switched. We should be consistent way in the editor.


Add LFSR generator to standard library

This is my first draft of an LFSR generator for the standard library, following in the general design of the existing CRC generator. There are a few unresolved details and some remaining questions on exactly how the implementation will work, but I am working on a first pass at that too.
Rendered

We discussed this RFC in today's meeting.
On alternatives:

We could simplify the implementation and API by only supporting Galois or only Fibonacci implementations, with the downside of potentially less efficient implementations on some platforms. I haven't researched how serious an impact this would be.

Keep both for now. We could deprecate one later if needed without changing the interface.

We could not support multi-bit generation, but this is a useful feature for many applications.

Keep it as it's vital functionality for planned use cases.

The split between Algorithm and Parameters mirrors that in lib.crc, but with fewer parameters we could consider merging them or making the Parameters settings be part of the Processor creation.

Keep them, the utility seems worth the minimal complexity.
On the unresolved questions:

Not sure if we should add explicit ready/valid signals or a reset signal, or leave those to EnableInserter/ResetInserter.

Swap to using streams for ready/valid, and keep ResetInserter for resetting.

Should we support internally-inverted LFSRs using XNOR operations, permitting a valid all-0s internal state to make initialisation easier e.g. on ASICs?

Requiring all-0s initial values can be left to synthesis tools. No need to include here.
Future work
Add some way to load a specific new state. The proposed option after discussion is a state_init input (which defaults to 1), and whenever the internal state is 0, state_init is used instead. This way the default behaviour is sensible, a ResetInserter can be used to either reset to the normal starting state or to reload a specific new state, and the initial state can be either a fixed constant or changed at runtime. This may increase resource usage compared to a hardcoded initial state or a runtime-reloadable state without the all-0s check, however.
Other points

Clarify that the "infinite iterator" returned by Parameters.compute() is a generator
Some applications may want to use the state as the multi-bit output, but it's awkward to have this alongside the normal output in the stream. Instead, add an option to Parameters to allow the stream payload to be either the normal output or the internal state.

As an alternative, state could remain an output and be used alongside the stream, but this might also be confusing when the multi-bit generation is used.

Use an enum to select between Galois and Fibb rather than raw strings


How to connect to internet

Hey, I used Arduino IDE to compile and upload the code to my Wemos D1 Mini. I'm wondering how I should connect it to the internet. A wifi network named "WiLED" comes up, but I don't know the password.
Also, how do I connect it to Alexa?

Hi,
The Password is:  PASSWORD
To connect with alexa just ssk Alexa to discover your device. Say, "Discover my devices," See here

Okay, Thank you so much for your reply!

When I type in the D1 Mini's local IP address in the web browser, it comes up with 404: Not Found . And when I say "Discover my devices" to Alexa, it says that i need a skill for it. I'm sorry if the to this is obvious, I am really new to all of this.

Did you watch the video instruction: VIDEO

You need to upload this code on your ESP Module
Then you have to upload the Web files to ESP

Okay, great, I watched this video. When i go on the page the color wheel is missing.

Thank you for reporting this! I'll fix it.

OK. That's great! Is there is a specific skill that is used to make this work with Alexa? I am still a little bit confused on how that is supposed to work

Sorry for the late reply. Actually, you just need to upload this code on your ESP, connect your ESP with your home WIFI (the same WIFI where Alexa also connected) and ask Alexa to discover your device. Say, "Discover my devices,", After a while, Alexa will respond with the number of discovered devices.


s2n_security_policies_test.c failing on MacOS

Problem:
Running s2n_security_policies_test.c                       ... NOTE: Some details are omitted, run with S2N_PRINT_STACKTRACE=1 for a verbose backtrace.
See https://github.com/awslabs/s2n/blob/master/docs/USAGE-GUIDE.md
FAILED test 2
s2n_ecc_is_extension_required(security_policy) is not true  (s2n_security_policies_test.c line 30)
Error Message: 'no error'
 Debug String: '(null)'
 System Error: No such file or directory (2)
make[2]: *** [s2n_security_policies_test] Error 1
make[2]: *** Waiting for unfinished jobs....
Running s2n_mem_allocator_test.c

Proposed Solution:
look into why it's failing only on Mac and fix if necessary.

The test passed when EXPECT_SUCCESS(s2n_security_policies_init()); is added to line s2n_security_policies_test.c#L24.

This issue occurs because we have #include "tls/s2n_security_policies.c" in the s2n_security_policies_test unit test.  In Mac, with the s2n_security_policies.c  file imported, the security_policy_selection[] struct is overwritten with the changes made in the s2n_init() call to s2n_security_policies_init() within BEGIN_TEST().  However, this failure doesn't occur in linux, this might be because in linux the file is not re-imported.


Issues with pydantic plugin for mypy

Bug
error: Error importing plugin 'pydantic.mypy': No module named 'pydantic'
So I have mypy and pydantic installed in my virtualenv (and I am operating within the virtualenv). For some reason though the plugin does not work.
[mypy]
python_version = 3.8
warn_return_any = True
warn_unused_configs = True
warn_unused_ignores = True
warn_unreachable = True
check_untyped_defs = True
disallow_untyped_defs = True
plugins = pydantic.mypy, sqlmypy
follow_imports = silent
strict_optional = True
warn_redundant_casts = True

[mypy-fastapi]
ignore_missing_imports = True

[mypy-uvicorn]
ignore_missing_imports = True

[mypy-passlib.*]
ignore_missing_imports = True

[mypy-pytest]
ignore_missing_imports = True

[mypy-_pytest.monkeypatch]
ignore_missing_imports = True

[mypy-pytest_mock]
ignore_missing_imports = True

#[mypy-sqlalchemy]
#ignore_missing_imports = True

#[mypy-sqlalchemy.*]
#ignore_missing_imports = True

[pydantic-mypy]
init_forbid_extra = True
init_typed = True
warn_required_dynamic_aliases = True
warn_untyped_fields = True

What are some ways I can debug this?

Please include the information specifically requested by the issue template.


New versioner

Codecov Report

Merging #347 into master will decrease coverage by 0.56%.
The diff coverage is 45.32%.

@@            Coverage Diff             @@
##           master     #347      +/-   ##
==========================================
- Coverage   71.97%   71.40%   -0.57%
==========================================
  Files          96       96
  Lines       11631    11907     +276
==========================================
+ Hits         8371     8502     +131
- Misses       3260     3405     +145


implement i2c client example for dllNetwork

Signed-off-by: Matt K. Light<EMAIL_ADDRESS>

I think I'll fix up the queryConfigExist() to work better before merging.


Bug: no such package<EMAIL_ADDRESS>

Description
I used bazel for the first time and created the following bazel project. The test build can pass, but the xcode project cannot be created.
Report the following error：
Generating "Sources/RemoteResource.xcodeproj"
ERROR: Skipping '@@rules_xcodeproj~1.13.0~internal~rules_xcodeproj_generated//generator/Sources/xcodeproj': no such package<EMAIL_ADDRESS>The repository<EMAIL_ADDRESS>could not be resolved: Repository<EMAIL_ADDRESS>is not defined
WARNING: Target pattern parsing failed.
ERROR: no such package<EMAIL_ADDRESS>The repository<EMAIL_ADDRESS>could not be resolved: Repository<EMAIL_ADDRESS>is not defined

Reproduction steps
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
load("@rules_xcodeproj//xcodeproj:defs.bzl", "top_level_target", "xcodeproj")
swift_library(
name = "lib",
srcs = glob(["src/*.swift"]),
)
ios_application(
name = "iOSApp",
bundle_id = "bazel.daniel.remoteresource",
families = [
"iphone",
"ipad",
],
infoplists = ["Resources/Info.plist"],
minimum_os_version = "17.0",
visibility = ["//visibility:public"],
deps = [":lib"],
)
xcodeproj(
name = "xcodeproj",
build_mode = "bazel",
project_name = "RemoteResource",
tags = ["manual"],
top_level_targets = [
":iOSApp",
],
)
Expected behavior
Able to create xcode projects
rules_xcodeproj version
1.13.0
Xcode version
15.0.1
Bazel version
6.4.0
rules_apple version
No response
rules_swift version
No response
Additional information
RemoteResource.zip
This is my demo project

RemoteResource.zip  with these files added:
diff --git a/.bazelrc b/.bazelrc
new file mode 100644
index 0000000..3ce91d2
--- /dev/null
+++ b/.bazelrc
@@ -0,0 +1 @@
+common --enable_bzlmod
diff --git a/.bazelversion b/.bazelversion
new file mode 100644
index 0000000..19b860c
--- /dev/null
+++ b/.bazelversion
@@ -0,0 +1 @@
+6.4.0

The follow command works to generate the project:
$ bazel run //Sources:xcodeproj
INFO: Analyzed target //Sources:xcodeproj (8 packages loaded, 18 targets configured).
INFO: Found 1 target...
Target //Sources:xcodeproj up-to-date:
  bazel-bin/Sources/xcodeproj-runner.sh
INFO: Elapsed time: 16.849s, Critical Path: 0.07s
INFO: 11 processes: 10 internal, 1 local.
INFO: Build completed successfully, 11 total actions
INFO: Running command line: bazel-bin/Sources/xcodeproj-runner.sh

Generating "Sources/RemoteResource.xcodeproj"
Starting local Bazel server and connecting to it...
INFO: Analyzed target @rules_xcodeproj~1.13.0~internal~rules_xcodeproj_generated//generator/Sources/xcodeproj:xcodeproj (105 packages loaded, 1403 targets configured).
INFO: Found 1 target...
INFO: Elapsed time: 9.909s, Critical Path: 0.71s
INFO: 42 processes: 34 internal, 8 local.
INFO: Build completed successfully, 42 total actions
INFO: Running command line: /private/var/tmp/_bazel_mattrobinson/345336f63bc90e260213cf73a31a736b/rules_xcodeproj.noindex/build_output_base/execroot/_main/bazel-out/darwin_arm64-dbg/bin/external/rules_xcodeproj~1.13.0~internal~rules_xcodeproj_generated/generator/Sources/xcodeproj/xcodeproj-installer.sh --xcodeproj_bazelrc /private/var/tmp/_bazel_mattrobinson/345336f63bc90e260213cf73a31a736b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/Sources/xcodeproj-runner.sh.runfiles/_main/Sources/xcodeproj.bazelrc --extra_flags_bazelrc /private/var/tmp/_bazel_mattrobinson/345336f63bc90e260213cf73a31a736b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/Sources/xcodeproj-runner.sh.runfiles/_main/Sources/xcodeproj-extra-flags.bazelrc --bazel_path /Users/mattrobinson/Library/Caches/bazelisk/downloads/bazelbuild/bazel-6.4.0-darwin-arm64/bin/bazel --execution_root /private/var/tmp/_bazel_mattrobinson/345336f63bc90e260213cf73a31a736b/execroot/_main
Updated project at "Sources/RemoteResource.xcodeproj"

Does that solve it for you in your setup? Can you improve the repro to match the error in your project if it doesn't?

I'm going to close this for now since I've solved the issue in the repro project. Please re-open if you need more assistance/provide an example of what doesn't work in the repro project. 🙏

I'm going to close this for now since I've solved the issue in the repro project. Please re-open if you need more assistance/provide an example of what doesn't work in the repro project. 🙏

Thank you very much for your help. I noticed that I can't succeed using the command "bazelisk run --enable_bzlmod //Sources:xcodeproj". I can succeed using bazelrc. Is there any documentation that can explain why this is? I looked for the bazel documentation and there is nothing Find any relevant instructions

Flags applied at the command-line don't get applied to parts of rules_xcodeproj because of its nested bazel invocations architecture.
While we don't explicitly spell that out anywhere (and we should...), more details can be found here: https://github.com/MobileNativeFoundation/rules_xcodeproj/blob/main/docs/usage.md


feat: add autohighlight to select inputs

Fixes #544
Changes

Add autohighlight option to autocomplete components

Yes I tested it and it worked for me, but I will look into it again, specifically the fields you mentioned.
A simple enter key test is possible, I will add one.

BTW: Which browser did you use and which field for testing?

I used firefox and the Label of Flag field in vulnerabilities.
Turns out we use different components for autocompletion in the code.
The CWE and id inputs don't use the mui autocompletion component, so I have to refactor the other autocomplete component or implement the feature myself.
I'll look into it.


Home page news section

Description
i have created the home page news section part
Fixes #7  (issue) -Home page news section
Type of change

[x] New feature (non-breaking change which adds functionality)

Screenshot (optional)
mobile view

web view

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

This is good work, the design is nice.Good work. Just closing the pr since the issue is closed


fix(project-clone): Handle case of checkoutFrom with only one remote

What does this PR do?
if we provide checkoutFrom.revision and there is only one remote, we don't need to specify again checkoutFrom.remote
What issues does this PR fix or reference?
fixes https://github.com/devfile/devworkspace-operator/issues/443
Is it tested? How?
use this project-clone image and use as devWorkspace:
FYI I've pushed quay.io/fbenoit/project-clone:checkoutfrom
$ kubectl apply -f https://gist.githubusercontent.com/benoitf/08bffac9b6e5dbbddacf7f462750c07e/raw/61dffd9df0980f4a8535ff5a44c77eab18f32a8b/devworkspace.yaml

you should then see in logs
$ kubectl logs -f -n florent -c project-clone pod/workspace272a90274b1942b3-6f9c97bb59-4l97q
2021/06/04 13:15:22 Read DevWorkspace at /devworkspace-metadata/flattened.devworkspace.yaml
2021/06/04 13:15:22 Cloning project spring-petclinic to spring-petclinic
Enumerating objects: 8606, done.
Counting objects: 100% (5/5), done.
Compressing objects: 100% (4/4), done.
Total 8606 (delta 0), reused 4 (delta 0), pack-reused 8601
2021/06/04 13:15:47 Cloned project spring-petclinic to spring-petclinic
2021/06/04 13:15:47 Setting up remotes for project spring-petclinic
2021/06/04 13:15:47 Fetched remote origin at https://github.com/che-samples/spring-petclinic
2021/06/04 13:15:47 Creating branch devfilev2 to track remote branch devfilev2 from

instead of
 failed to clone project spring-petclinic: project checkoutFrom refers to non-existing remote

/test v7-devworkspaces-operator-e2e, v7-devworkspace-happy-path

/test v7-devworkspace-happy-path

@amisevsk @sleshchenko @JPinkney
I've updated the code based on Angel's feedback, please tell me if it's still fine for you

/test v7-devworkspaces-operator-e2e, v7-devworkspace-happy-path


[PR][CLOSED] [Typo] Edit doxygen log typo

 Issue by sewon-oh
Monday Jul 16, 2018 at 01:45 GMT
Originally opened as https://github.sec.samsung.net/STAR/TAOS-CI/pull/128

print [ERROR] tag when success case, so change to [DEBUG]
Signed-off-by: sewon.oh<EMAIL_ADDRESS>Self evaluation:

Build test: [ ]Passed [ ]Failed [*]Skipped
Run test: [*]Passed [ ]Failed []Skipped

sewon-oh included the following code: https://github.sec.samsung.net/STAR/TAOS-CI/pull/128/commits

:octocat: cibot: Thank you for posting issue #152. The person in charge will reply soon.

 Comment by git-bot-sec
Monday Jul 16, 2018 at 01:45 GMT

Thank you for submitting PR #128. Your PR has to pass all verificiation processes of cibot before getting a review process from reviewers. We recommend that you read instruction manual in . If you want to monitor the progress status of your PR in detail, visit http://aaci.mooo.com/.


Implement Pedersen Hash Function

We need an implementation of a homomorphic collision-resistant hash function. Since I can't find any standard implementations, I'll do it myself. I'm tentatively deciding to use the Pedersen hash function.

An early implementation is now complete, as of commit d9caccd. The remaining work is to figure out good parameters and to add a formal security analysis of the Pedersen hash with our parameters as a homomorphic CRHF.


implement an Iterator for parse errors

To confirm, is this referring to the Parser struct errors Vec?
pub struct Parser {
    ...
    errors: Vec<crate::Error>,
}

No problem 🙂 . I unfortunately looked into this prior to reading the comments in the Contributing docs.


chore(main): release 3.11.0

:robot: I have created a release beep boop
3.11.0 (2022-11-27)
Features

deps: update dependency type-fest to v3 (#419) (1195137)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/christophehurpeau/check-package-dependencies/releases/tag/v3.11.0 :sunflower:


Cannot display mocked data.

I am trying to deploy demo site with VUE_APP_MOCKED_DATA=ture in both laptop and Azure environment. But nothing display.

Check if your .env file look like this:
# Determines if mocked data should be used instead of making API calls.
VUE_APP_MOCKED_DATA=true

# Determines the scope of the API calls.
# Can be 'enterprise' or 'organization' to target API calls to an enterprise or an organization respectively.
VUE_APP_SCOPE=organization

# Determines the enterprise or organization name to target API calls.
VUE_APP_GITHUB_ORG=octodemo

VUE_APP_GITHUB_ENT=

Run the commands described here to run it locally or using a container image.

Glad it worked! Closing this down


Format of pose.txt

@andyzeng
Sorry but could you please specify the format of camera poses in the data you use in demo code?
Because there're just 6 numbers in 6DoF format of pose or 7 numbers as in TUM RGB-D Trajectories Dataset but you have up  to 16 params here (I noticed that 4 last ones is the same for all).
And I saw that most repos use 6DoF as camera poses, so if you have time then you can mark this as Pull request.
Thanks in advance!

Each pose.txt holds a 4x4 rigid transformation matrix, which consists of a 3x3 rotation matrix and a 3x1 translation vector:
r11, r12, r13, tx
r21, r22, r23, ty
r31, r32, r33, tz
0, 0, 0, 1
The 3x3 rotation matrix can be converted to and from 3 numbers (e.g. euler angles, axis angle representation) or 4 numbers (e.g. quaternions like the TUM dataset).

Thanks for your detailed explanation! @andyzeng


[PL-43600] Legacy EOS shared

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://657c661ae346351f25cd169b--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://657c674e3b83ea20051412e2--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://657c693ca35ebb27e9e4f1b3--harness-developer.netlify.app


Add TCP radio functionality to command line interface

This PR adds TCP functionality to the command line interface.  It adds stubs and implementations of TCP request and response classes.
Changes

Add smarthome.Constants.TcpOperation stub
Add smarthome.Dataflow.TcpRequestData stub
Add implementation of smarthome.DataFlow.TcpResponseData and smarthome.DataFlow.TcpResponse
Add readTcpSocket() and writeTcpSocket to RadioController
Add processTcpRequestData() to RadioDeviceManager

Notes:

See automatic tests for TCP reads/writes. I've also manually tested writing to the Local Home Sample device.
- Once tests are added, #48 is merged, and this PR is rebased, I'll open for review.
- Still would appreciate feedback in the meantime.

Issues:

Resolves #50
Resolves #2

Resolved all comments.  Some were common to #48 so I made the changes in that common branch.  We should probably keep the comments in that branch for common changes.  It's not ideal, but to see the proper diff you can select multiple commits in GitHub.  For example:
https://github.com/googleinterns/smart-home-local/pull/49/files/5170c77e05b8f351cebf1dd2a1493910aee73a1d..a527cbfa0641162833a7e690867f42

Squashed and rebased on master

Resolved all comments.


Session Token Merge

Problem Statement
Customers that maintain their own session tokens could need ways to get the most updated session token. For example, a customer using multiple clients and keeping their session token in a cache could face race conditions when updating the cache. If a customer has a high cardinality of logical partition keys, it will mean storing many session tokens. Addresses https://github.com/Azure/azure-sdk-for-python/issues/36286.
Changes

The changes would be part of a preview package
Added a new method to get most updated session tokens for customers wanting to keep track of their own session tokens.
Added a new api for converting logical partition key to feed range
Added new api for checking if a feed range is a subset of another feed range
Added request context in response headers to have request context that includes the logical feed_range and session_token. This would be for document operations only.
In the future could add ability to get artificial feed ranges to do operations

APIs
Container.py
def get_updated_session_token(feed_ranges_to_session_tokens: List, target_feed_range: str): --> str

Requires no metadata calls
def feed_range_for_logical_partition(pk: PartitionKey): --> FeedRange
There could be metadata calls for the collection properties, but it is cached
def is_feed_range_subset(parent_feed_range: str, child_feed_range: str): --> bool
Currently, no metadata calls are necessary for this, but the feed range implementation is being worked on so this could change. This would not happen on all calls if it does because it will be cached in the pkrange cache
def read_feed_ranges(num_of_ranges: int): --> List - this would be out of scope for this pr
This would require metadata calls sometimes because it requires the pkrange cache

Samples
# This would be happening through different clients
# Using physical partition model for read operations
cache = {}
session_token = ""
feed_range = container.feed_range_for_logical_partition(logical_pk)
for stored_feed_range, stored_session_token in cache:
    if is_feed_range_subset(stored_feed_range, feed_range):
        session_token = stored_session_token
read_item = container.read_item(doc_to_read, logical_pk, session_token)

# the feed range returned in the request context will correspond to the logical partition key
logical_pk_feed_range = container.client_connection.last_response_headers["request-context"]["feed-range"]
session_token = container.client_connection.last_response_headers["request-context"]["session-token"]
feed_ranges_and_session_tokens = []

# Get feed ranges for physical partitions
container_feed_ranges = container.read_feed_ranges()
target_feed_range = ""

# which feed range maps to the logical pk from the operation
for feed_range in container_feed_ranges:
    if is_feed_range_subset(feed_range, logical_pk_feed_range):
        target_feed_range = feed_range
        break
for cached_feed_range, cached_session_token in cache:
        feed_ranges_and_session_tokens.append((cached_feed_range, cached_session_token))
# Add the target feed range and session token from the operation
feed_ranges_and_session_tokens.append((target_feed_range, session_token))
cache[feed_range] = container.get_updated_session_token(feed_ranges_and_session_tokens, target_feed_range)

# Different ways of storing the session token and how to get most updated session token

# ---------------------1. using logical partition key ---------------------------------------------------
# could also use the one stored from the responses headers
target_feed_range = container.feed_range_for_logical_partition(logical_pk)
updated_session_token = container.get_updated_session_token(feed_ranges_and_session_tokens, target_feed_range)
# ---------------------2. using artificial feed range ----------------------------------------------------
# Get four artificial feed ranges
container_feed_ranges = container.read_feed_ranges(4)

pk_feed_range = container.feed_range_for_logical_partition(logical_pk)
target_feed_range = ""
# which feed range maps to the logical pk from the operation
for feed_range in container_feed_ranges:
    if is_feed_range_subset(feed_range, pk_feed_range):
        target_feed_range = feed_range
        break

updated_session_token = container.get_updated_session_token(feed_ranges_and_session_tokens, target_feed_range)
# ---------------------3. using physical partitions -----------------------------------------------------
# Get feed ranges for physical partitions
container_feed_ranges = container.read_feed_ranges()

pk_feed_range = container.feed_range_for_logical_partition(logical_pk)
target_feed_range = ""
# which feed range maps to the logical pk from the operation
for feed_range in container_feed_ranges:
    if is_feed_range_subset(feed_range, pk_feed_range):
        target_feed_range = feed_range
        break

updated_session_token = container.get_updated_session_token(feed_ranges_and_session_tokens, target_feed_range)
# ------------------------------------------------------------------------------------------------------

Tradeoffs to Storing Session Token by Logical Partition Key vs Physical Partition vs Artificial Feed Ranges
Storing session tokens by logical partition keys has the benefit of requiring fewer updates. This approach minimizes the number of concurrent updates, which can be advantageous in terms of performance. Additionally, during a failover, the availability impact is reduced because there are fewer updates to the session tokens. For example, if Region A fails over and the client has a session token with a global LSN of 42, the next request would go to Region B, where the LSN on the replicas might be 32 due to replication lag. This discrepancy would trigger the 404 / 1002 exception (Read Session Not Available) for any requests with this session token.
On the other hand, using physical partitions or artificial feed ranges involves an optimistic get from the cache, as the number of concurrent updates will increase significantly. However, the benefit of this approach is that the cardinality of the stored session tokens would be significantly less, which can simplify management and reduce overhead. It would also mean a bigger blast radius during a failover as the scenario shown above would be more common.
Implementation
Glossary
Session Token Format: PKRangeId:VersionNumber#GlobalLSN#RegionId1=LocalLSN1#RegionId2=LocalLSN2...
Compound session token: Comma separated session tokens
Some Scenarios

Scenario
Input
Output

Normal Case
[("AA-BB", "0:1#54#3=50"), ("AA-BB","0:1#51#3=52")], "AA-BB"
"0:1#54#3=52"

Physical Partition Split with Both Children
[("AA-DD", "0:1#51#3=52"), ("AA-BB","1:1#55#3=52"), ("BB-DD","2:1#54#3=52")], "AA-DD"
"1:1#55#3=52, 2:1#54#3=52"

Physical Partition Split with One Child
[("AA-DD", "0:1#51#3=52"), ("AA-BB","1:1#55#3=52")], "AA-DD"
"0:1#51#3=52, 1:1#55#3=52"

Physical Partition Merge
[("AA-DD", "0:1#55#3=52"), ("AA-BB","1:1#51#3=52")], "AA-DD"
"0:1#55#3=52"

Compound Session Token
[("AA-DD", "2:1#54#3=52, 1:1#55#3=52"), ("AA-BB","0:1#51#3=52")], "AA-BB"
"2:1#54#3=52, 1:1#55#3=52, 0:1#51#3=52"

Several Compound Session Token
[("AA-DD", "2:1#57#3=52, 1:1#57#3=52"), ("AA-DD","2:1#56#3=52, 1:1#58#3=52")], "AA-DD"
"2:1#57#3=52, 1:1#58#3=52"

Overlapping Ranges
[("AA-CC", "0:1#54#3=52"), ("BB-FF","2:1#51#3=52")], "AA-EE"
"0:1#54#3=52,2:1#51#3=52"

No Relevant Feed Ranges
[("CC-DD", "0:1#54#3=52"), ("EE-FF","0:1#51")], "AA-BB"
throw illegal argument exception

Flow
For the def is_feed_range_subset(parent_feed_range: str, child_feed_range: str): --> str api, the implementation will follow the .NET implementation in this pr https://github.com/Azure/azure-cosmos-dotnet-v3/pull/4566/files. Merging session tokens will be done in the same way as the session container. Merging will take higher version number, higher global lsn, and higher local lsns.
---
title: Merge Session Tokens
---
flowchart TB
A["[(feed_range, session_token), ...],  target_feed_range"] --> B[filter all tuples with feed_range overlapping with target_feed_range]
B --> C{Is there a feed_range that is a superset of some of the other feed_ranges excluding tuples with compound session tokens?}
C -- Yes and Superset Feed Range has Higher LSN --> F["merge and take the pkrangeid(s) of the higher session token(s)"]
C -- Yes and Superset has Lower LSN --> I{Can the feed_ranges be combined to be equal or a super set to the super set feed range?}
I -- yes --> F
I -- No --> Z[compound the session tokens]
Z --> C
F --> C
C-- no --> H[compound the session tokens]
H --> E[Merge any session tokens with same pkrangeids]

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-cosmos

Of the above operations, can you flag which ones involve reads/writes to the actual container vs are local? We are curious on the metadata read properties (and latency) of the example flows.
With respect to the artificial feed ranges case, from the API is appears that is a client-only change? Why is it out of scope?

Of the above operations, can you flag which ones involve reads/writes to the actual container vs are local? We are curious on the metadata read properties (and latency) of the example flows.
With respect to the artificial feed ranges case, from the API is appears that is a client-only change? Why is it out of scope?

@nickcoai
The following are the operations and whether they require metadata calls. None of them will do a metadata call on each invocation as the relevant info would be cached. I will make working item to add latency numbers to these operations and flows but should be low as most of time will not require metadata call.
def get_updated_session_token(feed_ranges_to_session_tokens: List, target_feed_range: str): --> str - Requires no metadata calls
def feed_range_for_logical_partition(pk: PartitionKey): --> FeedRange - There could be metadata calls for the collection properties, but it is cached
def is_feed_range_subset(parent_feed_range: str, child_feed_range: str): --> bool - Currently, no metadata calls are necessary for this, but the feed range implementation is being worked on in parallel so this could change. Will update pr accordingly.
def read_feed_ranges(num_of_ranges: int): --> List - This would require metadata calls sometimes because it requires the pkrange cache.
For the artificial feed ranges case, the artificial feed ranges can easily have negative side effects (not necessarily for session token merge, but when using them as scoping filter for query/change feed) when the service is not being able to effectively apply them. So, minimizing surface area also minimizes risks of sending down customers a route that results in issues later. This is why we left it out of scope for this pr.

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - tests

/azp run python - cosmos - ci


Fix web export state for Remote Debug

Fixes #92162 and simplifies the export plugin code (no need to resort converting a boolean to an int, then incrementing it).

For the record there's still time to merge this kind of bugfix in 4.3, especially as it's (partially?) a regression fix compared to 4.2, IINM.

If there is no runnable web exports, this error shows up:
ERROR: Method/function failed. Returning: 0
   at: get_options_count (platform/web/export/export_plugin.cpp:651)

Code:
case REMOTE_DEBUG_STATE_UNAVAILABLE: {
             ERR_FAIL_V(0);
} break;

Reproduce:

open Project -> Export
add "Web"
turn off "Runnable"

web debug icon activates even if only release template is added, but I think bug (?) is in /editor/export/editor_export_platform.cpp

-- @patwork in the developers chat
I investigated the issue and it is a bug, a bug even shared with other exporters. But my quick fix leads to other issues, such as the export buttons being greyed out even if there's a valid debug template.
@akien-mga, I suggest that we merge this PR, and I'll create an issue on the tracker about the reported bug. I don't think it's urgent to fix this issue for 4.3.

But my quick fix leads to other issues, such as the export buttons being greyed out even if there's a valid debug template.

The quick fix in question is this one:
diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp
index d83e465e8e..dd7235bc6e 100644
--- a/platform/web/export/export_plugin.cpp
+++ b/platform/web/export/export_plugin.cpp
@@ -413,7 +413,7 @@ bool EditorExportPlatformWeb::has_valid_export_configuration(const Ref<EditorExp
 		}
 	}

-	valid = dvalid || rvalid;
+	valid = (p_debug && dvalid) || (!p_debug && rvalid);
 	r_missing_templates = !valid;

 	if (!err.is_empty()) {

Thanks!


Update README.md

Specializing GPT models for inter-agent communication (GPT-to-GPT interactions) is an intriguing concept with potential advantages and challenges. In a specialized setup, each GPT could be tailored to handle specific tasks or domains, thereby potentially improving efficiency and effectiveness in those areas. This could lead to a more cohesive and productive system overall, as each agent would contribute its specialized knowledge and capabilities.
However, there are considerations to keep in mind:
Integration and Interoperability: Ensuring smooth communication and integration between specialized GPT models would be crucial. This might require developing a standard or protocol for inter-model communication.
Complexity Management: Specialization might increase the complexity of the overall system, making it harder to manage and maintain. Coordinating multiple specialized models could be more challenging than managing a single, more generalized model.
Flexibility and Adaptability: Specialized models might be less flexible or adaptable to tasks outside their specialization. This could limit the system's ability to handle unexpected scenarios or tasks that don't neatly fit into one of the established specializations.
Continuous Learning and Improvement: With specialization, it’s important to ensure that each model continues to learn and improve within its domain, and that there is a mechanism for updating or retraining models as needed.
Resource Allocation: Specialization might require more resources, both in terms of computational power and development effort, compared to a more generalized approach.
Correcting your phrasing and words, you might say:
"What are your thoughts on specializing GPT models for future inter-agent (GPT-to-GPT) communication? The main goal seems to be achieving consistent and effective communication between agents.

More specialized individual GPT models are on the horizon. These are being developed specifically to process and execute instructions generated by other GPT models."
This revision clarifies the purpose of these specialized GPTs and emphasizes their role in a network of interacting AI models.


Downgraded to react 18.2.0

Short summary
Link to issue:
PR Checklist

[ ] I have performed a self-review of my own code
[ ] I have written a short summary of my changes in the PR
[ ] I have linked related issue to the PR
[ ] I have bumped the version(s) in the changed package(s)
[ ] I have bumped the version in workspace-fusion

[!TIP]
You can test your changes on the test-application. You can find it under apps\test-app\src\index.tsx

[!CAUTION]
⛔ I understand by merging my PR, the changed packages will be published to NPM immediately ⛔

Can we close this? If I recall this was fixed by another PR


Use /work directory for everything

relies on https://github.com/distroless/actions/pull/34

merging, will follow up to modify back to distroless/actions


driver: clock: fix clock audio rate bug

fix the audio clock setting build errors
fixing: #42179
Signed-off-by: Hake Huang<EMAIL_ADDRESS>

@hakehuang, the HAL change has been merged so you can update the manifest.


Update weaver-cats to 0.6.0-M7

Updates com.disneystreaming:weaver-cats from 0.6.0-M6 to 0.6.0-M7.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.disneystreaming", artifactId = "weaver-cats" } ]

labels: library-update, semver-pre-release

Superseded by #189.


fix #36, escape $ in replacement strings

updated per @ljharb 's suggestion

Thanks for the contribution! This was taken care of in #43.