ReflectionException - After upgrade to Laravel 5.6

$ php artisan selenium:start
Returns:
   ReflectionException  : Class Symfony\Component\Process\ProcessBuilder does not exist

  at C:\_dk\sel56\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:155
    151|         if (array_key_exists($parameter->name, $parameters)) {
    152|             $dependencies[] = $parameters[$parameter->name];
    153|
    154|             unset($parameters[$parameter->name]);
  > 155|         } elseif ($parameter->getClass()) {
    156|             $dependencies[] = $container->make($parameter->getClass()->name);
    157|         } elseif ($parameter->isDefaultValueAvailable()) {
    158|             $dependencies[] = $parameter->getDefaultValue();
    159|         }

  Exception trace:

  1   ReflectionParameter::getClass()
      C:\_dk\sel56\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:155

  2   Illuminate\Container\BoundMethod::addDependencyForCallParameter(Object(Illuminate\Foundation\Application), Object(
ReflectionParameter), [], [])
      C:\_dk\sel56\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:116

  Please use the argument -v to see more details.

I found a fix by replacing line https://github.com/Modelizer/Laravel-Selenium/blob/master/src/Console/BootSelenium.php#L34&L48
to
$cmd = implode([
    'java',
    '-jar',
    static::prependPackagePath('selenium.jar'),
    $this->getWebDriver(env('DEFAULT_BROWSER', 'chrome')),
], ' ');

echo shell_exec($cmd.' '.$this->getSeleniumOptions());

but problem is more severe. https://github.com/giorgiosironi/phpunit-selenium/ needs to have compatibility with phpunit/phpunit. It is in my todo list to make some core API changes. https://github.com/Modelizer/Laravel-Selenium/projects/3 but if you can submit PR would be appriciated.  Thanks.
For now I need to remove support for Laravel 5.6 :/

I made your hack to a vanilla Laravel 5.6 and the error remains. :( I jumped through a bunch of hoops to upgrade to 5.6. This is the only hold up to proceeding. I would be happy to submit a PR if I knew how/where to correct the issue.
Any work arounds that would enable me to not have to revert back to 5.5 would be AWESOME. :)

Right now I'm working on a new 2.x release which will have integration of https://github.com/lmc-eu/steward replacing phpunit's selenium.
This upgrade will have 5.6 support but trade off would be no phpunit 5.7 and lower would be acceptable by composer.
Hope I finish it as soon as possible because changing the core API is a big change.

Thank you for your prompt response. I can appreciate the challenge to refactor core API.
If your next version breaks previous requirements, perhaps just increment version number and note the revised requirements. :)
I will shelf my 5.6 version and revert back to 5.5 for now.
Thank you for providing this package. :)

I have not updated readme. but I release 2.0 version of this package https://github.com/Modelizer/Laravel-Selenium/releases/tag/v2.0
Please feel free to submit PR in regards to update readme or any changes. Thanks.


Preven menu closing when press "Esc"

Hi.
How to prevent menu closing when press "Esc"?

Currently, you can't. I could add an option to disable this feature.

So please, if it's possible add this option.
Thank you.
When are you going to add this option?
Regards

As soon as I get some free time. It's a small feature, so it shouldn't take me long.

Sorry for the delay. The new option closeOnEsc has been added, just set it to false.

Thank you.


zsh-z: init at unstable-2021-02-15

Motivation for this change
ZSH-z is a ZSH script port of rupa/z.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 120733 at 3efd20e2 run on aarch64-linux 1

1 package built successfully:

zsh-z

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/shells/zsh/zsh-z/default.nix:16:3:
   |
16 |   installPhase = ''
   |   ^

1 package built successfully:
1 suggestion:
* warning: [missing-phase-hooks](https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-phase-hooks.md?rgh-link-date=2021-04-26T12%3A41%3A26Z)
  `installPhase` should probably contain `runHook preInstall` and `runHook postInstall`.
  Near pkgs/shells/zsh/zsh-z/default.nix:16:3:
  ```
     |
  16 |   installPhase = ''
     |   ^
  ```

I'm unsure if this is relevant or not, I guess so? though the other zsh packages in this directory don't contain these lines.


bpf: Refactor LRP per packet LB test to utilize helper functions.

Use helper functions from from bpf/tests/lib/.... in  LRP loopback bpf test.
Remove redundant details from LRP documentation.
bpf: Refactor LRP per packet LB test to utilize helper functions. Remove redundant details from LRP documentation.

cc @julianwiedmann

/test

/test


I want to add a Telugu language blog

Hey everyone! I want to add a Telugu language blog about C. It is partially in telugu and partially in English. Can I add the blog to the list? If I can please let me know! Thank you and cheers!

Hey!! In my opinion, I think you can add it in Telugu Section. It would be great.

Hey!! In my opinion, I think you can add it in Telugu Section. It would be great.

Great! I'll add that blog

As same reason that closes PR... Blogs are out of scope of this repo


Fix Processing Input not consuming the last Input

Tiny change to fix an issue where the processor was not consuming the last input.

Why does the apple processor take plums now? Maybe that was committed accidentally?

Yeah it was, fixed now, thanks for flagging that.


chore: allow removing columns from table

Without this change, if we try conditionally removing a column from the table, we get this:

⚠ i pushed a demo with variable columns! be sure to remove before any merge!
please have a look. the basic use case seems to be working fine.

@pierrebeitz , thank you for the story. Once you remove the change I made in this PR, the story breaks the first time we remove columns.

🤦
i'll have a look 😊

@pierrebeitz , thanks again.

pushed a fix.
to see it in action, you can try to check out https://github.com/dcos-labs/ui-kit/pull/513/commits/a478e3a93da733a42902370fc840b32af0c122b8 (until github cleans that up).


OpenGl Terrain blend seams

Terrain texture seams at blend edges with 2+  texture layers, only in OpenGl.
Occurs when using any detail texture and seems independent of square size, resolutions, base texture size etc.
Only tested on AMD Radeon HD7700 + updated drivers.
Win 8.1
Tested with Torque v3.6.3 and  3.7 Release
Solution / workaround
In game\shaders\common\terrain\terrain.glsl
uv += 0.00195;
vec2 xy = floor( uv );
Forum post:http://forums.torque3d.org/viewtopic.php?f=9&t=231

Someone noted that the terrain textures look like they have no detail textures
http://forums.torque3d.org/viewtopic.php?f=9&t=231&p=1893#p1893
Adding additional pics for clarity
OpenGl

Seems like an off-by-one error in texcoords

Have not been able to replicate this out of apparent rather specific hardware circumstances. I'm pushing this issue back to 3.9 so we can keep an eye on it, but unless we can get a more generally easier to replicate setup to better track it, options to fix and test are limited.

/Agree


feat: add ratelimiting for caddy

Summary by CodeRabbit

Refactor

Improved the Caddy server setup process for enhanced performance and rate-limiting capabilities.

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

@pratapaprasanna, one more thing, can we confirm if the rate limiting happens on remote-ip, even when there's a load balancer? Like, does it apply the limiting rule on the load balancer's IP address, or on the IP address from X-Forwarded-For header?


Departure Time only shown in 12h timeformat

The time of Departure is only shown in 12h format, while Raspberry is running on 24h format.
There is no configuration for the timeformat.

Hi, I had the same issue. It seems that the 24 or 12 hour format is automatically picked depending on your MagicMirror2 general locale. Unfortunatly thats confusing and should be bound to the MagicMirror2 timeFormat setting. But when you change in the general config of MagicMirror the language: "en" to language: "de" it shows up in 24h format after restart.


Live Preview cancelled for unknown reason {(0)}

I just installed Brackets 1.1 and started having trouble with Live Preview, specifically in Chrome. I reinstalled both Brackets and Chrome, and restarted my computer. I tested the Multibrowser functionality and Safari live preview works, but Chrome still does not.
Live Preview is also only working (in safari) in the Getting Started folder. I have not changed the project settings, and I used the Open Folder option to access my project. Still not working.
Any help would be greatly appreciated.
Brackets 1.1 - Chrome 39 - OSX Yosemite

For what it’s worth, I too was having similar issues with the Live Preview working ever since installing Brackets 1.1, where Chrome would launch but then lose the connection. I kept getting the message “Live Preview cancelled for unknown reason {(0)}”.
After a bit of trial and error, it turned out to be Adobe’s CSS Shapes Editor for Brackets extension that was causing the issues. I removed that and everything works fine again.

For what it’s worth, I too was having similar issues with the Live Preview working ever since installing Brackets 1.1, where Chrome would launch but then lose the connection. I kept getting the message “Live Preview cancelled for unknown reason {(0)}”.
After a bit of trial and error, it turned out to be Adobe’s CSS Shapes Editor for Brackets extension that was causing the issues. I removed that and everything works fine again.

@StephenESC

... it turned out to be Adobe’s CSS Shapes Editor for Brackets extension

Thanks for providing those details. Please open an issue in the repo for that extension: https://github.com/adobe-webplatform/css-shapes-editor

@StephenESC

... it turned out to be Adobe’s CSS Shapes Editor for Brackets extension

Thanks for providing those details. Please open an issue in the repo for that extension: https://github.com/adobe-webplatform/css-shapes-editor

Will do. Cheers.

Will do. Cheers.

@StephenESC , Thanks for that! I would have never looked there.

@StephenESC , Thanks for t
hat Stephen, this has been bugging me for months, appreciated.

  I've been fighting this for a month and that did the trick.  Thanks man.  I never thought about the add-ons doing damage like that.  Good to know.

