Eclipse is Crashing

Please provide a brief summary of the bug

A fatal error has been detected by the Java Runtime Environment:

SIGSEGV (0xb) at pc=0x00007fb05bbb61f8, pid=8004, tid=8005

JRE version: OpenJDK Runtime Environment (21.0.2+13) (build 21.0.2+13-Ubuntu-122.04.1)
Java VM: OpenJDK 64-Bit Server VM (21.0.2+13-Ubuntu-122.04.1, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
Problematic frame:
C  [libwebkit2gtk-4.0.so.37+0xdb61f8]

Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/dshunter/eclipse/java-2024-03/eclipse/core.8004)

If you would like to submit a bug report, please visit:
Unknown
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.

Did you test with the latest update version?

[X] Yes

Please provide steps to reproduce where possible
hs_err_pid8004.log
Expected Results
Eclipse should be able to be opened for more than a minute.
Actual Results
It shuts down very quickly and gives the error logs.
What Java Version are you using?
openjdk 21.0.2 2024-01-16 OpenJDK Runtime Environment (build 21.0.2+13-Ubuntu-122.04.1) OpenJDK 64-Bit Server VM (build 21.0.2+13-Ubuntu-122.04.1, mixed mode, sharing)
What is your operating system and platform?
Linux dshunter-VivoBook-ASUSLaptop-E510MAB-L510MA 6.8.6+ #2 SMP PREEMPT_DYNAMIC Mon Apr 15 23:12:08 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
How did you install Java?
Through the commandline
Did it work before?
Yes.

Did you test with other Java versions?
no

Relevant log output
No response

getting exactly the same. I assume a libwebkit upgrade on my ubuntu 22.04 has broken eclipse. Can't find workaround, have switched to IntelliJ Idea. Serious business for Eclipse, they could suddenly lose a lot of users.

I'm going through the same problem.

got the same issue after update a package on ubuntu 22

WEBKIT_DISABLE_DMABUF_RENDERER=1 solves the problem for me
https://github.com/eclipse-platform/eclipse.platform.swt/issues/1108#issuecomment-2016591736

@phamdat can you please provide the steps to where i need to add WEBKIT_DISABLE_DMABUF_RENDERER=1 for ubuntu 22.04 eclipse

@phamdat can you please provide the steps to where i need to add WEBKIT_DISABLE_DMABUF_RENDERER=1 for ubuntu 22.04 eclipse

export in bash file or create eclipse.desktop. Can follow to create desktop file in comment https://github.com/eclipse-platform/eclipse.platform.swt/issues/1108#issuecomment-2023171644

Anyone coming from Ubuntu 22.04? It seems that workaround is effective on Fedora but I did not add that comment on my application file and did not solve the issue after restart.

Please update to the latest swt build. This is https://github.com/eclipse-platform/eclipse.platform.swt/issues/1146

Anyone coming from Ubuntu 22.04? It seems that workaround is effective on Fedora but I did add that comment on my application file and did not solve the issue after restart.

Yep all fixed, thanks to @phamdat.
My eclipse.desktop looks like this now:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_AU]=eclipse
Name[en_AU]=Eclipse
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 eclipse
Comment[en_AU]=Eclipse
Name=Eclipse
Comment=Eclipse
Icon=/opt/eclipse/current/icon.xpm

getting exactly the same. I assume a libwebkit upgrade on my ubuntu 22.04 has broken eclipse. Can't find workaround, completely unusable, have switched to IntelliJ Idea. Serious business for Eclipse, they could suddenly lose a lot of users.

getting exactly the same. I assume a libwebkit upgrade on my ubuntu 22.04 has broken eclipse. Can't find workaround, completely unusable, have switched to IntelliJ Idea. Serious business for Eclipse, they could suddenly lose a lot of users.

I also have the same error  .I'm just a beginner learning java so I don't know what to do .Have you already fixed that error or fixed by using IntelliJ Idea. Should I use to intelli J until that error is occurred?
Please can you reply

Anyone coming from Ubuntu 22.04? It seems that workaround is effective on Fedora but I did add that comment on my application file and did not solve the issue after restart.

Yep all fixed, thanks to @phamdat.
My eclipse.desktop looks like this now:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_AU]=eclipse
Name[en_AU]=Eclipse
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 eclipse
Comment[en_AU]=Eclipse
Name=Eclipse
Comment=Eclipse
Icon=/opt/eclipse/current/icon.xpm

I have just commented the file as you did, the issue persists... but will check later again

Anyone coming from Ubuntu 22.04? It seems that workaround is effective on Fedora but I did add that comment on my application file and did not solve the issue after restart.

Yep all fixed, thanks to @phamdat.
My eclipse.desktop looks like this now:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_AU]=eclipse
Name[en_AU]=Eclipse
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 eclipse
Comment[en_AU]=Eclipse
Name=Eclipse
Comment=Eclipse
Icon=/opt/eclipse/current/icon.xpm

Thanks this fixed my error

Hi folks ,
Any one please let me know this issue fixed or not . I am trying with above file but its not working for me.

I am using ubuntu 22.0.4 LTS and STS version : spring-tool-suite-4-4.22.0.RELEASE-e4.31.0-linux.gtk.aarch64. I have checked with my IT team sts perfectly woking in ubuntu 20.0.4 LTS but after package upadte in ubuntu 22.0.4 its getting crashed.

Hi guys , issue fixed . For Ubuntu 22.04.4 LTS,
sudo nano /etc/gdm3/custom.conf WaylandEnable=false
After 2 days of R&D finally fixed the isse. Thanks, Happy coding.

Hello
Could you please confirm if your file looks differnt than this??
Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
Enabling automatic login
AutomaticLoginEnable = true
AutomaticLogin = user1
Enabling timed login
TimedLoginEnable = true
TimedLogin = user1
TimedLoginDelay = 10
In my case the false in wayland was already comment but Eclipse still collapses.
thanks!

Hi guys , issue fixed . For Ubuntu 22.04.4 LTS,
sudo nano /etc/gdm3/custom.conf WaylandEnable=false
After 2 days of R&D finally fixed the isse. Thanks, Happy coding.

Hello!
In my case the file had the false already commented, If possible  let me know if your file looks different

Thanks

Hi guys , issue fixed . For Ubuntu 22.04.4 LTS,
sudo nano /etc/gdm3/custom.conf WaylandEnable=false
After 2 days of R&D finally fixed the isse. Thanks, Happy coding.

i followed the same steps but still crashing

I had the same issue. Ubuntu 22.04.4 LTS. Windowing system - Wayland
Have switched from WayLand to X11 - Solved my eclipse crash
Refer this link for switching Wayland to X11

See also upstream issue https://github.com/eclipse-platform/eclipse.platform.swt/issues/381

OK after a month I finally found a simple workaround that worked for me (Ubuntu 22.04)
On eclipse configuration file:
[Desktop Entry]
Version=1.0
Name=Eclipse
Comment=Java IDE
Type=Application
Categories=Development;IDE;
Exec= env GDK_BACKEND=x11 /home/?? ?/eclipse/eclipse
Terminal=false
StartupNotify=true
Icon=/home/???/eclipse/icon.xpm
Name[en_US]=Eclipse
On the terminal:
1- Go to the directory where eclipse is installed
2- export GDK_BACKEND=x11
3- ./eclipse
Hope it helps, if not i have heard a new version is on its way around 15 June

None of these suggested "fixes" seems to much to solve the issue on openSuSE Leap 15.5.  Everything seems to work OK on Leap 15.4 with the 2022-12 version of Eclipse.  Apparently if it works on Ubuntu these issues get 'closed' right away. Time to move on from Eclipse.


Expose simple move autoload to slot & simplify load_carrier

Mini-PR for autoload features recently merged:

Expose move_autoload_to_slot() - a simple, specific command to send the autoload to a specific location.
Simplify the load_carrier() function: currently, if park_autoload_after = True it will perform a full search of other carriers as a surrogate to move to the safe park position. I changed this to directly park the autoload, saving a lot of wait time.

Thanks!


Contact sklearn developers about better ways of saving models to disk

This issue predates me but it seems like joblib is the only thing they intend to support for now: http://scikit-learn.org/stable/modules/model_persistence.html. Closing until something else comes along.


MinimumCharacterCount description incorrect

Fixes #
Docs for Toolkit PR #
What changes to the docs does this PR provide?

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] For new pages, used the provided template.
[ ] For new features, added an entry in the Table of Contents.
[ ] Ran against a spell and grammar checker.
[x] Contains NO breaking changes.

Other information

Docs Build status updates of commit b325130:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/behaviors/charactersvalidationbehavior.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Billing address stateOrProvince input dropdown list is not reset after unfocusing on search

Describe the bug
For the billing address state dropdown input, the search input doesn't get reset if the user clicks outside of the input/dropdown to close the dropdown.  The dropdown list will have the old search results the next time the user clicks on the input even though the search input looks empty.
To Reproduce
Steps to reproduce the behavior:

Create a dropin component that has a card payment method with billing address required.
Click on the State input
Type in a search word
See the dropdown list with the filtered results
Click outside of the input/dropdown, without selecting an option.
Click on the input again
See that the search input is empty (no longer has the search word previously typed), but the dropdown list results still shows the same filtered results from the prior search instead of the initial list containing all the options.

Expected behavior
When the user clicks on the state dropdown input, if the search field is empty, the dropdown list should display all the options.
Desktop (please complete the following information):

OS: macOS 11.6
Browser chrome
Version 5.6.1

Additional context
Testing this in the US

Hi @ctnswb ,
Thanks for reaching out, and good catch! I created one ticket in our backlog to fix this problem, and I will update this issue once the fix is done.

Hi @ctnswb,
We released the version 5.13.1 which contains the fix for this issue. Thanks for reaching out!


Invalid time_in_force options

For time in force the following options are listed:
gfd, gtc, ioc, fok or opg
However, it appears that only:
gfd, gtc
actually work.
When using the following curl command (which is nearly copied/pasted from the order example which uses time_in_force=fok):
curl -v https://api.robinhood.com/orders/
-H "Accept: application/json"
-H "Authorization: Token [my_token]"
-d account=https://api.robinhood.com/accounts/[my_acct]/
-d instrument=https://api.robinhood.com/instruments/50810c35-d215-4866-9758-0ada4ac79ffa/
-d symbol=MSFT
-d type=market
-d time_in_force=fok
-d trigger=immediate
-d quantity=1
-d side=buy
-d price=70.00
I get the following error:
{"time_in_force":["Invalid time in force fok."]}
and with all caps FOK I get the error which would appear had I typed any other generic invalid value:
{"time_in_force":[""FOK" is not a valid choice."]}
There is at least a different handling of the "fok" time_in_force option from the error message given, but has anyone actually gotten specifically "fok" or any other non-(gfd, gtc)  time_in_force values to work?
I've also tried this using "ioc" which didn't work, I assume this doesn't work with the other non-(gfd, gtc) values as well.

