Proper Proxy Configuration

My Project Setup :

Spring Boot / Starter Webflux : 2.3.5.RELEASE
Spring Cloud : Hoxton.SR8
feign-reactor-spring-cloud-starter : 2.0.23

I need to use a corporate proxy for any non-local requests.
Adding configuration entries to JAVA_OPTS does not seem to have any effect (it does work with non-reactive stack):
-Djava.net.useSystemProxies=true
-Dhttp.proxyHost=myproxy.com
-Dhttp.proxyPort=80
-Dhttps.proxyHost=myproxy.com
-Dhttps.proxyPort=80

What is the proper way of configuring this?

Google tells
https://stackoverflow.com/questions/58689235/proxy-setting-not-working-with-spring-webclient/59640393#59640393

I saw that. I tried creating a bean for the ClientHttpConnector (ReactorClientHttpConnector) first and later feeding the WebReactiveFeign builder with my own WebClient.Builder with the former clientConnector, but neither worked. It seems to use another ClientHttpConnector from somewhere else.

Hi
I think I had a similar problem, webClient settings are lost.
WebReactiveFeighn builder has WebClientFeignCustomizer, so I've used it to set connector once again.
Maybe this code sample works for you:
        val connector: ClientHttpConnector = JettyClientHttpConnector(httpClient)

        val webClientBuilder = WebClient.builder()
                .clientConnector(connector)
                .codecs { configurer ->
                    configurer.registerDefaults(false)
                    configurer.customCodecs().register(Jackson2JsonEncoder(objectMapper, MediaType.APPLICATION_JSON))
                    configurer.customCodecs().register(Jackson2JsonDecoder(objectMapper, MediaType.APPLICATION_JSON))
                }

        val webReactiveFeignBuilder = WebReactiveFeign.builder<T>(webClientBuilder) { builder ->
            builder.clientConnector(connector)
        }
                .contract(contract)
                .statusHandler(errorDecoder)

@Viacheslav-Petriaiev  this is the only one correct workaround solution. Will create to introduce proxy settings in ReactiveOptions class

Setting both the WebReactiveFeign and the WebClientFeignCustomizer builders with the connector did the trick.

@cesardrk you can implement the WebClientFeignCustomizer class to solve this case
the following is an example that you might try :

you can use ConfigurationProperties so that the configured values can be changed directly through the properties without having to change the source code (optional)

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
@ConfigurationProperties(prefix = "proxy")
public class ProxyProperties {

  private boolean enabled;
  private String host;
  private int port;
  private String username;
  private String password;
  private long timeout;
}

most importantly you need to implement the WebClientFeignCustomizer class, using ReactorClientHttpConnector and HttpClient

import lombok.RequiredArgsConstructor;
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.client.WebClient;
import reactivefeign.webclient.WebClientFeignCustomizer;
import reactor.netty.http.client.HttpClient;

import static reactor.netty.tcp.ProxyProvider.Proxy.HTTP;

@Component
@RequiredArgsConstructor
public class FeignInterceptor implements WebClientFeignCustomizer {

  private final ProxyProperties proxyProperties;

  @Override
  public void accept(WebClient.Builder builder) {
    if (proxyProperties.isEnabled()) {
      HttpClient httpClient = HttpClient.create()
          .tcpConfiguration(tcpClient -> tcpClient.proxy(typeSpec -> typeSpec.type(HTTP)
              .host(proxyProperties.getHost())
              .port(proxyProperties.getPort())
              .username(proxyProperties.getUsername())
              .password(password -> proxyProperties.getPassword())
              .connectTimeoutMillis(proxyProperties.getTimeout())
              .build()));

      builder.clientConnector(new ReactorClientHttpConnector(httpClient));
    }
  }
}

How can i only override Timeout configuration for reactive feign client globally?


Nvidia runtime

PoC to test building nvidia-container-toolkit as an external sysext.

This has proven useful on several occasions and I haven't found the time to implement this differently. So I think it's about time to release this officially and I'll provide official docs.
@tormath1 can you take a look?


Cry as Gate

Summary
Implement Cry as Gate Class.
Details and comments
With Terra’s ControlledGate class, it is now possible to implement CRy as a gate. In accordance with the CRz gate, this PR implements the CRy. At some point this needs to removed to terra, but it is needed already now and for the time being put in the same place as before.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Patrick Neuweiler seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Patrick Neuweiler seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi, thanks for the contribution. The plan has been to move the gates that were done for Aqua over into Terra. This process has already begun but is not quite complete. It would be better to raise this PR directly against Terra at this time I think. Please note you need to change a couple of the crz comments to cry!

Hi, Ok I will do so and raise the PR to Terra directly. Thanks a lot.

Great! Once you have done that would you close this PR then, thanks.


Game crashes to desktop when Lara wades in water (hair crash)

Level is attached bellow,
Basically, when Lara goes into water, then goes to surface and starts to wade. Game crashes to desktop. The same behavior is also seen into Dozy mode, but the water one is more worrisome
Level.zip

Sorted. For future reference of anyone checking this issue: all names of hair bones must be unique.

Addendum: The root cause of the issue is, when the hair object has several meshes with the same name, the game crashes.


must run condition for biomass

quick fix for our biomass problems:

biomass plants are mistakenly added as solid biomass and not biogas
share of biomass in electricity generation is very low

A must run condition with p_min_pu of 0.7 leads to following results (365H):
before:

after:

before:

after:

new results:


Update README.md for 1.0.0

This adds the maven central badge and updates instructions
to use the released artifact. Closes #6.
Signed-off-by: Robert Varga<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 99

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 91.905%

Files with Coverage Reduction
New Missed Lines
%

triemap/src/main/java/tech/pantheon/triemap/INode.java
1
83.97%

Totals

Change from base Build 97:
0.0%

Covered Lines:
738

Relevant Lines:
803

💛  - Coveralls


build: use /usr/bin/env bash instead of /bin/bash

Using /usr/bin/env bash instead of /bin/bash makes the build script
a little more portable, as it's not always safe to assume that
/bin/bash exists (for example, this is the case in NixOS).

Huh, I forgot we had a build.sh.
Happy to help with

LGTM


To enable data type support for double

Support for the Datatype "double" as requested by NTT.

Thanks Venky, that was due to a merge issue. Corrected it now.

In my understanding, it is necessary to implement many functions called by ShmShuffleWriter and ShmShuffleReader to enable data type support for double. (e.g.  serializeVDouble in MapSHMShuffleStore, and many other JNI functions...)
I guess that this pull-request intend to treat double type key in the same way as long type key, but I think this pull-request is inadequate to merge double type processing flow and long type processing flow.
Please let me know if there is a misunderstanding or missing.


Fixing some warnings and disabling .net native compilation for IoTCon…

…nectorClient

Hi @rachitb777, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Rachit Bajpai). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

thanks @rachitb777


Over SSH, vim configuration for cursor shape is not respected

Environment
Windows build number: Microsoft Windows [Version 10.0.19041.804]
Windows Terminal version: 1.5.10411.0

Steps to reproduce

Open a powershell tab inside Windows Terminal
ssh another Windows machine

that has the latest vim version
and the following vim configuration content:

  let &t_ti.=" \e[1 q"
  let &t_SI.=" \e[5 q"
  let &t_EI.=" \e[1 q"
  let &t_te.=" \e[0 q"

run vim over ssh on that machine

Expected behavior

The vim configuration for cursor shape is respected, ie:

The cursor has a blinking box shape in Normal mode
The cursor has a blinking bar shape in Insert mode

Actual behavior

The vim configuration for cursor shape is not respected
Instead, the cursor always has the shape defined in local Windows Terminal's settings file

Additional note

The vim configuration is correctly respected if I use vim without ssh

What specific SSH client are you using? If you're using the SSH client provided by Windows itself, you may need to switch to a newer version at https://github.com/powershell/Win32-OpenSSH

The SSH client I'm reproducing the issue with: OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
The SSH client downloaded from your link: OpenSSH_for_Windows_8.1p1, LibreSSL 2.9.2

Using the latter, I can still reproduce the issue

Weird. This definitely doesn't repro in WSL locally, so I'm guessing that this is definitely a openssh issue. I don't have a remote machine handy to ssh into to confirm unfortunately. I'd file a bug upstream on https://github.com/PowerShell/Win32-OpenSSH/issues, to see if they can verify.


build Code compilation error

Your Environment
Plugin version:
Cordova version: 7.1

Plugin version: 3.0.3
*Cordova  Platform: Android  7.1.1
OS version: Windows 10
Device manufacturer and model:

Running in Simulator:
Cordova version (cordova -v):
Cordova platform version (cordova platform ls):
Plugin configuration options:
Link to your project:

Context

Expected Behavior

Actual Behavior

Possible Fix

Steps to Reproduce

Context

Debug logs

How did you solve the problem?


correct usage under windows?

