[Codegen] Add ability to specify transform dialect specs per op

This adds two modes for specifying the strategy for inclusion:

By symbol, where the external symbol for the strategy is expected to be linked at interpretation time as an external library.
By filename, similar to the global flags.

Co-Authored By: Harsh Menon<EMAIL_ADDRESS>

As per an internal discussion, this is letting the genie out of the bottle by allowing us to specify a library of transform dialect scripts externally to use in codegen. Currently this will load the TD library for each dispatch that uses it when really we want to be doing this once during the lowering to HAL and pass it around.

Thank you Quinn for taking a stab at the way forward here.
I left some comments inline but here is a summary of how I think this could be used productively.
1. we have a unique flag to specify a list of paths from which we can preload a library of known good transforms and strategies.

2. a simple loader/linker is being build upstream to take such paths, open all the nested files and aggregate them in a module while doing the necessary work re symbol duplication etc.

3. the loader/linker reads everything once at pass pipeline creation time (or earlier) and avoids per dispatch reads/loads.

4. an extra "test" flag is added to allow specifying a _symbol name_  and apply that to all the dispatches. This is purely fo writing unit tests at the linalg-on-tensors level without having to write all the HAL information manually in every test (i.e. [Add a way to hook custom TD strategy for specific ops #15059](https://github.com/openxla/iree/pull/15059) but replacing `--iree-llvmcpu-transform-dialect-select-strategy=filename` by `--iree-test-transform-dialect-select-strategy=symbol-name` or something similar).

5. other flags to pass TD file names are deprecated, and some of the tests dropped altogether as coverage is significantly better upstream these days.

6. a (future) traversal of the matches in the preloaded TD module will select the best one to apply (i.e. the strategies will also expose some performance metrics). As strategies are brought up, we can enforce that only 0 or 1 match exists for now until we are ready for better; if no match exists (i.e. 99.99% of the cases for a start) just use the default IREE configs.

7. over time, we add more strategies to address low hanging fruits and generalize known good recipes into C++ pass pipelines and retire the strategies they cover.

My hope is this allows us to quickly improve high value DAGs and shapes by using simple search techniques to build the database of known good things we had been talking about on and off. Depending on the data we uncover re different strategies that work well, factoring out commonalities could be as simple as a custom CSE on transform IR.

Thanks for the feedback, I think this would be good to note down in an issue with a list of tasks. The primary addition in this PR is the attribute on lowering configs to give per-op control. I want to make sure I understand the ergonomics you're thinking of there first.

--iree-test-transform-dialect-select-strategy=[@]?path_to_strategy_or_symbol_name_if_@_present for global e2e testing. Because all of the backends use the same "pipeline" for transform based strategies, this could be applied as a common codegen pass: https://github.com/openxla/iree/blob/main/compiler/src/iree/compiler/Codegen/Common/Passes.cpp. This sounds like something worth doing in this PR as a part of a pass that "materializes" any symbols (e.g. builds the transform.sequence + transform.include) and lets us deprecate the backend specific flags right away. In the future we could extend it based on strategies like #15059 to allow parameterizing the strategies at this point.
Re: loading the library, it would be nice to keep significant improvements to that separate from this PR. Here we're just allowing the attribute and putting together the necessary scaffolding for running it. It is largely independent of how the library is loaded and linked.
This PR currently allows attaching both a symbol and a file path to load the strategy, but it seems like there isn't as much interest in the file path option (it would only be for development, not any real world deployment). I couldn't figure out how to make it a "union" of attributes but I think it is worth keeping if I can find a way to do that.

Thank you Quinn for taking a stab at the way forward here.
I left some comments inline but here is a summary of how I think this could be used productively.

we have a unique flag to specify a list of paths from which we can preload a library of known good transforms and strategies.
a simple loader/linker is being build upstream to take such paths, open all the nested files and aggregate them in a module while doing the necessary work re symbol duplication etc.
the loader/linker reads everything once at pass pipeline creation time (or earlier) and avoids per dispatch reads/loads.

I am not sure building something complicated that reads files from different locations is useful. I was thinking of something much simpler. The input to IREE today is something like this
module {
  func.func @entry() {...}
}

We could teach IREE to also handle this input
module {
  transform.module @transform_module {
      transform.sequence @sequence1 {...}
      transform.sequence @sequence2 {...}
  }
  func.func @entry() {...}
}

If we preserve the transform.module till the HAL compilation stage, each dispatch could apply a sequence that is appropriate. All the logic that is dealing with how the transform.module is constructed is "outside" of IREE. As is done here we could use the lowering_config to refer to the transform.sequence through a SymRef. Anything that is looking at looking at different files on disk during compilation is probably hard to deploy.

https://github.com/openxla/iree/blob/main/compiler/src/iree/compiler/Codegen/Common/Passes.cpp. This sounds like something worth doing in this PR as a part of a pass that "materializes" any symbols (e.g. builds the transform.sequence + transform.include) and lets us deprecate the backend specific flags right away.

Yes, deprecating the backend-specific passes and tests in favor of one thing would be very welcome IMO.
This is point 5. in my priority list but if you frontload it that would be good too.

Re: loading the library, it would be nice to keep significant improvements to that separate from this PR. Here we're just allowing the attribute and putting together the necessary scaffolding for running it. It is largely independent of how the library is loaded and linked.

Absolutely, I was outlining the components that I see being useful, not all in IREE and as per @MaheshRavishankar 's comment it makes sense for IREE to only see 1 file.

This PR currently allows attaching both a symbol and a file path to load the strategy

I personally like the simplicity of the file-based approach in that it just works predictably and helps isolate concerns, even if only a staging ground for a deeper integration.

I am not sure building something complicated that reads files from different locations is useful.

It's a very good point that this does not need to be exposed to IREE, and a preprocessing step can aggregate the need symbols (e.g. for a particular model) in a single file with some tooling built upstream.
It is generally useful to break transform strategies into files, with reusable named functions living in appropriately named files, and have the ability to include. This provides separation of concerns, in the same way that not all the code for a project is written in a single file.

Anything that is looking at looking at different files on disk during compilation is probably hard to deploy.

Makes sense that IREE would only want to see a single file or even a preloaded binary to deploy.

If we preserve the transform.module till the HAL compilation stage, each dispatch could apply a sequence that is appropriate.

If it is better for IREE to inject the transform IR at the very beginning and pipe this through the various layers abstraction, that would work too. Do we need to frontload this part is loading a file at e.g. pass pipeline construction time, with the transform module forwarded to the interpreter pass reasonable ? This would decouple loading from execution which I understand would be a big penalty at execution but I am unclear if there are other caveats.

All the logic that is dealing with how the transform.module is constructed is "outside" of IREE. As is done here we could use the lowering_config to refer to the transform.sequence through a SymRef.

Yes, constructing the transform.module is should definitely be outside of IREE and subject to search and heuristics built from data.

If it is better for IREE to inject the transform IR at the very beginning and pipe this through the various layers abstraction, that would work too. Do we need to frontload this part or is loading a file at e.g. pass pipeline construction time, with the transform module forwarded to the interpreter pass reasonable as an intermediate step ? This would decouple loading from execution which I understand would otherwise be a big drag at execution time; but I am unclear if there are other caveats.

Which pass pipeline construction time are you referring to... It cant be at the codegen pass pipeline construction time. That is run on all dispatches in parallel. So if its adding to that, that file loading will happen per dispatch. If it is other place where it isnt doing that (I think maybe at start of HAL pipeline construction time), then that would be a good start, but Stella and Ben know that better.

Here's a PoC of loading a transform library at dialect loading time: https://github.com/llvm/llvm-project/pull/68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

Here's a PoC of loading a transform library at dialect loading time: llvm/llvm-project#68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

Will let @MaheshRavishankar weigh in also, but this sounds like a good solution. From the perspective of IREE we don't really care how the library is loaded (and conversely this should all work upstream, this PR is just to orchestrate the library calls). Would it be worth holding some sort of design meeting for all of this rather than discussing directly on this PR?

Here's a PoC of loading a transform library at dialect loading time: llvm/llvm-project#68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

How would this work if the transform library is not read from a file but is already part of the MLIR file?

Here's a PoC of loading a transform library at dialect loading time: llvm/llvm-project#68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

How would this work if the transform library is not read from a file but is already part of the MLIR file?

I was assuming we addLibrary would let us load the owning library module at module load time: https://github.com/llvm/llvm-project/pull/68000/files#diff-dca5d317e475d11a951fb16b7408f584b4f701996fc03e0614bd6bc6df2dd824R324
The difficulty that I'm having is that currently the transform library is loaded at pass initialization time. What I was in the process of trying to do was load the module once and pass in the reference to codegen + override the intializer to take the pre-loaded library, but this would be nice because it seems like it completely decouples the library loading from pass initialization.

Here's a PoC of loading a transform library at dialect loading time: llvm/llvm-project#68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

Interesting, I was playing with a low-tech way of preloading a transform file in IREE without worrying about where to put it to see if it threads through.

Here's a PoC of loading a transform library at dialect loading time: llvm/llvm-project#68000. This can potentially be connected to the upstream plugin mechanism. A slightly crazier idea is to create a dummy dialect the only purpose of which is to own the transform library module, but we already have the transform data mechanism that we can use.

Interesting, I was playing with a low-tech way of preloading a transform file in IREE without worrying about where to put it to see if it threads through.

Oh nice, this is essentially what I was planning on as a first iteration. Also this PR now unifies the TD codegen spec file name flags like you suggested by materializing it as a user config before KernelConfig: https://github.com/openxla/iree/pull/14788/files#diff-49f56b8bdc81f0b616e49c9d3d88b9c656b37a46a3a826589993376ca8e9d217R23 (with dual symbol ref and filename modes). This way codegen doesn't have to care at all about where the library/spec is coming from right up until the interpreter pass is run.

How would this work if the transform library is not read from a file but is already part of the MLIR file?

The library contains symbols that the MLIR file only declares. If the file defines them, there won't be a need to look up the definition.
If you mean that somebody else parsed/constructed the module with definitions so there is no need to parse it, then it is possible to expose an extension constructor that takes an owned module and calls addLibrary.
My thinking is that at dispatch level, the codegen attribute will be something like "use-td-symbol=@small_matmul_strategy", which the "application" pass can rewrite into transform.include before running the interpreter or just directly run the interpreter starting from that symbol (the interpreter code in applyTransforms doesn't need a module, and one can run it from a pass rather than replicating the interpreter pass from upstream).

 The rest is just making sure the ownership transfer happens before we enter the multi-threaded execution mode and piggy-backing on the existing registration mechanism to add libraries.

I need to finish adding more tests, but the recent change instead adds two flags
--iree-codegen-use-transform-dialect-strategy=[@<symbol_name>|filename]
--iree-codegen-transform-dialect-library=filename
If a filename is specified for iree-codegen-use-transform-dialect-strategy, it will pass through straight to codegen like it has in the past (and assumes a TransformDialectCodegenPipeline). If instead a symbol name is specified, the transform library will be required and it will just execute that symbol from the transform library on the spot. In the future we can retire the transform.sequence based approach to the interpreter, but that is contingent on some changes from @nicolasvasilache upstream. With that we'd be able to reuse the library loaded during config materialization and just invoke another transform symbol returned by MaterializeUserConfigs.

Thanks and congrats for landing this!


chore: add tappedNotificationsBell event

The type of this PR is: Enhancement

Description
App counterpart for clickedNotificationsBell on web.

PR Checklist (tick all before merging)

[x] If I've added a new file to the tree I've exported it from the common index.ts
[x] I've added comments with examples for any new interfaces and ensured that they're in the docs
[x] No platform-specific terminology has been used outside of click and tap (platform is inferred by the DB storing events)

:rocket: PR was released in v4.205.0 :rocket:


undefined: oto.newPlayer

# github.com/EngoEngine/engo/common
..\..\EngoEngine\engo\common\audio.go:90:22: undefined: oto.NewPlayer

I'm new to the whole go thing and I was just installing engo and testing the pong sample. For that I created src in $GOPATH and hello.go (just fmt.printLn('Hello')) works fine. Then I went on to test the pong demo and I got a whole bunch of missing x. Then I used go get in the dir of the pong demo and now I have the above error.
Platform: Windows 10 mingw64
Also made sure to run git checkout v1.0.4 in engo and v1.0.3 in ecs

Try go get @master to fix it. The previous versions use an earlier version of oto, hence the issues. Not sure why go mod doesn't just use the right version of oto like it's supposed to though xD.

That seems to have fixed it. Thanks!


OCI runtime exec failed: exec failed: unable to start container process: exec: "node": executable file not found in $PATH: unknown

OCI runtime exec failed: exec failed: unable to start container process: exec: "node": executable file not found in $PATH: unknown
Class 'WindowWrapper' is not exposed, skipping.
Loaded system CA certificates
EditorSettings: Save OK!
ERROR: Parent node is busy setting up children, add_child() failed. Consider using add_child.call_deferred(child) instead.
at: add_child (scene/main/node.cpp:1415)
ERROR: Condition "!is_inside_tree()" is true.
at: popup_centered (scene/main/window.cpp:1658)

Heads up, also got this issue, granted I'm using act runners. However, looks like the base Godot-CI docker image does not possess nodejs. Switching the godot-ci base to nodejs 20 bullseye appears to have resolved that issue, however builds are failing with "This project doesn't have an 'export_presets.cfg" file at it's root." Still troubleshooting.
Dockerfile:
https://pastebin.com/ZCfuQQpg

Yeah, that's the actions file, I'm specifically referring to building the docker image based off of Node20 Bullseye.
`FROM node:20-bullseye
LABEL author="https://github.com/aBARICHELLO/godot-ci/graphs/contributors"
USER root
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends
ca-certificates
git
git-lfs
unzip
wget
zip
adb
openjdk-17-jdk-headless
rsync
&& rm -rf /var/lib/apt/lists/*
ARG GODOT_VERSION="4.2.1"
ARG RELEASE_NAME="stable"
ARG SUBDIR=""
ARG GODOT_TEST_ARGS=""
ARG GODOT_PLATFORM="linux.x86_64"
RUN wget https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}${GODOT_PLATFORM}.zip
&& wget https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}export_templates.tpz
&& mkdir ~/.cache
&& mkdir -p ~/.config/godot
&& mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}
&& unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}${GODOT_PLATFORM}.zip
&& mv Godot_v${GODOT_VERSION}-${RELEASE_NAME}${GODOT_PLATFORM} /usr/local/bin/godot
&& unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz
&& mv templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}
&& rm -f Godot_v${GODOT_VERSION}-${RELEASE_NAME}export_templates.tpz Godot_v${GODOT_VERSION}-${RELEASE_NAME}${GODOT_PLATFORM}.zip
ADD getbutler.sh /opt/butler/getbutler.sh
RUN bash /opt/butler/getbutler.sh
RUN /opt/butler/bin/butler -V
ENV PATH="/opt/butler/bin:${PATH}"
Download and setup android-sdk
ENV ANDROID_HOME="/usr/lib/android-sdk"
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
&& unzip commandlinetools-linux-_latest.zip -d cmdline-tools
&& mv cmdline-tools $ANDROID_HOME/
&& rm -f commandlinetools-linux-_latest.zip
ENV PATH="${ANDROID_HOME}/cmdline-tools/cmdline-tools/bin:${PATH}"
RUN yes | sdkmanager --licenses
&& sdkmanager "platform-tools" "build-tools;33.0.2" "platforms;android-33" "cmdline-tools;latest" "cmake;3.22.1" "ndk;25.2.9519653"
Adding android keystore and settings
RUN keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
&& mv debug.keystore /root/debug.keystore
RUN godot -v -e --quit --headless ${GODOT_TEST_ARGS}
RUN echo 'export/android/android_sdk_path = "/usr/lib/android-sdk"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore = "/root/debug.keystore"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore_user = "androiddebugkey"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore_pass = "android"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/force_system_user = false' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/timestamping_authority_url = ""' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/shutdown_adb_on_exit = true' >> ~/.config/godot/editor_settings-4.tres`

@DSOE1024 Unfortunately still not functional for me, however would attempt building this docker file, has mono-complete as a part of build process. Might work, no idea though.
Docker File:
https://pastebin.com/fm0A3GAQ


APIcast hostname resolution issue

[APIcast doesn't resolve hostname without a TLD (.)]
Version
Containers from both APIcast v3.2.0 and v3.3.0 (possibly reproduced on earlier versions as well):

registry.access.redhat.com/3scale-amp22/apicast-gateway
registry.access.redhat.com/3scale-amp23/apicast-gateway

Steps To Reproduce
NOTE: The steps below are being reproduced using the Docker implementation of APIcast.

Create a new Internal Network:

$ docker network create --internal internal_network

Deploy an Apache (httpd) dummy container with the name "webhost" attached to this network:

$ docker container run --name webhost --network internal_network httpd

Create a new API calling "webhost" and using a self-managed APIcast:
3.1. Private Base URL: http://webhost:80
3.2. Staging and Production Public Base URL: http://localhost:8080
3.3. Update the Staging Environment and Promote to Production.

Deploy an APIcast self-managed container based on any of the Versions described above (in the example below, 'registry.access.redhat.com/3scale-amp23/apicast-gateway:latest' is being used):

$ docker container run --name apicast -e<EMAIL_ADDRESS>registry.access.redhat.com/3scale-amp23/apicast-gateway:latest

Attach the Internal Network to the container:

$ docker network connect internal_network apicast

Open a shell (bash) into the currently running apicast:

$ docker exec -it apicast bash

Curl the hostname "webhost" in order to ensure that the O.S. level name resolution is working:

$ curl -X GET -I http://webhost:80

HTTP/1.1 200 OK
Date: Fri, 19 Oct 2018 18:18:01 GMT
Server: Apache/2.4.34 (Unix)
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html

Use the same command on APIcast:

$ curl -X GET -I http://localhost:8080?user_key=<user_key>

HTTP/1.1 503 Service Temporarily Unavailable
Server: openresty/<IP_ADDRESS>
Date: Fri, 19 Oct 2018 18:18:46 GMT
Content-Type: text/html
Content-Length: 219
Connection: keep-alive`

Observe the following lines on the APIcast Stdout/Stderr:

2018/10/19 18:19:31 [error] 34#34: *86 [lua] balancer.lua:41: get_peer(): could not select peer: empty peers while connecting to upstream, client: <IP_ADDRESS>, server: _, request: "GET /?user_key=<user_key>
HTTP/1.1", host: "webhost"
[19/Oct/2018:18:19:33 +0000] localhost:8080 <IP_ADDRESS>:56488 "GET /?user_key=<user_key> HTTP/1.1" 503 219 (4.100) 2.1

The results above differs when using a full domain name with dots - e.g. "webhost.internal_network" as the Private Base URL:

$ curl -X GET -I http://webhost.internal_network

HTTP/1.1 200 OK
Date: Fri, 19 Oct 2018 18:23:11 GMT
Server: Apache/2.4.34 (Unix)
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html

$ curl -X GET -I http://localhost:8080?user_key=<user_key>

HTTP/1.1 200 OK
Server: openresty/<IP_ADDRESS>
Date: Fri, 19 Oct 2018 18:24:03 GMT
Content-Type: text/html
Content-Length: 45
Connection: keep-alive
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes

[19/Oct/2018:18:24:03 +0000] localhost:8080 <IP_ADDRESS>:56610 "GET /?user_key=<user_key> HTTP/1.1" 200 45 (0.900) 0`

Current Result
APIcast doesn't resolve hostname, only hostname.domain.
Expected Result
APIcast should resolve both hostname and hostname.domain.
Additional Information

Since the O.S. resolves both hostname and hosnamet.domain, we are able to isolate this issue to the APIcast name resolution.

Adding the host in /etc/hosts doesn't solve the issue.

@estevaobk thank you! Great steps to reproduce.
Here is some additional research:
Using docker nameserver:
# /etc/resolv.conf
nameserver <IP_ADDRESS>
options ndots:0

;; QUESTION SECTION:
;webhost.internal_network.							IN	A

;; Query time: 1 msec
;; SERVER: <IP_ADDRESS>#5353(<IP_ADDRESS>)
;; WHEN: Mon Oct 22 09:26:41 UTC 2018
;; MSG SIZE  rcvd: 25

;; QUESTION SECTION:
;webhost.internal_network.
I'll check why we have done that when GitHub is back up.

@estevaobk as a workaround you can set proper search scope in /etc/resolv.conf like:
search internal
nameserver <IP_ADDRESS>
options ndots:0

In plain docker that is possible by using --dns-search flag when starting the contianer.

@ddevaal v3.0.0 is significantly different from now. The logic of resolving changed several times since then.

Yes, this documentation issue is related #1373


TCPClient: Add buffer arithmetic

Add buffer arithmetic to forward buffer if not all bytes have been read in one pass.

Thanks!


Allow Associated Objects to extend their Active Record

If we eager load the Associated Object class when calling has_object we can have an extension class method fire that can extend the Active Record class.
class Post::Publisher < ActiveRecord::AssociatedObject
  extension do
    has_many :contracts, dependent: :destroy

    after_create_commit :publish_later_after_signed

    private def publish_later_after_signed
      # An integrating method that operates on `publisher`.
      # A little tough to generate an example since we're now mixing in a `contracts` concept.
      publisher.publish_later if contracts.all?(&:signed?)
    end
  end
end

I'm still not quite sure how I feel about this. I'll write some documentation later, after I've sat with this some more.
@garrettdimon this doesn't quite get us to the automatically scoped validations, but is this closer to what you were talking about with replacing those wrapping ActiveSupport::Concerns ala kaspth/conventional_extensions?
@natematykiewicz is this something that would be useful to you? Does this seem clear enough? Would it break your app if we eager-loaded the Associated Objects (due to autoloading it should be fine)?

@seanpdoyle have you tried using this gem yet? Would this be something you'd be interested in?

I'm not sure if I'd use that feature or not, but it makes sense. Also, I think this feature or not, we should eager load (when eager loading is enabled) AssociatedObject and ActiveJob Performs classes. If they aren't eager loaded in production, we'd end up using more memory than necessary.

Also, I don't think this would cause me any problems. I've assumed they work like models where they're eager loaded in production and lazy loaded in development. If not, I think we should change that.

I think I'd have to tinker with it and see how it feels, but just looking at it, it sure seems like a good approach.

@garrettdimon nice! There's also no rush on this, so take your time. I wonder how we explain it to people, since it could be a bit hidden. I could see an alias_method :has_extending_object, :has_object to help clarify that something happens in the other file. Of course, post.method(:<something>).source_location still points to the right location.

I'm not sure if I'd use that feature or not, but it makes sense. Also, I think this feature or not, we should eager load (when eager loading is enabled) AssociatedObject and ActiveJob Performs classes. If they aren't eager loaded in production, we'd end up using more memory than necessary.

@natematykiewicz we're just leaning on app/models being set up for eager-loading so both Associated Objects and ActiveJob::Performs will be eager-loaded when the app is.

Also, I don't think this would cause me any problems. I've assumed they work like models where they're eager loaded in production and lazy loaded in development. If not, I think we should change that.

Yeah, that's how it works before this PR. However, if we shift to loading the Associated Object when has_object is called, then we can inject extensions into the record class — and obviate some needs for wrapping ActiveSupport::Concerns.
Basically, using the example from the description, before this PR it'd be common to do something like this:
# app/models/post.rb
class Post < ApplicationRecord
  include Published
end

# app/models/post/published.rb
module Post::Published
  extend ActiveSupport::Concern

  included do
    has_many :contracts, dependent: :destroy

    has_object :publisher
    after_create_commit :publish_later_after_signed
  end

  private def publish_later_after_signed
    publisher.publish_later if contracts.all?(&:signed?)
  end
end

So we're splitting the extension/integration into a wrapping Concern, but what if we could bundle that into the Associated Object now that they're a domain concept and we're already using them? It gets tricky though, especially communicating where things come from.

I realized yesterday that I'd probably move the callbacks inside the extension block. I use associated objects with activerecord callbacks a lot. Oftentimes its after_create_commit and then an after_update_commit if saved_change_to some field(s). The after_create_commit doesn't have conditions, the code often looks like:
# model
has_object :foo, after_create_commit: :sync_later
after_update_commit -> { foo.sync_later }, if: :saved_change_to_active?

But with extensions I'd probably just switch that to:
# model
has_object :foo

# associated object
extension do
  after_create_commit -> { foo.sync_later }
  after_update_commit -> { foo.sync_later }, if: :saved_change_to_active?
end

Ship it, Kasper!

@natematykiewicz nice! Sounds good, I think I'll ship this after we get #20 in then, and cut a new release.

@kaspth in your rebase, you lost the eager loading of the associated object class.


authentication-ldap.cfg references unused configuration propety

Describe the bug
authentication-ldap.cfg references a configuration property authentidation-ldap.enable. In DSpace 6 this had a comment that this variable was used in JSPUI only. In DSpace 7 this comment is changed, but the property still exist. I was not able to find any reference to this configuration property in the entire DSpace backend. If the property is not used anywhere, we should remove it.

This is likely just been overlooked & should be removed.  Needs a volunteer to investigate & provide a small PR.


Creating typings without a main d.ts

Hi there, Is there a way to create typings without a main d.ts ?
I have a project that doesn't have a main export, but a couple of modules export.
It would be something like angular2 has, that it doesn't have a index.d.ts or angular.d.ts or main.d.ts
If you want something you go 'angular2/....' something.
is this possible?
Thanks!

@siulung4073 In the current version, no. However, it is simple to support this and something I've been meaning to add (see https://github.com/typings/typings/issues/43). If you use a files array in typings.json and reference .d.ts files, I'll support it ASAP.

Great! And what about cases where you dont own the library o package you are trying to create typings for, like with angular2 that it doesn't have a typings.json and one can't specify this files array.
Wouldn't be possible to just specify a base folder so that typings install can work with every d.ts it finds. After all one could import any file that exports something inside that base folder, so creating a bundle for every d.ts file there wouldn't be that bad. Something like dts-generator does when the library doesn't have a main.d.ts
For typings install path wouldn't be a problem, for github you could download the base folder specified in the url and make the evaluation later.

Could you give more information on what you're trying to type? Is it actually angular2? I'd prefer not to do glob expansions right now, since it'll increase complexity quickly (I'll need to implement glob ignore, figure out how to expose this in typings.json, etc). Also, typings install works over HTTP where you can't just do an ls. It would certainly need some tweaking to make something like this work, so I'd like to understand the use-case more before I ride blindly into implementing it.

No, is not angular2 specifically, but it could.
For example, on one hand I have an angular app, where I use JSPM. I installed angular2 there, and as you know VS and tsc are complaining about not finding modules. The angular2 installed folder has the d.ts files along with the generated js files, but without ambient modules. Since they dont have a main.d.ts I can not use typings. So this would be one possible case.
On the other hand, I have an angular package I created. where I wanted to expose a couple of modules but not through the main one, instead each one separately (something like angular2 does).
This is the repo and this one is the release repo.
If you see, I have the entities and servicies modules that I wish to expose on their own.
Right know i'm re exporting them through the index module, so I can use typings to create the d.ts bundle.
I honestly dont know how typings does things so I can't comment on that, but probably in the case of specifying a folder and not a main file, you could bundle every d.ts without filtering or globs support. Where you can select a main file or a base folder.
If you check dts-generator, they dont filter anything, they just grab everything inside the base folder.
And I think that wouldn't be that bad or wrong since you could potentially import any module inside any package.
I know you want to do it correctly, but it could be something like a minor feature, with room for future improvements, like globs, ignores, etc.
Just a thought. Thanks!

Thanks for the awesome feedback. It's definitely helpful. Would it be reasonable if I just start with files for now, then expand to additional features if there's a need for it? Installation is quite straightforward and pretty well-defined for now, so I'd love to keep it that way as long as possible.

ok, great. And if we keep going with the angular2 example, how would you do
it in this case?
Imagine I have it installed in<EMAIL_ADDRESS>, which it doesn't have an index.d.ts or typings.json file.
How would you do it with files?
On Wed, Jan 13, 2016 at 7:11 PM Blake Embrey<EMAIL_ADDRESS>wrote:

Thanks for the awesome feedback. It's definitely helpful. Would it be
reasonable if I just start with files for now, then expand to additional
features if there's a need for it? Installation is quite straightforward
and pretty well-defined for now, so I'd love to keep it that way as long as
possible.
—
Reply to this email directly or view it on GitHub
https://github.com/typings/typings/issues/108#issuecomment-171453302.

It was never a goal, unfortunately, to make projects that aren't related to the type definitions work. Typings was designed to consume type definitions and resolve over typings.json recursively. The fact it works with NPM modules is because some modules work flawlessly without any typings.json dependencies (either they have no dependencies or all their dependencies have inlined type definitions themselves).
The fact it has worked is a pleasant coincidence, but I don't know how far I want to go to make this use-case work when it should be obsoleted by the compiler anyway.
What I can do though, is open a PR to the team that uses typings.json once the files field is supported. That feels like the best way to support it, sorry though, I know it's not the preferred answer.

:+1:


revert graphiql sample removal

see #3667

Going to pull this out for now.  I can add it back depending on the outcome of #3667, but I don't want to clutter up the pull request queue.


Remove old deprecated construction variables

As listed in #1954, these have been deprecated in docs for a long time.  These six are tool-specific, PDFCOM in dvipdf;
WIN32_INSERT_DEF, WIN32DEFPREFIX, WIN32DEFPREFIX, WIN32DEFSUFFIX WIN32EXPPREFIX, WIN32EXPSUFFIX all in mslink. All had replacement names introduced a decade or more ago.
No test impacts, these were not tested for, and it is not an error to use an undefined construction variable so there's no reasonable test to add.
Signed-off-by: Mats Wichmann<EMAIL_ADDRESS>Contributor Checklist:

[ ] I have created a new test or updated the unit tests to cover the new/changed functionality.
[X] I have updated CHANGES.txt (and read the README.rst)
[X] I have updated the appropriate documentation

Sigh. I left the xml broken somehow. Checking into it.


Fixed some more grammar issues

fixed some more spelling and grammar issues that me and others created and also added some more info in some places

This branch has conflicts that must be resolved, thank you


README: Update libgc's URL

Signed-off-by: Jean-Christophe Beaupré<EMAIL_ADDRESS>

+1


Add RadioListItem use-case to a11y_assessments

Adds a use-case screen for RadioListTile, similar to the CheckBoxListTile. This screen can help test scenarios such as the one reported in https://github.com/flutter/flutter/issues/126805.

I keep forgetting that we also have tests for this package. Hold on. Adding a test.

Added a test. Also noticed we didn't have a test for the check box use-case, so I added a test there too.


Broken link or service is no longer available

Link to a Keyword Analysis under Domain Names -> Analytics leads to a Page not found page.

Thanks!  I should be pushing an update this weekend so I'll roll this into it.

Removed that link and found a similar tool as a replacement.


[test] fix some parser, addr, move-package and ir compiler related tests

Motivation
(Write your motivation for proposed changes here.)
Have you read the Contributing Guidelines on pull requests?
(Write your answer here.)
Test Plan
(Share your test plan here. If you changed code, please provide us with clear instructions for verifying that your changes work.)

relate to https://github.com/starcoinorg/move/issues/19

follow up of #21


Can I somehow connect this with MusicPlayer class?

As stated, this is a FAKE VuMeter/Equalizer. So you can display it over your video as a lightweight solution to notify user that a sound is playing. as simply link in onPause and in onResume the play/stop method of this view.


zsh shell integration isn't respecting new lines when continuations are used

From @pfitzseb in https://github.com/microsoft/vscode/issues/155315#issuecomment-1188013188

Then again, the zsh integration doesn't do linebreaks well either:
Peek 2022-07-18 20-10.webm

the \n char isn't coming across in run recent

/duplicate #157546

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


DevOps Pipelines Automation with Cloud Build and Triggers

Article checklist
Pre-submission checks

Please ensure that you have only one open topic suggestion (issue) + in-review article (linked pull request) at a time. This will ensure that we complete the review process in a timely manner from inception to publishing

If you have not already, please go over our Resources Page for more tips and tricks on how to improve your overall technical writing so reviews are swifter, increase the chance of a payout and provide more value to our readers.

For first-time contributors and for more details on our submission guidelines, see our Contributing Guidelines.

Formatting and structure checks

[x] Have you used the correct folder and file structure? - see Contribution Guidelines

[x] Is your article properly formatted in Markdown? - see Github Markdown guide

[x] Have you used our preferred heading structure? - H3 (###) and up

[x] Does your article follow any of the suggested structure formats? - see example formats

[x] Is your article over 750 words? - Tool: Wordcounter.net

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[x] Have you included a hero image that is 600x400 pixels, under 300KB in size, and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[x] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[x] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[x] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

Topic suggestion this closes

Remove the backticks and add the issue number below to link and close your Topic Suggestion (issue) when your article has been published (PR has been merged). See this video for more details.

This closes #5258

Thank you sir @srishilesh. All the minor changes have been rectified.

Hello @damikanye
Upon running your article through our 3rd party plagiarism checker it seemed to raise a few flags and the % was higher than we typically accept.
Please see attached PDF - and revisit the article to ensure we are contributing wholly unique and original content.
Be sure to see our resources page to see more info on plagiarism and what is considered as such.
DevOps Pipelines Automation with Cloud Build and Triggers #5442 Copyleaks Report.pdf

@srishilesh done with the revisions sir.

I'll complete my tech review by tomorrow.

Thank you @srishilesh. I will go through the recommended course and improve on my next writing.

Hi @damikanye
Awesome job on the article.
cc: @srishilesh


Pen brush lines jagged in Chrome

Something changed in Chrome with an update. Pen brush lines look bad now. I guess Chromium attempting to optimize context.arc.
Chrome 106.0.5249.119 MacOS

Firefox 105.0.3 MacOS

Same problem on other drawing sites. Another reason to stay away from Canvas API.

There was a problem that drawing was slow when pen pressure was enabled in Chrome 106.
At the same time, the WEBGL context was frequently lost, causing the canvas to disappear.
At this point klecks was the only app I could see the problem with.
This issue did not occur in Firefox and Edge, only in Chrome.
Resetting Chrome settings did not resolve this issue.
However, I uninstalled Chrome and installed it immediately, and all my troubles went away.
I don't know if it's related, but I thought I'd let you know.
Also, Chrome 106.0.5249.119 Windows version seems to have no pen problems.

Zoom 3200%

Zoom 400%.

Zoom 100%

That's interesting. For me the lines also look fine on Windows.

Filed an issue for Chromium
https://bugs.chromium.org/p/chromium/issues/detail?id=1377687

Updating to Chrome Version 107.0.5304.87 fixed it. Tested on multiple machines.


mutations through watchQuery use cacheAndNetwork, which yields unexpected results

the default fetch policy for client.mutate is networkOnly, because it is usually the case that the fields requested correspond to mutated data, and thus are expected to be stale if fetched eagerly from the cache.
However, when a mutation is made with client.watchQuery (such as with the Mutation widget), the cacheAndNetwork policy is used by default, resulting in unexpectedly stale data when an optimisticResult is not provided.
Another serious issue is that the same mutation, with the same variables, might return different entities. If those results are used in parts of the application, the results of the latest usage will overwrite those of the older ones.

To illustrate the issues further:
Mutation results are cached (more or less) under mutationName(data: ${jsonEncode(variables)}), so when an order is created with the same parameters, the previous result will be grabbed from the cache eagerly.
Lets say we have a mutation,
mutate createOrder($placeId: ID!){
  createOrder(placeId: $placeId) { ...orderFields }
}

It is called once, then that order is mutated later, but the results of the mutation are still used in the UI as a list item. That mutation sits in the cache like so:
{
  "Mutation": {
    "__typename": "Mutation",
    "createOrder({\"data\":{\"placeId\":\"bar-3-aaaa-aaaa-aaaa-aaaaaaaaaaaa\"}})": {
      "$ref": "Order:old-closed-order-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
    }
  }
}

If a new mutation is made to create a fresh order:

It's eager result will be the old order
the new order will overwrite the old order reference in the cache
any UI using the old order mutation results will be overwritten (incorrectly)

A potential workaround for now is to use a differentiating variable. Will have to think/investigate more.

This might require some significant refactoring. In apollo, useMutation calls client.mutate, which then calls markMutationOptimistic in the QueryManager, which just passes the update callback all the way down to a block within recordOptimisticTransaction. This is very different from what we do, which is to just reuse watchQuery for Mutation.
The quickest way for us to solve this IMO is to add a client.watchMutation with a new default fetch policy FetchPolicy.writeCacheFromNetwork that writes to the cache but does not re-read from the cache, and thus also does not rebroadcast (i.e. isRebroadcastSafe is always false). This would also be a good time to add rebroadcasting to the docs on FetchPolicy. This is not an ideal solution, but it is quick to implement. It also allows for the use case of "incidental post-mutation querying" which users might be making use of without noticing.

Maybe add other general constraints and errors around the mutation code path, as it allows for other jank like https://github.com/zino-app/graphql-flutter/issues/792#issuecomment-761660913

Maybe add other general constraints and errors around the mutation code path, as it allows for other jank like https://github.com/zino-app/graphql-flutter/issues/792#issuecomment-761660913

Closing this with #795 and leaving the more substantial redesign to #798

Closing this with #795 and leaving the more substantial redesign to #798

:tada: This issue has been resolved in version 4.0.0-beta.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.0.0-beta.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fix default locale issues

Fixes #1506
Removing ErrorProne excludes - Fixes #17926
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

WARN: Based on labels, this pull request addresses notable issue but no changes to release note found.


Embed VoxelSets to all VoxelObjects

So as to reduce Voxel data every VoxelObject will have a embedded VoxelSet, allowing for new Voxel data to be indexed into a unique or sharable VoxelSet.

Done, by design all VoxelObjects now need a VoxelSet, and make use of a included default VoxelSet, which contains all Color constants, if no other is specified


Update 2.1 functions, operators, and settings

Fixes 3331.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/e39cf14fcf3f200fde010aeceda2a6b24698853a/


GeoJsonDataSource 'show' property not behaving as expected

When it comes to show/hide a GeoJsonDatasource by changing the state of the associated variable by making use of a Check box, it works fine when the GeoJsonDataSource is a line/polyline, but it doesn't works when the datasource are polygons. The polygon datasource is not particularly large (around 200 polygons). The only way I have seen the polygons are back to the map is when you change any other property, such as alpha, but not by putting 'show' to TRUE. This is an extraction of my code:
const mydata = 'URL to the GeoJson datasource';

class MyMap extends Component {
    constructor(props) {
        super(props);
        this.viewerRef = React.createRef();
        this.sceneRef = React.createRef();
    }

   state = {
   PleaseShow: true,
    ...
    };

    handledataShowChange = (e) => {
        e.target.checked ? this.setState({ PleaseShow: true }) : this.setState({ PleaseShow: false });
};

    renderGeoJsonDataSources() {
    const { PleaseShow } = this.state;
    return (
        <Fragment>
        <GeoJsonDataSource
            data={mydata}
            show={PleaseShow}
            fill={Color.RED}
            clampToGround={true}
        />
        </Fragment>
    );
}

render() {
    return (
        <Viewer
            ref={this.viewerRef}
            ...
        >
            <Scene ref={this.sceneRef} />
            {this.renderGeoJsonDataSources()}
        </Viewer>
    );
}
}

And again, it works fine with lines.

Is this issue not related to #115 ? This issue is probably due to Cesium itself.

No, it is not, because in this case, the polygon loads correctly (it is a simple polygon though). The problem is that if you change the property Show, from true to false (after the first load), it disappears from the map as expected, but when you change back from false to true, the polygon doesn't pop up.

I fixed the bug and added a story to storybook. Please try resium v1.9.0-beta.0.
https://resium.darwineducation.com/examples/?path=/story/geojsondatasource--show


JSON Schemas

Add JSON Schemas to validate the config file, world file, and room files.

We now have schemas for the World and Room files, and only need to add a schema for the Config file.

Completed in 92a2dcc0b50b7ed1597c141b7017ad72f7113d1c.


Github Connection not working - Chapter 6

hi.
I have the GitHub connection problem from Chapter 6.
Error: --choose github repo-- and there is nothing to choose from
connection is fine.
Can you please check your code one more time. Maybe there was changes.
Thanks in advance

@abay-ongar-botabek thanks for reporting.
Are you running the 6-end codebase from our repo? Please try running that with your environmental variables and let me know.

Hi.
Yes, I am running the 6-end codebase from your repo. And I add .env file with my environmental variables.
Book's title
Books price
Github repo ... error when choosing.
Save Github repo is required
Thanks

Thanks for confirming. I dug deeper and see where the issue is coming from.
In server/github.js file, we have the following code:
function getRepos({ user, request }) {
  const github = getAPI({ user, request });

  return github.repos.listForAuthenticatedUser({
    visibility: 'private',
    per_page: 100,
    affiliation: 'owner',
  });
}

By having visibility: 'private', we specify that only private GitHub repos will appear in your list of repos. When you fork our public demo-book repo, it becomes a public repo in your GitHub account. Thus, it is will not appear in your list of repos. In the code snippet above, if you change private to public or all, you should be able to see your repos.

This is a good catch! We need to explain to how to copy our demo-book repo and make it private, since the goal of the builderbook app is to sell content that is private.
Here is how you can copy our demo-book repo and make it a private repo in your own GitHub account.
(1) Create an empty, private repo in your GitHub account.
(2) On your local machine, run git clone --bare https://github.com/async-labs/demo-book.git
(3) Access the code you just cloned: cd demo-book.git
(4) Push this code to your private repo: git push --mirror https://github.com/yourusername/private_repo.git
Now if you go to the private repo you created, you should see that it contains the content from our demo-book repo.
More details on creating a private repo from a forked public repo: https://codeslake.github.io/github/How-to-make-forked-private-repository/

I will update the book content with such instructions. Let me know if they work for you.

Hi.
I did everything as you wrote.
And it is working.
Huge thanks for your response.
As a beginner it is hard for me to fully understand every code yet.
I was stuck for this part for about 2 weeks.
I should have asked here for help.
Again,  huge thanks for your response. It is great to have support from your team.


add logout function

@WongJason please review/test thank you!

This is to fix https://github.com/summer17-csc648-team1/warehausmedia/issues/2.

Looks good to me.


Toolbar items overlap some UI elements.

Have you modified the theme or added extra css? The help (?) toolbar button is supposed to be hidden by default.

Nope not at all.

I'm not seeing this on vencord or vesktop. What client mod and discord version are you using?

i've used vencord when i noticed this bug, now im using better discord.

I don't see this on betterdiscord either. Do you have any plugins? Also, make sure you have the latest version of the theme.

It is caused by the chosen discord language. You are using a polish version of discord on which it is bugged.

Ah I forgot about that, the aria-labels are the only way to uniquely identify those buttons, so they don't work in other languages. I will try to use some other method, but for now you can just change the aria-label selectors in the code.

should be resolved in the latest update, i have used a method other than aria-labels.


Unauthorized (401) response not processed correctly

The Problem created for the response below doesn't contain enough information to understand
{"error":"unauthorized","error_description":"Full authentication is required to access this resource"}

Problem{type=about:blank, title='null', status=0, detail='null', instance=null, data=null}

Perhaps the line
    if (problem.status() == 0 && response.statusCode() == 400)

should accommodate for 401 as well

Unauthorized (401) response not processed correctly
The Problem created for the response below doesn't contain enough information to understand

This is related to Nakadi's https://github.com/zalando/nakadi/issues/645 - the server returns the wrong structure. Do you have an example request of a bad response structure returned with a 401?

There's a workaround in 0.8.6. It's be great if you could go upstream and comment on or like zalando/nakadi#645. Having to patch around what should be a simple server fix in api clients is unfortunate.

Actually, it suffices for me to not provide an access token and I get a 401 response.

Did you solve this problem??


Add files via upload

Site CV

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: renatoallart sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

EDIT SITE


Can't create cover

When you add a picture as a file in a card and then select 'configure cover' for the first time, the button 'Create Cover' is under the picture ....

Can't reproduce. Might have been fixed already.


Add API to access secondary devices in instance group

Needed for DLA support in TRT backend

Bump the minor version number.

It is being merged in my tanmayv-dev branch which already has a version up. We can revisit the minor version once merging tanmayv-dev into main branch.


Document usage of this builder with GCB

Progress toward https://github.com/GoogleCloudPlatform/buildpacks/issues/17

Thanks!

/gcbrun


Any Roadmap to Support Kotlin Multiplatform?

Is your feature request related to a problem?
No
Describe the solution you'd like:
Sample apps using KMM or KMP application with Hilt and ktor.
Describe alternatives you've considered:
Nil

Hey @gusdoe, sandwich already supports KMP for sandwich, sandwich-ktor, sandwich-ktorfit, pakcages.

Thank you for your prompt answer!


fix(docs): fixes hoc cheatsheet link in guides section

Addresses concerns presented in #239
This change fixes the HOC cheatsheet link broken on this page. Currently it is a broken link and I fixed it by pointing to the intro of the HOC section.

Got false positives?

Make changes to the global settings spellcheck.json in /artsy/peril-settings.

Typos for hocs.md

Line
Typo

6
There is now a dedicated [HOC cheatsheet](./HOC.md) you can refer to g

6
refer to get some practice on HOCs.**

  Generated by :no_entry_sign: dangerJS against d5f7b33cbd2899fce4a176171564f4c51d16d120

thank you!


Support for aliases

Could you clarify what you would like to be implemented?

In Rust, you cannot rename the name you import a type as; for example:
use std::collections::Vec as Array;

struct foo {
    vec: Array
}

You cannot rename the Array type here.

Adding support for aliases is up to the rust-analyzer language server to implement. However, I added a check that will cancel the rename early if the symbol under the cursor cannot be renamed.


[Story] Capture and store historical data of the COVID-19 apps detected

User story
As a journalist or researcher, I would like to be able to compare changes over time of COVID-19 apps.
Impact
The ability to compare changes of an app over time as it relates to change in usage, updates to permissions, or even developers, allows journos and researchers to better understand the implications things such as:

legal requirements
adoption rates
privacy improvements or emerging concerns

Background
Currently we do not capture data over time and therefore lack the ability to do deeper analysis of changes we've seen in the COVID-19 app ecosystem.
From August 1, 2020 to September 8, 2020, we identified several interesting changes including higher adoption of COVID-19 apps in Turkey and Malaysia (doubling their device installs from 5 million to 10 million). The only reason we captured this information was due to presentation requests so we manually looked at the data and drew up a slide deck.
Acceptance Criteria

[ ] explore and identify existing visualization possibilities with existing data; and gaps (@zach-anderson)
[ ] explore data repositories (e.g., AWS, snowflake, etc.) and cost (@carmayna)
[ ] design brainstorm on structure, implementation, mapping task breakdown and owners (@carmayna @zach-anderson @JDBnhs @megdeb)

Engineering Notes
Include engineering or other technical notes that would be helpful for the task at hand.

Design pattern for versioning for DynamoDB
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort-keys.html#bp-sort-keys-version-control


Way to mount a partition from the disk the windows is installed.

I whish to mount a partition in where my current windows running is installed
I have a dual boot windows and linux at the same disk, and I'd like to work in wsl mounting the ext4 partition.
Is that possible?
I think there is something related to the issue #5997
I read this article and the note says:
# Note

Administrator access is required to attach a disk to WSL 2.

The WSL 2 mount command does not support mounting a disk (or partitions that belong to the disk) that is currently in use.

wsl --mount always attaches the entire disk even if only a partition is requested.

You can't mount the Windows installation disk.

**You can't mount the windows installation disk... **
May is there a work arround ?
As you can see the partition 5 is where my linux is installed.

same problem here...
any other solution?

Same here...

Would love to know too...

Same here ...

There's no workaround, it's hinted at in the line "wsl --mount always attaches the entire disk even if only a partition is requested.". The entire disk needs to be accessible even if you're only interested in only one partition.

This needs to get fixed, currently this makes mounting partitions on systems with only one physical drive impossible, which means it's effectively impossible to access ext4 partitions from Windows on such machines.

 It would make it so easy for one too also maybe chroot into a existing linux partition on the same drive.

I'm half and half thinking it's either malicious design or the windows devs just suck

I'm half and half thinking it's either malicious design or the windows devs just suck

i belive it's the second one

I've now read multiple times that it's bad and corrupts your data if two servers mount different partitions on the same disk, as well as I've read multiple times that it's safe if they're different filesystems. This question has three answers, two supporting it and one against it, and all three are downvoted and at -1.
The WSL subreddit mod stated that it's technically impossible for WSL to mount any partition on an already mounted drive. You might try installing a ext4 driver for Windows.

@PinkSerenity what there is a ext4 driver for windows? Then there is no need for WSL at all

@PinkSerenity what there is a ext4 driver for windows? Then there is no need for WSL at all

Kinda, yeah. It's an active driver, so it requires a service that runs in the background. You don't have to enable autostart though, so you can simply start it when you need it and select the file-system you want to mount. It will then be mounted and assigned a letter so it is accessible in the explorer. I don't know if autostart can automatically do that.
Here: https://github.com/bobranten/Ext4Fsd

They now have a partition option but it errors as "The process cannot access the file because it is being used by another process.
Error code: Wsl/Service/AttachDisk/ERROR_SHARING_VIOLATION"


[HUDI-242] Support for RFC-12/Bootstrapping of external datasets

[HUDI-418] Bootstrap Index Implementation using HFile with unit-test
[HUDI-421] FileSystem View Changes to support Bootstrap with unit-tests
[HUDI-424] Implement Query Side Integration for querying tables containing bootstrap file slices
[HUDI-423] Implement upsert functionality for handling updates to these bootstrap file slices
[HUDI-421] Bootstrap Write Client with tests
[HUDI-425] Added HoodieDeltaStreamer support
[HUDI-899] Add a knob to change partition-path style while performing metadata bootstrap
[HUDI-900] Metadata Bootstrap Key Generator needs to handle complex keys correctly
[HUDI-424] Simplify Record reader implementation
[HUDI-423] Implement upsert functionality for handling updates to these bootstrap file slices
[HUDI-420] Hoodie Demo working with hive and sparkSQL. Also, Hoodie CLI working with bootstrap tables

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@bvaradar @umehrot2 after many valiant efforts, finally rebased the original #1678  here. Will be working on getting the code review comments addressed and tests passing over the weekend.
Will be then trying to redo #1702 on top of that.

Behind on getting the tests to pass again. Working on it

@vinothchandar conflicts...

@yanghua on it. still trying to make the tests all pass with master

finally @bvaradar @umehrot2 tests passing now.

finally @bvaradar @umehrot2 tests passing now.

@vinothchandar So what is the next step ? Do we do a thorough review of this ? Also shall I start to rebase my changes on top of this ?

@umehrot2 you can rebase now !


Python debugger breaks on caught exception within a decorator and context manager

Type: Bug

Behaviour
Expected vs. Actual
Expected behavior: If breakpoints are enabled only for Unchaught Exceptions and User Uncaught Exceptions, the debugger should not break in the code sample below.
Actual behavior: The debugger breaks on line 19.
Steps to reproduce:

Open VS code
Run the code sample below (integrated terminal):

from contextlib import contextmanager
from functools import wraps
def some_decorator(parameter):
    def generic_wrapper(func):
        @wraps(func)
        def wrapper(self, *args, **kwargs):
            with self.some_context_manager(parameter):
                return func(self, *args, **kwargs)
        return wrapper
    return generic_wrapper

class ExampleClass:
    @some_decorator('some value')
    def get_property_value(self):
        return {}

    @contextmanager
    def some_context_manager(self, parameter):
        raise Exception("User uncaught exception!")

example = ExampleClass()
try:
    test = example.get_property_value()
except Exception as ex:
    print("Exception successfully caught!")

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.10.6
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Global
Value of the python.languageServer setting: Default

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

Exception has occurred: Exception       (note: full exception trace is shown but execution is paused at: some_context_manager)
User uncaught exception!
  File "...\TestException.py", line 19, in some_context_manager (Current frame)
    raise Exception("User uncaught exception!")
  File "...\TestException.py", line 7, in wrapper
    with self.some_context_manager(parameter):
  File "...\TestException.py", line 23, in <module>
    test = example.get_property_value()

(paths edited for privacy)

User Settings

languageServer: "Jedi"

Extension version: 2022.12.1
VS Code version: Code 1.70.1 (6d9b74a70ca9c7733b29f0456fd8195364076dda, 2022-08-10T06:08:33.642Z)
OS version: Windows_NT x64 10.0.19044
Modes:

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz (8 x 2304)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.73GB (7.64GB free)

Process Argv

Screen Reader
no

VM
0%

It's been a month and there is no response yet on my report above. Should I provide more information? Am I supposed to add labels to this report? (If so, how?) Please let me know if this is not the right place for this bug report.

So sorry for not getting back to you, @damien135 ! It looks like GitHub Actions messed up and didn't run to add our triage-needed label, so this fell through the cracks. I am moving this over to debugpy now to see if they know what's going on.


arrow-cpp: fixup after protobuf bump

Description of changes
This solves a CMake dependency resolution issue. Arrows FindProtobufAlt module looks for Protobuf with an uppercase P, which is matched by another find module that is provided by CMake itself. When it gets to look for grpc that tries to resolve protobuf with a lowercase p, which is matched by the upstream provided protobuf-config.cmake. At this point conflicting target definitions are detected and the configuration process aborts.
The patch proposed here modifies the arrow module so that it will protobuf-config.cmake as well.
Targeting #248496.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@ofBorg eval


Empirical Potentials vs AtomsCalculators

What should be in EmpiricalPotentials and what should be in AtomsCalculators?
For example, I would like to implement a new model that is specifies a site potential. In order to leverage the generic implementation available in EmpiricalPotentials I now need to depend on all of EmpiricalPotentials. It may be better to have to rely solely on AtomsCalculators which gives a more light-weight dependency, but also doesn't pre-assume the nature of my model (it is not an empirical potential but an ML potential).
I don't think there is a huge urgency to decide on this organizational question, since we are still in the experimentation phase. But it would be good to jot down some thoughts.
Maybe spinning out a package such as InteratomicPotentialsCore or something along those lines?

It seems we have a similar situation here as with AtomsBase - a debate whether AtomsBase and AtomsCalculators should be purely interfaces, or whether they should also provide reference implementations.
We are such a small community that I think we should also provide reference implementations so that we minimize duplication or work. But it is obviously not my decision.

moved to AtomsCalculatorsUtilities


Macro redefinition warning with LuaJIT 2.1.0-beta3

I was testing the new version of LuaJit and when compiling my program i got some macro redefinition warning that didn't happened with version -beta2. I haven't found any issues so far, the library seems to work as before.
System:
GCC 6.3.1 20170306
Arch linux 4.10.13-1-ARCH
Warning:
sol.hpp:1114:0: warning: "luaL_newlib" re-definido
 #define luaL_newlib(L, l) \

In file included from /usr/local/include/luajit-2.1/lua.hpp:5:0,
                 from sol.hpp:801,
                 from main.cpp:1:
/usr/local/include/luajit-2.1/lauxlib.h:125:0: note: essa é a localização da definição anterior
 #define luaL_newlib(L, l) (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))

Test program:
#include "sol.hpp"
#include <iostream>

int main(){
    sol::state lua;
    // open some common libraries
    lua.open_libraries(sol::lib::base, sol::lib::package);
    lua.script( "print('bark bark bark!')" );

    std::cout << lua_version(lua.lua_state()) << '\n'; // lua_version was added in beta3

    return 1;
}

Compile command:
g++ -std=c++14 main.cpp -Ixxx -Lxxx -lluajit-5.1 -o main

That's unfortunate. I'll have to update the wrapper to handle the new LuaJIT beta changes... Hopefully hte LUAJIT_VERSION defines and macros have something I can use to tell that it's beta3 versus beta1/beta2.

Not entirely sure if this applies to this problem but there was a discussion on the luajit mailing list about detecting the lua version maybe it helps:
https://www.freelists.org/post/luajit/ANN-LuaJIT210beta3,3

Added a basic check for LuaJIT 2.1.0. Note that it will fail beta2 users, as the major version number is still the same and LuaJIT, for some reason, doesn't change the patch with its semver scheme I guess.

1>luajit.lib(lj_api.obj) : error LNK2005: _luaL_setmetatable already defined in main.obj <luajit\src\lj_api.c-L1048>
1>luajit.lib(lj_api.obj) : error LNK2005: _luaL_testudata already defined in main.obj <luajit\src\lj_api.c-L923>
1>luajit.lib(lj_api.obj) : error LNK2005: _lua_copy already defined in main.obj <luajit\src\lj_api.c-L191>
1>luajit.lib(lj_api.obj) : error LNK2005: _lua_tointegerx already defined in main.obj <luajit\src\lj_api.c-L408>
1>luajit.lib(lj_api.obj) : error LNK2005: _lua_tonumberx already defined in main.obj <luajit\src\lj_api.c-L345>
1>luajit.lib(lj_api.obj) : error LNK2005: _lua_version already defined in main.obj <luajit\src\lj_api.c-L115>
1>luajit.lib(lib_aux.obj) : error LNK2005: _luaL_setfuncs already defined in main.obj <luajit\src\lib_aux.c-L137>
these are also all already defined in LuaJIT-2.1.0-beta3 (compiled with windows+msvc14)


SCI Allow consecutive write to tx buffer in async mode

tx_idle check only valid for sync sending. This check prevented a write to async buffer during a transission in progress

Thank you for sending pull request. Now I am reviewing this with dev team.

Thank you very much. Now Renesas is fixing this issue. We will apply this workaround in individually. I will inform when finishing this.

@spresg We have updated RX Driver Package to v131 now. Please confirm this pull request for this latest RX Driver Package. Can we merge this pull request into our master branch?


Update badges and workflows

I completely missed that the package uses main and not master as default branch (BTW CompatHelper seems to work, it also noticed that a key COMPATHELPER_PRIV exists).

Maybe I copied something wrongly.  I generated and added a new key pair now.

Is that enough of a check that this is good now: https://github.com/TuringLang/AbstractPPL.jl/runs/2303403984?check_suite_focus=true?  Or will the trigger work differently if there is actually something to update?

Unfortunately, it doesn't ensure that it's correct. The (possibly resolved) problem occurs only when CompatHelper actually opens a PR. Without the key or an incorrect key it can't trigger any other Github actions but this is not relevant for the check if any newer versions exist.

Hm, I thought we would notice it the next time CompatHelper runs, but appearently that is not so often.  Do you think I should just merge and wait, or wait for a test case, first?

Oh CompatHelper runs every day at midnight but the error only occurs (or hopefully not anymore...) if it opens a PR which doesn't happen too often since the package only depends on AbstractMCMC IIRC.

So I'd merge the PR without checking it - the worst thing that can happen is that it does not work the next time CompatHelper opens a PR and one has to close and reopen its PR manually to trigger the CI tests.


Use Cirrus image's fastlane instead of freezing our own set of gem dependencies

Fixes #26723

umm I broke the linux gallery deploy. The mac images have fastlane pre-installed but it's not in our linux docker images. Need to install fastlane on those too.


SelectMenu popper position inside a Card

Environment

Operating System: Linux
Node Version:     v18.18.0
Nuxt Version:     3.8.2
CLI Version:      3.10.0
Nitro Version:    2.8.0
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, modules
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Version
v2.11.0
Reproduction
https://stackblitz.com/edit/nuxt-starter-toondf?file=app.vue
Description
When using a SelectMenu, with the default popper strategy (absolute), inside a Card, the popper div does not overflow and creates a non usable UI
Additional context
The options div gets cropped

Using the fixed strategy doesn't really fix the problem as the options div takes up the full width

Logs
No response

The UCard default base config has an overflow-hidden class. If you add :ui="{ base: 'overflow-visible' }" to the UCard, this should fix that for you 😃

For reference: https://github.com/nuxt/ui/issues/806

The UCard default base config has an overflow-hidden class. If you add :ui="{ base: 'overflow-visible' }" to the UCard, this should fix that for you 😃

True, but the overflow-visible breaks the Card's rounded corners

It's better to remove it completely: https://github.com/nuxt/ui/issues/806#issuecomment-1757611901

It shouldn't break the corners. At least it's not here https://stackblitz.com/edit/nuxt-starter-qmhfww?file=app.vue
Benjamin is right though, better to remove it completely

My bad, I was not setting the background on the right property 😞

I've decided to remove the overflow-hidden from the Card by default so you won't have to do this anymore.


Update docs, examples + Fix intermediate hook

The examples should be up-to-date and the README should explain how to interact with the service from the REPL but simultaneously use almosst all the same infrastructure as an API call.
@joshday -
Additionally, I encountered a small bug with the interactivity hook that I think I patched.
Also, I've kept the ARCHITECTURE.md minimal because I'm not sure how aggressive your refactor will be. You can be pretty liberal with changes as long as it matches what's expected in the OpenAPI specification for the Simulation Services.

Codecov Report

Merging #62 (a48b7ac) into main (46f92d7) will increase coverage by 1.67%.
The diff coverage is 52.17%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main      #62      +/-   ##
==========================================
+ Coverage   21.78%   23.45%   +1.67%
==========================================
  Files          13       12       -1
  Lines         280      324      +44
==========================================
+ Hits           61       76      +15
- Misses        219      248      +29

Impacted Files
Coverage Δ

src/contracts/Available.jl
18.18% <0.00%> (-1.82%)
:arrow_down:

src/service/ArgIO.jl
1.96% <0.00%> (-0.27%)
:arrow_down:

src/service/AssetManager.jl
1.81% <0.00%> (ø)

src/service/Execution.jl
3.12% <0.00%> (ø)

src/operations/Operations.jl
34.00% <47.22%> (-27.54%)
:arrow_down:

src/contracts/ProblemInputs.jl
83.78% <100.00%> (+83.78%)
:arrow_up:

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

Wasn't this going to be replaced as per the discussions?

Yes, Five and I discussed him merging it.
I'll merge my branch with main using the ours strategy.  Shouldn't take too long to sort out the resulting mess.


Test:Dont expect GA info after connection

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

Thanks @xpivarc


Create a new logger if the existing one is closed

Also, replace print with Python logger

Pull Request Test Coverage Report for Build 779167130

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

Totals

Change from base Build 779092421:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


Add JSON data adapter

I had the same issue as #236 and #390.
In my case I have many (could be 100) select2 elements with identical options, with thousands of options. Loading all of the options once as JSON on page load results in a better user experience since searching is near-instant and results in much less load on the server due to duplicate searches (admittedly better caching could partially solve this).
Loading the JSON is fairly quick, but select2 doesn't currently provide any way to load JSON data as options without putting them all in the DOM immediately, which is incredibly slow.
I used the following to add a new adapter to select2 that acts like the AjaxAdapter but uses a deferredData option populated with JSON for the data instead of making AJAX requests:
$.fn.select2.amd.define('DeferredLoad', [
  'select2/utils',
  'select2/data/array',
  'select2/dropdown/infiniteScroll',
], function (Utils, ArrayAdapter, InfiniteScroll) {
  function DeferredLoad($element, options) {
    this._deferredData = options.get('deferredData');
    this._previousOffset = 0;
    this._previousIndex = 0;
    this._previousTerm = undefined;

    options.set('resultsAdapter', Utils.Decorate(
      options.get('resultsAdapter'),
      InfiniteScroll
    ));

    DeferredLoad.__super__.constructor.call(this, $element, options);
  }

  Utils.Extend(DeferredLoad, ArrayAdapter);

  DeferredLoad.prototype.query = function (params, callback) {
    var data = [];
    var more = false;
    var offset = 0;
    const pageSize = 100;
    var startingIndex = 0;

    if (typeof params.page !== 'undefined') {
      offset = (params.page - 1) * pageSize;
    }

    // Offset of data in data array to use
    var dataOffset = offset;

    if (params.term === this._previousTerm && offset === this._previousOffset + pageSize) {
      // Continue search where previous left off
      startingIndex = this._previousIndex;
      // Since we're starting the search where we previously left off, we don't need to ignore results up to the offset
      dataOffset = 0;
    }

    var i = startingIndex;
    for ( ; i < this._deferredData.length; ++i) {
      var matches = this.matches(params, this._deferredData[i]);
      if (matches !== null) {
        data.push(matches)
        if (data.length > dataOffset + pageSize) {
          more = true;
          break;
        }
      }
    }
    this._previousIndex = i;
    this._previousOffset = offset;
    this._previousTerm = params.term;

    data = data.slice(dataOffset, dataOffset + pageSize);

    callback({
      results: data,
      pagination: {"more": more}
    });
  };

  return DeferredLoad;
})

var DeferredLoadAdapter = $.fn.select2.amd.require('DeferredLoad');

Usage:
$('selector').select2({
    deferredData: data, // JSON in select2 data format (https://select2.org/data-sources/formats)
    dataAdapter: DeferredLoadAdapter,
});

If this is something that would be useful to integrate into select2 I'd be happy to clean it up a bit and do a pull request.

If this is something that would be useful to integrate into select2 I'd be happy to clean it up a bit and do a pull request.

Unfortunately we aren't accepting new data adapters at this time (we have a lot to maintain already), but we would gladly link to a GitHub repository or Gist in the README if you released this in one.


🐞 : duplicate game

:red_circle: title :among us and connect4(two player)
:red_circle: enhancement : remove one of the game so that the application would look better
Screenshots 📷

✅ Details to Include When Taking the Issue:
Name :
Participant Role (Specify the Open Source Program name, e.g., GSSOC, Hacktoberfest, etc.): GSSOC-extd2024,hactoberfest

Happy Contributing! 🚀
Wishing you all the best on your open source journey. Enjoy! 😎

someone working on it,Do not get demotivated and raise new issue


error when running main.py in regressor and seq2sentiseq

Hi,
An error occurs when I run main.py in regressor.
tensorflow.python.framework.errors_impl.InvalidArgumentError: Unquoted fields cannot have quotes/CRLFs inside
[[{{node DecodeCSV}}]]
[[node IteratorGetNext (defined at main.py:177) ]]

Hey, did you get this error when you changed data sources? I got a similar error as well was wondering if you were able to resolve it


STENCIL-2950 - Hide cart actions on compare page when restrict_to_log…

…in is on and user is not logged in

Tested locally 💚


RabbitNamespaceHandler support config ListenerContainerFactoryBean#afterReceivePostProcessors

ListenerContainerFactoryBean has field afterReceivePostProcessors，but rabbit name space can not config this field.

The XML support is slightly out of support, indeed.
It is in a low priority since people more and more these days configuring their Spring projects only with Java and annotations. Also with Kotlin.
We can fix this issue because you have requested it, however we also would like to see a contribution: https://github.com/spring-projects/spring-amqp/blob/master/CONTRIBUTING.adoc
So, if you are interested in this feature and would like to have a fix you are welcome to open Pull Request!
Just let us know how you prefer to proceed.
Thanks

Well, I'd like to try it


Add resource predicates for tasks

Is this a BUG REPORT or FEATURE REQUEST?:
/kind feature
Description:
Currently, we did not use resource predicates from upstream because of releasing resources; but it makes unnecessary sort and check on the full nodes. It's better to have a predicates to check Task.Resreq against Node.Idle and Node.Release resources.

@thandayuthapani , would you help on this one?


[qwt:x64-windows-static] qwt gets built as dynamic library even though it's a static triplet.

Describe the bug
When installing qwt with the x64-windows-static tripled, it is built as a dynamic library rather than a static one. There is a config setting in qwtconfig.pri that makes it build as a dll that is enabled by default. There used to be a patch to selectively set it, but it seems to have been removed when updating to version 6.1.5 of the library in #12459. It may have been an oversight as there was another patch there that was no longer needed. I suspect the same issue will occur on other static triplets but haven't tested. (No problems on non-static triplets as it's supposed to be dynamically linked there, and it is.)
Environment

OS: Windows 10
Compiler: MSVC 2019

To Reproduce
Steps to reproduce the behavior:

./vcpkg install qwt:x64-windows-static
Build a project that uses qwt, and it depends on qwt.dll (and it again depends on other Qt dlls)

Expected behavior
The library should be statically linked.

@oyvindln ,Could you please provide your CMakeLists? I will repo locally

Do you mean that this patch shouldn't be deleted when the qwt version was upgraded last time?
diff --git a/qwtconfig.pri b/qwtconfig.pri
index 1fe6055..441c69b 100644
--- a/qwtconfig.pri
+++ b/qwtconfig.pri
@@ -72,7 +72,10 @@ QWT_INSTALL_FEATURES  = $${QWT_INSTALL_PREFIX}/features
 # it will be a static library.
 ######################################################################

+CONFIG(dynamic, dynamic|static) {
+
 QWT_CONFIG           += QwtDll
+}

 ######################################################################
 # QwtPlot enables all classes, that are needed to use the QwtPlot

I will see if I can sort something

Can any one confirm this issue was fixed by #21832? I need to double confirm that.
Thanks.

Seems to solve it for me at least.

Thanks!


permission issue of CSI-VOL* directory

Please fill the template when creating an issue

by default csi-vol* directory permission is set to 755 due to that non-privileged user unable to write on it . If we changed it 777 working fine. I am using nautilus 14.2 22 ceph
drwxr-xr-x 1 root root 2 Aug 24 12:05 csi-vol-0668bb95-23a5-11ed-9a40-02f7d0d81756
drwxr-xr-x 1 root root 2 Aug 24 12:01 csi-vol-83fcb0c4-23a4-11ed-9a40-02f7d0d81756

setting 777 on both cephfs and rbd mounts are removed in cephcsi, Have you considered setting SecurityContext: in both pod spec and container spec? https://github.com/ceph/ceph-csi/blob/3ddec80346f6fe6ae6da8c19adfdb92e49e41fa8/e2e/utils.go#L515-L537

@Madhu-1 . Thanks for quick response.. Could you please share simple example of pod yaml file to use SecurityContext:

@Madhu-1 :  I am using below pod definition file  which is not working still directory is create by root user with 755 permission

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test1234
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: csi-fs-sc
apiVersion: v1
kind: Pod
metadata:
labels:
test: test123
name: test123
spec:
securityContext:
runAsUser: 786
runAsGroup: 1000
runAsNonRoot: true
containers:

name: cephfs-pv-busybox
image: busybox
command: ["sleep", "60000"]
volumeMounts:

mountPath: "/cephfs-pvc"
name: cephfs-vol1
readOnly: false
securityContext:
runAsUser: 786
runAsGroup: 1000
runAsNonRoot: true
volumes:

name: cephfs-vol1
persistentVolumeClaim:
claimName: test1234

---
apiVersion: v1
kind: Pod
metadata:
  name: csicephfs-demo-pod
spec:
  securityContext:
    fsGroup: 1000
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
  containers:
    - name: web-server
      image: busybox
      command: ["sleep", "60000"]
      volumeMounts:
        - name: mypvc
          mountPath: /var/lib/www/html
      securityContext:
        runAsUser: 1000
        runAsGroup: 1000
        runAsNonRoot: true
  volumes:
    - name: mypvc
      persistentVolumeClaim:
        claimName: cephfs-pvc
        readOnly: false

apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: cephfs.csi.ceph.com
spec:
  attachRequired: false
  fsGroupPolicy: File
  podInfoOnMount: false
  requiresRepublish: false
  storageCapacity: false
  volumeLifecycleModes:
  - Persistent

with above csidriver object and the app pod should work
[🎩]mrajanna@fedora cephfs $]kubectl execectl exec -it csicephfs-demo-pod -- sh
/ $ whoami
whoami: unknown uid 1000
/ $ df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  27.9G      7.6G     18.6G  29% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                     1.9G         0      1.9G   0% /sys/fs/cgroup
/dev/vda1                27.9G      7.6G     18.6G  29% /dev/termination-log
/dev/vda1                27.9G      7.6G     18.6G  29% /etc/resolv.conf
/dev/vda1                27.9G      7.6G     18.6G  29% /etc/hostname
/dev/vda1                27.9G      7.6G     18.6G  29% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
<IP_ADDRESS>:6789:/volumes/csi/csi-vol-14ea0695-0826-4741-8011-3278ad003a39/34b0e10c-9bd9-48a9-b05d-df91e5515c90
                          1.0G         0      1.0G   0% /var/lib/www/html
tmpfs                     3.8G     12.0K      3.8G   0% /var/run/secrets/kubernetes.io/serviceaccount
tmpfs                     1.9G         0      1.9G   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                     1.9G         0      1.9G   0% /proc/scsi
tmpfs                     1.9G         0      1.9G   0% /sys/firmware
/ $ ll /var/lib/www/
sh: ll: not found
/ $ ls /var/lib/www/
html
/ $ ls -lrt /var/lib/www/
total 0
drwxrwsr-x    2 root     1000             1 Aug 24 15:02 html
/ $ ls -lrt /var/lib/www/html/
total 0
-rw-rw-r--    1 1000     1000             0 Aug 24 15:02 a
/ $ ls -lrt /var/lib/www/html/^C
/ $ cd /var/lib/www/html/
/var/lib/www/html $ ls
a
/var/lib/www/html $ touch b
/ $ ls -lrt /var/lib/www/html/
total 0
-rw-rw-r--    1 1000     1000             0 Aug 24 15:02 a
-rw-r--r--    1 1000     1000             0 Aug 24 15:05 b

Closing as works as expected


Integration tests randomly fail with Go 1.5 (batch related)

I've been getting random failures in any one of a handful of batch-related integration tests recently and I've realised that they only seem to happen when using Go 1.5. I can't reproduce them when switching back to 1.4.
Adopting Go 1.5 is important not only for the vast performance improvements in the GC but because 1.4 has a bug which prevents using LFS API URLs which include a username (https://github.com/golang/go/issues/11399).
The errors can occur even when you're using GIT_LFS_TEST_MAXPROCS=1 so it's not a race condition between tests. It is however always in one of the batch tests (not the same one, and not always in the same command), the common response is:
1 of 1 files) 11 B / 11 B                                                     Error uploading file common1.dat (2bc27d3512c2b3ab35b75244a7c5a7508610096aed67d64d65b11b5574b897d9)

    Errors logged to /Users/steve/projects/Go/src/github.com/github/git-lfs/tmp/test-pre-push.sh-63176/missing-but-on-server-batch/.git/lfs/objects/logs/20150902T101809.825928472.log

Repeating just the single test doesn't reproduce it. Since GIT_LFS_TEST_MAXPROCS=1 still does, I suspect it might be some some leftover state issue on the test server in batch mode, although I don't know why Go 1.5 would trigger it.

I'll be looking into this further myself when I get the chance, just recording it here in case anyone else starts to see it.

I noticed this yesterday too when I setup a travis build with go 1.5: https://travis-ci.org/github/git-lfs/builds/78316038

Current working theory is that it's because Go 1.5 is now genuinely using multiple cores all the time and not just using co-operative multitasking on one core when hitting syscalls etc. I've found one specific instance I think is dodgy, in TransferQueue.transferWorker:
func (q *TransferQueue) transferWorker() {
	for transfer := range q.transferc {
		cb := func(total, read int64, current int) error {
			q.meter.TransferBytes(q.transferKind, transfer.Name(), read, total, current)
			return nil
		}

		if err := transfer.Transfer(cb); err != nil {
			q.errorc <- err
		} else {
			oid := transfer.Oid()
			for _, c := range q.watchers {
				c <- oid // <------- A. RECEIVER DOESN'T NECESSARILY HAPPEN BEFORE B.
			}
		}

		q.meter.FinishTransfer(transfer.Name())

		q.wait.Done() // <------- B.
	}
}

Therefore watchers on the transfer channel which then Wait() cannot be certain that all transfer notifications are delivered before q.Wait() exits, when multiple cores are involved.  Example:
	transferc := checkQueue.Watch()
	go func() {
		for oid := range transferc {
			fmt.Fprintf(os.Stderr, "EXISTSONSERVER: |%v|\n", oid)
			skipObjects[oid] = struct{}{}
		}
	}()
	checkQueue.Wait()

skipObjects may not be complete after Wait() in a multicore runtime. I can fix this instance of it, I think the others may have been caused by what I fixed in #627 but I'll have to check.
In general the queue's Wait() may no longer really make sense any more, instead a user of the queue needs to sync on the close of the transfer channel.

Yep that makes sense, especially when using the Watch stuff with an extra goroutine.

I've updated #627, both fixes together now resolve this issue.

Fixed by https://github.com/github/git-lfs/commit/9f58bced4ff42babff52c4376bc7385aac209041


Unity ui extensions seems to be gone?

Hi!
I wanted to check out the linked unity ui extensions page, but the link doesn't seem to be working. Do you happen to have it?

https://unionassets.com/unity-ui-extensions you can get it here


During installation this issue occured...please help

sException:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
session=self.session, hashes=hashes)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 821, in unpack_url
hashes=hashes
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 659, in unpack_http_url
hashes)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 882, in _download_http_url
_download_url(resp, link, content_file, hashes)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 605, in _download_url
consume(downloaded_chunks)
File "/usr/lib/python2.7/dist-packages/pip/utils/init.py", line 870, in consume
deque(iterator, maxlen=0)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 571, in written_chunks
for chunk in chunks:
File "/usr/lib/python2.7/dist-packages/pip/utils/ui.py", line 139, in iter
for x in it:
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 560, in resp_read
decode_content=False):
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/response.py", line 428, in stream
for line in self.read_chunked(amt, decode_content=decode_content):
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/response.py", line 590, in read_chunked
self._update_chunk_length()
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 106, in _update_chunk_length
self._fp._close()
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/filewrapper.py", line 50, in _close
self.__callback(self.__buf.getvalue())
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/controller.py", line 275, in cache_response
self.serializer.dumps(request, response, body=body),
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/serialize.py", line 87, in dumps
).encode("utf8"),
MemoryError

I have had the same issue AttributeError: 'InteractiveShellEmbed' object has no attribute 'define_magic', and pip install 'IPython==4' --force-reinstall worked for me.


Fix version of framework to 2.0.0 for test

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