Hi, I came across same observation recently. Not sure if there is specific combination to make it work..

Let's just go ahead and say FOK is no longer supported. It used to be but maybe isn't anymore. I haven't gotten around to testing it for this issue but if it's not working for you guys, that's good enough for me.


MAINT: Updating package-lock.json

For some reason, when I last pulled from main and tried to build, it updated package-lock.json. This PR checks it in.
This might be related to:

https://github.com/pydata/pydata-sphinx-theme/pull/1111

?

I am gonna try just re-installing from scratch locally to see if this is some kinda weird cacheing thing, because the diff looks way too big for what I'd expect

OK re-starting from scratch seemed to work...I dunno what was up with this


fixed AttributeError on LoxoneCustomSensor

With PyLoxone 0.6.6 and HA 2024.5.0 I was not able to use a LoxoneCustomSensor any more. The sensors are configured in file configuration.yaml as described in the README. The exception during startup was:
2024-05-03 18:36:27.004 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up loxone platform for sensor
Traceback (most recent call last):
  File "/Users/juerg.luthiger/projects-dev/home-assistant/core/homeassistant/helpers/entity_platform.py", line 356, in _async_setup_platform
    await asyncio.shield(awaitable)
  File "/Users/juerg.luthiger/projects-dev/home-assistant/core/config/custom_components/loxone/sensor.py", line 151, in async_setup_platform
    new_sensor = LoxoneCustomSensor(**config)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/juerg.luthiger/projects-dev/home-assistant/core/config/custom_components/loxone/sensor.py", line 192, in __init__
    LoxoneEntity().__init__(**kwargs)
    ^^^^^^^^^^^^^^
  File "/Users/juerg.luthiger/projects-dev/home-assistant/core/config/custom_components/loxone/__init__.py", line 431, in __init__
    self._attr_name = self.name
                      ^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/functools.py", line 995, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/Users/juerg.luthiger/projects-dev/home-assistant/core/config/custom_components/loxone/__init__.py", line 447, in name
    return self._attr_name
           ^^^^^^^^^^^^^^^
AttributeError: 'LoxoneEntity' object has no attribute '__attr_name'. Did you mean: '_attr_name'?

thanks. fixed it manually.


Add style guide

Thank you both for checking! Should I still wait or should I go ahead with the merge?

@anitagraser, go ahead, please!


transpiled optional chaining and nullish coalescing calls global getter twice

🔎 Search Terms
"optional chaining", "nullish coalescing", "getter", "global", "temporary variable"
🕗 Version & Regression Information

This changed in commit or PR https://github.com/microsoft/TypeScript/pull/34951

⏯ Playground Link
https://www.typescriptlang.org/play?module=0&ts=3.8.3#code/PIIwVgpgxgLgdAEwgMwJYDsIAUBOB7ABwhxgE8AKAdwwT0oBoACAIgENmmBvAKEcYHMIMcgEpGPPnyh50AZzwAbCHAV5+5ZoJjMRAbl6MAvvW6G93VgH44Ifa0aXLjAIy6gA
💻 Code
Object.defineProperty(window, "a", {
  get() {
    console.log("get");
  },
});
a?.b;
a ?? 1;

🙁 Actual behavior
It logs get 4x because the getter is accessed multiple times:
a === null || a === void 0 ? void 0 : a.b;
a !== null && a !== void 0 ? a : 1;

🙂 Expected behavior
Log get 2x (same as running the untranspiled source code)
It should use temporary variables like Babel and SWC:
var _a, _a2;
(_a = a) === null || _a === void 0 || _a.b;
(_a2 = a) !== null && _a2 !== void 0 ? _a2 : 1;

Additional information about the issue

IMO this is intentional and a duplicate of https://github.com/microsoft/TypeScript/issues/50426#issuecomment-1226054446.


Bower just won't work in Ubuntu 12.10

Hey, my problem is that running Bower from command line doesn't have any effect whatsoever, neither console output, nor changes to file system, nor error messages, nothing.
I have Ubuntu 12.10 with just-downloaded Node.js v0.8.16 and NPM v1.1.70. Any suggestions?

I had a similar problem.  If you installed node through sudo apt-get install node, you installed a program called node which is used by HAM radio operators. (searching the apt-cache reveals: node - Amateur Packet Radio Node program).  Remove it with sudo apt-get remove node and then install the correct Node package with sudo apt-get install nodejs.


enhance: enhance constructor for UT.

Proposed changes
Make Group constructor is more stable. When it's is used, it make mistake more obvious.
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.74 seconds
load time: 494 seconds
storage size:<PHONE_NUMBER>4 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230117104522_clickbench_pr_82008.html


Appstudio update test-component-pac-qdui

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-qdui-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
appstudio-init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
18 seconds
appstudio-configure-build

✅ Succeeded
44 seconds
sast-snyk-check

✅ Succeeded
1 minute
build-container

✅ Succeeded
24 seconds
sanity-inspect-image

✅ Succeeded
1 minute
deprecated-base-image-check

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
23 seconds
sbom-json-check

✅ Succeeded
11 seconds
sanity-label-check

✅ Succeeded
11 seconds
sanity-optional-label-check

✅ Succeeded
7 seconds
show-summary

Pipelines as Code CI/test-component-pac-qdui-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
appstudio-init

✅ Succeeded
23 seconds
clone-repository

✅ Succeeded
19 seconds
sast-snyk-check

✅ Succeeded
16 seconds
appstudio-configure-build

✅ Succeeded
46 seconds
build-container

✅ Succeeded
14 seconds
deprecated-base-image-check

✅ Succeeded
11 seconds
clair-scan

✅ Succeeded
44 seconds
sanity-inspect-image

✅ Succeeded
46 seconds
clamav-scan

✅ Succeeded
45 seconds
sbom-json-check

✅ Succeeded
29 seconds
sanity-label-check

✅ Succeeded
29 seconds
sanity-optional-label-check

✅ Succeeded
7 seconds
show-summary


98 voting pallet

code updates from integration tests

Codecov Report

Merging #109 (d4c3867) into main (afb0246) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #109      +/-   ##
==========================================
- Coverage   69.96%   69.90%   -0.07%
==========================================
  Files          27       27
  Lines        1931     1927       -4
==========================================
- Hits         1351     1347       -4
  Misses        580      580

Impacted Files
Coverage Δ

pallets/voting/src/lib.rs
82.97% <ø> (-0.10%)
:arrow_down:

pallets/voting/src/tests.rs
100.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


cant find module

i have kept the main file in proper destination but it is still showing module not found

did u take that folder inside the downloaded folder ? also u should keep the folder in ur working dir

did u take that folder inside the downloaded folder ? also u should keep the folder in ur working dir. it should look something like this

yes i did the same

@GalaxyPhoenix716 Properly check the spellings and also test the examples given there.


provide support for certain collections receiving multiple games

Since some of the collections participating in the tournament have fewer then the 1600 games allowed for the tournament, the contract will need to allow them to use multiple games.
I think the simplest way to do this is to provide a Map of <collection: ContractAddress, allowed_individual_games: u8>. When processing the tournament registration request, the contract will allow the registration as long as the count is less than the allowed number of games.
Similarly, the default behavior for the contract will be to mint all of the allowed games. For example, Ducks will receive 5 games, when they claim.

including this in #139


Contribution Guidelines

This should resolve issue #208

The Table of Contents won't work until merged with the master, as the links to the headings are pointed at SetProtocol/index-ui. I tested them with tytarman/index-ui and they were fine.
Also, the owl banner at the top was added to the Public folder.


Small RPC improvements

Problem
Output for getblock was incorrect, let's improve it.
Solution

Change a few of the field names to be inline with other nodes output.
Hex encode the witness fields when marshaling.
Add wrappers (Will think of better name) for structs to keep unnecessary logic out of core structs.
Add hex prefix to uint* structs.

Notes
Use semver to bump VERSION, and remember to run the following after
merging your PR:
make push-tag

Sweet! I just merged other PR into master which implies this needs a version update. After that's done I'll merge this in master


Ensure lowering configs match tiled ops

This change attempts to ensure the consistency between the multiple lowering configs set in setLoweringConfigForComputeOps and how their ops are actually tiled-and-fused in the pipeline.
The goal is to provide accurate lowering configs for vectorization, as we start using them to decide vector sizes (#14935, #15032)
Background
Currently in setLoweringConfigForComputeOps each op calculates and sets vecTileSizes (4th-level tiling config) in its own lowering config. For example, generic ops set tile sizes on dims that haven't been tiled by the root op, pack ops set special tile sizes to improve transpose performance.
However, since the 4th level tiling config is fusable in the multi-level tiling pipeline, we use the last lowering config in the dispatch to tile-and-fuse its consumer chain. The lowering configs on other ops are not used and they can be tiled in a different way than their own lowering configs, which results in inconsistency between the lowering configs and how those ops are tiled. We often observed such issues with pack ops, as it is the last op in the dispatch and has special tile sizes different from other generic ops.
For example, in #15132, we have [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]]  on a pure parallel generic op and [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]] (permuted and scaled with inner tile sizes) on its consumer pack op.
The [1, 1, 1] from the pack op tiles both the pack and generic op. Therefore the tile-and-fuse result of the generic op doesn't reflect on its lowering config:
Input IR:
// -----// IR Dump After TileAndDistributeToWorkgroups (iree-codegen-tile-and-distribute-to-workgroups) //----- //
hal.executable.variant public @system_elf_x86_64, target = <"llvm-cpu", "system-elf-x86_64", {cpu = "cascadelake", cpu_features = "+cmov,+mmx,+popcnt,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+avx,+avx2,+fma,+avx512f,+bmi,+bmi2,+aes,+pclmul,+avx512vl,+avx512bw,+avx512dq,+avx512cd,+avx512vnni,+adx,+clflushopt,+clwb,+cx16,+cx8,+crc32,+f16c,+fsgsbase,+fxsr,+invpcid,+lzcnt,+movbe,+pku,+prfchw,+rdrnd,+rdseed,+sahf,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,+evex512", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", link_embedded = false, native_vector_size = 64 : index, target_triple = "x86_64-unknown-linux-gnu", ukernels = true}> {
  hal.executable.export public @main_dispatch_178_generic_1x256x5120_f32 ordinal(0) layout(#hal.pipeline.layout<push_constants = 1, sets = [<0, bindings = [<0, storage_buffer, ReadOnly>, <1, storage_buffer>]>]>) attributes {translation_info = #iree_codegen.translation_info<CPUDoubleTilingExpert>} {
  ^bb0(%arg0: !hal.device):
    %c4 = arith.constant 4 : index
    %c80 = arith.constant 80 : index
    %c1 = arith.constant 1 : index
    hal.return %c4, %c80, %c1 : index, index, index
  }
  builtin.module {
    func.func @main_dispatch_178_generic_1x256x5120_f32() {
      %c4 = arith.constant 4 : index
      %c64 = arith.constant 64 : index
      %c256 = arith.constant 256 : index
      %c320 = arith.constant 320 : index
      %cst = arith.constant 0.000000e+00 : f32
      %c9482304 = arith.constant 9482304 : index
      %0 = hal.interface.constant.load[0] : i32
      %1 = arith.index_castui %0 : i32 to index
      %2 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%1) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>>
      %3 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c9482304) : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
      %workgroup_id_x = hal.interface.workgroup.id[0] : index
      %workgroup_count_x = hal.interface.workgroup.count[0] : index
      %workgroup_id_y = hal.interface.workgroup.id[1] : index
      %workgroup_count_y = hal.interface.workgroup.count[1] : index
      %4 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_id_y]
      %5 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_count_y]
      scf.for %arg0 = %4 to %c320 step %5 {
        %6 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_id_x]
        %7 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_count_x]
        scf.for %arg1 = %6 to %c256 step %7 {
          %8 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg0)
          %9 = flow.dispatch.tensor.load %2, offsets = [%8, 0, %arg1], sizes = [%c64, 1, %c64], strides = [1, 1, 1] : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>> -> tensor<?x1x?xf32>
          %10 = tensor.empty() : tensor<1x64x64xf32>
          %cast = tensor.cast %9 : tensor<?x1x?xf32> to tensor<64x1x64xf32>
          %11 = linalg.generic {indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d0, d1)>, affine_map<(d0, d1, d2) -> (d0, d1, d2)>], iterator_types = ["parallel", "parallel", "parallel"]} ins(%cast : tensor<64x1x64xf32>) outs(%10 : tensor<1x64x64xf32>) attrs =  {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]]>} {
          ^bb0(%in: f32, %out: f32):
            linalg.yield %in : f32
          } -> tensor<1x64x64xf32>
          %12 = tensor.empty() : tensor<1x4x64x16x1xf32>
          %pack = tensor.pack %11 padding_value(%cst : f32) outer_dims_perm = [0, 2, 1] inner_dims_pos = [2, 1] inner_tiles = [16, 1] into %12 {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]]>} : tensor<1x64x64xf32> -> tensor<1x4x64x16x1xf32>
          %cast_0 = tensor.cast %pack : tensor<1x4x64x16x1xf32> to tensor<1x?x?x16x1xf32>
          flow.dispatch.tensor.store %cast_0, %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, %c4, %c64, 16, 1], strides = [1, 1, 1, 1, 1] : tensor<1x?x?x16x1xf32> -> !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
        }
      }
      return
    }
  }
}

