adface maxtemp utility

Thank you for your Pull Request! We have developed this task checklist from the Development Process Guide to help with the final steps of the process. Completing the below tasks helps to ensure our reviewers can maximize their time on your code as well as making sure the admiral codebase remains robust and consistent.
Please check off each taskbox as an acknowledgment that you completed the task or check off that it is not relevant to your Pull Request. This checklist is part of the Github Action workflows and the Pull Request will not be merged into the devel branch until you have checked off each task.

[ ] Place Closes #<insert_issue_number> into the beginning of your Pull Request Title (Use Edit button in top-right if you need to update)
[ ] Code is formatted according to the tidyverse style guide. Run styler::style_file() to style R and Rmd files
[ ] Updated relevant unit tests or have written new unit tests - See Unit Test Guide
[ ] If you removed/replaced any function and/or function parameters, did you fully follow the deprecation guidance?
[ ] Update to all relevant roxygen headers and examples.
[ ] Run devtools::document() so all .Rd files in the man folder and the NAMESPACE file in the project root are updated appropriately
[ ] Address any updates needed for vignettes and/or templates
[ ] Update NEWS.md if the changes pertain to a user-facing function (i.e. it has an @export tag) or documentation aimed at users (rather than developers)
[ ] Build admiral site pkgdown::build_site() and check that all affected examples are displayed correctly and that all new functions occur on the "Reference" page.
[ ] Address or fix all lintr warnings and errors - lintr::lint_package()
[ ] Run R CMD check locally and address all errors and warnings - devtools::check()
[ ] Link the issue so that it closes after successful merging.
[ ] Address all merge conflicts and resolve appropriately.
[ ] Pat yourself on the back for a job well done! Much love to your accomplishment!

Closed https://github.com/pharmaverse/admiralvaccine/pull/56 and using this one - please note use of @devel at the end of branch.

@pharmaverse/admiralvaccines I got this one passing all checks - please review commit history to see how I fixed the issues.

Closing the PR since we are uploading all the adface funcitons in a single branch


Standardizing code style for checking container emptiness

This PR aims to standardize the code style for checking container emptiness. Relevant discussion can be found in issue #194.
Additionally, I noticed the pattern if len(container), and initially planned to replace it with if container, which feels more intuitive to me than if len(container) != 0.  However, it appears that this modification would result in breaking too many tests, so I will leave it unchanged for now.

Thanks for submitting! It's helpful for me to have to think explicitly about these choices!

Additionally, I noticed the pattern if len(container), and initially planned to replace it with if container, which feels more intuitive to me than if len(container) != 0. However, it appears that this modification would result in breaking too many tests, so I will leave it unchanged for now.

Do you mind pointing me to a place where this happened? I'm guessing it was for a custom class?

Thanks for submitting! It's helpful for me to have to think explicitly about these choices!

Additionally, I noticed the pattern if len(container), and initially planned to replace it with if container, which feels more intuitive to me than if len(container) != 0. However, it appears that this modification would result in breaking too many tests, so I will leave it unchanged for now.

Do you mind pointing me to a place where this happened? I'm guessing it was for a custom class?

There should be four places where the pattern if len(container) is used. You can review the final revert commit here.
Meanwhile, you can check the test fail log, which should be available somewhere like here. It should be something like:
ERROR tests/test_gt.py::test_gt_replace - ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
ERROR tests/test_gt.py::test_gt_object_prerender - ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
ERROR tests/test_gt.py::test_gt_table_render - ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Ah thanks for pointing to the code! I think this is the issue discussed in this SO post (they focus on numpy, but same concept; arrays in data libraries raise errors on __bool__).

Thanks for sharing the details. Do you think we should stick with the current approach or switch to if len(container) != 0? Or do you have any other ideas?

I've been thinking through these kinds of checks, and how they work with data tools. If it's okay with you, I feel okay with leaving the original code as is. Thanks for flagging the need for consistency, and digging into this code. It was really helpful to have to read about these checks, PEP 8, and how this works with DataFrames/Series, etc..
It seems okay to leave as is, since we're a fairly data centric library, and I suspect I adopted these practices in part because they work with data arrays etc..


fix: not bail! on kinesis's state if scan.startup.mode set to timestamp

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
introduced in https://github.com/risingwavelabs/risingwave/pull/12048
the create split gonna fail

if user set scan.startup.mode to timestamp
a new shard is discovered and ready to consume

-> lead to create source task failure

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[x] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

@stdrc talked about enumerator should inherent offset settings from source props. But it cannot handle the case if the user set scan.startup.mode to latest, leading to data loss from the shard starts to the time we actually start reading data.

https://github.com/risingwavelabs/risingwave/pull/18040
the pr labeled with cherry-pick-release-1.10 but actually picked to release-1.9 🤣


Refs #31196 -- Installed postgis_raster extension on PostGIS 3+.

@claudep Thanks :+1:
I added gis_migrations/migrations/0001_setup_extensions.py and changed gis_tests.gis_migrations.test_commands.MigrateTests.test_migrate_gis because we cannot drop an extension that is used by other models:
======================================================================
ERROR [0.087s]: test_migrate_gis (gis_tests.gis_migrations.test_commands.MigrateTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tests/django/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.DependentObjectsStillExist: cannot drop extension postgis_raster because other objects depend on it
DETAIL:  column rastprojected of table rasterapp_rastermodel depends on type raster
column rast of table rasterapp_rastermodel depends on type raster
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

I also pushed minor edits.

Great. If testing rasterapp in isolation also works, then that's fine!


Automate test cases in GHA

Using the OSS build server with the daemon running on there.

Done. Any new test cases will run automatically


Risk Report

Basic Information
A discussion about possible risks to the project and how the team will avoid or mitigate those risks
Other Information
A deliverable for Sprint 1

Risk Register.xls


Fix localized string in Ezren (Level 1)'s copy of School of Unified Magical Theory

This sort of this usually isn't going to be needed since the prompt already came and went.


Open optionally associated folder after saving a file

This was present in 1.3.x, but I actually removed it, since I think it makes more sense to see a preview before saving the file, why would you prefer that?

@MarcAnt01 Maybe instead of opening the file, open the folder in File Explorer instead so I don't need to go there and search

An option to open the directory could make sense, I usually share the files within the preview or save them in videos folder so haven't thought about that.

I'm sorry but this isn't going to be considered till the app stays uwp

@MarcAnt01 You can access the Path property of the picked file, remove the file name at the end and then call Launcher.LaunchFolderPathAsync with ItemsToSelect for options containing the picked file so it will be selected.

That's what I tried, but path keeps staying null because of the sandbox

`
private static async Task PickVideoAsync()
{
try
{
var picker = new FileSavePicker();
var time = DateTime.Now.ToString("yyyy-MM-dd-HHmmss");
picker.SuggestedStartLocation = PickerLocationId.VideosLibrary;
picker.SuggestedFileName = $"recordedVideo{time}";
picker.DefaultFileExtension = ".mp4";
picker.FileTypeChoices.Add("MP4 Video", new List { ".mp4" });
            StorageFile file = await picker.PickSaveFileAsync();

            string path = Path.GetDirectoryName(file.Path);
            StorageFolder pickedFolder = await StorageFolder.GetFolderFromPathAsync(path);
            if (OpenFolderOption == true)
            {
                await Launcher.LaunchFolderAsync(pickedFolder);
            }
            return file;
        }
        catch
        {
            return null;
        }
    }

`

This is my snippet if you wanna take a look, but I doubt there's something wrong


Rest swagger specification : response envelope and warnins

CARMIN specifies that all responses should be in an envelope with a status code and the errorMessage or returned object.
VIP SOAP implementation uses it to include warnings in all responses, event successful ones.
So far i haven't use this concept of envelope in the rest swagger specification because we use HTTP status to convey this information.
2xx means no error and the object is returned directly.
Others codes means an error and all relevant info (code, message) and returned in a specified format.
So far so good but I've met a problem in copying soap methods in rest : i can't return the warnings, but these aren't in CARMIN.
Is it OK for you to lose these warnings in the rest implementation or do you think it necessary to include in the rest spec a way to convey these warnings (but I think this could be complex).

In CATI we will not use warnings. If we would like to introduce warnings in
CARMIN, we would have to agree on what are the warning for and what a
platform must do with them. Should they be always presented to the user or
can they be ignored ? To my opinion, warnings can be annoying for a
userwhen they are reccurent. The API should provide a way to identify the
warnings so that a platform can implement a filter based on user choices.
This seems too complex as compared as the interest of warnings.


Explorer left pane

Hay,
Is it possible to change the left pane with other color or image?
Thx,
H.

Sorry, as the left TreeView is a separate Control, this program cannot modify them. Additionally, due to the complexity of the controls, supporting images may be difficult and there are currently no plans to do so. If you want to modify the color, you can actually do so by modifying the registry for the global Window color. There are many tutorials online for this. This tool currently only focuses on the background image function.

Modify the "Window" key in the registry: "HKEY_CURRENT_USER\Control Panel\Desktop\Colors".

Thank you! I will try this out.

I've changed it to this but the colour is still the same. Anything I'm doing wrong?
(Sorry for the bother, don't answer if it's annoying, thank you for the help so far anyways!).

The color should change after restarting your computer.

Sadly, nothing has changed. Good old Windows....

Try this "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColors\Standard".
The value of "Window" is RGB color hexadecimal to decimal.

Try this "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColors\Standard". The value of "Window" is RGB color hexadecimal to decimal.

Thank you. I will try this at the moment.
Default value:

Changed to:
C5E0B3

I'll reset and see what happens.

The color's still white, sadly.

The color's still white, sadly.

Well, I'm sorry, but I remember that these registries worked in older versions. I tried it on 22H2 and it didn't work.
I'll add the ability to set the background color in the next version.

The color's still white, sadly.

Well, I'm sorry, but I remember that these registries worked in older versions. I tried it on 22H2 and it didn't work. I'll add the ability to set the background color in the next version.

Thank you for all the help. And don't worry, thanks a lot for helping anyways!


Site won't load on Android Firefox

This seems like a browser-specific issue, and I'd need to turn on how remote / USB debugging on my phone to get this to work...

USB debugging is enabled. But desktop Firefox (version 79) is too new to debug Android Firefox (version 68)
Installed Firefox Nightly on Android to debug.
Site works in Nightly.
So what changed between version 68 - 79?
Set compatibility via browserslist?

Follow up.

You can debug Android Firefox 68 over USB by installing Firefox 68 ESR on desktop.
The culprit is the use of the optional chaining operator ?. in Controls.jsx (line 18).
Production-level browserslist setting should be taking care of this already, but if not: either fix this, or examine babel settings.

Took a while to figure out the proper babel config to activate the babel-env preset, but it should be working now.

Fixed in 210a9d31fc861a3b7295f80c8e908388e252c206.


Unable to run x86 docker

Hi,
I have created docker image as mentioned here https://github.com/neuralet/neuralet/tree/master/applications/smart-distancing for x86, but after creating the image, the docker run is not working.
I'm getting error:
Unable to find image 'neuralnet/x86_64:applications-smart-distancing' locally
docker: Error response from daemon: pull access denied for neuralnet/x86_64, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

I have cloned the neuralnet repo and tried docker commands for x86 on Ubuntu 18.04. Are there any other steps to make this work? Or any prerequisites for x86?
Here is my machine configuration:
OS: Ubuntu 18.04
GPU: Nvidia GeForce GTX 1050 Ti
Please help.
Thanks,
Archana

@archanabwk
What do you see when you run docker images in the terminal:
docker images
If the container is built successfully, you should see something like this:

@mhejrati
Yes, I can see the neuralnet/x86_64 container listed under docker images.

@mhejrati now I created the docker again and at least docker related errors are gone now. But now I'm getting below errors:
020-05-12 09:22:04.843514: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory
2020-05-12 09:22:04.843589: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory
2020-05-12 09:22:04.843598: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
Downloading data from http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz
187932672/187925923 [==============================] - 354s 2us/step
2020-05-12 09:28:03.342859: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
2020-05-12 09:28:03.342881: E tensorflow/stream_executor/cuda/cuda_driver.cc:351] failed call to cuInit: UNKNOWN ERROR (303)
2020-05-12 09:28:03.342902: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:163] no NVIDIA GPU device is present: /dev/nvidia0 does not exist
2020-05-12 09:28:03.343110: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-05-12 09:28:03.364595: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2020-05-12 09:28:03.364791: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0xad97600 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-05-12 09:28:03.364804: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
Device is:  x86
Detector is:  mobilenet_ssd_v2
image size:  [300, 300, 3]
 * Serving Flask app "ui.web_gui" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://<IP_ADDRESS>:8000/ (Press CTRL+C to quit)