Running it under windows gave me a BSOD.
Does it work under windows? Using Win 10 64bit.
I'm using it as:
   serialPort = new SerialPort.SerialPort('COM3', {

Hello, did you try the npm package instead the deprecating atmospherejs way ?
meteor npm install serialport

removed the package, added the package again and edited the code:
   serialPort = new SerialPort.SerialPort('\\\\.\\COM3', {
It works now.


Paste behavior in Fish Shell is unexpected

Environment

Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.19041.0 Microsoft Windows NT 10.0.19041.0

Windows Terminal v1.3.2651.0

Steps to reproduce

Install the fish shell in Ubuntu 20.04 (apt install fish)
Start fish
Paste multiple lines of shell commands

Expected behavior

Like on a Linux desktop system, I would expect fish to show me all commands before they are executed. A confirmation by the user should be needed.
Actual behavior

Windows shows a paste warning, but the fish "security mechanism" is circumvented.
Windows Terminal seems to execute each line by itself instead of giving the whole pasted string to fish shell.

/dup #395


Updated asf-site site from master (9531fafdfb7c76257862f2a9e4fe2c81bf…

Generated from https://github.com/apache/incubator-griffin-site/pull/14
Files generated using ./deploy.sh
However, it seems file permissions are changed as well from 755 to 644 (default permissions). Seems correct to me, but please check.

Yes, we make deploy.sh 644 on purpose, make sure  think twice before deploy.


chore(GroupTheory/QuotientGroup): unindent theorem

Discovered following this Zulip thread.

@eric-wieser I think that bors rejected your merge, due to the awaiting-CI label: could you either re-merge or delegate?  Thanks!

bors merge


Move IoT Safe code examples to at_chops

- What I did

Moved IoT safe code from at_talk repo to at_chops
- How I did it
packages/at_chops/example/zariot/compute_verify_signature_sim.dart
This example will generate a new key pair, compute signature using generated ECC private keyfor a pre defined hash (hello world) and verify the signature using ECC public key.
packages/at_chops/example/zariot/external_signer.dart
All AT commands to interact with IoT Safe interface are implemented in external_signer
packages/at_chops/example/zariot/at_chops_secure_element.dart
implementation of at_chops which delegates signing functionality to external_signer
packages/at_chops/example/zariot/onboard_secure_element.dart
sample code to test onboarding for an atsign whose pkam private key is in the sim card.
- How to verify it
Run compute_verify_signature_sim.dart in a pi device which has sim mounted. Verify result should be success
Run onboard_secure_element.dart in a pi device
pre conditions:  atsign is provisioned in staging/prod. Atsign is activated through registrar API and cram secret should be available.
- Description for the changelog

running dart analyze in at_chops/example/zariot shows 26 issues ... can you fix the warnings please @murali-shris ?

done


Inconsistent intersection operation with Shapely 1.8

Expected behavior and actual behavior.
With Shapely 1.7.1, the results are the following:
False POLYGON ((657.1111793421711<PHONE_NUMBER>48389, 84.74045967641752<PHONE_NUMBER>648194, 85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>627221<PHONE_NUMBER>693022,<PHONE_NUMBER>421711<PHONE_NUMBER>48389))
False POLYGON ((657.1111793421711<PHONE_NUMBER>48389, 84.74045967641752<PHONE_NUMBER>648194, 85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>627221<PHONE_NUMBER>693022,<PHONE_NUMBER>421711<PHONE_NUMBER>48389))
False POLYGON ((657.1111793421711<PHONE_NUMBER>48389, 84.7404596764175<PHONE_NUMBER>648194, 85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>627221<PHONE_NUMBER>693022,<PHONE_NUMBER>421711<PHONE_NUMBER>48389))

Whereas with Shapely 1.8 and onwards, it yields the following:
False MULTIPOINT (85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>421711<PHONE_NUMBER>48389)
False MULTIPOINT (85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>421711<PHONE_NUMBER>48389)
False POLYGON ((84.74045967641753<PHONE_NUMBER>648194, 85.30144919696846<PHONE_NUMBER>857326,<PHONE_NUMBER>62722<PHONE_NUMBER>6930216,<PHONE_NUMBER>421711<PHONE_NUMBER>48389, 84.74045967641753<PHONE_NUMBER>648194))

The intersection should be a polygon, like with Shapely 1.7.1, would you have any idea what could cause such a behaviour ?
Thanks a lot for your help !
Steps to reproduce the problem.
from shapely.geometry import Polygon
import numpy as np

arr1 = np.array(
    [
        (84.74045967641753,<PHONE_NUMBER>648194),
<PHONE_NUMBER>421711,<PHONE_NUMBER>48389),
<PHONE_NUMBER>62722,<PHONE_NUMBER>6930216),
        (85.30144919696846,<PHONE_NUMBER>857326),
    ]
)

arr2 = np.array(
    [
        (84.74045967641752,<PHONE_NUMBER>648194),
<PHONE_NUMBER>421711,<PHONE_NUMBER>48389),
<PHONE_NUMBER>627221,<PHONE_NUMBER>6930216),
        (85.30144919696846,<PHONE_NUMBER>857326),
    ]
)

p1_source = Polygon(arr1)
p2_source = Polygon(arr2)

p1_round32 = Polygon(arr1.round(32))
p2_round32 = Polygon(arr2.round(32))

p1_round18 = Polygon(arr1.round(18))
p2_round18 = Polygon(arr2.round(18))

print(p1_source == p2_source, p1_source.intersection(p2_source))
print(p1_round32 == p2_round32, p1_round32.intersection(p2_round32))
print(p1_round18 == p2_round18, p1_round18.intersection(p2_round18))

Operating system
Any OS (tested on Ubuntu 18, 20, 21 and Windows 10)
Shapely version and provenance
1.7.1 vs 1.8 and onwards

Seems like a bug with OverlayNG (@dr-jts?). Using GEOS' tools:
$ geosop -a "POLYGON ((84.74045967641753<PHONE_NUMBER>648194,<PHONE_NUMBER>421711<PHONE_NUMBER>48389,<PHONE_NUMBER>627219<PHONE_NUMBER>693022, 85.30144919696846<PHONE_NUMBER>857326, 84.74045967641753<PHONE_NUMBER>648194))" -b "POLYGON ((84.74045967641752<PHONE_NUMBER>648194,<PHONE_NUMBER>421711<PHONE_NUMBER>48389,<PHONE_NUMBER>627221<PHONE_NUMBER>693022, 85.30144919696846<PHONE_NUMBER>857326, 84.74045967641752<PHONE_NUMBER>648194))" -f wkt intersection

yields the same MULTIPOINT as reported.
Using JTS testbuilder, Overlay's intersection yields POLYGON, while OverlayNG's intersection yields the same MULTIPOINT.

Yes, that looks like a bug alright.  Will look into it more ASAP.

@matthiasmindee no fix yet, I'm afraid.

Thanks for the update !


Forwarded Email is Converted from HTML to Plain Text

I'm using Mailgun and when I get an HTML email and try to forward it, the forwarded message is in plain text. Is there a way for me to maintain the forwarded message as HTML?

I was able to manually set any outgoing email to use HTML with the following:
Mail::send([], [], function ($message) use ($email, $contactEmail) {
    $message->to($contactEmail)
        ->replyTo($email->from())
        ->subject($email->subject())
        ->setBody($email->body(), "text/html");
});


Deeper hierarchies

Hi,
I'm interested in your work.
Can you explain how to have deeper hierarchies for datasets?
And do have any plan to release model weights?

Hi @hmd78,
Thanks for your interest.
For your questions,

You can use some datasets with labels of deeper hierarchies (annotated) or leverage LLMs to automatically obtain deeper labels as described in Sec4.1 in the paper.
The release of model weights will be considered after the paper has been accepted.

Best,
Peng


Phaser3 forcelandscape in mobile view

check it

Are you showing a bug (if so, what is it?), or is this a new feature?

Closing due to lack of response.


updating prompt template severs existing connections in flow

Describe the bug
Updating the prompt template severs all connections in the flow
Browser and Version

Chrome
Version [124]

To Reproduce
Steps to reproduce the behavior in prompt component

Go to 'template' field
update the prompt
Save
See error: all connections are severed, both inbound and outbound.

Additional context
This happens the first time when updating a newly created prompt component. After recreating the connections and repeating these steps, those connections stay. We used the Vector Store RAG template

Hello,
Sorry for the delay. Did you try using the new version? Does the error still persist?

Hi @bettinaswynnerton

I hope you're doing well. Just a friendly reminder that if we do not hear back from you within the next 3 days, we will close this issue. If you need more time or further assistance, please let us know.
Thank you for your understanding!

Thank you for your contribution! This issue will be closed. If you have any questions or encounter another problem, please open a new issue and we will be ready to assist you.


Resize video on dynamic animated components

Hello!
I currently need to somehow resize a video during an animation. Im changing the videoplayers size with a Layoutanimation which makes the video stretch.
So my question is if it is possible to resize the video somehow so it fits to the new height and width of the container? Reloading the video is also a plausible solution but Im not sure how to even do this.
Should also notice that this is mainly on Android and not on IOS

Hi, I stumbled into this as well and fixed it (for Android), the PR is here: https://github.com/react-native-community/react-native-video/pull/432

Does anyone have the iOS experience to duplicate the changes for this as well? Our application is using this package and we have this problem on iOS.

On iOS it should not happen. However, make sure you specify the muted attribute! Otherwise iOS does not follow the resizeMode specifier.

@arjan That worked for us in iOS, just opened a PR, because this behaviour is kind of weird and unintuitive. Thanks for your help, we really appreciate that you took the time! 👍

NP :) I also found this out more or less by accident.

great this seems to be fixed! thanks everyone!

I think i have a similar problem
I have this code
<Video                     ref={this.attachVideoRef}                     source={{ uri: this.mediaShowed.displayPath() }}                     onEnd={this.handleVideoEnd}                     paused={this.isPaused}                     style={s.mediaViewerDefault}                     onVideoError={$warn}                     onError={$warn}                     resizeMode="contain"                 />
and
    mediaViewerDefault: {         flex: 1,         alignItems: 'center',         justifyContent: 'center',     },
but when I change the Url to another video, only in android the size kept is the one from the previous video so the results come with a stretched video

@hamzaouhssain1993
I've had a similar issue. Rerendering  component after data change worked for me. You can do it for instance by key property
<Video
     source={{
        uri: videoData.path,
     }}
     key={videoData.path}
     style={{ height: '100%', width: '100%' }}
     resizeMode="contain"
 />

Yes it worked with the Key! Thank you!


choose different font if comic.ttf is not available (for linux support)

if comic.ttf font does not exist it will choose different font from C:/Windows/Fonts/ to use instead this makes it work on linux with wine/proton out of the box without needing to add the font manually

the second change fixes problem with the mouse staying locked on middle of screen when the game is in windowed mode after alt tabbing out of the game

good changes, thanks!


support forcing brew-installed SSH and custom SSH path for git operations

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