After tile-and-fuse:
// -----// IR Dump After LLVMCPUTileAndFuse (iree-llvmcpu-tile-and-fuse) //----- //
func.func @main_dispatch_178_generic_1x256x5120_f32() {
  %c64 = arith.constant 64 : index
  %c4 = arith.constant 4 : index
  %c8 = arith.constant 8 : index
  %c1 = arith.constant 1 : index
  %c0 = arith.constant 0 : index
  %c256 = arith.constant 256 : index
  %c320 = arith.constant 320 : index
  %cst = arith.constant 0.000000e+00 : f32
  %c9482304 = arith.constant 9482304 : index
  %0 = hal.interface.constant.load[0] : i32
  %1 = arith.index_castui %0 : i32 to index
  %2 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%1) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>>
  %3 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c9482304) : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
  %workgroup_id_x = hal.interface.workgroup.id[0] : index
  %workgroup_count_x = hal.interface.workgroup.count[0] : index
  %workgroup_id_y = hal.interface.workgroup.id[1] : index
  %workgroup_count_y = hal.interface.workgroup.count[1] : index
  %4 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_id_y]
  %5 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_count_y]
  scf.for %arg0 = %4 to %c320 step %5 {
    %6 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_id_x]
    %7 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_count_x]
    scf.for %arg1 = %6 to %c256 step %7 {
      %8 = flow.dispatch.tensor.load %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>> -> tensor<1x4x64x16x1xf32>
      %9 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg0)
      %10 = flow.dispatch.tensor.load %2, offsets = [%9, 0, %arg1], sizes = [64, 1, 64], strides = [1, 1, 1] : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>> -> tensor<64x1x64xf32>
      %11 = scf.for %arg2 = %c0 to %c4 step %c1 iter_args(%arg3 = %8) -> (tensor<1x4x64x16x1xf32>) {
        %12 = scf.for %arg4 = %c0 to %c64 step %c8 iter_args(%arg5 = %arg3) -> (tensor<1x4x64x16x1xf32>) {
          %13 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg2)
          %extracted_slice = tensor.extract_slice %10[%13, 0, %arg4] [16, 1, 8] [1, 1, 1] : tensor<64x1x64xf32> to tensor<16x1x8xf32>
          %extracted_slice_0 = tensor.extract_slice %arg5[0, %arg2, %arg4, 0, 0] [1, 1, 8, 16, 1] [1, 1, 1, 1, 1] : tensor<1x4x64x16x1xf32> to tensor<1x1x8x16x1xf32>
          %14 = scf.for %arg6 = %c0 to %c8 step %c1 iter_args(%arg7 = %extracted_slice_0) -> (tensor<1x1x8x16x1xf32>) {
            %extracted_slice_1 = tensor.extract_slice %extracted_slice[0, 0, %arg6] [16, 1, 1] [1, 1, 1] : tensor<16x1x8xf32> to tensor<16x1x1xf32>
            %15 = tensor.empty() : tensor<1x1x16xf32>
            %16 = linalg.generic {indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d0, d1)>, affine_map<(d0, d1, d2) -> (d0, d1, d2)>], iterator_types = ["parallel", "parallel", "parallel"]} ins(%extracted_slice_1 : tensor<16x1x1xf32>) outs(%15 : tensor<1x1x16xf32>) attrs =  {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]]>} {
            ^bb0(%in: f32, %out: f32):
              linalg.yield %in : f32
            } -> tensor<1x1x16xf32>
            %extracted_slice_2 = tensor.extract_slice %arg7[0, 0, %arg6, 0, 0] [1, 1, 1, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x8x16x1xf32> to tensor<1x1x1x16x1xf32>
            %pack = tensor.pack %16 padding_value(%cst : f32) outer_dims_perm = [0, 2, 1] inner_dims_pos = [2, 1] inner_tiles = [16, 1] into %extracted_slice_2 {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]]>} : tensor<1x1x16xf32> -> tensor<1x1x1x16x1xf32>
            %inserted_slice_3 = tensor.insert_slice %pack into %arg7[0, 0, %arg6, 0, 0] [1, 1, 1, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x1x16x1xf32> into tensor<1x1x8x16x1xf32>
            scf.yield %inserted_slice_3 : tensor<1x1x8x16x1xf32>
          }
          %inserted_slice = tensor.insert_slice %14 into %arg5[0, %arg2, %arg4, 0, 0] [1, 1, 8, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x8x16x1xf32> into tensor<1x4x64x16x1xf32>
          scf.yield %inserted_slice : tensor<1x4x64x16x1xf32>
        }
        scf.yield %12 : tensor<1x4x64x16x1xf32>
      }
      flow.dispatch.tensor.store %11, %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : tensor<1x4x64x16x1xf32> -> !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
    }
  }
  return
}

The generic op is actually tiled with a lowering config equivalent to [[0, 64, 64], [0, 8 16], [0, 0, 0], [1, 1, 16]]
Proposed Solution
One way to handle this problem is instead of letting each op set their 4th-level tile sizes, we join all tile sizes and decide how to set a single set of 4th-level tile sizes across all ops.
This change tries to populate consistent lowering configs on all ops with the logic below:

Collect and join parallel tile sizes from all ops in the dispatch. The root op and pack op tile sizes have higher priority due to their performance impact. Other generic ops only fill in when a dimension has no tile size yet.
Split the joined parallel tile sizes into common tile sizes (2nd-level tiling config) and inner tile sizes (4th-level tiling config). Common tile sizes are for parallel dims across all ops. The inner tile sizes are used to tile each op on its rest of parallel dims.

As the lowering configs of all ops are derived from the same list of parallel tile sizes, they will be consistent with the tile-and-fuse results, as long as the mapping between their parallel dimensions are identity maps (the assumption from hasCompatibleOuterParallelLoops during dispatch formation).
Fix #15132

Please, let us know how we can help unblock this as this is fixing a bug that is blocking other work. Hanhan provided some guidance to Che-Yu about this implementation and I've also been working on this code to provide a reliable review if you don't have the time to review it now.

Please, let us know how we can help unblock this as this is fixing a bug that is blocking other work. Hanhan provided some guidance to Che-Yu about this implementation and I've also been working on this code to provide a reliable review if you don't have the time to review it now.

Sorry for the delay, I was busy on other things in the past few days. I will review the patch tomorrow.


emojify icons not showing properly

