Improve time of verification checks in CI

Even with the introduced caching (#122) the verification checks take too much time. All of the last successful CI runs took more then one hour. (Does the caching even work at the moment?)
Currently we run the verification on a set of real-world protocol messages and some artificial test cases. An better approach could be to replace the current tests by a smaller subset which ideally still covers most of all potential cases. I think one (or a small number of) artificial message(s) could be enough to get a good coverage and reduce the needed verification time significantly. All currently used test cases could be still run in the nightly tests.

The currently used caching seems to work only partially. Here is a small excerpt of the proof results analyzed by SPAT. Lines with "0.0 s/0.0 s/0.0 s" indicate parts which were not verified again.
[...]

The reason for the partial caching is that GitHub´s cache action does not update the cache on a cache hit. It seems to be intended for caching dependencies only.

With the custom cache action we are at 18 min for a successful verification if no changes have been made before. I think that is good enough for the moment. We can look into replacing the current verification tests by a smaller set in #208, where we intend to test features in a more structured way.

This issue is still not resolved. Often the verification test checks need more than one hour even if there were no changes on the SPARK code.

Disabling --proof-warnings and checking in shape files (why3shapes.gz; additionally to the already checked in session files) should improve the runtime of GNATprove. For some reason this seems not to be the case for GNAT Community 2020, but for more recent versions. We should analyze the effect of these changes again after the release of GNAT Community 2021 (#494).

Checking in shape files (why3shapes.gz; additionally to the already checked in session files) should improve the runtime of GNATprove. For some reason this seems not to be the case for GNAT Community 2020, but for more recent versions. We should analyze the effect of these changes again after the release of GNAT Community 2021 (#494).

Caching the proof results by adding session files and shape files works well with GNAT Community 2021. All verification tests are executed in less than 25 min in our GitHub workflows.


Cant scroll children content

Environment

Browser: Chrome (Mobile)
Version of smooth-scrollbar: 8.2.6

Issue Summary
Im using Android 6.0.1 Marshmallow
Watch video to see the issue
Current Behavior
Prioritizes parent instead of the children on Mobile
Expected Behavior
It should scroll the prioritized children
Steps to Reproduce
Android > Browser
Online demo
https://drive.google.com/file/d/1fVTCEuNsEtsEkn8bYK_V7GOXGjC_oiuD/view?usp=sharing

Is the child element using native scrollbar?

as you can see in the video no, it uses your projects scrollbar

Is there a link to the repo that reproduces this issue? I just couldn't reproduce it myself :thinking .

Oh I got it! Try setting continuousScrolling = false on children scrollbars to fix this.

Yes this solved the issue! Thanks!


Support for justify-content to horizontally align columns

Right now if I want to horizontally align columns inside a row I need to add a style tag, as expected this becomes cumbersome:
<Row style={{ justifyContent: "center"}}>
It would be nice to have something like:
<Row justify="center">
to achieve the same
Let me know if this is something feasible to begin working on a PR. Thank you!

It's in the latest version!

Thank you!


How to get pixel color?

I want to obtain the current pixel color in the mouse event on the canvas,
How to get pixel color in it? (not from bitmap)

You need to copy bitmap data from GPU to CPU, then use ID2D1Bitmap1.Map() method.
See https://github.com/d2phap/ImageGlass/blob/e2045cb557300df4260e3374554efa0597bee561/Source/Components/ImageGlass.Base/BHelper/Extensions/ID2D1Bitmap1Extensions.cs#L33-L76

Thank you, I will try

how to use copypixels in WIC ?
https://learn.microsoft.com/en-us/windows/win32/api/wincodec/nf-wincodec-iwicbitmapsource-copypixels

This library is just provide Direct2D API for WinForms, to start building something with this, you need to learn Direct2D.

how to use copypixels in WIC ? perhaps this can be faster?
This question is not related to this library. You need to try and check by yourself.


nixos/borgbackup: add option "patterns"

Description of changes
Add the option patterns to the borgbackup module. Allows specifying include/exclude paths, which is helpful when you want to backup a few directories inside an otherwise excluded directory tree.
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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Thanks! I have included the suggested changes.

Could we backport this to 22.11? (Since this PR only adds an option without changing existing behavior.)


JSON import

Hi,
Would it be possible to have the the code to import a .json file instead of a list of countries, without the flag?
Thanks

@mdlfkdsmk I am not sure what you mean by import a .json file instead of a list of countries. Do you mean instead of using the package countries list to be able to provide your one list of countries by json file?

@mdlfkdsmk I am not sure what you mean by import a .json file instead of a list of countries. Do you mean instead of using the package countries list to be able to provide your one list of countries by json file?

Yes, that's what I meant.
I'm trying to re-use this to get the Uni names & cities (instead of phone numbers indicators & Countries) from this .json list: https://www.data.gouv.fr/fr/datasets/principaux-etablissements-d-enseignement-superieur-mesr/

Yes, that's what I meant.
I'm trying to re-use this to get the Uni names & cities (instead of phone numbers indicators & Countries) from this .json list: https://www.data.gouv.fr/fr/datasets/principaux-etablissements-d-enseignement-superieur-mesr/

I don't thing this is possible to import any .json, package has to parse json in order to use display the info. It is not possible to parse any json with any structure. And it's not a functionality that many will want.
Feel free to fork the repository and change the code to suit your needs and if you have any questions please feel free to ask.

I don't thing this is possible to import any .json, package has to parse json in order to use display the info. It is not possible to parse any json with any structure. And it's not a functionality that many will want.
Feel free to fork the repository and change the code to suit your needs and if you have any questions please feel free to ask.


[Task]: Improve Typescript support for Sagas

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
We are not using typescript efficiently when it comes to Sagas. If we are using it effectively, we could've avoided some run time bugs.
I've come across typed-redux-saga project and think this library can help us to improve typescript in the case of Sagas.

As per the feat: upgrade to create react app 5 #14000 - since we have regression tested for CRA 5 changes, this can be closed as verified. Discussed with @aswathkk


Format the command for Run with go

What type of PR is this?
docs

What this PR does / why we need it (en: English/zh: Chinese):

en: Make the format of the command cd kitex-examples/hello for Run with go consistent with other commands.
zh: 使 Run with go 的 cd kitex-examples/hello 命令的格式与其他命令一致。

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


Feature/cplp 749 admin registration req page

Admin registration page implemented

Translation is fixed
mock data deleted

@fatihayyildiz  can you please rerun through the comments from Martin

@jjeroch all comments fixed/changed. Ready to review and merge


Uniform method names for attachments and logs

In order to get a consistent API for attaching/logging images and text, we should rename the corresponding methods to attach and log
Existing methods should be deprecated and removed in later major release.

[x] ruby: embed-> attach
[x] ruby: puts-> log
[ ] JavaScript: attach - prints a warning when called with a single string argument, tells to call log(string) instead.
[ ] JavaScript: attach(string) -> log(string)
[x] Java: embed-> attach
[x] Java: write-> log

All of the log implementation will delegate to attach with a media-type text/x.cucumber.log+plain
@charlierudolph @mpkorstanje what do you think ?

Sounds good.

Hmm. What's the reason for having separate methods for attaching images / text? Why not have a single method and if given a string default to media type text/x.cucumber.log+plain?

The idea is to have different methods has they have different purposes.
embed should be used to attach any data that would be interesting to understand the test status (screenshots, maybe console logs, well anything that could help the dev team see what went wrong)
log is more meant for debugging while implementing the scenarios/step definitions.
TLDR:

embed attach information about the system under test
log add information about the testing framework

Does that sound good ?

What's the reason for having separate methods for attaching images / text? Why not have a single method and if given a string default to media type text/x.cucumber.log+plain

That's exactly what I had in mind.
@vincent-psarga - I think you meant attach rather than embed.
I think a single polymorphic attach method would be sufficient. The only reason to provide a log alias would be that it's maybe a bit more idiomatic for text. We "log" text and "attach" media.
@vincent-psarga what do you mean by adding information about the testing framework? Can you give an example?

@vincent-psarga - I think you meant attach rather than embed.

Indeed :)

@vincent-psarga what do you mean by adding information about the testing framework? Can you give an example?

So, as I see it, log would be useful when writing/debugging the support code. Let's imagine we have this step:
Given the following items are available for sale:
  | name             | price |
  | strap cutter     | $25   |
  | groover          | $20   |
  | edge beveller #0 | $10   |

and I implement it this way(more or less, just to give an idea).
Then('the following items are available for sale:') do |name_and_prices|
  name_and_prices.each do |name, price|
    item = Item.find_by_name(name)
    item.update_attributes(price: price, for_sale: true)
  end
end

Now, I try this and it fails. As I'm pretty new to Cucumber, I want to know what exactly is the content of the name_and_prices object.
So what I'll do is log(name_and_prices.to_s). Is has no interest for people except me who is trying to implement the step definitions (and is likely to disappear once I have this up and running).
Then('the following items are available for sale:') do |name_and_prices|
  name_and_prices.each do |name, price|
    item = Item.find_by_name(name)
    item.update_attributes(price: price, for_sale: true)
  end
  on_sale = Items.where(for_sale: true).map { | item | "| #{item.name} | #{item.price} |" }.join("\n")
  attach(on_sale, 'text/plain')
end

I wouldn't use log here, the information is not meant for those who will implement the testing code, it is meant for people who will read the test results/living documentation (even if is is text too, it's a different audience).
So after writing this down, I would rephrase my precedent text like this:

attach add any information useful for people reading the test results/living documentation
log add information useful for the developers (in a broad meaning, QA engineers in there too, anyone writing support code)

So what I'll do is log(name_and_prices.to_s)

If you just want some debugging info printed to the console, couldn't you just use Kernel.puts (or console.log for JavaScript and System.out.println for Java).
@vincent-psarga - do you expect log to end up as Attachment messages, and ultimately in reports that support it, or do you just want it to end up in the console? (Hence my question above).

I guess you're right. I thought it could be interesting not to polute the test reports with those informations but we can rely on built-in solutions (as puts and console.log)
And anyway, when developing the automation layer, I don't think people are going to use formatter such as json or html but simply the default console/progress one.

If you just want some debugging info printed to the console, couldn't you just use Kernel.puts (or console.log for JavaScript and System.out.println for Java).

This quickly loses value when used in combination with parallel execution because different executions will collide.
I'm currently attaching allot of debug information to reports so when a scenario fails its easy to see what exactly went wrong. Examples would be user and session ids, log correlation values, raw requests and responses, ect.

Does anyone disagree with this summary?

log is an alias for attach (for text attachments)
attach does not print anything, just emits an Attachment message
Console formatters progress and pretty only output attachments with a text/plain compatible media type
Rich formatters (JSON, HTM) output all attachments (including text/plain)
The platform’s console logging can be used for single-threaded executions when the logged text is not wanted in formatter output
for parallel execution, the log method is preferred. The drawback is that logged text will be outputted by all formatters, which may not always be desired.

@davidjgoss from the OP did we ever get around to renaming the 2 key methods for JS?

JS methods are named attach and log respectively - so yeah I think we're done here.


Rake db:reset is not working because of multiple connections

Hey, I am using ROM in conjunction with AR and when I try to do rake db:reset, ROM has an active connection and disallows to drop the database.
rake db:reset
PG::ObjectInUse: ERROR:  database "makeweight_development" is being accessed by other users
DETAIL:  There is 1 other session using the database.
: DROP DATABASE IF EXISTS "makeweight_development"

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/36986294-rake-db-reset-is-not-working-because-of-multiple-connections?utm_campaign=plugin&utm_content=tracker%2F442516&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F442516&utm_medium=issues&utm_source=github).