After enabling U2F/FIDO2 SSH keys on my machine, I quickly realized I wasn't able to tap a private repo using SSH. The reason for this is because of brew's env filtering keeping my brew-installed OpenSSH from being used. The only workaround is HOMEBREW_NO_ENV_FILTERING=1, which is being deprecated soon and is a bad idea to use.
This newer version of SSH is necessary because OS X has specifically disabled hardware keys.
@MikeMcQuaid previously recommended adding a new environment variable to support this use case in https://github.com/Homebrew/brew/issues/11425
I've added support for forcing brew-installed SSH and also providing a custom path to SSH, exactly how curl and git are handled.
Before:
❯ brew tap redacted git@github.com:redacted
==> Tapping redacted
Cloning into '/opt/homebrew/Library/Taps/redacted'...
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Error: Failure while executing; `git clone git@github.com:redacted /opt/homebrew/Library/Taps/redacted --origin=origin --template=` exited with 128.

After installing openssh with brew and using the new env var:
❯ HOMEBREW_FORCE_BREWED_SSH=1 brew tap redacted git@github.com:redacted
==> Tapping redacted
Cloning into '/opt/homebrew/Library/Taps/redacted'...
Confirm user presence for key ECDSA-SK redacted
User presence confirmed
remote: Enumerating objects: 383, done.
remote: Counting objects: 100% (78/78), done.
remote: Compressing objects: 100% (73/73), done.
remote: Total 383 (delta 7), reused 14 (delta 5), pack-reused 305
Receiving objects: 100% (383/383), 71.08 KiB | 1.62 MiB/s, done.
Resolving deltas: 100% (147/147), done.
Tapped 12 formulae (25 files, 93.3KB).

I'm in the process of getting my entire organization to use U2F SSH, but we also use homebrew extensively, so this is a blocker for us. Appreciate your review!