opened video  /repo/applications/smart-distancing/data/TownCentreXVID.avi

And the above link http://<IP_ADDRESS>:8000/ never works, I tried to specify local IP and other ports but still the link is always same - http://<IP_ADDRESS>:8000/.
I have a Nvidia GPU: Geforce GTX 1050 Ti and OS Ubuntu 18.04, still above error says,
no NVIDIA GPU device is present: /dev/nvidia0 does not exist
I tried to find your website and Github documents for any specific version requirements for CUDA, TensorRT, CuDNN and TensorFlow or any specific compute capability GPU requirements, but couldn't to find any.
I checked the 'Dockerfile-x86' file for the package installations, but couldn't find any libs related to TensorRT, CUDA, Nvidia Drivers, etc.
Can you please help me to understand make this app work on x86?

Hi @archanabwk
would you please tell what command did you run for running this docker image?
Also this container only works with CPU and you don't need to have CUDA or CuDNN to run it.

@alpha-carinae29 If this application works with CPU only, then we can ignore GPU related errors.
I used few commands as below:
docker run -it -p 8000:80 -v /home/archana/neuralet/:/repo neuralet/x86_64:applications-smart-distancing
docker run -it -v /home/archana/neuralet/:/repo neuralet/x86_64:applications-smart-distancing

OK, It seems you set wrong port.
please try this:
docker run -it -p 8000:8000 -v /PATH_TO_CLONED_REPO_ROOT/:/repo neuralet/x86_64:applications-smart-distancing
and then open your browser and browse http://localhost:8000/

-p 8000:80

if you are using this option in your docker run, you are mapping your host's port 8000 to container's port 80, which does not make sense. The output you are seeing in the terminal is docker's, meaning the app is running on container's <IP_ADDRESS>:8000. This is why in the instructions, you can see docker's option -p is used like -p HOST_PORT:8000 , meaning that if you want to see the output on <IP_ADDRESS>:80 of your host, you have to run the docker command with -p 80:8000.
Let me know if you could get it to work.

OK, It seems you set wrong port.
please try this:
docker run -it -p 8000:8000 -v /PATH_TO_CLONED_REPO_ROOT/:/repo neuralet/x86_64:applications-smart-distancing
and then open your browser and browse http://localhost:8000/

lol I was writing when you were sending your answer :D

/dev/nvidia0

you will need --gpus all to pass the gpus to docker. You'll also need the nvidia-docker2 runtime installed for that option to work.

@archanabwk as @mdegans mentioned above, it seems like the docker can't see the GPU device. Depending on which docker version you are using you should make sure to mount the GPU and nvidia libraries properly, either with  --runtime nvidia or --gpus all flags.

Thank you @alpha-carinae29 , @JsonSadler , @mdegans and @mhejrati
After applying all our solutions, I used below command and finally it worked :+1:
docker run -it --runtime nvidia --privileged  -p 8000:8000 -v /home/archana/neuralet/:/repo neuralet/x86_64:applications-smart-distancing

Thank you @alpha-carinae29 , @JsonSadler , @mdegans and @mhejrati
After applying all your solutions, I used below command and finally it worked
docker run -it --runtime nvidia --privileged -p 8000:8000 -v /home/archana/neuralet/:/repo neuralet/x86_64:applications-smart-distancing

Glad you got it working.
You should not need the --privileged option if you pass gpus through. You can even run with the --user flag if you prefer.
https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities
--gpus all is for x86 and old nvidia-docker versions. --runtime nvidia is for Tegra.

@mhejrati Please notice that the latest-py3 tensorflow image doesn't contain CUDA and uses CPU only. I suggest replacing it with latest-gpu-py3.
https://github.com/neuralet/neuralet/blob/8b1d6fb811225dcdf4485074c1897741445e6d5c/applications/smart-distancing/Dockerfile-x86#L1


bug(Material): "Project name is required" or 'Path "undefined" does not exist' errors when installing @angular/material

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
I have a project which contains several projects, Angular 17, created with:

ng new ng-mfe-app-starter --create-application false --package-manager yarn

I added some projects in it:

ng g app shell --style scss --ssr false
ng g app mfe1 --style scss --ssr false

Now I want to install @angular/material, so I first tried:

ng add @angular/material@latest

But I get the following error message in the end:
✔ Packages installed successfully.
Project name is required.

"Project name is required" is displayed in red in the terminal.
So I tried like so:

ng add @angular/material@latest --project mfe1

But I get the following error message in the end:
✔ Packages installed successfully.
Path "undefined" does not exist.

"Path "undefined" does not exist" is displayed in red in the terminal.
I don't know what could be wrong and what is missing, I would like some help to understand how to properly install Angular Material in such a project.
Reproduction
StackBlitz link:
Steps to reproduce:
1.
2.
Expected Behavior
Angular Material is installed and configured without any error.
Actual Behavior
An error message is displayed after installing angular material, no configuration file is generated
Environment

Angular: 17.2.0
CDK/Material: 17.2.1
Browser(s):
Operating System (e.g. Windows, macOS, Ubuntu): Windows

I just tried the steps from the issue description and it worked fine. It's hard to tell what might be going on, but my best guess is that you may have an older version of the CLI installed globally. You can check your global version by cding to a non-CLI directory and running ng version.

The package @angular/material@latest will be installed and executed.
Would you like to proceed? Yes
✔ Packages successfully installed.
? Choose a prebuilt theme name, or "custom" for a custom theme: Indigo/Pink        [ Preview: https://material.angular.io?theme=indigo-pink ]
? Set up global Angular Material typography styles? Yes
? Include the Angular animations module? Include and enable animations
UPDATE package.json (1115 bytes)
✔ Packages installed successfully.
UPDATE projects/mfe1/src/app/app.config.ts (338 bytes)
UPDATE angular.json (5904 bytes)
UPDATE projects/mfe1/src/index.html (513 bytes)
UPDATE projects/mfe1/src/styles.scss (181 bytes)

Hi, actually, I understood why, it's because in my project, prior to install @angular/material, I installed and set up Native Federation on each of the projects.
In that case, the setup of Material fails, probably because Native Federation modifies the angular.json and the main.ts file in each project.
Example of project set up before installing angular Material:
https://github.com/alaindeurveilher/ng-mfe-app-starter/tree/starter-routing
(for instance, the content of main.ts is moved to bootstrap.ts, and the architecture in the angular.json is arranged differently).
So I don't know who's responsibility it is then to handle the use case, @angular or @angular-architects.
In the meantime, I had to configure everything manually:
(https://github.com/alaindeurveilher/ng-mfe-app-starter/tree/with-material?tab=readme-ov-file#adding-angular-material)

update the app.config.ts file manually to add the provider for animations
update the index.html file manually to add the stylesheet references and the typography
update the styles.scss manually too
update the angular.json manually to add the used theme .scss

Looks like the problem was that the CLI utility we use to include the animations module wasn’t able to find the main module and was throwing an error. I’ve sent a fix so the process isn’t interrupted, but you can also work around it by selecting that animations should not be added.


[1.20.2] Can't connect to any servers

An internal error occurs when I connect to any server. Only mods installed are EMI and Fabric API.
Log: https://mclo.gs/njoeM5e

Having this issue too, using Modrinth app

Deobfuscated: class net.minecraft.world.item.crafting.RecipeHolder cannot be cast to class net.minecraft.world.item.crafting.Recipe (Mojmap)

I have the same issue, but the output is a little different

Client disconnected with reason: Internal Exception: io.netty.handler.codec.DecoderException: java.lang.ClassCastException: class net.minecraft.class_8786 cannot be cast to class net.minecraft.class_1860 (net.minecraft.class_8786 and net.minecraft.class_1860 are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @52aa2946)

i have the same issue.

Note: This happens because readRecipe returns RecipeEntry now, but the callback info still refers to Recipe.
https://github.com/emilyploszaj/emi/blob/7576bd8b6c4221ea5632caa14c129fd832fb5bec/fabric/src/main/java/dev/emi/emi/mixin/SynchronizeRecipesS2CPacketMixin.java#L18-L20

oh I was wondering where I touched recipe networking, thanks for figuring it out juuxel

Fixed in 1.0.22


Click on leaflet-popup-tip-container propagates on map and not on underlying object

I've an app that creates a circleMarker at the very point where the user clicks on.
A popup is bind to the circleMarker
When clicking on the circleMarker the popup opens (with the tail pointing in the circle, exactly at where the user clicked). And that's good.
Now, with the popup opened, by clicking again within the very same circleMarker area there is an unpredictable behaviour:

if the pointer is on on popup tail or at its left/right (i.e. on  leaflet-popup-tip-container) the popup closes but  the event is then propagated to the map: another circleMarker is created.
if the pointer is just below  leaflet-popup-tip-container, the popup closes and reopens .

No.2 would be the expected behaviour since the click is anyway within the original circlemarker.
I tried to add an extra on click event on the circleMarker but I still get behaviour no.1, i.e. the click goes to the map and not on the object.
Using leaflet 0.7.7

note, what I described looks like what is mentioned in the "a side note" section of #2880

Looks like this issue can be closed now?

It looks that the issue is still the case in 1.70..


Expose generic OpenShift routes for KServe InferenceServices

Description
With https://github.com/opendatahub-io/odh-model-controller/issues/59 we had implemented a hot fix by exposing predictor URL directly to user but to provide proper fix we need to implement a generic openshift route for kserve inference service.
How Has This Been Tested?

Create a new cluster
Setup the cluster with below Installation step
https://github.com/opendatahub-io/caikit-tgis-serving/blob/main/demo/kserve/install-manual.md
Before executing Step 11, specify custom manifests

apiVersion: dscinitialization.opendatahub.io/v1alpha1
kind: DSCInitialization
metadata:
  name: example
spec:
  manifestsUri: https://github.com/vaibhavjainwiz/odh-manifests/tarball/generic_route

Apply Step 11.
Deploy/validate a Kserve model with below Step.
https://github.com/opendatahub-io/caikit-tgis-serving/blob/main/demo/kserve/deploy-remove.md

If everything work as mentioned in above step then we are good to go :)
Expected behavior
A new route should be created in istio-system namespace with name same as InferenceService. If new route is created then we are good to go :)
Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

I am testing this PR but I have a couple of questions.

what images should be used for this test?
when I followed your test steps, it deployed quay.io/opendatahub/odh-model-controller:stable
I don't think it is your test image for this PR.
What is the expected result from these test steps?
Where should I check? Route?

what images should be used for this test?
when I followed your test steps, it deployed quay.io/opendatahub/odh-model-controller:stable
To test this PR you need to use odh-model-controller image created by openshift-ci for this corresponding PR.
quay.io/opendatahub/odh-model-controller:pr-84
I am not sure how we could provide overriden value of odh-model-controller image through v2 operator. @Jooho Could you please with this configuration.

What is the expected result from these test steps?
Where should I check? Route?
With this PR, new more generic route would be created in istio-system namespace which should be use to query model.

On my local, I follow following step for testing :

Install the Kserve controller using odh operator
Remove ODH operator
Set deployment replicas of odh-model-controller to 0
Run odh-model-controller from local in debug mode.