@janjiss override rake db:reset and do ROM.env.disconnect as a workaround

@solnic Thanks!

For future references and to help others, this is what the solution looks like:
task :remove_rom_connection => [:environment] do
  ROM.env.disconnect
end

Rake::Task["db:reset"].clear_prerequisites()
Rake::Task["db:reset"].enhance [:remove_rom_connection, "db:drop", "db:setup"]

@janjiss it would be nice to extend rails tutorial with this information, many people might be trying out ROM next to AR so this is gonna be crucial

@solnic Can I create a section "Running alongside active record" ? There are few things that need to be done for it to work properly:

Frozen schema issue (Monkey patch for development until the issue is solved)

if Rails.env.development?
  module ROM
    class Schema
      def finalize!(gateway = nil, &block)
        @attributes = inferrer.call(name.dataset, gateway) if inferrer
        @primary_key = select { |attr| attr.meta[:primary_key] == true }
        block.call if block
      end
    end
  end
end

Rake db:migrate issue, where the the schema throws an error. That is monkey patch as well

module ROM
  module Rails
    class Railtie < ::Rails::Railtie
      alias_method :create_container!, :create_container
      def create_container
        begin
          create_container!
        rescue => e
          puts "Container failed to initialize because of #{e.inspect}"
          puts "This message comes from the monkey patch in #{__FILE__}, if you are using rake, then this is fine"
        end
      end
    end
  end
end

db:reset task from above

The first one is not a critical issue, but it still happens on every request after any file is being saved, which is kind of annoying. These monkey patches make me cringe, but ATM I don't see other way. Thoughts?

@solnic I think this can be closed and continued on documentation section?


Dilato: [Core]: Bracket is frozen when relaunch it after deny the folder permission.

Problem: Bracket is frozen when relaunch it after deny the folder permission.
Test device: Mac 10.12, Windows 10
Test build: 1.13
Method:

Launch Brackets 1.13.
Drag and drop a supported file to Bracket.
Deny the all permission of the folder.
Relaunch the Brackets and observe.

Result:
Bracket is frozen.
Expected:
Bracket should work normally when relaunch it after deny the folder permission.
image:

Verified this issue is also reproed in build 1.12.


Webp conversion fails for B&W images

Describe the bug
When exporting using the Webp format conversion it fails. This has to do with textures being of different sizes (accross different materials, which is weird). When textures are all the same size it's working fine.
Webp conversion fails when trying to export a B&W (8 bit depth) texture.
duplicate https://github.com/KhronosGroup/glTF-Blender-IO/issues/2077
The workaround for now is to convert the image to 24 bit depth with an image editing tool like Photoshop before trying to export your model in Blender.
To Reproduce
Try to export to .glb with Webp image format.
.blend file/ .gltf
webp_conversion_diff_sizes_error.zip
Version

OS: Windows10
Blender Version 4.0.1

