CSGMesh only shows Capsule and Spheres

Godot version
3.4
System information
Windows 7, GLES3, 2x Radeon HD8950, 64gb RAM
Issue description
If I want to add a CubeMesh to a CSGMesh I got the following error.
drivers/gles3/rasterizer_storage_gles3.cpp:3927 - Index p_surface = 0 is out of bounds (mesh->surfaces.size() = 0).  servers/visual_server.cpp:1787 - Condition "vertex_data.size() == 0" is true. Returned: Array()  modules/csg/csg_shape.cpp:738 - Condition "arrays.size() == 0" is true. Returned: _post_initialize(new ("") CSGBrush)
(Also on Plane and many others, but Sphere and Capsule works)
Maybe the same as #46610
A colleque tells me that a CSGBox works perfect.
Steps to reproduce

have a 3D Scene open with a CSGMesh as Child or Root.
add a New CubeMesh to the CSGMesh
look at the Console ;) you get an error :P

Minimal reproduction project
No response

Duplicate of #46610


Bleno+Noble

Hello Sandeep,
I am trying to build small demo system on a beaglebone green wireless that has Bluetooth 4.1. Here is my setup.

Application starts in peripheral mode with advt (using bleno).
A central such as phone connects to beaglebone and writes a command via custom characteristics
After processing the command, application starts scanning (using noble and tries to connect to a peripheral.

I am currently getting a command disallowed. As suggested, I am using sudo NOBLE_MULTI_ROLE=1 node .js when starting the app.
If I disconnect the connected central and stop the advertising before I start scanning for peripheral, I am able to connect to the peripheral. But I am not able to start the advertising again after I am finished with the peripheral.
In ideal case, I want to connect to a peripheral in step 3 without scanning as this saves few seconds but I am also not able to do that at the moment. In any case my primary requirement is to able to use bleno and noble together.
I dont know where is the issue and you help is greatly appreciated.
I have attached hcidump for your reference.
Best Regards,
Arun
hci-dump.txt

Hi, Please note that the hci dump i attached is for the step mentioned above. I have not added the hcidump  for the issue where I am not able to restart advertisement after stopping it. I think this scenario does not exists if I am able to advertising always on.

@arunbangari do you have some sample code I can try on my Raspberry Pi 3? It also has a 4.1 Bluetooth adapter ...

Hi Sandeep,
Thanks for the reply. I have now modified my code to use two BLE adapters (one for central and other for peripheral role)  and its working great! Thanks to you for noble and bleno :) .Its working good but I would still like to get it working with single BT adapter if possible.
I will try to create a sample code for you to test by next week if its OK.
BTW, do you have any comments on how to connect to a peripheral without scanning? I saw your comments in some of the post that this is possible but I haven't been able to figure out it how . This is the first time I am trying something with nodejs and my experience in JS is pretty much none.
Really good stuff and thanks for all the help!
Br,Arun

do you have any comments on how to connect to a peripheral without scanning?

This is not something I plan to support, because it would reduce the cross-platform compatibility. On OS X / macOS the CoreBluetooth framework requires you to scan before connecting.

@arunbangari could you be more specific as to how your code uses two BLE adapters?  This is something I'm interested in doing.  My thought is to fork a node process, is this what you have done?

@cscholze like this
NOBLE_HCI_DEVICE_ID=1 BLENO_HCI_DEVICE_ID=0 node <>
You can pass the command line parameters to tell noble/bleno which adapters to use. Its mentioned in the documentation. please check.
Br,Arun

Hello Sandeep,
Sorry for the delay.  Here is the sample code.
noble-bleno-sample.zip
Here is how it is suppose to work.

run the main.js
using nRF connect application scan and connect the peripheral 'BLE TestGatewaty'
once the peripheral is connected, subscribe for notification for characteristic E0E11112B7BB4619826413FAFB29573B
Write the characteristic value of 0x01
Now the gateway shall connect to a peripheral (using noble) mentioned in line # 43 of test-gateway-command-characteristics.js
after the services and characteristics are discovered, gateway disconnects the peripheral and send back the results to phone  via notification.

If I run the above sample with two BLE adapter (NOBLE_HCI_DEVICE_ID=1 BLENO_HCI_DEVICE_ID=0 node main.js
) it works as expected.
but if I use the single BLE adapter (NOBLE_MULTI_ROLE=1 node main.js) i cannot get the services discovered in nRF Connect app after connecting to gateway.
When the noble gets initialized, it get this error in console.
noble.on-stateChange:: state changed: poweredOn
peripheralInitialize:: beno.on-stateChange: statepoweredOn
[Error: Command Disallowed]
PS: my javscript/node.js experience is virtually none, so sample may be poorly written and not optimized.
Thanks for your help and looking forward for any useful tip on how to solve the issue.
Br,Arun

Hi @sandeepmistry , did u have a chance to look at the sample I uploaded? Thanks.
Br,Arun

Hi Arunbangari,
Sorry my question is not related to your topic. I am trying to run a JS project called ble-shepherd.js on BBGW as well, but failed to make it work with noble.
May I know how you make it work on BBGW? I can contact you in private, if don't mind.

Hi, I have the same problem.
When I'm using Bleno and Noble simultaneously I can connect to my device (I override accept event in Bleno program). Unfortunately Noble program show me message: "noble: unknown peripheral 686f5c7a4c3c connected!".
When I send write and read method on characteristics they are changing but I can't discover them.
Of course I set flag "NOBLE_MULTI_ROLE" in my Noble program and my adapter supports Bluetooth 4.1 (Respberry Pi 3).

Hi @gryxon I also get this error but I'm using a bluetooth 4.0 LE device so I guess its to be expected in my case. Have you tried running them in different threads ?
I will try it with an intel Adapter next week, if I get it to work I will report back.

zone-mix.js:3070 noble: unknown peripheral 546b4fd12e7b connected!
noble: unknown peripheral 546b4fd12e7b disconnected!

@elovin I'm sorry for late response. Yes, I have tried running them in different threads.

@sandeepmistry am also getting same issue with Rπ3 , and using bleno and noble together,
when i start advt, immediately other device connects to it and noble message is displayed noble: unknown peripheral <hex id> connected!, with or without NOBLE_MULTI_ROLE=1 its same. please help.
Thanks
Deep Kamal Singh

but if I use the single BLE adapter (NOBLE_MULTI_ROLE=1 node main.js) i cannot get the services discovered in nRF Connect app after connecting to gateway.

there is a fix for that: https://github.com/abandonware/noble/issues/59


fix ckbench shape test failed because parallel merge

query36's shape broken by PR #32186
Proposed changes
Issue Number: close #xxx

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

run buildall


No server certificate verification due to use of urllib2

Crypt client currently uses urllib2 to talk to the server.  As urllib2 does not support SSL certificate verification, it is susceptible to attacks which can intercept the key.

Well this is embarrassing. I changed it to curl on my copy but didn't commit it as I had the intention of moving it over to gurl. That never happened, so I'll package up what I have a commit it.

Fixed in https://github.com/grahamgilbert/Crypt/commit/d4a2f8fe10bac1c6d2a518d46b6aa8f473372d42


use this sample to write grandlarc & rivershell gamemode example

After most of the basic work is completed, you can try to apply the two official gamemode to this template (except filterscript).

grandlarc

I'm not thinking about rivershell for the time being, maybe in the future.


[New Feature]: Adding dark mode functionality

🎮 feature Request
Adding dark mode functionality
Point down the features
feature points
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hi, I would like to work on this issue, can you please assign it to me?

I want to work on the nav section, please assign me this under gssoc level 2
Record
I agree to follow this project's Code of Conduct
I'm a GSSOC'24 contributor
I want to work on this issue

I can work on this issue, please assign it to me under gssoc'24.

Kindly assign me this issue ,I can contribute to this

@harshita1611 @royalrajputayush @Abhay152002 @rajlaxmi03 @Shubhra-Narang  Please raise any other issue, because someone is already working on this issue.
If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created seprate chennals for all projects...
Thank you :)


can use use the sas url instead of using the storagename and storage key when try to do snapshot or delete blob and so on.

can use use the sas url instead of using the storagename and storage key when try to do snapshot or delete blob and so on.

To anyone that has been wanting to use SAS or anonymous containers/blobs: Please have a look at the new functionality that's in for 0.11.0.
http://azure-sdk-for-python.readthedocs.org/en/latest/storage.html
It's not on PyPI yet, but it's in github master branch.  Please let us know if you've tried it.  I'll close this when we release 0.11 to PyPI (next week?).

0.11.0 now on PyPI.


Use JSON Patch not JSON Merge?

JSOn Merge can refuse to merge under some circumstances.
I think one is when a value goes from a string to a dict?

We also use jsondiff library now - pick one library and standise on it!

jsondiff is now gone


better handle float value comparison

Hi @HuanzhiMao,
I just read again your response to the attached issue (which I opened) and I still disagree. I'm commenting here because the attached issue is already closed.
In your response you demonstrate why it's not okay to send a float to an argument that's expecting an int value, but the discussed scenario is the other way around -- sending an int value to a float argument, which I can't think of a reason of why it would be wrong. On top of that, in JSON schema, which is the standard way of representing a function in the API of OpenAI and others, the type used for representing floats is number, which also accepts integers (like 42 in this example in the official documentation.

Hey @danieljannai21,
Sorry that issue was closed. I don't have admin access to re-open it, RIP:/ But you can always open a new follow-up issue :)
Regarding your first concern on why the Python auto-conversion from int to float would not always work:
The TLDR is that you cannot represent every int as float in Python.
Python int objects have infinite/arbitrary precision (it is bounded only by memory). On the other hand, float objects do not have infinite precision; numbers are represented as an exponent and a significant, with the latter building up a number from 53 binary fractions. Thus, there are some int values that cannot be accurately represented by a float object. For example, consider a large int<PHONE_NUMBER>23263820. Note how the value of the last two digits got changed from 20 to 72 after conversion.
>>> x =<PHONE_NUMBER>23263820
>>> type(x)
<class 'int'>
>>> y = float(x)
>>> type(y)
<class 'float'>
>>> print(x)
809880023823263820
>>> print(y)
8.098800238232639e+17
>>> print(format(y, "f"))
809880023823263872.000000