To support testing for reviewer, I had created a image of odh-model-controller from local and push it in quay.io.
I had also updated the image reference in odh-manifest repo so if deploy their cluster with https://github.com/vaibhavjainwiz/odh-manifests/tarball/generic_route in DSCInitialization then everything should work.

@Jooho
I had added Expected behavior section in Issue Description.

/test

@israel-hdez I had the unit testcases. Could you please review.

/retest

I tested. So far, looks good, with some issues:

It seems RBAC is missing in this PR. After installing and creating an ISVC I got spec.host: Forbidden: you do not have permission to set the host field of the route, which I fixed by modifying the Role to add something like this: Route's new admission routes/custom-host doesn't work for legacy API openshift/origin#14904 (comment).

I remember this RBAC would need to go in some kubebuilder comments, to let it generate them for you. I don't know how to do this.

Similar permission denied error when trying to delete the ISVC and, thus, trying to delete the route.

Strange these RBAC are already present in code. You should not see this error. I will debug it more.
https://github.com/opendatahub-io/odh-model-controller/blob/bf310d9baf0160cd020aaf0ec8ec737ba105d8e7/main.go#L68
https://github.com/opendatahub-io/odh-model-controller/blob/8ccb4ccc560d82e78950c646104812a2e599d6bd/config/rbac/role.yaml#L135

Name conflict. Having two ISVCs with same name on different namespaces, will lead to a conflict in the route.

I updated route name to include isvc.Name + isvc.Namespace so that It would not cause.

Schema mismatch: The ISVC can state that protocol is plain HTTP, while the route will be created for HTTPS.

Perhaps for our demo/sample setup, this is error config on KServe side (i.e. is config error on my testing). Yet, I think we want to honor the schema in the ISVC, just in case some user wants to use plain HTTP.
Are you talking about below config?
https://github.com/opendatahub-io/kserve/blob/1529b712ae536286fe939e7b6ad426305bf168f1/config/configmap/inferenceservice.yaml#L452

Strange these RBAC are already present in code. You should not see this error. I will debug it more.
https://github.com/opendatahub-io/odh-model-controller/blob/bf310d9baf0160cd020aaf0ec8ec737ba105d8e7/main.go#L68
https://github.com/opendatahub-io/odh-model-controller/blob/8ccb4ccc560d82e78950c646104812a2e599d6bd/config/rbac/role.yaml#L135

Yes, some RBAC is there. Although, it is missing delete privileges.
It is also missing the privilege to set custom hosts, which is a different resource.

Schema mismatch: The ISVC can state that protocol is plain HTTP, while the route will be created for HTTPS.

Perhaps for our demo/sample setup, this is error config on KServe side (i.e. is config error on my testing). Yet, I think we want to honor the schema in the ISVC, just in case some user wants to use plain HTTP.

Are you talking about below config? https://github.com/opendatahub-io/kserve/blob/1529b712ae536286fe939e7b6ad426305bf168f1/config/configmap/inferenceservice.yaml#L452

Yes. That configuration is reflected in the ISVC. So, you don't need to look at the ConfigMap. Just check the schema set in the ISVC.

@israel-hdez I had incoporated all review comments. Could you please review again.
I had made the change in odh-model-controller to honor user specified url scheme but some change are also required in kserve as well because url in InferenceService status is set by KServe controller itself. I will create a seperate ticket in KServe to fix it.

/lgtm


standard units and macros

Can Xplace move standard units and macros simultaneously in layout? If yes, how should it be done?

I hope you can provide documentation to help

Could you please tell me which benchmarks you use?

ispd2005

ISPD 2005 is a standard cell placement contest benchmark.
I suggest using the existing MMS benchmark to conduct your experiments.
MMS benchmark is modified from the original ISPD 2005/2006 benchmarks with movable macros and fixed IOPin.

ISPD 2005 is a standard cell placement contest benchmark. Please follow the ISPD 2005 benchmark specification and free all macros.
You can also try another public benchmark named MMS, MMS is modified from ISPD 2005 with movable macros and fixed IOPin. But note that we have not tested Xplace on MMS so far, so some unknown problems may happen.

Thank you very much

Can you share  MMS benchmak, do not know is that regional problems,? I can't from http://www.public.iastate.edu/~zijunyan/. download corresponding data.

Why did I make the macro in the.pl file in ispd2005 moveable, but the layout display macro is still fixed？

Quite busy recently.
Please git checkout to main branch, and pull the latest commit 8e7c817f46471101658fa6f57ff1f36fda5071a6 . This commit includes mms dataset, macro legalizer, and mixed-size mode.
You can download the mms dataset by using ./data/download_data.sh, and try mixed-size mode with the following command.
python main.py --dataset mms --run_all True --mixed_size True

Thank you very much for your reply in spite of your busy schedule. I wish you a happy life and thank you again

@huichengyu I will close the issue if there is no other problem regarding mixed-size placement.

Thank you,there is no other problem

Regarding mixed size placement, adaptec2 crashes due to too many macro duplications to legalize mixed, and it seems that adaptec4 also has problems running

@huichengyu Please make sure you use the latest commit and use the correct input parameters. The mixed-size mode works correctly on my side.
Here I attach the log of adaptec2:
[   3.448] Command line: python main.py --dataset mms --design_name adaptec2 --mixed_size True
[   3.448] log file at result/2024-06-28-16:45:21/log/test.log
[   3.448]
[   3.448] dataset_root: data/raw
[   3.448] dataset: mms
[   3.448] design_name: adaptec2
[   3.449] custom_path:
[   3.449] custom_json:
[   3.449] given_solution:
[   3.449] load_from_raw: True
[   3.449] run_all: False
[   3.449] seed: 0
[   3.449] gpu: 0
[   3.449] num_threads: 20
[   3.449] deterministic: True
[   3.449] global_placement: True
[   3.449] lr: 0.01
[   3.449] inner_iter: 10000
[   3.449] wa_coeff: 4.0
[   3.449] num_bin_x: 512
[   3.449] num_bin_y: 512
[   3.449] density_weight: 8e-05
[   3.449] density_weight_coef: 1.05
[   3.449] target_density: 1.0
[   3.449] use_filler: True
[   3.449] noise_ratio: 0.025
[   3.449] ignore_net_degree: 100
[   3.449] use_eplace_nesterov: True
[   3.449] clamp_node: True
[   3.449] use_precond: True
[   3.449] stop_overflow: 0.07
[   3.449] enable_skip_update: True
[   3.449] enable_sample_force: True
[   3.450] mixed_size: True
[   3.450] use_cell_inflate: False
[   3.450] min_area_inc: 0.01
[   3.450] use_route_force: False
[   3.450] route_freq: 1000
[   3.450] num_route_iter: 400
[   3.450] route_weight: 0
[   3.450] congest_weight: 0
[   3.450] pseudo_weight: 0
[   3.450] visualize_cgmap: False
[   3.450] legalization: True
[   3.450] detail_placement: True
[   3.450] dp_engine: default
[   3.450] eval_by_external: False
[   3.450] eval_engine: ntuplace4dr
[   3.450] final_route_eval: False
[   3.450] log_freq: 100
[   3.450] verbose_cpp_log: False
[   3.450] cpp_log_level: 2
[   3.450] result_dir: result
[   3.450] exp_id: 2024-06-28-16:45:21
[   3.450] log_dir: log
[   3.450] log_name: test.log
[   3.450] eval_dir: eval
[   3.450] draw_placement: False
[   3.450] write_placement: True
[   3.450] write_global_placement: False
[   3.451] output_dir: output
[   3.451] output_prefix: placement
[   3.451]
[   3.532] =================
[   6.712] Design Info:
benchmark: mms
design_name: adaptec2
bookshelf_variety: ispd2005
aux: data/raw/mms/adaptec2/adaptec2.aux
[   6.712] loading from original benchmark...
[  13.251] Start place mms/adaptec2
[  13.251] Use Nesterov optimizer!
[  13.445]
===================
#nodes = 255023, #nets = 266009, #pins = 1069482
#Mov = 254584, #Fix = 439, #IOPin = 0, #Blkg = 0
#ConnMov = 254584, #FloatMov = 0, #ConnFix = 439, #FloatFix = 0, #ConnIOPin = 0, #FloatIOPin = 0
#Macros = 127, #MovMacros = 127, #FixMacros = 0
Core Info [0.0, 14054.0, 0.0, 14040.0]
Site Width = 100, Row Height = 1200
#Bins = (1024, 1024), UnitLen = (13.72461, 13.71094)
target density = 1.00
===================
[  13.445] PlaceData(mms/adaptec2, device=cuda:0, die_info=[4], die_ll=[2], die_ur=[2], hpwl_scale=[2], hyperedge_index=[2, 1069482], hyperedge_list=[1069482], hyperedge_list_end=[266009], is_macro=[255023], is_mov_macro=[255023], net_mask=[266009], net_to_num_pins=[266009], node2pin_index=[2, 1069482], node2pin_list=[1069482], node2pin_list_end=[255023], node_area=[255023, 1], node_id2region_id=[255023], node_lpos=[255023, 2], node_pos=[255023, 2], node_size=[255023, 2], node_special_type=[255023], node_to_num_pins=[255023, 1], pin_id2net_id=[1069482], pin_id2node_id=[1069482], pin_rel_cpos=[1069482, 2], pin_rel_lpos=[1069482, 2], pin_size=[1069482, 2], region_boxes=[1, 4], region_boxes_end=[1], regions=[1], unit_len=[2])
[  13.446] [(0, 254584, 'Mov'), (254584, 254584, 'FloatMov'), (254584, 255023, 'Fix'), (255023, 255023, 'IOPin'), (255023, 255023, 'Blkg'), (255023, 255023, 'FloatIOPin'), (255023, 255023, 'FloatFix')]
[  13.480] #Fillers: 351330 Filler size: (1.0313e+01, 1.2000e+01)
[  13.480] DieArea: 1.973E+08 FixArea: 0.000E+00 (0.0%) PlaceableArea: 1.973E+08 (100.0%) MovArea: 1.538E+08 (78.0%) FillerArea: 4.348E+07 (22.0%) MovMacroArea: 1.202E+08 (60.9%) MovStdCellArea: 3.364E+07 (17.0%)
[  13.554] start gp
[  13.597] iter: 0 | masked_hpwl: 3.91E+07 overflow: 0.8160 obj: 2.9607E+07 density_weight: 1.0869E-09 wa_coeff: 1.0974E+03
[  15.124] iter: 100 | masked_hpwl: 2.65E+07 overflow: 0.6728 obj: 1.6873E+07 density_weight: 1.2675E-07 wa_coeff: 2.0570E+02
[  16.541] iter: 200 | masked_hpwl: 2.67E+07 overflow: 0.5381 obj: 1.9649E+07 density_weight: 1.1737E-05 wa_coeff: 1.0324E+02
[  18.094] iter: 300 | masked_hpwl: 4.07E+07 overflow: 0.3613 obj: 3.4145E+07 density_weight: 2.1773E-04 wa_coeff: 4.1797E+01
[  19.691] iter: 400 | masked_hpwl: 5.79E+07 overflow: 0.2770 obj: 5.1526E+07 density_weight: 2.5188E-03 wa_coeff: 2.7148E+01
[  21.356] iter: 500 | masked_hpwl: 6.93E+07 overflow: 0.2016 obj: 6.6119E+07 density_weight: 2.9581E-02 wa_coeff: 1.8458E+01
[  22.835] Find best solution (type 1 HPWL driven) masked_hpwl: 7.0923E+07 overflow: 0.1329
[  22.847] After Mixed-GP, best solution eval, exact HPWL: 7.102068E+07 exact Overflow: 0.0977
[  22.926] Finish setup database. #siteX: 14054 #siteY: 1170
[  22.926] Start running Macro Legalization... #Macros: 127, #MovMacros: 127.
[  27.692] Use cbc to solve LP. TimeLimit = 20s.
[  27.692] Start macro_legalization_mix...
[  28.475] Status: Optimal, Total Displacement of MacroLegalization = 33564.00
[  28.979] Use cbc to solve LP. TimeLimit = 20s.
[  28.979] Start macro_legalization_xy...
[  29.739] X Status: Optimal, DisplaceX = 29618.00 | Y Status: Optimal, DisplaceY = 2096.00 | Total Displacement = 31714.00
Macro 6 and Macro 28 Overlap.
Macro 6 and Macro 54 Overlap.
Macro 95 and Macro 112 Overlap.
[  29.743] Use cbc to solve LP. TimeLimit = 40s.
[  29.744] Start macro_legalization_xy...
[  30.447] X Status: Optimal, DisplaceX = 2600.00 | Y Status: Optimal, DisplaceY = 0.00 | Total Displacement = 2600.00
[  30.451] Macro Legalization Success. Select macro legalization [mix]. Displacement = 33564.00
[  30.460] Check Pass in Macro Legalization
[  30.466] ***** Finish Macro Legalization, HPWL: 7.259550E+07 Time: 7.5397 *****
[  30.480] Reset optimizer...
[  30.488] Re-run std cell placement with fixed macros.
[  30.488] iter: 582 | masked_hpwl: 7.10E+07 overflow: 0.0977 obj: 7.3027E+07 density_weight: 3.4926E-08 wa_coeff: 1.0974E+03
[  30.551] iter: 600 | masked_hpwl: 6.27E+07 overflow: 0.9245 obj: 2.7746E+07 density_weight: 3.8761E-08 wa_coeff: 7.6862E+02
[  30.783] iter: 700 | masked_hpwl: 5.84E+07 overflow: 0.8355 obj: 2.6314E+07 density_weight: 9.5353E-07 wa_coeff: 4.7300E+02
[  31.005] iter: 800 | masked_hpwl: 5.81E+07 overflow: 0.8109 obj: 2.7460E+07 density_weight: 5.2227E-05 wa_coeff: 4.1699E+02
[  31.220] iter: 900 | masked_hpwl: 6.74E+07 overflow: 0.6926 obj: 3.7979E+07 density_weight: 1.8924E-03 wa_coeff: 2.2768E+02
[  31.426] iter: 1000 | masked_hpwl: 7.03E+07 overflow: 0.5697 obj: 4.9484E+07 density_weight: 1.0943E-02 wa_coeff: 1.2139E+02
[  31.633] iter: 1100 | masked_hpwl: 7.11E+07 overflow: 0.4900 obj: 5.5942E+07 density_weight: 3.1055E-02 wa_coeff: 8.1063E+01
[  31.832] iter: 1200 | masked_hpwl: 7.19E+07 overflow: 0.4027 obj: 6.1522E+07 density_weight: 8.4677E-02 wa_coeff: 5.2073E+01
[  32.055] iter: 1300 | masked_hpwl: 7.43E+07 overflow: 0.1437 obj: 7.1160E+07 density_weight: 3.2722E+00 wa_coeff: 1.3725E+01
[  32.246] iter: 1376 | masked_hpwl: 7.50E+07 overflow: 0.0514 obj: 7.3404E+07 density_weight: 6.1845E+01 wa_coeff: 8.5598E+00
[  32.246] Find best solution (type 1 HPWL driven) masked_hpwl: 7.4520E+07 overflow: 0.0695
[  32.247] GP Stop! #Iters 1376 masked_hpwl: 7.452037E+07 overflow: 0.0695 GP Time: 18.6929s perIterTime: 0.013575s
[  32.248] After GP, best solution eval, exact HPWL: 7.461746E+07 exact Overflow: 0.1311
[  33.287] ------- Start DP -------
[  33.340] Finish setup database. #siteX: 14054 #siteY: 1170
[  33.340] Start running Macro Legalization... #Macros: 127, #MovMacros: 127.
[  33.344] Check Pass in Macro Legalization
[  33.347] ***** Finish Macro Legalization, HPWL: 7.461746E+07 Time: 0.0069 *****
[  33.348] Utilization: 0.78
[  33.348] Start running Greedy Legalization...
[  33.906] Start checking...
[  33.952] Finish Greedy Legalization. Time: 0.6039
[  33.952] Start running Abacus Legalization...
[  34.008] Start checking...
[  34.046] Finish Abacus Legalization. Time: 0.0946
[  34.053] ***** Finish Legalization, HPWL: 8.095685E+07 Time: 0.7054 *****
[  34.055] Finish setup database. #siteX: 14054 #siteY: 1170
[  34.065] Start running K-Reorder 1...
[  34.949] Start checking...
[  34.993] Check Pass. Commit solution...
[  34.994] ***** Finish K-Reorder 1, HPWL: 8.051718E+07 Time: 0.9288 *****
[  34.995] Start running Independent Set Match...
[  37.323] Start checking...
[  37.366] Check Pass. Commit solution...
[  37.367] ***** Finish Independent Set Match, HPWL: 7.937061E+07 Time: 2.3729 *****
[  37.368] Start running Global Swap...
[  37.793] Start checking...
[  37.832] Check Pass. Commit solution...
[  37.833] ***** Finish Global Swap, HPWL: 7.919119E+07 Time: 0.4648 *****
[  37.833] Start running K-Reorder 2...
[  38.664] Start checking...
[  38.704] Check Pass. Commit solution...
[  38.706] ***** Finish K-Reorder 2, HPWL: 7.905344E+07 Time: 0.8729 *****
[  38.706] Finish detailed placement. LG Time: 0.7661 DP Time: 4.6526 LG+DP Time: 5.4187
[  38.706] After DP, HPWL: 7.905344E+07
[  39.354] Write placement in result/2024-06-28-16:45:21/output/placement_adaptec2_dp. Time: 0.6473
[  40.650] GP Time: 18.6929 LG Time: 0.7661 DP Time: 4.6526 Total Place Time: 33.938