I'm using trumbowyg in my Angular6, i've encountered a problem where the emojify icons are not showing their images.
code:
declare var $:any;
declare var emojify:any;
ngOnInit(){
    $('#editor').trumbowyg({
        lang: 'hu',
        svgPath: '/assets/icons/icons.svg',
        removeformatPasted: true,
        autogrow: true,
        btns: [
            ['formatting'],
            ['undo', 'redo'], // Only supported in Blink browsers
            ['strong', 'em', 'del'],
            ['superscript', 'subscript'],
            ['link'],
            ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
            ['unorderedList', 'orderedList'],
            ['horizontalRule'],
            ['removeformat'],
            ['foreColor', 'backColor'],
            ['emoji'],
            ['historyUndo','historyRedo'],
            ['noembed'],
            ['base64']
        ]
    });

    // Setup emojify.js
    emojify.setConfig({
        img_dir : '//cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/images/basic/',
        mode: 'img'
    });
    emojify.run();

This seems to be a bug on the latest version (2.11), but does not happen on the emoji demo which is running on 2.10.

I am quite sure that his issue is related to this emojione/emojify.js#175
I was having the same issue and had to use emojify.js another way hence my PR.

I'm seeing the same issue (Laravel + vue-trumbowyg), and it seems to also be affecting your emoji demo page: https://alex-d.github.io/Trumbowyg/demos/#plugins-emoji

Nothing in the console.

@sandrapender
The demo is not working because the loader hasn't been updated. It has been fixed in the latest version of develop which hasn't been merged with master.
What version of the emoji plugin and trumbowyg are you on?
You can view the newest demo at:
https://rawcdn.githack.com/Alex-D/Trumbowyg/v2.11.1/docs/demos/#plugins-emoji

Hey @zanechua I'm on Trumbowyg 2.11.1 and trumbowyg.emoji.js v0.1. It's working locally but not in staging/production. I'll wait for the fix to be merged. Thanks for taking the time to respond.

Seems working now on demo page.


Support nested collections of TensorFlow tensors with t flag

Minimal example:
from qj import qj
import tensorflow as tf
tensors = {'foo': tf.constant(0), 'bar': tf.constant(1)}
tensors = qj(tensors, t=True)
with tf.Session() as sess:
  sess.run(tensors)

Output:
IndexError                                Traceback (most recent call last)
<ipython-input-1-6067c4d3b276> in <module>()
      2 import tensorflow as tf
      3 tensors = {'foo': tf.constant(0), 'bar': tf.constant(1)}
----> 4 tensors = qj(tensors, t=True)
      5 with tf.Session() as sess:
      6   sess.run(tensors)

~/.local/lib/python3.5/site-packages/qj/qj.py in qj(x, s, l, d, p, t, n, r, z, b, pad, tfc, tic, toc, time, catch, log_all_calls, _depth)
    192           if f.f_lasti not in fn_calls:
    193             qj._DEBUG_QJ and qj._DISASSEMBLE_FN(f.f_code, f.f_lasti)
--> 194             fn_calls[f.f_lasti] = _find_current_fn_call(f.f_code, f.f_lasti)
    195             qj._FN_MAPS[f.f_code.co_code] = fn_calls
    196           s = fn_calls.setdefault(f.f_lasti, '').strip()

~/.local/lib/python3.5/site-packages/qj/qj.py in _find_current_fn_call(co, lasti)
   1698
   1699   # Apply stack effects backwards until we arrive at the stack entries for a complete function call
-> 1700   fn_stack = _collect_pops(stack[:-1], stack[-1].stack_depth, [], 0)
   1701
   1702   if not fn_stack and stack[-1].stack_depth == 0:

~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
   1511     skip = set_skip_after_current_entry + max(0, skip)
   1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
   1514
   1515   if len(tokens):  # pylint: disable=g-explicit-length-test

~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
   1511     skip = set_skip_after_current_entry + max(0, skip)
   1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
   1514
   1515   if len(tokens):  # pylint: disable=g-explicit-length-test

~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
   1511     skip = set_skip_after_current_entry + max(0, skip)
   1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
   1514
   1515   if len(tokens):  # pylint: disable=g-explicit-length-test

~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
   1511     skip = set_skip_after_current_entry + max(0, skip)
   1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
   1514
   1515   if len(tokens):  # pylint: disable=g-explicit-length-test

~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
   1369   expect_extracted_tokens = []
   1370
-> 1371   se = stack.pop()
   1372   pops_len = len(pops)
   1373   if (pops_len > 1

IndexError: pop from empty list

Thanks for the report and minimal repro! This is dying in the code
decompilation code, which happens before anything having to do with t=True.
I suspect it's getting confused by the code above the qj call.
The minimal work-around is to pass the second argument to qj, which is the
label string:
qj(tensors, 'tensors', t=1)
However, having done that, it still won't do what you want (but I claim it
won't crash, and it will log something reasonable), as t=1 currently only
works if the object is directly a tf object type. I agree that supporting
collections of tensors would be nice. I'll take a look at both of these
issues soon.
On Wed, Jun 13, 2018 at 3:45 AM Danijar Hafner<EMAIL_ADDRESS>wrote:

Minimal example:
from qj import qjimport tensorflow as tf
tensors = {'foo': tf.constant(0), 'bar': tf.constant(1)}
tensors = qj(tensors, t=True)with tf.Session() as sess:
sess.run(tensors)
Output:
IndexError                                Traceback (most recent call last)
 in ()
2 import tensorflow as tf
3 tensors = {'foo': tf.constant(0), 'bar': tf.constant(1)}
----> 4 tensors = qj(tensors, t=True)
5 with tf.Session() as sess:
6   sess.run(tensors)
~/.local/lib/python3.5/site-packages/qj/qj.py in qj(x, s, l, d, p, t, n, r, z, b, pad, tfc, tic, toc, time, catch, log_all_calls, _depth)
192           if f.f_lasti not in fn_calls:
193             qj._DEBUG_QJ and qj._DISASSEMBLE_FN(f.f_code, f.f_lasti)
--> 194             fn_calls[f.f_lasti] = _find_current_fn_call(f.f_code, f.f_lasti)
195             qj._FN_MAPS[f.f_code.co_code] = fn_calls
196           s = fn_calls.setdefault(f.f_lasti, '').strip()
~/.local/lib/python3.5/site-packages/qj/qj.py in _find_current_fn_call(co, lasti)
1698
1699   # Apply stack effects backwards until we arrive at the stack entries for a complete function call
-> 1700   fn_stack = _collect_pops(stack[:-1], stack[-1].stack_depth, [], 0)
1701
1702   if not fn_stack and stack[-1].stack_depth == 0:
~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
1511     skip = set_skip_after_current_entry + max(0, skip)
1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
1514
1515   if len(tokens):  # pylint: disable=g-explicit-length-test
~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
1511     skip = set_skip_after_current_entry + max(0, skip)
1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
1514
1515   if len(tokens):  # pylint: disable=g-explicit-length-test
~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
1511     skip = set_skip_after_current_entry + max(0, skip)
1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
1514
1515   if len(tokens):  # pylint: disable=g-explicit-length-test
~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
1511     skip = set_skip_after_current_entry + max(0, skip)
1512
-> 1513   pops = _collect_pops(stack, depth + popped_depth, pops, skip)
1514
1515   if len(tokens):  # pylint: disable=g-explicit-length-test
~/.local/lib/python3.5/site-packages/qj/qj.py in _collect_pops(stack, depth, pops, skip)
1369   expect_extracted_tokens = []
1370
-> 1371   se = stack.pop()
1372   pops_len = len(pops)
1373   if (pops_len > 1
IndexError: pop from empty list
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/iansf/qj/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/AMC8E6UiHimOz6qaGouW9MYg88DVsa-6ks5t8O1VgaJpZM4Ul9fj
.

Thanks, sounds great!


Fix test

You ran the oracle tests locally and saw this one was broken?

yes

I was having issues with my oracle setup and wasn't able to run the JPA suite for some reason so I'll have to take your word for those tests.
LGTM.


[CHORE] Drop the v in front of the image tag

We should publish container images without the v in version. E.g. today we publish v0.18.0, but we should publish just 0.18.0.
For a few releases, we should make sure to publish both

@brooksmtownsend , can I work on this please, below is my solution, please do suggest me if there are better way of doing this:
- name: Build and push (tag)
        uses: docker/build-push-action@v6
        if: ${{ startsWith(github.ref, 'refs/tags/v') }}
        with:
          push: true
          platforms: linux/amd64,linux/arm64
          context: ./
          build-args: |
            BIN_ARM64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-aarch64
            BIN_AMD64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-amd64
          tags: |
            ghcr.io/${{ env.OWNER }}/wadm:latest,
            ghcr.io/${{ env.OWNER }}/wadm:${{ env.RELEASE_VERSION }},
            ghcr.io/${{ env.OWNER }}/wadm:${{ env.RELEASE_VERSION#v }}

And can do the same for wolfi as well.

@bp7968h that looks good to me! Feel free to open a PR whenever you have it ready 😄


feature - fix bug recent

Github Issue URL/Tags (required)
What's this PR do? Please give a technical summary (required)

[x] done recent

Any references (stackoverflow …) (optional)

:+1: There are no linter violations.


create native HTML5 fields

Because currently there is no vanilla datetime picker. Pickaday is only date selector.

[x] create new field common type which has a "inputType" property. (break changes)
[x] rename datetime field to datetimePicker (break changes)
[x] rename slider field to rangeSlider (break changes)
[ ] update docs

Available types

[x] date
[x] datetime
[x] datetime-local
[x] time
[x] month
[x] week

Other HTML5 types

[x] url
[x] tel
[ ] radio

Set this inputType to the field type attributes:
input( :type="schema.inputType")

Same thing should be done with slider field. It should be renamed "ion.rangeSlider" or "rangeSlider".
Also a "radio" field ! Switch is cool, but sometime you need more the 2 values.
And "tel" for a native masked/cleave for phone number only.
Last one is "url".
I would also like to point out that we need more HTML5 attributes:

autofocus
inputmode
selectionDirection
spellcheck

specific to text, search, tel, url or email:

pattern
size (also for password)

:boom: More HTML5! :boom:

HTML5 range is exist as fieldRange. I added the other types to the tasklist.
what is the size attr?

Yeah, sorry I forgot to remove that sentence.

size
The initial size of the control. This value is in pixels unless the value of the type attribute is text or password, in which case, it is an integer number of characters. Starting in HTML5, this attribute applies only when the type attribute is set to text, search, tel, url, email, or password; otherwise it is ignored. In addition, the size must be greater than zero. If you don't specify a size, a default value of 20 is used. HTML5 simply states "the user agent should ensure that at least that many characters are visible", but different characters can have different widths in certains fonts; in some browsers, a certain string with x characters will not be entirely visible even if size is defined to at least x.

Source
I think the goal for v1.0.0 is to have all attributes exposed for native HTML5 fields.

I think, the source is not neccessary, because the default width is 100%. So it is overwrite the size attr.
And you can change this width via styleClasses property in schema

Yes, but if you change the width via styleClasses and then, you may want to use it for some reason. I mean, it don't cost much to add, why not add it just in case someone needs it ?

@icebob We need a radio field, right ?

Yes, I added to the list.

I'm going to work on a html5 field based on input( :type="schema.inputType")
One field for all native input.
Check the html5 branch on the doc.

good solution, thanks!

I'm unsure with the inputType property. Currently easy and straightforward to create a simple text field in the schema:
{
  type: "text",
  label: "Name",
  model: "name"
}

but after this feature, it will be more complex and harder to read:
{
  type: "html5",
  inputType: "text",
  label: "Name",
  model: "name"
}

So I think would be good to stay the current format. But need to rewrite the getFieldType part: https://github.com/icebob/vue-form-generator/blob/master/src/formGenerator.vue#L108
It would be smarter. So it will try to search the field by the exact name (fieldText). If not found use the common html5 field and set the type to inputType.

I have a counter arguments: putting them under the  "html5" umbrella avoid collision with other potential field name, especially since custom fields exist.
It also simplify the documentation. HTML are well documented already, not need to explicitly redo it for each field. We only provide a shell for them and potentially future new HTML field.
Also most other fields use special properties already and it is not a big problem.

@icebob I have edited my answer, I really hope I was able to convince you :smile:. I will soon do a PR (still need test) with my proposal, but it will use a new feature of github which allow you to modify directly my PR if you need to.

I welcomed this new github feature. I think it is neccessary for contribution.

I don't want to reject my thoughts about searching, because it will affect only one function. I will try it.
My other confusion is the html5 type (Now I see you wrote it too). I think we need to change this field type to input instead of html5

Ok since #70 is done, what's left is:

a radio thing
rename datetime field to datetimePicker (break changes)
rename slider field to rangeSlider (break changes)
I'm going to start with the renaming, since it is fast and easy

Great!

Ok, now are left radio thing and docs work.
@icebob Do you think you could give me a little help with the doc ? or you don't have free time ?
I understand if you don't have free time, this information will simply help me evaluate the time needed.

Nice! Thank you.
Sorry, but currently I can't help, because I have a lot of work in my full-time job :(
I hope one week and I will be more active with VFG :smile:

No pb, I understand. Maybe you could add me as a collaborator ? If you don't feel like it, I perfectly understand, this is your project and you have complete control over it.
--
I'm going to create a "radio**s**" field ;)
It will be close to "checklist" in a way, but sometime, you really need radio inputs.

A while ago, I'm thinking that I add you as a collaborator. Because you have a lot of hard work to improve this component, what I thank you.
But I want to controlling the direction of development. So I will add you, but I will need to approve the PRs before merge, that I can check the changes, ok?

No problem, I would not like to push thing without your validation anyway :)
I'm mainly going to use the kanboard and tag issues

@lionel-bijaoui Are you working anything from this issue?

Yes, I'm on the "radios" field. I can do a PR tomorrow if you want to help (I very busy at work lately).
You could do the docs if you can.

Ok, I updated docs in html5 branch.

@icebob #80 I do the unit test and it's done

@icebob I'm done with the doc !

Thanks! Tomorrow I will make the new release


suggested configuration additions

to capture other variants:
    "MIRAI": "MIRAI: applet not found",
    "DONGS": "DONGS: applet not found",
    "MEMES": "MEMES: applet not found",
"THTC":  "THTC: applet not found",

@jullrich Since we don't have the variants readily available we won't add them without testing. If you've tested your configuration and it works please create a new conf file for each variant, open a pull request, and we'll approve it.
Thanks for your input!


Support for using LoRA on a PreTrainedModel with no task-specific head

It seems that PEFT currently requires the user to specify a TaskType in the LoraConfig, which does not include the base PreTraineModel that outputs just the hidden states. It seems one can workaround this by providing any task type like TaskType.SQL_CLS, but then you run into another issues:
│ /usr/lib/python3.8/site-packages/torch/nn/modules/module.py:1194 in _call_impl    │
│                                                                                │
│   1191 │   │   # this function, and just call forward.                                           │
│   1192 │   │   if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks o  │
│   1193 │   │   │   │   or _global_forward_hooks or _global_forward_pre_hooks):                   │
│ ❱ 1194 │   │   │   return forward_call(*input, **kwargs)                                         │
│   1195 │   │   # Do not call functions when jit is used                                          │
│   1196 │   │   full_backward_hooks, non_full_backward_hooks = [], []                             │
│   1197 │   │   if self._backward_hooks or _global_backward_hooks:                                │
│                                                                                │
│ /usr/lib/python3.8/site-packages/peft/peft_model.py:372 in forward                │
│                                                                                │
│   369 │   │   return_dict = return_dict if return_dict is not None else self.config.use_return   │
│   370 │   │                                                                                │
│   371 │   │   if not isinstance(self.peft_config, PromptLearningConfig):                         │
│ ❱ 372 │   │   │   return self.base_model(                                                        │
│   373 │   │   │   │   input_ids=input_ids,                                                       │
│   374 │   │   │   │   attention_mask=attention_mask,                                             │
│   375 │   │   │   │   inputs_embeds=inputs_embeds,                                               │
│                                                                                │
│ /usr/lib/python3.8/site-packages/torch/nn/modules/module.py:1194 in _call_impl    │
│                                                                                │
│   1191 │   │   # this function, and just call forward.                                           │
│   1192 │   │   if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks o  │
│   1193 │   │   │   │   or _global_forward_hooks or _global_forward_pre_hooks):                   │
│ ❱ 1194 │   │   │   return forward_call(*input, **kwargs)                                         │
│   1195 │   │   # Do not call functions when jit is used                                          │
│   1196 │   │   full_backward_hooks, non_full_backward_hooks = [], []                             │
│   1197 │   │   if self._backward_hooks or _global_backward_hooks:                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: forward() got an unexpected keyword argument 'labels'

I was again able to workaround this by creating a wrapper that discards the offending labels param:
class IgnoreLabelsWrapper(nn.Module):
    def __init__(self, base_model: nn.Module):
        super().__init__()
        self.base_model = base_model
        self.config = base_model.config

    def forward(
        self,
        input_ids=None,
        attention_mask=None,
        inputs_embeds=None,
        labels=None,
        output_attentions=None,
        output_hidden_states=None,
        return_dict=None,
        **kwargs,
    ):
        # Remove labels, which are unused by the base model
        return self.base_model(
            input_ids=input_ids,
            attention_mask=attention_mask,
            inputs_embeds=inputs_embeds,
            output_attentions=output_attentions,
            output_hidden_states=output_hidden_states,
            return_dict=return_dict,
            **kwargs,
        )

model = IgnoreLabelsWrapper(model)
model = get_peft_model(model, lora_config)

But I'm not sure if there are other pitfalls with this approach that might arise downstream.
Are there plans to provide native support for using LoRA without a task-specific head? I understand this may be problematic for some of the approaches provided in PEFT, but I can't seem to find anything in the code for LoRA that really uses the TaskType, or am I missing something?
Thanks.

Hello, if you don't specify TakType with LoRA (don't specify it while creating LoraConfig object), everything should work just fine as you rightly said that for LoRA the TaskType isn't necessary.
Please go through image classification task example: https://github.com/huggingface/peft/blob/main/examples/image_classification/image_classification_peft_lora.ipynb

Hello, if you don't specify TakType with LoRA (don't specify it while creating LoraConfig object), everything should work just fine as you rightly said that for LoRA the TaskType isn't necessary. Please go through image classification task example: https://github.com/huggingface/peft/blob/main/examples/image_classification/image_classification_peft_lora.ipynb

cool! I encountered the same error when using lora “TypeError: forward() got an unexpected keyword argument 'labels'”,  after removing the tasktype it worked successfully!

I had a couple of questions on task type:

If I do not specify the task_type, will it take the default task based on the model that we will be loading, example if I want to fine-tune LLaMa, then the task default task_type would become CAUSAL_LM?
Also, say I load a model trained on CAUSAL_LM but I change the task_type of LoRA to SEQ_2_SEQ_LM, what would happen in this case? Will the LoRA train for SEQ_2_SEQ_LM task?


Proper usage of time slices

Because of a wrong usage of getTimeSlice users can not use previous code and must enter and validate within 30 seconds, which is sometimes tedious.

@Dolondro should i add/change something?

A minor BC break is that time is called earlier than it was before, but I think that's for the best.

A minor BC break is that time is called earlier than it was before, but I think that's for the best.

this can be easily fixed

Hi there! Sorry for the lack of response, work has been particularly busy!
Thanks for writing the unit test, I don't like storing the state of the time on the GoogleAuthenticator object like that, so I'll probably change it a bit post merge but keep the functionality the same
Cheers!


XmlFile.java:49-51: Introduce an envelope for...

The puzzle 81-827d5ef1 from #81 has to be resolved:
https://github.com/artipie/rpm-adapter/blob/0ba3ae1b9ccca2f5985e4c939b06237d00c2dc7f/src/main/java/com/artipie/rpm/meta/XmlFile.java#L49-L51
The puzzle was created by Victor Noël on 11-Apr-20.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@g4s8/z please, pay attention to this issue

The job #103 assigned to @ammaratef45/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@ammaratef45/z this job was assigned to you 5days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

The puzzle 81-827d5ef1 has disappeared from the source code, that's why I closed this issue.

@sereshqua/z please review this job completed by @ammaratef45/z, as in §30; the job will be fully closed and all payments will be made when the quality review is completed

@0crat quality good


Forward-Port 0.6.x to master

This is necessary to make the community build actually pass (see #2811).

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/3823/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/5051/
Test PASSed.

Yeah, I really don't like this absurd synchronous view of the repo. If we were sure that this will always ever be the only kind of potential conflict that we could have, then we could continue simply opening PRs from 0.6.x into master, and the practical benefit would probably outweigh the absurdity.
But there will be cases where merging 0.6.x causes (non-trivial) conflicts, which will have to be resolved in a merge commit anyway. In that case, we cannot simply PR 0.6.x into master. A separate local branch will have to be made. With a separate local branch, it's easy to alter the merge commit not to modify BinaryIncompatibilities.scala ever.
The scala/scala has adopted the following merging procedure, which I like: (see https://github.com/scala/scala/pull/5794 for an example PR)
% update local branches
$ git checkout master
$ git checkout -b merge-0.6.x-into-master-march-30
$ export mb=$(git merge-base scalajs/0.6.x scalajs/master)
$ git log --graph --oneline --decorate $mb..scalajs/0.6.x | cat
[...]  a nice graph of what is about to be merged
$ git merge scalajs/0.6.x
$ [...] resolve conflicts
$ git push -u origin merge-0.6.x-into-master-march-30

They even amend the commit message of the merge commit with a verbatim copy of the above  sequence of commands, so that the conflicts are well documented. After that, they create a PR to merge merge-0.6.x-into-master-march-30 into master.
I think we should do precisely the same thing. This procedure works well, caters for merge conflicts that need to be resolved locally, and property documents everything. As part of this procedure, it would be a very small burden to clear out changes to BinaryIncompatibilities.scala in the merge commit.
WDYT?

I see. Making a local branch definitely makes sense. What I don't fully get though: Doesn't this create a "double" merge commit in master?
* 26504fe7f5 Merge pull request #5794 from SethTisue/merge-2.12-to-2.13-mar-21
* 17633b2db3 Merge branch '2.12.x' into 2.13.x

I think making a separate merge branch makes total sense (also to allow 0.6.x to move on), but I would suggest we the fast-forward the merge commit (or use GitHub's rebase feature?).
I have investigated more and what I didn't fully understand, is that from git's point of view, there is actually no merge. It's just a huge cherry-pick. scala/scala@7633b2db358fa82581c797aab5bfc2d6936a048 only has a single parent which is in 2.13.x IIUC.
What I do not understand then, is how does merge-base determination work next time?

Indeed, we can improve the procedure with a fast-forward :+1: I think scala/scala doesn't do fast-forwards, so I guess that's why they don't do that.

I have investigated more and what I didn't fully understand, is that from git's point of view, there is actually no merge. It's just a huge cherry-pick.

The commit you mention leads to a 404, but I guess you're talking about https://github.com/scala/scala/commit/17633b2db358fa82581c797aab5bfc2d6936a048 (the "cherry-pick") and https://github.com/scala/scala/commit/26504fe7f5fd275eb0fa78ebe3788c4d969ce7cb (its GitHub-generated merge into master).
Hum, that doesn't seem right :s Did they make a mistake here?
Anyway, with a fast-forward we wouldn't have this issue.

Closing in favor of #2851.


[Service Bus] Why is receiveDeferredMessage not supported in ReceiveAndDelete mode?

Currently we get the error The operation is only supported in 'PeekLock' receive mode. whenreceiveDeferredMessage or receiveDeferredMessages are used in ReceiveAndDelete mode.
But Service Bus does support these features in ReceiveAndDelete mode
This issue is to figure out why we decided to throw this error and if we can avoid it.

On second thoughts, this makes sense.
One cannot complete/abandon/defer/deadletter messages received in ReceiveAndDelete mode, so it makes sense that you cannot receive deferred messages :)
cc @ramya0820, @ShivangiReja, @HarshaNalluru


Guru Meditation Error when calling 'adc_oneshot_read' function (IDFGH-11315)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
IDF version:
ESP-IDF v5.1-dev-3710-gacac972f70-dirty 2nd stage bootloader
SDK config file:
Attached.
sdkconfig.zip
Issue:
Hello,
I'm using an ESP32-S3 on a custom board where I'm using the following task for reading the ADC value every 100 ms:
adc_oneshot_unit_handle_t adc1_handle;
adc_oneshot_unit_init_cfg_t init_config1 = {
     .unit_id = ADC_UNIT_1,
};
adc_oneshot_chan_cfg_t config = {
     .bitwidth = ADC_BITWIDTH_DEFAULT,
     .atten = EXAMPLE_ADC_ATTEN,
};

void adc_task(void *pvParameter)
{
	//-------------ADC1 Init---------------//
	ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config1, &adc1_handle));

	//-------------ADC1 Config---------------//
	ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, ADC1_CHAN3, &config));

	//-------------ADC1 Calibration Init---------------//
	adc_cali_handle_t adc1_cali_handle = NULL;
	bool do_calibration1 = example_adc_calibration_init(ADC_UNIT_1, EXAMPLE_ADC_ATTEN, &adc1_cali_handle);

	while(1)
	{
		ESP_ERROR_CHECK(adc_oneshot_read(adc1_handle, ADC1_CHAN3, &adc_raw));

		if (do_calibration1) {
			ESP_ERROR_CHECK(adc_cali_raw_to_voltage(adc1_cali_handle, adc_raw, &adc_voltage));
		}

		vTaskDelay(pdMS_TO_TICKS(100));
	}
}