Now, suppose I have the following function (you probably have seen such interest-rate-calculation-function in the BFCL dataset quite a lot haha):
def calculate_compound_interest(principal: float):
    """
    This function calculates the compound interest on a given principal over 10 periods.
    """
    for _ in range(10):
        principal += principal * 0.05
    return principal

Since we are talking about accuracy here, let's use a high-precision version of the above function.
def calculate_high_precision_compound_interest(principal: float):
    """
    This function calculates the compound interest on a given principal over 10 periods, using Python's decimal module for high precision.
    """
    import decimal

    principal = decimal.Decimal(principal)
    rate = decimal.Decimal(0.05)
    for _ in range(10):
        principal += principal * rate
    return principal

The result is below. Sending an int value to a float argument results in an unexpected/wrong value.
>>> large_int_principal =<PHONE_NUMBER>23263820
>>> large_float_principal =<PHONE_NUMBER>23263820.0
>>> print(calculate_high_precision_compound_interest(large_int_principal))
1319209219140100709.664993269
>>> print(calculate_high_precision_compound_interest(large_float_principal))
1319209219140100794.367513861

Now regarding your second concern that the OpenAPI standard allows float in number type:

Our evaluation dataset is not limited to the types defined in OpenAPI. We use the "BFCL Type", which for Python is "boolean", "array", "string", "integer", "float", "tuple", "any", "dict".
For models that accept OpenAPI input schema, the conversion from float to OpenAPI's number is similar to how we handle/convert the type for Java and JavaScript functions (a detailed explanation can be found in #424).
Although the parameter type is the broad number, we specify the detailed type limitation in the parameter description. And thus the model should be capable of realizing such restrictions. The code that implements this is here

Let me know if you have more questions! Happy to discuss this further with you.

Hey @HuanzhiMao,
Thanks for taking the time to answer my concerns.
The problem in your example is that the number was inaccurately the moment it entered a float variable, and by the time it was converted to decimal.Decimal it was already the wrong number. The calculation that started with an int is actually closer to the correct result (which is<PHONE_NUMBER>140100674.793173045685546875 according to this calculator). Regardless, all the examples in the evaluation suit are a lot smaller, so if this is indeed the reason you insist on matching the exact type, I think it would be best to add this type of edge case.

Hey @vandyxiaowei, @danieljannai21 and those who are following this issue,
After careful consideration and extensive internal discussions, we have decided to allow the use of int values for Python parameters expecting float values in BFCL. Here is our reasoning:

Python int is represented as C long (see Python C API documentation). When converting from int to float, Python handles the conversion efficiently, even for large integers, by representing the long as $x \times 2^e$ where $0.5 \leq |x| < 1.0$  and  $e \geq 0 $. This ensures that rounding occurs to 53 significant bits, which means an int would have to be extraordinarily large to pose any problem (refer to the CPython implementation and the special handling in the _PyLong_Frexp function).

Python’s internal handling of comparisons between int and float primarily concerns overflow and loss of precision (see relevant code section). According to the code comment block, this behaviour does not introduce any additional issues beyond those inherent to floating-point arithmetic.

The float parameter values used in BFCL and typical real-life function-calling scenarios are relatively small and well within the limits where conversion issues like overflow or significant precision loss are relevant. Therefore, in practical terms, the potential problems are negligible.

Given these points, we believe that allowing int values for float parameters is a reasonable and safe decision. We appreciate all the discussion and insights from the community. We will update the score on the leaderboard very soon (in a different PR).
Thank you all for your contributions!
Best,
Huanzhi


WAF changes for CE 16

Product Version(s):

WAF changes to CE 16.1
Issue:

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

LGTM
Hold for 3.16.1 release


Going in circles getting bugs

Describe the bug

Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-vgbzie
Steps to reproduce
Just trying to get them to fix the bugs and I've spent 90% of my messages with Bolt just repeating myself and going in circles! It's becoming super frustrating and I don't know what to do. Now I'm getting these errors saying "The message didn't complete it's response" which I have never seen until just now.
Expected behavior
I expected the agent to just finish building this simple voucher redemption system I need for my bar to run a free drink campaign. This should not be hard.
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 130
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 273602666,
  "usedJSHeapSize": 215540870,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = muleman69
Chat ID = 50707b848822

Additional context
I just want to stop going in circles all day, but not sure how to stop this pattern?

I am facing the same issue. Most of the tokens are spent going in circles all day. Repeating the same mistake over and over regardless if you ask Bolt not to do so.


fuzz: improve corpus inclusion, fix first crash found

Codecov Report

Merging #27 into master will increase coverage by 0.11%.
The diff coverage is 28.57%.

@@            Coverage Diff             @@
##           master      #27      +/-   ##
==========================================
+ Coverage   78.85%   78.97%   +0.11%
==========================================
  Files          17       17
  Lines        2327     2326       -1
==========================================
+ Hits         1835     1837       +2
+ Misses        285      282       -3
  Partials      207      207


Should Include GCC High and DoD Required Endpoints

[Enter feedback here]
This page contains the specific requirements for the Migration Manager Agent when using a Government Cloud, however, the Setup page that originally referenced this link only list the required endpoints for the commercial cloud.  It would be helpful to list the correct Government Cloud endpoints on this page so that all the prerequisites are listed in one place.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7ceaa921-290f-7730-e787-2ee040d616ae
Version Independent ID: a0140e51-138c-7cf5-1f6c-ac66a0588a6c
Content: Migration Manager Government Cloud settings - Migrate to SharePoint and OneDrive
Content Source: migration/mm-gov-cloud.md
Service: sharepoint-online
GitHub Login: @JoanneHendrickson
Microsoft Alias: jhendr

Hello @Freddy-Santos
A new article including the required Gov endpoints is now live here https://docs.microsoft.com/en-us/sharepointmigration/mm-prerequisites
Please let me know if that helps your inquiry.
Thanks

Hi @Freddy-Santos  I have updated the Government Cloud settings article to include the Government specific endpoints and included a link directing users to the full list of Prerequisites and required Endpoints article that @get-itips noted.  We want to make sure customers understand they need the full list. Thanks for your suggestion!

Thank you @JoanneHendrickson for the update.  I did not see any other communication until I got to this link.  Perhaps the Anti-SPAM settings quarantined emails from Github without me noticing.  I click on the link above provided https://docs.microsoft.com/en-us/sharepointmigration/mm-prerequisites and noticed that those endpoints are still referencing the Commercial cloud.  I was expecting something to show the .US endpoints.  Am I looking at the wrong link?


[BUG] Secureblue's yafti does not start with Bluefin-dx image

Describe the bug
After installing the bluefin-dx-main-userns-hardened (using rebase) , a yafti screen pops up that is not the same as the one that shows up when ujust rerun-yafti is ran. The welcome messages are different too
Initial Setup Screen:
When ujust rerun-yafti is ran:
To Reproduce
Steps to reproduce the behavior:

Install bluefin-dx-main-userns-hardened using the rebase method in the README
Check Yafti

Expected behavior

Actual behavior

Your current image

rpm-ostree status contents

❯ rpm-ostree status -v
State: idle
warning: Failed to query journal: couldn't find current boot in journal
AutomaticUpdates: stage; rpm-ostreed-automatic.timer: no runs since boot
Deployments:
● ostree-image-signed:docker://ghcr.io/secureblue/bluefin-dx-main-userns-hardened:latest (index: 0)
                  Digest: sha256:5e722d1e3a56204ca90ea3f6848100eb7d733ab14495b0e04d72c671db16eff8
                 Version: 40.20240729.0 (2024-07-29T17:11:39Z)
                  Commit: 36728f4c23af65bb59c9e4f6ab251741abdfa54bd8621f48879b2a8f07fc93b4
                  Staged: no
               StateRoot: default

 ostree-image-signed:docker://ghcr.io/secureblue/bluefin-dx-main-userns-hardened:latest (index: 1)
                  Digest: sha256:5e722d1e3a56204ca90ea3f6848100eb7d733ab14495b0e04d72c671db16eff8
                 Version: 40.20240729.0 (2024-07-29T17:11:39Z)
                  Commit: 36728f4c23af65bb59c9e4f6ab251741abdfa54bd8621f48879b2a8f07fc93b4
               StateRoot: default

If you're using a secureblue Bluefin image
Haven't checked
For all images
Haven't checked

https://github.com/secureblue/secureblue/commit/b31aff0994c0d2d73623e0ab08bdd6e7219e05cc


Oracle: Trying to update a row with CLOB column fails with ORA-00932 error

System information:

Operating system (distribution) and version: Windows Server 2012 R2
DBeaver version: 7.2.1
Additional extensions: None

Connection specification:

Database name and version: Oracle [Oracle Database 19c Standard Edition 2 Release <IP_ADDRESS>.0 - Production]
Driver name: Oracle JDBC driver
Do you use tunnels or proxies (SSH, SOCKS, etc)? : no

Describe the problem you're observing:
Trying to update a row with existing CLOB value, fails with error.
Steps to reproduce, if exist:
Have a table with CLOB and VARCHAR columns. Create new row in table by filling all values. Now try to update VARCHAR column, and save.
Include any warning/errors/backtraces from the logs

Error log entry
eclipse.buildId=unknown
java.version=11.0.5
java.vendor=AdoptOpenJDK
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86_64

org.jkiss.dbeaver.model
Error
Tue Sep 22 22:08:57 CEST 2020
Error : 932, Position : 72, Sql = UPDATE SJSYSADM.SD_DATADICT x
	SET x.DATADICT=:1
	WHERE x.NAME=:2  AND x.DATADICT=:3  AND x.LOAD=:4  AND x.TYPE_RANK=:5  AND x.MODULE_RANK=:6  AND x."RANK"=:7  AND x.PRIORITY IS NULL AND x.MODIFIED=:8  AND x.CULTURE_NAME IS NULL AND x.PRIORI IS NULL AND x.ROWID=:9 , OriginalSql = UPDATE SJSYSADM.SD_DATADICT x
	SET x.DATADICT=?
	WHERE x.NAME=? AND x.DATADICT=? AND x.LOAD=? AND x.TYPE_RANK=? AND x.MODULE_RANK=? AND x."RANK"=? AND x.PRIORITY IS NULL AND x.MODIFIED=? AND x.CULTURE_NAME IS NULL AND x.PRIORI IS NULL AND x.ROWID=?, Error Msg = ORA-00932: inkonsistente datatyper: forventede -, fik CLOB