and the log of adaptec4:
[   2.527] Command line: python main.py --dataset mms --design_name adaptec4 --mixed_size True
[   2.527] log file at result/2024-06-28-16:46:48/log/test.log
[   2.527]
[   2.527] dataset_root: data/raw
[   2.528] dataset: mms
[   2.528] design_name: adaptec4
[   2.528] custom_path:
[   2.528] custom_json:
[   2.528] given_solution:
[   2.528] load_from_raw: True
[   2.528] run_all: False
[   2.528] seed: 0
[   2.528] gpu: 0
[   2.528] num_threads: 20
[   2.528] deterministic: True
[   2.528] global_placement: True
[   2.528] lr: 0.01
[   2.528] inner_iter: 10000
[   2.528] wa_coeff: 4.0
[   2.528] num_bin_x: 512
[   2.528] num_bin_y: 512
[   2.528] density_weight: 8e-05
[   2.528] density_weight_coef: 1.05
[   2.528] target_density: 1.0
[   2.528] use_filler: True
[   2.528] noise_ratio: 0.025
[   2.528] ignore_net_degree: 100
[   2.528] use_eplace_nesterov: True
[   2.528] clamp_node: True
[   2.528] use_precond: True
[   2.529] stop_overflow: 0.07
[   2.529] enable_skip_update: True
[   2.529] enable_sample_force: True
[   2.529] mixed_size: True
[   2.529] use_cell_inflate: False
[   2.529] min_area_inc: 0.01
[   2.529] use_route_force: False
[   2.529] route_freq: 1000
[   2.529] num_route_iter: 400
[   2.529] route_weight: 0
[   2.529] congest_weight: 0
[   2.529] pseudo_weight: 0
[   2.529] visualize_cgmap: False
[   2.529] legalization: True
[   2.529] detail_placement: True
[   2.529] dp_engine: default
[   2.529] eval_by_external: False
[   2.529] eval_engine: ntuplace4dr
[   2.529] final_route_eval: False
[   2.529] log_freq: 100
[   2.529] verbose_cpp_log: False
[   2.529] cpp_log_level: 2
[   2.529] result_dir: result
[   2.529] exp_id: 2024-06-28-16:46:48
[   2.529] log_dir: log
[   2.529] log_name: test.log
[   2.529] eval_dir: eval
[   2.530] draw_placement: False
[   2.530] write_placement: True
[   2.530] write_global_placement: False
[   2.530] output_dir: output
[   2.530] output_prefix: placement
[   2.530]
[   2.615] =================
[   5.243] Design Info:
benchmark: mms
design_name: adaptec4
bookshelf_variety: ispd2005
aux: data/raw/mms/adaptec4/adaptec4.aux
[   5.243] loading from original benchmark...
[  18.099] Start place mms/adaptec4
[  18.099] Use Nesterov optimizer!
[  18.176]
===================
#nodes = 496045, #nets = 515951, #pins = 1912420
#Mov = 494785, #Fix = 1260, #IOPin = 0, #Blkg = 0
#ConnMov = 494785, #FloatMov = 0, #ConnFix = 1260, #FloatFix = 0, #ConnIOPin = 0, #FloatIOPin = 0
#Macros = 69, #MovMacros = 69, #FixMacros = 0
Core Info [0.0, 23190.0, 0.0, 23328.0]
Site Width = 100, Row Height = 1200
#Bins = (1024, 1024), UnitLen = (22.64648, 22.78125)
target density = 1.00
===================
[  18.177] PlaceData(mms/adaptec4, device=cuda:0, die_info=[4], die_ll=[2], die_ur=[2], hpwl_scale=[2], hyperedge_index=[2, 1912420], hyperedge_list=[1912420], hyperedge_list_end=[515951], is_macro=[496045], is_mov_macro=[496045], net_mask=[515951], net_to_num_pins=[515951], node2pin_index=[2, 1912420], node2pin_list=[1912420], node2pin_list_end=[496045], node_area=[496045, 1], node_id2region_id=[496045], node_lpos=[496045, 2], node_pos=[496045, 2], node_size=[496045, 2], node_special_type=[496045], node_to_num_pins=[496045, 1], pin_id2net_id=[1912420], pin_id2node_id=[1912420], pin_rel_cpos=[1912420, 2], pin_rel_lpos=[1912420, 2], pin_size=[1912420, 2], region_boxes=[1, 4], region_boxes_end=[1], regions=[1], unit_len=[2])
[  18.177] [(0, 494785, 'Mov'), (494785, 494785, 'FloatMov'), (494785, 496045, 'Fix'), (496045, 496045, 'IOPin'), (496045, 496045, 'Blkg'), (496045, 496045, 'FloatIOPin'), (496045, 496045, 'FloatFix')]
[  18.200] #Fillers: 2584905 Filler size: (1.2186e+01, 1.2000e+01)
[  18.200] DieArea: 5.410E+08 FixArea: 0.000E+00 (0.0%) PlaceableArea: 5.410E+08 (100.0%) MovArea: 1.630E+08 (30.1%) FillerArea: 3.780E+08 (69.9%) MovMacroArea: 8.755E+07 (16.2%) MovStdCellArea: 7.544E+07 (13.9%)
[  18.232] start gp
[  18.249] iter: 0 | masked_hpwl: 1.18E+08 overflow: 0.8996 obj: 7.6544E+07 density_weight: 2.7090E-09 wa_coeff: 1.8171E+03
[  18.929] iter: 100 | masked_hpwl: 1.10E+08 overflow: 0.7534 obj: 4.9817E+07 density_weight: 6.4678E-08 wa_coeff: 5.1453E+02
[  19.572] iter: 200 | masked_hpwl: 1.11E+08 overflow: 0.7161 obj: 5.2023E+07 density_weight: 4.5830E-06 wa_coeff: 4.2511E+02
[  20.217] iter: 300 | masked_hpwl: 1.12E+08 overflow: 0.6451 obj: 6.0907E+07 density_weight: 1.0384E-04 wa_coeff: 2.9560E+02
[  20.879] iter: 400 | masked_hpwl: 1.26E+08 overflow: 0.4773 obj: 8.8579E+07 density_weight: 1.2256E-03 wa_coeff: 1.2528E+02
[  21.528] iter: 500 | masked_hpwl: 1.36E+08 overflow: 0.4024 obj: 1.0479E+08 density_weight: 5.9786E-03 wa_coeff: 8.5405E+01
[  22.187] iter: 600 | masked_hpwl: 1.38E+08 overflow: 0.2885 obj: 1.1686E+08 density_weight: 4.7986E-02 wa_coeff: 4.7675E+01
[  22.940] iter: 700 | masked_hpwl: 1.38E+08 overflow: 0.1738 obj: 1.2669E+08 density_weight: 3.9768E-01 wa_coeff: 2.6510E+01
[  23.229] WARNING Divergence detected: overflow plateau (0.0011 < 0.0014)
[  23.365] Find best solution (type 1 HPWL driven) masked_hpwl: 1.3606E+08 overflow: 0.1267
[  23.370] After Mixed-GP, best solution eval, exact HPWL: 1.361962E+08 exact Overflow: 0.1383
[  23.483] Finish setup database. #siteX: 23190 #siteY: 1944
[  23.483] Start running Macro Legalization... #Macros: 69, #MovMacros: 69.
[  23.826] Use cbc to solve LP. TimeLimit = 20s.
[  23.826] Start macro_legalization_mix...
[  24.206] Status: Optimal, Total Displacement of MacroLegalization = 984.00
[  24.222] Use cbc to solve LP. TimeLimit = 20s.
[  24.222] Start macro_legalization_xy...
[  24.778] X Status: Optimal, DisplaceX = 242.00 | Y Status: Optimal, DisplaceY = 742.00 | Total Displacement = 984.00
[  24.781] Macro Legalization Success. Select macro legalization [mix]. Displacement = 984.00
[  24.788] Check Pass in Macro Legalization
[  24.796] ***** Finish Macro Legalization, HPWL: 1.363392E+08 Time: 1.3134 *****
[  24.801] Reset optimizer...
[  24.811] Re-run std cell placement with fixed macros.
[  24.811] iter: 750 | masked_hpwl: 1.36E+08 overflow: 0.1383 obj: 1.2965E+08 density_weight: 9.4394E-08 wa_coeff: 1.8171E+03
[  25.141] iter: 800 | masked_hpwl: 1.49E+08 overflow: 0.7841 obj: 6.3912E+07 density_weight: 1.5433E-07 wa_coeff: 6.0792E+02
[  25.638] iter: 900 | masked_hpwl: 1.35E+08 overflow: 0.6893 obj: 6.7046E+07 density_weight: 7.5028E-06 wa_coeff: 3.7057E+02
[  26.136] iter: 1000 | masked_hpwl: 1.39E+08 overflow: 0.6811 obj: 7.0457E+07 density_weight: 2.3062E-04 wa_coeff: 3.5538E+02
[  26.601] iter: 1100 | masked_hpwl: 1.53E+08 overflow: 0.6374 obj: 8.0827E+07 density_weight: 1.5013E-03 wa_coeff: 2.8421E+02
[  27.053] iter: 1200 | masked_hpwl: 1.44E+08 overflow: 0.5853 obj: 8.5571E+07 density_weight: 5.6388E-03 wa_coeff: 2.1810E+02
[  27.501] iter: 1300 | masked_hpwl: 1.39E+08 overflow: 0.5342 obj: 9.1317E+07 density_weight: 1.5917E-02 wa_coeff: 1.6764E+02
[  27.946] iter: 1400 | masked_hpwl: 1.38E+08 overflow: 0.4765 obj: 9.8345E+07 density_weight: 4.0884E-02 wa_coeff: 1.2513E+02
[  28.400] iter: 1500 | masked_hpwl: 1.37E+08 overflow: 0.2949 obj: 1.1760E+08 density_weight: 4.5687E-01 wa_coeff: 4.9249E+01
[  28.929] iter: 1600 | masked_hpwl: 1.37E+08 overflow: 0.0828 obj: 1.2997E+08 density_weight: 1.5308E+01 wa_coeff: 1.6640E+01
[  29.137] iter: 1638 | masked_hpwl: 1.37E+08 overflow: 0.0439 obj: 1.3140E+08 density_weight: 5.9980E+01 wa_coeff: 1.3634E+01
[  29.137] Find best solution (type 2 OVFL driven) masked_hpwl: 1.3742E+08 overflow: 0.0439
[  29.138] GP Stop! #Iters 1638 masked_hpwl: 1.374206E+08 overflow: 0.0439 GP Time: 10.9061s perIterTime: 0.006654s
[  29.139] After GP, best solution eval, exact HPWL: 1.375575E+08 exact Overflow: 0.1169
[  30.050] ------- Start DP -------
[  30.114] Finish setup database. #siteX: 23190 #siteY: 1944
[  30.114] Start running Macro Legalization... #Macros: 69, #MovMacros: 69.
[  30.118] Check Pass in Macro Legalization
[  30.120] ***** Finish Macro Legalization, HPWL: 1.375575E+08 Time: 0.0066 *****
[  30.121] Utilization: 0.30
[  30.121] Start running Greedy Legalization...
[  31.240] Start checking...
[  31.324] Finish Greedy Legalization. Time: 1.2030
[  31.324] Start running Abacus Legalization...
[  31.429] Start checking...
[  31.507] Finish Abacus Legalization. Time: 0.1831
[  31.512] ***** Finish Legalization, HPWL: 1.441864E+08 Time: 1.3914 *****
[  31.514] Finish setup database. #siteX: 23190 #siteY: 1944
[  31.524] Start running K-Reorder 1...
[  32.512] Start checking...
[  32.591] Check Pass. Commit solution...
[  32.592] ***** Finish K-Reorder 1, HPWL: 1.432520E+08 Time: 1.0679 *****
[  32.592] Start running Independent Set Match...
[  34.908] Start checking...
[  34.985] Check Pass. Commit solution...
[  34.986] ***** Finish Independent Set Match, HPWL: 1.421832E+08 Time: 2.3939 *****
[  34.986] Start running Global Swap...
[  35.816] Start checking...
[  35.891] Check Pass. Commit solution...
[  35.892] ***** Finish Global Swap, HPWL: 1.417981E+08 Time: 0.9055 *****
[  35.892] Start running K-Reorder 2...
[  36.845] Start checking...
[  36.917] Check Pass. Commit solution...
[  36.918] ***** Finish K-Reorder 2, HPWL: 1.416216E+08 Time: 1.0262 *****
[  36.918] Finish detailed placement. LG Time: 1.4627 DP Time: 5.4059 LG+DP Time: 6.8686
[  36.919] After DP, HPWL: 1.416216E+08
[  38.150] Write placement in result/2024-06-28-16:46:48/output/placement_adaptec4_dp. Time: 1.2308
[  40.752] GP Time: 10.9061 LG Time: 1.4627 DP Time: 5.4059 Total Place Time: 35.5103