The problem I have is that when I move the board abruptly I get a "Software reset due to exception/panic" and the board resets. In some cases in the terminal I get the following result just before the reset:
[2023-10-26_10:47:46:46.000076] OK Msg ID, evt_id: 156 152
[2023-10-26_10:47:46:46.799916] OK Msg ID, evt_id: 158 154
[2023-10-26_10:47:46:46.960088] Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
[2023-10-26_10:47:46:46.960243]
[2023-10-26_10:47:46:46.960318] Core  0 register dump:
[2023-10-26_10:47:46:46.960381] PC      : 0x4207727d  PS      : 0x00060430  A0      : 0x8200cad7  A1      : 0x3fcd8fe0
0x4207727d: adc_oneshot_read at /home/ms/esp/esp-idf/components/esp_adc/adc_oneshot.c:165 (discriminator 5)

[2023-10-26_10:47:46:46.981831] A2      : 0x122b6b8b  A3      : 0x00000003  A4      : 0x3fca03dc  A5      : 0x00000009
[2023-10-26_10:47:46:46.981934] A6      : 0x00000004  A7      : 0x00000000  A8      : 0x00000000  A9      : 0x00000000
[2023-10-26_10:47:46:46.992491] A10     : 0x00000000  A11     : 0x3fc9f4d8  A12     : 0x3fc9f778  A13     : 0x000030e3
[2023-10-26_10:47:46:46.992724] A14     : 0xb33fffff  A15     : 0xb33fffff  SAR     : 0x00000012  EXCCAUSE: 0x0000001c
[2023-10-26_10:47:47:47.008278] EXCVADDR: 0x122b6bef  LBEG    : 0x400570e8  LEND    : 0x400570f3  LCOUNT  : 0x00000000
0x400570e8: memset in ROM