Thank you for the report.

@creage do you have Primary key in your table "SJSYSADM.SD_DATADICT"?
Or did you choose to use all columns as keys?

If this is the second case, then you cannot do this with the СLOB data type, because it should not be mentioned in the WHERE clause. And then you just need to add a constraint to the table.

@LonwoLonwo no, this table does not have any keys defined. But I've tried to configure the custom unique key excluding CLOB column, and it works fine now!
Thank you!


Don't convert untyped type_parameters to Bottom

https://sorbet.run/#%23 typed%3A true

[1%2C2%2C3].zip(unknown).map do |item%2C type|
  type
  the_previous_was_bottom_so_this_is_dead
end

def unknown
end
Originally reported by @pt-stripe at https://jira.corp.stripe.com/browse/RUBYPLAT-1107

Idk when this changed but this doesn't seem to reproduce anymore.


Add internal cacert to /etc/ssl/certs/java/cacerts

Environment:

Jib version: 2.6.0
Build tool: Gradle 6.7.1
OS: MacOS

Description of the issue:
I'd like a way to add my internal cacert.pem file to the /etc/ssl/certs/java/cacerts file that comes with the base image.
Expected behavior:
I specify some directory containing cacert.pem files, they all get added to the existing /etc/ssl/certs/java/cacerts in the resulting image.
This is distinct from https://github.com/GoogleContainerTools/jib/issues/2240 which merely wants to be able to replace the existing cacerts file.  I want to be able append to it.

Do different jvm base images have different paradigms/protocols for loading cacerts into the TLS subsystem? If they are all the same this should be relatively simple.

Do different jvm base images have different paradigms/protocols for loading cacerts into the TLS subsystem? If they are all the same this should be relatively simple.