Please check the code and the log by yourself.

I was using the ispd2005 benchmark, I released their macro

[   3.898] dataset: ispd2005
[   3.898] design_name: adaptec2
[   3.898] custom_path:
[   3.898] custom_json:
[   3.898] load_from_raw: True
[   3.898] run_all: False
[   3.899] seed: 0
[   3.899] gpu: 1
[   3.899] num_threads: 20
[   3.899] deterministic: True
[   3.899] lr: 0.01
[   3.899] inner_iter: 10000
[   3.899] wa_coeff: 4.0
[   3.899] num_bin_x: 512
[   3.899] num_bin_y: 512
[   3.899] density_weight: 8e-05
[   3.899] density_weight_coef: 1.05
[   3.899] target_density: 1.0
[   3.899] use_filler: True
[   3.899] noise_ratio: 0.025
[   3.899] ignore_net_degree: 100
[   3.900] use_eplace_nesterov: True
[   3.900] clamp_node: True
[   3.900] use_precond: True
[   3.900] stop_overflow: 0.07
[   3.900] enable_skip_update: True
[   3.900] enable_sample_force: True
[   3.900] mixed_size: True
[   3.900] use_cell_inflate: False
[   3.900] min_area_inc: 0.01
[   3.900] use_route_force: False
[   3.900] route_freq: 1000
[   3.900] num_route_iter: 400
[   3.900] route_weight: 0
[   3.900] congest_weight: 0
[   3.900] pseudo_weight: 0
[   3.901] visualize_cgmap: False
[   3.901] legalization: True
[   3.901] detail_placement: True
[   3.901] dp_engine: default
[   3.901] eval_by_external: False
[   3.901] eval_engine: ntuplace4dr
[   3.901] final_route_eval: False
[   3.901] log_freq: 100
[   3.901] verbose_cpp_log: False
[   3.901] cpp_log_level: 2
[   3.901] result_dir: result
[   3.901] exp_id: 2024-06-05-14:20:58
[   3.901] log_dir: log
[   3.901] log_name: test.log
[   3.901] eval_dir: eval
[   3.901] draw_placement: True
[   3.902] write_placement: True
[   3.902] write_global_placement: True
[   3.902] output_dir: output
[   3.902] output_prefix: placement
[   3.902]
[   4.004] =================
[   5.686] Design Info:
benchmark: ispd2005
design_name: adaptec2
bookshelf_variety: ispd2005
aux: data/raw/ispd2005/adaptec2/adaptec2.aux
[   5.686] loading from original benchmark...
[  10.917] Start place ispd2005/adaptec2
[  10.917] Use Nesterov optimizer!
[  10.957]
#nodes = 255023, #nets = 266009, #pins = 1069482
#Mov = 255023, #Fix = 0, #IOPin = 0, #Blkg = 0
#ConnMov = 255023, #FloatMov = 0, #ConnFix = 0, #FloatFix = 0, #ConnIOPin = 0, #FloatIOPin = 0
#Macros = 543, #MovMacros = 543, #FixMacros = 0
Core Info [0.0, 14054.0, 0.0, 14040.0]
Site Width = 100, Row Height = 1200
#Bins = (1024, 1024), UnitLen = (13.72461, 13.71094)
target density = 1.00
[  10.957] PlaceData(ispd2005/adaptec2, device=cuda:1, die_info=[4], die_ll=[2], die_ur=[2], hpwl_scale=[2], hyperedge_index=[2, 1069482], hyperedge_list=[1069482], hyperedge_list_end=[266009], is_macro=[255023], is_mov_macro=[255023], net_mask=[266009], net_to_num_pins=[266009], node2pin_index=[2, 1069482], node2pin_list=[1069482], node2pin_list_end=[255023], node_area=[255023, 1], node_id2region_id=[255023], node_lpos=[255023, 2], node_pos=[255023, 2], node_size=[255023, 2], node_special_type=[255023], node_to_num_pins=[255023, 1], pin_id2net_id=[1069482], pin_id2node_id=[1069482], pin_rel_cpos=[1069482, 2], pin_rel_lpos=[1069482, 2], pin_size=[1069482, 2], region_boxes=[1, 4], region_boxes_end=[1], regions=[1], unit_len=[2])
[  10.965] [(0, 255023, 'Mov'), (255023, 255023, 'FloatMov'), (255023, 255023, 'Fix'), (255023, 255023, 'IOPin'), (255023, 255023, 'Blkg'), (255023, 255023, 'FloatIOPin'), (255023, 255023, 'FloatFix')]
[  10.967] #Fillers: 135442 Filler size: (1.0314e+01, 1.2000e+01)
[  10.967] DieArea: 1.973E+08 FixArea: 0.000E+00 (0.0%) PlaceableArea: 1.973E+08 (100.0%) MovArea: 1.806E+08 (91.5%) FillerArea: 1.676E+07 (8.5%) MovMacroArea: 1.465E+08 (74.2%) MovStdCellArea: 3.406E+07 (17.3%)
[  11.053] start gp
[  11.099] iter: 0 | masked_hpwl: 1.21E+07 overflow: 0.8433 obj: 2.6114E+06 density_weight: 8.9569E-10 wa_coeff: 1.0974E+03
[  14.936] iter: 100 | masked_hpwl: 8.94E+06 overflow: 0.8350 obj: 1.3743E+06 density_weight: 1.1378E-07 wa_coeff: 4.7186E+02
[  18.579] iter: 200 | masked_hpwl: 1.41E+07 overflow: 0.6850 obj: 4.4317E+06 density_weight: 7.3045E-06 wa_coeff: 2.1897E+02
[  22.186] iter: 300 | masked_hpwl: 2.81E+07 overflow: 0.4534 obj: 2.0772E+07 density_weight: 1.3554E-04 wa_coeff: 6.6943E+01
[  25.238] iter: 400 | masked_hpwl: 4.49E+07 overflow: 0.3250 obj: 3.8162E+07 density_weight: 1.7231E-03 wa_coeff: 3.4708E+01
[  28.244] iter: 500 | masked_hpwl: 5.87E+07 overflow: 0.2198 obj: 5.5159E+07 density_weight: 2.7252E-02 wa_coeff: 2.0256E+01
[  31.367] Find best solution (type 1 HPWL driven) masked_hpwl: 6.5670E+07 overflow: 0.1258
[  32.869] After Mixed-GP, best solution eval, exact HPWL: 6.5778E+07 exact Overflow: 0.0718
[  32.893] Finish setup database. #siteX: 14054 #siteY: 1170
[  32.893] Start running Macro Legalization... #Macros: 543, #MovMacros: 543.
[  32.909] Too many macros, try pruned graph version first.
[  34.148] ERROR Cannot fix longest path after 5 trials.
[  34.154] Use cbc to solve LP. TimeLimit = 20s.
[  34.155] Start macro_legalization_mix...
[  35.368] Status: Infeasible, Total Displacement of MacroLegalization = 281890.00
[  35.414] Use cbc to solve LP. TimeLimit = 20s.
[  35.414] Start macro_legalization_xy...
[  38.804] X Status: Optimal, DisplaceX = 163891.00 | Y Status: Optimal, DisplaceY = 174990.00 | Total Displacement = 338881.00
[  38.812] Use cbc to solve LP. TimeLimit = 40s.
[  38.812] Start macro_legalization_xy...
[  42.064] X Status: Optimal, DisplaceX = 42983.00 | Y Status: Optimal, DisplaceY = 67335.00 | Total Displacement = 110318.00
[  42.073] Use cbc to solve LP. TimeLimit = 60s.
[  42.073] Start macro_legalization_xy...
[  44.408] X Status: Optimal, DisplaceX = 15193.00 | Y Status: Optimal, DisplaceY = 4537.00 | Total Displacement = 19730.00
[  47.713] ERROR Cannot fix longest path after 5 trials.
[  47.723] Use cbc to solve LP. TimeLimit = 20s.
[  47.723] Start macro_legalization_mix...
[  53.660] Status: Infeasible, Total Displacement of MacroLegalization = 103202.00
[  53.841] Use cbc to solve LP. TimeLimit = 20s.
[  53.841] Start macro_legalization_xy...
[  59.173] ERROR Cannot fix longest path after 5 trials.
[  61.992] X Status: Infeasible, DisplaceX = 90980.00 | Y Status: Infeasible, DisplaceY = 81689.00 | Total Displacement = 172669.00
[  62.035] Use cbc to solve LP. TimeLimit = 40s.
[  62.035] Start macro_legalization_xy...
[  66.554] ERROR Cannot fix longest path after 5 trials.