Additional context
17:22:58 | INFO: Starting glTF 2.0 export
17:22:58 | INFO: Extracting primitive: Plane.004
WebP: Unsupported bytes per pixel: 1 for file: 'C:\Users\arthu\AppData\Local\Temp\tmp7xtctwa2\img'
C:\Users\arthu\AppData\Local\Temp\tmp7xtctwa2\img: No error
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2_init_.py", line 915, in execute
return gltf2_blender_export.save(context, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 36, in save
json, buffer = __export(export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 53, in __export
__gather_gltf(exporter, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 67, in __gather_gltf
active_scene_idx, scenes, animations = gltf2_blender_gather.gather_gltf2(export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather.py", line 29, in gather_gltf2
scenes.append(__gather_scene(blender_scene, export_settings))
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather.py", line 70, in __gather_scene
node = gltf2_blender_gather_nodes.gather_node(
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_nodes.py", line 36, in gather_node
mesh=__gather_mesh(vnode, blender_object, export_settings),
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_nodes.py", line 246, in __gather_mesh
result = gltf2_blender_gather_mesh.gather_mesh(blender_mesh,
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_mesh.py", line 58, in gather_mesh
primitives=__gather_primitives(blender_mesh, uuid_for_skined_data, vertex_groups, modifiers, materials, export_settings),
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_mesh.py", line 135, in __gather_primitives
return gltf2_blender_gather_primitives.gather_primitives(blender_mesh,
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_primitives.py", line 57, in gather_primitives
blender_primitives = __gather_cache_primitives(materials, blender_mesh, uuid_for_skined_data,
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_primitives.py", line 120, in __gather_cache_primitives
blender_primitives = gltf2_blender_gather_primitives_extract.extract_primitives(
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_primitives_extract.py", line 27, in extract_primitives
primitive_creator.material_uvmap_attribute_add()
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_primitives_extract.py", line 398, in material_uvmap_attribute_add
_, material_info = get_base_material(material_idx, self.materials, self.export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_materials.py", line 456, in get_base_material
material, material_info = gather_material(
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_materials.py", line 60, in gather_material
pbr_metallic_roughness, uvmap_info_pbr_metallic_roughness, vc_info = __gather_pbr_metallic_roughness(blender_material, orm_texture, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_materials.py", line 294, in __gather_pbr_metallic_roughness
return gltf2_blender_gather_materials_pbr_metallic_roughness.gather_material_pbr_metallic_roughness(
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_materials_pbr_metallic_roughness.py", line 22, in gather_material_pbr_metallic_roughness
base_color_texture, uvmap_info, vc_info, _ = __gather_base_color_texture(blender_material, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_materials_pbr_metallic_roughness.py", line 99, in __gather_base_color_texture
tex, uvmap_info, factor = gather_texture_info(inputs[0], inputs, (), export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_texture_info.py", line 27, in gather_texture_info
return __gather_texture_info_helper(primary_socket, blender_shader_sockets, default_sockets, 'DEFAULT', filter_type, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_texture_info.py", line 49, in __gather_texture_info_helper
index, factor = __gather_index(blender_shader_sockets, default_sockets, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_texture_info.py", line 146, in __gather_index
return gltf2_blender_gather_texture.gather_texture(blender_shader_sockets, default_sockets, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_texture.py", line 34, in gather_texture
source, webp_image, image_data, factor = __gather_source(blender_shader_sockets, default_sockets, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_texture.py", line 179, in __gather_source
source, image_data, factor = gltf2_blender_gather_image.gather_image(blender_shader_sockets, default_sockets, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_image.py", line 46, in gather_image
buffer_view, factor_buffer_view = __gather_buffer_view(image_data, mime_type, name, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 36, in wrapper_cached
result = func(*args, **kwargs)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\gltf2_blender_gather_image.py", line 101, in __gather_buffer_view
data, factor = image_data.encode(mime_type, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\extensions\gltf2_blender_image.py", line 146, in encode
return self.__encode_happy(export_settings), None
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\extensions\gltf2_blender_image.py", line 156, in __encode_happy
return self.__encode_from_image(self.blender_image(), export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\extensions\gltf2_blender_image.py", line 245, in __encode_from_image
return _encode_temp_image(tmp_image, self.file_format, export_settings)
File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_gltf2\blender\exp\material\extensions\gltf2_blender_image.py", line 257, in _encode_temp_image
tmp_image.save(quality=export_settings['gltf_image_quality'])
RuntimeError: Error: Could not write image: No error
Error: Image 'Valchromat_Light Grey.jpg.001' could not be saved to 'C:\Users\arthu\AppData\Local\Temp\tmp7xtctwa2/img'

Thanks for the test case. I am able to reproduce.
I am also able to create my own test case.
The problem comes from B&W images.
We are using Blender itself to convert any images to WebP, and it seems that Blender can't convert an B&W image to WebP.
We need to find a workaround to save a B&W image in WebP by using RGB with 3 identical channels

Thanks for the test case. I am able to reproduce. I am also able to create my own test case. The problem comes from B&W images. We are using Blender itself to convert any images to WebP, and it seems that Blender can't convert an B&W image to WebP.
We need to find a workaround to save a B&W image in WebP by using RGB with 3 identical channels

Ha you are correct, sorry for leading you on the wrong path. I batch converted them all to 512x512 with another software for testing if the different resolutions were the issue, and the export worked so I assumed that was the problem. But it also implicitely converted them all to 24 bit depth which I did not see. So that's must be why it worked.
Blender doesn't show anywhere that an image is B&W, right?

Blender doesn't show anywhere that an image is B&W, right? You have to go into the properties of the file itself on your OS to know that?

I believe it is shown in the Image Editor, in the sidebar, under the "Image" tab. See "R16F"? That would normally be "SRGB8_A8".

Blender不会在任何地方显示图像是黑白的，对吧？你必须进入网络上文件本身的属性才能知道这一点？

我相信它显示在图像编辑器的侧边看到“图像”下方标签。“R16F”了吗？通常是“SRGB8_A8”。

How do you use bpy to get this information?

AFAIK there is no direct way to get the "SRG8_A8" datum from bpy. Similar to this question about how to detect the presence of an alpha channel. I would try is_grayscale = img.depth == (32 if img.is_float else 8).

AFAIK there is no direct way to get the "SRG8_A8" datum from bpy. Similar to this question about how to detect the presence of an alpha channel. I would try is_grayscale = img.depth == (32 if img.is_float else 8).

ok thanks！


Karate test slows down and hang with gatling

How to reproduce:
Use examples/gatling code in this repo.
Change setup() section of CatsKarateSimulation
  setUp(
    create.inject(rampUsersPerSec(0).to(425) during (10 minutes),
      constantUsersPerSec(425) during (5 minutes)).protocols(protocol),
    delete.inject(rampUsersPerSec(0).to(5) during (10 minutes),
      constantUsersPerSec(5) during (5 minutes)).protocols(protocol),
    custom.inject(rampUsers(10) during (5 seconds)).protocols(protocol)
  )

Increase memory in pom.xml:
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>${gatling.plugin.version}</version>
<configuration>
    <simulationsFolder>src/test/java</simulationsFolder>
    <includes>
        <include>mock.CatsKarateSimulation</include>
    </includes>
    <jvmArgs>
        <jvmArg>-Xmx4g</jvmArg>
    </jvmArgs>
</configuration>

Run mvn clean test and test does not finish.

@kchibui closing as won't fix. a lot depends on your JDK, OS, CPU etc. you are most welcome to dive into the code and improve it where possible. for examples of more productive discussions, please see: https://github.com/karatelabs/karate/issues/845


Mod broken

`Error in GameAssets(Clone).Assets.OnPrefabInit
System.MissingMethodException: void Klei.AI.Attribute..ctor(string,bool,Klei.AI.Attribute/Display,bool,single,string,string,string)
at (wrapper dynamic-method) Database.Attributes.Database.Attributes..ctor_Patch1(Database.Attributes,ResourceSet)
at ModifierSet.Initialize () [0x00038] in <84ec5be14c67406292956d199a0bec75>:0
at EntityModifierSet.Initialize () [0x00000] in <84ec5be14c67406292956d199a0bec75>:0
at (wrapper dynamic-method) Db.Db.Initialize_Patch3(Db)
at Db.Get () [0x0001c] in <84ec5be14c67406292956d199a0bec75>:0
at Assets.CreatePrefabs () [0x00000] in <84ec5be14c67406292956d199a0bec75>:0
at Assets.OnPrefabInit () [0x0027f] in <84ec5be14c67406292956d199a0bec75>:0
at KMonoBehaviour.InitializeComponent () [0x00068] in <158cd7482f89497392ec5a6ce92a5144>:0
at UnityEngine.Debug.LogError (System.Object message, UnityEngine.Object context) [0x00000] in <9fe2cbebfa394c8da6af069ec8cc9ef4>:0
at Debug.LogError (System.Object obj, UnityEngine.Object context) [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at DebugUtil.LogErrorArgs (UnityEngine.Object context, System.Object[] objs) [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at DebugUtil.LogException (UnityEngine.Object context, System.String errorMessage, System.Exception e) [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at KMonoBehaviour.InitializeComponent () [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at KMonoBehaviour.Awake () [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at UnityEngine.Object.Internal_InstantiateSingleWithParent_Injected (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3& pos, UnityEngine.Quaternion& rot) [0x00000] in <9fe2cbebfa394c8da6af069ec8cc9ef4>:0
at UnityEngine.Object.Internal_InstantiateSingleWithParent (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3 pos, UnityEngine.Quaternion rot) [0x00000] in <9fe2cbebfa394c8da6af069ec8cc9ef4>:0
at UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) [0x00000] in <9fe2cbebfa394c8da6af069ec8cc9ef4>:0
at UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) [0x00000] in <9fe2cbebfa394c8da6af069ec8cc9ef4>:0
at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.GameObject parent, System.String name, System.Boolean initialize_id, System.Int32 gameLayer) [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.GameObject parent, System.String name) [0x00000] in <158cd7482f89497392ec5a6ce92a5144>:0
at LaunchInitializer.Update () [0x00000] in <84ec5be14c67406292956d199a0bec75>:0
Build: U39-490405-V`

You forgot to include which mod is broken. :P


sparse_udf example: flaky output

From https://dev.azure.com/LiberTEM/LiberTEM/_build/results?buildId=2536&view=logs&j=4d6f0f97-9d62-53bc-79d2-96c85fc226be&t=b5ec37f2-4755-55f4-9304-bcf3d588aca8:
______________________ examples/sparse_udf.ipynb::Cell 9 _______________________
Notebook cell execution failed
Cell 9: Cell outputs differ

Input:
import os
print(f"Size on disk: {sum(os.path.getsize(workdir / f) for f in ('indptr.raw', 'coords.raw', 'values.raw')) / 2**20:.2f} MB")

Traceback:
 mismatch 'stdout'

 assert reference_output == test_output failed:

  'Size on disk: 0.53 MB\n' == 'Size on disk: 0.52 MB\n'
  - Size on disk: 0.52 MB
  ?                  ^
  + Size on disk: 0.53 MB
  ?                  ^

Didn't have a look at the code yet, so don't know why the size would differ between runs (Windows vs. Linux differences maybe? Or float/rounding shenanigans?), but probably that cell needs to be ignored for testing purposes.

Triggered again in https://github.com/LiberTEM/LiberTEM/pull/1536, needs to be fixed before 0.13 release.


Theme-address v2 using country-service

Problem
In every country, addresses and address forms are rendered differently.

Field labels can vary from a country to another (Eg.: Province vs State)
Order of the fields will vary from a country to another.
Country and province names need to be translated

See gif bellow for an example.
Our country-service service gives us all the information that we need to fix these problems.
Solution
Rewrote theme-address to take care of all the problem listed above

Fetch data from country-service given a locale.
Reorder fields based on the selected country.
Update label names based on the selected country
Add event listener to update order and label names when country changes.
Provide CSS example to take care of reordering (see README)

Demo

Conversation from before - This library would need a way to accept a limited list of countries.
Scenario: A template is displaying both billing address and shipping address.
A billing address can be anywhere in the world but a shipping address is limited to where the merchant can ship their products to.
Since the country-service is a static api, it is better to request once and reuse for multiple times for generating the required address form according to need.
This would require a new liquid tag that outputs just the shipping address country codes.

Scenario: A template is displaying both billling address and shipping address.
A billing address can be anywhere in the world but a shipping address is limited to where the merchant can ship their products to.

Currently, there is no restriction in the theme between a shipping and billing address when you add an address. Since the scenario you're describing is not handled right now we probably want to keep all of the countries in the dropdown as we do here, shouldn't we?

Currently, there is no restriction in the theme between a shipping and billing address when you add an address. Since the scenario you are describing is not handled right now we probably want to keep all of the countries in the dropdown as we do here, shouldn't we?

I honestly don't know how shipping country liquid tag is being used by the partners either but not supporting it would be like no backward compatibility for shipping address form in particular. Since this PR completely changes the way a theme developer renders an address form, we should be responsible of offering the equivalent to what we already offer from liquid renders. (@nimzco I'll slack you the query report of the tag usage across Shopify)

I'm hesitant about the introduction of TypeScript in the repo. I don't have any previous experience with it (and I don't know the experience level of other maintainers). So I'm not sure what we're signing up for by merging it 🙃
Given I don't know what the learning curve is like, I'm concerned whether it's a realistic expectation of maintainers to support it going forward. I would appreciate it if we could hold off on merging until we've checked in with some of the other repo maintainers about the decision. (We can do this over Slack) Maybe they're all stoked and I have no need to be worried 😄
All in all : This is API is a great feature @nimzco. I just want to make sure we're ready to maintain it.

I agree with Nathan's point. I would also favour consistency in patterns throughout theme-scripts for simpler global configurations. TypeScript is a great idea for theme-scripts, I'd convert all packages at once as it's own project.

We'll have the same issue as we have today with CanadaPod restrictions right?

Yes... 😭

Thanks for your feedback folks. I've removed all the TypeScript from the code and left everything as JS.
But as @froyomuffin mentioned, merchants on the Canada pod shouldn't use this feature...
Also, I haven't taken in account @wizardlyhel's comment on passing it a list of restricted country codes. I've got to dig into that since we don't have access easily to a list like that.

Given @nimzco's comment https://github.com/Shopify/theme-scripts/pull/78#issuecomment-475617508, it looks like there are known (temporary?) Shopify issues that would prevent this from working for all merchants.
In broad strokes, a Theme Store theme shouldn't have functionality that only works for a subset of merchants because those themes are intended to work everywhere. However, if there is a graceful fallback in place that's easy for developers to know when to use, that's a different story.
We try to have graceful fallbacks in web development all the time. i.e. No JS flows, reasonable layout if there's no support for CSS Grid.  A fallback in the context of this PR could be to detect whether the feature is available, and if not, fallback to the hardcoded Liquid way that exists now.  @nimzco any reason to suspect that this couldn't happen with using this feature?
Now, it must be said that this fallback approach feels a little weird given it's not going to be clear to merchants and agencies why certain stores are getting it.  Meaning: Outside developers and merchants don't know what "CanadaPod" is and that their expectations should change because the store is hosted there.  This could be partly addressed with public developer documentation about the feature you created @nimzco with a disclaimer that this isn't available across the board.

Hey folks!
I've updated the code to make it work for shipping countries only. I've added a boolean option that, when passed, I query the shop's /meta.json endpoint where I can retrieve the list of countries the shop ships to. Eg.: https://www.chubbiesshorts.com/meta.json
As for the fallback on no-js, currently, on Minimal & Debut (the only one I've tested), you can't add or edit an address (the form won't show since it's toggled with JS).
I would suggest we move forward with this theme script without fallback for now it's that's ok with you.
As of CanadaPod, there is only one merchant concerned about it. I'm in contact with the CanadaPOD team and I will reach out to their MSM to make sure they don't use that script.
Other than that, it's good to 👀 🚢 on my end! 🚀

@NathanPJF @wizardlyhel FYI for CanadaPOD: https://github.com/Shopify/trust-advisors/issues/48


file_copy should apply perms if they are specified

Update: @bmurphy1976 I updated based on our outside conversation. No longer changing the copy_perms property to True. Instead, will apply the mode if it was specified.

Yeah, I think this makes more sense.  Do you have permissions to merge the pull request and close it?

@bmurphy1976 yea, I do. Just wanted to ping you so you could take a look at your leisure before I close and merge it.


Exception handler should not use hard-coded reference to email address.

The ReportAnExceptionHandler should provide methods by which the consumer can pass in any string for use as an email address, rather than depending on a magic resource ID R.string.postmortem_report_email_recipients. However, for backward compatibility, this resource reference should still be the default value if no other string is specified by the consumer.

This class was intended as a way for the author of the app to get reports
from the field without having the user specify an email address first.
However, I also see there are a few cases where a specific string resource
may not be the best or only approach desired.
On Wed, Feb 24, 2016 at 3:41 PM, Pasha Paterson<EMAIL_ADDRESS>wrote:

The ReportAnExceptionHandler should provide methods by which the consumer
can pass in any string for use as an email address, rather than depending
on a magic resource ID R.string.postmortem_report_email_recipients.
However, for backward compatibility, this resource reference should still
be the default value if no other string is specified by the consumer.
—
Reply to this email directly or view it on GitHub
https://github.com/baracudda/androidBits/issues/4.

--
Ryan Fischbach
www.istresearch.com
931.320.9653
--

This e-mail and any files transmitted with it may be proprietary and are
intended solely for the use of the individual or entity to whom they are
addressed. If you have received this e-mail in error please notify the
sender. Please note that any views or opinions presented in this e-mail are
solely those of the author and do not necessarily represent those of IST
Research. The recipient should check this e-mail and any attachments for
the presence of viruses. IST Research accepts no liability for any damage
caused by any virus transmitted by this e-mail.


WIP: Add Dockerfile & Github Action to IDA cookiecutter.

Description:
Describe in a couple of sentences what this PR adds
JIRA:
XXX-XXXX
Merge checklist:

[ ] All reviewers approved
[ ] CI build is green
[ ] Changelog record added
[ ] Documentation updated (not only docstrings)
[ ] Commits are squashed

Post merge:

[ ] Delete working branch (if not needed anymore)

@adzuci hi, warning, you are putting files in the wrong place. They should go in this folder: /cookiecutter-django-ida/{{cookiecutter.repo_name}}/

I was able to figure out the issues I had and move the files into the right place.  make cookiecutter-django-ida now seems to run cleanly as well, but I'd like another set of eyes to let me know if the .github/workflow/docker-publish.yml file looks correct.  It's based on https://github.com/edx/course-discovery/blob/master/.github/workflows/docker-publish.yml


Failed to import onnx package built with runner version: '2.317.0' (Version: 20240729.2.0)

Description
Failed to import onnx package built with runner version: '2.317.0' (Version: 20240729.2.0):
ImportError: DLL load failed while importing onnx_cpp2py_export: A dynamic link library (DLL) initialization routine failed.
https://github.com/onnx/onnx/issues/6267
https://github.com/onnx/onnx/actions/runs/10240391088/job/28327161201
It could be any package built with the runner version.
Platforms affected

[ ] Azure DevOps
[X] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] Ubuntu 24.04
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[ ] macOS 14 Arm64
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
pip install onnx
import onnx
Is it regression?
runner version: 'Version: 20240721.1.0': https://github.com/onnx/onnx/actions/runs/10203677822/job/28230518589
Expected behavior
shall be able to import the onnx package
Actual behavior
import onnx failed with:
ImportError: DLL load failed while importing onnx_cpp2py_export: A dynamic link library (DLL) initialization routine failed.
Repro steps
Step1.
pip install onnx
Step2.
import onnx

Hi @liqunfu ,
Could you please try with new rollout (20240804.1.0) , it is working . Thank you !

Hi @liqunfu ,
Could you please try with new image rollout (20240804.1.0) , it is working . Thank you !

I ran the CI - it is still using:
Image: windows-2022
Version: 20240729.2.0
and is still failing. Looking to released runner images I do not see 20240804.1.0 for Windows 2022 server.
BTW, if the new release if available the CI will pick it up automatically, right?

Hi @liqunfu ,
Could you please try with new image rollout (20240804.1.0) , it is working . Thank you !

I ran the CI - it is still using: Image: windows-2022 Version: 20240729.2.0 and is still failing (https://github.com/onnx/onnx/actions/runs/10305222956/job/28525511662). Looking to released runner images (https://github.com/actions/runner-images/releases?page=1) I do not see 20240804.1.0 for Windows 2022 server. BTW, if the new release if available the CI will pick it up automatically, right?

@liqunfu  ,
Sorry, my bad.  i thought it is for ubuntu 22 , will look into it and confirm you.

@liqunfu ,
Could you please try with new image rollout (20240807.2) .Thank you !

@liqunfu ,
Could you please try with new image rollout (20240807.2) .Thank you !

It is still not working: https://github.com/onnx/onnx/actions/runs/10372781946/job/28716315392

HI @liqunfu ,
vs2015_runtime will may not support with windows-latest image , have you tried with windows-2019 image?

HI @liqunfu ,
vs2015_runtime will may not support with windows-latest image , have you tried with windows-2019 image?

vs2015_runtime dependency was introduced with the new runner image. runner image before 20240721.1.0 produced ONNX package without vs2015_runtime dependency therefore it could be imported without any issue.

Did this happen again with newer runner image: "they updated the compiler without updating the VCRedist package."?
https://github.com/actions/runner-images/issues/10020#issuecomment-2156793483

@kishorekumar-anchala We are close to release ONNX 1.17.0 and is block by this issue. Is there a way to specify a older version of Action runner image. The latest Windows 2022 action runner has a runtime newer than most of python users' thus the package built with the latest runner is not compatible with most python environments used by our users. In general, in order for a python package to be compatible with users' environment, it is better to build the package with an older runtime. GitHub action only allows to use the latest runner which is a problem for any repo that is building python packages.

@kishorekumar-anchala We are close to release ONNX 1.17.0 and is block by this issue. Is there a way to specify a older version of Action runner image. The latest Windows 2022 action runner has a runtime newer than most of python users' thus the package built with the latest runner is not compatible with most python environments used by our users. In general, in order for a python package to be compatible with users' environment, it is better to build the package with an older runtime. GitHub action only allows to use the latest runner which is a problem for any repo that is building python packages.

Older version of runner image is not possible.
Could you please share python runtime or version to check.

Here is the environment with which I can reproduce the issue:
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
The runner (https://github.com/onnx/onnx/actions/runs/10460371160/job/28966396210) has VC version:
C++ compiler                      : C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe
--   C++ compiler version              : 19.40.33813.0

This issue is due to a breaking change in https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.10 (which maps to compiler version 14.40). Users need to upgrade msvc runtime to the latest to fix this dll loading failure. I have added fix/workaround to ONNX documentation. Close this issue.


Endpoint for resource file listing can cause internal server error

Description of the bug
If a file is missing on irods but exists in database, the endpoint hsapi/resource/{id}/files/ will respond with a 500  error.
Steps to reproduce the bug:

This bug was discovered when debugging for a DSP issue related to registration of a hydroshare resource.
It is not easy to reproduce because of the nature of the bug.

Expected behavior
When using this endpoint the respond should be 200 http status code.
Additional information
Add any other context about the problem here such as screenshots, software versions, and browser information.

I am suspicious that these dangling files (existing in iRods, not in Django) might be caused by an issue in data_store_remove_folder
I can see in the access.log that the final entry before we started seeing django file_list errors was the following:

<IP_ADDRESS> - - [29/Jun/2023:20:51:57 +0000] "POST /hsapi/_internal/data-store-delete-folder/ HTTP/1.0" 499 0 "https://www.hydroshare.org/resource/f8199e05ce4f477abebfddc82eb5aa14/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"

Immediately preceding the first errors in the django log
$ grep f8199e05ce4f477abebfddc82eb5aa14 django.log
[29/Jun/2023 20:52:06] ERROR [django.request:224] Internal Server Error: /hsapi/resource/f8199e05ce4f477abebfddc82eb5aa14/file_list/
django.core.exceptions.ValidationError: ['f8199e05ce4f477abebfddc82eb5aa14/data/contents/Seismic/Line5/Line 5_08072021/5006.dat cannot be found in iRODS']
[29/Jun/2023 21:15:50] ERROR [django.request:224] Internal Server Error: /hsapi/resource/f8199e05ce4f477abebfddc82eb5aa14/file_list/
django.core.exceptions.ValidationError: ['f8199e05ce4f477abebfddc82eb5aa14/data/contents/Seismic/Line 5/Line 5_08072021/5524.dat cannot be found in iRODS']

It's perplexing though because it appears that the iRODS removal occurs before the deletion in Django:
https://github.com/hydroshare/hydroshare/blob/2.6.1/hs_core/views/utils.py#L1458-L1460
But I'm nevertheless suspicious and would love it if @pkdash would be willing to take a gander at data_store_remove_folder


Notification Buttons

Have notification buttons to alert other users during the workflow process.

I do have some concerns about this one. It always seems like a good idea, but many implementations often fail at it. I've had many experiences as people come and go where the list to notify people grow stall and often it stops being used all together. Also, as workflows change often times so does the way people communicate. Again having a notification system going unused.

yes, i think we can ditch the notification feature. we're usually in contact with each other during the course of a project anyway :)


Develop upstream sync 190401

Conflict file list:

    tensorflow/core/kernels/bias_op_gpu.cu.cc.orig
    tensorflow/core/kernels/bucketize_op_gpu.cu.cc.orig
    tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc.orig
    tensorflow/core/kernels/depthwise_conv_op_gpu.h.orig
    tensorflow/core/kernels/diag_op_gpu.cu.cc.orig
    tensorflow/core/kernels/dilation_ops_gpu.cu.cc.orig
    tensorflow/core/kernels/eye_functor_gpu.cu.cc.orig
    tensorflow/core/kernels/fused_batch_norm_op.cu.cc.orig
    tensorflow/core/kernels/lu_op_gpu.cu.cc.orig
    tensorflow/core/kernels/matrix_band_part_op_gpu.cu.cc.orig
    tensorflow/core/kernels/maxpooling_op_gpu.cu.cc.orig
    tensorflow/core/kernels/multinomial_op_gpu.cu.cc.orig
    tensorflow/core/kernels/pooling_ops_3d_gpu.cu.cc.orig
    tensorflow/core/kernels/relu_op_gpu.cu.cc.orig
    tensorflow/core/kernels/resize_nearest_neighbor_op_gpu.cu.cc.orig
    tensorflow/core/kernels/split_lib_gpu.cu.cc.orig
    tensorflow/core/kernels/svd_op_gpu.cu.cc.orig
    tensorflow/python/kernel_tests/matmul_op_test.py.orig

Rest of files are fast-forwarded

@jerryyin there are build errors in this PR. Please help fix it.

@whchung Working on it

Working on the cuda kernel launch failure at tensorflow/core/kernels/svd_op_gpu.cu.cc

jenkins: ok to test

According to the test log, the failure is in batch_matmul_op_test only. It is caused by a failed BLAS (xGEMMBatched) call from rocm_blas.cc.
Looking at the merge conflict, I didn't see any file related with batch_matmul yet. Will need to do local reproduce and debug.

@deven-amd for rocm path I agree with @jerryyin 's analysis. for rocm-xla path the only failing test is FLAKY and I think we can live with it. how do you think about rocm-v2 path?

The rocm-v2 has only the following failures that we need to worry about.
(All other failures are "known" failures which were whitelisted in PR #388 )
//tensorflow/python/kernel_tests:batch_matmul_op_test                    FAILED in 3 out of 3 in 6.8s
//tensorflow/python/kernel_tests:batch_matmul_op_test_gpu                FAILED in 3 out of 3 in 6.9s

So I guess we have the same failure on rocm-v2 as we have on rocm.  Resolve that and this PR should be good to go

@deven-amd Sounds like the same issue with rocm failure. Confirmed that I can reproduce the issue locally. Looking at the VLOG, nothing from inside tensorflow captured my eye. The only complaint being not able to launch xGEMMBatched kernel from rocBLAS.
I will start with running the same setup in rocBLAS bench

For the rocm-xla path, there is a build failure we need to resolve
ERROR: /workspace/tensorflow/compiler/xla/service/gpu/BUILD:556:1: Couldn't build file tensorflow/compiler/xla/service/gpu/redzone_allocator_test: Linking of rule '//tensorflow/compiler/xla/service/gpu:redzone_allocator_test' failed (Exit 1): crosstool_wrapper_driver_rocm failed: error executing command
  (cd /home/jenkins/workspace/tensorflow-upstream-unit-tests-rocm-xla/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow && \
  exec env - \
    LD_LIBRARY_PATH='' \
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin \
    PWD=/proc/self/cwd \
    PYTHON_BIN_PATH=/usr/bin/python3 \
    PYTHON_LIB_PATH=/usr/local/lib/python3.5/dist-packages \
    TF_DOWNLOAD_CLANG=0 \
    TF_NEED_CUDA=0 \
    TF_NEED_OPENCL_SYCL=0 \
    TF_NEED_ROCM=1 \
  external/local_config_rocm/crosstool/clang/bin/crosstool_wrapper_driver_rocm -o bazel-out/k8-opt/bin/tensorflow/compiler/xla/service/gpu/redzone_allocator_test '-Wl,-rpath,$ORIGIN/../../../../../_solib_local/' '-Wl,-rpath,$ORIGIN/../../../../../_solib_local/_U_S_Stensorflow_Scompiler_Sxla_Sservice_Sgpu_Credzone_Uallocator_Utest___Utensorflow' '-Wl,-rpath,$ORIGIN/../../../../../_solib_local/_U@local_Uconfig_Ucuda_S_\
Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' -Lbazel-out/k8-opt/bin/_solib_local/_U_S_Stensorflow_Scompiler_Sxla_Sservice_Sgpu_Credzone_Uallocator_Utest___Utensorflow -Lbazel-out/k8-opt/bin/_solib_local -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib '-Wl,-rpath,$ORIGIN/,-rpath,$ORIGIN/..,-rpath,$ORIGIN/../..,-rpath,$ORIG\
IN/../../..,-rpath,$ORIGIN/../../../..' -pthread -Wl,-rpath,../local_config_rocm/rocm/rocm/lib -pthread -pthread -Wl,-rpath,../local_config_cuda/cuda/lib64 -Wl,-rpath,../local_config_cuda/cuda/extras/CUPTI/lib64 -pthread -pthread -Wl,-no-as-needed -B/opt/rocm/hcc/compiler/bin -no-canonical-prefixes -pass-exit-codes '-Wl,--build-id=md5' '-Wl,--hash-style=gnu' -Wl,@bazel-out/k8-opt/bin/tensorflow/compiler/xla/service/g\
pu/redzone_allocator_test-2.params)
Execution platform: @bazel_tools//platforms:host_platform
<EMAIL_ADDRESS>file not recognized: File truncated
collect2: error: ld returned 1 exit status

Giving an update here:
Thanks to Jack's suggestion in using "git blame", I narrowed the issue down to this commit that makes relatively large update to batch_matmul_op_test.py.
Can *almost be sure that this is an issue from rocBLAS side.
VLOG:

E tensorflow/stream_executor/rocm/rocm_blas.cc:1936] Internal: failed BLAS call

Python error log:

Blas xGEMMBatched launch failed : a.shape=[5,2,3], b.shape=[7,3,2], m=2, n=2, k=3, batch_size=35
[[{{node MatMul}}]]

rocBLAS API used:

function: rocblas_hgemm_strided_batched
parameters: to be determined, will ping rocBLAS team once get all parameters

@jerryyin in case we are certain it’s caused by rocBLAS please file a ticket internally, and mark relevant tests as no_rocm

Giving another update here. It ends up being an issue from tf code base, because of an assert. Synced up with rocBLAS member that the assert is correct.
The issue is due to bsa (0) < lda (2) x k(2). bsa being 0 is wrong, this is cause by a_raw_ptrs holding similar addresses. Will look further into why the array is populated with similar addresses.

My brain hurts a little bit now, but finally figured out what is happening...
I believe the root cause is that rocblas interface does not have gemm_batched() interface, and we use gemm_strided_batched as a compromise. On the other hand, cuda has gemm_batched interface, so can avoid this problem. Explaination below:
The main issue is due to that we rely on the pointer address to tell us the strides. This logic is broken when the broadcasting feature is added, in this commit. When broadcasting feature is added, either a, b or c arrays is likely to have duplicated pointer elements as a result of broadcasting. In the newly added else statement, an a/b/c array can be obtained through broadcasting, making the whole array having similar address, duplicated from the element being broadcast on. Now, back to the stride calculation based on pointer offset. Not only can the strides being calculated entirely wrong (sda, sdb, sdc can be 0), but neither can it pass the constant stride check. I can't think of a way to obtain the stride information unless it is passed all the way through high level API. On the other hand, at this specific case, it really shouldn't try to use the strides version of the gemm call. Nor should the high level API give the stride information in this batch flavor of gemm call.
It looks like we need to do several things:

Submit a PR to make line 1905 an assert on 1890, so that we immediately know what breaks our code base. It should also return a string claiming that rocm does not support broadcasting feature on batch_matmul
Mark the test as no-rocm
Submit a feature request to rocBLAS for them to support the gemm_batched interface
Submit a feature request to us, such that when rocBLAS have the gemm_batched interface implemented, swap flawed implementation here

@whchung Let me know if my thoughts make sense. You may have a better understanding of rocblas on-development features.

@jerryyin I agree with your analysis.

Test continue to fail when I commented out the broadcasting test cases. Will need to take a further look tomorrow.

Giving another update here, fixed one issue in rocm_blas.cc, that caused test failures in previous update. Now all BatchMatmulOp tests are passing. Will post as an additional commit after figured out all issues with this test.
Seeing another crash from the reduction kernel, from BatchMatmulGradient tests. Have started debugging it.

@jerryyin I want this PR merged ASAP. Please mark relevant tests as no_rocm. We can fix failed one later on.

@whchung Sure, will commit what I have, and get the last round of CI regression.

Now submitting an additional commit to fix the linker issue referenced from @deven-amd.
CI status commit 49d30ab:

cuda is passing;
rocm-xla has a build failure;
rocm has only flaky test failure;
rocm-v2 is passing;

@whchung Let's monitor the next CI result. It should run through without any other issues. Once the CI result is good and you are okay with it, I will either finish the result of the merge procedure in the weekend or first thing on monday.

jenkins: ok to test

jenkins: ok to test

I'm taking this PR. @jerryyin please being the next round.

@whchung Sounds good. I finished the rest of tasks: push the tag and sync the upstream branch. Now onto this week's upstreaming merge task


PH3 doesn't display memory reduction (where PH2 does) from https://github.com/henrypp/memreduct

Brief description of your issue
While running PH3, after reducing memory usage with Mem Reduct's (https://github.com/henrypp/memreduct) default "Clean memory..." command, PH3's "System Information" Memory status does not change.
Steps to reproduce (optional)
Download and run Mem Reduct (https://github.com/henrypp/memreduct/releases).
Issue the default Mem Reduct "Clean Memory..." command with PH2 running then again with PH3 running.
Observe that "System Information" Memory status does change with PH2 and does not change with PH3.
Expected behavior (optional)
I expected PH3's "System Information" to display a reduction in memory (from Mem Reduct) in the same manner as PH2.
Actual behavior (optional)
No response
Environment (optional)
Tested on Windows 7 and Windows 10.

Works for me?

I also confirmed this appears to be working for me:

Is there something more specific you're not seeing change that you expect to @davidmbesonen?


Slide Menu not pulling up on main page after present/dismiss of another view

The entry point/initial view controller in my app is a TableViewController that presents a LogInViewController if not logged in, and dismisses it once the login succeeds. I'm using NSUserDefaults for the log in status (just a Bool returning true if logged in) for now. So when I open the app with it logged in, go to log out, and log back in, the slide menu won't come up on the TableViewController, either through the BarButtonItem or through dragging the screen from the side.
I'm not sure what's causing this, or even what code to show that's relevant to the issue. I was calling setNavigationBarItem() within viewDidAppear() in my TableViewController, but am now calling it in viewWillAppear() because using viewDidAppear() completely prevents the navigation bar from showing up on my TableView page. My TableViewController is a child of a NavigationController, and my LogInViewController isn't, it just segues directly to the TableViewController. I'm also noticing that viewWillAppear() is being called twice and haven't found a way to prevent that online, and am not sure if it's related to the fact that the slide menu isn't showing up once I log back in.
The code I'm using to present (from TableViewController.swift) and dismiss(from LogInViewController.swift) is:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("LogInViewController") as! LogInViewController
let navigationController = UINavigationController(rootViewController: vc)
    self.presentViewController(navigationController, animated: false, completion: nil)

and
self.dismissViewControllerAnimated(true, completion: nil)
I don't know how much of this issue is on my end or if it's just something this library isn't designed to do. Please let me know if any more code would be helpful in solving this problem.

I am facing same issue..Did u solve this issue?

@salramkotha, sorry to get to you late. If you're still having the problem, I believe I managed to fix it by inserting
dispatch_async(dispatch_get_main_queue(), {
               let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
                appDelegate.createMenuView()
                })

inside my LogInViewController.swift's if (success for login condition) { } check, immediately after dismissing the view controller (also within the if block). It might be messy or non-ideal, but it gets the job done.

in app delegate createmenuview() can u share code of create menu view I am using view in view controller how to activate that viewcontroller?

func createMenuView() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)

    let leftViewController = storyboard.instantiateViewControllerWithIdentifier("LeftViewController") as! LeftViewController
    let tableViewController = storyboard.instantiateViewControllerWithIdentifier("TableViewController") as! TableViewController
let nvc: UINavigationController = UINavigationController(rootViewController: tableViewController)

    leftViewController.homeViewController = nvc // sets "Main" tab in slide menu = (squeaks page)

    let slideMenuController = SlideMenuController(mainViewController: nvc, leftMenuViewController: leftViewController) // SlideMenuController.mainViewController is the entry point.

    self.window?.rootViewController = slideMenuController
    self.window?.makeKeyAndVisible()
}

It should be roughly the same as what's given by dekatotoro, except with a navigationController containing the tableViewController. So the first parameter of SlideMenuController is that navigationController.

Thank you. will try this :)


Any way to unbind MouseWheel events?

Which operating system does the issue occur on?

macOS
Currently, one 'step' up of the scroll wheel translates into going up one step in shell's history.  Analogously in the other direction.  My mouse is very sensitive and this results in many accidentals resets of the command I'm typing.  Is there a way to unbind/rebind/disable MouseWheel events?

I'm sorry, but I don't quite understand what the issue here is.
If you have problems with the mouse roll accidentally moving while typing, why are you touching the mouse at all?
Also how would scrolling affect the command you're typing? Scrolling while typing does not clear the current command prompt.

Also how would scrolling affect the command you're typing? Scrolling while typing does not clear the current command prompt.

It doesn't clear the command prompt for me (AIUI, the command prompts is the part that Bash prints before your command, e.g. ~$ ), but it does make the shell go back in history, resetting the characters entered so far.  Is the behavior different for you?  What happens when you:

Type echo foo, then press enter key
Type echo bar, scroll one notch up using mouse wheel?

For me, the shell goes back to echo foo command, removing echo bar completely.

what do you mean

@adaszko If you want to disable scrollback, you can set scrolling.history to 0.
Though echo bar should not be 'completely removed'. It should just be outside the visible region.

OK, thanks to your feedback I figured out it was tmux that translated mouse wheel scrolling into shell history navigation.  That happens when you have set -g mouse off in tmux.conf.

Actually, I've noticed mouse wheel events get also translated into <Up> and <Down> keys when Vim is running, outside of tmux.  I'm not knowledgeable about terminal codes, but isn't there some kind of a special case for 'full screen' terminal apps, such as Vim and tmux?  The way I understand it, Alacritty gets MouseWheel events and has to decide whether to intercept them of pass them through based on some logic.

There is a special case and it's called faux scrolling. You'll be able to find documentation on how to disable that in the config.
Note that this only takes effect when you're in the alternate screen buffer and mouse mode is disabled.

Thank you for the clarification!


[Optimization] Improve readability and performance

1、Improve readability
2、Improve performance Because the EnumMap  underlying data structure is a simple array

Due to exist nullable key, it can't replace to EnumMap,so I have closed the PR


research for Remove mutex on pool

After some discussion we can remove the mutex because they are not needed.
I can take care on this and do some tests investigation and performance analysis

Doing closing


Every Component should have a shouldComponentUpdate function

Hello material-ui community!
I found out that too much Components don't have a "shouldComponentUpdate" function.
Thats not good, because Components will be rerendered too often.
Here is an example: https://codesandbox.io/s/ypw7qx7119
Just open the Console. Via the npm package "why-did-you-update", you can see components wo did an non necessary update.
Did you already know that or are you currently working on that?

Hey, @janhoeck , see discussion and background in #10778.

Oh great, thanks.


What are the versions of tensorfn and pydantic

pydantic==1.10.14.
The demo is now fixed.

That's right, I installed the python3.6 environment according to your requirements. However, pydantic and tensorfn kept reporting errors, and pydantic could not install the version you requested. But when I used the python3.7 environment, everything was solved. Thank you for your reply


[BUG] Crash after 60s

Describe the bug
After starting go-hass-agent, it crashes after ~60s
To Reproduce
Launch go-hass-agent binary.
Expected behavior
The process should remain up until interrupted.
Screenshots
If applicable, add screenshots to help explain your problem.
Logs
A log will be very helpful to look into this bug report. To get the log:
6:08PM DBG Debug logging enabled.
6:08PM INF Starting agent.
6:08PM DBG internal/agent/config.go:74 > Setting language to [en-US].
6:08PM DBG internal/agent/config.go:53 > Using URL https://ha.familleseux.net:443/api/webhook/b1dbfd47be7bcf0852b096a3ed90535667f11e814434f3397a7a95a825b8d860 for Home Assistant access
6:08PM DBG internal/agent/config.go:53 > Using URL https://ha.familleseux.net:443/api/webhook/b1dbfd47be7bcf0852b096a3ed90535667f11e814434f3397a7a95a825b8d860 for Home Assistant access
6:08PM DBG internal/device/device.go:84 > Registering Battery sensors.
6:08PM DBG internal/device/device.go:84 > Registering Apps sensors.
6:08PM DBG internal/device/device.go:84 > Registering Network sensors.
6:08PM DBG internal/agent/agent.go:158 > Setting up sensors for Battery.
6:08PM DBG internal/agent/agent.go:158 > Setting up sensors for Apps.
6:08PM DBG internal/agent/agent.go:158 > Setting up sensors for Network.
6:08PM DBG internal/hass/websocket.go:98 > Using wss://ha.familleseux.net:443/api/websocket for websocket connection.
6:08PM WRN Unsupported desktop/window environment.
6:08PM ERR Unable to execute org.freedesktop.NetworkManager.GetDevices on org.freedesktop.NetworkManager (args: ) error="The name org.freedesktop.NetworkManager was not provided by any .service files"
6:08PM DBG internal/device/network_linux.go:352 > Could not list devices from network manager
6:08PM DBG internal/device/apps_linux.go:126 > Unsupported or unknown portal
2023/04/12 18:08:46 systray error: failed to register our icon with the notifier watcher (maybe no tray is running?): The name org.kde.StatusNotifierWatcher was not provided by any .service files
6:08PM DBG internal/agent/config.go:53 > Using URL https://ha.familleseux.net:443/api/webhook/b1dbfd47be7bcf0852b096a3ed90535667f11e814434f3397a7a95a825b8d860 for Home Assistant access
6:08PM DBG internal/agent/notifications.go:45 > Requesting authorisation for websocket.
6:08PM DBG internal/agent/notifications.go:54 > Registering app for push notifications.
2023/04/12 18:09:46 Message recipient disconnected from message bus without replying

it is likely relevant to note in journalctl at the same time
Apr 12 18:09:46 gagarine geoclue[1609514]: Service not used for 60 seconds. Shutting down..
Apr 12 18:09:46 gagarine systemd[1]: geoclue.service: Deactivated successfully.

Desktop (please complete the following information):

OS: Archlinux
Version 0.0.2 + #4

I assume the issue is due to my geoclue setup not working properly. I would expect the agent not to crash in that situation though.

Hey @kamaradclimber thanks for the report. It seemed a bit tricky to handle this situation as the library I'm using to get the location via geoclue is a bit wonky with reporting errors it seems. I've got a workaround in https://github.com/joshuar/go-hass-agent/commit/72d6541cfcd264222024fe348dd278860595d957 (release 0.0.3) that seemed to work in an Arch container I tested on with distrobox. I unfortunately don't have access to a full Arch install so I'm hoping this is a fix for you as well.

This should be fixed now. If the agent can't find a location, it will bail on creating a sensor for it. I'll close this for now, but please re-open if it is still a problem and I'll look into it further.


Code eats my CTRL + PrtScn keyboard shortcut

VSCode Version: 1.11.0
OS Version: Windows 10 15063.13

Steps to Reproduce:

Configure an app to use the CTRL + PrtScn keyboard shortcut (I use SnagIt)
Open VS Code
Attempt to use the CTRL + PrtScn keyboard shortcut

I should get a screen capture initialized, but nothing happens. VS Code seems to have "eaten" the keyboard shortcut.

I dont know if this is related or not , but on Ubuntu , i mapped CAPS + ijkl to arrow keys , however those seem to not work in VSCode only.

@prsnnami Your issue appears to be unrelated (i.e. different OS). Please open a separate issue.
@codefoster What do key code do we receive from Electron when you press Ctrl+PrtScn ?

open Preferences > Keyboard Shortcuts
click on keybindings.json
on the right hand side editor click on Define Keybinding
press the key combination that has a problem
hover with the mouse over the input box

Hmm. It’s working now. I delayed in fulfilling your request for more info, so perhaps it was fixed in a recent update. Or perhaps I was doing something wrong. Now when I hit my shortcut it captures the screen as it should.
Jeremy Foster
<EMAIL_ADDRESS>//<PHONE_NUMBER>
From: Alexandru Dima<EMAIL_ADDRESS>Sent: Monday, April 10, 2017 6:23 AM
To: Microsoft/vscode<EMAIL_ADDRESS>Cc: Jeremy Foster<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/vscode] Code eats my CTRL + PrtScn keyboard shortcut (#24002)
@prsnnamihttps://github.com/prsnnami Your issue appears to be unrelated (i.e. different OS). Please open a separate issue.
@codefosterhttps://github.com/codefoster What do key code do we receive from Electron when you press Ctrl+PrtScn ?

open Preferences > Keyboard Shortcuts
click on keybindings.json
on the right hand side editor click on Define Keybinding
press the key combination that has a problem
hover with the mouse over the input box

[image]https://cloud.githubusercontent.com/assets/5047891/24852340/62543a40-1dd7-11e7-8b4e-b9be991d1eb9.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/vscode/issues/24002#issuecomment-292895670, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABbO_arfH7qAdqt1jPw8lRRyJLxwxVWYks5rufTygaJpZM4M1NFq.

Great to hear!


Permuted DataLoader

Permuted dataloader, and some first tests. WIP still.

lgtm!

Is there a need to make any of the hard coded values configurable in the test functions?


Error running applications/derive_mirror_rnda.py

Running this application with the master branch results in :
python applications/derive_mirror_rnda.py --site North --telescope MST-FlashCam-D --mean_d80 1.4 --sig_d80 0.16 --mirror_list mirror_MST_focal_lengths.dat --d80_list mirror_MST_D80.dat --rnda 0.0075
<EMAIL_ADDRESS>password:
Traceback (most recent call last):
  File "/conda/envs/gammasim-tools-dev/lib/python3.9/site-packages/astropy/units/quantity.py", line 333, in __new__
    value = float(v.group())
AttributeError: 'NoneType' object has no attribute 'group'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workdir/external/gammasim-tools/applications/derive_mirror_rnda.py", line 313, in <module>
    meanD80, sigD80 = run(rndaStart)
  File "/workdir/external/gammasim-tools/applications/derive_mirror_rnda.py", line 246, in run
    ray = RayTracing.fromKwargs(
  File "/workdir/external/gammasim-tools/simtools/ray_tracing.py", line 185, in fromKwargs
    return cls(**args, configData=configData)
  File "/workdir/external/gammasim-tools/simtools/ray_tracing.py", line 127, in __init__
    self.config = gen.validateConfigData(_configDataIn, _parameters)
  File "/workdir/external/gammasim-tools/simtools/util/general.py", line 107, in validateConfigData
    validatedValue = _validateAndConvertValue(parName, parInfo, valueData)
  File "/workdir/external/gammasim-tools/simtools/util/general.py", line 175, in _validateAndConvertValue
    if any([u.Quantity(v).unit != u.dimensionless_unscaled for v in value]):
  File "/workdir/external/gammasim-tools/simtools/util/general.py", line 175, in <listcomp>
    if any([u.Quantity(v).unit != u.dimensionless_unscaled for v in value]):
  File "/conda/envs/gammasim-tools-dev/lib/python3.9/site-packages/astropy/units/quantity.py", line 336, in __new__
    raise TypeError('Cannot parse "{}" as a {}. It does not '
TypeError: Cannot parse "all" as a Quantity. It does not start with a number.
INFO::db_handler(l180)::_closeSSHTunnel::Closing SSH tunnel(s)

Fixed by #164


Counter/operation node

A variation on or improvement to the set node that does not give the variable a set value but performs an operation on it - incrementing, decrementing, arbitrary math operations etc.

This can be achieved with expressions now.


Limits for openreader

This PR adds 2 new options to graphql-server and openreader.

--max-response-size <nodes> - maximum number of JSON nodes in GQL response
--max-root-fields <count> - maximum number of top level fields in a query

The reason for 2 options for basically the same kind of limit is due to our current implementation details. Each access to a top level field implies database request. Hence, queries
query {
   i1: itemById(id: "1") { id }
   # ...
   i100: itemById(id: "100") { id }
}

and
query {
   items(limit: 100) {
      id
   }
}

being similar in size, have completely different complexities (not regulated by other means).
There are also 2 new schema directives, that help with response size estimation:

@cardinality(value: Int!) - applicable to entities and list relations
@byteWeight(value: Float!) - applicable to scalars and typed JSON fields on entities

Have a look at substrate-explorer to see example usage and to play with queries.

I set --max-response-size 2, but when I try to query
query MyQuery {
  accounts(limit: 2) {
    id
  }
}

it returns "message": "response might exceed the size limit"
Is root node also counted?

And could you please explain how new derictives relate with options?

And could you please explain what cardinality is for?

And why this query also returns error? --max-response-size 10
query MyQuery {
  historicalBalances(limit: 1) {
    id
    account {
      balance
      historicalBalances(limit: 2) {
        id
        account {
          id
        }
      }
    }
  }
}

there are only 8 nodes in response (including root). Or arrays are also counted as roots?

Or arrays are also counted as nodes?

Yes, arrays and objects are counted as nodes by themselves. Node counting roughly approximates the amount of memory query can potentially use, but it is not something particularly definite and precise.

And could you please explain what cardinality is for?

@cardinality is a way to specify typical number of elements in relation or table. For example,
type Order @entity {
   id: ID!
  name: String!
  # We rarely have more than 10 items, convey this information via @cardinality
  items: [Item!]! @derivedFrom(field: "order") @cardinality(value: 10)
}

type Item @entity {
   id: ID!
  name: String!
  order: Order!
}

query {
  orderById(id: "1") {
    name
    items { # Although there is no limit, it is assumed to be 10
       id
       name
    }
  }
}


Use relative import statements

IMO the utils imports that aren't with utils/__init__.py should be left as absolute as it improves clarity & consistency. The same import statement is used in the cogs and the utils.

So just so I understand the only file you would want changed is the utils init? and everything else just as it was? or do you want the cogs init changed as well
I can see the argument but I'd like to keep as consistent as we can one way or the other and tbf I think my preference is relative wherever we can but I dont mind too muich

I would have originally said change utils/__init__.py and cogs/__init__.py, however I'm currently doing a bit more research into the pros/cons of relative imports. (Checkout https://youtu.be/uwtupH7LJco?si=B-LF9ditT8izLHqR for context).
The main point the video makes is that relative imports only work if you run the python script with the -m flag. Thankfully we currently do.
The main benefit of relative imports is to reduce unwieldy long import statements many levels deep, or to allow restructuring parent modules without affecting lower module's imports. Because we don't run into either of those issues I would rather keep the imports more clear on the location the classes/functions are coming from.
Further reading:
https://realpython.com/absolute-vs-relative-python-imports
https://stackoverflow.com/questions/4209641/absolute-vs-explicit-relative-import-of-python-module

Yeah just quickly watched that video - sounds like just using absolute is the easiest / simplest, though again I don't care particularly much as long as it's consistent

I think I'm gonna stand by being annoying and advocate for the inconsistent. Use relative within __init__.py files or relational connections (E.g. importing custom exception classes from exceptions/base.py), use absolute elsewhere.


Add hostname attribute to Response object to allow server-side validation

The hostname attribute can be used on server-side in order to check the domain name where the reCaptcha was solved to improve the security.
This verication is mandatory when the domain name validation is turned off on Admin Console. See more: https://developers.google.com/recaptcha/docs/domain_validation
The ResponseTest was updated in order to check the new attribute.
This change does not break backwards compatibility.

This PR fixes the issue #105. The consumers will be able to check the hostname doing the following:
$recaptcha = new \ReCaptcha\ReCaptcha($secret);
$response = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

if ($response->getHostname() !== $_SERVER['SERVER_NAME']) {
    throw new RuntimeException('We are under attack!');
}

if (!$response->isSuccess()) {
   // ...
}
// ...

This PR also replaces #110.
Could someone merge this, please?

We would love to use this functionality. @rowan-m: is there anything preventing this from being merged?

I fixed the issue with doc & type ofResponse::hostname that @junedkazi have mentioned.

This LGTM 👍

Note: CLA checks are fine there was just some messy conflict stuff due to me fudging a previous PR.


New rule: blueprint-disabled-button-with-tooltip

If a <Tooltip> wraps a <Button> with a disabled prop (suggesting that the button could be disabled), recommend using an <AnchorButton> instead.
Rationale: due to a browser limitation, <button disabled> will eat all mouseout events, so the Tooltip will never be dismissed. Anchor buttons do not have this limitation.

K

Closing in favor of https://github.com/palantir/blueprint/issues/4359


Cannot get the reported performance

Hi, I am confused that I run this code with all required datasets and tools, but I cannot get the reported performance. The performance gap is so large, so I think there are some mistakes, but I did not change the code, and I cannot find what is wrong. Could you help to provide some checkpoints or give some suggestions?

I only get the F1 value of 66.1 on the Fudan dataset. Is the result you get similar to mine? I wonder if there is something wrong with me?

Yes, I get the similar performance. I have not solved it.

We have fixed the problem and get the reported performance.


[🐛 BUG]: Kafka - The auto-commit is applied even if PHP process crashes

No duplicates 🥲.

[X] I have searched for a similar issue in our bug tracker and didn't find any solutions.

What happened?
A bug happened!
Hi,
I am using Kafka job and consuming a topic called "my-topic".
My kafka-worker.php file:
declare(strict_types=1);

use Spiral\Goridge\StreamRelay;
use Spiral\RoadRunner\Jobs\Consumer;
use Spiral\RoadRunner\Jobs\Serializer\JsonSerializer;
use Spiral\RoadRunner\Worker;

require __DIR__.'/vendor/autoload.php';

// Create the RoadRunner worker.
$rr = new Worker(new StreamRelay(\STDIN, \STDOUT));
$consumer = new Consumer($rr, new JsonSerializer());

// Consume events coming from Kafka.
try {
    while ($task = $consumer->waitTask()) {
        Hello::world(); // It throws an error because the "Hello" class has not been imported.
        $task->complete();
    }
} catch (\Exception $ex) {
    $rr->error($ex->getMessage());
}

My .rr.yaml file:
rpc:
    listen: 'tcp://<IP_ADDRESS>:6001'
server:
    command: 'php app.php'
    relay: pipes
http:
    address: '<IP_ADDRESS>:8080'
    pool:
        num_workers: 1

# Kafka jobs driver
kafka:
    addrs: my-broker:9092

jobs:
    num_pollers: 1
    pipeline_size: 100000
    pool:
        command: php kafka-worker.php
        num_workers: 1
        max_jobs: 0
        allocate_timeout: 60s
        destroy_timeout: 60s

    consume: [ "test-kafka-1" ]

    pipelines:
        test-kafka-1:
            driver: kafka
            config:
                priority: 1
                topic: my-topic
                group_id: "foo"

When a message is produced into my Topic, the PHP process crashes because the Hello class does not exist but the offset of my the topic changes.
Like RoadRunner only supports auto-commit, I guess the offset must not be "incremented" if the PHP process crashes.
Because if it is the case, it means we are not sure a message consumed has been processed correctly.
Here the output of RoadRunner:
2022-10-23T17:02:21.254+0200    DEBUG   server          worker is allocated     {"pid": 36966, "internal_event_name": "EventWorkerConstruct"}
2022-10-23T17:02:21.254+0200    DEBUG   http            http server was started {"address": "<IP_ADDRESS>:8080"}
2022-10-23T17:02:24.458+0200    DEBUG   kafka           group setup
2022-10-23T17:02:24.459+0200    DEBUG   kafka           pipeline was started    {"driver": "kafka", "pipeline": "test-kafka-1", "start": "2022-10-23T17:02:21.279+0200", "elapsed": "3.179077195s"}
2022-10-23T17:02:24.459+0200    DEBUG   rpc             plugin was started      {"address": "tcp://<IP_ADDRESS>:6001", "list of the plugins with RPC methods:": ["resetter", "jobs", "informer"]}
[INFO] RoadRunner server started; version: 2.11.4, buildtime: 2022-10-06T14:43:01+0000
2022-10-23T17:02:24.504+0200    DEBUG   server          worker is allocated     {"pid": 37032, "internal_event_name": "EventWorkerConstruct"}
2022-10-23T17:02:26.461+0200    DEBUG   kafka           message pushed to the priority queue    {"topic": "my-topic", "partition": 0, "offset": 6, "headers": []}
2022-10-23T17:02:26.461+0200    DEBUG   jobs            job processing was started      {"ID": "\"laborum eiusmod aute qui dolor\"", "start": "2022-10-23T17:02:24.504+0200", "elapsed": "1.957392181s"}
2022-10-23T17:02:26.463+0200    INFO    server          PHP Fatal error:  Uncaught Error: Class "Hello" not found in /home/cyril/rr-kafka/kafka-worker.php:19
Stack trace:
#0 {main}
  thrown in /home/cyril/rr-kafka/kafka-worker.php on line 19

2022-10-23T17:02:26.463+0200    WARN    server          network error   {"reason": "network", "pid": 37032, "internal_event_name": "EventWorkerError", "error": "sync_worker_exec: Network:\n\tsync_worker_exec_payload: EOF"}
2022-10-23T17:02:26.463+0200    ERROR   jobs            job processed with errors       {"error": "sync_worker_exec: Network:\n\tsync_worker_exec_payload: EOF", "ID": "\"laborum eiusmod aute qui dolor\"", "start": "2022-10-23T17:02:24.504+0200", "elapsed": "1.959587356s"}
2022-10-23T17:02:26.463+0200    ERROR   jobs            job execute failed      {"error": "sync_worker_exec: Network:\n\tsync_worker_exec_payload: EOF"}
2022-10-23T17:02:26.466+0200    DEBUG   server          worker stopped  {"internal_event_name": "EventWorkerWaitExit", "error": "signal: killed; process_wait: signal: killed", "errorCauses": [{"error": "signal: killed"}, {"error": "process_wait: signal: killed"}]}
2022-10-23T17:02:26.501+0200    DEBUG   server          worker is allocated     {"pid": 37083, "internal_event_name": "EventWorkerConstruct"}

I guess there are 2 solutions:

Roadrunner does not increment the offset if the PHP process crashs and/or returns an "execution code" equals to 0 (success)
Roadrunner also supports the "manual" commit by calling on the PHP side a method like $topic->commit().

Thank you
Version (rr --version)
RoadRunner server started; version: 2.11.4, buildtime: 2022-10-06T14:43:01+0000
Relevant log output
No response

Hey @Baiquette 👋🏻
Yeah, RR commits the offset after it receives a message from Kafka. Since we don't have a particular order. For example, imagine we have 3 workers who are busy with 3 messages with offsets 1,2, and 3. Then, worker 3 (with offset 3) finished its work and committed offset 3. Workers 1 and 2 crash, but still, Kafka has committed offset 3.
I'll try to see if there are any options to bypass that behavior.

One of the approaches that we can implement is to track the offset manually. Since it continuously grows, we can have an array with the last commits from the workers.
For example:
1 2 3 4 5 -> and the next -> 7, and 6 got NACK-ed. We commit a 1,2,3,4,5 and waiting for the 6. So, we can't commit an offset that is more than 5. The problem is that the worker might stick with the message for a long time. And in that case, we will lose an offset that other workers successfully committed...

Hello @rustatian
Thank you for your feedback
I have a question: Can we limit 1 worker for each Kafka consumer (so 1 job = 1 worker) when we are using Kafka (even in we define more than 1 in the .rr.yaml file?
This condition will allow us:

To auto-commit only if the worker does not "crash"
To implement the manual commit
If we need to consume a lot of messages, we can imagine (in a cloud native environement) that Kubernetes will be set to use its auto-scaler, ot xe can create several pods, etc.

What do you think?
Thank you

Unfortunately no. Workers are defined in the jobs plugin and consume the global queue from all pipelines.
But, if I knew the starting offset per pipeline (it's 0, or you may also specify it), I might easily track the offset and commit only acknowledged messages.

I will implement this in v2.12.1 and wait for your feedback 😃

I'm experimenting with our initial implementation with librdkafka, the same library used for the php-rdkafka. The main problem is that this library didn't support Windows... But nowadays, I guess this is not a problem since it might be installed in the docker-container or in the WSL2 on Windows.

I guess that the first cross-platform alpha version (non-librdkafka, but better) with almost all Kafka feature support will be on the next week. You'll be able to use auto commits or commit-only Ack-ed offsets.

Hey @Baiquette 👋🏻
Have you had a change to try the new Kafka driver ?


Use the replication connection string when doing the initial duplication for replication.

@philpennock

LGTM.
(I have a preference for seeing long-options in script invocations of non-base-POSIX commands, as it makes it clearer what's happening and people looking can better understand what is expected to be in the value being passed, so --dbname would be better than -d here, but I'll accept a "consistency with existing stupidity" argument and this does not block merge)

Updated to use long args (changed the other short arg to long as well)

LGTM


Python formula to filter dropdown in reference columns

Hello,
First let me thank you for the astonishing work you made on this software. I had literally been looking for such a thing for years.
About the much-cited option to filter dropdowns in reference column, how about adding an option below "show column", that could be named for example "choice list formula" or "filter formula" ? It could work the same way as formula columns / trigger formulas or conditional style, and would open many customization options.
I’m aware of the solution proposed here, but in my case (a database for a school, with several classes), it would mean adding many columns to the same table, that would become quite dirty.
Thanks again !

There's definitely a need here, there's a list of related requests at https://github.com/gristlabs/grist-core/issues/249#issuecomment-1229124703

@jperon, could you share an example of such a formula that would solve your use case?

For example, something like sorted((e.Descriptif for e in T_Personnes.lookupRecords() if e in $Cours.Eleves)), or any variant based on lookupRecords.

While thinking about it, a related feature would be to have the option to define a "show formula": instead of depending on a defined column of the related table, it would let the user define what’s shown by a formula, avoiding the need for many "descriptive" columns in the table.

@xadorfr Grist Labs doesn't have a design for it, and isn't currently developing it. ANCT has a long standing related interest (https://github.com/gristlabs/grist-core/issues/249) but also isn't actively working on it. We'd love to sort this out, improvements here are very doable, we're just tied up in other work.

This would be awesome for separating out different data types that reside in the same reference table.

Indeed It would be very useful

A feature was recently released to allow filtering dropdown values. See usage here: https://support.getgrist.com/col-refs/#filtering-reference-choices-in-dropdown. @jperon , is that enough to close this issue? Some further enhancements and related wishes are still open, and listed in https://github.com/gristlabs/grist-core/issues/249.

A feature was recently released to allow filtering dropdown values. See usage here: https://support.getgrist.com/col-refs/#filtering-reference-choices-in-dropdown. @jperon , is that enough to close this issue? Some further enhancements and related wishes are still open, and listed in #249.

Hello, this new feature is exactly what I needed ! But I use it in table views as well as in forms. Currently the fields in the form view are not filtered with this feature. It would be amazing to be able to do so to ease the life of my customers :-)


Add typescript types

Add typescript types instead of using
 // @ts-nocheck

Types still don't work


Problem building dotnet

Problem encountered on https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/consume
Operating System: linux
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
Two Errors I am receiving while building ML.net dotnet:
First error is after extracting the tar, and running the command:
'./dotnet tool install -g mlnet'
mlnet installs successfully, but I cannot run the software with command 'mlnet'
I am first prompted to install mldonkey-server using 'apt install mldonkey-server'
then, to attempt using the binary to run software sample code 'consumeModel' from
https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/create
I get the error
root@david-Lenovo-Product:/home/david/Downloads# ./dotnet run --project /home/david/code/Program.cs
/home/david/code/Program.cs(1,1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 1, position 1.
The build failed. Fix the build errors and run again.

the parameter for --project should be csproj file, which ends in .csproj, instead of csharp source file

Close due to no response, feel free to reopen it if you still have the problem


fix: reconfigure project after change of JSON conffiguration files

Before this change we was regenerating config strings only after manual calling of cmake command. That could be a problem in some situations during local tests, etc.
So right now if json file was changed reconfiguration is triggered automatically

prnet cleaned-up successfully


Generalize the newly added Stream.appendSelf(Function) method

The appendSelf method really is a special version of transform, which is also needed for Tree processing (see #9).
A general version transform should be implemented in Seq (or Traversable?).
The problem here is that we need type constructors, e.g.
interface Seq<T> {
    Seq<T> transform(Function<? super Seq<T>, ? extends Seq<T>> f);
}

interface Stream<T> extends Seq<T> {
    // Does not compile because of changed generic types of Function
    @Override
    Stream<T> transform(Function<? super Stream<T>, ? extends Stream<T>> f);
}

I've looked into it - it is not the same as traverse(). We will stay with appendSelf().


Adding support for multiple Noise protocol engines to evaluate their …

…security characteristics.

All existing test cases pass with refactored code using noise stream protocol as an engine.