0x400570f3: memset in ROM

[2023-10-26_10:47:47:47.017928]
[2023-10-26_10:47:47:47.018008]
[2023-10-26_10:47:47:47.018051] Backtrace: 0x4207727a:0x3fcd8fe0 0x4200cad4:0x3fcd9010 0x40382ecd:0x3fcd9040
0x4207727a: adc_oneshot_read at /home/ms/esp/esp-idf/components/esp_adc/adc_oneshot.c:165 (discriminator 2)

0x4200cad4: adc_task at /home/ms/esp/test_blufi_iot/mqtt-tcp/main/app_main.c:2336 (discriminator 2)

0x40382ecd: vPortTaskWrapper at /home/ms/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

According to the documentation as the EXCVADDR: 0x122b6bef is garbage value there might be a pointer not initialized or corrupted. I have checked the line 165 of the adc_oneshot.c file and there is the following line:
ESP_RETURN_ON_FALSE(chan < SOC_ADC_CHANNEL_NUM(handle->unit_id), ESP_ERR_INVALID_ARG, TAG, "invalid channel");
I don't understand which could be the pointer not initialized or corrupted.
In some other cases I get the following output just before the board resets (after abruptly moving it):
[2023-10-26_11:42:15:15.801233] OK Msg ID, evt_id: 34 178
[2023-10-26_11:42:15:15.928909]
[2023-10-26_11:42:15:15.945951] assert failed: adc_oneshot_ll_set_output_bits /IDF/components/hal/esp32s3/include/hal/adc_ll.h:847 (bits == ADC_BITWIDTH_12 || bits == ADC_BITWIDTH_DEFAULT)
[2023-10-26_11:42:15:15.946230]
[2023-10-26_11:42:15:15.946373]
[2023-10-26_11:42:15:15.961916] Backtrace: 0x40375a8e:0x3fcd88d0 0x403804cd:0x3fcd88f0 0x40386fd5:0x3fcd8910 0x420b98ff:0x3fcd8a30 0x420b99b5:0x3fcd8a50 0x42077299:0x3fcd8a80 0x4200cad4:0x3fcd8ab0 0x40382ecd:0x3fcd8ae0
0x40375a8e: panic_abort at /home/ms/esp/esp-idf/components/esp_system/panic.c:451

0x403804cd: esp_system_abort at /home/ms/esp/esp-idf/components/esp_system/port/esp_system_chip.c:78

0x40386fd5: __assert_func at /home/ms/esp/esp-idf/components/newlib/assert.c:81

0x420b98ff: adc_hal_onetime_start at adc_oneshot_hal.c:?

0x420b99b5: adc_oneshot_ll_output_invert at /home/ms/esp/esp-idf/components/hal/esp32s3/include/hal/adc_ll.h:986
 (inlined by) adc_oneshot_hal_setup at /home/ms/esp/esp-idf/components/hal/adc_oneshot_hal.c:70

0x42077299: adc_oneshot_read at /home/ms/esp/esp-idf/components/esp_adc/adc_oneshot.c:165 (discriminator 5)

0x4200cad4: adc_task at /home/ms/esp/test_blufi_iot/mqtt-tcp/main/app_main.c:2336 (discriminator 2)

0x40382ecd: vPortTaskWrapper at /home/ms/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

Is there something I'm not correctly doing with the ADC?

It could not be reproduce on my board, could you provide more information about "move the board abruptly", such as: what else peripheral do you used?
Also, you can enable coredump to save information to flash when a fatal error occurs. Look coredump

I'm using the I2C and Wi-Fi. The Bluetooth is also configured but is not being in use at the moment of the board reset. Additionally, I'm using the MQTT which is permanently transmitting data read from the I2C and the ADC.

According to the documentation as the EXCVADDR: 0x122b6bef is garbage value there might be a pointer not initialized or corrupted. I have checked the line 165 of the adc_oneshot.c file and there is the following line:
ESP_RETURN_ON_FALSE(chan < SOC_ADC_CHANNEL_NUM(handle->unit_id), ESP_ERR_INVALID_ARG, TAG, "invalid channel");

What is the value of ADC1_CHAN3 in your code ?

[2023-10-26_11:42:15:15.945951] assert failed: adc_oneshot_ll_set_output_bits /IDF/components/hal/esp32s3/include/hal/adc_ll.h:847 (bits == ADC_BITWIDTH_12 || bits == ADC_BITWIDTH_DEFAULT)

Do you check what is the value of 'bits' here?


Gracefully handle new node startup race conditions

It is possible for a checker pod to be scheduled and started on a node before the node is fully ready.  This makes the check instantly fail.  Most commonly, this happens when the checker pod starts before kube-proxy has had a chance to apply netfilter rules.
I found this relevant issue that describes the issue and shows how some people solved the problem by creating their own operator to un-taint nodes when they are fully ready.
This seems like an oversight with Kubernetes fundamentals and is disappointing.  This thread should be about how we want to work around this, or pursue fixes with the Kubernetes project directly.

For our faster / more frequently run checks, ie dns-resolution-check -- we added a temp fix: #519 to make the check sleep for an extra minute IF the node age is less than 3m. A better fix would be to not just check the node age but also check to see if kube-proxy on that node is ready and running before running the check. This functionality can be a package that other faster / more frequently run checks can implement.


Link to the LICENSE directly from the README

Link to the LICENSE directly from the README  😉

Ace :+1:


Add Utils.warp_string

Closes #56 - Titles can be too long for plots and overflow. The function warp_string is used by plotting functions to format the titles by adding new line characters so that each line is 42 characters or less or at most one word.


Request support for Fisher Air to Water heat pump

Log Message

Device matches simple_switch_timerv2 with quality of 12%. DPS: {"updated_at":<PHONE_NUMBER>.421496, "1": true, "2": "heat", "4": false, "7": false, "9": 44, "10": 39, "15": false, "20": 0, "26": 38, "101": 39, "102": false, "104": 50, "105": 19, "106": 40, "107": 26, "108": 0, "109": 2}

Information about DPS mappings