It seems that the legalizer encounters some errors after legalization.
Could you please help us fix these cases in the src/core/macro_legalization.py?

I do not know if this is the solution, I will macro_lg_handler inside the max times increased to 10, can be successfully completed layout, but the effect may be worse (increase hpwl), choose a suitable max times can solve this problem

I'm sorry, I made a mistake. That didn't work


Add a mechanism to propagate tunnel metadata to client/servers

When a user application accepts or initiates a connection, it should be able to somehow access metadata from ztunnel about the connection. At minimum, this would be the identity of the peer.
This can be used in applications to do app-specific logic based on identity, or even in a "sandwhich" case where we run ztunnel alongside Envoy

Is it something like metadata exchange?

So ztunnel would fetch metadata from control plane directly, then I do not understand the tunnel here,.

related to https://github.com/istio/istio/issues/42033


Invariant Violation: Minified React error #321; when trying to use styled-components as dependency on published npm package

Environment
Here is the codesanbox of the bug:
https://codesandbox.io/s/agitated-mirzakhani-q0jmv?fontsize=14
Reproduction
I'm creating a calendar component and publishing it via NPM as a package.
This is the current code of the component, it works on storibooks on the same repositoy perfectly:
https://github.com/alesanchezr/bc-react-calendar
But when I try to use it on another project (importing it thru NPM) I get an error: Invariant Violation: Minified React error #321;
If I remove styled components from the library and I use css-in-js instead, everything works fine and the calendar is rendered.
The bug may be occuring because styled-components needs to remove react from the bundle and add it as peer dependency instead.
Expected Behavior
I expected styled components to work when used on npm packages.
Actual Behavior
styled-components only work when used in the same project.

@alesanchezr this is not styled-component bug, this is bug of react:
https://reactjs.org/docs/error-decoder.html/?invariant=321
In you case I think this is because of it:
3. You might have more than one copy of React in the same app

And in your package.json React is one of dependency:
https://github.com/alesanchezr/bc-react-calendar/blob/0f199f01b2ecdc5f09d8eef4ad99ff3deb654b3f/package.json#L57-L65
I suppose move it to peerDependencies section should help

我也遇到了相同的问题，请问如何解决呢？

For me, it has worked to move to peerDepencies the packages of the npm library. In my other project, to leave the packages as dependencies.

@lapongua, How did you solve the issue, can you elobarate? As I also getting this error in case of material ui components are being used and nothing helped me to solve the problem.

Im having the same issue here!
I have react, react-dom and styled-components in my peerDependencies and devDependencies.
The following is my webpack.config.js:
const path = require('path');

module.exports = {
  mode: 'production',
  entry: './src/index.ts',
  devtool: 'source-map',
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'index.js',
    libraryTarget: 'umd',
    library: 'theme'
  },
  externals: [
    'react',
    'react-dom',
    'styled-components',
  ],
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
        options: {
          configFile: 'tsconfig.json'
        },
        exclude: /node_modules/,
      }
    ]
  },
  resolve: {
    extensions: ['.ts', '.tsx', '.js']
  }
};

I'm trying to build a UI library using styled-components, the error happens when I import a component made with styled-components otherwise it doesn't happens.
Thanks in advance!

Hello, experiencing exact same issue with version 5.1.0

@estebanborai How are you importing from that library? You may still have duplication if you’re using yarn link or npm link to test it.
The easiest way to find out whether you have any duplication is to check manually whether your project and library resolve different versions of the packages by checking both’s node_modules structure in the target project

I think that is important to point out that Im using lerna to link the local package that I made for UI components with styled-components.
I'm linking my packages using the following command
lerna add <package> --scoped=<target-package>

I found a way around this using webpack alias configuration as follows:
// some webpack configuration
  alias: {
    'styled-components': path.resolve(__dirname, 'node_modules', 'styled-components'),
    // ...
  }
// ...

I made sure that no styled-components directory exists inside my linked package's node_modules directory. Anyway, I think this is more related to how lerna configure linked packages?
Thanks for your advice @kitten!

There is seem to be some breaking changes between 4.4.1 and version 5 and up
dependencies on app which imports styled component lib

"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-decorators": "^7.8.3",
"@babel/plugin-transform-runtime": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/preset-react": "7.9.4",
"@babel/runtime": "^7.9.6",
"babel-loader": "^8.1.0",
"clean-webpack-plugin": "^3.0.0",
"css-loader": "^3.5.3",
"cssnano": "^4.1.10",
"file-loader": "^5.1.0",
"html-webpack-plugin": "^4.3.0",
"mini-css-extract-plugin": "^0.9.0",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"webpack": "^4.20.2",
"webpack-cli": "^3.1.1",
"webpack-dev-server": "^3.1.11"
},
"dependencies": {
"axios": "^0.19.2",
"core-js": "^3.6.5",
"mobx": "4.15.4",
"mobx-react": "^6.2.2",
"react": "^16.13.1",
"react-dom": "^16.13.1"
}

dependencies of styled components lib

"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/preset-env": "7.9.6",
"@babel/preset-react": "^7.0.0",
"babel-loader": "8.1.0",
"babel-plugin-styled-components": "^1.10.7",
"css-loader": "3.5.3",
"file-loader": "^6.0.0",
"react": "16.8",
"react-dom": "16.8",
"react-is": "16.8",
"sass": "^1.26.5",
"sass-loader": "8.0.2",
"style-loader": "^0.23.1",
"url-loader": "^1.1.2",
"webpack": "^4.28.3",
"webpack-cli": "^3.2.0"
},
"dependencies": {
"styled-components": "4.4.1"
}

when I bump styled component version to 5, doesn't matter what version, it get the following error:
styledComponent.js?a47f:9 Uncaught Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