I too am having this same issue. I am running Brackets release 1.1 build 1.1.0-15558 (release ea908cae5) and Chrome v40.0.2214.111 m on Windows 7. I do not have the shapes editor extension, and the problem still occurs with no extensions loaded.
I have deleted the cef_data and live-dev-profile directories and also performed a re-install.
Initially it only occurred after saving .scss files (I'm using Grunt and Libsass), but recently it has started happening even before a document is changed.
The brackets console displays a message: You must connect to the WebSocket before sending messages.
DevTools also shows this with in addition: GET http://<IP_ADDRESS>:9222/json net::ERR_CONNECTION_REFUSED /LiveDevelopment/Inspector/Inspector.js:264
I can manually access http://<IP_ADDRESS>:9222 to get a list of inspectable pages.

Have discovered that the problem is caused by grunt, but not sure why.

i downloaded Brackets 1.7
live preview won't work!
i get :
_rendered process gone
help, please


feat: add Lenis custom hook for smooth scrolling

Related Issue

fixes: #397
Description

added smooth scroll

Summary by CodeRabbit

New Features

Introduced LenisWrapper component to enhance animation management.
Added useLenis custom hook for improved animation control.
Wrapped main layout content with LenisWrapper to leverage new animation capabilities.

@TenzDelek Please do the changes requested to get this PR merged


ISSUE-251: Error status code is incorrectly handled on frontend

Original Issue: apache/pulsar-manager#251

:)

This problem has been solved, close it.


Add wagtail project

This pull request corresponds to the beginner's wagtail project mentioned in the checklist.

Closing in favour of #46


Uncaught Invalid State Error with implementing .start() after .pause()

Not sure what "offset must be a non negative number" means

error thrown when I hit 's' key with the following code:
function keyTyped() {
                if (key === 'a') {

                   beat.pause();
                   bass.pause();
                   blip.pause();
                   texture.pause();

                  //paused = true;
                } else if (key === 's') {

                   beat.play();
                   bass.play();
                   blip.play();
                   texture.play();
              }
            }

I will check this out asap. Must've brokenen with https://github.com/processing/p5.js-sound/issues/35, needs a unit test.
I've been meaning to implement a much better hack for tracking playback position, inspired by Chinmay's Pendharkar's technique for Sonoport Sound Models.
Hopefully that'll be a temporary fix until improvements to the audiobuffersourcenode or until audio workers are here.

What's interesting is that it worked ONCE. It must've returned some positive value because I saw it work... once. Hahaha torturous.

j

On Apr 23, 2015, at 09:57, Jason Sigal<EMAIL_ADDRESS>wrote:
I will check this out asap. Must've brokenen with #35, needs a unit test.
I've been meaning to implement a much better hack for tracking playback position, inspired by Chinmay's Pendharkar's technique for Sonoport Sound Models.
Hopefully that'll be a temporary fix until improvements to the audiobuffersourcenode or until audio workers are here.
—
Reply to this email directly or view it on GitHub.

Hey @justinpeake just pushed a fix, let me know how it goes!
https://raw.githubusercontent.com/processing/p5.js-sound/master/lib/p5.sound.js


Add Skip Gram Tokenizer

Is your feature request related to a problem? Please describe.
In Natural Language Processing, the bag of words technique is sometimes used to encode text data as word (or token) counts. Using n-grams as tokens, some sentence structure is maintained yielding more informative features. Another technique closely related to n-gram is the skip-gram method which skips over words to produce features with broader contexts. Skip-grams have been shown to achieve higher performance in comparison to words counts and n-grams at the cost of a sparser language model.
Describe the solution you'd like
Implement skip-gram (SkipGram) tokenizer
Describe alternatives you've considered
None
Additional context
None

Implemented as SkipGram tokenizer


Luicide-react-native icon styling using className not working on native devices

Describe the bug
I tried to use nativewind on my expo project, and I am using luicide-react-native icons I want to style it using className but it is not working on native devices. Please fix this on priority as I am using it in my project. I have also seen the issues regarding icon but none of them solved my problem
https://github.com/expo/vector-icons/issues/277
https://github.com/marklawlor/nativewind/issues/614
sharig below the github repo for reference - https://github.com/rajat693/nw-expo
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Expo Snack
If applicable, add a link to an Expo snack demonstrating the issue. There are multiple example snacks available at nativewind.dev.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

@rajat946 First of all, this is an open source library by volunteers, so please do not demand a priority for your problem unless you are sponsoring the author. To do so please visit https://github.com/sponsors/marklawlor
Probably this is related to a problem that Lucide components are not using the className prop automatically. Could you try to add a compatibility layer like this (in a Icons.tsx file for example)
import { AlertCircle, CheckCircle, LucideIcon, XCircle } from 'lucide-react-native';
import { cssInterop } from 'nativewind';

function interopIcon(icon: LucideIcon) {
  cssInterop(icon, {
    className: {
      target: 'style',
      nativeStyleToProp: {
        color: true,
        opacity: true,
      },
    },
  });
}

interopIcon(AlertCircle);
interopIcon(CheckCircle);
interopIcon(XCircle);

export { AlertCircle, CheckCircle, XCircle };

Maybe you can add a comment if this fixes your problem. Thanks!

I apologize for the tone I used earlier; it wasn't my intention. I attempted the approach suggested above, but unfortunately, it didn't solve my problem. Nonetheless, I'll continue to explore other solutions. Thank you for your assistance.