{
  "modelId": "0000021k4c",
  "services": [
    {
      "actions": [],
      "code": "",
      "description": "",
      "events": [],
      "name": "默认服务",
      "properties": [
        {
          "abilityId": 1,
          "accessMode": "rw",
          "code": "switch",
          "description": "", // ON/OFF switch
          "extensions": {
            "attribute": "128"
          },
          "name": "开关",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 2,
          "accessMode": "rw",
          "code": "mode",
          "description": "", //Operation mode
          "extensions": {
            "attribute": "128"
          },
          "name": "模式",
          "typeSpec": {
            "type": "enum",
            "range": [
              "cool",
              "heat",
              "DHW",
              "COOLDHW",
              "HEATDHW"
            ]
          }
        },
        {
          "abilityId": 4,
          "accessMode": "rw",
          "code": "disinfection",
          "description": "",
          "extensions": {
            "attribute": "128"
          },
          "name": "杀菌模式",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 7,
          "accessMode": "rw",
          "code": "switch_microwave",
          "description": "HEATER WATER",
          "extensions": {
            "attribute": "128"
          },
          "name": "水箱电加热",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 9,
          "accessMode": "rw",
          "code": "temp_set",
          "description": "", //SET required water temperature
          "extensions": {
            "attribute": "128"
          },
          "name": "温度设置",
          "typeSpec": {
            "type": "value",
            "max": 65,
            "min": 5,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 10,
          "accessMode": "ro",
          "code": "temp_current",
          "description": "",  //GET current water temp
          "extensions": {
            "attribute": "128"
          },
          "name": "总出水温度",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": -10,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 15,
          "accessMode": "rw",
          "code": "instant_heating",
          "description": "", //SET Electrical heating in hydraulic tank
          "extensions": {
            "attribute": "128"
          },
          "name": "即时加热",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 16,
          "accessMode": "rw",
          "code": "timer",
          "description": "一、每段定时6各字节，1-2字节表示开始时间，采用24小时制；3-4字节表示结束时间，采用24小时制；第5字节表示温度；第6字节表示该定时有效性；如设备不可配置结束时间，则3-4字节配置FFFF；二、参考范例(1)：6：30-12：30结束 35度， 开启，则上传06 1e 0a 1e 23 01;参考范例(2) 6：30开启，无结束时间，35度，开，则上传 06 1e FF FF 23 01； 三、每段定时固定6各字节，如果为2段定时，定时程序部分按相同格式进行第二段程序上报，累计上报12各字节，如果跟多段，则按次方式重复上报；四、工作台配置，选择链接-设置链接-APP页面-周程序",
          "extensions": {
            "attribute": "128"
          },
          "name": "定时",
          "typeSpec": {
            "type": "raw",
            "maxlen": 128
          }
        },
        {
          "abilityId": 20,
          "accessMode": "ro",
          "code": "fault",
          "description": "P4预留P5防冻结", //GET Fault code. If 0 then no Error
          "extensions": {
            "scope": "fault",
            "attribute": "128"
          },
          "name": "故障告警",
          "typeSpec": {
            "type": "bitmap",
            "label": [
              "E0",
              "E1",
              "E2",
              "E3",
              "E4",
              "E5",
              "E6",
              "E7",
              "E8",
              "E9",
              "P0",
              "P1",
              "P2",
              "P3",
              "P4",
              "P5"
            ],
            "maxlen": 16
          }
        },
        {
          "abilityId": 26,
          "accessMode": "ro",
          "code": "temp_current_f",
          "description": "", //GET domestic hot water current temperature
          "extensions": {
            "attribute": "128"
          },
          "name": "水箱温度",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": -10,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 101,
          "accessMode": "ro",
          "code": "Tin",
          "description": "", //GET heat exchanger inlet water temperature
          "name": "换热器进水温度",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": -10,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 102,
          "accessMode": "rw",
          "code": "DEF",
          "description": "", //SET forced defrost
          "name": "强制除霜",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 104,
          "accessMode": "rw",
          "code": "DHWSET",
          "description": "", //SET domestic hot water temperature
          "name": "生活热水设定",
          "typeSpec": {
            "type": "value",
            "max": 60,
            "min": 40,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 105,
          "accessMode": "ro",
          "code": "T4",
          "description": "", //GET outdoor unit sensor air temperature
          "name": "室外环境温度",
          "typeSpec": {
            "type": "value",
            "max": 80,
            "min": -30,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 106,
          "accessMode": "ro",
          "code": "Tout",
          "description": "", //GET heat exchanger outlet water temperature
          "name": "换热器出水温度",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": -10,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 107,
          "accessMode": "ro",
          "code": "T6",
          "description": "", //GET indoor unit sensor air temperature
          "name": "线控器温度",
          "typeSpec": {
            "type": "value",
            "max": 80,
            "min": -30,
            "scale": 0,
            "step": 1,
            "unit": "℃"
          }
        },
        {
          "abilityId": 108,
          "accessMode": "ro",
          "code": "Power",
          "description": "", //GET Working level? (I am not sure)
          "name": "能需",
          "typeSpec": {
            "type": "value",
            "max": 255,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 109,
          "accessMode": "ro",
          "code": "WP_speed",
          "description": "", //GET Water Pump speed level
          "name": "水泵档位",
          "typeSpec": {
            "type": "value",
            "max": 255,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": ""
          }
        }
      ]
    }
  ]
}

Product ID
3gabjnrhtblg3ub6

Information about how the device functions
I would like to control locally my Air to Water heat pump
I need all PDs without: 4, 7, 16
Details and manuals: https://www.fisherklima.hu/termekek/hoszivattyu/fisher-levegő-víz-hőszivattyú-8-kw-adatlap?limitstart=0
Thanks

This appears to be a hot water and heating/cooling unit in one.  Due to the way they have merged these features, it is difficult to implement in HA using the standard components, and I was forced to make a choice for the climate entity to implement the modes with hot water on, or as exclusive modes.  I went with the "hot water on" option, because I think most likely you would want to leave that on always, but it does mean if the installation does not include hot water connection, just the radiators, or you want the hot water off for some reason, it will be incorrect.  A separate "Combined mode" selector is provided to give full access to all the modes.

This appears to be a hot water and heating/cooling unit in one. Due to the way they have merged these features, it is difficult to implement in HA using the standard components, and I was forced to make a choice for the climate entity to implement the modes with hot water on, or as exclusive modes. I went with the "hot water on" option, because I think most likely you would want to leave that on always, but it does mean if the installation does not include hot water connection, just the radiators, or you want the hot water off for some reason, it will be incorrect. A separate "Combined mode" selector is provided to give full access to all the modes.

Hello!
Great work, I think working well.
One problem: the hot water and heating water sensor is swap-ed.
Can you swap these two values?

Many thanks,
Daniel

This appears to be a hot water and heating/cooling unit in one. Due to the way they have merged these features, it is difficult to implement in HA using the standard components, and I was forced to make a choice for the climate entity to implement the modes with hot water on, or as exclusive modes. I went with the "hot water on" option, because I think most likely you would want to leave that on always, but it does mean if the installation does not include hot water connection, just the radiators, or you want the hot water off for some reason, it will be incorrect. A separate "Combined mode" selector is provided to give full access to all the modes.

Hello!
Great work, I think working well. One problem: the hot water and heating water sensor is swaped. Can you swap these two values?
Many thanks, Daniel

Sorry I found more one problem:
The Heating swith is turned on the heatpump but I can't switch off with this button:

Many thanks, working good!

Many thanks, working good!


Docker command produces error

Traceback (most recent call last):
File "./convert.py", line 60, in
main()
File "./convert.py", line 56, in main
args.phase)
File "./convert.py", line 32, in convert
with open(data_output_path, 'wb') as data_out:
IOError: [Errno 2] No such file or directory: '../converted/dilation8_pascal_voc.npy'

How do I fix this?  Thanks so much and thanks for the awesome code!

Nevermind.  My mistake...just needed to created conversion dir


Explicitly don't support PHP7

SilverStripe doesn't work in PHP7 (see #4271 at least), so have composer reflect that.
Should probably be merged up to master as well.

I'm happy with this for a 3.x change. For 4.0 I'd prefer our efforts to go into fixing it. :-)

That is a better option. Will leave it up to the person merging upwards :)


[nginx] global requests per second limit

Hi,
we are trying to set up a service in our cluster which should not get too many requests per second.
In a first glimpse the ingress.kubernetes.io/limit-rps annotation should be the right one. But one thing is not clear to me. The source code seems to apply this limit per ingress controller.
This means if I have two controllers running it is twice the limit in reality. I can circumvent this by reducing the configured limit.
E.g. I want 30req/s as a limit and I have 3 controllers, then I define a limit of 10req/s
But when I now scale up the ingress controllers the limit will also increase. But the service should still at least get 30req/s.
Is the ingress.kubernetes.io/limit-rps annotation not meant to be used for such a case. Or am I understanding something wrong?

These are indeed limits per controller. Since there is a master election happening, maybe these "global limits" could automatically be adjusted for the number of ingresses running. I haven't dived deep enough in the controller code to see if this is currently possible/easy to implement.

But when I now scale up the ingress controllers the limit will also increase. But the service should still at least get 30req/s.

There is no "coordination" between the ingress controllers.

Since there is a master election happening, maybe these "global limits" could automatically be adjusted for the number of ingresses running.

The election is used only to update the ingress status

@foxylion what you are asking is something I've been thinking but it requires a lot of changes:

use one deployment to run as coordinator (current go code)
use a different deployment as agent that only received the configuration file and runs nginx.

@aledbf I see this is a difficult thing. It is okay for us that this is no primary use case of the ingress controller. It would be a nice to have. But it is also (in some cases even better) implementable on an application level.

Continuing this conversation from Slack kubernetes-dev (thanks for the reference to the issue @aledbf.
Thinking of the changes needed in a more generic sense (I am also looking to split the 'watcher'/'listener' deployment for an ingress out from the pods actually handling the ingress traffic.)
Is it fair to say:
Use of one deployment to run as coordinator (current go code)

Listens for changes to ingress resources.
Orchestrates spin-up of new pods when a new ingress is needed.
Passes configuration needed to new pods based on annotations from ingress resource.
Monitors/Tracks "worker" pods to provide true ingress status.

I've explicitly mentioned the controller doing the orchestration of the workers as i'm not sure if this was implied or is completely off-base from the thinking above.
Use of a different image (orchestrated by the controller) as worker pods.

Actually perform data-plane based functions, handling the ingress traffic.

Concerns

Is this effectively creating a new resource type that should be standalone -or- exists elsewhere and shouldn't be tagged onto an ingress.

Where does the configuration of upstream hardware/SaaS services happen in the desired ingress chain. (AWS LB's etc); There are arguments for both the controller and as an init function of the individual workers.

Matt

Orchestrates spin-up of new pods when a new ingress is needed.

What do you mean by that?
My idea is to split the controller in two parts: controller and "agent" where the controller is the current code minus nginx and the "agent" (just a name) is a different nginx deployment/daemonset that only receives the configuration and updates from the controller and acts accordingly (reloads).

@aledbf I was thinking the controller would be the only deployment you need create yourself. The controller would then be responsible for deploying it's own "worker/agent" deployments...

Multiple separate "agent"/"worker" configurations could be deployed based on annotations.
Traffic could be kept seperate despite all using the same "ingress" resource type if needed.

This is likely due to my needs differing, each of my "agents" will actually be a tunnel, not a regular Nginx proxy, so being able to map them one to one (managed by the controller) to whichever app requested the ingress would be useful.


Use custom installation golang first

Should use custom installation golang first during the test job to prevent errors caused by the override of system pre-loaded golang version [1] via setting golang search path ahead of PATH env.
[1] http://logs.openlabtesting.org/logs/20/20/1b760525f1c21f177ec0f2e452a21eb200dbbf77/recheck-lbaas/terraform-provider-openstack-acceptance-test-lbaas/4e9874a/job-output.txt.gz

Resolved.


The strings 'Services & Resource types' show blank and the strings 'Delete versions/ tag/ Filter' show 'Unkown' in the 'connect summary' dialog when using SAS to attach a storage account

Storage Explorer Version: 1.17.0
Build Number: 20210208.7
Branch: feature/connect
Platform/OS: Windows 10/MacOS Catalina
Architecture: ia32/x64
Regression From: Not a regression
Steps to Reproduce

Select one storage account -> Generate a SAS for it with full permissions -> Copy the SAS.
Open connect dialog by right clicking the second plug button in the vertical toolbar.
Select 'Storage account -> Shared access signature (SAS)' -> Click 'Next'.
Paste the SAS to the 'SAS connection string' text box.
Click 'Next' -> Check whether all the strings show well on the dialog.

Expected Experience
All strings show well.
Actual Experience

The strings 'Services & Resource types' show blank.
The strings 'Delete versions/ Tag/ Filter' show 'Unkown'.

@v-xianya

Missing "Services" and "Resource types" labels is definitely a bug.
"Unknown" is intentional when an unrecognized permission is found. It is misspelled, however.
Can you explain how you generated the account SAS? According the portal and the Azure documentation, only the following permissions are allowed for account SAS:

Read (r)
Write (w)
Delete (d)
Permanent Delete (y)
List (l)
Add (a)
Create (c)
Update (u)
Process (p)

Verified on build 20210210.3 . This issue still reproduces. So we re-open it.

@v-limu We got the details sorted out. A fix has been merged.
Please remember that any unrecognized permissions will generate an "(unknown)" value. That is by design. This is to make it a little easier going forward whenever the platform adds new permissions and users try attaching using a SAS generated from elsewhere.

Verified this issue on build 20210218.1. Fixed.


[graphql] add query epochs functionality

Description
Implementation of paginated query for epochs in GraphQL
Test plan
How did you test the new or updated feature?
Added a pagination.move test under the sui-graphql-e2e-tests crate.

Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

[ ] Protocol:
[ ] Nodes (Validators and Full nodes):
[ ] Indexer:
[ ] JSON-RPC:
[x] GraphQL:
Added support for paginated queries for epochs. This allows users to fetch epochs data in a paginated format.
[ ] CLI:
[ ] Rust SDK:
[ ] REST API:

Actually.. I think we'll also need to create a new index on column first_checkpoint_id for table epochs to support this

Otherwise this will be a sequential scan through epochs :fearful:

Actually.. I think we'll also need to create a new index on column first_checkpoint_id for table epochs to support this.
Otherwise this will be a sequential scan through epochs

There's only ~500 of these so I think an index would be fine (cheap, and the easiest solution).
Note that we already use a similar query to do a consistent fetch on epochs -- I think it's also fine to do that in a follow-up PR, sequential scan over 500 records is peanuts.


Add xz and bzip2 support for import-db, export-db, import-files, fixes #3609

The Problem/Issue/Bug:

#3609

How this PR Solves The Problem:
Add bzip/xz formats for import and export
TODO:

[x] Add test coverage for compression formats on export-db and import-files
[x] Make sure the TestCmd commands have proper coverage for the new types

Manual Testing Instructions:

[ ] ddev import-db --src= with a *.sql.bz2 and *.sql.xz
[ ] ddev export-db --bzip2 --file=something.bz2
[ ] ddev export-db --xz --files=something.sql.xz
[ ] Verify (re-import) the output files

Automated Testing Overview:

Related Issue Link(s):
Release/Deployment notes:

@bmack (and anybody else) I'd love if you could give this a quick test. You can just use gitpod, https://gitpod.io/#https://github.com/drud/ddev/pull/3721 or you can download artifacts and put them in path, https://github.com/drud/ddev/actions/runs/2012196073


Bumping to version 2.1

We have a lot of new stuff baked in, seems like a time for a new version

Coverage remained the same at 97.852% when pulling 6d42ddbe1c2ba9d8514ba34b325ab848ca998152 on armonge:v2.1 into 6cdc1de73b2c93005b62fd6cd2620bf3447eaad7 on mediarain:master.


Using async in some interpretor functions

I've created a formula engine with chevrotain and now would like to execute actions in my interpreter. One formula is getValue which reads data from the database (therefore async). Is there some way to have one interpreter function being async without seeing "Promise {}" somewhere in the things resolved by the interpreter?

Ok, I've solved it by just making everything (all interpreter functions) async.


:hammer: migrate JSON Data Page - Per capita consumption-based CO₂ emissions

JSON Data Page
ETL Data Page
Command for "live" reloading of Data Page
ENV=.env.mojmir GRAPHER_FILTER=consumption_emissions_per_capita etl grapher/gcp/2023-07-10/global_carbon_budget --grapher --watch

Issues

Topic tags links redirect to non-existing pages and they have different names than those on the data page (I took topic names from datasette)
FAQ GDoc doesn't work well with staging server, since it only gets saved to live MySQL. I had to replicate it from live to staging-site-mojmir with custom script
Newlines in origin description are not rendered properly, is that a known bug?
See other # TODO in the YAML file

Parent issue https://github.com/owid/etl/issues/1666

The metadata looks good, but I think we can't merge this until some things are changed in grapher. The preview is clearly worse than what we currently have on the json-powered data page.

I don't think merging this will affect JSON-powered data pages. Only indicator-based data page preview should show this (better check with Daniel).

@pabloarosado @Marigold I'd love to visually compare the two versions with both of you in one of the next data meetings to see what needs to change before we can remove the current code that bakes from json

@danyx23 for sure. I'll merge this now, as there's a new update coming. Links to both versions are in the first post.


Remove unnecessary code

https://github.com/ReactorKit/ReactorKit/pull/223#issuecomment-1940071358
https://github.com/ReactorKit/ReactorKit/pull/223#issuecomment-1940420354
https://github.com/ReactorKit/ReactorKit/pull/223#issuecomment-1940435743

I want merge after the PR below.
https://github.com/ReactorKit/ReactorKit/pull/226


Incorrect type inference at function callsite - wrapping type inside of a Tuple

TypeScript Version:  4.0.5
Tested this on v4.1.0-beta, same issue (in playground)
Tested on Nightly (v4.2.0-dev.20201112), same issue (in playground)
Tested on v3.9.7, same issue (in playground)
Tested on v3.8.3, same issue (in playground)
Tested on v3.7.5, same issue (in playground)

Search Terms:
tuple inference
argument not assignable
ts2345
Code
This is inside of a react typescript project, when upgrading react-scripts along with typescript to the latest (v4) versions.
We have a generic custom react hook that is having some tsc errors after upgrading - this one though I haven't been able to work through and it looks like a bug of some kind in how tsc is inferring the type.
import {
	useReducer,
	useRef,
	useLayoutEffect,
	useMemo,
        Reducer,
} from 'react'; //react: ^16.8.6
import _ from 'lodash'; //lodash: ^4.17.20

export interface IOptions {
	/**
	 * The number of milliseconds to debounce the request. Defaults to no debounce.
	 * When `true`, defaults to 300 milliseconds.
	 */
	debounce?: boolean | number;
}

export interface ICallbacks<T> {
}

export interface IResult<T> {
	isLoading: boolean;
	response?: T;
	error?: any;
}

export interface IReturn<T> extends IResult<T> {
	refetch(): void;
}

type Action<T> =
	| { type: 'REQUEST' }
	| { type: 'SUCCESS'; payload: T }
	| { type: 'FAILURE'; payload: any };

const initialResults: IResult<any> = {
	isLoading: false,
	response: undefined,
	error: undefined,
};

function resultsReducer<T>(
	state: IResult<T>,
	action: Action<T>,
): IResult<T> {
	switch (action.type) {
		case 'REQUEST':
			return { isLoading: true, response: state.response };
		case 'SUCCESS':
			return { isLoading: false, response: action.payload };
		case 'FAILURE':
			return { isLoading: false, error: action.payload };
		default:
			return initialResults;
	}
}

function isCancellable<T = any>(
	fetch: RequestSender<T>,
): fetch is DebouncedRequestSender<T> {
	if ((fetch as any).cancel) return true;

	return false;
}

type DebouncedRequestSender<T = any> = _.DebouncedFunc<
	(
		url: string,
		options: IOptions,
		callbacks: ICallbacks<T>,
		dispatch: DispatchFunc<Action<T>>,
	) => () => void
>;

type RequestSender<T = any> = DebouncedRequestSender<T> | typeof performRequest;

function performRequest<T = any>(
	url: string,
	options: IOptions,
	callbacks: ICallbacks<T>,
	dispatch: React.Dispatch<Action<T>>,
): (() => void) {
	dispatch({ type: 'REQUEST' });

	return () => {};
};

export function useHook<T = any>(
	url: string,
	options: IOptions = {},
	callbacks: ICallbacks<T> = {},
): void {
	const [results, dispatch] = useReducer<
		Reducer<IResult<T>, Action<T>>
	>(resultsReducer, initialResults);

    // Use a ref to hold onto the callbacks. The prevents us from having to
	// include the callbacks in the useEffect dependencies.
	const callbacksRef = useRef(callbacks);
	callbacksRef.current = callbacks;

    // Create a debounced function, if needed. Also, memoize this function so
	// that it doesn't cause unnecessary requests.
	const fetch: RequestSender<T> = useMemo(() => {
		if (options.debounce) {
			// Use a default number of milliseconds if debounce is `true`.
			const wait = options.debounce === true ? 300 : options.debounce;
			return _.debounce(performRequest, wait);
		} else {
			return performRequest;
		}
	}, [options.debounce]);

    useLayoutEffect(() => {
		const cancelFetch: (() => void) | undefined = fetch(
			url,
			options,
			callbacksRef.current,
			dispatch,
		);

		return () => {
			// Cancel the debounced function call, if needed.
			if (isCancellable(fetch)) fetch.cancel();
		};
	}, [url, options, fetch]);

}

Expected behavior:
I would expect this not to result in a tsc error. I'm not sure where it is inferring this tuple that is wrapping the actual type for the dispatch variable, but based on what intellisense is showing me in VS Code, the dispatch variable's type matches the expected type for the fetch function signature.
Actual behavior:
Argument of type '[Dispatch<Action<T>>]' is not assignable to parameter of type 'Dispatch<Action<T>>'.   Type '[Dispatch<Action<T>>]' provides no match for the signature '(value: Action<T>): void'.ts(2345)
Playground Link:
TS Playground link
Related Issues:

Please provide a shorter/minimal repro without external dependencies.

type DispatchFunc = (value: any) => void;

interface DebouncedFunc<T extends (...args: any[]) => any> {
	(...args: Parameters<T>): ReturnType<T> | undefined;
}

type DebouncedRequestSender = DebouncedFunc<(
		dispatch: DispatchFunc,
	) => () => void>;

type RequestSender = DebouncedRequestSender | typeof performRequest;

//If you remove the `<T>`, there are no errors
//With the `<T>`, you get errors
declare function performRequest<T>(
	dispatch: DispatchFunc,
): (() => void);

declare const foo: RequestSender;

declare const blah : DispatchFunc;

foo(blah);

Playground