My problem was that I was creating an npm package library and as @mmarkelov said in his solution, moving to peerDependencies react and react-dom and also (because I am using webpack) you should add them as externals (https://webpack.js.org/configuration/externals/) this way webpack would not bundle them while making a build

@sandinosaso This was my problem, your solution worked for me.

Hi there,
For me this error message : Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
Was caused by the extension : Loom – Screen Recorder & Screen Capture
When disabling it, the error disappeared

The above solution resolved my error.
I just disabled the loom extension and the error was gone.
Thank you @DylanP97


2 SPARE PIXELS under specific circumstances

I observed 2 spare pixels along the top of _ratesLayer under these specific circumstances:
i_res = (250, 122)
layout = Layout(i_res, packingMode='v', rotation=Rotation.LEFT)
_ratesLayer = layout.addLayer()
_time = layout.addLayer()
_attrs = _ratesLayer.addLayer(packingBias=1)
_rates = _ratesLayer.addLayer(packingBias=3)

Image result:

Turns out that the slot size calculation introduces a rounding error.
Major overhaul in calculation order was required - from:

padding
spacer - add padding to spacer
slotSize
topLeft
to:
spacer
slotSize - record error margin
padding
add padding to spacer
topLeft


Add promise support

Bump version to 0.7.0
Bump engines.node to 0.12.0 (lowest native Promise support)
Add .idea to .gitignore
spawnGPG results returned in same format as input

All changes should be backwards compatible.

What do we need to do in order to merge this?


Strange behavior with query params since version 9

For example
searchUsers = (
    data: UserFilter,
    query?: { page?: number; size?: number; sort?: string[] },
    params: RequestParams = {},
  ) =>...

These params are generated on version 6 or 9.
But on version 9 the final query is generated like this:
/api/me/organization/users/search?page=0&size=25&sort=test&sort=desc

Instead of:
/api/me/organization/users/search?page=0&size=25&sort=test,desc

I don't know why but sort is splitted into 2 query params, for us sort is the same param with property,asc/desc.

up, same issue with 9.2.0


edit

@amanmehta-maniac A PR (Pull-request) must have a good title and description. Without that I will not be accepting it. You can edit both of them to reflect what you changed. The title should be like this
ADD: New Para
IMPROVE: Grammar
FIX: Something Specific
Tag me here when you have improved this PR.


Both QueryExecutionTree and Operations have diverging variable/column mappings

Working on the cache I again stumbled upon the mess that both QueryExecutionTree keeps its own _variableColumnMap even though it owns the Operation which also has this mapping. I think we should only have this once and if need be forward.

This has been fixed a while ago already.


Sources not exported in 0.17b1

I am testing 0.17b1.
It is not exporting sources for some reason.
****************************************************************************************************

       _____                          _____           _                      _______          _
      / ____|                        |  __ \         | |                    |__   __|        | |
     | |     ___  _ __   __ _ _ __   | |__) |_ _  ___| | ____ _  __ _  ___     | | ___   ___ | |___
     | |    / _ \| '_ \ / _` | '_ \  |  ___/ _` |/ __| |/ / _` |/ _` |/ _ \    | |/ _ \ / _ \| / __|
     | |___| (_) | | | | (_| | | | | | |  | (_| | (__|   < (_| | (_| |  __/    | | (_) | (_) | \__ \
      \_____\___/|_| |_|\__,_|_| |_| |_|   \__,_|\___|_|\_\__,_|\__, |\___|    |_|\___/ \___/|_|___/
                                                                 __/ |
                                                                |___/

Version: 0.17.0.b1
 >> Branch detected
   >> master

[local_vars]
+---------------------------+---------------+
| Configuration             | value         |
|---------------------------+---------------|
| username                  | idbdevbuild   |
| stable_branch_pattern     | release/*     |
| specified_channel         | testing       |
| stable_channel            | stable        |
| channel                   | testing       |
| partial_reference         | core-ull/1.53 |
| use_docker                | False         |
| sudo_command              | sudo          |
| exclude_vcvars_precommand | False         |
| args                      |               |
| upload_only_when_stable   | False         |
| skip_check_credentials    | False         |
| docker_32_images          | False         |
| conan_pip_package         |               |
| vs10_x86_64_enabled       | False         |
| builds_in_current_page    | []            |
+---------------------------+---------------+

 >> Running builds...
Page: 1/1
+--------------+--------+
| build_type   | arch   |
|--------------+--------|
| Debug        | x86_64 |
| Release      | x86_64 |
+--------------+--------+

 >> Remote for URL 'http://usdlvart01:8081/artifactory/api/conan/conan-idb-falcon' already exist, keeping the current remote and its name

****************************************************************************************************
+------------------+
| Profile          |
|------------------|
| include(default) |
|                  |
| [settings]       |
| arch=x86_64      |
| build_type=Debug |
| [options]        |
|                  |
| [env]            |
|                  |
| [build_requires] |
+------------------+

[conan_create]

 >> Calling 'conan create'

core-ull/1.53@idbdevbuild/testing: Exporting package recipe
core-ull/1.53@idbdevbuild/testing: A new conanfile.py version was exported
core-ull/1.53@idbdevbuild/testing: Folder: /userhome/epederson/.conan/data/core-ull/1.53/idbdevbuild/testing/export
core-ull/1.53@idbdevbuild/testing: Package recipe modified in export, forcing source folder removal
core-ull/1.53@idbdevbuild/testing: Use the --keep-source, -k option to skip it
core-ull/1.53@idbdevbuild/testing: Removing 'source' folder, this can take a while for big packages
core-ull/1.53@idbdevbuild/testing (test package): Installing /devusers/epederson/falcon-conan/core-ull/test_package/conanfile.py
Requirements
    common/<IP_ADDRESS>@idbdevbuild/testing from 'conan-idb-falcon'
    core-ull/1.53@idbdevbuild/testing from local cache
    jsoncpp/1.8.4@theirix/stable from 'conan-idb-third-party'
    spdlog/<IP_ADDRESS>@idbdevbuild/stable from 'conan-idb-third-party'
Packages
    common/<IP_ADDRESS>@idbdevbuild/testing:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    core-ull/1.53@idbdevbuild/testing:6acd03cb6ae7abf37321ddf66a5e30b952e48856
    jsoncpp/1.8.4@theirix/stable:3d8c85c54f7fd2f6b48e52cc88af1bf81a02a93d
    spdlog/<IP_ADDRESS>@idbdevbuild/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9

common/<IP_ADDRESS>@idbdevbuild/testing: Already installed!
jsoncpp/1.8.4@theirix/stable: Already installed!
spdlog/<IP_ADDRESS>@idbdevbuild/stable: Already installed!
core-ull/1.53@idbdevbuild/testing: WARN: Forced build from source
core-ull/1.53@idbdevbuild/testing: Building your package in /userhome/epederson/.conan/data/core-ull/1.53/idbdevbuild/testing/build/6acd03cb6ae7abf37321ddf66a5e30b952e48856
core-ull/1.53@idbdevbuild/testing: Configuring sources in /userhome/epederson/.conan/data/core-ull/1.53/idbdevbuild/testing/source
core-ull/1.53@idbdevbuild/testing: Copying sources to build folder
core-ull/1.53@idbdevbuild/testing: Generator cmake created conanbuildinfo.cmake
core-ull/1.53@idbdevbuild/testing: Calling build()
CMake Error: The source directory "/userhome/epederson/.conan/data/core-ull/1.53/idbdevbuild/testing/build/6acd03cb6ae7abf37321ddf66a5e30b952e48856" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

No files are exported and thus CMake fails because there is not a CMakeLists.txt.
Normally conan create exports a bunch of files:
conan create . core-ull/1.53@idbdevbuild/testing
core-ull/1.53@idbdevbuild/testing: Exporting package recipe
core-ull/1.53@idbdevbuild/testing export: Copied 14 '.cpp' files
core-ull/1.53@idbdevbuild/testing export: Copied 22 '.h' files
core-ull/1.53@idbdevbuild/testing export: Copied 1 '.txt' files: CMakeLists.txt
core-ull/1.53@idbdevbuild/testing export: Copied 1 '.cmake' files: falcon-base.cmake
core-ull/1.53@idbdevbuild/testing export: Copied 1 '.json' files: .package-meta.json
core-ull/1.53@idbdevbuild/testing: A new conanfile.py version was exported

Please, try with beta2, I introduced a test and it seems ok, but would be nice if you can try it:
https://github.com/conan-io/conan-package-tools/releases/tag/0.17.0-beta2

The same thing is happening for 0.17b2.

Is this some public repo I could take a look to reproduce it?

Ok, I think I reproduced it

Sorry, false alarm. The files are exported correctly. I would need some more info to be able to reproduce it. Could I see the conanfile or something?

Sure thing -
Main conanfile:
from environment.conan.base_conan import BaseConan

class FalconConan(BaseConan):
    name = 'core-ull'
    description = 'Falcon core-ull library'

    # Dependencies
    requires = (
        'common/<IP_ADDRESS>@idbdevbuild/testing',
        'jsoncpp/1.8.4@theirix/stable',
        'spdlog/<IP_ADDRESS>@idbdevbuild/stable'
    )

base_conan.py:
import os
from conans import ConanFile, CMake

from environment.conan import recipe_util, constants
from environment.conan.package_meta import PACKAGE_META_FILENAME, PackageMeta

BUILD_CONFIGURE_DEFINITIONS_ATTR = 'build_configure_definitions'
CONFIGURE_ADDITIONAL_ATTR = 'configure_additional'
HEADER_ONLY_ATTR = 'header_only'
PACKAGE_ADDITIONAL_ATTR = 'package_info_additional'
REQUIREMENTS_ADDITIONAL_ATTR = 'requirements_additional'

def all_exports_sources():
    if recipe_util.is_exporting():
        falcon_base_cmake = os.path.join(PackageMeta.relative_to_top(), 'cmake', constants.BASE_CMAKE_NAME)
        return '*.cpp', '*.h', '*.hpp', 'CMakeLists.txt', falcon_base_cmake, \
               'meta', PACKAGE_META_FILENAME, '!test/*', '!test_package/*'
    return ()

def all_exports():
    if recipe_util.is_exporting():
        base_conan = os.path.join(PackageMeta.relative_to_top(), 'environment', 'conan', 'base_conan.py')
        return base_conan,
    return ()

class BaseConan(ConanFile):
    exports = all_exports()
    exports_sources = all_exports_sources()
    url = 'http://bitbucket-idb:7990/scm/deal/falcon.git'
    license = 'Copyright (c) 2018 Tradeweb'
    settings = 'os', 'compiler', 'build_type', 'arch'
    generators = 'cmake'

    def build(self):
        if self.is_header_only():
            return
        cmake = CMake(self)
        definitions = {'PACKAGING': 'ON'}
        if hasattr(self, BUILD_CONFIGURE_DEFINITIONS_ATTR):
            getattr(self, BUILD_CONFIGURE_DEFINITIONS_ATTR)(definitions)
        cmake.configure(defs=definitions)
        cmake.build()

    def package(self):
        self.copy('*.h',   dst='include/%s' % PackageMeta.source_directory(), src='.')
        self.copy('*.a',   dst='lib', keep_path=False)
        self.copy('*.lib', dst='lib', keep_path=False)

    def configure(self):
        getattr(self, CONFIGURE_ADDITIONAL_ATTR, lambda: None)()

    def package_info(self):
        if not self.is_header_only():
            self.cpp_info.libs = [self.name]
        getattr(self, PACKAGE_ADDITIONAL_ATTR, lambda: None)()

    def requirements(self):
        getattr(self, REQUIREMENTS_ADDITIONAL_ATTR, lambda: None)()

    def package_id(self):
        if self.is_header_only():
            self.info.header_only()

    def is_header_only(self):
        header_only = hasattr(self, HEADER_ONLY_ATTR) and getattr(self, HEADER_ONLY_ATTR)
        return header_only

Wow. What is that recipe_util doing? Probably is related with that. The changed thing is that we are using now the internal python API instead of calling the Conan command line

def is_exporting():
    """Returns true if an export is taking place"""
    cwd = os.path.realpath(os.curdir)
    exporting = len(sys.argv) > 1 and \
                (sys.argv[1] == 'export' or
                 (sys.argv[1] == 'create' and not  # create and cwd not in conan cache
                 (os.path.join('.conan', 'data') in cwd)))
    # print('CWD: ' + cwd)
    # print('ARGV: ' + ' '.join(sys.argv))
    # print('IS_EXPORTING: ' + str(exporting))
    return exporting

Wow, this is very "original"... I could create an env var during the create if it helps

I'm releasing the beta3 with an env var _CONAN_CREATE_COMMAND_ during the create. Ok? Hope it helps.

Yes, it's a hack!  I think I might be able to get by without this.  I will test and let you know.  Otherwise the environment variable would work.

Released conan_package_tools==0.17.0b3  with the env var.

Thanks!

Ps - I’m not using the env var so if you want to take it out it’s ok with me.

It turns out I need the environment variable after all..  Sorry about that.


[NETBEANS-1144] Recreate predefined_vars.zip

https://issues.apache.org/jira/browse/NETBEANS-1144
Recreate predefined_vars.zip because it is licensed under LGPL-2.1 so far.

Create files from https://secure.php.net/manual/en/reserved.variables.php
The license is CC-BY 3.0 https://secure.php.net/manual/en/copyright.php
CC-BY 3.0 is listed in category-b: https://www.apache.org/legal/resolved.html#category-b

Sorry, will fix predefined_vars-license.txt again. (I've deleted not renamed)

Thanks!


Add club not visible on homepage when not logged in

The landing page shows "Get Started" instead of "Create a Club" when logged-out. When logged-in, the page shows "Create a Club."


feat!: improve the library usage

Hey! 🐻
This is essentially a follow-up to my PR from last year (#22) where I librarified lurk-cli for providing a wider use case. I finally got some time in my hands!
The summary of the changes:

Switch from unmaintained ansi_term dependency to console.

This also fixes some of the ANSI issues that ansi_term has.

Create a style module for customizing the colors.
Improve the Tracer struct to better handle application output with generics

So that the user can specify where to print the summary (e.g. stdout or a file)
This is done by making the struct accepting any type that implements Write

Add the documentation and usage example

P.S. This is breaking for the apps that are already dependent on lurk-cli (which is zero now) but still, it would be nice to treat this as a breaking change and release a new version after this (0.4.0). I would really appreciate it!

For some context, I am building a TUI for analyzing ELF binaries and one of the crucial components is the dynamic analysis feature. I'm utilizing lurk-cli for that (to trace the system calls) and showing a nice summary in a TUI. I'm also open to any suggestions!
See this commit for the implementation in my app.
Demo (see the "dynamic" tab):

And lastly, thank you so much for this awesome project!

Sorry for not following up on this 🙈 Sometimes life gets in the way... I'll try to create a new release soon. Thanks for your awesome contribution!

No worries at all! I also want to follow up with #39 and #40. I'm planning to submit another PR for fixing the clippy lints too.
It would be delightful to have a new release after those! I'm also happy to help co-maintain this crate if you'd be interested in the idea of doing that 🐻

I'd actually love that! I could really use some support! :tada:

Awesome! Feel free to invite me to the repo whenever you have time, I think everything is set up already so I can take care of the PRs and issues & create releases (with your approvals ofc)!
And once again, thanks for the amazing crate!

btw can you also release the new version on crates.io? 🐻

Just sent an invite! The CI should normally take care of the crates.io release but there appears to be some issue that leads to it failing at the moment.

Thank you!
I just created #41 which will probably fix the crates.io issue.

https://crates.io/crates/lurk-cli 🥳 (fixed via #42 & #43)


How show/hide element in V6 using a button.

Question
I'm trying to open a modal following this example here -> https://stackblitz.com/edit/angular-formly-modal-egndbr?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fmodal-input.component.ts
However the modal is not showing after clicking the open button. It seems the onClick changes the flag (emailModal) to true but the modal is not showing. I tried using simple input to show/hide, still not working.
I'm using V6, so I changed hideExpression to expressions: {hide ...}. But still not working. It hides the element when the form loads but doesn't show when clicking in the button.
My schema is nested. I'm using the stepper, with 4 fieldGroups. The last group is where I need this feature.
It seems the hideExpression from the field that has the button to open the modal only fires after keydown/keyup event in the the modal-input field. It doesn't fire when emailModal variable changes value.
I'm using:
Angular 16
Formly 6 / Material
Thanks.

in order to detect emailModal property changes, please use one of the following solution:

Use observable value
Use formState
Manually call detect changes: this.options.detectChanges or this.options.checkExpressions


Radio Support for integers and numbers

Added an example to the numbers examples as well so you can check it out.
This works only if user provided an enum for that integer or number.
This could optionally be added to this pr. Something like this in getAlternativeWidget could check that:
if(
    (schema.type === 'integer' || schema.type === 'integer')
  && widget === 'radio' && !widgetOptions.enumOptions
) {
  throw new Error(`No radio possible without enumOptions`);
}

A very useful addition, thank you. I've deployed the patch to gh-pages, works just fine; test and code look good 👍
I'm torn adding specific checks as you suggest in the description, though if they're extracted to a dedicated, separated function it's probably a very worthy addition.

I'm torn adding specific checks as you suggest in the description, though if they're extracted to a dedicated, separated function it's probably a very worthy addition.

Yeah that needs to go in a seperate function. I can work on it

Do not hesitate to open a new PR/issue with the validation/check that you suggested.

Great, thanks. Will do, some day..

Released in v0.41.0.

\0/


Add .gitignore file

Thanks a lot for making a contribution to SFML! 🙂
Before you create the pull request, we ask you to check the follow boxes. (For small changes not everything needs to ticked, but the more the better!)

[ ] Has this change been discussed on the forum or in an issue before?
[x] Does the code follow the SFML Code Style Guide?
[ ] Have you provided some example/test code for your changes?
[ ] If you have additional steps which need to be performed list them as tasks!

Description
Adds @vittorioromeo's .gitignore file from the master branch.
This PR is related to #1866
Tasks

[ ] Tested on Linux
[ ] Tested on Windows
[x] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

Might also add .idea folder for CLion IDE.

Might also add .idea folder for CLion IDE.

I can add that. Something else I've done to keep my IDE-specific files out of repos is set up a global .gitignore that, in my case, excludes the .vscode directory so I don't have to add that to my .gitignore files. I think in an ideal world each developer would make sure their own IDE's files are never included but I understand why it makes sense to include many IDE's accessory files in our .gitignore file.

SFMLBuildMaster: Build this please.


[TC-553] Queue updates API queues updates on all servers, not just caches

If you use the API to queue updates for a CDN it queues updates for all servers.  It should only queue updates for caches.  This doesn't really cause any harm, but it's not correct and it makes it so that the other components (TR, TM, etc) show up as queued in the UI, which is annoying.
Author: David Neuman
JIRA Link: https://issues.apache.org/jira/browse/TC-553

Maybe to ensure that non-caches always have upd_pending = false, when you queue updates for a cdn, cachegroup, topology or server, first set all non-caches upd_pending = false and then set caches upd_pending = true.

Maybe to ensure that non-caches always have upd_pending = false, when you queue updates for a cdn, cachegroup, topology or server, first set all non-caches upd_pending = false and then set caches upd_pending = true.

there is a challenge with this however. how does one know what is a "cache" and what is not a cache? that needs to be figured out before this can be fixed imo.


Link to Walter, Andrei Action List

<EMAIL_ADDRESS>

Hmm I do understand that you are quite frustrated at the moment, but could you try to let the text sound a bit more neutral? It's pretty harsh at the moment.
Also quite recently (#4128) I tried to put more information into this file (e. g. on how to make a good contribution to Phobos) and it was argued that the wiki is a better place for contributing guides...

I know what you mean, but I think sometimes you have to blunt.
If you find a way to transport the same information as clear as the original in a more friendly was, please post it.

@burner as said I believe this should be part of the moderately new Contributing to Phobos guide and I am still in favor of hosting this guide at the CONTRIBUTING.md.

If you find a way to transport the same information as clear as the original in a more friendly was, please post it.

I gave it a try:

New packages in Phobos
Phobos is the standard library of the D programming language and thus tries to standardize APIs to ease development for many other programmers.
Hence it's great if you want to contribute and make Phobos even better, but there are some important points that you should pay attention too.
Blocking points for additions
In general there are some indications why something fits better to dub than to the standard library:

Low applicability / potential usage (e.g. QR Code generation, Tribune client)
Many valid ways to do something (e.g. UI framework, web server API)
Fast moving targets (e.g. CSS library, Game engine)

The bottom line is that if you want to write an amazing library that touches one of those fields, go ahead!
With dub potential users can easily use your library and if it proves to be very popular, it might even find it's way to Phobos ;-)
Finding good points to contribute
If you help Phobos a good starting point to find meaningful tasks is the issue tracker.
Furthermore the D Wishlist contains more abstract, high-level goals.
If you want to write new modules for Phobos, we highly encourage you to stay in touch with the community early on.
Apart from receiving vital feedback and avoiding duplicate efforts, the approval of the community is needed for new additions.
In particular you should stay in contact with Andrei as he can give amazing advises for your design and since he is in charge of managing Phobos he also has absolute veto rights against new additions, which would be quite frustrating after a lot of work.

If you just could make veto right bold so people will see it I would be real happy with the text.
Thank you for the effort

If you just could make veto right bold so people will see it I would be real happy with the text.
Thank you for the effort

Feel free to directly apply it (and other nitpicks) to your PR ;-)
As Github doesn't allow to copy Markdown intuitively, here is the raw version.

sorry for the noise I was stupid when posting the request

@WalterBright please have a look at the update

Even that seems overly ominous to state in the readme, though.

As mentioned CONTRIBUTING.md might be a better spot ;-)

ping @andralex @WalterBright

LGTM sans comments


How to set date on datepicker control for a UWP application

Hi,
I am trying to set date on a datepicker control for a UWP application with below C# code:
Approach #1 :
WindowsElement datepicker =  AppDriver.FindElementByClassName("DatePicker");
datepicker.SendKeys("03/05/2013");
AppDriver.FindElementByAccessibilityId("AcceptButton").Click();
Approach #2:
Tried setting values for date, month and year individually:
WindowsElement day = AppDriver.FindElementByXPath("//attribute::[contains(., 'Day')]/..");
day.SendKeys("20");
WindowsElement month = AppDriver.FindElementByXPath("//attribute::[contains(., 'Month')]/..");
month.SendKeys("2");
WindowsElement year = AppDriver.FindElementByXPath("//attribute::*[contains(., 'Year')]/..");
year.SendKeys("2014");
AppDriver.FindElementByAccessibilityId("AcceptButton").Click();
Both the code snippets above does not throw any exception but fails to set date on the control. Is sendkeys() the right API to set date on datepicker or should it be done differently?
Is setting datepicker value for UWP supported by winappdriver at this point?
Thanks,
Nidhi

Hello @ernidhi20,
Please check out our sample test below that highlight all interaction with UWP DatePicker control.
https://github.com/Microsoft/WinAppDriver/blob/v1.0-RC/Tests/UWPControls/DatePicker.cs
In summary, below is how you can set the value.
// Set the year to 2000
datePickerFlyout = session.FindElementByAccessibilityId("DatePickerFlyoutPresenter");
var yearLoopingSelector = datePickerFlyout.FindElementByAccessibilityId("YearLoopingSelector");
var currentYear = yearLoopingSelector.Text;
yearLoopingSelector.FindElementByName("2000").Click();

System.Threading.Thread.Sleep(1000);
Assert.AreNotEqual(currentYear, yearLoopingSelector.Text);

And below is how to retrieve the value of individual selector.
var datePickerFlyout = session.FindElementByAccessibilityId("DatePickerFlyoutPresenter");
Assert.AreNotEqual(string.Empty, datePickerFlyout.FindElementByAccessibilityId("DayLoopingSelector").Text);
Assert.AreNotEqual(string.Empty, datePickerFlyout.FindElementByAccessibilityId("MonthLoopingSelector").Text);

hello I am automating a Win32 application. I am having trouble selecting the date from calendar control. I tried the following:
session.FindElementByAccessibilityId("dtpFromDate").SendKeys("23/Apr/2010");
it doesn't throw any error but it also doesn't select the date. Can some one please help? It doesn't have a unique selector.
The test that you mention are for UWP applications so they are not helpful at all. Does winAppDriver support picking date of Win32 applications?
my inspect and calendar screenshots are below:
https://www.screencast.com/t/ihCXKN2hRSV


Having issues reproducing DetPro

Hi! Thanks for your great work!
Following your code and instructions, I'm trying to reproduce the Mask-RCNN results on LVIS. Using the same experiment setting provided in the code on 8 * V100 GPUs, the evaluation results of detpro_20e_ens.py are 11.7/26.7/32.8/26.5 (AP_r/AP_c/AP_f/AP).
I also tried to replace the learned prompts fg_bg_5_10_end_ens.pth with your provided iou_neg5_ens.pth, but the performances are similar - 13.4/26.4/32.7/26.6.
I wonder if there should be any modification in the current code in order to reproduce the given results. Besides, is there any difference between the mentioned two learned prompts above?
Thanks for your kindful reply in advance!

Any follow-up under this thread?


review/reclassification "immunologic disease" (includes NTR, renaming,...)

This issue is part of the November 2021 Mondo workshop here

[x] Rename: 'primary immunodeficiency disease' to “inborn error of immunity” (IEI)

[ ] New term: immunologic disease
- this term include "too much" or "too little" immune response

[ ] Child: "Inborn error of immunity"
- imply monogenic
- Could be deficiency (too little)  or too much
- Would also have the parent “Mendelian disease”

[ ] Immune-mediated disease

Note: more review and analysis is needed

This issue requires a more detailed analysis of the immune system disorder branch.
This might become a bigger project.


Create punes-wip-d3d9.json

My request.
Closes #357

Please autoupdate as the version is up.

73693aa
Modified the download URL based on jobid


@iconify-json/logos Package Installed But Encounter "Failed to Load Icon" Error in Command Line During Dev Run

UnoCSS version
0.50.8
Describe the bug
Despite successfully installing the @iconify-json/logos package via pnpm, I'm encountering an error message in my command line stating "[unocss] failed to load icon" when running pnpm run dev. This issue seems unusual as the icons appear to be displayed correctly on the frontend of the application.

Reproduction
Install @iconify-json/logos package via pnpm by running pnpm install @iconify-json/logos
Use a logo from @iconify-json/logos in the application.
Run the application in dev mode by executing pnpm run dev.
Observe the error message in the command line.
System Info

Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

the same problem……
bro, how do you resolve that?

我也遇到过，控制台虽然警告，但页面能正常显示

Not stale, there is still false warning.

We temporarily closed this due to the lack of enough information. We could not identify whether it was a bug or a userland misconfiguration with the given info.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required