Unfortunately it looks like there's more problems to solve regarding U2F SSH keys and Brew when running update.
sign_and_send_pubkey: signing failed for ECDSA-SK "/Users/jake/.ssh/id_ecdsa_sk": device not found
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.```

But, this PR still accomplishes what it set out to do.

Force pushed to get my gpg signatures correct, I changed keys right after I submitted this PR 😄


Project Creation

Project creation, remote repository creation. Link project and repository

[ ] Create initial project locally using Maven.
[ ] Configure Git repository in GitHub.
[ ] Link local project to repository.
[ ] First commit.


[Snyk] Security upgrade python from 3.11.10-slim to 3.13.0rc2-slim

Snyk has created this PR to fix 5 vulnerabilities in the dockerfile dependencies of this project.
Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Snyk changed the following file(s):

Dockerfile

We recommend upgrading to python:3.13.0rc2-slim, as this image has only 40 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Integer Overflow or Wraparound SNYK-DEBIAN12-ZLIB-6008963
  500

Improper Verification of Cryptographic Signature SNYK-DEBIAN12-APT-1541449
  150

CVE-2024-26461 SNYK-DEBIAN12-KRB5-6277411
  150

Arbitrary Code Injection SNYK-DEBIAN12-SHADOW-5423923
  150

Improper Validation of Integrity Check Value SNYK-DEBIAN12-SYSTEMD-5733385
  150

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

not upgrading to Python 3.13 due to compatibility issues. We will upgrade to the next patch of Python 3.11


Supporting Ruby marshaling for ActiveNode and ActiveRel

Can you throw a test in? Our untested stuff has a habit of getting refactored out or broken down the road.

Good idea!  I put in tests for neo4j-core and neo4j and even found some bugs along the way.  I think it's pretty solid now, but going to wait for Mssr. Travis

This is failing because it's not running against the marshal branch of neo4j-core.
We should be running Travis of neo4j against master of neo4j-core right?  Often we need to make changes to both at the same time before we release

Maybe the Gemfile should be configured so that if the CI environment variable is set that it runs against neo4j-core on GitHub master, but otherwise it doesn't specify, but we could have an else with the commented out line so that we could test locally

Just made that change, let me know what you think

We've had it setup a few ways in the past. I think it's best to leave
neo4j-core out of the Gemfile and test against a release whenever possible
because it will be a better representation of use in the wild, outside of
the gem dev process. We had a few cases in the past where Travis passed, we
released neo4j, but the release was broken for users because
neo4j.gemspec hadn't been updated to require a newer version of core. In
this case, of course, there's no way around adding it to the Gemfile and
testing against the core branch, but it'd probably be best to merge it,
release core, and update this gemspec to require that release as part of
this PR.
Sorry if that seems muddled, typing fast before bed!
On Wednesday, December 30, 2015, Brian Underwood<EMAIL_ADDRESS>wrote:

This is failing because it's not running against the marshal branch of
neo4j-core.
We should be running Travis of neo4j against master of neo4j-core right?
Often we need to make changes to both at the same time before we release
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1094#issuecomment-167940913.

Changes look great!

It seems like maybe we should have "Check if the neo4j.gemspec needs the neo4j-core pre-requisite updated" to our release checklist.
Maybe in Travis we could have a test against the currently released gem with allow_failures


Question more than issue

I'm assuming that your script was meant to alert users when recording stopped on cameras or was broken and such.  What I have found is that many times the following error will appear in the error log file<PHONE_NUMBER>.883 2019-12-19 23:26:30.883/UTC: ERROR  [uv.recording.info] Unable to close recording: Unable to update recording: 5dfc0718c2dced9cf01cb028 in CPSTask-1.  This prevents recording from occurring.  However, the Camera dashboard still shows last recording as "a few seconds ago....2 minutes ago" etc.  Have you had any experience with this as related to your script?  I need to play a bit more with this and verify but seems like we might not be notified based on your script in scenarios like this and will have to parse the logs for these types of errors.  Thoughts?

No, haven't experienced those errors. That is a bug in Unifi Video software, so rather than changing the script to check for such errors, the Ubiquiti developers should fix their side of the code.
Adding a check if a video-file is actually present and valid, or parsing log-files would require a local script I guess. This script uses the API, so no local script on the NVR is needed. But it is possible to check the database for video-files and verifying that these exists, or parsing the log-files for certain errors.

Yeah, its true.  I did some more digging.  It looks like this error occurred after some patching and kernel updates.  I didnt notice because i saw that recordings were all saying "a few seconds ago" in the dash but this isnt really true had I looked at the logs.  I set up automatic emails for the unattended updates on Ubuntu, or I guess i could just turn auto updates off.  This way i'll just check the logs any time an update is done for now.  Maybe i'll build a script to check for errors in the recording log at some point...too busy at the moment.  I use Icinga and i think they have some log parsers out there already to use with the agent.  I guess I could setup something like graylog also..  I really wish Ubiquiti devs would have some better more reliable notification or an API like you said for checking for these types of problems.  I still really havent found a better NVR solution yet...so just gonna be more careful.  I mostly wanted to let you know about this issue in case you were relying on your script to always provide accurate information about recording status.  Just be careful because it may fool you :)


Issue using div and CSS to control position of croppie

We are having an issue using a surrounding div element and CSS to position where on the page croppie appears.
Without any div element, I am noticing that croppie is centered completely in the middle of the page, which is fine. But upon placing it in a div and attempting to use any kind of CSS, it just floats off to the right of the page and doesn't seem to respond to trying to control the positioning.
Is there any good documentation or suggested ways to do this that perhaps we are missing?
Phillip

Sorry for the delayed response.  I'm having a hard time understanding your problem.  Could you throw together a jsbin or a jsfiddle to demonstrate the issue?


Momentum pressure loss for two phase fluids

Reported by wischhusen on 28 Nov 2012 16:25 UTC
In function FluidDissipation.Utilities.Functions.PressureLoss.TwoPhase.dp_twoPhaseMomentum_DP the momentum pressure difference is calculated wrong:
  //SOURCE 3: p.53, eq. 4.13: Calculation of heterogeneous approach with correction of mass flow rate for considering velocity difference between fluid phases
  SI.Pressure dp_mom_cor=SMOOTH(
      delta_xflow,
      0.05,
      0)*abs(mdot_A*meanVelEnd + mdotCorEnd*deltaVelEnd/Across) - abs(mdot_A*
      meanVelEnd + mdotCorEnd*deltaVelEnd/Across)
    "Momentum pressure loss using mass flow rate correction";

The difference must consider for the start position:
  //SOURCE 3: p.53, eq. 4.13: Calculation of heterogeneous approach with correction of mass flow rate for considering velocity difference between fluid phases
  SI.Pressure dp_mom_cor=SMOOTH(
      delta_xflow,
      0.05,
      0)*(abs(mdot_A*meanVelEnd + mdotCorEnd*deltaVelEnd/Across) - abs(mdot_A*
      meanVelSta + mdotCorSta*deltaVelSta/Across))
    "Momentum pressure loss using mass flow rate correction";

Migrated-From: https://trac.modelica.org/Modelica/ticket/914

Comment by anonymous on 28 Nov 2012 16:42 UTC
Fixed with 231eac017ff3a7494defbce94c546f3174d66ae3.

Modified by dietmarw on 28 Nov 2012 17:08 UTC

Changelog modified by dietmarw on 28 Nov 2012 17:08 UTC
Calculation of momentum pressure loss for two phase fluids corrected.


Avoid updating with identical dicts in ensure_dict

This PR updates ensure_dict to avoid repeated dict.update calls on identical dictionaries when traversing the layers of a HighLevelGraph. In particular, we can get many identical layers when passing collections to dask.optimize.
For example, on the current master we have:
In [1]: import dask
   ...: import dask.array as da
   ...:
   ...: x = [da.asarray([i]) for i in range(5_000)]
   ...: x_opt = dask.optimize(*x)

In [2]: %timeit -n 10 dask.compute(*x)
216 ms ± 2.14 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [3]: %timeit -n 10 dask.compute(*x_opt)
1.09 s ± 4.58 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

With the changes in this PR we have:
In [2]: %timeit -n 10 dask.compute(*x)
229 ms ± 12.4 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [3]: %timeit -n 10 dask.compute(*x_opt)
219 ms ± 14.4 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

cc @jcrist

This seems reasonable to me.

Thanks for reviewing @jcrist!


Inspection middleware needs to be updated to better handle Teams

Inspection middleware needs to be updated to check for TeamID and use that, otherwise use conversationID

Doing this brings the Python into alignment with the JavaScript and C#

@Virtual-Josh Josh, what is the status on this?  Do you have more info we could use to close the issue out?

Closing.  Not actionable.


Creecros placeholder

Fixes #17
Can just remove the labels, they are redundant now.

Can just remove the labels, they are redundant now.

Thanks.  I've sorted this.  Will push it tonight.


Sentry integration updates

Updates needed to the Sentry integration based on the review made by Lars in #236:

[x] Move handle_rest_exceptions to Invenio-REST (discussed with Lars, no need to do this but we should investigate why RESTExceptions are not logged)
[ ] Depend on invenio-logging[sentry] instead of specifying our own version of Raven. Not sure if this is possible now due to incompatibility between our Flask version and Invenio-Logging's Raven version
[ ] Remove logging.getLogger("py.warnings").propagate = False in invenio_app_ils/ext.py (fixed with https://github.com/inveniosoftware/invenio-logging/pull/45

https://github.com/inveniosoftware/invenio-logging/pull/45 is now merged and included in invenio-logging-v1.1.1.

Closing since all issues were related to Raven which is no longer used by default in invenio-logging.


mdbook deprecating google-analytics integration

Upstream mdBook will remove its google-analytics integration.
Instead downstream projects should put respective javascript code into theme/head.hbs

[ ] download google-analytics code from Google
[ ] create theme/head.hbs and add the analytics code there
[ ] switch CI to use upstream mdBook
[ ] remove our own branch of mdBook


New version of SDK doesn't find camera

Required Info

Camera Model
D435

Firmware Version
?

Operating System & Version
Linux (Ubuntu 16.04)

Kernel Version (Linux Only)
4.15.0-72-generic

Platform
PC

SDK Version
legacy / 2.31.0

Language
python

Segment
Robot

Issue Description
Hi,
I just installed the newest version of Intel RealSense SDK (2.31.0) but it doesn't recognize my camera anymore. I tried already to find already a way to downgrade it, but it seems I have to install everything again. Anybody knows an easier way to downgrade SDK or can explain why this is happening?
Thank you :)

Same for me on a Windows 10 system. After a downgrade  from 2.31 to 2.29 the D435 works again.

@ltorquato4 , do you have kernel/application logs for review?

Hi @ev-mp ,
I used in "realsense-viewer" in the command line in order to launch the Intel RealSense Viewer, it opened but it wasn't able to recognize the camera.
Also used the pyrealsense2 library, with a code that was working for the last release of IntelRealSense SDK, but it didn't work.
Now I reinstalled everything again, but still it doesn't work.

Hi @Debitsch ,
Could you explain me how you did your downgrade to this version?

I compiled the library using the source Code from GitHub. Using the latest Version (2.31.0) it was not possible to connect to the D435. Using the Version tagged with 2.29.0 worked.
Note: I tried it with a T265 too. For this sensor both Versions (29 + 31) worked.
Note: For Building I used the Visual Studio 2017 c++ Compiler.

@Debitsch , did you try to use the prebuild realsense-viewer for v2.31.0 from the release page ?
@ltorquato4 , please enable SDK logs in realsense-viewer under the settings in the upper right corner:

Then re-plug the camera and share the log for review.

The release build you provided works.
My Cmake configuration (in PreLoad.cmake) is
set(BUILD_EASYLOGGINGPP         ON              CACHE BOOL "override" FORCE)
set(CENTRAL_BL_VERSION          ON              CACHE BOOL "override" FORCE)
set(CMAKE_CONFIGURATION_TYPES   Debug;Release   CACHE STRING "override" FORCE)
set(CMAKE_DEBUG_POSTFIX         ""              CACHE STRING "override" FORCE)
set(BUILD_WITH_TM2              ON              CACHE BOOL "override" FORCE)
set(BUILD_SHARED_LIBS           OFF             CACHE BOOL "override" FORCE)
set(ENABLE_CCACHE               OFF             CACHE BOOL "override" FORCE)
set(BUILD_EXAMPLES              ON              CACHE BOOL "override" FORCE)
set(BUILD_WITH_STATIC_CRT       OFF             CACHE BOOL "override" FORCE)
set(FORCE_RSUSB_BACKEND         ON              CACHE BOOL "override" FORCE)

set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "override" FORCE)

set(CMAKE_SYSTEM_VERSION 10.0.16299.0 CACHE TYPE INTERNAL FORCE)
set (CMAKE_GENERATOR "Visual Studio 15 2017 Win64" CACHE INTERNAL "" FORCE)

using the build commands in a Visual Studio command prompt:
if exist Build rmdir /S /Q Build
mkdir Build
cd Build

cmake ..\

msbuild Build\INSTALL.vcxproj /p:Configuration=Release
msbuild Build\INSTALL.vcxproj /p:Configuration=Debug

@Debitsch , the Realsense devices are not recognized as you have the  FORCE_RSUSB_BACKEND option turned on

set(FORCE_RSUSB_BACKEND         ON              CACHE BOOL "override" FORCE)

The flag tells the SDK to replace the standard MS UVC driver with a different backend that also requires installation of Realsense INF files (Redistributed with Win7 Installer). The main use-case of this alternative backend is with Windows7 that doesn't provide a viable UVC support.
You need to rerun the CMake with this flag disabled, and then rebuild the solution

cmake ..\ -DFORCE_RSUSB_BACKEND=false

After using the correct configuration for the FORCE_RSUSB_BACKEND flag, Version 2.31 works fine.
Time to read the docs …
Thanks,
Rasmus

Hi @ltorquato4, Does your issue resolved as well?
Thanks,


chore: Run CI on all branches to assist contributors

Running CI on all branches allows contributors to run GitHub actions on their fork with minimal resistance. The contributor can inspect the results of their fork before opening a PR.

I'm reluctant to enable push for all branches because of the environmental impact. It may add convenience, but it also means running the workflow for no reason most of the time. I'd rather deal with the inconvenience of running manually than promote wasting energy on redundant runs.
I actually wanted to remove the push action entirely in favor of linting/testing on release, but I don't have permissions to modify the repos secrets to migrate our release workflow to GitHub Actions.
The best thing that can be done is test locally, but if that doesn't work for you, you could just open a pull request to either repo to run tests, right?

Makes sense. Thanks for this perspective.


Allow users to edit measures for a product

Addresses https://www.pivotaltracker.com/story/show/108449030

Is this a true statement "Changing a product's associated measures will reset all associated tests."  When i read this, it makes it seem like it will change all tests associated with the product.
Should it be "Changing a product's measures will reset all tests associated with the modified measures."

Yes Dave I that is correct. We should chat about the consequences of removing a measure.


How to set a custom JSONField.encoder

We are updating out app from Django 2.2 + django-activity-stream==0.8.0 to Django 3.2 + django-activity-stream==0.10.0
In version 0.8.0 django-activity-stream used to work with jsonfield_compat where JSONFIELD_ENCODER_CLASS can be used as a setting in order to set a custom JSONField.encoder. No such options exists anymore for Django's JSONField.

that was used for compatibility reason which is not needed in newer versions

I'm sorry @auvipy  but I cannot understand you, what do you mean by "not needed"? Is there a way to provide an "encoder" kwarg to  JSONField? Our app is storing data in Action.data which cannot be encoded with the default json.JSONEncoder so we definitely need this.

you can dig codes and find a solution, if that change is needed upstream, contributions are welcome.


Fixes for Xcode 7 warnings

I'm getting a few warnings under Xcode 7 (we're not Cocoapods, so I'm using a submodule.) These are some fixes, it's all just compiler hints.

The build died but I think that's an issue build side. This should all still work under earlier versions of Xcode, but I'll check.

+1, this fixed it for us.

Merged another PR that checks compiler version.


SYSINFO: Change "variable style" by "pointer style"

Change definition of NEORV32_SYSINFO and replace all "NEORV32_SYSINFO." by "NEORV32_SYSINFO->".
Even make the SYSINFO structure volatile.

Thank you very much for all your work!!! 👍


jetbrains-resharper: init at 2023.3.3

Description of changes

Adds Jetbrain's ReSharper command line tools.

ReSharper Command Line Tools is a set of free cross-platform standalone tools that help you integrate automatic code quality procedures into your CI, version control, or any other server.

https://www.jetbrains.com/help/resharper/ReSharper_Command_Line_Tools.html
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 294639 run on x86_64-linux 1

1 package built:

jetbrains-resharper

closing as I would like to rename the package to jetbrains-resharper-cli


Restore removed backends and resource providers

Restores support for gmysql, gpgsql, and gsqlite3 backends to an authoritative server
Updates J. Timberman's domain and record resource providers for authoritative servers
Adds backend package to enable 'pipe' backend configuration
Changes default backend to 'gsqlite3' (because this works for both source and package builds)
Converts resource providers from LWRPs to HWRPs
Updates resource providers to use database-agnostic Sequel for DB access
Updates README with resource documentation

Folks, it has been a few weeks without comment or activity.  I see recent Aetrion/DNSimple activity on this repo, but outside pull requests are not being merged.   I would really like to get this material uploaded to the supermarket, and stop pulling down copies from git.
Do you guys intend to maintain the authoritative side of this cookbook in the future?
Is there anything I can do to make this PR easier to merge?

Hi @http-418
We definitely intend to keep the authoritative around as we currently use it in production. Could you catch up your branch to master so we can schedule it for a formal code review next week?

Rebasing my branch will take some extensive work, you've rewritten a lot of things since I last did so.  It looks like the database-independent parts of my providers are still valuable, thoguh.
I should get back around to this in September.


Add PAGE XML examples

Nice, thank you.

I updated the website and also fixed a W3C validator warning.

Thank you! Do you know why the transformation abbyy__hocr is not showing up?

Yes, the xsl file was missing. I had to run make all, too. Done now.


If the single worker raises an exception, ensure that it is released

@Tapjoy/eng-group-services
cc @StabbyCutyou
We got another bad job file—and no more work was being processed, without error. This addresses that issue.

You could drop line 29 if you wanna get picky, but otherwise I see the problem here. Lgtm.

What happens in this scenario:

Who catch and rescues the exception?
Do filesystem jobs get recovered (i.e. made new again)?

The implementation in the forked worker is a little more thorough, but it's basically doing the same things here as far as I can see.
The worker bombing out because of exceptions should and re-trying the job should be handled elsewhere from what I remember.

I had looked through the code and it wasn't obvious to me how this was being handled.  I'd like to make sure we look through the code and understand / test the behavior.  Whoever looks at it, please post references to lines of code that accomplish proper recovery.

Jobs that fail should be handled by the worker.rb itself (the base one in lib, not the strategies), but that brings up a good point - how did a crash in the worker itself bubble up to this point, when it should be handled by the worker itself to make sure the jobs get re-enqueued? Perhaps there are exceptions in worker.rb we're not accounting for?

An exception in SingleWorkerStrategy#assign is caught here. This causes the (consumer) batch being worked on to be abandoned in the inprogress directory, and the next batch will be attempted. Nothing is recovered.
It looks like the unaccounted-for exception that happened in this case is unique to the batched worker—the regular worker catches this. It still abandons the job, but not the whole batch.
The right solution here is probably to log errors and recover as gracefully as possible in the non-batched worker—as it is, any error that bubbles up to here will cause all further processing to halt without any alert—but the solution for the batched worker is a little more involved.

Added some logging and cleaned this up a bit.

If something does re-enter this by accident, would the @worker=nil line break anything?
Just wanna make sure we've thought the ensure block all the way through, but in general I think this is probably better than nothing either way.

It sure would. How does this look?

Much safer :)
If this works and you're happy with it, LGTM


Use include option for playlist

I want to download all files from a channels when a specific string can be found in the Name of the playlist not the Video. How can i do this? When i try --include this only, works for strings in the Video title.

--match-filter FILTER. No --include options even exists.


fix: set width of max-content to .marquee__slide

Issue
width: max-content was removed in v.2.0.0 from .marquee__slide. It doesn't cause any issues in the react-marquee example but content is being squished on a real site. Adding it back fixes this issue.
Could we add this back?

@marlonmarcello I know that I had added width: max-content for a Safari fix for a project where the scrolling marquee would not have the right width and overlapped things.
You removed it in favor of setting the .marquee__slide to display: inline-flex; over display: grid; Do you think that change would be better long-term or was that a one off thing?


PNG image color differs for GL and Software renderers

I'm using the PicturePng example with my own image file (

).
The result on Mac OS is different depending on the renderer (GL - left, SW - right):

As you may see, the left (GL) picture is more pinky.
I'm using commit with the hash c9960fcc

@alex-dorokhov the fix will be in 1.0.0-pre3. Thanks.

@alex-dorokhov if you need an official release (v0.15.2), please let me know. thanks.


how to run test case in ring_reducer_test.cc

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):CentOS Linux release 7.6.1810 (Core)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:N/A
TensorFlow installed from (source or binary):source
TensorFlow version:1.14.0
Python version:3.6.8
Installed using virtualenv? pip? conda?:pip
Bazel version (if compiling from source): 0.25.0
GCC/Compiler version (if compiling from source):7.3.1
CUDA/cuDNN version:cuda:10.0, cudnn:<IP_ADDRESS>
GPU model and memory:Telas v100, 32GB

I want to run test case in tensorflow/core/common_runtime/ring_reducer_test.cc, so I try this:
bazel test -c opt --config=cuda //tensorflow/core:ring_reducer_test

but bazel give me a error messages:
debian ~/collective/tensorflow $ bazel test -c opt --config=cuda //tensorflow/core:ring_reducer_test
WARNING: The following configs were expanded more than once: [cuda]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
ERROR: Skipping '//tensorflow/core:ring_reducer_test': no such target '//tensorflow/core:ring_reducer_test': target 'ring_reducer_test' not declared in package 'tensorflow/core' defined by /home/zxy/collective/tensorflow/tensorflow/core/BUILD
ERROR: no such target '//tensorflow/core:ring_reducer_test': target 'ring_reducer_test' not declared in package 'tensorflow/core' defined by /home/zxy/collective/tensorflow/tensorflow/core/BUILD
INFO: Elapsed time: 0.212s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
FAILED: Build did NOT complete successfully (0 packages loaded)

bazel thinks that ring_reducer_test is not exist in /home/zxy/collective/tensorflow/tensorflow/core/BUILD, but I do find it. So can you help me to run test case in ring_reducer_test.cc?

I think you did not run ./configure? Please look at issue #4279

the same error even after run ./configure, below is content of .tf_configure.bazelrc:
build --action_env PYTHON_BIN_PATH="/home/zxy/collective/bin/python"
build --action_env PYTHON_LIB_PATH="/opt/rh/llvm-toolset-7.0/root/usr/lib/python2.7/site-packages"
build --python_path="/home/zxy/collective/bin/python"
build --action_env PYTHONPATH="/opt/rh/llvm-toolset-7.0/root/usr/lib/python2.7/site-packages:/opt/rh/devtoolset-7/root/usr/lib64/python2.7/site-packages:/opt/rh/devtoolset-7/root/usr/lib/python2.7/site-packages"
build:xla --define with_xla_support=true
build --action_env TF_NEED_OPENCL_SYCL="0"
build --action_env TF_NEED_ROCM="0"
build --action_env TF_NEED_CUDA="1"
build --action_env TF_NEED_TENSORRT="0"
build --action_env CUDA_TOOLKIT_PATH="/usr/local/cuda"
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="7.0,7.0,7.0,7.0"
build --action_env LD_LIBRARY_PATH="/opt/rh/llvm-toolset-7.0/root/usr/lib64:/opt/rh/devtoolset-7/root/usr/lib64:/opt/rh/devtoolset-7/root/usr/lib:/opt/rh/devtoolset-7/root/usr/lib64/dyninst:/opt/rh/devtoolset-7/root/usr/lib/dyninst:/opt/rh/devtoolset-7/root/usr/lib64:/opt/rh/devtoolset-7/root/usr/lib"
build --action_env TF_CUDA_CLANG="0"
build --action_env GCC_HOST_COMPILER_PATH="/opt/rh/devtoolset-7/root/usr/bin/gcc"
build --config=cuda
build:opt --copt=-march=native
build:opt --copt=-Wno-sign-compare
build:opt --host_copt=-march=native
build:opt --define with_default_optimizations=true
build:v2 --define=tf_api_version=2
test --flaky_test_attempts=3
test --test_size_filters=small,medium
test --test_tag_filters=-benchmark-test,-no_oss,-oss_serial
test --build_tag_filters=-benchmark-test,-no_oss
test --test_tag_filters=-gpu
test --build_tag_filters=-gpu
build --action_env TF_CONFIGURE_IOS="0"

Is there some wrong in .tf_configure.bazelrc?

Tensorflow is built with bazel version 0.24.1. Can you please try it with bazel 0.24.1 and let me know if you are able to build successfully. For more info, go through this link.

The same error even with bazel 0.24.1:
(collective) gpu7 ~/collective/tensorflow $ bazel test -c opt --config=cuda //tensorflow/core:ring_reducer_test
Starting local Bazel server and connecting to it...
WARNING: The following configs were expanded more than once: [cuda]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
DEBUG: /home/zxy/.cache/bazel/_bazel_zxy/398544b8d2045ac5982abb4c34aae05c/external/bazel_tools/tools/cpp/lib_cc_configure.bzl:115:5:
Auto-Configuration Warning: 'TMP' environment variable is not set, using 'C:\Windows\Temp' as default
ERROR: Skipping '//tensorflow/core:ring_reducer_test': no such target '//tensorflow/core:ring_reducer_test': target 'ring_reducer_test' not declared in package 'tensorflow/core' defined by /home/zxy/collective/tensorflow/tensorflow/core/BUILD
ERROR: no such target '//tensorflow/core:ring_reducer_test': target 'ring_reducer_test' not declared in package 'tensorflow/core' defined by /home/zxy/collective/tensorflow/tensorflow/core/BUILD
INFO: Elapsed time: 8.180s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded)
FAILED: Build did NOT complete successfully (1 packages loaded)

version of bazel is:
(collective) gpu7 ~/collective/tensorflow $ bazel version
Build label: 0.24.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Tue Apr 2 16:29:26 2019<PHONE_NUMBER>)
Build timestamp:<PHONE_NUMBER>
Build timestamp as int:<PHONE_NUMBER>

@Keepmoving-ZXY This is the configuration of Tensorflow-gpu 1.14
Version - tensorflow_gpu-1.14.0
Python version - 2.7, 3.3-3.7
Compiler - GCC 4.8
Build tools - Bazel 0.24.1
cuDNN - 7.4
CUDA - 10.0
If you see above some of the configurations i.e., compiler and cuDNN versions are not matching.
For more information, you can refer to the following guide
Thanks!

@Keepmoving-ZXY Were you able to solve this issue?

No, I think there is no related to configuration of TensorFlow, I think the target ring_reducer_test is defined as private, not public, so I can't build the ring_reducer_test independently. I can see test_main.cc in tensorflow/core/platform but there is no instructions about how and when to run it. Could you tell me how to run tensorflow's c++ testcase?

Can you try bazel test -c opt --config=cuda //tensorflow/core:common_runtime_ring_reducer_test?

Yes, this can build ring_reducer_test.cc and it's dependency, and export binary file in bazel-bin/tensorflow/core/common_runtime_ring_reducer_test, thank you very much. And could you tell me why I must add common_runtime to ring_reducer_test?

ring_reducer_test is defined in core/BUILD using tf_cc_tests_gpu.  If you follow the definition of tf_cc_tests_gpu in tensorflow.bzl, you will eventually arrive at src_to_test_name, which contains the logic for which you're looking.

ok, thank you.

thanks! figure it out finally...


Have Cmd+R(Mac) and Ctrl+R(Win) reload window by default

VSCode Version: 1.16.1
OS Version: Mac OS 10.12.6

Steps to Reproduce:

Write code that depends on typings or a module that isn't installed yet or isn't yet correct.
Install the correct typings or module, and then find yourself struggling to get the Problems panes to update for all the open files (eventually finding multi-step solutions).

Reproduces without extensions: Yes
I originally asked for help with this on SO: Refreshing errors in VSC after installing typings
I eventually found a solution: Map Command+R (on a Mac) or Control+R (on Windows) to workbench.action.reloadWindow. Now all I have to do to refresh the errors is to hit the same key combo I would in any browser to refresh the page.
Amazingly, it seems that Command+R and Control+R are not already mapped on Mac and Windows.
SUGGESTION: Add this to the default mappings, in order to make users' lives easier. It'll at least make my life easier by keeping VSC from later mapping this to something else I might also need.
Of course, it's also possible that I went on a wild goose chase and there is another, better way to make life easier. If so, please advise me. Thanks!

This keyboard mapping also gives users the added benefit of being able to quickly guarantee that they are looking at the latest files, in case they aren't confident that VSC is updating for background edits. It's the same magic feeling that refresh gives us in a browser (ignoring caching).

Keybindings are subjective
Ctrl+R is already mapped (Open Recent), so that would require 2 default keyboard remappings
It's not a browser

This feature request will not be considered in the next 6-12 months roadmap and as such will be closed to keep the number of issues we have to maintain actionable. Thanks for understanding and happy coding!


[stable/prometheus-operator] How to install custom dashboards and alerting rules

Is your feature request related to a problem? Please describe.
After going through the documentation, and examining the project, I am still not clear how
you're supposed to install custom grafana dashboards and custom alertmanager rules.
The section in the readme which pertains to developing rules and dashboards suggests to add changes to the original kube-prometheus repo, then they will be synced by the hack  scripts:
https://github.com/helm/charts/tree/master/stable/prometheus-operator#developing-prometheus-rules-and-grafana-dashboards
However, the kube-prometheus project states the idea is to use it as a library or package,
and then extend the rules and dashboards with jsonnet in your own project.
Am I understanding this correctly, that the only way to customize rules and dashboards is to add PRs to the external repos, and there's no way to pass them as values to the prometeus-operator chart?
Describe the solution you'd like
A clear description on how to implement a workflow for adding custom grafana dashboards and alertmanager rules.

Custom dashboards you need to set them as a CM with a grafana_dashboar: "1" label. Check existent dashboards. Alerting rules, you need to create a k8s object manifest PrometheusRules.
you can kubectl get PrometheusRules and check the examples on how you can do this.
/close


Adding info for grouping step definitions

Added a new section to help newcomers understand the power of abstracting steps and using helper methods/classes to allow for more scalable and maintainable suites in cucumber.

There should be an option where I can propose edits for you to accept, but I cannot find it.

There should be an option where I can propose edits for you to accept, but I cannot find it.

That's fine. Just let me know here and I ll update it.

Wait, sorry. I think I overrode your changes. Let me update the file with both of our changes.

Wait, sorry. I think I overrode your changes. Let me update the file with both of our changes.

Yeah, that's why I was looking for the suggest edit feature. I know it exists (others have used it in this project), I just can't find it.

@mlvandijk

The left most button when adding a line comment.

Thnx @mpkorstanje - I never would have found that

Thanks for this @gazler22 !


Documentation: Understanding Component.js stacktraces

Writing a tech-doc for this topic.

Understanding Component.js stack-traces
With the new Component.js API it is now easier to debug errors in the render stack. Still it needs a basic understanding of how things are working.
There is an inherent problem with the approach of Component.js that makes
it quite challenging to create a transparent debug experience.
Component.js lets you compose VirtualElements a-priori, pass them around as props, and append them to a parent element at a later time. The context of definition, the owner component, is often different to the parent component.
Think of the following situation:

function A() {
  A.super.apply(this, arguments);

  this.render = function($$) {
    var el = $$('div');
    var grandchildren = [
      $$(C, { name: 'foo' }).ref('foo'),
      $$(C, { name: 'bar' }).ref('bar')
    ];
    el.append(
      $$(Child).append(grandchildren)
    );
    return el;
  };
}
Component.extend(A);

function B() {
  B.super.apply(this, arguments);

  this.render = function($$) {
    return $$('div').append(this.props.children);
  };
}
Component.extend(B);

function C() {
  C.super.apply(this, arguments);

  this.render = function($$) {
    return $$('div').append(this.props.name);
  };
}
Component.extend(C);

When A#render() is called, grandchildren are created as VirtualComponents owned by the A instance. Their actual parent is not known, without running B#render().
B is created as a VirtualComponent, too, passing grandchildren via props. In this case it is known that A is the parent, thus, the virtual B component can be turned into a real B instance, and B#render() can be evaluated.
After that, the parent of grandchildren foo and bar is known and they can be instantiated, and C#render() can be evaluated for each of them.
During this recursive descent which we call capturing phase, VirtualComponents are turned into real Component instances and their render() method is called. The overall result is still a virtual representation of a DOM, with real Component instances attached.
Stacktrace considerations
The trace of function calls for such a recursion could look like this:
- _capture
  - a = new A()
  - a.render()
  - _descend()
    - b = new B(a, {...})
    - b.render()
    - _descend()
      - foo = new C(b, {...})
      - foo.render()
      - bar = new C(b, {...})
      - bar.render()

However, this stack makes debugging difficult to understand. Consider an exception during foo.render(). The stack-trace would then look like
- foo.render() << uncaught Error
- _descend
- _descent
- _capture

This means there is no back-link to the parents' render() calls, although, the root of the error is likely to be found there.
To improve this, the render() calls need to be used as a root for descending. Considering the incremental composition possibilities this can not be done without a multi-pass strategy:

first pass: necessary to declare virtual components
second pass and more:

turn VirtualComponent into real Component
call render() recursively

I.e., only the first render() is used to create VirtualComponents. The subsequent calls are used to walk $$() statements and trigger recursive rendering if possible. This creates more meaningful positions within the render() method in the stack-trace.
Example:
function Parent(parent, props) {
  Parent.super.apply(this, arguments)

  this.render = function($$) {
    var el = $$('div');
    el.append($$(Child));
    return el;
  }
}

After the first pass, we know that there is a virtual Child component.
When $$(Child) is executed during the second pass, we actually trigger the recursion.
- _capture
  - p = new Parent()
  - p.render()
  - p.render()
    - $$(...)
      - child = new Child(p, {...})
      - child.render()

If an error occurs during Child#render() the stack-trace looks like:
- child.render() << uncaught Error
- $$(...)
- p.render()
- _capture

Now there is a back-link to the render() call of the parent component, though, it is the second pass, not the first.


An UpdateStatus state of 'rollback_completed' gives a false negative

If any service in the stack has a state of rollback_completed, the script assumes failure.
diff --git a/_scripts/docker-stack-wait.sh b/_scripts/docker-stack-wait.sh
index 333e847..1fee120 100755
--- a/_scripts/docker-stack-wait.sh
+++ b/_scripts/docker-stack-wait.sh
@@ -81,7 +81,7 @@ while [ "$done" != "1" ]; do
           done=2
         fi
         service_done=2
-      elif [ "$state" != "new" -a "$state" != "completed" ]; then
+      elif [ "$state" != "new" -a "$state" != "completed" -a "$state" != "rollback_completed" ]; then
         done=0
         service_done=0
       fi

I just realized this is a bit more nuanced. If, for example, the service you are currently trying to deploy fails and you have failure_action: rollback, then the current service will enter a rollback_completed state and this change would provide a false positive of a successful deployment.
However, without this change if the current deployment succeeds but any other service in the stack has been rolled back, it will fail.
Ideally this script would take a specific service in the swarm to monitor for success instead of checking every service in the stack.

Thank you for your feedback. I'm thinking about different options to implement this, since some rollbacks may be intentional and a success, and others indicating a failure similar to the pause state. If I don't see an easy way to differentiate, I may just add a command line flag to select the behavior.
Eventually I'm hoping docker will pull stacks into the docker engine as a first class citizen, and implement the detach option on stack commands, which will remove the need for this script.

@sudo-bmitch I agree regarding having this is a first class feature. In the meantime your script has been very useful. I ended up taking a slightly different approach with it since in our CI pipeline we already know the service names we are about to update up front:
1c1,2
< #!/bin/sh
---
> #!/bin/bash
> # shellcheck disable=SC2001,SC2086,SC2003,SC2046,SC2166,SC2220
13c14
<   echo "$(basename $0) [opts] stack_name"
---
>   echo "$(basename $0) [opts] services"
56c57
< stack_name=$1
---
> IFS=',' read -ra DEPLOY_SERVICES <<< $1
62c63
<   for service_id in $(docker stack services -q "${stack_name}"); do
---
>   for service in "${DEPLOY_SERVICES[@]}"; do
64,65c65
<     service=$(docker service inspect --format '{{.Spec.Name}}' "$service_id")
<     replicas=$(docker service ls --format '{{.Replicas}}' --filter "id=$service_id")
---
>     replicas=$(docker service ls --format '{{.Replicas}}' --filter "name=$service")
75c75
<       state=$(docker service inspect -f '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{else}}new{{end}}' "$service_id")
---
>       state=$(docker service inspect -f '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{else}}new{{end}}' "$service")
77c77
<       if [ "$state" = "paused" ]; then
---
>       if [ "$state" = "paused" -o "$state" = "rollback_started" -o "$state" = "rollback_completed" ]; then
99d98
<

Updating service [redacted] (id: 8fky6j9chvr34wlphrq2ay2sg)
Service [redacted] is updating
Service [redacted] is replicating 2/1
Service [redacted] is completed

Our stack has twelve services and with this approach only the services supplied will be monitored which is typically only one. If the service fails to deploy or the healthcheck fails and a rollback is initiated, the script will also trigger a failure so our pipeline can be notified.

Have a look at the redesign and let me know if you have any other issues. Thanks again for your report.


Update tag builder to take account claim, initialize every time

This PR makes changes to the tag builder to take an Account CR. It includes claimLink and claimLinkNamespace which will be blank if they don't exist. Ideally in the future we'll move user creation to when the accountClaim is triggered filling in this field. These fields are populated for CCS.
Remove keeping state and make this function initialize everytime to ensure we don't hold stale data.

/reviewer @ArielLima

/lgtm


How to know whether this execution is successful?

I saw the state enumeration value provided by ffmpegjob, but I didn't see it in the source code, such as echo $? Is it my negligence to ask again whether the command was executed successfully?

echo $1 is just a "workaround" used in bash, which reads the exit code of the last process and prints it. When spawning processes in another language, you usually don't (and can't) do this, as there is no shell running in between. But we can keep track of the process and ask the operating system. This is done in FFcommon, which tests if the exit code has been 0 and otherwise throws an IOException.
Therefore, you know that the  execution succeeded (as far as the library is capable of detecting) if no Exception has been thrown.


std::optional issue with json

Hi,
I have been using quicktype for generating c++ code. However, there has been a recent change in quicktype from using std::shared_ptr to std::optional, and it seems like std::optional and json doesn't work well together. Consider the following example:
inline void to_json(json & j) {
        j = json::object();
        std::shared_ptr<std::string> p = std::make_shared<std::string>( "" );
        std::optional<std::string> q;
        j["e1"] = p; // works with shared_ptr
        j["e1"] = q; // ERROR no operator found which takes a right-hand operand of type 'std::optional<std::string>'
        j["e1"] = q.value_or( "" ); // this works. Should quicktype generate this?
}

What would be the best way to resolve this? Do you think quicktype should update the code generation logic around this? Thank you for your help in advance.

it turns out there was an issue with versioning on my end. closing it.


Feature request: migrate contract for LedgerContract

Prerequisites

[X] I checked the documentation and made sure this feature does not already exist.
[X] I checked the existing issues to make sure this feature has not already been requested.
[X] I have read the code of conduct before creating this issue.

Problem
No response
Feature / Solution
I will implement it
Alternatives
No response
Additional Context
No response

Addressed in #311

Simple contract changes to support migrate:
https://github.com/fetchai/contract-simple/pull/1

Update and clear admin added in #317

@MissingNO57 If this is done, would you mind linking the relevant PR(s) and closing the issue please?


Remove Binjitsu

Hello, I'm the maintainer of Binjitsu (binjit.su / github.com/binjitsu/binjitsu).
The project was re-merged into Pwntools some time ago.
You can remove it from your list, thanks!

Thanks a lot for information, binjitsu has been removed from exploits section.


Combine various print result log events with different levels

resolves #6173
Description
To simplify the work that consumers of our logs need to do, combine logging events issued at the same point in the code which differ mainly in the "level".
Part of the structured logging initiative. More to follow in #5663.
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[x] I have run changie new to create a changelog entry

@jtcohen6 I added you as a reviewer to make sure that we're on the same page here, with collapsing the multiple events into one.

@gshank I took a quick look through, and the consolidations proposed here make sense to me 👍
If I understand right, events will no longer reflect their log levels by inheriting from level classes (WarnLevel, ErrorLevel), but now based on a new attribute of each event class containing the level. That makes sense insofar as proto schemas need to be composed, and do not support class inheritance. Do we have a clear sense of what's lost by taking this approach? If I remember correctly, the class-first approach to structured logging a year ago was motivated by our ability to make use of mypy for type checking/enforcement — does the addition of proto schemas get us all that & better?

We do lose some of the mypy type checking, since the generated proto python classes all have defaults, so if a field is not supplied on the constructor, it doesn't cause an error. That would be something that would only be an issue during development, and if the generated logging event was not checked for validity. And there's really not much that can be done about it, since it's inherent in the way that protobuf works.
This particular pull request just overrides the level for the changed logging events. The rest of the logging events remain the same, in that they are based on the various level classes.

It is true that if we always pass in the level with the "info" function, we wouldn't need to use a Level base class. I just left it there just in case, but if you think we should remove it...

It is true that if we always pass in the level with the "info" function, we wouldn't need to use a Level base class. I just left it there just in case, but if you think we should remove it...

I think that an event should either have a level or be dynamic.  And if it's dynamic it should not use a Level base class to make that clear.

I removed the Level base classes from the classes that specify the level.


WARNING: Method invocation failed because [System.Management.Automation.PSObject] doesn't contain a method named 'op_Addition'.

When I attempt to run this script using certain groups that only contain one member, I get the following warnings/error messages:
WARNING: [Monitor-ADGroupMemberShip.ps1][PROCESS] Something went wrong
WARNING: Method invocation failed because [System.Management.Automation.PSObject] doesn't contain a method named 'op_Addition'.
I tried this with several different security groups with various types ranging from domain local, global, and universal. If they only have one member, you get that error. I double checked and it also never creates the CSV file in the Output folder.
If I run this on any other group that contains 2 or more users, there is no issue. Same thing with groups with no members; zero issues.
Here is the verbose output when I run it on a group with a single user:
VERBOSE: [Monitor-ADGroupMemberShip.ps1][BEGIN] Active Directory Module
VERBOSE: [Monitor-ADGroupMemberShip.ps1][BEGIN] Active Directory module seems loaded
VERBOSE: [Monitor-ADGroupMemberShip.ps1][BEGIN] Setting HTML Variables
VERBOSE: [Monitor-ADGroupMemberShip.ps1][PROCESS] GROUP: Enterprise Admins...
VERBOSE: [Monitor-ADGroupMemberShip.ps1][PROCESS] ActiveDirectory module
VERBOSE: [Monitor-ADGroupMemberShip.ps1][PROCESS] GROUP: Enterprise Admins - Querying Membership (AD Module)
WARNING: [Monitor-ADGroupMemberShip.ps1][PROCESS] Something went wrong
WARNING: Method invocation failed because [System.Management.Automation.PSObject] doesn't contain a method named 'op_Addition'.
VERBOSE: [Monitor-ADGroupMemberShip.ps1][END] Script Completed

I believe that I have fixed this issue.
Digging into the problem, it is not using the $Members as an array, thus failing due to only having one match.
I edited the script at line 641 by creating a new line and adding in the following:
$Members = @()
I then edited the old line 641 entry (now line 642) by adding a + sign in front of the = sign
$Members += $MemberObjs | Where-Object {$_.objectClass -eq "user"}| get-aduser -Properties PasswordExpired  | Select-Object -Property *,@{ Name = 'DN'; Expression = { $_.DistinguishedName } }
I am now able to run this script with groups containing only one user, or empty groups which will now correctly report when a single user is added.

Thanks for reporting this @CodyFLee and providing your fix.
@revoice1 just fixed this issue in PR #42


[hotfix][docs][s3] Clarify wording of S3 Filesystem support

What is the purpose of the change
While doing mailing list service today, I noticed that not all the behavior of the Hadoop S3 filesystem implementation is explained.
In this PR, I'm trying to clarify the things that were unclear to me.

Thanks for the review. Merging.

translation ticket: https://issues.apache.org/jira/browse/FLINK-17581


proposal: simplified ternary operators

Proposal Details
Problem
I'm sure you get this a lot. I always wondered why ternary operators were not built into the language and found this https://golangdocs.com/ternary-operator-in-golang
I personally don't think that this
var result string
if ok {
    result = "success"
} else {
    result = "failure"
}

is easier to read than this
results := ok ? "success" : "failure"

Which makes me disagree that "makes the code easier to read" (in most cases)
Why?

7 to 1 ratio in lines of code
Additional unnecessary nesting, so I have to disagree that makes the code easier to read.

When do ternary operators make statements harder to read?

If true/false values come from another function

E.g:
value := condition ? SomeFunctionWithALotOfVariables(someVariable1, someVariable2, someVariable3) : SomeOtherFunction()

Nested ternary operators

E.g:
value := condition ? valueIfTrue : ( anotherCondition ? value2 : value3 )

Convoluted condition

E.g:
value := (condition1 || condition) && !conditionFromFunction(someVar) ? valueIfTrue : valueIfFalse

But for simple values that come from either a constant or a variable already declared, the simplicity is undeniable.
Proposal
Allow ternary operators where the condition and true/false assignments have to come from variables or constants, never from functions or other nested ternary operators.
Example of some allowed expressions:
value := condition ? 1 : 0

const predefinedString = "someValue"

value := condition ? predefinedString : "hardCodedInLineString"

Example of complex expressions that could be simplified if needed:
Case for complex condition:
Instead of
value := (condition1 || condition2) && !conditionFromFunction(someVar) ? valueIfTrue : valueIfFalse

Declare the condition in a boolean variable first
condition := (condition1 || condition2) && !conditionFromFunction(someVar)

value := condition ? valueIfTrue : valueIfFalse

Case for complex values provider:
Instead of
value := condition ? SomeFunctionWithALotOfVariables(someVariable1, someVariable2, someVariable3) : SomeOtherFunction()

Use a value provider function
var provider func() string

provider := condition ? providerIfTrue : providerIfFalse
value := provider()

Conclusion
Ternary operators can sometimes become complex, but this proposal prevents that from happening, the best of both worlds
The use of ternary operators should be a choice of the developer, people that don't like to use that can always go back to using if-else statements, I don't believe the reasoning behind the article is a good enough reason to take away the choice from developers. My 2 cents

Similar Issues

https://github.com/golang/go/issues/60502
https://github.com/golang/go/issues/31659
https://github.com/golang/go/issues/36288
https://github.com/golang/go/issues/23248
https://github.com/golang/go/issues/33171

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Closing as a dup of several previous issues, as noted by gabyhelp.
Note that we don't use the issue tracker for discussion.  To discuss this, please use a forum.  See https://go.dev/wiki/Questions.  Thanks.


Fix STT and TTS configuration handling

Fix STT and TTS config handling to pass parsed plugin config to plugin init
Closes #132
The get_plugin_config method is intended to load a complete configuration dict for a plugin where plugin-specific config takes the highest priority, then plugin class config (i.e. 'stt', 'tts'), and then global config (i.e. Configuration()['lang'])

With this config:
{
  "play_wav_cmdline": "paplay %1",
  "play_mp3_cmdline": "paplay %1",
  "time_format": "half",
  "system_unit": "imperial",
  "lang": "de-de",
  "tts": {
    "module": "ovos_tts_plugin_espeakng",
    "ovos_tts_plugin_espeakng": {
      "lang": "de-de",
      "voice": "german-mbrola-5",
      "speed": "135",
      "amplitude": "80",
      "pitch": "20"
    }
  }
}

I receive these errors, and TTS fails to load:
2023-10-13 14:53:56.447 - ovos-launcher - ovos_plugin_manager.tts:create:197 - INFO - Found plugin ovos_tts_plugin_espeakng
2023-10-13 14:53:56.465 - ovos-launcher - ovos_plugin_manager.tts:create:206 - ERROR - The TTS plugin "ovos_tts_plugin_espeakng" could not be loaded.
Available modules: ovos-tts-plugin-mimic3-server,ovos-tts-plugin-mimic,ovos-tts-plugin-server,ovos-tts-plugin-dummy,ovos_tts_plugin_espeakng
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/tts.py", line 198, in create
    tts = clazz(tts_lang, tts_config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_tts_plugin_espeakng/__init__.py", line 12, in __init__
    super().__init__(*args, **kwargs,
TypeError: TTS.__init__() got multiple values for argument 'lang'
2023-10-13 14:53:56.466 - ovos-launcher - ovos_audio.service:__init__:82 - ERROR - TTS.__init__() got multiple values for argument 'lang'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 79, in __init__
    self._maybe_reload_tts()
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 295, in _maybe_reload_tts
    self.tts = TTSFactory.create(config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/tts.py", line 9, in create
    return OVOSTTSFactory.create(config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/tts.py", line 198, in create
    tts = clazz(tts_lang, tts_config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_tts_plugin_espeakng/__init__.py", line 12, in __init__
    super().__init__(*args, **kwargs,
TypeError: TTS.__init__() got multiple values for argument 'lang'
2023-10-13 14:53:56.467 - ovos-launcher - ovos_audio.service:on_error:38 - ERROR - Audio service failed to launch (TTS.__init__() got multiple values for argument 'lang').
2023-10-13 14:53:56.482 - ovos-launcher - ovos_plugin_manager.templates.tts:add_metric:520 - ERROR - 'EspeakNGTTS' object has no attribute 'log_timestamps'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 517, in add_metric
    if self.log_timestamps:
AttributeError: 'EspeakNGTTS' object has no attribute 'log_timestamps'

The latest change appears to have broken it entirely. Here's what it looks like with various combinations of lang set to de-de:
TypeError: TTS.__init__() got multiple values for argument 'lang'
2023-10-13 22:58:21.420 - ovos-launcher - ovos_audio.service:__init__:82 - ERROR - TTS.__init__() got multiple values for argument 'lang'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 79, in __init__
    self._maybe_reload_tts()
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 295, in _maybe_reload_tts
    self.tts = TTSFactory.create(config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/tts.py", line 9, in create
    return OVOSTTSFactory.create(config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/tts.py", line 197, in create
    tts = clazz(None,  # don't pass lang and force read from config
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_tts_plugin_espeakng/__init__.py", line 12, in __init__
    super().__init__(*args, **kwargs,
TypeError: TTS.__init__() got multiple values for argument 'lang'
2023-10-13 22:58:21.422 - ovos-launcher - ovos_audio.service:on_error:38 - ERROR - Audio service failed to launch (TTS.__init__() got multiple values for argument 'lang').
2023-10-13 22:58:21.431 - ovos-launcher - ovos_plugin_manager.templates.tts:add_metric:275 - ERROR - 'EspeakNGTTS' object has no attribute 'log_timestamps'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 272, in add_metric
    if self.log_timestamps:
AttributeError: 'EspeakNGTTS' object has no attribute 'log_timestamps'

And here's with the ovos-launcher default TTS and lang set to en-us:
2023-10-13 23:06:02.758 - ovos-launcher - ovos_plugin_manager.templates.tts:init:317 - WARNING - PlaybackThread should be inited by ovos-audio, initing via plugin has been deprecated, please pass playback=PlaybackThread() to TTS.init
2023-10-13 23:06:02.759 - ovos-launcher - ovos_plugin_manager.templates.tts:__new__:62 - WARNING - PlaybackThread moved to ovos_audio.playback
2023-10-13 23:06:02.760 - ovos-launcher - ovos_audio.service:__init__:82 - ERROR - please install ovos-audio for playback handling
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 64, in __new__
    from ovos_audio.playback import PlaybackThread
ModuleNotFoundError: No module named 'ovos_audio.playback'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 79, in __init__
    self._maybe_reload_tts()
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 296, in _maybe_reload_tts
    self.tts.init(self.bus)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 321, in init
    playback = PlaybackThread(TTS.queue, self.bus)  # compat
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 67, in __new__
    raise ImportError("please install ovos-audio for playback handling")
ImportError: please install ovos-audio for playback handling
2023-10-13 23:06:02.762 - ovos-launcher - ovos_audio.service:on_error:38 - ERROR - Audio service failed to launch (please install ovos-audio for playback handling).

Jarbas pointed out I had some version mismatches with ovos-audio, but even after resolving some:
2023-10-13 23:27:41.562 - ovos-launcher - ovos_plugin_manager.tts:create:206 - ERROR - The TTS plugin "ovos-tts-plugin-mimic3-server" could not be loaded.
Available modules: ovos-tts-plugin-mimic3-server,ovos-tts-plugin-mimic,ovos-tts-plugin-dummy,ovos-tts-plugin-server,ovos_tts_plugin_espeakng
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/tts.py", line 197, in create
    tts = clazz(None,  # don't pass lang and force read from config
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_tts_plugin_mimic3_server/__init__.py", line 52, in __init__
    lang = lang.split("-")[0]
AttributeError: 'NoneType' object has no attribute 'split'
2023-10-13 23:27:41.563 - ovos-launcher - ovos_audio.service:__init__:88 - ERROR - 'NoneType' object has no attribute 'split'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 85, in __init__
    self._maybe_reload_tts()
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 332, in _maybe_reload_tts
    self._get_tts_fallback()
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/service.py", line 360, in _get_tts_fallback
    self.fallback_tts = TTSFactory.create(cfg)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_audio/tts.py", line 9, in create
    return OVOSTTSFactory.create(config)
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/tts.py", line 197, in create
    tts = clazz(None,  # don't pass lang and force read from config
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_tts_plugin_mimic3_server/__init__.py", line 52, in __init__
    lang = lang.split("-")[0]
AttributeError: 'NoneType' object has no attribute 'split'
2023-10-13 23:27:41.564 - ovos-launcher - ovos_audio.service:on_error:39 - ERROR - Audio service failed to launch ('NoneType' object has no attribute 'split').
2023-10-13 23:27:41.572 - ovos-launcher - ovos_plugin_manager.templates.tts:add_metric:275 - ERROR - 'Mimic3ServerTTSPlugin' object has no attribute 'log_timestamps'
Traceback (most recent call last):
  File "/home/mike/ovos-launcher/.venv/lib/python3.10/site-packages/ovos_plugin_manager/templates/tts.py", line 272, in add_metric
    if self.log_timestamps:
AttributeError: 'Mimic3ServerTTSPlugin' object has no attribute 'log_timestamps'

This is with default config, latest alphas of everything I could (some packages were forcing older versions and I had to push them forward manually)

Interesting.. it appears there's something wrong with lang handling still that's causing this; I'll see if I can reproduce this behavior in a unit test and fix it

I did a spot check and I think this fixed the issue, but I'll do some additional testing and come back with logs to confirm


Fix arc deployment regions and remove docker summary

Update with latest list of valid regions and remove the docker container summary item (the actual field was removed in an earlier PR)

Pull Request Test Coverage Report for Build 260276132

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.001%) to 38.364%

Totals

Change from base Build 260263215:
-0.001%

Covered Lines:
19128

Relevant Lines:
45708

💛  - Coveralls


Fix the IN_USE_ADDRESSES quota error.

Since we enabled nested virtualization on worker VMs in tests they have started failing with the IN_USE_ADDRESSES quota exceeded error.
The idea is to add an additional zone in E2E tests to split the usage of resources between regions.
/cc @MahmoudNada0
/cc @michaljankowiak

/lgtm


Convert to PEP8

Mostly converting camelCase to snake_case

https://www.python.org/dev/peps/pep-0008/

Step 1) Fix all redundant parentheses, missing docstrings, incorrectly quoted docstrings, other IDE warnings.
Step 2) Fix all incorrectly named methods and variables, go from studlyCase to snake_case
Step 3) Remove all unnecessary getters and setters, perhaps all getters and setters, use @property tags

Step 3 of the above has been moved to #139 The rest is merged in with this: https://github.com/joshcoales/Hallo/pull/141