This could even be an opinionated default dir within the src/main
Something like src/main/jibAdditionalCACerts/**.pem

This could even be an opinionated default dir within the src/main
Something like src/main/jibAdditionalCACerts/**.pem

So there is the extradirectories option to add any arbitrary file to the container? But we don't have any configuration built specifically for certs

So there is the extradirectories option to add any arbitrary file to the container? But we don't have any configuration built specifically for certs

So there is the extradirectories option to add any arbitrary file to the container? But we don't have any configuration built specifically for certs

How would I extract out the /etc/ssl/certs/java/cacerts file from the base image and then add back my modification to it during the build?

So there is the extradirectories option to add any arbitrary file to the container? But we don't have any configuration built specifically for certs

How would I extract out the /etc/ssl/certs/java/cacerts file from the base image and then add back my modification to it during the build?

Yeah that's the problem, we don't offer mutation of files like that because jib doesn't do a build by execution in the container environment.
Hacky: I wonder if you can just reference that file on your local machine and do the modification all locally and dump it in your container via extraDirectories

Yeah that's the problem, we don't offer mutation of files like that because jib doesn't do a build by execution in the container environment.
Hacky: I wonder if you can just reference that file on your local machine and do the modification all locally and dump it in your container via extraDirectories

Is the cacerts file for a given jvm distro version available via some other maven central dependency channel?

Is the cacerts file for a given jvm distro version available via some other maven central dependency channel?

I think the most I can do at the moment is acknowledge this is an issue, but also beyond my expertise, looking to see if @saturnism has an insights with specific customer use?

I think the most I can do at the moment is acknowledge this is an issue, but also beyond my expertise, looking to see if @saturnism has an insights with specific customer use?

I am currently also looking for a solution for this exact problem.
For reference, this is what we currently do in our Dockerfiles to import our CA-Certs:
RUN $JAVA_HOME/bin/keytool -importkeystore -srckeystore /<our_ca_certs>.jks -srcstorepass <pass> -destkeystore $JAVA_HOME/lib/security/cacerts -deststorepass changeit

I am currently also looking for a solution for this exact problem.
For reference, this is what we currently do in our Dockerfiles to import our CA-Certs:
RUN $JAVA_HOME/bin/keytool -importkeystore -srckeystore /<our_ca_certs>.jks -srcstorepass <pass> -destkeystore $JAVA_HOME/lib/security/cacerts -deststorepass changeit

For now, I think the best solution is to prepare your own cacerts in advance (could be done at build time by Maven or Gradle if desired) and copy the file into the right place into an image at image building time (e.g., using <extraDirectories>) as in #2240. As you can imagine, extracting and modifying any file from a base image is a non-trivial task for both Jib and anyone doing it manually. And for this type of files (cacerts), another model that may make sense is to provide it at runtime (e.g., mounting it on Kubernetes).
another relevant SO link: https://stackoverflow.com/a/62998403/1701388

For now, I think the best solution is to prepare your own cacerts in advance (could be done at build time by Maven or Gradle if desired) and copy the file into the right place into an image at image building time (e.g., using <extraDirectories>) as in #2240. As you can imagine, extracting and modifying any file from a base image is a non-trivial task for both Jib and anyone doing it manually. And for this type of files (cacerts), another model that may make sense is to provide it at runtime (e.g., mounting it on Kubernetes).
another relevant SO link: https://stackoverflow.com/a/62998403/1701388

For now, I think the best solution is to prepare your own cacerts

I'm happy to do this. Is there any kind of "official" list of CA certs published to maven central that I can reference in my build?
I found https://curl.haxx.se/docs/caextract.html
It would be so much nicer if it was published to maven central though. Regarding corporate nexus proxies and such.

For now, I think the best solution is to prepare your own cacerts

I'm happy to do this. Is there any kind of "official" list of CA certs published to maven central that I can reference in my build?
I found https://curl.haxx.se/docs/caextract.html
It would be so much nicer if it was published to maven central though. Regarding corporate nexus proxies and such.

Related:
https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt
https://godoc.org/github.com/agl/extract-nss-root-certs
https://github.com/grpc/grpc/tree/master/etc
https://github.com/AdoptOpenJDK/openjdk-support/issues/13

Related:
https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt
https://godoc.org/github.com/agl/extract-nss-root-certs
https://github.com/grpc/grpc/tree/master/etc
https://github.com/AdoptOpenJDK/openjdk-support/issues/13

Even more related:
https://github.com/AdoptOpenJDK/openjdk-build/pull/2113

Even more related:
https://github.com/AdoptOpenJDK/openjdk-build/pull/2113

https://github.com/AdoptOpenJDK/openjdk-build/tree/master/security

https://github.com/AdoptOpenJDK/openjdk-build/tree/master/security

Like @gabrieljones wrote, building a cacerts-file yourself adds the massive overhead of having make sure you have a up-to-date upstream version. This makes the whole process a lot less attractive, as missing an important update has the potential to create strange, unexpected and difficult to find problems.

Like @gabrieljones wrote, building a cacerts-file yourself adds the massive overhead of having make sure you have a up-to-date upstream version. This makes the whole process a lot less attractive, as missing an important update has the potential to create strange, unexpected and difficult to find problems.

Hi all,
we started adding modified cacerts to our images with the extra-directories option of jib. However, with the increasing number of micro services of our stack, it became rapidly painful to go through all of them.
Since we work with Kubernetes, we decided to expose the cacert through a k8s secret.
So we only have to modify it at one place and the change is taken into account directly for all pods.
This meets a best practice for java container that is not to contain keystores and to externalize configuration.

Thank you sharing your approach! Closing this issue given the availability of potential alternative solutions and the SO post that @chanseokoh linked.


feat: update variable interface to known supported types

Current dependencies on/for this PR:

main

PR #179

PR #180   👈

This comment was auto-generated by Graphite.


Scons multithread compilation and *.gen files issue on Windows

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 10 x64.
Z:\cpp\godot>scons --version
SCons by Steven Knight et al.:
        script: v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED], 2016/11/03 14:02:02, by bdbaddog on mongodog
        engine: v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED], 2016/11/03 14:02:02, by bdbaddog on mongodog
        engine path: ['C:\\development\\Python27\\Scripts\\..\\Lib\\site-packages\\scons-2.5.1\\SCons']
Copyright (c) 2001 - 2016 The SCons Foundation

Z:\cpp\godot>python --version
Python 2.7.13

Z:\cpp\godot>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

Issue description:

Launching a scons build with the -j parameter (multithread compilation) may error at compiling files that need a *.gen.* file because that file hasn't been created yet or it's being created in a different thread. Launching the compilation again without any modifications will move to the next *.gen.* file (and may or not error with that)
This issue may or not occur on different *.gen files depending on the order of how the jobs end and start
This issue doesn't happen with a non-multithreaded compilation.

Steps to reproduce:
Launch a build starting from a clean state and using the -j parameter

Scons multithreaded has issues on Windows where it doesn't find files, and it isn't limited to .gen.h.

I think this is windows specific as I was able to build Godot successfully with -j128 on a real 128 thread machine using Linux.
The question is is this a problem with our SConstruct file or a bug in scons/windows.

Yes, this is a Windows specific problem and IIRC a problem on the scons side.

This happens only with builds done using MSVC (tested with VS 2015 and VS 2017) on Windows – builds for Android, HTML5 and Windows (using MinGW) platforms can be done multi-threaded without any issues.

Isn't this a duplicate of #5042?

@bojidar-bg Yes.

Closing as duplicate of #5042.


Tests in effects having different naming conventions

like service effects has "user-service.ts"
https://github.com/razroo/codemorph/blob/e38729a87109a3a4c2da023a5339a48f66cbd6ed/src/rz/angular/effects/service/service.spec.ts#L11
But for components,  It has "sample.component.ts"
https://github.com/razroo/codemorph/blob/e38729a87109a3a4c2da023a5339a48f66cbd6ed/src/rz/angular/effects/component/component-effects.spec.ts#L12

Closing as completed in https://github.com/razroo/codemorph/pull/2

The way this will be approached is that file names for all mocks will be kept as generic. In place of actual name of file we will put in a curly brace i.e. {name}
I.e.
 const mockFilePath = 'src/rz/angular/effects/service/{name}.service.ts';

and
const mockFilePath = 'src/rz/angular/effects/component/{name}.component.ts';

Per conversation we will just update the:
const mockFilePath = 'src/rz/angular/effects/service/user-service.ts';

to be
const mockFilePath = 'src/rz/angular/effects/service/user.service.ts';

file and then we will consider this ticket as done

completed


getThumbFileUrl not render image extension

View file : product-update.php

Model : Product.php

debug tool show image without extension

what file have you uploaded?


fix: Added cheqd chain mainnet corrections + testnet constants

Corrects cheqd mainnet rpcUrls. Had been pointing to testnet REST endpoint.
Adds relevant cheqd testnet integration.

looks good to me! @Eengineer1

@Ansonhkg Thank you for your quick actions.


Update Readme to explain chakracore future

Will likely need microsoft approval for this.
I've held off on re-writing the whole thing for now simply adding an explanation on the future plans and links to the plan documents.
@zenparsing @ppenzin any thoughts?

I think we should merge this. The details of failing builds cannot be found, maybe this would clear on rebase.

Agreed - not heard back from Dale, but they've had time to comment if they were urgent too.
Also can update with more info about what's going on at the new org when we're a bit further along.


gilrs: Add code to unknown buttons and axes

Objective
I'm using a joystick to control my game (a flight simulator), so gilrs has not mapped all of the buttons. As discussed elsewhere, that's intentional by gilrs, and that's fine - but, gilrs does give us the code for the axis/button, which games can use to do their own mapping if we expose it.
Fixes #1916
Solution
I change the gilrs converter to use the (already existing) Other variant of the axis/button types to expose the code, so users can access them through events.
The code is given to us as a u32, but here I store it as a u8 just by casting. The presumption is that joysticks will not typically have more than 256 axes or buttons, indeed as of 2020 linux only supported 80 buttons. So I think it should be fine.

Changelog

Exposed unmapped gamepad events

Migration Guide
I don't think there should be any action required for users who don't want this functionality.

The code is given to us as a u32, but here I store it as a u8 just by casting. The presumption is that joysticks will not typically have more than 256 axes or buttons

Even if there's no support for more than 256 axes/buttons, on some platforms the conversion to u32 is from two u16, each on its own bits of the u32. Converting to a u8 will just discard the second u16

I'm opposed to converting to a u32. I think that's very misleading for anyone
Looking at how other engines handles that, I would prefer to remove the Other option, and add an other "ManualInputDevice" (or similar name) that would just keep the code and doesn't try any conversion

Giving it some thought... so, if we split it, then even if you want to use a single button that isn't mapped, then you lose all of the support that gilrs gives you. For example, today bevy recognizes three of the axes on my joystick (a Logitech Extreme 3D Pro) and maps pitch/roll to the left stick and yaw to RightZ. So it provides a reasonable default, and my presumption is that it will on essentially any gamepad with gilrs mappings. It just doesn't detect the throttle axis.
Really, gamepads are a subset of controllers (they don't have any substantively different functionality, that I know of). So maybe it makes sense to have gamepad support be some sort of converter on top of a base functionality that just directly exposes axis and button number. And then the user can apply the converter to get the gamepad mappings.
Not sure how that would interact with the gilrs though.

Okay, I have a bit of time so I'm thinking about this again. If we want to directly expose the gilrs::ev::Code to the user, then either the user needs to directly use bevy_gilrs or we need bevy_input to depend on gilrs (currently, bevy_gilrs depends on bevy_input, and is largely hidden from the user).
If we make the user depend directly on bevy_gilrs, then we would have to reimplement all of the logic around Input<GamepadButton> in bevy_gilrs or else the user would lose that.
Maybe we could make the Other variant of GamepadButtonType conditional on the bevy_gilrs feature - if gilrs is enabled, we have that variant, otherwise we don't. This seems pretty cursed, and I'm not sure if Rust actually supports that. But, we could wrap the gilrs::ev::Code in a newtype (RawCode?), which we could conditionally compile to either gilrs::ev::Code or a u32 (or a u64). That way, if the user doesn't have gilrs enabled, they could use their own systems to create RawCodes.
We'd probably need that newtype anyway to implement reflection on it.
(and we can do a similar thing for GamepadAxisChangedEvent)

Curious how your think went, I was thinking about it too a bit
One thing I would note is that in the w3c gamepad api, doesn't appear to encode any notion of type like this, there is a vector of axes, with each axis referred to by index.  AFAICT it doesn't encode an axis type or button type at all, while gilrs is encoding each button with a different code where code seems to be a combination of both a button ID and it's type in one unhelpful value.
To me it doesn't make any sense to try and put the gilrs::ev::Code in bevy_input, or avoid conversion to u32, since the only method that Code actually has is into_u32() and bevy_input appears to be attempting to avoid depending upon any specific input layer.  If we go the route of embedding input-system specific types into the other value I think it only makes sense if it becomes GameAxisType<T> { ..., Other(T), }, But I don't think anyone wants to see that?
I think one thing worth considering is to make the Other value based around the index into return value of the following
GamepadState functions, buttons() axes() which would require an upstream change to gilrs to be able to get the index (probably from Code).
That is basically my current thoughts I suppose


MetalLB 0.13.x support

According to https://metallb.universe.tf/release-notes/#version-0-13-2, the ConfigMap configuration is not supported anymore. I might be mistaken, but that's exactly what we use when configuring MetalLB. Should at least check if that is the case.

Fixed in release v1.30.0


Exiting fullscreen window that is in stack, breaks the stack

Been playing with stacks, and saw that after creating a stack.
In my specific case I have 2 chrome tabs. On one I go on youtube, watch a video in fullscreen and after exiting fullscreen the stack breaks. So I have to stack my windows again.
yabai-v4.0.0
MacOS Monterey 12.3

When a window enters fullscreen mode on macOS, it spawns as a separate window with its own identifier, and the "old" window is removed. This is not something that can be fixed.


1.19 Please!

I would be willing to help update to 1.19 but will need some direction of how to do this.

I'm planning to do the updates (of all my mods, not just ClickThrough) this weekend.
In the meantime, you could try if the 1.19-pre2 version at https://modrinth.com/mod/clickthrough/version/1.19-pre2-fabric0.53.3-0.4 works for you, as there have been very little changes between pre2 and the final 1.19.

Thanks!


Fix some issues with text diff

common/TextDifferencer.java
common/repo/GitRepo.java
common/text_difference.proto
tools/reviewer/webapp/src/app/dashboard/file-changes/code-changes/services/changes.service.ts"

googlebot!

I signed it!


Unused ['audio_input'] Argument in model_kwargs Causing ValueError

Hi! Thanks for your amazing work!
I am trying the inference: python gama_inf.py with:
"checkpoint-2500/pytorch_model.bin"
However, I face the following error：
ValueError: The following model_kwargs are not used by the model: ['audio_input'] (note: typos in the generate arguments will also show up in this list)
Could you please give some help~

Thank You for using GAMA! Just confirming if you have installed our version of transformers ?
The steps are here:
https://github.com/Sreyan88/GAMA?tab=readme-ov-file#setup-
Once you confirm we can look more into this!

Thank you so much!
Took your advice, the issue is solved.
Thanks！

Thank You! Feel free to re-open if you need any more help!


Improve Javadoc to show optional/required properties and include sample codesnippets

Just to make sure this detail isn't lost:
@tg-msft made the specific suggestion to add a sentence just above the query parameters table along the lines of: "You can add these to a request with request.queryParams.add( ..." (or whatever the actual syntax is).
Also include the description and optional/required from the API definition for each property in the Response Body Schema section (and the Request Body Schema if it has a similar section).


Android: Buttons permanently in their "pressed" state

App version: 1.0.2
OS version: 4.4.2
Phone: Moto X International GSM
Steps to reproduce

Touch a button (one of the menu screen button or the Back and Restart buttons). Don't release the finger.
Move the finger away from the button (still touching the screen).
Release the finger.

The button is darkened, as if it was still being pressed.
Expected behavior
When you release the finger, the button should be back to its normal, non-pressed state.

Can you send a screenshot?


Functions not returning all attributes

get_user_best seems to only return user_id, beatmap_id and date. accessing other attributes such as PP only returns with attribute error, not found
similar to this is get_beatmaps only returning title, creator and id

Can you give an example that doesn't work?

nvm i fixed it and i dont know how i did it or how to reproduce it
sorry for wasting your time


Feature/imp fixer usability

@svenkatrav & @schakrovorthy, can you please review?

@svenkatrav can you please merge this branch?


setup timeout without meaningful logs

my model keep failing setup with 'model container failed to boot and complete setup within 600 seconds'.
searched on google, no solution found.
how could I find more information about what happened?

model version: dea48a520fc0954407bfb1dd9dd3d8d4eabdb675b2cd947d6aaf302485a714ce

Hi @afpro. It looks like your model was configured to run on a T4. If the model is indeed 13B (as the name implies), the 16GB VRAM available on that hardware may not be sufficient. That'd be my guess as to why it's failing during setup. Go to the model settings and try switching the hardware to an A40 or A100.

Hi @afpro. It looks like your model was configured to run on a T4. If the model is indeed 13B (as the name implies), the 16GB VRAM available on that hardware may not be sufficient. That'd be my guess as to why it's failing during setup. Go to the model settings and try switching the hardware to an A40 or A100.

I use llama2-chat-70b on A40 and got a 'out of memory' error, in this situation, i will got a python exception stack, not 'timeout'.

I just give up.


Allow to add secondary actions to notifications

Notifications have primary and secondary actions. Secondary actions are behind the gear dropdown and typically include an action to "Never show again".
The workbench can leverage secondary actions, however extensions can not. This often means that extensions have to pollute the notification with lots of buttons such as:

/cc @chrisdias @brettcannon

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


MSID: 92136 Version: 1 DOI: 2<IP_ADDRESS>3216

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=92136)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/previews/92136v1)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>3216)
[x] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/92136/v1/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/92136)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/92136

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/92136

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/92136/v1/92136-v1.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/92136)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

Display of eLife assessment, otherwise fine to QC.

Nicely spotted @rkcook312. I can see the comment was edited after it was originally posted. I've reimported the content and it now looks like this:

So I think we're good to go. Are you Ok to do the honours (publish) Rebecca?


Fix AudioStreamGenerator stopping playback after a buffer underrun

Fixes #65155
Tweaked repro project: generator_repro.zip
The rationale here is that the number of samples mixed by a playback doesn't give us enough information to make a decision about whether to continue with that playback. I tested this with an ogg to make sure that it doesn't break playback of other streams, but it wouldn't hurt to test with other formats.

The simplest thing ended up working. @bluenote10 could you test https://github.com/godotengine/godot/pull/73162?

Yes that was also the first thing I tried, and based on some preliminary experiments I'd also conclude that it works. I'll do some more testing and if I find something fishy I'll report back.
Thank you very much for helping out so quickly!

Perhaps a minor observation: So far the else branch of that condition had the invariant mixed_frames == buffer_size which is now no longer the case. Do we have to change line 374 from playback->lookahead[i] = buf[buffer_size + i]; to playback->lookahead[i] = buf[mixed_frames + i]; to make sure that the lookahead buffer is copied from where the playback stopped outputting samples, instead of from the absolute end of the buffer?

That's a good catch. The lookahead buffer is used for fade-out if the playback is stopped on the boundary between two 512-sample mixing windows, so it would make sense to me to fill it with silence in the case of a buffer underrun. Filling it with the last few frames of mixed audio would mean that if it's ever used for fade-out, there will be audio played immediately after the underrun's silence, then faded out to zero, which wouldn't make much sense.

From what i understand, generator never ends unless you actually stop it, so if there is an underrun and a pop resulting because of it, it should be user fault IMO, but it should not return less samples.

Right now if there's ever a single underrun, the playback is removed and no amount of filling the buffer will ever restart playback. That's what I'm trying to fix with this change. I don't understand how we could implement this in the generator without significant changes to the audio server.

@ellenhp IMO AudioStreamGeneratorPlayback::_mix_internal should always return p_frames, and only return less if the user explicitly states that no further audio will be sent (maybe adding some function end_stream())

Mentioned in RocketChat too but I don't have time for a playback API change right now so this will have to wait unless somebody else wants to take it up.

@ellenhp IMO AudioStreamGeneratorPlayback::_mix_internal should always return p_frames, and only return less if the user explicitly states that no further audio will be sent (maybe adding some function end_stream())

Perhaps even take it a step further and require all implementors of AudioStreamPlayback::mix to always return exactly the number of requested frames? After all, it would be easy for all implementors to satisfy this requirement by producing just zeros if they run out of actual data (which could be either at the end-of-stream for finite length generators or the dreaded buffer underrund for infinite generators). Would this simplify the logic, because the audio server doesn't have to care about the number of samples, and can simply use is_playing() for removing playbacks from the list?

Doing that would definitely work and has benefits like reduz outlined in the comments of #71780.

@bluenote10 @ellenhp That's how it worked originally, so I suppose we could just revert that change from #51296, but at this point I feel its something that would require some significant refactoring in the audio code.
The main problem is that, if the audio stream ends by itself, it should not really require ramp down. Ramp down only makes sense if you suddendly stop the audio, but currently there is no way to discern this, so IMO we will need to really think through how everything works after 4.0 is out and do the fixes later.

@bluenote10 managed to bisect this and found it was caused by #55846. I think it's unrelated to #51296.

@bluenote10 managed to bisect this and found it was caused by https://github.com/godotengine/godot/pull/55846. I think it's unrelated to https://github.com/godotengine/godot/pull/51296.

@ellenhp Yes, fully in line with what my bisecting revealed -- that's why I had pinged you on #55846 initially :wink: The exact commits I had looked at were:

[...] the commit that broke the audio stream generator is afd2bbaa5f, i.e., this PR https://github.com/godotengine/godot/pull/55846. The commit immediately before (3017530e26) still works fine.

If I understand it correctly: https://github.com/godotengine/godot/pull/51296 prepared the logic in the audio server to terminate streams if mixed_frames != buffer_size, but at that point in time, the mix function still returned the full p_frames, i.e., mixed_frames always equaled buffer_size. Later #55846 changed that, and the combination of both leads to the issue.

IMO we will need to really think through how everything works after 4.0 is out and do the fixes later.

@reduz I'm just wondering if this PR wouldn't still make sense as a hotfix for 4.0. After all, audio stream generation is more or less completely unusable on 4.0 currently, if the streams get terminated immediately in the majority of cases. The hotfix seems to make them fully usable again, and unless we see a specific concern why the approach may actually break something else, it would make sense to include it in the release. We could nonetheless look for a more appropriate long term solution later after 4.0 is released.


[REVIEW] Add single-threaded code path for writing output dataset

In order to reduce memory pressure for larger partition sizes, this PR adds a (default) code path to avoid using multiple threads for writing an output dataset.  The user can now specify the number of threads to use for writing by passing num_io_threads to Workflow methods like apply.

Happy to change the default num_io_threads setting here, but I think it's necessary to have access to this option at the Wrokflow level

@benfred - I am interested to get your thoughts here.
This PR was motivated by a comment from @jperez999 that the criteo-example notebook was taking much longer than the 16-17min he experienced in the past.  His comments led me to discover a few things:

The switch to the ThreadedWriter-based writers in the dask-based apply was increasing the memory overhead at write time, requiring the use of a smaller part_mem_fraction setting.  I discovered that the the "safest" approach is to avoid the use of threads (which is why I made that the default here).  However, it seems that the best performance comes with num_io_threads=2.
A small part of the performance regression is related to a small change in the way ThreadedWriter divides data between output files.  It seems that cudf's scatter_by_map method is a fairly optimal way to shuffle data into contiguous DataFrames.  Switching back to this approach gave me a 30s performance improvement, so I am including that change here.
It turns out that using Categorify with freq_threshold=0 (full encoding) is much faster than freq_threshold>0 (partial encoding).  It seems that the searchsorted-based operation available for full encoding requires significantly less data copying than the merge-based operation needed for partial encoding.

How much does perf increase with using 2 threads for IO?

I'll have to re-run to get apples-to-apples comparisons.  My rough estimate was something like 5%

how much faster is full encoding than partial encoding? Can we make the partial encoding faster?

This is another case where apples-to-apples is tough, because the merge-based operation requires more memory than the searchsorted-based op - meaning we can handle larger partition sizes for full encoding.  Using the dask benchmark with one device, I was seeing a difference of roughtly 13mins vs 17mins


[cjs] Dep optimization failed with error

Describe the bug
When I use CJS rely on, compile tools error.
I see a lot of related issue, all say need to configure the optimizeDeps option allows CRJS code into esm code.
But there is still a problem, I don't know how to operate;
//vite.config
optimizeDeps: {
    include: ['axios'],
    exclude: [],
},

//project code
import axios from 'axios';
console.log(axios);

[vite] Optimizable dependencies detected:
axios

[vite] Dep optimization failed with error:
The argument 'path' must be a string or Uint8Array without null bytes. Received 'D:\\code\\klvin\\vue3Test\\test2\\node_modules\\\u0000.\\lib'
TypeError [ERR_INVALID_ARG_VALUE]: The argument 'path' must be a string or Uint8Array without null bytes. Received 'D:\\code\\klvin\\vue3Test\\test2\\node_modules\\\u0000.\\lib'

System Info

vite version: v1.0.0-rc.13
Operating System: windows 10
Node version: v12.14.0

If it's not optimizeDeps, The browser will report errors "Uncaught SyntaxError: The requested module '/ @ / modules/axios index. The js' does not dojo.provide an export named' default '", will not into esm and axios code.
If optimizeDeps is used, the compilation tool simply does not run.
We have to use the CJS library manually change it again then run vite?

Seeing your reply, I realized that it was probably my problem.
After searching for a long time, it turns out that the plug-in I wrote did not filter out the ?common-proxy and ?commonjs-require path.
Many thanks


Remove CssMin in Version 9

It seems as if CssMin is abandoned, the last commit was made a year ago. Open issues aren't replied to nor resolved. The maintainer is active on Github though. I see @mlocati is a contributer, but doesn't seem to be active in the project either.
The issue is that CssMin mangles some (newer) features in CSS. And if the problems aren't fixed we need to resort to some alternatives/hacks to be able to use some CSS.
An alternative could be https://github.com/matthiasmullie/minify.

The linked library looks promising.

Update: the on-the-fly minification of CSS and JavaScript has never really worked very reliably, and it's actually sometimes slower (when you clear cache often) than just running with unminified source. With that in mind, in version 9 we're going to be doing much more minification and combination of assets beforehand, in smaller groups. So I'm updating this ticket to be clearer - let's remove this in version 9.

This has been resolved in https://github.com/concrete5/concrete5/commit/9e409c0b72b20d63b57f7c8a2ecc66092bdc14b1


Setup location for tool documentation on ReadTheDocs

Not sure docs on ReadTheDocs can be kept private. If not, we'll just have to build the docs locally until it's time to release.

Documentation just hosted on GitHub pages now.


Guide feature

Could you please add the guide private API features in this api

What I mean is Instagram guide


Add a Github Action to auto-assign Mentors for every PR

Description
Add a Github Action to auto-assign Mentors for every PR. It is a pain sometime to take a look at all the Projects for the PRs made by the Contributors. Getting a nice notification about reviewing a PR would make things easy for me.
You can take a look at this Github Action for the purpose. Check this out to know how to achieve the same.

@HarshCasper I would like to take this up.

@m-code12 Thanks for taking this up. Next time, you can use /assign to automatically take up the Issue.


Fix coverage

This pull request will increase the coverage of the unit tests.

Referência, para o HashCode
https://stackoverflow.com/a/56810995


Parquet libraries do not follow proper semantic versioning

There are changes between 1.8.0 and 1.10.0 that break API compatibility. A minor version change is supposed to be backward compatible with 1.9.0 and 1.8.0.
Reporter: Vlad Rozov / @vrozov
Related issues:

Release 1.10 contains breaking changes for Hive (incorporates)
Backward incompatible change introduced in 1.8 (incorporates)

Note: This issue was originally created as PARQUET-1295. Please see the migration documentation for further details.

Vlad Rozov / @vrozov:
Just as an example, there are semver incompatible changes to org.apache.parquet.column.values.ValuesReader.

Gabor Szadovszky / @gszadovszky:
I completely agree, @vrozov. Could you please explain the incompatibilities you have found?
In the build process we are using semver to enforce the API compatibility with 1.7.0. So, theoretically there should not be such changes. Of course, this plugin only can do syntactical checks on the API, the semantical compatibility is a bit more tough.

Vlad Rozov / @vrozov:
I don't see anything other than the exclusion of org.apache.parquet.column.* from semantic versioning that suggests that it is not public. It must be part of semantic versioning, IMO.

Vlad Rozov / @vrozov:
My guess is that semantic versioning is enforced for the API that existed in 1.7.0, but it is not enforced for any new API introduced in 1.8.x or 1.9.x.

Gabor Szadovszky / @gszadovszky:
I think, you are right. We should check against the previously released versions (e.g. changes between 1.8.2 and 1.8.3). I don't know if it is intentional to keep checking the API against 1.7.0 or only that we forgot to update the version.
Another thing is org.apache.parquet.column.** is excluded from the check suggesting that these classes (including ValuesReader) are not part of the public API.
What do you think, @rdblue?

Zoltan Ivanfi / @zivanfi:
I agree with @vrozov, in fact I used the same argument on the mailing list:

Parquet uses semantic versioning. As a library, it should take extra
care not to break its public API in minor releases. This also applies
to publicly accessible classes and methods that are considered
internal if this "internalness" is not properly documented. It is
tempting to dismiss these cases with the reasoning that they were not
intended to be public in the first place, but from an API consumer's
point of view, this "leaked" API is indistinguishable from the "real"
API. Currently the information of what is public and what is internal
is undocumented and only known to a few Parquet developers.
Until API consumers have a way to determine the intended target
audience of our classes and methods, we should pay more attention to
keeping our leaked internal API backwards-compatible as well.

@vrozov, regarding your comment:

That information is hidden somewhere in the pom file.

It's actually even worse than that. The exclusions are only added to the pom file when a breaking change is made, so even that list is unsuitable for determining whether something is considered internal, as it only contains those parts of the internal API that we already broke.

Ryan Blue / @rdblue:
Since there is not a well-defined public API, I understand how it is annoying to find out that some classes are internal. But the APIs referenced here are definitely something that we've always considered internal.
We use 1.7.0 for semver checks because that's the oldest release that we want public API compatibility with (even though "public API" is not well defined). We only add exclusions for private classes when they change, so growing this list is essentially marking APIs private as we make changes. I think that's worth keeping rather than needing to add to the list when we make changes to a private class each release.

Vlad Rozov / @vrozov:
Parquet libraries do not follow proper semantic versioning as any outside developer can't reliably say whether she is using API that is stable and is subject of the semantic versioning or it is an internal API and an upgrade to a newer version may require a significant code changes. Take a look at org.apache.parquet.column.values.ValuesReader. Nothing in the package name, class or method annotations suggests that it is an internal class that is not subject of semantic versioning. That information is hidden somewhere in the pom file. The class even has java documentation, that implies that it is not "internal".
The same applies to classes and methods added since 1.7.0. How may an external developer know that a new method added after 1.7.0 to a class that existed before 1.7.0 is not subject of the semantic versioning and avoid using it?

Gabor Szadovszky / @gszadovszky:
Here starts a lot of exclusions. That suggests there are many packages meant to be internal even if they are public from java point of view. Unfortunately, we did not use any other comment/annotation/package naming to inform the user which class/method shall be used and which not.
To maintain backward compatibility from now on the best we can do is to remove all the exclusions (except the ones that really make sense e.g. shaded packages) and use the previous release all the time (1.10.0 for now) for the semver check. Unfortunately, we cannot do anything with the breaking changes already released.
We also have to take care about the backward compatibility at review. Not only public API changes can break backward compatibility but the actual behaviour of the functions.
@zivanfi, @rdblue, what do you think?


Make ByteBufferInputStream.read(byte[], int, int) to follow the contract

@leventov Do you want to activate this PR? If not, I'd like to file a PR to complete it with a test case :)

@chia7712 go for it

@leventov Thanks for your response. I'm going to close this PR. see https://issues.apache.org/jira/browse/KAFKA-10768 as follow-up


Adds assignment of jQuery contentType field

Card
Adds assignment of jQuery contentType field.
Details
Reference: http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings

This looks like a useful change! Thank you for your contribution :)


Documentation upgrade

This PR adds a full Naggum documentation in Sphinx format that is compatible with Read the Docs service (used by Agda and Idris, for example).
This will close #28 and #31.
I've already published these docs to readthedocs, it may help with review: http://naggum.readthedocs.org/en/feature-docs/
(After merge they will be accessible from the link in Readme file.)

LGBT

Sorry, wat?

LGTM

@Minoru, many thanks for the review. It helps a lot!

You're quite welcome, @ForNeVeR!


Error with session

This error just popped up in my dev environment. Not really sure what is going on here.
auth_1   | Error: Error getting collection: sessions
auth_1   |     at node_modules/connect-mongo/lib/connect-mongo.js:163:19
auth_1   |     at Db.collection (/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:501:27)
I added logging to connect-mongo and this seems to be the underling exception
auth_1   | [TypeError: Cannot read property 'hasListIndexesCommand' of undefined]
I poked around a bit and the only related thing I've seen is super old.

Can you give us some details? (MongoDB version, configuration, mongoose version, driver version, Node.js version...)


interface result parameter set for dpdk device

What happened?
The k8s.v1.cni.cncf.io/networks-status pod annotation contains interface parameter set to net1  for dpdk device.
Annotations:  cni.projectcalico.org/podIP: <IP_ADDRESS>/32
              cni.projectcalico.org/podIPs: <IP_ADDRESS>/32
              k8s.v1.cni.cncf.io/network-status:
                [{
                    "name": "",
                    "ips": [
                        "<IP_ADDRESS>"
                    ],
                    "default": true,
                    "dns": {}
                },{
                    "name": "default/sriov-cni-dpdk-net",
                    "interface": "net1",
                    "ips": [
                        "<IP_ADDRESS>"
                    ],
                    "dns": {},
                    "device-info": {
                        "type": "pci",
                        "version": "1.0.0",
                        "pci": {
                            "pci-address": "0000:08:06.3"
                        }
                    }
                }]

What did you expect to happen?
The interface parameter must not get displayed for dpdk device, This is because result.Interfaces is set here  even for dpdk case.
What are the minimal steps needed to reproduce the bug?
create a pod with secondary network attachment for dpdk device.
Anything else we need to know?
currently even with k8s.v1.cni.cncf.io/network-status annotation downward API mount  inside the pod container, there is no direct way to identify given pci address is net or dpdk device.
should PciDevice in DeviceInfo contain bound driver parameter to figure out type of device inside the pod container ?
Component Versions
Please fill in the below table with the version numbers of applicable components used.

Component
Version

SR-IOV CNI Plugin

Multus

SR-IOV Network Device Plugin

Kubernetes

OS

Config Files
Config file locations may be config dependent.
CNI config (Try '/etc/cni/net.d/')
Device pool config file location (Try '/etc/pcidp/config.json')
Multus config (Try '/etc/cni/multus/net.d')
Kubernetes deployment type ( Bare Metal, Kubeadm etc.)
Kubeconfig file
SR-IOV Network Custom Resource Definition
Logs
SR-IOV Network Device Plugin Logs (use kubectl logs $PODNAME)
Multus logs (If enabled. Try '/var/log/multus.log' )
Kubelet logs (journalctl -u kubelet)

/cc @JanScheurich

Are there implications of keeping the interface name in results empty ? is that OK from CNI spec POV?
One thing i can think of is that we rely on it (to be provided in CmdAdd / CmdDel) to cache the state of the VF.
from CNI spec:

The operation of a network configuration on a container is called an attachment. An attachment may be uniquely identified by the (CNI_CONTAINERID, CNI_IFNAME) tuple.

Discussed in Monday's resource mgmt meeting:
Interface name is used as reference when caching the CNI config in sriov-cni, this is true also for dpdk interface. To remove it, there are several considerations:

sriov-cni may need to change to use pci ID or other unique identifier when caching cni config
interface name is passed down by Multus and not  used to configure the dpdk interface name, we need to understand the implication of not returning the name back to Multus (e.g. does it affect cmdDel?)

An alternative is to add another field in device-info spec (e.g. driver) to indicate whether interface is using vfio-pci or kernel driver, so that application knows how to make use of the device. In such case, interface in network-status is just a index name for vfio-pci device.


[Bug]: Jest does not automatically mock AsyncGenerator functions

Version
27.3.1
Steps to reproduce
module/index.js
async function* asyncGenerator() {
    await new Promise(resolve => setTimeout(resolve, 100));
    yield 'done';
}

function* syncGenerator() {
    yield 'done';
}

module.exports.asyncGenerator = asyncGenerator;
module.exports.syncGenerator = syncGenerator;
module.exports.asyncMethod = async () => {
  return 1;
}
module.exports.syncMethod = () => {
  return 1;
}

index.spec.js
jest.mock('./module');
const mod = require('./module');

describe('all methods', () => {
  test('should be mocked automatically', () => {
    expect(mod.syncMethod).toBeDefined();
    expect(mod.asyncMethod).toBeDefined();
    expect(mod.syncGenerator).toBeDefined();
    expect(mod.asyncGenerator).toBeDefined(); // <-- this is where it fails
  });
});

Expected behavior
Jest should automatically mock AsyncGeneratorFunction functions as it also automatically mocks Function, AsyncFunction and GeneratorFunction.
Actual behavior
module.exports.asyncGenerator is undefined and not mocked at all. It needs to be explicitly defined and mocked.
Additional context
The issue #5979 described the same problem for synchronous generator functions. In the PR #5983 the support for GeneratorFunction was added. This could also be done for AsyncGeneratorFunction.
Environment
System:
  OS: Windows 10 10.0.22000
  CPU: (12) x64 Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
Binaries:
  Node: 14.15.3 - C:\Program Files\nodejs\node.EXE
  npm: 6.14.9 - C:\Program Files\nodejs\npm.CMD
npmPackages:
  jest: ^27.3.1 => 27.3.1

Can confirm this issue in 2022 for jest version 27.5.1

face the same issue, bumping jest version to v28/v29 seemed to work and async gens are being mocked up correctly 👍

Great, thanks!

#11080


Shorter transition speed, longer slide time?

Transition speed and slide time seem to be tied together. I'd like to have something like  a 0.5s transition to fade between slides, and then stay on each slide for 5s. Is this possible? Increasing speed seems to increase both transition speed and slide duration.

Ah, I missed the pause setting, nevermind!


(PUP-6802) Unavailable environment fallback to good

When an agent runs with a environment that does not exist on the server,
puppet will fail with
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Find /puppet/v3/node/steep-ribcage.delivery.puppetlabs.net resulted in 404 with the message: {"message":"Not Found: Could not find environment 'qwe'","issue_kind":"RUNTIME_ERROR"}
Info: Retrieving pluginfacts
Error: /File[/opt/puppetlabs/puppet/cache/facts.d]: Could not evaluate: Could not retrieve information from environment qwe source(s) puppet:///pluginfacts
Info: Retrieving plugin
Error: /File[/opt/puppetlabs/puppet/cache/lib]: Could not evaluate: Could not retrieve information from environment qwe source(s) puppet:///plugins
Info: Retrieving locales
Error: /File[/opt/puppetlabs/puppet/cache/locales]: Could not evaluate: Could not retrieve information from environment qwe source(s) puppet:///locales
Error: Could not retrieve catalog from remote server: Find /puppet/v3/catalog/steep-ribcage.delivery.puppetlabs.net resulted in 404 with the message: {"message":"Not Found: Could not find environment 'qwe'","issue_kind":"RUNTIME_ERROR"}
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Now in case it cannot get the facts or catalog for the specified
environment, it will use indirection.find to get the node environment
configured on the server and use that.
DRAFT

I was hoping we could handle this in the server-side ruby code. So if the agent requests a catalog, file_metadata(s), file_content, etc with an environment that doesn't exist on the server, then have the server redirect the agent to some default environment on the server that does exist. So when the server looks up the environment, do something like
configured_environment = Puppet.lookup(:environments).get(environment)
if configured_environment.nil?
  params[:environment] = "..." # some environment that is guaranteed to exist on the server
  query = params.map { |k,v| "#{k}=#{v}" }.join(',') # we have to preserve whatever params were submitted
  location = "#{uri}?#{query}"
  raise Puppet::Network::HTTP::Error::HTTPTemporaryRedirectError.new(_("Could not find environment '%{environment}'") % { environment: environment }, location)
else
  # do existing stuff
end

We can't assume the default fallback environment is production as some users delete that environment. So maybe we have a new puppet setting, e.g. Puppet[:default_agent_environment] whose value defaults to Puppet[:environment]?
  params[:environment] = Puppet[:default_agent_environment]

Then add a rescue clause for HTTPTempraryRedirectError in
rescue Puppet::Network::HTTP::Error::HTTPTemporaryRedirectError => e
  Puppet.info(e.message)
  response['Location'] = e.location
  response.respond_with(e.status, "text/plain", "Redirecting to #{e.location}")

In theory, the agent should follow the redirect. However, when I tried looking into this, I didn't see way for the server-side puppet code to set the Location response header, due to the way the puppet response object calls methods on the handler. The base handler is defined in puppet and it is mixed into puppetserver's handler, and that is mixed into the server application.
We'd also need to worry about compatibility to makes sure the base puppet handler doesn't try to call methods that don't exist on puppetserver's handler class.
So a different approach might be to drop the HTTP redirect. And instead have the server switch the agent's environment:
configured_environment = Puppet.lookup(:environments).get(environment)
if configured_environment.nil?
  Puppet.warning("Environment #{environment} does not exist, falling back back to ...")
  params[:environment] = configured_environment = Puppet[:default_agent_environment]
else
  # do existing stuff
end

We could also restrict that behavior to specific indirections like catalog, file_metadata*, file_content?
Also @Magisus @justinstoller thoughts?

@joshcooper we found that a benefit of making a node request here would be in cases where the environment is decided by the server (i.e. through an ENC), so puppet can do bad environment -> good environment instead of bad environment -> default environment (which may or may not be the same as good environment) -> good environment. But to see actual benefits from this we'd have to assume that the user will always pass a non-existent environment (either via config or CLI). Otherwise the drift should be fixed after the first puppet run and it shouldn't really matter if the convergence happens after an additional hop.
However if we re-revert the node request removal PR (https://github.com/puppetlabs/puppet/pull/8679), it may become more likely for the last used environment to become invalid, so we would end up hitting this case more often.

The problem with the node request is the classifier uses the facts from the previous run (or none if it’s a newly provisioned node) to determine the agent’s environment. Since classifier rules are written by users and often based on custom facts, it’s hard to say whether the node response will be correct. For example, facts that affect environment classification have to resolve the same in all environments.
The main benefit with this PR is in cases where an agent’s environment is set in puppet.conf. I think our MSI’s used to do that and possibly PE’s installl.ah. But if the environment is ever deleted on the server, then the agent is be stuck, since you can’t use puppet to fix itself. Customer0 also uses that workflow of setting the environment to a feature branch. Their solution was to query a puppetserver REST api to ask “does the environment I want to use still exist on the server?”. They are querying the file metadata REST api for the “plugins” mount, which has to exist on the server. You could do something similar? I also filed https://tickets.puppetlabs.com/browse/SERVER-2981 but it won’t help now.

Did a quick manual test:
On server
➜ [1]# cp -r /etc/puppetlabs/code/environments/production  /etc/puppetlabs/code/environments/def_env/
➜ [2]# ls
def_env  production
➜ [3]# puppet config set default_agent_environment def_env

On agent
➜ [1]# bundle exec puppet config print default_agent_environment
production
➜ [2]# bundle exec puppet agent -t --environment=unavailable
Notice: Local environment: 'unavailable' doesn't match server specified node environment 'production', switching agent to 'production'.
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for red-simulation.delivery.puppetlabs.net
Info: Applying configuration version '1625751291'
Notice: Applied catalog in 0.04 seconds

Server logs
2021-07-08T13:27:18.952Z WARN  [qtp1776941012-41] [puppetserver] Puppet Environment unavailable does not exist, falling back to def_env
2021-07-08T13:27:18.956Z INFO  [qtp1776941012-41] [puppetserver] Puppet Not Found: Could not find environment 'unavailable'
2021-07-08T13:27:19.002Z WARN  [qtp1776941012-40] [puppetserver] Puppet Environment unavailable does not exist, falling back to def_env
2021-07-08T13:27:19.004Z INFO  [qtp1776941012-40] [puppetserver] Puppet Not Found: Could not find environment 'unavailable'
2021-07-08T13:27:19.025Z WARN  [qtp1776941012-41] [puppetserver] Puppet Environment unavailable does not exist, falling back to def_env
2021-07-08T13:27:19.026Z INFO  [qtp1776941012-41] [puppetserver] Puppet Not Found: Could not find environment 'unavailable'
2021-07-08T13:27:19.042Z WARN  [qtp1776941012-40] [puppetserver] Puppet Environment unavailable does not exist, falling back to def_env
2021-07-08T13:27:19.043Z INFO  [qtp1776941012-40] [puppetserver] Puppet Not Found: Could not find environment 'unavailable'
2021-07-08T13:34:50.387Z WARN  [qtp1776941012-41] [puppetserver] Puppet Environment unavailable does not exist, falling back to def_env
2021-07-08T13:34:51.679Z INFO  [qtp1776941012-45] [puppetserver] Puppet 'replace_facts' command for red-simulation.delivery.puppetlabs.net submitted to PuppetDB with UUID 76c96abf-5fd1-41f1-bc6f-c039a267e933
2021-07-08T13:34:51.896Z INFO  [qtp1776941012-45] [puppetserver] Puppet Compiled catalog for red-simulation.delivery.puppetlabs.net in environment production in 0.11 seconds
2021-07-08T13:34:51.897Z INFO  [qtp1776941012-45] [puppetserver] Puppet Caching catalog for red-simulation.delivery.puppetlabs.net
2021-07-08T13:34:51.941Z INFO  [qtp1776941012-45] [puppetserver] Puppet 'replace_catalog' command for red-simulation.delivery.puppetlabs.net submitted to PuppetDB with UUID 1cf3ca08-0852-4779-bfe3-c6b114f43fe7
2021-07-08T13:34:52.098Z INFO  [qtp1776941012-41] [puppetserver] Puppet 'store_report' command for red-simulation.delivery.puppetlabs.net submitted to PuppetDB with UUID 05f9e1b5-3e2a-486a-a805-2038de71c951

The problem is that the agent says it switches to production environment because that is the default, but the server uses the correct def_env environment.

Jenkins please test this on all with servertests

jenkins please test this with servertests

jenkins please test this with servertests


dotnet-web

Starts an HTTP, static-file server in the current working directory.
dotnet web [basedirectory] [-p|--port <PORT>]

We'll look into this when we global tools.

We'll look into this when we global tools.

Consider this blocked on https://github.com/dotnet/cli/issues/5147
cc @blackdwarf

Low demand to make an official version of this. Use https://github.com/natemcmaster/dotnet-serve instead.


Support nested path expressions.

path /x is T1 {
   path /y is T2;
}

should be the same as:
path /x is T1;
path /x/y is T2;

Resolved by 98f01c29b18e0e22601faacf81ae3eb839e4faf5


Can't copy and paste from Android to PC

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: PopOS
scrcpy version: Latest
installation method: apt
device model: Note 10+
Android version: 11

Describe the bug
When i copy text on my android phone, the clipboard is not synced to my desktop.

How do you copy from the computer to Android exactly?
Read the copy-paste section: https://github.com/Genymobile/scrcpy#copy-paste

Any time the Android clipboard changes, it is automatically synchronized to the computer clipboard.

I was assuming that this meant when i copied on android, my computer clipboard would change to what I copied. Does it work differently than that?

Yes, that is what is does on most devices.
Maybe you have a settings in developer options / security to prevent reading the device clipboard.

Running adb unroot before starting scrcpy fixed the issue for me

Running adb unroot before starting scrcpy fixed the issue for me

How did you do it, can you tell me?


Pipeline failing when using MlflowModelLoggerDataSet as an input of a node

I noticed a small issue when integrating with kedro-mlflow, more specifically with kedro_mlflow.io.models.MlflowModelLoggerDataSet when we want to reuse them from one node to another.
Consider the following scenario:
#catalog.yml
mlflow_logger_model:
  type: kedro_mlflow.io.models.MlflowModelLoggerDataSet
  flavor: mlflow.sklearn

# node.py
import numpy as np

from sklearn.dummy import DummyClassifier
def create_mlflow_model_artifact():
    X = np.array([[1],[2]])
    y = np.array([0,1])
    model = DummyClassifier()
    model.fit(X,y)
    return model

def dummy_predict(model):
    X = np.array([[1],[2]])
    model.predict(X)

#pipeline.py
from kedro.pipeline import Pipeline, node
from .nodes import dummy_predict, create_mlflow_model_artifact

def create_pipeline(**kwargs) -> Pipeline:
    return Pipeline(
        nodes=[
            node(
                func=create_mlflow_model_artifact,
                inputs=None,
                outputs="mlflow_logger_model",
                name="create_mlflow_model_artifact",
            ),
            node(
                func=dummy_predict,
                inputs="mlflow_logger_model",
                outputs=None,
                name="dummy_predict",
            ),
        ]
    )

In this scenario, the dummy classifier is logged to mlflow but can not be used by the second node dummy_predict

DatasetError: Failed while loading data from data set
MlflowModelLoggerDataSet(artifact_path=model, flavor=mlflow.sklearn,
load_args={}, save_args={}).
The following failures occurred while downloading one or more artifacts from
................

We could save the model as an MlflowArtifactDataSet and provide a path instead:
#catalog.yml
mlflow_logger_model:
    type: kedro_mlflow.io.artifacts.MlflowArtifactDataSet
    data_set:
        type: kedro_mlflow.io.models.MlflowModelSaverDataSet
        flavor: mlflow.sklearn
        filepath: data/06_models/sklearn_model

It worked when I launched the pipeline with this configuration. However I suspect it only worked because I had first ran the pipeline locally and the sklearn_model folder existed on my local machine before launching the pipeline.
Maybe the best way is to consider that everything that is tracked by mlflow should not be reused as an input in the pipeline.

Hi, thanks for creating the issue!
Are you using external MLflow instance or the one that is built-in in the AML Workspace?
If you're using the built-in MLflow, as a temporary workaround before we dive into debugging, you can actually use kedro-azureml without kedro-mlflow and call mlflow.<framework>.log_model and all other MLflow's functions without any restrictions. AML workspace injects appropriate MLflow environment variables automatically into nodes, so you don't have to set anything on your own. Remember to install the plugin with kedro-azureml[mlflow] extra.

Hi Marcin, thanks for your reply.
After further investigation, I don't think the issue comes from MLFlow.
In fact, in my example above, if I don't specify mlflow_logger_model in catalog.yml, it is passed between nodes as a MemoryDataset and the pipeline succeeds.
However,  if I explicitely pass the model as a pickle dataset
#catalog.yml
mlflow_logger_model:
    type: pickle.PickleDataSet
    filepath: mymodel.pkl

then the pipeline fails
DatasetError: Failed while loading data from data set
PickleDataSet(backend=pickle,
filepath=/mnt/azureml/cr/j/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/exe/wd/mymodel.pkl,
load_args={}, protocol=file, save_args={}).
[Errno 2] No such file or directory:
'/mnt/azureml/cr/j/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/exe/wd/mymodel.pkl'

Saving the model seems to succeed but loading it in the next node fails.

If you're using AzureML, there is no concept of local paths there - saving your model to filepath: mymodel.pkl will save this file ONLY in the node that created it. Next node - in your case - the one that should consume the pickle - has completely separate file system - there are no shared volumes between the nodes in AzureML.
If you want to pass data between the models you have the following options:

Use fsspec-compatible path and save the data to Azure Blob Storage (this works will most if not all Kedro datasets). See https://docs.kedro.org/en/stable/data/data_catalog.html#specify-the-location-of-the-dataset

mlflow_logger_model:
    type: pickle.PickleDataSet
    filepath: abfs://<your storage container>/mymodel.pkl

Use recently released AzureMLAssetDataSet (it's available in 0.5.0) https://kedro-azureml.readthedocs.io/en/0.5.0/source/05_data_assets.html#kedro_azureml.datasets.asset_dataset.AzureMLAssetDataSet

mlflow_logger_model:
  type: kedro_azureml.datasets.AzureMLAssetDataSet
  azureml_dataset: my_model
  root_dir: data
  versioned: True
  dataset:
    type: pickle.PickleDataSet
    filepath: mymodel.pkl

Thank you for the detailed reply.
Yes, I am aware there is no notion of local paths here and that the file system of a node is not accessible by another node.
That being said, if a node output is the input of the next node and if said output is not defined in catalog.yml, kedro-azureml automatically creates a .bin file in the container specified in the config.
From my understanding, this is how you pass output of a node to the next one.
However kedro-azureml does not create these .bin files for other types of datasets and therefore, pipelines that work locally with a standard kedro run will break if these datasets are used as is.
Do you think kedro-azureml should also create these .bin files for outputs that are used as inputs of the next node ?
If not, and I would understand if you don't want to modify the standard behavior of datasets, do you think kedro-azureml should show a warning when the output of a node is also used as input of another node and its filepath is a local filepath ? Or maybe even an option to automatically transform the filepath to a path on the blob storage ? Or use the new AzureMLAssetDataset ?
If this sounds appealing, I am happy to help with the implementation.
Once again, thank you for having taken the time to reply.

However kedro-azureml does not create these .bin files for other types of datasets and therefore, pipelines that work locally with a standard kedro run will break if these datasets are used as is.

That is not true, there are 2 cases:

if one of node's output dataset is an input to another node AND the dataset is not defined in the catalog then:

in local run (kedro run) you will get MemoryDataSet in the place of missing catalog entries
in AzureML run (kedro azureml run) you will get KedroAzureRunnerDataset (code) in the place of missing catalog entries

both cases work seamlessly.

if one of node's output dataset is an input to another node AND the dataset IS defined in the catalog then:

in local run (kedro run) you will get the implementation as specified in the catalog, if the local paths are used - it will work; it remote paths are used (e.g. abfs:// for Azure Blob Storage) it will also work, provided that you have appropriate credentials to access Azure Blob Storage from where you're executing the kedro run
in AzureML run (kedro azureml run) you will also get the implementation as specified in the catalog; local paths will not work - and it's a configuration issue, not a plugin issue; if remote paths are used, it will work, also if the credentials are set.

That approach is fully aligned with how Kedro behaves.
Modifying the plugin to inspect the catalog trying to determine whether someone made a mistake is too invasive and has too many edge cases (e.g. someone might WANT to load the file from local path even though they are running in AzureML - like a simple file stored on a disk within a docker container - as we use in e2e test in this repo).

I see,
Thank you for your explanations.
That makes a lot of sense and I agree it is better not to overcomplicate the plugin.
I am closing the issue.
Regarding the initial problem with kedro-mlflow, the correct workaround is to use the MlflowArtifactDataset with a non local path.

Closing as solved ✅


Mass edit overlay for road selection panel

the image above demonstrates how mass edit overlay looks like while road selection panel is active.
In pull request #631 I was unable to enable mass edit overlay without causing other bugs. Therefore I blocked the code and created this issue to continue the work.
details of the problem:
if I call ModUI.EnableTool then then road selection panel disappears.I tried calling  tmTool.SetTioolMode. that prevents road selection panel from disappearing. but then the RoadWorldInfoPanel does not appear anymore (nothing happens when I click on the road).
if I press the traffic manager button to open the main menu, it solves the problem forever. even if I close traffic manager main menu, RoadWorldInfoPanel will show whenever I click on it even when enabling mass edit overaly. Performing hotswap brings us back to square one (See bellow)
Steps to reproduce: EDIT( after further testing I am not sure if steps bellow are accurate)

click on a road => RoadWorldInfoPanel is displayed
click on road selection button => RoadAdjust Panel is displayed and MassEditOVerlay is activated.
click on different roads => road selection is updated but RoadWorldInfoPanel is no longer displayed (it should)
Press escape to quite road selection view.
click on a road name => nothing happens (RoadWorldInfoPanel should open)
Click on Traffic manager button to open the main menu. then click on it again to close the main menu.
click on a road name => RoadWorldInfoPanel is displayed like step 1.
click on road selection button => RoadAdjust Panel is displayed and MassEditOVerlay is activated like step 2
click on different roads => RoadWorldInfoPanel is displayed UNLIKE step 3
Press escape to quite road selection view  like step 4
click on a road name => RoadWorldInfoPanel is displayed UNLIKE step 5. for some reason clicking on traffic manager button solves the problem forever.
perform HotSwap . This puts us in the EXACT same state as step 1.

here is the code for enabling mass edit overlay:
        private void ShowMassEditOverlay() {
            var tmTool = ModUI.GetTrafficManagerTool(true);
            if (tmTool == null) {
                Log.Error("ModUI.GetTrafficManagerTool(true) returned null");
                return;
            }
            MassEditOVerlay.Show = true;
            tmTool.InitializeSubTools();
            tmTool.SetToolMode(ToolMode.None);
        }

I have been doing some further testing. I set current tool to TMPE once road selection mod is activated. The first time, road selection mod disappears. the second time it does not. I don't understand why.

I have been thinking maybe I should not change current tool but rather I should simple call TrafficMangerTool.RenderOverlay(). I can patch ToolManager.EndOverlayImpl to call TrafficMangerTool.RenderOverlay() when road selection panel is visible.
Is there anyway to call TrafficMangerTool.RenderOverlay()  without patching (and without changing the current tool)?

I fixed this in the code review. This bug never got to master.