@rajat946, make sure that interopIcon is called in your app entry point (root _layout file, for example, if you're using Expo Router.
Here is the documentation on cssInterop -> https://www.nativewind.dev/api/css-interop


[DO NOT MERGE] benchmarks for hashing single subtrees recursively

This code is a benchmark for hashing a single, depth-8 subtree of a sparse Merkle tree by recursively establishing child hashes, adapted from work in progress code using this method to compute subtrees in parallel.
Raw results, the number of the left indicating the number of new key-value pairs:
subtree8/32             time:   [72.467 µs 75.138 µs 77.577 µs]
subtree8/128            time:   [76.635 µs 78.540 µs 80.337 µs]
subtree8/512            time:   [104.26 µs 107.99 µs 111.24 µs]
subtree8/1024           time:   [137.81 µs 142.94 µs 148.87 µs]
subtree8/8192           time:   [629.44 µs 708.05 µs 797.79 µs]

The time it takes to hash a subtree increases linearly with respect to the amount of key-value pairs being added to the tree as a whole.

/// Builds a set of nodes for a Merkle tree of depth 8 from the specified set of leaves. The nodes are
/// appended to the `inner_nodes` map. The leaves are assumed to be located at the specified depth.
pub fn build_subtree(
    leaves: impl IntoIterator<Item = (u64, Digest)>
    leaf_depth: u8,
    &mut inner_nodes: BTreeMap<NodeIndex, InnerNode>,
)

Actually, this may not be very parallelizable since BTreeMap cannot be mutated in parallel. An alternative could look something like this:
pub fn build_subtree(
    leaves: impl IntoIterator<Item = (u64, Digest)>
    leaf_depth: u8,
) -> BTreeMap<NodeIndex, InnerNode>

And then we can merge BTreeMap's in a single thread (assuming this is a relatively fast process).

Alright, I've pushed a simpler implementation much closer to what you suggested, and micro-benchmarks for it. This implementation takes the leaves pre-sorted, since presumably we'll want to only sort at the beginning. The benchmarks don't include the sort time, though I can easily change that. The benchmarks look like this:
subtree8-even/64        time:   [2.6322 ms 2.6329 ms 2.6338 ms]
Found 4 outliers among 60 measurements (6.67%)
  2 (3.33%) low mild
  2 (3.33%) high mild
subtree8-even/128       time:   [5.1247 ms 5.1529 ms 5.1772 ms]
Found 10 outliers among 60 measurements (16.67%)
  10 (16.67%) high severe
subtree8-even/192       time:   [7.8698 ms 7.8721 ms 7.8750 ms]
subtree8-even/256       time:   [10.500 ms 10.504 ms 10.507 ms]

subtree8-rand/64        time:   [1.0604 ms 1.0683 ms 1.0765 ms]
Found 9 outliers among 60 measurements (15.00%)
  6 (10.00%) low severe
  2 (3.33%) high mild
  1 (1.67%) high severe
subtree8-rand/128       time:   [2.1299 ms 2.1355 ms 2.1397 ms]
subtree8-rand/192       time:   [3.4609 ms 3.4727 ms 3.4815 ms]
subtree8-rand/256       time:   [5.0838 ms 5.0890 ms 5.0942 ms]
Found 2 outliers among 60 measurements (3.33%)
  1 (1.67%) low mild
  1 (1.67%) high mild

There seems to always be several outliers, no matter how quiet I make my system. Here's the output without the outlier diagnostic-noise, for easier reading:
subtree8-even/64        time:   [2.6322 ms 2.6329 ms 2.6338 ms]
subtree8-even/128       time:   [5.1247 ms 5.1529 ms 5.1772 ms]
subtree8-even/192       time:   [7.8698 ms 7.8721 ms 7.8750 ms]
subtree8-even/256       time:   [10.500 ms 10.504 ms 10.507 ms]

subtree8-rand/64        time:   [1.0604 ms 1.0683 ms 1.0765 ms]
subtree8-rand/128       time:   [2.1299 ms 2.1355 ms 2.1397 ms]
subtree8-rand/192       time:   [3.4609 ms 3.4727 ms 3.4815 ms]
subtree8-rand/256       time:   [5.0838 ms 5.0890 ms 5.0942 ms]

It also turns out that I did the math for roughly-evenly distributed leaves incorrectly, for the benchmarks this PR had originally. I at first made this mistake in this new benchmark too, and was astonished to see the performance jump from microsecond figures to millisecond figures going from supposedly evenly distributed data to random data. I was accidentally generating far too many leaves with the same index, which were then getting de-duplicated. After fixing that, the even benchmarks are now in the same order of magnitude as the random ones.

Thank you! A couple of follow up questions:
How much time does it take to build a tree for a single leaf? The reason I'm asking is that vast majority of the time we'd be building trees that have just one leaf in them. For example, assuming the leaves are randomly distributed, if we have 100M leaves, the subtrees up until depth 24 are very likely to be just single-leaf trees.
How does the timing for building a tree from 256 leaves compare to the timing for building a fully balanced MerkleTree with 256 leaves? I'm curious because the fully-balanced case should give us the lower bound on performance as most of the time there should be spent hashing.

Good questions! I'll find out!

A bit surprising though that hashing a fully-balanced 256-leaf tree is about 4x more efficient than building a subtree with 256 leaves (I was thinking it'd be closer to 2x). I think this is fine for now and we can definitely optimize this more in the future (let's create an issue for this).
The next step would be to use this method as a building block for building a full tree.


Pull Request Mandatory Dismantling Information

Description
Closes https://github.com/eclipse-tractusx/sig-release/issues/758

MS2 Criteria
(to be filled out by PR reviewer)

[ ] the model validates with the SAMM SDS SDK in the version specified in the Readme.md of this repository by the time of the MS2 check  (e.g., 'java -jar samm-cli.jar aspect <path-to-aspect-model> validate ). The  SAMM CLI is available here and in GitHub
[ ] use Camel-Case (e.g., "MyModelElement" or "TimeDifferenceGmtId", when in doubt follow https://google.github.io/styleguide/javaguide.html#s5.3-camel-case)
[ ] the identifiers for all model elements start with a capital letter except for properties
[ ] the identifier for properties starts with a small letter
[ ] all model elements at least contain the fields "preferred name" and "description" in English language. The description must be comprehensible. It is not required to write full sentences but style should be consistent over the whole model
[ ] Property and the referenced Characteristic should not have the same name
[ ] the versioning in the URN follows semantic versioning, where minor version bumps are backwards compatible and major version bumps are not backwards compatible.
[ ] use abbreviations only when necessary and if these are sufficiently common
[ ] avoid redundant prefixes in property names (consider adding properties to an enclosing Entity or even adapt the namespace of the model elements, e.g., instead of having two properties DismantlerId and DismantlerName use an Entity Dismantler with the properties name and id or use a URN like io.catenax.dismantler:0.0.1)
[ ] fields preferredName and description are not the same
[ ] preferredName should be human readable and follow normal orthography (e.g., no camel case but normal word separation)
[ ] name of aspect is singular except if it only has one property which is a Collection, List or Set. In theses cases, the aspect name is plural.
[ ] units are referenced from the SAMM unit catalog whenever possible
[ ] use constraints to make known constraints from the use case explicit in the aspect model
[ ] when relying on external standards, they are referenced through a "see" element
[ ] all properties with an simple type have an example value
[ ] metadata.json exists with status "release"
[ ] generated json schema validates against example json payload
[ ] file RELEASE_NOTES.md exists and contains entries for proposed model changes
[ ] all contributors to this model are mentioned in copyright header of model file

MS3 Criteria
(to be filled out by semantic modeling team before merge to main-branch)

[ ] All required reviewers have approved this PR (see reviewers section)
[ ] The new aspect (version) will be implemented by at least one data provider
[ ] The new aspect (version) will be consumed by at least one data consumer
[ ] There exists valid test data
[ ] In case of a new (incompatible) major version to an existing version, a migration strategy has been developed
[ ] The model has at least version '1.0.0'
[ ] If a previous model exists, model deprecation has been checked for previous model
[ ] The release date in the Release Note is set to the date of the MS3 approval

Hi @jSchuetz88, could you please do the review, so we can finish the pull request?

Hi @jSchuetz88 , could you please do the review, so we can finish the pull request?

@jSchuetz88 you promised to do the checks here ;)


reduced cognitive complexity of the function async_setup_platform() -…

…> None in homeassistant/scene.py

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Deprecation (breaking change to happen in the future)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the development checklist
[ ] I have followed the perfect PR recommendations
[ ] The code has been formatted using Black (black --fast homeassistant tests)
[x] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
[ ] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

[ ] I have reviewed two other open pull requests in this repository.

Code smell: Reducing cognitive complexity of a function
Why is this code smell/issue relevant?
A function with higher cognitive complexity is difficult to understand. If a developer wants to make any changes to a function with higher complexity, they would take a lot of time to understand the function. The function will be less readable, and it will take more effort to maintain, debug, and test. Hence, the function's cognitive complexity should be reduced to make it more understandable and easier to maintain and debug, saving time and effort.
How the code smell/issue is resolved?
The cognitive complexity of a function can be resolved by breaking down the function into smaller components, simplifying logic (reducing the usage of if-else statements and loops), using meaningful variable names.
In this PR, I've broken down the function into smaller parts, each handling a specific aspect of the setup. This should improve readability and make it easier to understand the logic.

The changed code in scene.py changes the behaviour of the integration (L265, logging, is gone).


Enhance Proof Delivery Resilience with ParSliceErrCollect in ChainPorter

This PR updates the proof delivery process in ChainPorter by utilizing the newly introduced ParSliceErrCollect function. This change ensures that proof delivery continues even if an individual transfer output proof encounters an error, improving the reliability of the delivery process.
This change ensures that as many transfer output proofs as possible are delivered, even in the presence of errors.
Changes

New Function: Introduced ParSliceErrCollect, which collects errors during parallel processing without halting the entire operation.
ChainPorter: Modified to use ParSliceErrCollect for parallel proof delivery, allowing the process to continue despite individual delivery failures.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

0 of 52 (0.0%)  changed or added relevant lines in 2 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.006%) to 40.319%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

fn/concurrency.go
0
24
0.0%

tapfreighter/chain_porter.go
0
28
0.0%

Files with Coverage Reduction
New Missed Lines
%

tapdb/addrs.go
2
79.04%

tappsbt/create.go
2
53.22%

Totals

Change from base Build<PHONE_NUMBER>4:
-0.006%

Covered Lines:
23963

Relevant Lines:
59434

💛  - Coveralls

Ensure proofs are delivered given partial proof courier addresses availability


US ID22: As a player, if I don’t want to select another user in order to fool him, the game will still go on.

Note: This is part of the game mode ‘trust or bust’ and should be only active, if that was chosen in the game room.

[ ] In the pop-up window will be a timer counting down to show how much time is left to choose a user.

[ ] If the selected user didn’t select another user to fool, one user will be randomly selected.

[ ] Optional: While some users are selecting the users to fool, the other users will be entertained through some funny APIs, for example some pictures or memes.

proposed additional tasks:
Backend:
implement a random selector
communicate this choice to the front end


Add missing parameters from pyinstaller as hidden-import

In a project I did recently, the final build compiles correctly but, during execution, it fails due to the lack of a dependency that is not used directly.
My project depends on sqlalchemy which has a dependency on pymssql that is not included in the binary.
Pyinstaller allows you to correct these imports by passing the --hidden-import parameter.
When analyzing the code of this plugin, I noticed that in addition to this there are several other parameters that are also not mapped.

Hi @gabrielslau,
pymssql is an optional dependency of sqlalchemy package and will not be installed in intermediate environment created by pyinstaller plugin. Adding hidden-import feature would not help.
You can (must) include pymssql package by adding it as an extra of sqlalchemy using following comment.
poetry add sqlalchemy[mssql-pymssql]


Added Additional Custom Headers Listeners For HTTP, HTTP_MAPI and HTTP_COM

#1028 This is great to can be adding additional custom headers on listeners

@infosecn1nja Thanks for this PR. Could you move the dde module to another PR? It doesn't have anything to do with this PR.


added Doi Inthanon

May add more later if this gets approved and merged okay.

I'll merge for sure only if issue #7 is completed.

Okay np. I'll add the rest of it after work.

@burmanp Thanks for your hard work


Plan the USE-CASES

DoD:
Create documentation which

Shows phase1 discord trigger messages
Explains what it does
Has a programmatical name.


Fix/out of bounds while decoding

This PR is a fix for #36.
I'd like to add that this issue was probably not caught earlier because the "broken_string" test is a bit misleading. While the polyline in that test is "broken" it still decodes fine, the decoded data is just meaningless. It would only trigger "should_panic" because of the test's assertion not holding. I have refactored another test with a similar issue.
I have also added a test with an input that actually causes the out-of-bounds error.
On my machine, there is a performance hit:
     Running benches/benchmarks.rs (target/release/deps/benchmarks-47700460fb2f8668)
bench encode: 1000 coordinates
                        time:   [50.426 µs 50.577 µs 50.744 µs]
                        change: [-11.202% -10.880% -10.555%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
  9 (9.00%) high mild
  3 (3.00%) high severe

bench decode: 21502 coordinates
                        time:   [231.81 µs 233.17 µs 234.88 µs]
                        change: [+4.7448% +5.2551% +5.7437%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high severe

bench polyline6 decoding
                        time:   [40.434 ns 40.524 ns 40.623 ns]
                        change: [+9.1684% +9.8057% +10.405%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  4 (4.00%) high mild
  6 (6.00%) high severe

bench HUGE polyline6 decoding
                        time:   [30.727 µs 30.855 µs 31.013 µs]
                        change: [+12.223% +12.654% +13.046%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe

I can't tell if this is still acceptable.

I have gone back and forth on this a bit (as you can probably tell from the commits) - I'm happy with this version now, the performance hit seems very small.

Perf regression on decodes is 10 - 12 %. I can live with that unless someone else has a better suggestion.

Why aren't our tests running 🤔

@mattiZed Thanks, this looks OK to me. Could you also update the changelog (under Unreleased)? Just short entry noting the change and perf regression. I'll leave this open til tomorrow and then merge unless anyone else has input.

@mattiZed Thanks, this looks OK to me. Could you also update the changelog (under Unreleased)? Just a short entry noting the change and perf regression. I'll leave this open til tomorrow and then merge unless anyone else has input.

Sure thing, done!


Error in intersection of two simplical manifolds (when densmap = True) - KeyError: 'graph_dists'

When I try to embed categorical and numerical data separately and try to get their intersection using the * operator.
That is final_embedding = numeric_embedding * categorical_embedding, when for both embeddings densmap=True. I get an error - KeyError: 'graph_dists'.
This is because in the file umap/umap_.py on Line#1111 in the method simplical_set_embedding the statement dists = densmap_kwds['graph_dists'] is incorrect.
That is because, in the file umap/umap_.py on Line#2067 in the method _mul_() the statement resut._densmap_kwds=... assigns a dictionary, which does not have any key named 'graph_dists'. Could you please look into this issue?

I think densmap may be incompatible with combining models I'm afraid.
On Tue, Jun 7, 2022 at 10:08 AM Kunind Sahu @.***>
wrote:

When I try to embed categorical and numerical data separately and try to
get their intersection using the * operator.
That is final_embedding = numeric_embedding * categorical_embedding, when
for both embeddings densmap=True. I get an error - KeyError:
'graph_dists'.
This is because in the file umap/umap_.py on Line#1111 in the method
simplical_set_embedding the statement dists = densmap_kwds['graph_dists']
is incorrect.
That is because, in the file umap/umap_.py on Line#2067 in the method
mul() the statement resut._densmap_kwds=... assigns a dictionary, which
does not have any key named 'graph_dists'. Could you please look into this
issue?
—
Reply to this email directly, view it on GitHub
https://github.com/lmcinnes/umap/issues/872, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC3IUBKS6FITG5QOCVOD3CLVN5JVVANCNFSM5YDCREXA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Unknown header entry for yet unmapped data block (b0-c0-t144-a1...)

Firsly, i thank you for this package.
I try to open opus data with opusreader2, but i received an error message like:
Error: Unknown header entry.
The following 'composite key' is not yet mapped in the {opusreader2} key-value map of the header:

"b0-c0-t144-a1"

I don't know how fixing this error.
Thanks for yours answers.

Hi, it looks like there is a data type in the OPUS file we have not yet specified. Could you share an example binary OPUS file here, so that I can have a look?

@Mahounakpon just wondering whether your issue is still there. Can you share an OPUS file here?

@philipp-baumann, hello! Here is an example of opus data with  data block (b0-c0-t144-a1...) . I appologize myself for this lateness.
Thanks!
Opus_test_unknown_entry.zip

Okay!
Thanks

Hi @DominiqueAhouanhode just short question back. What instrument are you using, what are you measuring and what data do you save?
aka
r$> file = system.file("extdata/test_data", "file-issue-82.0", package = "opusreader2")

r$> data = read_opus(file)
Error: Unknown header entry.
 The following 'composite key' is not yet mapped in the {opusreader2} key-value map of the header:
 * "b0-c0-t144-a1"
We encourage your contribution to feature this new OPUS block by opening a new issue on
     https://github.com/spectral-cockpit/opusreader2/issues
Please
 1. report reproducibly, using short code with {opusreader2}
      (recommended: https://reprex.tidyverse.org)
 2. describe briefly
   a) Bruker instrument used
   b) equipment
   c) measurement mode and spectral blocks saved (OPUS settings)
   d) OPUS software version
   e) your general workflow for spectroscopic diagnostics
 3. provide an example OPUS binary file uploaded for public access
    on GitHub (best in issue)
 4. to facilitate widespread support of Bruker devices in open source
    based infrastructure, show the data blocks as print screens in the
    Bruker OPUS software (right-click in Viewer). Please upload the
    contents of all OPUS blocks in individual screenshots.

Hi @philipp-baumann  we are using BRUKER MPA,
We are measuring oisl and proteins composition,
Absorbande data are saved.
Thanks!

Hi @DominiqueAhouanhode finally your reading issue should be resolved with the newest v0.6.0 release (see https://github.com/spectral-cockpit/opusreader2/blob/main/NEWS.md for details).
The composite key "b0-c0-t144-a1" belongs to a report block. Currently, we have classified it as "report_unknown" , not parsed, and returned as NULL element (see https://github.com/spectral-cockpit/opusreader2/blob/ed112befc014a4b4da44990dd10c1da41a89ca04/R/create_dataset.R#L29 ) .
Here is a short confirmation.
library("opusreader2")
file <- "inst/extdata/new_data/issue82_Opus_test.0"
data <- read_opus(dsn = file)
names(data[[1]])
#>  [1] "basic_metadata"                  "ab_data_param"
#>  [3] "ab"                              "sc_sample_data_param"
#>  [5] "sc_sample"                       "sc_ref_data_param"
#>  [7] "sc_ref"                          "match_data_param"
#>  [9] "match"                           "match_2_chn_data_param"
#> [11] "match_2_chn"                     "optics"
#> [13] "optics_ref"                      "acquisition_ref"
#> [15] "fourier_transformation_ref"      "fourier_transformation"
#> [17] "sample"                          "acquisition"
#> [19] "instrument_ref"                  "instrument"
#> [21] "lab_and_process_param_processed" "info_block"
#> [23] "history"                         "report_unknown"
sessionInfo()
#> R version 4.1.3 (2022-03-10)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 22.04.3 LTS
#>
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
#>
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
#>  [3] LC_TIME=de_CH.UTF-8        LC_COLLATE=en_US.UTF-8
#>  [5] LC_MONETARY=de_CH.UTF-8    LC_MESSAGES=en_US.UTF-8
#>  [7] LC_PAPER=de_CH.UTF-8       LC_NAME=C
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=de_CH.UTF-8 LC_IDENTIFICATION=C
#>
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base
#>
#> other attached packages:
#> [1] opusreader2_0.6.0
#>
#> loaded via a namespace (and not attached):
#>  [1] digest_0.6.33     withr_2.5.0       R.methodsS3_1.8.2 lifecycle_1.0.3
#>  [5] magrittr_2.0.3    reprex_2.0.2      evaluate_0.22     rlang_1.1.1
#>  [9] cli_3.6.1         rstudioapi_0.15.0 fs_1.6.3          R.utils_2.12.2
#> [13] R.oo_1.25.0       vctrs_0.6.3       styler_1.10.2     rmarkdown_2.24
#> [17] tools_4.1.3       R.cache_0.16.0    glue_1.6.2        purrr_1.0.2
#> [21] xfun_0.40         yaml_2.3.7        fastmap_1.1.1     compiler_4.1.3
#> [25] htmltools_<IP_ADDRESS> knitr_1.43

Created on 2023-11-12 with reprex v2.0.2
I'll close once it works.
It would be great if you also upload screenshots of the OPUS software here, so that we can identify the new report blocks, try parsing it, and confirm that worked, too. As this block is a report block that is not so relevant because one wants to do analysis and modeling in R anyway, I suggest we can close once you confirm.


feat(charts/apps/pod-gateway): upgrade admission controller flags

Description of the change
The PR introduces support for the gatewayLabelValue and gatewayAnnotationValue admission controller flags for the pod-gateway Helm chart.
Benefits
Thanks to the new https://github.com/angelnu/gateway-admision-controller flags, add support for having multiple pod-gateways inside a single cluster and allow the end-user, to select for each client application which pod-gateway set as the default gateway for the client application's pods.
Possible drawbacks
NA
Applicable issues
Closes #48
Additional information

Checklist

[x] Title of the PR conforms to the Conventional Commits standard.
[x] Scope of the of the PR title contains the chart name.
[x] Chart version in Chart.yaml has been bumped according to Semantic Versioning.
[ ] Chart artifacthub.io/changes changelog annotation has been updated in Chart.yaml. See Artifact Hub documentation for more info.
[x] Variables have been documented in the values.yaml file.

Hi @angelnu, do we have a version OCI image tag for the admission controller's latest commit so that we can bump the webhook.image.tag Helm value?
Thank you

May I help with something here @angelnu?
Thank you

All good @maxgio92 - I did not have the chance to process it.
Thanks for the PR!

No problem at all, thank you @angelnu :-)


import zilliz_gis and zilliz_pyspark still failed

commands:
conda install -c arctern-dev arctern-spark
conda install -c arctern-dev arctern
conda install -c arctern-dev libarctern
conda create -n arctern_dev -c nezha2017 -c conda-forge arctern
conda activate arctern_dev
enter python env and:
import zilliz_gis
import zilliz_pyspark
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'zilliz_gis'

use this command to creat new conda environment:
conda create -n <env> -c arctern-dev -c conda-forge arctern-spark


Don't allow dividing by 0

We don't check for this, which means division by 0 gives weird results.
This functionality would probably go in simplifyBasics, or in a separate DFS before that - since checking for dividing by zero is important before anything else is attempted.
I think (though feel free to approach this a different way) that dividing by zero would look like this:

the divide by 0 function returns a NodeStatus.hasChanged object where newNode is actually the same as oldNode and the changeType is DIVIDE_BY_ZERO
in simplifyExpression, in the function stepThrough, after each call to step, check if the changeType was DIVIDE_BY_ZERO -- if so, break out of the while loop

I am on this; will PR soon. How should we handle the 0/0 case? Return DIVIDE_BY_ZERO too?

yeah, I think I'm comfy having them give the same error. Sound ok to you?

Yes I think that makes sense! I'll PR later tonight.

Hey @hmaurer, I see you have a branch open for this and a commit - did you forget to put up a PR or did you want to work on it a bit more first?

@hmaurer ?

@evykassirer Sorry for the delay; I have opened a PR

no problem at all, just wanted to make sure it wasn't forgotten about ^_^

This is interesting, I wonder if there should be a NodeStatus for errors like this in general that we check, not just divide by zero.

@aelnaiem I was thinking about that too!
In the PR, I talked about:

oh, maybe a nodeStatus should have both a changeType and an errorType (default to null)? idk, still trying to figure out what this would look like long term

what do you think?

Yea I think that's a good idea!

UPDATE: now related to #129 -- let's use it as the first error that we implement with the new error structure
I removed the small label, since this is more complicated now


Support for source data in another database - Postgres

Describe the feature
Our staging and reporting tables can be rebuilt easily thanks to dbt - but the source database tables need a lot more protection and thought, especially for db rollbacks, backups and upgrades.
We would like our source data in one Postgres database, and the dbt output to be in another db entirely.
My understanding is its already supported on the more 'warehousey' databases, but not Postgres. I'm unsure how this works with snapshots - I would imagine these should be able to be loaded into the source db too.

I'll let drew chime in on this if he has any thoughts on alternative paths, but dbt really can't support this in a technical limitations of postgres sense. In postgres (and redshift), queries that cross databases are simply not permitted:
postgres=# select * from dbt.dbt_jbeck.foo;
ERROR:  cross-database references are not implemented: "dbt.dbt_jbeck.foo"
LINE 1: select * from dbt.dbt_jbeck.foo;

Snowflake and BigQuery both allow queries to cross databases, so dbt allows it on those warehouses.

Thanks @beckjake that entirely makes sense then, love to hear if Drew has any alt ideas of course.

Hey @jmace006  - I have some bad news! Postgres doesn't allow any queries to cross logical database boundaries. It might be a good idea to consider replicating your source postgres data into an entirely different database, be it something like Postgres also, or Snowflake/BigQuery/Redshift. This is the architecture most dbt users are deploying for analytics, and it's definitely one that I'd recommend!
I'm closing this out as a wontfix because I don't think Postgres gives dbt any way to do this at all! Very happy to discuss this further though - let me know what you think :)

@drewbanin Is there any reason why one couldn't use postgres_fdw to link two databases and have a query cross these logical database boundaries?

@dyllan-to-yu Sort of! With a foreign data wrapper, it's possible to import foreign schema and create a schema in the local database that's a pointer to the other one. Then, those "source pointers" are addressable as schema.identifier, just like any other relational object in the local database.
I've done this before, using dbt, by wrapping the data wrapper DDL in a macro or two, and then treating the pointers as just one of my sources. I will say that, in my experience, data "loading" can be quite slow. It's preferable to use a different architecture if possible.

@dyllan-to-yu we use postgres foreign data wrappers now to support this. It works really well, and we haven't found it slow. Though we have pretty low data volumes (also why we are still on Postgres).

Also, what about creating a dbt macro for Postgres dblink?
https://www.postgresql.org/docs/10/contrib-dblink-function.html
I believe this issue should be re-opened as there is likely a solution using either FDW or dblink.

+:100: to @brylie comment. I feel like this should be modeled directly in dbt using FDW. There's a bunch of server configuration and schema mapping that would be awesome to abstract away.


Provide minimum and maximum temperature values for forecast data

The BOM forecast I see on my phone (and can get via Willy Weather) includes daily minimum and maximum temperatures. It would great if this could be included in the forecast sensors similar to the sensor.city_extended_text_0 and sensor.hackett_short_text_0 sensors.
The Willy Weather HACS project does this using a separate sensors: sensor.ww_day_0_max_temp and sensor.ww_day_0_min_temp.

These are included already if you turn them on when you add the integration (where you select the sensors you want)

Thanks for putting that out 👍


Provide Pods and Service CIDRS in provisioning parameters

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/hold

/unhold


[SPARK-36653][PYTHON] implement Series.xor and Series.rxor

What changes were proposed in this pull request?
Implement Series.__xor__ and Series.__rxor__
Why are the changes needed?
Follow pandas
Does this PR introduce any user-facing change?
Yes, user can use
psdf = ps.DataFrame([[11, 11], [1, 2]])
psdf[0] ^ psdf[1]

How was this patch tested?
unit tests

Can one of the admins verify this patch?

ok to test

cc @ueshin @xinrong-databricks @itholic FYI

Test build #143039 has started for PR 33911 at commit 97cebbe.

Test build #143039 has finished for PR 33911 at commit 97cebbe.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47542/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47542/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143039/

Test build #143041 has started for PR 33911 at commit 7fe6686.

Test build #143041 has finished for PR 33911 at commit 7fe6686.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47544/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143041/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47544/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47544/

Yeah, let's do rxor together here

Test build #143047 has started for PR 33911 at commit 24f146a.

Test build #143047 has finished for PR 33911 at commit 24f146a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47550/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143047/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47550/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47550/

Test build #143065 has started for PR 33911 at commit 032bf4b.

Test build #143065 has finished for PR 33911 at commit 032bf4b.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143065/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47568/

Test build #143066 has started for PR 33911 at commit f872943.

Test build #143066 has finished for PR 33911 at commit f872943.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47568/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47569/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47568/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143066/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47569/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47569/

Would you move tests added to https://github.com/apache/spark/tree/master/python/pyspark/pandas/tests/data_type_ops?
We may utilize test data in https://github.com/apache/spark/blob/master/python/pyspark/pandas/tests/data_type_ops/testing_utils.py to test both "series on diff frames" and "series on the same frame".

Test build #143115 has started for PR 33911 at commit ca42afe.

Test build #143115 has finished for PR 33911 at commit ca42afe.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47619/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143115/

Test build #143117 has started for PR 33911 at commit b1ccde0.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47621/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47621/

Test build #143117 has finished for PR 33911 at commit b1ccde0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143117/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47619/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47619/

Test build #143146 has started for PR 33911 at commit 3189e2a.

Test build #143146 has finished for PR 33911 at commit 3189e2a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47650/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47650/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143146/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47650/

Test build #143161 has started for PR 33911 at commit 3207e10.

Test build #143161 has finished for PR 33911 at commit 3207e10.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143161/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47665/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/47665/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/47665/

Thanks! merging to master.


How do I check if an item is already purchased?

I am implementing my first in-app purchase for iOS/Android. I realized https://github.com/idehub/react-native-billing (for Android), has a way to listOwnedProducts(). Is there an iOS equivalent using this library, or is the iOS process just different?
Specifically, this is a non-consumable purchase "No ads".

Usually you would save the purchased state on you backend for a given user.
If that's not an option, you can store what's purchases on device. There are many ways to do that outside the scope of this lib.
There also restorePurchase which you can use to find all purchased items.
On iOS there is no API to directly get purchased item other than restore purchases.

Ah, I see. I know how to do all of those then. Thanks.
Out of curiosity, why is saving the purchased state on the backend preferred over using restorePurchases? I guess I need to do that on the Android too then, because it seems to save it to the Google Play account and not the user's account on my app.
In general, it is a better practice to store "already purchased" in my own user database instead of relying on App Store/Google Play?

Also, I am bit confused about the restorePurchases. https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html
It says:

Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button. Restoring purchases prompts for the user’s App Store credentials, which interrupts the flow of your app: because of this, don’t automatically restore purchases, especially not every time your app is launched.

But after trying out restorePurchases from this library, it seems to do exactly what I need: gets a list of the already purchased items. I'm calling every time the user launches the app, and it doesn't seem to be prompting for credentials every time.
Is the article just outdated? I noticed it doesn't mention anything about non-consumables. Are these treated differently? Because restorePurchases seems to work just fine.

Nevermind. It seems like it wasn't prompting me because after you do it the first time, it saves the account in iTunes/App Store settings. If this was a brand new user however, and I restore the purchases on app start, it prompts them before they even buy anything or look at the store, which seems very bad. Going to look into storing it to the user account on the backend like you said

going to close as per my comment above.

Hi guys, sorry for resurrecting this issue, I just wondered if you could briefly help me with a bit of advice. I'm trying to decide where to persist the purchase receipts for non-consumable IAPs in my app, and after hours of googling I'm none the wiser. What confuses me is this: above, and in several other places on the web, the advice is to store the purchase on my own backend for a given app user. But unless I'm mistaken, IAPs are tied to an iTunes account, not to an app-specific user account.
For example, I might log out of my app, sign up as a different app user, then tap "restore purchases" and I would then get access to my non-consumable IAP feature without paying again.
And, conversely, if I log out of my iTunes account and sign in to my iPhone with a different iTunes account, and then log into my app with my original app account, I won't have access to my non-consumable IAP feature unless I pay again.
All of this to say – it makes no sense to me to store the receipt with the app-specific user account, given that the purchase is in no way related to that account.
Or am I (very likely!) wrong? Thanks for any help you can give!

@Leeds-eBooks I can give you some examples where I saw no other alternative than storing it on the user metadata.

User is logging in
I need to determine whether they are ad-free or not. But to do this, I shouldn't be prompting them/calling "Restore Purchases" every time. It should just be saved on their user metadata.
Hide/show ads accordingly
(Also like I said in a previous post, you can have a brand new user -> they log in -> you have to call Restore Purchases just to check if they bought Ad-Free, which prompts them for their iTunes info before they've even looked at your in-app store for the first time!!! Bad.)

or simply, I want to show how many "Gems" the user currently has, which would've been a consumable IAP, having to press "Restore Purchases" every time for this doesn't make sense.
I ended up going with storing it on the backend as @chirag04 suggested + offering a Restore Purchases button (which iOS review makes you do anyway).

Thanks so much for your reply.

I need to determine whether they are ad-free or not. But to do this, I shouldn't be prompting them/calling "Restore Purchases" every time. It should just be saved on their user metadata.

If it's stored on the device, you can check without calling "Restore Purchases". If the app has been reinstalled, or we're on a new device, the user just taps "Restore Purchases" manually. I don't think this would be annoying.

(Also like I said in a previous post, you can have a brand new user -> they log in -> you have to call Restore Purchases just to check if they bought Ad-Free, which prompts them for their iTunes info before they've even looked at your in-app store for the first time!!! Bad.)

Again, if it's stored on the device, you don't need to do this. I would never call "Restore purchases" automatically – a new app user account, on the same old iTunes account, would just tap "Restore Purchases" manually.

Imagine if Facebook had a shitload of ads and had an IAP to remove them all forever. Wouldn't people be pissed if they upgraded from their Samsung Galaxy S7 to an iPhone 7, and had to buy that again?

This is a good point. Can I clarify something? If someone buys an IAP, then logs out of the app, then signs up with a new app account, they don't have the IAP purchase because they're a new user. But they're on the same iTunes account, so they can tap "Restore Purchases". At this point, in your app, do you store the restored purchase on this new user's account in your server?
Thanks again!

@Leeds-eBooks
Yeah, it really all depends on your use case. I don't know if you're familiar with Pokemon Go, but you could buy Pokeballs. Let's say you bought an IAP of 100 Pokeballs. No matter if you logged in from your iPhone 6, or iPhone 7, or iPad, or Android, you'd expect those Pokeballs to be there when you logged into your account, wouldn't you? In my case with the Ad-Free, my user already bought Ad-Free, so I didn't want to temporarily show them ads until they navigated to the Shop to press "Restore Purchases", which isn't even a thing on Android like it is on iOS. It seems like apps with online user profiles are a more fitting case for the backend storage. If you had an app where you didn't care if they lost their Pokeballs / progress, you could get away with something else. For example, a single-player game with unlockable maps, just using "Restore Purchases" would work fine I would imagine. As for your question, "If someone buys an IAP, then logs out of the app, then signs up with a new app account, they don't have the IAP purchase because they're a new user. But they're on the same iTunes account, so they can tap "Restore Purchases". At this point, in your app, do you store the restored purchase on this new user's account in your server?", in my case, yes. That's what I did. I don't expect them to re-buy "Ad-Free" on every account. This could be abused probably, but it's better than people getting pissed, 1 starring your app, asking for refunds, etc.

@booboothefool This is so helpful, thanks. You're totally right and as my use-case is extra premium features, you're right that a user with an account should only have to go through the purchase process once, and shouldn't be expected even to "restore purchases". And thanks for explicitly answering my last question, it really helps. Much appreciated!

Android IAP Server gives all information about product (including if it's purchased or not),
So what about iOS?
It's stupid to save it locally (prefs, defaults)
Android uses Google Play Services to get purchased items even in offline mode
For safety we can validate if user is really bought (and didn't use some LuckyPatcher, Freedom to get it for free) - https://developer.android.com/google/play/billing/billing_best_practices#validating-purchase-server
This additional validation we can make when user's device internet is enabled
So how does iOS work then?
I don't want to save anything locally

also implementing your own server just to check if user bought ad-free item is very excessive/expensive
our apps aren't pokemon go, your app may even not need any logging before user can use it
but yes only for pokemon go similar apps it looks good to have a server and facebook/google/other different variants to register/login in your app


⚠ PrivateHD has degraded performance

In 3d622be, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2051 ms

Resolved: PrivateHD performance has improved in 8387e6a.


Multiclusters E2E test framework

Description of changes:
First take for adapting our e2e test framework to management+workload clusters
The changes are lengthy but super super simple, I recommend going commit by commit, that will make the review way easier
Some ideas:

This uses the same patterns and syntax that we are used to for self managed clusters, but applied to multicluster tests.

Management and workload clusters are defined the same way.
Operations over clusters syntax is the same (CreateCluster DeleteCluster, etc.).
All the code to validate single cluster tests will work here as well, hopefully transparently
This should make writing new tests for workload clusters almost a copy paste excercise

A multicluster test allows for one management cluster and multiple workload clusters

I added a "demo" test, so it's easier to see how the framework can be used. I'm not sure this test in particular is the most valuable one, but I think it demonstrates how any other test can be build. It can be removed once other better tests are added.
I can't guarantee that all the other testing tooling (Flux, upgrades, oidc, etc.) will work out of the box (there might be parts that were written making very specific assumptions about single cluster tests), but most of it should. I only need to make minimal modifications to the existing code to make the create-delete flow work.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: g-gaston
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [g-gaston]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/hold until next release. This contains multiple changes to the E2E framework that could possibly break existing tests

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: g-gaston, mdsgabriel
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [g-gaston,mdsgabriel]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm


Task Done

Please accept pull request

@harsh3311 have you check how many extra files you added in commit
always adding changes from local to staging using command git add filename


Regtest builds?

Is it possible to build a regtest version of the app? If yes, it'd be nice to document it, if not I'd like to see it enabled.
Description
I'd like a special version of the app using regtest instead of mainnet. Similarly to how Eclair mobile app has a testnet version (well testnet would be nice too, but I personally find regtest more practical). This version should accept all regtest inputs (addresses, invoices...) and reject mainnet inputs. It should be graphically distinct from mainnet version so that people don't get confused if they install them side-by side.
It'd be extra nice to have this version available in the Play store or at least pre-built APK somewhere online.
Context
I need to quickly iterate testing of my integrations an lately I started to use regtest much more. It's much more convenient as it doesn't start automatically downloading 300GB of chain and I don't need to care about risking real money for some advanced test cases. This helps with development of software, especially creating software with less bugs.
Possible Implementation
When it comes to distinguishing from mainnet I'd suggest a different color scheme  together with word "regtes" somewhere in the UI.
Off topic: I've noticed you implemented LNURL - very useful feature, thanks a lot!

This is something I wanted to do for a long time...
I will try to make this work next week for builds from source.

Regtest support was merged. Please see the documentation here:
https://github.com/LN-Zap/zap-android/blob/master/docs/REGTEST.md

Awesome, thanks!


Fixed unbranded template to pull in scripts include

Scripts now run on unbranded pages, body_end block changed to bodyEnd

[Note - we are working together to resolve the conflict]


Add typography vars to the theme

As well as colors, it would be useful to also have font-sizes, etc in the theme.
I am happy to do this as a first contribution. :)

Hey @luxumbra thanks for the suggestion!
However the scss styles and node-sass were added to work with Bootstrap for the initial POC made during the hackathon.
Now it’s kind of the goal to remove Bootstrap, scss and also preferably css & inline styles as much as possible, as well as the node-sass dependency.
This way we can use styled components everywhere...
Apologies  if this wasn’t clearly documented in the Github repo, it was discussed a few times before on chat but not really considered to urgently execute, would be aweseome if someone would like to work on this!

The plan was more or less to use a theme.js file next to the colors and leverage styled components, theme provider or a similar configuration... open to suggestions.

Ah OK. No worries. I was asking in chat if there were any vars for font sizes, etc and as there weren't any as yet, it was suggested to add some typographic vars for the theme. No worries though and I'm glad it's styled components, not css modules. :)
Personally, i think using styled components theme provider is a lovely way to work, in my limited experience of React projects. I've worked with that set up on two projects but they were set up prior to me being involved.
I'd like to work on this, if it's considered worth the time at this point in the project.

@luxumbra yeah sure, go ahead... would be nice if it's cleaned up a little
You might also notice there is alibrary added called Grommet, I was testing that but I guess we will also remove it and use our own base components instead.
For typography for example there is a Title component ... would be nice if there is some systematic approach for the components and styling!

Cool, OK. I'll start with the Title component. How did you find Grommet? Any good?
Also, to reduce the use of !important properties, if we need to override the default AntD classes, I think it would be good to use the Babel CSS namespace plugin for styled components. What do you think?

@luxumbra I thought luxumbra was pretty good, haven't really used it that much, only tested a few components
It could be better than completely rolling our own base components, for now I've removed react-bootstrap and also some grommet buttons in some files and replaced by our base components just for the sake of consistency.
And yeah... hmm not sure, haven't used or seen that Babel plugin before.
I suggest we first remove the .scss file, add the theme to styled components and look how we can improve that. I am not very convinced by using both ant design and ant design mobile in the same project at the moment.

@robinv85 Yeah, it seems pretty good and seems less opinionated regards to styles...less overrides needed.
Good plan to remove the .scss files - at the moment, both @anniegiang and I have used the theme.scss file to import google fonts. Without having to install & import a module to handle these fonts (i'm having issues with that), where can those @imports go?


Change naming rule of Cronjob in order to extend name length limitation of MySQLCluster

What
In the current version, the name length of MySQLCluster is limited to 40 characters because the name length of CronJob/StatefulSet is limited to 52 characters by Kubernetes.
40 characters are short in some cases. For example, large clusters and multi-tenant Kubernetes cluster.
So we want to extend the length.
How
Ideas

Change names of CronJob to moco-backup-<some random name> from moco-backup-<Cluster name>
Shorten the prefix moco-backup

Limitation

Even if the limitation of CronJob is solved by the effort above, there are still limitations by StatefulSet.
The prefix of StatefulSet moco- is enough short. so it's hard to extend the limitation of MySQLCluster name to over 47 characters.

Checklist

[ ] Finish implementation of the issue
[ ] Test all functions
[ ] Have enough logs to trace activities
[ ] Notify developers of necessary actions

We decided that we don't start implementation of this issue for now because it's merit is smaller than it's cost.


Add http3 support

What does this PR do?
https://github.com/traefik/traefik-helm-chart/issues/537
Add http3 support for the helm chart
Motivation
I want to enable http3 on my small k3s cluster because it sounds cool and I am a bit frustrated this can't be done in a "preferential kind of way". In the linked issue I discuss how to do it before this patch but it is very hacky in my opinion and ver fragile since it depends on you typing the entrypoint names correctly. This should improve things
More

[x] Yes, I updated the chart version

Additional Notes
I took care of the config changes between 2.5 and 2.6 version so everything should be working when we decide to upgrade the app version. It is also tested but I am open to add more if is is necessary.

Closed in favour of https://github.com/traefik/traefik-helm-chart/pull/488


support and document static_model_preferences

Update README with the static_model_preferences and make sure we sure the preferred_ method on these settings so we can use the static_model_preferences as well.

closes #51


BMS data

This is not an issue but rather a question:
How exactly does the code fetch the BMS and other data (MMPT and INV)? I cannot find this out by checking the source code. request is only called to get get_serial_main and get_dc_in_current.

I'm still working out how this works myself but it appears that the listening happens in custom_components/ecoflow/ecoflow/rxtcp.py. This class creates a TCP connection to the battery which will then send packets of data about is happening. This binary stream is then converted to something that Home Assistant can use in custom_components/ecoflow/ecoflow/receive.py if you take a look around line 165 you can see where it is converting the binary.
I'm sure someone else can give you better information that I can but it might help you get started.

This is all clear. I can get the PD, EMS, MPPT data via port 8055, but I don't find the code where it queries BMS data. If you check HassioEcoFlowClient you can see that it setups filters for BMS. But HassioEcoFlowClient never sends any commands to port 8055, so I wonder how does it enable that Ecoflow starts sending status data including the BMS.

I also check it doesn't use a different port for querying status data, HassioEcoFlowClient uses port 8055.

I think I figured it:
def get_bms():     return build2(3, 32, 50)
Would get back the BMS data, but my Ecoflow Delta Pro doesn't reply anything if I send this. PD, EMS etc work.

As far as I can tell, the BMS data is pushed at regular intervals.
However, you need to be aware that it is sent at the same time as other messages.
When a push is performed, multiple messages may be sent in succession.
If there is "0xAA,0x02" as a header, it can be regarded as the beginning of data, but since multiple data may be included in one reception, processing to search the header is required.
Since BMS is almost always sent together with other messages, it is necessary to take measures against continuous sending.
Note that get_bms() works for the RIVER series, but not for the DELTA series.
Sorry I can not explain well.

Thanks, actually after a I connected Ecoflow Delta Pro with the latest Mobile App it started to send data via port 8055 automatically. Before it never did.
So the answer to my question is that Ecoflow sends data by default on port 8055.


Is there a way to change the padding in navigation bar?

Can we make the spacing here smaller?
Or the width wider?

Can we make spacing here smaller?

Yes, by decreasing #tabs-margin in Sidebery style config.

Or the width wider?

You can add new Boolean parameter uc.tweaks.longer-sidebar to expand the sidebar to 250px, or edit the default sidebar length on sidebar.css.
Also pardon for the previous issues with sidebery CSS config, I haven't updated it. I'm doing it right now, complete with updating the release version + updating the Readme file.

Tried the solution you suggested.
I should be more precise, could we adjust just the padding (left and right, make it smaller) or have the tab width to be longer (not the whole side bar)?
If not, I'm happy with the current state just wanted to see If this could be changed.
It goes without say, thanks for this project/ideas -> you are the hero!

Sadly no, #tabs-margin does limit the horizontal length of the tabs, affecting both pinned and unpinned tabs.
I tried to split #tabs-margin into four values to see if each side could be given different margin sizes... and it doesn't work, while also making all tabs loses their inner margins/paddings.

First value = right margin, second value = bottom margin, third value = left margin/tabs indent, and adding a fourth value results in zero margins on all sides.

Thanks @KiKaraage for the explanation, I'll close this issue.


TAJO-1823: Can't start TajoMaster.

Thanks for your quick fix but I can't compile on IDE
The problem looks like that incorrect generated source path and module order.
Could you create the package directory ?
tajo-sql-parser/src/main/antlr4/org.apache.tajo.parser.sql

Please change module order as follows :
...
<module>tajo-algebra</module>
<module>tajo-sql-parser</module>
...

Thank you for the comment. I'll check out them.

I fixed the wrong package name and rebased the patch.

+1


PSTV Internet Connection ON/OFF

Is there a possibility to make a plugin to add the wireless switch ON/OFF to quick menu?

Do you think it would be too difficult to learn for someone who doesn't understand about plugin development? I would really like to activate this function on my PSTV, because every time I want to deactivate the internet, I have to go to the Settings app, and for that, I have to close the applications that are running.

Do you have any prior experience developing with the psvita or any dev experience at all?

Welp, you have a long way to go before trying something like this.
It's never too late to start though.

I  tried to do this, but without sucess. Time to give up. Thank you so much for your consideration and time.

What did you get stuck on?

I tried to compile all the vita SDK tools, but found errors. Searching on the web, found nothing.

Very nice. It's great how you're trying
It'd be alot easier for us to talk and me to explain if you contact me somewhere else.
Like discord, you can find me at M Ibrahim#0197

Thanks for being so available, I added you on discord.
I tried to create this plugin so far, but really, I don't have enough technical knowledge for that. So unfortunately, I will have to give up on this project. I believe it's a simple thing to do (the scePowerSetUsingWireless function should work), but I still lack programming knowledge, which I'm far from developing.
Thank you for your support, and for the wonderful work. I hope that someday someone capable of doing so, will be able to compile this plugin.


Add table github_traffic

Data are available for the last two weeks, e.g. https://github.com/turbot/steampipe/graphs/traffic
Longer-term tracking will require a scheduled task that takes snapshots, but having this table will vastly simplify the job.

Holy crap, we already have it of course, I can never keep up with you guys, thank you!


Update dependency: golang.org/x/net/context to fix the compiling error on latest go

Fix: https://github.com/solo-io/unik/issues/159

thanks for this fix!


bridge options for ifconfig provider

Need to be able to define bridging configuration in Chef's ifconfig provider.
iface xenbr0 inet static
        address ...
        netmask ...
        network ...
        broadcast ..
        gateway ...
        bridge_ports eth0

Current implementation (http://docs.opscode.com/resource_ifconfig.html) doesn't take "bridge".
(Ref: https://tickets.opscode.com/browse/CHEF-5363)

Part of #3862 fix up.

bridge_ports is already there and I've added the bridge config to RHEL based systems in https://github.com/chef/chef/pull/10529


Implement additional configuration options for docker client init

In order for Turbinia to use Docker, the host system has to have the Docker daemon installed and the client is initialized with the system environment variables. We can allow further customization in the configuration file for Docker client init to allow users to specify a docker host to connect to, API version, default timeout settings, tls, and user agent to use. I think regardless, for Turbinia to work with Docker, the Docker daemon has to be on the same host as Turbinia, but this may allow for a little more customization.

Closing this out as we've now gone down the path of putting the entire worker in the Docker container instead of executing individual Tasks in docker.


Add CodeQL Workflow for Code Security Analysis

Summary
This pull request introduces a CodeQL workflow to enhance the security analysis of this repository.
What is CodeQL
CodeQL is a static analysis tool that helps identify and mitigate security vulnerabilities. It is primarily intra-function but does provide some support for inter-function analysis. By integrating CodeQL into a GitHub Actions workflow, it can proactively identify and address potential issues before they become security threats.
For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/).
What this PR does
We added a new CodeQL workflow file (.github/workflows/codeql.yml) that

Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience).
Runs daily.
Excludes queries with a high false positive rate or low-severity findings.
Does not display results for git submodules, focusing only on our own codebase.

Validation
To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code.
Using the workflow results
If this pull request is merged, the CodeQL workflow will be automatically run on every push to the main branch and on every pull request to the main branch. To view the results of these code scans, follow these steps:

Under the repository name, click on the Security tab.
In the left sidebar, click Code scanning alerts.

Is this a good idea?
We are researchers at Purdue University in the USA. We are studying the potential benefits and costs of using CodeQL on open-source repositories of embedded software.
We wrote up a report of our findings so far. The TL;DR is “CodeQL outperforms the other freely-available static analysis tools, with fairly low false positive rates and lots of real defects”. You can read about the report here: https://arxiv.org/abs/2310.00205
Review of engineering hazards
License: see the license at https://github.com/github/codeql-cli-binaries/blob/main/LICENSE.md:
Here's what you may also do with the Software, but only with an Open Source Codebase and subject to the License Restrictions provisions below:

Perform analysis on the Open Source Codebase.

If the Open Source Codebase is hosted and maintained on GitHub.com, generate CodeQL databases for or during automated analysis, CI, or CD.

False positives: We find that around 20% of errors are false positives, but that these FPs are polarized and only a few rules contribute to most FPs. We find that the top rules contributing to FPs are: cpp/uninitialized-local, cpp/missing-check-scanf, cpp/suspicious-pointer-scaling, cpp/unbounded-write, cpp/constant-comparison, and cpp/inconsistent-null-check. Adding a filter to filter out certain rules that contribute to a high FP rate can be done simply in the workflow file.

@b4yuan It seems the check process failed.
In any case, how does this PR compare to https://github.com/raysan5/raylib/pull/3152?

@raysan5 check process failed because there are some errors found by CodeQL. If the analysis finds any errors, it will invoke fail_on_error.py which prevents the workflow from 'passing.'
This PR is different than #3152 because it allows for rule filtering; uploads the results as an artifact; and allows you to view the results of the analysis in the Security tab under Code scanning alers.

@jorgectf Please, could you review this PR? Is it similar to yours? Do you work in same company?
Are the shell and python scripts really required?

@b4yuan After some thinking about this PR, I'm afraid I'm not merging it. Actually, the PR seems generated in an automatic way, the author pushed similar PRs to multiple repos. Personally it does not inspire confidence to me. Sorry.
If there was a more detailed explanation why this addition is specifically needed and beneficial for raylib I could reconsider my position but at this moment I can't see why raylib project specifically needs to integrate this kind of system.
@b4yuan Are you using raylib in any specific project or in any specific environment where this kind of CodeQL validations are required? Why did you consider it is specifically beneficial for raylib project? Are you pushing CodeQL to multiple repos as some kind of commercial strategy for a company?
Feel free to answer me here or just send me a private mail to<EMAIL_ADDRESS>Thanks.

@raysan5 Thanks for the comments. While the PR itself is automated, they were only raised after we tested CodeQL on our own forks of each repositories. We actually ran CodeQL on these repositories (raylib included, of course) months ago and raised PRs for bugs we found. Specifically in raylib's case, we raised https://github.com/raysan5/raylib/pull/3021 to fix a bug we found with CodeQL.
The goal here is to improve open-source embedded projects. Even if you think that raylib doesn't need a security analysis, we would suggest your consideration, as it is hard to judge where the open-source code is running. There are many stories of unexpected use cases that resulted in security problems down the road.
In the paper: https://arxiv.org/abs/2310.00205, we present our findings here and why we think that CodeQL is a beneficial tool that devs should leverage. We are not commercially interested in any way; we are only interested in improving code quality.

@b4yuan @raysan5
Wow, the abstract tells it all.  In particular, I gather that CodeQL is a GitHub facility, so there is no commercial interest other than GitHub's in having secure code in repositories under its care.
I have received warning notices, usually on dependencies that have security issues.  It takes a little work to determine whether my usage (of a JavaScript framework for example) is transitively vulnerable or not.  Just the same, I'd rather have that checking than not.
I don't use GitHub workflows, so I might have to rethink that on some code that I will need very strong safety assurance about.  Thanks for the information.

@b4yuan thank you very much for your answers and excuse if my tone could have been a bit rude.
I checked the generated reports and I even reviewed some of the issues (https://github.com/raysan5/raylib/commit/64d64cc18114c02ecb068b20b6c4820df6182415) but I noticed many of them are not that relevant and also related to raylib external libraries, where I can't do much from my side.
Some questions (and excuse my insistence on this topic):

Would it be possible to avoid the check on src/external libraries? or that's not recommended?
Would it be possible to avoid the shell and python scripts and integrate its logic directly on the workflow?
I saw the check running takes some time, does it has any cost over running time quota on an open-source project like raylib?
I don't think raylib is so critical to run it on every push, would it be ok to just run it manually when desired or once a week?

Again, if you feel more confortable answering in private, you can write me to<EMAIL_ADDRESS>Thanks for your answers.

@orcmid @raysan5 That's correct, CodeQL was developed by GitHub.
Regarding dependencies... I also want to add that third party lib paths can be filtered out in this section:
    # Filter out rules with low severity or high false positve rate
    # Also filter out warnings in third-party code
    - name: Filter out unwanted errors and warnings
      uses: advanced-security/filter-sarif@v1
      with:
        patterns: |
          -**:cpp/path-injection
          -**:cpp/world-writable-file-creation
          -**:cpp/poorly-documented-function
          -**:cpp/potentially-dangerous-function
          -**:cpp/use-of-goto
          -**:cpp/integer-multiplication-cast-to-long
          -**:cpp/comparison-with-wider-type
          -**:cpp/leap-year/*
          -**:cpp/ambiguously-signed-bit-field
          -**:cpp/suspicious-pointer-scaling
          -**:cpp/suspicious-pointer-scaling-void
          -**:cpp/unsigned-comparison-zero
          -**/cmake*/Modules/**
         #dir/path/here

and CodeQL would not analyze those directories. (I looked for git submodules in raylib, but didn't seem to find any. If there are any third party directory paths that you want to be filtered out, let me know, and I can update the workflow accordingly.) This workflow uploads all of CodeQL's errors to the Code scanning alerts section under the Security tab. From there, you can mark bugs that CodeQL finds as 'will not fix', 'false positive', etc. If you find that a rule yields especially many false positives, you can filter that rule altogether in the above snippet. (We've also suggested the rules that are top contributors to false positives in the PR body, which you may find helpful).
Of course, it is up to you to weigh the benefits that CodeQL brings (since we have found a merged bug fix in this repo before found by CodeQL, this suggests that it likely would add value), compared to the drawbacks (perhaps false positive rate, maintenance, etc). We are very transparent with the drawbacks in the paper, but we find that improving false positive rate can be improved with rule filtering, and we don't believe maintenance will consume too many resources, though, again, that is up to the judgement of the devs. Not only have we already configured CodeQL for this repo (and tested that it works on our fork), the streamlined way that GitHub presents CodeQL analysis findings in its Security tab enables this tool to be used much more easily.

@raysan5 Looks like we posted at the same time lol.

Would it be possible to avoid the check on src/external libraries? or that's not recommended?

Yes, I can update this shortly.

Would it be possible to avoid the shell and python scripts and integrate its logic directly on the workflow?

I'll look into this as well.

I saw the check running takes some time, does it has any cost over running time quota on an open-source project like raylib?

From https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration: "GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners. For private repositories, each GitHub account receives a certain amount of free minutes and storage for use with GitHub-hosted runners, depending on the account's plan. Any usage beyond the included amounts is controlled by spending limits. For more information, see "About billing for GitHub Actions."
As long as resources are available, it should be free for an open-source repo like raylib.

I don't think raylib is so critical to run it on every push, would it be ok to just run it manually when desired or once a week?

Running on every push is already commented out; it's just there if you wanted it to be triggered on every push. Currently the workflow is scheduled to run daily, but I can also make changes to update it weekly as well.
Will update/ping when your asks are addressed.

@b4yuan thanks for your answers. Let's see if the following concerns could be addressed:

External libraries used by raylib, located in raylib/src/external directory, but note that most of those libraries are single-file header-only libraries and are actually build with raylib modules, not sure if the system could avoid those checks because, technically, on compilation those libraries are merged inside the modules code.
External shell/python scripts. I did a quick check and the shell script should be avoidable, about the python script, not sure if it can be integrated in some way on the workflow...
Running time. If possible I would launch it once-a-week, in any case, I can also launch it manually when required, right?

I'll try to review the workflow more carefully when merged to understand the process and be able to maintain it.
Thanks.

@raysan5 @b4yuan

External libraries used by raylib, located in raylib/src/external directory, but note that most of those libraries are single-file header-only libraries and are actually build with raylib modules, not sure if the system could avoid those checks because, technically, on compilation those libraries are merged inside the modules code.

EDIT: I see the Errors detected actually belong to an external library (GLFW), I'm afraid I can't do much there beside reporting them. Is it possible to skip that fail on error?

These are interesting dependency cases.  In some sense there need to be warnings but they have to be handled at the origin.  That they can be false positives or irrelevant because of what the dependency is can be troublesome.  The standing can change over time, depending on changes in raylib, so suppressing them has to be cautious.
Is there a way to make them warnings rather than fail/error cases?  Then we can hope the originator provides a fix assuming its not a false positive.

@raysan5 @orcmid
At the moment I have excluded src/external//glfw from the CodeQL results. I've also incorporated the build script into the workflow. To remove fail_on_error.py is probably possible, but not without making the workflow file unnecessarily long and confusing. What do you think?
(I also can't view the results in the Security tab of raylib. Let me know if the errors from the external library are no longer being analyzed.)

@b4yuan Thanks for the review! I just run it again and it seems no error is detected but still it seems to report some error:

What implies removing fail_on_error.py? Reporting the process finished correctly despite containing the errors? If that's the case, I think it can be removed.

The analysis step will pass even if there are errors found, because it finished 'correctly'. fail_on_error.py parses the results, and if there are any errors, forces the entire workflow to fail. This may come in handy visually when inspecting PRs, weekly checks, etc.
(I will test this on our fork and see what might be going on). Alternatively, if you think this step is excessive, the script can be removed altogether.

👋 Late to the convo, but just wanted to highlight a setting that might replace the script's objective: https://github.com/raysan5/raylib/settings/security_analysis
Protection rules under Code Scanning:

@jorgectf Oh! Thank you very much for your answer! Actually I was wondering that same thing, it was a bit strange to me the need of an error-scanning script to set the fail in the process...
@b4yuan Given the new details provided, could then the script just be removed from the workflow?

Thanks @raysan5 @jorgectf for bringing this up. Updated with the removal of the python script.

Running workflow...

@b4yuan @jorgectf thank you very much for working on this improvement, reviewing it and explaining all the details. I'm merging it.