always causes a crash

I've been experiencing some issues using always. Simplifying the code as much as possible has left me with the following snippet crashing every time:
dispatch_promise { () -> Void in
}.always {
}
I'm using 3.2.0, Swift 2.2.
Any thoughts?

Please provide the crash backtrace.

Here you go: [TrapTapLogger  2016-06-06, 3-08 PM.txt]en(https://github.com/mxcl/PromiseKit/files/301519/TrapTapLogger.2016-06-06.3-08.PM.txt)
My apologies for not giving you a fully symbolicated crash report, not all dependencies play nicely with post processing, bitcode, swift, etc.

Interesting. My first suspicion is: Swift bug, but we'll figure it out.

I believe I am experiencing the same issue. Running XCode version 7.3.1 (7D1014) and running on a device with 9.3.2.
The relevant code that results in a SIGABRT is this:
(Code highlighted in red starts on the line  }.always { and goes until the }.error { err in line)
func toggleNetworkSpinnerWithPromise<T>(funcToCall: () -> Promise<T>) -> Promise<T> {
        return Promise { fulfill, reject in
            firstly {
                setNetworkActivityIndicatorVisible(true)
                return funcToCall()
            }.then { result in
                fulfill(result)
            }.always {
                setNetworkActivityIndicatorVisible(false)
            }.error { err in
                reject(err)
            }
        }
    }

The error in the PromiseKit library is on Line 457 of Promise.swift
Part of the stack trace with thread that crashed:

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x0000000182f8811c __pthread_kill + 8
1   libsystem_pthread.dylib       	0x0000000183054ef8 pthread_kill + 112
2   libsystem_c.dylib             	0x0000000182ef9e4c __abort + 148
3   libsystem_c.dylib             	0x0000000182ef9db8 __abort + 0
4   PromiseKit                    	0x000000010063fa6c Promise.(catch_(policy : ErrorPolicy, body : () -> ()) -> Promise<A>).(default argument 0) (Promise.swift:0)
5   AppName                        	0x00000001000d7488 0x100044000 + 603272
6   PromiseKit                    	0x000000010063dec8 Promise.init(resolvers : (fulfill : (A) -> (), reject : (ErrorType) -> ()) throws -> ()) -> Promise<A> (Promise.swift:72)
7   AppName                        	0x00000001000d53fc 0x100044000 + 594940
8   AppName                        	0x00000001000d6414 0x100044000 + 599060
9   AppName                        	0x000000010007a484 0x100044000 + 222340
10  AppName                        	0x00000001000aa038 0x100044000 + 417848
11  AppName                        	0x00000001000aa090 0x100044000 + 417936
12  UIKit                         	0x00000001885653d4 -[UIViewController _setViewAppearState:isAnimating:] + 724
13  UIKit                         	0x0000000188565980 -[UIViewController _endAppearanceTransition:] + 300
14  UIKit                         	0x0000000188623f14 -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] + 1044
15  UIKit                         	0x0000000188701508 __49-[UINavigationController _startCustomTransition:]_block_invoke + 232
16  UIKit                         	0x000000018867d114 -[_UIViewControllerTransitionContext completeTransition:] + 116
17  UIKit                         	0x00000001887e837c __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke95 + 684
18  UIKit                         	0x000000018858812c -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 628
19  UIKit                         	0x0000000188587c28 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312
20  UIKit                         	0x0000000188587ab0 -[UIViewAnimationState animationDidStop:finished:] + 108
21  QuartzCore                    	0x0000000185ee19a0 CA::Layer::run_animation_callbacks(void*) + 284
22  libdispatch.dylib             	0x0000000100e6da3c 0x100e6c000 + 6716
23  libdispatch.dylib             	0x0000000100e734e4 0x100e6c000 + 29924
24  CoreFoundation                	0x00000001833a4d50 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
25  CoreFoundation                	0x00000001833a2bb8 __CFRunLoopRun + 1628
26  CoreFoundation                	0x00000001832ccc50 CFRunLoopRunSpecific + 384
27  GraphicsServices              	0x0000000184bb4088 GSEventRunModal + 180
28  UIKit                         	0x00000001885b6088 UIApplicationMain + 204
29  AppName                        	0x000000010009d968 0x100044000 + 366952
30  libdyld.dylib                 	0x0000000182e6a8b8 start + 4

Downgrading to PromiseKit version 3.0.3 while commenting out the NSNotificationCenter+Promise.swift file allows the previous code paths that were crashing to work.
@PocketPro - Can you confirm yours is working under the same condition? (Not sure if this is actually helpful or not)

Promise.(catch_(policy : ErrorPolicy, body : () -> ()) -> Promise<A>).(default argument 0) (Promise.swift:0)

This is suspicious. We don't have a catch function in PromiseKit 3. We do have a catch unavailable function, that aborts(). And the next line in the backtrace is the abort.

Downgrading to PromiseKit version 3.0.3 while commenting out the NSNotificationCenter+Promise.swift file allows the previous code paths that were crashing to work.

This is unexpected. Your code doesn't use NSNotificationCenter.
Finally:
func toggleNetworkSpinnerWithPromise<T>(funcToCall: () -> Promise<T>) -> Promise<T> {
        return Promise { fulfill, reject in
            firstly {
                setNetworkActivityIndicatorVisible(true)
                return funcToCall()
            }.then { result in
                fulfill(result)
            }.always {
                setNetworkActivityIndicatorVisible(false)
            }.error { err in
                reject(err)
            }
        }
    }

Could be simply:
func toggleNetworkSpinnerWithPromise<T>(funcToCall: () -> Promise<T>) -> Promise<T> {
    return firstly {
        setNetworkActivityIndicatorVisible(true)
        return funcToCall()
    }.always {
        setNetworkActivityIndicatorVisible(false)
    }
}

Both backtraces confirm that the unavailable function _catch is being called, which explicitly aborts. This is unexpected. PromiseKit itself doesn't call this function. Certainly not within the always function.
_catch: https://github.com/mxcl/PromiseKit/blob/fbccb01181bd93693de5292b987ab59190e71c9d/Sources/Promise.swift#L483
I suspect that there is a Swift optimizer issue at play. Especially sine removing the NSNotificationCenter code supposedly fixes the issue.
Can someone construct me a test case project? And then specify explicitly which Xcode I need to use to reproduce it?

Dropping the catch on the error in my function.. I am guessing it will still reject the promise automagically then?
3.2.1 does not fix the issue for me - the original backtrace i provided is from that version.
@PocketPro - do you have a test project already from your original post?

Dropping the catch on the error in my function.. I am guessing it will still reject the promise automagically then?

This is how promises work, the values or errors always cascade.

I cannot reproduce, here is my testcase:

https://dl.dropboxusercontent.com/u/97921/testcase-443.tar.bz2
Xcode 7.3.1
PromiseKit 3.2.1

Can you verify if this crashes for you when you Run the test case?

I used Xcode 7.3.1 to deploy the above testcase onto my iPad running 9.3.3 compiled as both debug and release. I did not get a crash.

Xcode 7.3.1
PromiseKit 3.2.1
Swift 2.2
iOS 9.3.3
Deployment target: 9.3
SDK iOS 9.3

If those affected could give me the above bullet points, and if they can, try the test case, it would really help get this fixed. Thanks.

Closing due to lack of responses.


Increase default HTTP client selector count

A larger number of selectors will help HTTP clients serve more traffic
by default.

What are the downsides to doing this? Does it increase resource usage?

Presto test here: https://github.com/prestodb/presto/pull/10743

Presto tests look good.

Will set this config elsewhere as discussed offline.


fix: remove extra iteration over polylines

The mapadapter previously iterated polylines twice, sometimes causing an
exception. This commit fixes that issue and applies some formatting.
fixes #1013
@gino-m, @nmhung00, @shobhitagarwal1612

@gino-m, fixed the style errors


Make Windows a first class citizen

rebar3 on windows should pass ct and eunit tests

We would need a windows machine to be able to do that, or a CI service that doesn't end up asking for access for all of the orgs I belong to (because the org my workplace is part of wants none of it).
In the mean time, we'd need community support in terms of patches, test running and whatnot to be able to do it.

http://www.appveyor.com/ would work as a CI system, but requires access to all the orgs of a user, which I'm not ready to provide.
We could however get a dummy account added to the org and get it through that?

Yes.  That is the way forwards

i think its worth noting that the windows build fails differently for me than the one on appveyor. Mine starts and runs ct tests normally without that no application definition weirdness (that is till meck crashes somewhere after the 100th failed test)

@ingwinlu, I've fixed all known (to me) windows-related bugs in #489. Maybe you could spend some time testing it?

I tried to keep track with all the work you did but couldn't look at all the code changes yet.
rebar3 ct still breaks for me (as in does not finish running). Again, that might not be a direct rebar issue as I see meck stop info reports every now and again during test runs.
output of the only failed test
[output of the last test started] (https://gist.github.com/ingwinlu/a1ffb14cc647048a04d0)
[end of console output] (https://gist.github.com/ingwinlu/074d8b4cb23f354b251a)
all in all there is a huge improvement sure, but at least on my machine there are still issues.

Hm. Interesting.

I see 'touch' is not recognized as an internal or external command by the first link. @Taure, is it about things you did? Could you take a look, please?

And by the second link there is Missing beam file elf_format <<"c:/Program Files/erl6.4/lib/hipe-3.11.3/ebin/elf_format.beam">>. I believe this is issued by your certain erts installation and HiPE. I can't reproduce it and, frankly, I'm not sure what HiPE certainly is and how does it work. BTW, @Taure encountered this issue too.

Thanks for feedback. Will continue.

I see 'touch' is not recognized as an internal or external command by the first link. @Taure, is it about things you did? Could you take a look, please?

https://github.com/rebar/rebar3/blob/master/test/rebar_hooks_SUITE.erl#L117 no touch on windows

Yup, that's it.  I wonder if this will help: 70f081bb83d25692a9059d97c03e51b66d32d7de

I added a touch function in rebar_file_utils. Maybe we need to rewrite that test to use that function instead of Linux command.
Will see if I have time tonight to look at it.

@Taure nevermind, I've already did it.

@kovyl2404 ok. :)

I'll try some very simple builds over the weekend too

What version of Erlang are you running? 32/64 -bit and what windows os?

I am doing erlang on 64 bit windows 8.1.  It's probably 64 bit erlang too, but i'll wait until i check to say for certain.

Ok, I think the dev release that fails is something with relx. When dev_mode is on it creates symlink.  It can be so that something fails with that. Will try to look into it.

@ferd
I have two test that fails:
First:
https://github.com/rebar/rebar3/blob/master/test/rebar_release_SUITE.erl#L55
This test, when do it return false or true?
Is it if it succeed to create a symlinked directory or not. I have changed things in relx now to work for Windows. https://github.com/Taure/relx
Rebar3 (windows-ct-fix branch) + relx (windows-fix branch) I get this failure on dev_mode release test:
=== reason = {assertEqual_failed,[{module,rebar_test_utils},
{line,281},
{expression,"DevMode"},
{expected,true},
{value,false}]}
My branch of relx have a symlink_or_copy functionality, so if it can't create a symlink it will copy. same as rebar3 have.
This is the issue with dev_mode release test, that relx tries to symlink but can't do it so it can't find the file.
Second:
profile_merge_keys
=== reason = {assertEqual_failed,
[{module,rebar_test_utils},
{line,222},
{expression,
"iolist_to_binary ( rebar_app_info : original_vsn ( App ) )"},
{expected,<<"2.0.0">>},
{value,<<"1.0.0">>}]}
This one I haven't done so much research into. But after this I will have all green tests for rebar3 on windows 8.1

DevMode failure is due to this https://github.com/rebar/rebar3/blob/master/test/rebar_test_utils.erl#L280 which will need to check if running on windows and be ok with copied dirs instead of links.

Yes, changing that solved the issue.
Now it is only this left:
profile_merge_keys
=== reason = {assertEqual_failed,
[{module,rebar_test_utils},
{line,222},
{expression,
"iolist_to_binary ( rebar_app_info : original_vsn ( App ) )"},
{expected,<<"2.0.0">>},
{value,<<"1.0.0">>}]}
Will start research it tonight.

Ok, after some research I have got this for test profile_merge_keys:
https://gist.github.com/Taure/f3a35f89d728aea18b81
I think it is in the end of the fetch where it goes wrong. First it fetch dep b 2.0.0 into _build/ct then it fetch dep b 1.0.0 to _build/default.
So symlink_or_copy removes target first and then copys, even with copy b 1.0.0 will override 2.0.0 and when we read the result we get 1.0.0 and the expected should have been 2.0.0
So not sure if the app update is going well.

As discussed on IRC:
so the problem is that symlinking will silently fail in https://github.com/rebar/rebar3/blob/master/src/rebar_prv_install_deps.erl#L475-L490 ; the code in question is in https://github.com/rebar/rebar3/blob/master/src/rebar_file_utils.erl#L61-L75 where all errors returned end up in "crush it with a copy" mode.
The problem is that eexists bailing out early is important, and when on a platform without symlink we see {error, enotsup} we crush things without regards to their prior existence, which turns out to be essential in how we handle some deps.
The fix for this is to catch {error, enotsup}, then do an existence check (replicating eexists behaviour) and bail out from the copy if it is the case.
With that fix in place, the 'copy' part of 'symlink or copy' will properly replicate the 'symlink' semantics.

I got all test green and ok. Have sent the update to ongoing pr.

Reviewed.


Adjust version number for updated calibration

In GitLab by @wtbarnes on Jun 22, 2020, 12:27
To compute the degradation as a scalar multiple of the effective area, we query the JSOC for the value of this scalar for a given epoch and then interpolate to the exact time.
The degradation curves will likely soon be updated in JSOC and we will need to increment the version number appropriately. We should probably add the ability to specify the version number as well, with the default being the most up to date version, so that specific versions of the software are not tied to specific calibrations.
May need to make other adjustments as well.

In GitLab by @wtbarnes on Jul 16, 2020, 10:20
mentioned in commit 9dec4f7089058bfe55ed2a9a214b6ae4a9301824

In GitLab by @mpenwarden on Jul 15, 2020, 10:34
When the version changed from 8 to 9 I started getting errors like "No valid calibration epoch for 2010-06-15T00:00:08.100". The correction table change has caused the previous version to not return all the records so it should be updated soon.


[DateTimePicker] Cannot read properties of undefined (reading 'replace')

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
Once in a while, at random occasions, I get this error: Cannot read properties of undefined (reading 'replace').

The KeyboardDateInput is something from @mui/lab.
I cannot seems to reproduce this using specific steps, so I thought maybe there's something bugged in the library.
I have wrapped the DesktopDateTimePicker in a custom component like this:
import React from 'react';
import MUIDateTimePicker from '@mui/lab/DesktopDateTimePicker';
import { TextField } from '@mui/material';
import { longDateTimeFormat } from '../../utils/style/formats';

const DateTimePicker = props => {
  const format = props.format || props.inputFormat || longDateTimeFormat;
  return (
    <MUIDateTimePicker
      ampm={false}
      renderInput={inputProps => (
        <TextField {...inputProps} {...(props.inputProps || {})} />
      )}
      {...props}
      onChange={val => props.onChange(val?.isValid() === true ? val : null)}
      value={props.value || ''}
      inputFormat={format}
    />
  )
};
export default DateTimePicker;

I hope one of you can help me saying this is a bug or something I missed.
Expected behavior 🤔
I would think that this wrapper should just be fool-proof.
Steps to reproduce 🕹
N/A
Context 🔦
Making an easy-to-use component with presets for my project.
Your environment 🌎

`npx @mui/envinfo`
  Browser:
    Chrome 97.0.4692.71
  System:
    OS: Windows 10 10.0.22000
  Binaries:
    Node: 16.13.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.17 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: Not Found
    Edge: Spartan (44.22000.120.0), Chromium (97.0.1072.55)
  npmPackages:
    @emotion/react: ^11.6.0 => 11.6.0
    @emotion/styled: ^11.6.0 => 11.6.0
    @mui/base:  5.0.0-alpha.56
    @mui/lab: ^5.0.0-alpha.56 => 5.0.0-alpha.56
    @mui/material: ^5.2.0 => 5.2.0
    @mui/private-theming:  5.2.0
    @mui/styled-engine:  5.2.0
    @mui/styled-engine-sc: ^5.1.0 => 5.1.0
    @mui/styles: ^5.2.0 => 5.2.0
    @mui/system:  5.2.0
    @mui/types:  7.1.0
    @mui/utils:  5.2.0
    @mui/x-data-grid: ^5.0.1 => 5.0.1
    @types/react:  17.0.24
    react: ^17.0.1 => 17.0.2
    react-dom: ^17.0.1 => 17.0.2
    styled-components: ^5.3.3 => 5.3.3

Murphy strikes again. At the point I submitted this issue, my colleague notifies me that he has found that it only occurs when we use the enUS locale. Will investigate and update this issue.

Found it. I also have the the DataGrid component and to localize that, I had imported locales like this:
import { enUS } from '@mui/x-data-grid';
...
const theme = createTheme({...}, enUS);

This enUS did cause my error.
I changed the import to this and it worked properly again.
import { enUS } from '@mui/material/locale';

--
This might change the source of this issue. Did I do something wrong with the localization of the DataGrid now? There is not much documentation on the DataGrid yet.

Could you give me a reproduction case of your problem with both the DateTimePicker and the DataGrid ?
This codesandbox might be a good starting point.
I agree that the Localization documentation is light.

Writing the codesandbox reproduction, I figured out what it actually was.
Upon language changing, I set the dayjs locale like this.
dayjs.locale(require('dayjs/locale/en'));

What I just needed to do was:
require('dayjs/locale/en')
require('dayjs/locale/nl')
...
dayjs.locale('en');
...

According to https://day.js.org/docs/en/i18n/changing-locale


Error with command "-curves"

What I tried:
docker run -v ~/resHandshake/:/opt/test/results oqs-perf python3 /opt/test/handshakes.py

What I expected:
That the command runs without errors
What I got:
Generating a oqs_sig_default private key
writing new private key to 'CA.key'

Generating a oqs_sig_default private key
writing new private key to '/opt/test/server.key'

Signature ok
subject=CN = localhost
Getting CA Private Key
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Using default temp DH parameters
ACCEPT
Error with command: "-curves "
Generating a p256_oqs_sig_default private key
writing new private key to 'CA.key'

Why is it throwing this error? What is "-curves" needed for?

@baentsch Any thoughts?

@frankimhof Apologies for the late response - I hadn't been watching this repo :-(
When executing the above command everything runs fine with "my" docker image, so can I ask how you built yours? In particular, the -curves parameter is an OQS-OpenSSL (only) extension (i.e., not in upstream openssl) that enforces use of a specific KEM algorithm. Maybe something with the path isn't quite right in your docker image such that plain-vanilla openssl is triggered (that --again-- does not know "-curves")?

@frankimhof Did the feedback above make sense? Anything I could do to help? FYI (am I right thinking this is your first issue in our project?) our normal goal is to close issues with more than a week of inactivity.

@baentsch
Sorry for the late response, I was away on the weekend.
I built the docker image as described with
docker build -t oqs-perf .
I did change the following args in the Dockerfile (just added some build defines):
ARG LIBOQS_BUILD_DEFINES="-DOQS_ENABLE_KEM_BIKE=OFF -DOQS_ENABLE_KEM_FRODOKEM=OFF -DOQS_ENABLE_KEM_SIKE=OFF -DOQS_ENABLE_KEM_SIDH=OFF -DOQS_ENABLE_SIG_PICNIC=OFF -DOQS_ENABLE_KEM_CLASSIC_MCELIECE=ON -DOQS_ENABLE_KEM_HQC=OFF -DOQS_ENABLE_KEM_KYBER=ON -DOQS_ENABLE_KEM_NTRU=ON -DOQS_ENABLE_KEM_SABER=ON -DOQS_ENABLE_SIG_DILITHIUM=ON -DOQS_ENABLE_SIG_FALCON=ON -DOQS_ENABLE_SIG_RAINBOW=ON -DOQS_ENABLE_SIG_SPHINCS=OFF"
ARG OPENSSL_BUILD_DEFINES="-DOQS_DEFAULT_GROUPS=X25519:kyber512:kyber768:kyber1024:kyber90s512:kyber90s768:kyber90s1024:lightsaber:saber:firesaber:ntru_hps2048509:ntru_hps2048677:ntru_hps4096821:ntru_hrss701"

The rest I left unchainged.
Just to clarify:
The results were generated and printed out as .json as I expected, so it seems to work despite the error.
So if the error is not significant, I could just ignore it.
Thanks for your help!

@frankimhof Thanks for the additional information: This information indeed allowed me to reproduce the (parsing) error in the code. PR #15 fixes this when merged. Thanks again!

@frankimhof Could you please check whether the merge above indeed resolves the issue for you? If so, please close it. Thanks!

@baentsch
I checked and it works without throwing error. Thank you!


Develop testing cases for each (new) functionality

when we write or change functionality we should write it, because THEN we are aware of all consequences and dangers and requirements
describe it at least in accompanying .MD file or in the code or ...?

I agree
We should develop demo test-prototypes for each test-case / technological-part-of-the-system
I have some of them already, but mostly for angular1, and node


"Missing 'Confirm Password' Field on Registration Page"

Is your feature request related to a problem? Please describe.
The absence of a "Confirm Password" field is noted. Including this field would not only enhance the user experience but also help users distinguish between the registration and sign-in forms through the presence of password fields.
Additionally, I've observed that the signup button on the registration page and the login button on the login page are not currently aligned at the center.I would like fix that.
Describe the solution you'd like
I plan to incorporate a "confirm password" field, validating that both passwords match. Additionally, I intend to enforce password strength using regex.
Describe alternatives you've considered
I believe the suggested resolution would address the problem.

go ahead @Niharika0104


Image upload on mobile

I feel like I'm missing something obvious, but how are you supposed to upload images on mobile? The only references to image uploading I can find all specify drag-n-drop into the editor, which obviously isn't possible on a phone.

It doesn't look like you can. I don't think prose was really built with mobile editing in mind. Considering there's no toolbar.

There's no way to do this right now. Creating a mobile label to categorize these issues.

There's no way to do this right now. Creating a mobile label to categorize these issues.

@dereklieu: Is this specifically a Codemirror issue? Mostly just curious...

@phillipadsmith No, nothing to do with Codemirror. The toolbar where the image upload dialog would usually be is hidden on mobile, so at the very least this would be some UI and styling work.

looks like the toolbar is being hidden at device width less than or equal to 480px.
@media only screen and (min-device-width: 320px) and (max-device-width: 480px)
.details .mask, .edit .topbar-wrapper, .popup {
    display: none !important;
}


Added ability to unflip text

Added method for flipping characters

does a lookup for a key if there is no value => key
Added test
bumped version for patch

I'm not sure about the failed check from semaphore. Never used it and I'm not sure if it's applicable for gems.

Yeah.


⚠ File access has degraded performance

In e5cd2da, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 10146 ms

Resolved: File access performance has improved in a48260e after 8 minutes.


[SPARK-44647][SQL] Support SPJ where join keys are less than cluster keys

What changes were proposed in this pull request?

Add new conf spark.sql.sources.v2.bucketing.allowJoinKeysSubsetOfPartitionKeys.enabled
Change key compatibility checks in EnsureRequirements.  Remove checks where all partition keys must be in join keys to allow isKeyCompatible = true in this case (if this flag is enabled)
Change BatchScanExec/DataSourceV2Relation to group splits by join keys if they differ from partition keys (previously grouped only by partition values).  Do same for all auxiliary data structure, like commonPartValues.
Implement partiallyClustered skew-handling.

Group only the replicate side (now by join key as well), replicate by the total size of other-side partitions that share the join key.
add an additional sort for partitions based on join key, as when we group the replicate side, partition ordering becomes out of order from the non-replicate side.

Why are the changes needed?

Support Storage Partition Join in cases where the join condition does not contain all the partition keys, but just some of them

Does this PR introduce any user-facing change?
No
How was this patch tested?
-Added tests in KeyGroupedPartitioningSuite
-Found two existing problems, will address in separate PR:

Because of https://github.com/apache/spark/pull/37886   we have to select all join keys to trigger SPJ in this case, otherwise DSV2 scan does not report KeyGroupedPartitioning and SPJ does not get triggered.  Need to see how to relax this.
https://issues.apache.org/jira/browse/SPARK-44641 was found when testing this change.  This pr refactors some of those code to add group-by-join-key, but doesnt change the underlying logic, so issue continues to exist.  Hopefully this will also get fixed in another way.

Could you re-trigger the failed pipeline or rebase this PR to the master branch once more, @szehon-ho ?

Hi @dongjoon-hyun , I think @sunchao had another idea he is thinking about, was going to wait a bit for that to update the pr

Oh, got it!

@sunchao thanks! addressed review comments

Merged to mater for Apache Spark 4.0.0. Thank you so much, @szehon-ho and @sunchao !

Thanks @szehon-ho @dongjoon-hyun !

Hi @dongjoon-hyun @sunchao,
Do you see any blocker to backport this to spark 3.5 ?
I think it would be useful for many use case (including mine) that partition by date for GDPR purpose but still need SPJ on the other partitioning column.

Apache Spark has a back-porting policy which allows only bug fixes, @irsath . Given that this PR is an improvement, we are unable to touch the release branches like branch-3.5 for this improvement.

Right, sorry for the typo but I meant: what if we make a 3.6 with this PR ?
I never contributed to OSS spark but if your ok with the idea I can try to do a PR in that regard.


Documentation: links to type descriptions are not clickable when followed by []

@hyvyys Our documentation is generated using typedoc, perhaps support for this needs to be added in typedoc.

Fixed.


Stop on speed 0

Fixes #105
When the speed is set to 0, it will call the go to the dock method instead of changing the speed to 0 (as changing the speed is actually setting a mode and some models apparently understand that mode as something else 😓).
@Tim2309 could you try the logic on this branch?
You can install from git instead of npm, by running these methods:
sudo su -
npm install -g afharo/homebridge-xiaomi-roborock-vacuum#stop-on-speed-0

I installed it but with the same result

I know it's a silly question but: did you restart the homebridge? 🤪
@serbasan said it worked for him 🤔

yes I restarted the container
if I reinstall it again this is my log:
/homebridge # npm install -g afharo/homebridge-xiaomi-roborock-vacuum#stop-on-speed-0

<EMAIL_ADDRESS>updated 1 package in 5.648s
/homebridge #

And do you see the new log entry I just added?
ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 0 over miIO for "Off".
DEB setSpeed | roborock.vacuum.s6 | FanSpeed is 0 => Calling setCleaning(false) instead of changing the fan speed

this was my latest test:
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | Connected to: 192.168.1.xxx
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | Model: roborock.vacuum.s6
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | State: charging
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | FanSpeed: 101
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | BatteryLevel: 100
[2/6/2020, 5:36:32 PM] [Staubsauger] INF getSerialNumber | roborock.vacuum.s6 | Serial Number is R0306S92202308
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | Serialnumber: (removed)
[2/6/2020, 5:36:32 PM] [Staubsauger] INF getFirmware | roborock.vacuum.s6 | Firmwareversion is 3.5.4_0922
[2/6/2020, 5:36:32 PM] [Staubsauger] STA getDevice | Firmwareversion: 3.5.4_0922
[2/6/2020, 5:36:32 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is OFF.
[2/6/2020, 5:36:32 PM] [Staubsauger] MON changedCharging | roborock.vacuum.s6 | ChargingState is now true
[2/6/2020, 5:36:32 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Charging is active
[2/6/2020, 5:36:32 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Robot was docked.
[2/6/2020, 5:36:32 PM] [Staubsauger] MON changedSpeed | roborock.vacuum.s6 | FanSpeed is now 101%
[2/6/2020, 5:36:32 PM] [Staubsauger] INF changedSpeed | roborock.vacuum.s6 | Speed was changed to 101% (Quiet), for HomeKit 38%
[2/6/2020, 5:36:32 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:36:42 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Start cleaning, not charging.
[2/6/2020, 5:36:42 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 101 over miIO for "Quiet".
[2/6/2020, 5:36:43 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:36:43 PM] [Staubsauger] MON changedCharging | roborock.vacuum.s6 | ChargingState is now false
[2/6/2020, 5:36:43 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Charging is cancelled
[2/6/2020, 5:36:43 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Robot not anymore in dock.
[2/6/2020, 5:36:43 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is ON.
[2/6/2020, 5:36:43 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused possible
[2/6/2020, 5:36:57 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Stop cleaning and go to charge.
[2/6/2020, 5:36:57 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 0 over miIO for "Off".
[2/6/2020, 5:36:58 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:37:01 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 101 over miIO for "Quiet".
[2/6/2020, 5:37:02 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is OFF.
[2/6/2020, 5:37:02 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:37:03 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Start cleaning, not charging.
[2/6/2020, 5:37:03 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 101 over miIO for "Quiet".
[2/6/2020, 5:37:04 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:37:04 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is ON.
[2/6/2020, 5:37:04 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused possible
[2/6/2020, 5:37:04 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 101 over miIO for "Quiet".
[2/6/2020, 5:37:07 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Stop cleaning and go to charge.
[2/6/2020, 5:37:07 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 0 over miIO for "Off".
[2/6/2020, 5:37:08 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/6/2020, 5:37:08 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is OFF.
[2/6/2020, 5:37:08 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning

yeah... it looks like it's not logging the new message.
Maybe it's something related to docker: despite installing it from git, when you restart the container, it creates a new one with the previous installation?
I'm saying that because from your comment, it says it has been updated...

updated 1 package in 5.648s

FanSpeed set to 0 over miIO for "Off".
Is in the log 2 times
but
FanSpeed is 0 => Calling setCleaning(false) instead of changing the fan speed
is missing
i don't know much about docker, I replaced my raspberry and used a preinstalled homebridge container with the UI.
Installing npm packages with the UI terminal works fine, I used it already

FanSpeed set to 0 over miIO for "Off".
Is in the log 2 times

Yes, but that entry was already there, I mentioned it as a reference as where to find the new one.

but
FanSpeed is 0 => Calling setCleaning(false) instead of changing the fan speed
is missing

That is what concerns me. If running the latest version from this branch, it should log that line.

i don't know much about docker, I replaced my raspberry and used a preinstalled homebridge container with the UI.
Installing npm packages with the UI terminal works fine, I used it already
OK, fair enough...
Is this the docker image you are using? https://github.com/oznu/docker-homebridge/wiki/Homebridge-on-Synology
If so, I can see it doesn't use the global NPM dir, but a local one (good, like I do). But the npm command you need to run to install the plugins is the same without the -g.

npm install afharo/homebridge-xiaomi-roborock-vacuum#stop-on-speed-0

I installed it with the following log:
/homebridge # npm install afharo/homebridge-xiaomi-roborock-vacuum#stop-on-speed-0

<EMAIL_ADDRESS>updated 1 package and audited 365 packages in 6.622s
found 3 vulnerabilities (2 low, 1 moderate)
run npm audit fix to fix them, or npm audit for details

is there a problem with this log?
It's still the same issue after restarting homebridge with the robot

I uninstalled the plugin completely and installed it with
npm install afharo/homebridge-xiaomi-roborock-vacuum#stop-on-speed-0
still doesn't work and the new line isn't in the log

is there a problem with this log?

Not really, that's related to homebridge, it uses an internal library that is not up-to-date. I guess they'll update it eventually. But not a big issue.

It's still the same issue after restarting homebridge with the robot

🤔 That is super weird... So you can't find the entry FanSpeed is 0 => Calling setCleaning(false) instead of changing the fan speed in the logs?
Maybe we can wait to have it merged and published as a proper version ( @nicoh88 ). Since we got the confirmation from @serbasan .
And you can try again with a normal installation (not through git).

The line doesn't appear in the log.
Ok no problem, I can wait for it
If it would help TeamViewer is no problem for me

Also have this problem with the s5 on the newest firmware

Successfully published<EMAIL_ADDRESS>sudo su -
npm -g install homebridge-xiaomi-roborock-vacuum@latest

I directly updated to the new version, but now my robot doesn't work at all.
Is it possible to switch back to 0.6.7?
[2/7/2020, 10:23:58 PM] [Staubsauger] ERR getDevice | get_serial_number | Error: Call to device timed out
[2/7/2020, 10:24:06 PM] [Staubsauger] MON changedCharging | roborock.vacuum.s6 | ChargingState is now true
[2/7/2020, 10:24:06 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Charging is active
[2/7/2020, 10:24:06 PM] [Staubsauger] MON changedSpeed | roborock.vacuum.s6 | FanSpeed is now 102%
[2/7/2020, 10:24:06 PM] [Staubsauger] INF changedSpeed | roborock.vacuum.s6 | Speed was changed to 102% (Balanced), for HomeKit 60%
[2/7/2020, 10:24:10 PM] [Staubsauger] ERR getFirmware | Failed getting the firmware version. Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'timeout'
}
[2/7/2020, 10:24:10 PM] [Staubsauger] ERR getDevice | miIO.info | Error: Call to device timed out
[2/7/2020, 10:24:24 PM] [Staubsauger] INF getBatteryLow | roborock.vacuum.s6 | Batterylevel is 100%
[2/7/2020, 10:24:24 PM] [Staubsauger] INF getPauseState | roborock.vacuum.s6 | Pause possible is false

Update:
i was able to start the robot with 0.6.8 but then I had no more control:
[2/7/2020, 10:53:58 PM] [Staubsauger] STA getDevice | Connected to: <IP_ADDRESS>
[2/7/2020, 10:53:58 PM] [Staubsauger] STA getDevice | Model: roborock.vacuum.s6
[2/7/2020, 10:53:58 PM] [Staubsauger] STA getDevice | State: undefined
[2/7/2020, 10:53:58 PM] [Staubsauger] STA getDevice | FanSpeed: undefined
[2/7/2020, 10:53:58 PM] [Staubsauger] STA getDevice | BatteryLevel: undefined
[2/7/2020, 10:54:07 PM] [Staubsauger] INF getBatteryLow | roborock.vacuum.s6 | Batterylevel is undefined%
[2/7/2020, 10:54:07 PM] [Staubsauger] INF getPauseState | roborock.vacuum.s6 | Pause possible is false
[2/7/2020, 10:54:07 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:07 PM] [Staubsauger] INF getCleaning | roborock.vacuum.s6 | Cleaning is false
[2/7/2020, 10:54:10 PM] [Staubsauger] ERR getSerialNumber | Failed getting the firmware version. Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'timeout'
}
[2/7/2020, 10:54:10 PM] [Staubsauger] ERR getDevice | get_serial_number | Error: Call to device timed out
[2/7/2020, 10:54:10 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:11 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:11 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:11 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Start cleaning, not charging.
[2/7/2020, 10:54:11 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 101 over miIO for "Quiet".
[2/7/2020, 10:54:22 PM] [Staubsauger] ERR getFirmware | Failed getting the firmware version. Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'timeout'
}
[2/7/2020, 10:54:22 PM] [Staubsauger] ERR getDevice | miIO.info | Error: Call to device timed out
[2/7/2020, 10:54:22 PM] [Staubsauger] INF changedCleaning | roborock.vacuum.s6 | Cleaning is OFF.
[2/7/2020, 10:54:22 PM] [Staubsauger] MON changedCharging | roborock.vacuum.s6 | ChargingState is now false
[2/7/2020, 10:54:22 PM] [Staubsauger] INF changedCharging | roborock.vacuum.s6 | Charging is cancelled
[2/7/2020, 10:54:22 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/7/2020, 10:54:29 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/7/2020, 10:54:31 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:33 PM] [Staubsauger] INF getBatteryLow | roborock.vacuum.s6 | Batterylevel is undefined%
[2/7/2020, 10:54:33 PM] [Staubsauger] INF getPauseState | roborock.vacuum.s6 | Pause possible is false
[2/7/2020, 10:54:33 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:33 PM] [Staubsauger] INF getCleaning | roborock.vacuum.s6 | Cleaning is false
[2/7/2020, 10:54:35 PM] [Staubsauger] INF getPauseState | roborock.vacuum.s6 | Pause possible is false
[2/7/2020, 10:54:35 PM] [Staubsauger] INF getBatteryLow | roborock.vacuum.s6 | Batterylevel is undefined%
[2/7/2020, 10:54:35 PM] [Staubsauger] INF getCleaning | roborock.vacuum.s6 | Cleaning is false
[2/7/2020, 10:54:35 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:36 PM] [Synology] current system temp: 37 °C
[2/7/2020, 10:54:37 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:37 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:38 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:38 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:38 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:38 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:38 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:39 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:39 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:39 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:39 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:39 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Start cleaning, not charging.
[2/7/2020, 10:54:39 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 102 over miIO for "Balanced".
[2/7/2020, 10:54:50 PM] [Staubsauger] INF getSpeed | roborock.vacuum.s6 | Fanspeed is undefined over miIO. Converting to HomeKit
[2/7/2020, 10:54:50 PM] [Staubsauger] ACT setCleaning | roborock.vacuum.s6 | Start cleaning, not charging.
[2/7/2020, 10:54:50 PM] [Staubsauger] ACT setSpeed | roborock.vacuum.s6 | FanSpeed set to 102 over miIO for "Balanced".
[2/7/2020, 10:54:51 PM] [Staubsauger] ERR setCleaning | roborock.vacuum.s6 | Failed to set cleaning to true Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'timeout'
}
[2/7/2020, 10:54:52 PM] [Staubsauger] INF changedPause | roborock.vacuum.s6 | Paused not possible, no cleaning
[2/7/2020, 10:55:02 PM] [Staubsauger] ERR setCleaning | roborock.vacuum.s6 | Failed to set cleaning to true Error: Call to device timed out
at Timeout.retry [as _onTimeout] (/usr/local/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio/lib/network.js:493:18)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'timeout'
}


⚠ Bofrost.fr has degraded performance

In af68a23, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1345 ms

Resolved: Bofrost.fr performance has improved in 1a23ba0.


Update energy_spectrum.py

Floating point error in the j2000 event time. To fix this, we can just clip the value of t to make sure it is in range (self.t_start,self.t_end).
I submitted an issue for this too (#98 )

I don't know the best way to add this. The line I added could just be included in the line after
i.e
                           for t in t_j2000])```

It would be nice to add a warning to this but I'm not sure what your protocol is for that.

I have nothing to add, this looks great!


DatabaseWriter is not secured againt SQL injections

DatabaseWriter uses strings from the Maven configuration as well as strings collected from archives to form SQL statements without quoting them. This makes the LicenseScout vulnerable to SQL injection attacks.
Bug report
Expected Behavior - What where you expecting to happen?
It should not be possible to inject malicious statments into the database writing.

Current Behavior - What happens?
Simple string concatenation without quoting to create SQL commands.
Possible Solution

What are the steps to reproduce this issue? (for bugs)

Context

Any logs, error output, etc?
Your Environment

Version used:
Environment name and version (e.g. Chrome 39, node.js 5.4):
Operating System and version (desktop or mobile):

Notes and further information

Solved by #74.


feat(config): new configuration for ad370 device

The z-wave alliance doesn't specify a Product Type ID for this device.. How do I handle that? I put the productType same as productId but not sure this is right...


useRoute() returns empty query on page reload

Version
4.1.6
Reproduction link
codesandbox.io
Steps to reproduce

Change page using provided buttons
Refresh the preview window

What is expected?
When I refresh the window, page's initial value must be the same as the page query param in the URL.
What is actually happening?
page's value is undefined because route.query.page is undefined.

As noted in docs (and other issues), this is expected behavior as all navigations are async. See router.isReady() in docs.

I solved the problem by reading initial query from window.location.search instead of route.query. However, I tried to use await router.isReady() before reading route.query, but it didn't work.

this still doesnt work, adding await router.isReady() before reading route.query also doesnt work, and the documentation is not clear on what to do


perf: Ionic Animations should not create timeout fallback for infinite iterations

Bug Report
Ionic version:

[x] 4.x
Current behavior:

Ionic Animations will still create a timeout fallback for CSS animations even if iterations = Infinity. There is no need to do this as the animation will never end.
Expected behavior:

I would expect the timeout fallback to not be fired if iterations === Infinity
Steps to reproduce:

Create an animation with infinite iterations
Open dev tools and record timeline
Play animation
Notice on timeline that setTimeouts are created for the animation

Related code:

https://github.com/ionic-team/ionic/blob/master/core/src/utils/animation/animation.ts#L822

Update: I think I will keep this intact for iterations = 0. Web/CSS Animations still fire native animationend events when iterations = 0. However, if display: none is set on an object with CSS animations in use, animationend will not fire so the fallback is still necessary.

One tradeoff of this approach is if you have the following animation with:

An element with display: none
An iteration count of Infinity

and you play this in a CSS Animation-only context, but then change the count to 10, you won't get an animation end event since a) the native animationend event doesn't fire and b) the fallback time was not set.
I think this is a fair tradeoff for the following reasons:

That use case seems rare and unlikely to occur.
You typically want to avoid animating elements with display: none anyways.
The benefit of having fewer setTimeout calls for users animating elements without display: none seems to overshadow this one use case.


DROP DATABASE command fails due to background workers

Our testing environment attempts to drop databases before recreating them. But the DROP DATABASE command fails with:
ERROR:  database "testdb" is being accessed by other users
DETAIL:  There are 4 other sessions using the database.

postgres   308   253  0 09:35 ?        00:00:00         postgres: bgworker: reaper0 [testdb]
postgres   309   253  0 09:35 ?        00:00:00         postgres: bgworker: queue0 [testdb]
postgres   310   253  0 09:35 ?        00:00:00         postgres: bgworker: combiner0 [testdb]
postgres   311   253  0 09:35 ?        00:00:00         postgres: bgworker: worker0 [testdb]

I've worked around this by running DROP EXTENSION pipelinedb; before performing the DROP DATABASE.
The code suggests that the background workers should be stopped automatically but this doesn't seem to be happening.
https://github.com/pipelinedb/pipelinedb/blob/526a6f4c9a1cc4a054d4efb53cf5c92180979303/src/commands.c#L318

@andrew-blake how long after creating the database did you run DROP DATABASE? If you immediately try to drop it after creating it, you'll see this error.

I'd left it many minutes

We have issues with the same behavior and having to drop the extension before dropping/rebuilding the DB in our CI pipeline. This is prior to a test run when the database is totally idle
DROP DATABASE does not terminate the worker processes


Roll Flutter Engine from a71e3a5480e1 to dfe5c9e58bce (1 revision)

https://github.com/flutter/engine/compare/a71e3a5480e1...dfe5c9e58bce
2022-09-09<EMAIL_ADDRESS>Remove context assertion from Android platform views using Virtual Display (flutter/engine#35997)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Rust and WebAssembly Working Group Meeting #23

Our next meeting will be Thursday, October 18th at 17:00 UTC.
Add agenda items here: https://paper.dropbox.com/doc/RustWebAssembly-WG-dcXi5F7Bqlvg10zd7dKve
We use Zoom for video meetings, so make sure you've downloaded the client! (It's free, but you have to sign up.) Here is our meeting room: https://zoom.us/j/625862582
Anyone interested in Rust and WebAssembly is invited to join! Yes, that includes you!

Use this zoom room today:
Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/434737679
Or iPhone one-tap :
US: +16699006833,,434737679#  or +16465588665,,434737679#
Or Telephone:
Dial(for higher quality, dial a number based on your current location):
US: +1<PHONE_NUMBER>  or +1<PHONE_NUMBER>
Meeting ID: 434 737 679
International numbers available: https://zoom.us/u/adFUuKI1Oh

I will miss this meeting too. Hopefully will join next week. Enjoy all


fix: Bump pod-privileged to v0.2.1 in kubewarden-defaults

Description
kubewarden-defaults is consuming an unexistent pod-privileged v0.2.0. Bump it to v0.2.1.
Bump kubewarden-defaults version to 1.1.5.

Can you change also README?
https://github.com/kubewarden/helm-charts/blob/main/charts/kubewarden-defaults/README.md?plain=1#L99


Added To-Do app for Django

Thanks Cockroach and @Amruta-Ranade for giving us (code newbies) this opportunity to participate in Hacktoberfest. It's been a great experience  🙂

Thanks for your contribution! 😊


Make CryptoHandler use UIRouter

Otherwise, have it use a SecretUI that always returns
an error.
This fixes a crash when there's no terminal available
for pinentry.

:+1:


Slippage parameters

Define maximum tolerances for slippage for actions like liquidating COMP tokens or entering yCRV.

@sparrowDom This was implemented as part of the harvester and is configurable, right?
https://github.com/OriginProtocol/origin-dollar/blob/0d30731f7167da0f410db469baaaf74897408cf6/contracts/contracts/harvest/Harvester.sol#L389
Closing. Please re-open if I'm missing something...

Yup it was, thanks for cleanup!


Increment version for postgresqlflexibleserver releases

Description
Correctly merge from https://github.com/Azure/azure-sdk-for-java/pull/35061
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


feat: component cell supports report tab, outputs as context variable and train-predict/binrule-binsub pipeline

sf.report output now sends to the frontend by Comm message and displays on Report tab
model training now exposes trained model and other outputs to context variables and can be used in model prediction components
so as binning rule generators expose binning rule and can be referred to in vert_bin_substitution
refactored component.json schema according to latest secretflow sf.components.entry.COMP_MAP and test cases
generated Python code narrows into its own scope
a notebook for testing all components in secretflow document is prepared

I have read the CLA Document and I hereby sign the CLA


is it possible to have kafka connect or ksqldb native image ?

I am looking to reduce resource usage of my kafka connect workers, i use it via the embedded connect in ksqldb or the kafka connect directly. Let me know your thoughts. I understand that this question is not relevant to this project but since its related am curious to understand you opinion.

Hi,
Kafka Connect is a server with a bunch of runtime-loaded plugins, it would not be feasible to produce a native binary out of it.

got it, Thanks for the reply.


Simplify creation of merged and structured configs

Merging configs and converting untyped configs to structured configs currently takes several function calls. Also, it is not trivial to decide, which functions to use (e.g. merge vs unsafe_merge) and you can shoot yourself in the foot if you apply structured config conversion and merging in the wrong order.
Let's say I have two configs: a base config and another config that extends the base config for a different staging environment:
yml_base = """
base_dir: /tmp
csv_file: ${base_dir}/users.csv
"""
yml_prod = """
base_dir: /opt
"""

Let's turn this into a DictConfig:
conf_base = OmegaConf.create(yml_base)
conf_prod_only = OmegaConf.create(yml_prod)
conf_prod = OmegaConf.merge(conf_base, conf_prod_only)

Three function calls, pretty straightforward.
Now let's convert this to a structured config
@dataclass
class MyConfig:
    base_dir: str
    csv_file: str

here we first have to do the DictConfig conversion from before, then specify MyConfig in the merge function and finally call to_object:
conf_base = OmegaConf.create(yml_base)
conf_prod_only = OmegaConf.create(yml_prod)
typed_conf = OmegaConf.merge(conf_base, conf_prod_only, MyConfig)
class_conf: MyConfig = OmegaConf.to_object(typed_conf)

now we have 4 function calls in a row, and class_conf doesn't even have type information, so we have to specify the type hint for MyConfig ourselves. Also, if we would have resolved each DictConfig first and then merged it, the value of csv_file would have been /tmp/users.csv instead of /opt/users.csv. And we could have used unsafe_merge here for a slight performance boost.
This is not trivial to remember, so whenever I use OmegaConf, I carry a bunch of utility functions around. But I think we can slightly extend some OmegaConf functions to make this easier for everyone. This is how I would like to use the OmegaConf.create function
def create(
    *obj: Any,
    parent: Optional[BaseContainer] = None,
    flags: Optional[Dict[str, bool]] = None,
) -> DictConfig:
    if len(obj) == 0:
        return OmegaConf.create(parent=parent, flags=flags)
    elif len(obj) == 1:
        return OmegaConf.create(obj[0], parent=parent, flags=flags)
    else:
        configs = [OmegaConf.create(o, parent=parent, flags=flags) for o in obj]
        return OmegaConf.unsafe_merge(*configs)

then we could just call OmegaConf.create(yml_base, yml_prod) to get the merged config.
To directly create a structured config:
T = TypeVar('T')

def create_structured(
    type_class: Type[T],
    *obj: Any,
    parent: Optional[BaseContainer] = None,
    flags: Optional[Dict[str, bool]] = None,
) -> T:
    # here we call the proposed new create function that merges all provided configs
    dict_conf = OmegaConf.create(*obj, parent=parent, flags=flags)
    typed_conf = OmegaConf.unsafe_merge(dict_conf, type_class)
    return OmegaConf.to_object(typed_conf)

now we can call OmegaConf.create_structured(MyConfig, yml_base, yml_prod) to get the merged config as instance of MyConfig, and we even get the correct type information.
We could extend OmegaConf.load in the same way and add OmegaConf.load_structured so we can load structured configs directly from files.
What do you think?

Hello @klamann, thank you for sharing your thoughts, and I'm glad you're finding OmegaConf useful!
A few notes:

Regarding merge order: the rule is that the right-hand arguments to OmegaConf.merge always take precedence over the left arguments
On generic type hints for OmegaConf.create's return type: this has been proposed in https://github.com/omry/omegaconf/issues/899.

Your custom wrappers around OmegaConf.create look reasonable.
Note that the OmegaConf API facilitates working directly with config objects (DictConfig and ListConfig) and manipulating the data stored inside of them, but it does not address use cases such as higher-level orchestration of config composition.
Have you seen hydra?
Hydra uses OmegaConf as a backend and is designed to handle some of the complexity in orchestrating config composition.


Code Action at file end

open https://github.com/microsoft/vscode/blob/ec7e8633bff79de6cd12266d0c510921096e9b99/src/vs/editor/contrib/referenceSearch/referenceSearch.ts#L214
reveal last line
:bug: a code action on the trail newline suggests to convert functions to async

Not seeing this with TS 3.7.1-rc:

What TS version is enabled in your workspace?

YEah, using 3.7.1-rc. Did you try this with commit ec7e8633bff79de6cd12266d0c510921096e9b99?

Still not seeing this. Does this go away if you edit the file? Are there any errors in your dev tools? I saw an error related to markers earlier today but have not been able to reproduce the issue

Hard to say.. I have moved on this refactoring this file, having said that I did make a lot of changes in that file and it might haven gotten stale for reason?


[BottomNavigationBar] TalkBack/VoiceOver not localized for bottom bar navigation items

Steps to reproduce

Enable TalkBack/VoiceOver on your phone
Set system language to italian (probably any other language different from english is ok)
Run the sample code below and put the screen reader focus on an item of the bottom bar

Expected results
The screen reader should be reading the label and telling the user the number of the selected tab out of the total tabs present (i.e. "tab 1 of 3" in the sample code provided) in the correct language, italian in my case.
Actual results
The screen reader always reads "tab n of m" even though the locale is set to it-IT and the phone system language is italian.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      locale: const Locale('it', 'IT'),
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('You have pushed the button this many times:'),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: const [
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.abc)),
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.ac_unit)),
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.access_alarm)),
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.24.1, on Microsoft Windows [Version 10.0.26120.1542], locale it-IT)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/to/windows-android-setup for more details.
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.1)
[√] Android Studio (version 2024.1)
[√] IntelliJ IDEA Community Edition (version 2024.2)
[√] VS Code (version 1.92.2)
[√] Connected device (3 available)
[√] Network resources

! Doctor found issues in 1 category.

Thanks for the report @gench23
I verified this issue with voiceover running on iOS device on latest stable version. I selected Italian as device language and focused on BottomNavigationBar items, which properly read in Italian. I also verified with Spanish, and it read properly in Spanish.
Can you provide device details ? Did you test in Android or iOS ?

Thank for the reply @darshankawar, I've tested it on a Pixel 6 running Android 14 and on an iPhone XR running 17.5.1.
I'll try to rephrase the issue to make sure we're both on the same boat: what is happening is that the numbers are read in the correct language, but the line "tab n of m" is in english, while in italian it should be something like "tab n di m" or maybe "scheda 1 di 3".

while in italian it should be something like "tab n di m" or maybe "scheda 1 di 3".

I think that is what I observed while running on iOS. It reads the tab section in Italian properly, as shown below:
https://github.com/user-attachments/assets/bee84d3f-cfb9-4d54-aee8-ad895a62d878
If you are seeing different from above, please let us know.

I'm seeing exactly what's shown in the video, but the part I highlighted in the screenshot from your video is not italian, as the VoiceOver is reading "tab 1 of 3", which is english. I know it's a bit subtle, but it's nonetheless incorrect.

Furthermore, I've noticed that this also happens with the default back button of the AppBar component, which reads "back" instead of its italian translation. You can verify it with the following code.
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      locale: const Locale('it', 'IT'),
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(title),
      ),
      body: Center(
        child: FilledButton(
          onPressed: () => Navigator.of(context).push(MaterialPageRoute(builder: (_) => const SecondPage())),
          child: const Text('Go to second page'),
        ),
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: const [
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.abc)),
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.ac_unit)),
          BottomNavigationBarItem(label: 'ciao', icon: Icon(Icons.access_alarm)),
        ],
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  const SecondPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Second Page'),
      ),
      body: const Center(
        child: Text('Go back!'),
      ),
    );
  }
}

I see now what you are saying. Yes, that's the current behavior observed as verified earlier.
Stable: 3.24.1
Master: 3.25.0-1.0.pre.219

Can you try adding the localization delegates?
return const MaterialApp(
  title: 'Localizations Sample App',
  localizationsDelegates: [ // Need to add these
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: [
    Locale('en'), // English
    Locale('es'), // Spanish
  ],
  home: MyHomePage(),
);

Thanks for the reply @chunhtai, adding the localizations delegates with the correct supported locales worked.
Maybe this could be specified in the accessibility page of the flutter documentation.
Anyway, thanks for the help 👍🏻

I agree this is not as straight forward as it is. We should have some way of inform developer about semantics label or hint that may require material localization.
Here are the widget I am aware:
Silvers - scroll actions
ExpansionTile - semantics hint
BottomNavigationBar - semantics labels

There should be also the default BackButton of the AppBar


Doesn't work in game

Hello, please help me.

I installed it according to the instructions (https://github.com/SunOner/yolov8_aimbot/blob/main/docs/ru/install_guide_ru.md)

Next, I installed BetterCam using the “pip install Bettercam” command.

After which I launch AIM, there are no errors, I launch the game, but AIM does not work in the game.
What could be the problem?

what game did you try it on? if the game have kernal anticheat you will need a special driver for mouse input

в какой игре ты это пробовал? Если в игре есть античит-ядро, вам понадобится специальный драйвер для ввода с помощью мыши.

Game Warface. I launch it and nothing happens, no mouse response

what game did you try it on? if the game have kernal anticheat you will need a special driver for mouse input

Game Warface. I launch it and nothing happens, no mouse response.

This problem has been solved in the discord server for a long time.


CommonChunkPlugin: Feature - Select statically imported modules from chunks that were created from a dynamic import (require.ensure / System.import / import(".."))

Do you want to request a feature or report a bug?
Feature for CommonChunkPlugin.
Support selecting modules from non-entry chunks. Meaning, select statically imported modules from chunks that were created from a dynamic import (require.ensure / System.import / import(".."))
What is the current behavior?
Currently CommonChunkPlugin only receives modules imported from entry chunks.
What is the expected behavior?
CommonChunkPlugin should receive also modules from non-entry chunks.
Another option will be that the default behavior will be that the plugin won't be getting these modules and only with passing something like selectAllChunks: true will enable this behavior.
If this is a feature request, what is motivation or use case for changing the behavior?
Most of the examples out there talks about CodeSplitting but not talking about CodeSplitting with lazy loading. For example, load your main page as an entry chunk, and split the rest of your website routes to different chunks and only load those on demand.
You see the important need for this feature when you're trying to make a vendors chunk that will include the vendors from ALL the chunks including the ones for the different routes that are being created from a dynamic import as a split point.
In our opinion the best solution to create the vendors chunk will be using the minChunks function since the other two (specifying hard coded which packages to take / import package.json.dependencies) has a lot of issues with and this is the most dynamic way to do it:
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendors',
      minChunks: ({ resource }) => /node_modules/.test(resource)
    })

The problem is that since CommonsChunkPlugin only gets modules form the entry chunks, so all the vendors from our different split points are not being added to this chunk.
The motivation around this feature request is that others won't need to do the workaround I'll show here.
Proposed temporary workaround and why it's not that good. Writing it here anyway so who ever needs it will see it and would be able to use it
What the lack of this feature forces us to do it for every dynamic import we're doing (using import("path")) we're also going and creating an entry chunk for it. Just so the above code will work.
Then, all of these "duplicate" chunks we're excluding from being added to the HTML using the excludeChunks of HtmlWebpackPlugin
So it basically looks like this:
...

// Why do we need to exclude these entries?
// The entries here are being dynamically loaded per route in the application so we would like to set
// them to be excluded form HtmlWebpackPlugin auto inject of entry chunks.
//
// If they are being dynamically loaded in the system, so why do you need them here at all?
// We're creating a `vendors` chunk automatically from what being imported from `node_modules`, in order for webpack
// to know about what code exists in these route chunks we need to set them as entries here.
// That way we're getting everything we ever wanted! The `vendors` is being created out of ALL the vendors in the system,
// and we're still able to dynamically load these chunks per route without having them injected to index.html at the beginning.
const excludeEntries = {
  main: [path.join(chunksPath, 'main_chunk')],
  A_template_collection: [path.join(pagesPath, 'TemplateCollectionPage')],
  A_template_wizard: [path.join(pagesPath, 'TemplateWizardPage')],
  A_edit_template: [path.join(pagesPath, 'TemplateEditPage')],
  A_create_instance: [path.join(pagesPath, 'CreateInstancePage')],
  B_issues_collection: [path.join(pagesPath, 'IssuesCollectionPage')]
};

const entry = Object.assign({}, excludeEntries, {
  application: [path.join(chunksPath, 'application_chunk')]
});

const config = {
    entry,
    ...
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
          name: 'vendors',
          minChunks: ({ resource }) => /node_modules/.test(resource)
        }),
        new HtmlWebpackPlugin({
          title: indexHtmlTitle,
          resourceHintsMetaTags,
          inject: true,
          template: indexHtmlPath,
          excludeChunks: Object.keys(excludeEntries)
        }),
    ]
    ...
}

The dynamic imports are being used on the same paths as the entry chunks that are being excluded from the html.
This causes some difficulties for us:

If you dynamically import something and forget to put it here as well it will not go into the vendors chunks and you'll lose cache
This creates for us chunks that we're not actually using. So for the same code I'll have the named entry chunk and I'll also have a chunk from the dynamic import. I'm not using the named entry-chunks but it's just noise to me.
That is even bigger when also using the ExtractTextPlugin.

I looked also here: https://github.com/oieduardorabelo/webpack-commonschunkplugin-dynamic-splitting
But that seems to not be related since in our case the only real entry point (application: [path.join(chunksPath, 'application_chunk')]) is basically just loading polyfills + loading the main chunk path dynamically. Since all the application chunk is doing is mainly dynamically import() stuff it has no static imports of files from node_modules. So CommonChunkPlugin doesn't catch that..
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.

OS: macOS 10.12.3
Node.js version: 6.9.10
Webpack version: 2.2.1
Browser not relavant

There is already an (incomplete) PR adding this feature.

@sokra - do you refer to this PR: https://github.com/webpack/webpack/pull/4255 ?

For anyone using the workaround of manually specifying all dynamic splits as entries: if you want to then remove those entries and not have them emitted or included in stats, see here: http://stackoverflow.com/a/39401288/747749

I've just encountered the same problem when developing an app with dynamic imports. It's the "must have" feature. I'm surprised that it was not implemented yet. Is there something we can do to help with developing this feature? Is someone actively working on that?

I've just submitted another PR to fix the issues with https://github.com/webpack/webpack/pull/4255.
you can find it here: https://github.com/webpack/webpack/pull/5764

Could someone share a code snippet for making this work after merge of PR #4255?
@ljcrapo

@wbern example code is in docs in the PR:
module.exports = {
	entry: {
		main: ["./example.js"]
	},
	plugins: [
		new webpack.optimize.CommonsChunkPlugin({
			name: "main",
			minChunks: 2,
			children: true,
			deepChildren: true,
		})
	]
};

@jagi I tried that (with minChunks checking if the package is from node modules so not 2 like in your case), and it didn't manage to move anything to that vendor chunk.
I am using dynamic import() with latest webpack version.

@wbern, what does your configuration look like? I had to omit name from my configuration to get it to do what I wanted.

Finally found this thread! Works great on latest webpack (3.8.1) for my simple case. Thanks!

@ljcrapo @sokra you are right, I had to omit name, then it successfully took my dynamic imported controllers and put the vendors in vendor.bundle.js.
What worries me here is that if I have not defined either name or filename, how can I be so sure that the generated bundle will be vendor.bundle.js?
And why shouldn't name be allowed anyway? You do get an error if you define filename which is
ERROR in chunk app/file [initial]
vendor.bundle.js
Conflict: Multiple assets emit to the same filename vendor.bundle.js
```,

but there's no error for `name`, just that it plain doesn't work.

@sokra @jagi @ljcrapo Can anyone reflect on the above?? I don't feel safe enough to add this until I know what's happening.

@jagi does'n work for me.
There is no vendor bundle, and all common stuff bundled in main entry.
demo repo

@lili21

...all common stuff bundled in main entry.

The main entry is the common chunk in this case. I believe if you set async to true you'll get a separate chunk with common stuff that gets loaded asynchronously.

@wbern I agree that something doesn't add up. It is probably the result of attempting to satisfy multiple inconsistent use cases. I would suggest submitting a new issue explaining exactly what behavior you would expect.

@ljcrapo to be honest I'm not sure what to expect, other than for the PR to work as described here. I'm just not sure what else there is to add, except that it doesn't work when you use the specified configuration which inspired the PR.

@ljcrapo

The main entry is the common chunk in this case.

That's not what I expect. only the node_modules stuff should be bundled in common chunk.
new webpack.optimize.CommonsChunkPlugin({
  // name: 'common',
  minChunks(module) {
    return (
      module.resource &&
      /\.js$/.test(module.resource) &&
      module.resource.indexOf(path.resolve(__dirname, './node_modules')) === 0
    )
  },
  children: true,
  deepChildren: true
}),
`` `

@ljcrapo Thanks. one more quetion, is there a way I can set the name of the common chunk ?

figure out a better way to do this.
new webpack.optimize.CommonsChunkPlugin({
  name: 'app',
  async: 'async-vendor',
  children: true,
  minChunks(module) {
    return (
      module.resource &&
      /node_modules/.test(module.resource)
    );
  },
})

I noticed that specifying chunks manually works perfectly.
new webpack.optimize.CommonsChunkPlugin({
    name: 'vendor',
    chunks: ['app', 'home', 'about', 'contact'],
    minChunks: module => /node_modules/.test(module.resource)
})

How I load my modules dynamically in my routes
const routes = {
    path: '',

    children: [
        {
            path: '',
            load: () => import(/* webpackChunkName: 'home' */ './home')
        },
        {
            path: '/stock',
            load: () => import(/* webpackChunkName: 'about' */ './about')
        },
        {
            path: '/reset',
            load: () => import(/* webpackChunkName: 'contact' */ './contact')
        }
    ]
}

CommonsChunkPlugin was removed in v4 and v5, in favor the splitChunks option, I think we can close it, and we have https://github.com/webpack/webpack/pull/5764

CommonsChunkPlugin was removed in v4 and v5, in favor the splitChunks option, I think we can close it, and we have https://github.com/webpack/webpack/pull/5764


helpers references parent component when nested not controller view_context

Steps to reproduce
parent_component.rb
class ParentComponent < ViewComponent::Base
end

parent_component.html.erb

<%= helpers.current_user.name %>

<%= content %>

nested_component.rb
class NestedComponent < ViewComponent::Base
end

nested_component.html.erb

<%= helpers.current_user.name %>

action.html.erb
<%= render ParentComponent.new do %>
  <%= render NestedComponent.new %>
<% end %>

Expected behavior
I expect to see following output:

John

John

Actual behavior
undefined local variable or method `current_user' for #<ParentComponent:0x00007f94f456c760>

System configuration
Rails version: <IP_ADDRESS>
Ruby version: 2.6.5p114
Gem version: 2.5.0

@alhafoudh thank you for the report!
In this case, where would you expect current_user to be defined and thus be available to the component?

@joelhawksley I put together a simple Rails app that demonstrates that helpers do not work properly in nested components: https://github.com/kylefox/nested-components-demo
This app defines a TableComponent, TableRowComponent, and a shout helper.
TableComponent accepts a collection and renders a TableRowComponent for each item. TableRowComponent uses the shout helper.
It works when a TableRowComponent is rendered directly from the view:

    First name
    Last name
    Email

    <% @people.each do |person| %>
      <%= render TableRowComponent.new(person: person) %>
    <% end %>

But this breaks (undefined method shout' for #TableComponent:0x00007fb2459c3750), even though the template code for TableComponentis identical tohome/works.html.erb`:
<%= render TableComponent.new(people: @people) %>

Something funky definitely happens with helpers. If I output <%= helpers.class %> in the table row component, it outputs #<Class:0x00007fb22587b750> when being rendered directly in the view, but outputs TableComponent (the parent component class) when being rendered within a parent component.

@kylefox this unfortunately isn't a huge surprise. helpers is just an alias for view_context:
https://github.com/github/view_component/blob/6a4fb2083bef6efdfd6bf4e3a694a72e8c259f1d/lib/view_component/base.rb#L108-L111
In the nested case, the view context is the parent component, where global helpers are not available.
This is ultimately a pretty significant bug. Do you have ideas for how we might go about solving it?

I've redefined helpers in my project's base ApplicationComponent class:
  # Restore access to global helpers
  def helpers
    view_context.controller.view_context
  end

I just needed a quick workaround to get going so I might doing something stupid here, but it solved the issue for me.

@franco "escaping" to the controller view context is probably the right behavior here. Would you be willing to write a PR?

@joelhawksley PR should fix it as discussed but be aware that this is potentially a breaking change. Some code might relay on the incorrect behaviour.

Cool. Same issue. One thing. Pretty sure that this PR would have to change MAJOR version according https://semver.org/

@woto I thought so too at first but one could argue that it is just a malfunction from the intended behaviour and classify it simply as a bug. Anyways, the PR has been released already in 2.11.0.

Closed by https://github.com/github/view_component/pull/374


Update Online Tool

More of a question than an issue. Just wanted to know when does the online tool get updated to show new coins added?
I made a pull request that was merged 14 October 2018. However, the online tool still does not show our coin in the coin drop down.
Thanks for your time.
Kevin

Good question. Part of this is because there have only been new networks added since the last version, and I prefer to add some 'real' features for each release. The other reason is I'm lazy and haven't updated when really I should have. Also some tests were failing but they're passing now. I'll try to get to doing a new release today.


Analyzer: Mixed returns is not an error any more

Consider the following library:
import 'dart:async';

Future<void> foo(bool b) async {
  if (b) return;
  return null;
}

As of 54011e5622423d9bdbe4efaa5a37dff3b7771750, dartanalyzer reports errors for this library:
ERROR|STATIC_WARNING|MIXED_RETURN_TYPES|/usr/local/google/home/eernst/lang/dart/scratch/201911/n045.dart|4|10|6|Functions can't include return statements both with and without values.
ERROR|STATIC_WARNING|MIXED_RETURN_TYPES|/usr/local/google/home/eernst/lang/dart/scratch/201911/n045.dart|5|3|6|Functions can't include return statements both with and without values.

The language specification used to have a rule saying that it is a compile-time error to have both return; and return e; in the same function, but this is no longer the case. The change occurred in SDK commit 9388cb3d0c3788ee37f84eddb6bff8e7a6bace62, and it was a consequence of integrating the feature specification invalid-returns.md into the specification. So the analyzer should stop checking and reporting mixed_return_types. The current spec text is here.

Fixed by https://dart-review.googlesource.com/c/sdk/+/125927.
@eernstg The test co19_2/Language/Statements/Return/many_return_statements_t01 appears to be based on the old spec. Could you please double check and follow up with the co19 team if necessary?

I created an issue in the co19 repo for that, thanks!


Rerender recipe with grayskull

add pip consistency check
added myself as maintainer

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@conda-forge/vine This is ready for review/merging.
I've also stolen the project description from here and put it into a PR upstream, as the package itself is very light on documentation.


When the user finishes the setting and clicks the ‘save’ button, a game room is made and the user is redirected to the room.

commit: e764ef5


rotAroundNormal mangling outcome -reverted

looks like I accidentally killed this one off in one of the batch-cleaning jobs. Still needs to get rolled in, or properly addressed.

Merged in 98fa3d02.


Invalid default value for prop "emitter"

Hello! I get the following warnings when using vue-waterfall. I don't seem to find the reason for this. Any idea?

The relevant code is the following:
<waterfall :line-gap="200" :watch="locations">
    <waterfall-slot v-for="location in locations" :width="100" :height="100" :key="location.id">

Test

    </waterfall-slot>
</waterfall>

locations is an array of objects.
It is working, but the 2 red warnings in the console are kind of annoying and I would like to know what's it about. I'm kind of new to vue.
My vue version is 2.0.3.

Fixed. 8a7110b . Thx for your feedback.
In addition, the code should be:
<waterfall :line-gap="200" :watch="locations">
    <waterfall-slot v-for="(location, index) in locations" :width="100" :height="100" :key="location.id" :order="index">

Test

    </waterfall-slot>
</waterfall>

Damn that was fast! It's working now. Great, thank you.


[Documentation Bug]: Readme update for Pokedex game

Describe the bug ✍
Describe your bug her
I would like to add info/description regarding the game.
Provide step by step information reproduce the bug 📄
Description
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @SnigdhaP2022 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @SnigdhaP2022 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Is 2012 supported?

The Supported operating systems section lists out 2012 R2 and the older 2008 R2 but not 2012, lower down the page in the Software requirements section it mention that WMF5.1 is required to provide pwsh 4 on 2008 R2 and 2012.

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

ID: a4d7411a-32db-b1a7-09b6-88fde6daccf9
Version Independent ID: 89123a10-c752-74ca-adf8-69ed618e15a7
Content: Connected Machine agent prerequisites - Azure Arc
Content Source: articles/azure-arc/servers/prerequisites.md
Service: azure-arc
Sub-service: azure-arc-servers
GitHub Login: @johnmarco
Microsoft Alias: johnmarc

@philtapp
Thanks for your feedback! We will investigate and update as appropriate.

Tagging @johnmarco for visibility, to help clarify with insights and enhance the document as appropriate.

@philtapp thank you for calling this out. I am looking into this now and hope to have clarification soon.

@philtapp, the agent does not support Windows Server 2012. I have updated the article to reflect this and it should be live soon. Thank you again for identifying this discrepancy. I will now close this issue.

#please-close


Offsets not committing after recreating KafkaConsumerActor

Version Information
Akka 1.4.49
Akka.Streams.Kafka 1.4.49
Describe the bug
When an exception is thrown within the KafkaConsumerActor and handled by BaseSingleSourceLogic under the Restart directive. The Committer still keeps a reference to the previous ActorRef. This means that all offset commits are being sent to the wrong actor which means no offset commits are done to Kafka anymore.
To Reproduce

Override OnException from the DefaultConsumerDecider to issue a Directive.Restart on an exception.
Throw and exception in KafkaConsumerActor which gets handled by the ProcessExceptions method.
The actor will get recreated in BaseSingleSourceLogic but the Committer will still keep a reference to the previous actor.

Expected behavior
The reference to the consumer actor in the Committer should be updated. I found that recreating the messageBuilder using the factory in BaseSingleSourceLogic after creating the new KafkaConsumerActor seems to fix it, but I'm not sure if that is the best way to go about it.
Actual behavior
After the KafkaConsumerActor is recreated under the Restart directive in BaseSingleSourceLogic, offsets are no longer committed to Kafka.
Environment
Windows, .NET 6?
Additional context
Related to the work done in this PR and raised in this ticket.
The consumer actor now gets recreated as it should but with side effects.

@bezchristo Can you provide a reproduction code?


Cannot browserify dat-sdk

index.js is simply const SDK = require('dat-sdk')
In my terminal:
browserify index.js > bundle.js
Error: Cannot find module 'babelify' from '/Users/my_user/Documents/GitHub/project/node_modules/dat-sdk'

So I tried npm install babelify then, again, browserify index.js > bundle.js
My terminal:
Error: Cannot find module '@babel/core'

Could you try installing the following and see if that helps?
"@babel/core": "^7.9.0",
    "babel-plugin-module-resolver": "^4.0.0",
    "babelify": "^10.0.0"

I think you needed to add --save-dev to the cli
npm install babelify --save-dev
as babelify needs to be a devDependency
Also you need to add the babelify -transform to the command line
browserify -t [ babelify --global ] index.js > bundle.js

@DougAnderson444 Thanks for chiming in, do you think you'd be up to submit a PR to the README which adds these details in the browserify section? Something along the lines of what you need to do to use the library in a browserify environment

I think this is also related to https://github.com/RangerMauve/dat-fetch/issues/10

Could you try installing the following and see if that helps?
"@babel/core": "^7.9.0",
    "babel-plugin-module-resolver": "^4.0.0",
    "babelify": "^10.0.0"

Yep, I was able to browserify the file after installing all of these!

I don't know if I should make a new issue :/ My entire webpage looks like this:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head><meta charset="utf-8"><title></title>
  </head>
  <body></body>
  <script src="bundle.js"></script>
  <script>
    const SDK = window.datSDK
    // Look at the examples from here
  </script>
</html>

and I have this error in the console:
Uncaught Error: No native build was found for platform=browser arch=javascript runtime=node abi=undefined uv= libc=glibc node=undefined     loaded from: /node_modules/sodium-native

Hopefully these tips help.
The easiest way is to just start from the SDK bundle and work from there.
For the record, I couldn't get the webpack way working for the life of me. I gave up and switched to Browserify + Babelify.

and I have this error in the console:
Uncaught Error: No native build was found for platform=browser arch=javascript runtime=node abi=undefined uv= libc=glibc node=undefined loaded from: /node_modules/sodium-native

You need to alias the sodium code, see the babel.config.json for how it's done with babel/babelify

#63

Okay, I will try to learn babel :/

Try the latest Master branch or v2.8.0. I removed the geut sodum-js fork since apparently sodium-javascript should be working correctly now.

The updated README is good! Thanks for all the help!


Marie added centuries.

This allows to add/remove centuries.

@klausi123  I don't think the downside of adding a new token is worth the upside of supporting centuries. I'd merge a PR for enabling moment plugins to add arbitrary parsing/formatting tokens. Check this comment: https://github.com/moment/moment/issues/4440#issuecomment-400948661I


EF.Extended transaction

Hello, I would like to ask, I hear people say, ef.Extended transaction are not consistent with the EntityFramework, I would like to ask is this?

Hello @applenele  ,
This library is no longer supported since 2015.
We recommend you to move to Entity Framework Plus which is also a free & open source library.
This issue have good chance to already be solved in EF+
Best Regards,
Jonathan


C# Tests fail (language issue?)

When I run C# tests, it says that they are all incorrect.
If I show the output, it says that the tests are correct.
Could it be a language issue? dotnet is showing the results in Spanish.

I'm not sure what the problem is as this is an adapter specific issue and I don't maintain it. Please open an issue in the neotest-dotnet repo


Suggest some new features that we can add

Suggest some new features that we can add to this project.
Create an issue of what you would like to get added.

@pushkaraj2007 we can add a drop down menu to select which data to be selected like grading, etc as a feature

@epicadidash
Looks good, do you want to work on that?

@pushkaraj2007  I can .

if you want . will start on 29th September


Unknown flight category

There should be an unknown flight category for METARs that are missing ceiling or visibility data.

AIM 7-1-28 states:

A sensor for determining ceiling and sky cover is not included in some AWOS. In these systems, ceiling and sky cover are not announced. “SKY CONDITION MISSING” is announced only if the system is configured with a ceilometer and the ceiling and sky cover information is not available.


Apply copy editor's suggestions

Purpose
Apply copy editor's suggestions on Ballerina Expression Syntax.

Updated to format user input values, variables, and function/expression syntax with backticks.
Also changed the numbering to follow a more flexible approach.

The change suggestions given here have been addressed via [1] because there were too many conflicts that couldn't be fixed manually and pushed to Nashaath-patch-2.


What constitutes commercial use?

I'm curious about the license. What constitutes commercial use.
If we use the editor while writing a commercial product, is that commercial use?
Or do would it be something like modifying the editor (or not) and selling it?

I am  not an Oni2 developer.
There is an explanation of Non-Commercial in context of established Creative Commons licenses here: https://wiki.creativecommons.org/wiki/NonCommercial_interpretation
It might nor might not apply to intentions of Oni2 copyright holders; but might explain something for You!

I think this section of the EULA covers this:

Under a Non-Commercial License, Licensee will not use the Software: (a) for any commercial, professional, for-profit and/or on-sale purpose or otherwise to provide any commercial service(s) to a third-party. (b) in the course of any employment or business undertaking of Licensee; (c) on any commercial premises during business hours (except where use of the Software is solely for a personal, recreational, educational, or other non-commercial purpose); and/or (d) to create any commercial tools or plugins.

Broadly, if you are being paid for it, or using it to write something to make money, then that probably constitutes as commercial usage. There is some caveats around that, but its a good start (though read the EULA if you are interested further, since that is the actual license, not my vague interpretation!).
There is also the oni2-mit repo, which is fully open source and MIT licensed.

Potential dup of #2211

If we use the editor while writing a commercial product, is that commercial use?

Yes, this would be considered commercial use - a good litmus test is if you are using to earn money (wage/selling something) - that's commmercial use.

Or do would it be something like modifying the editor (or not) and selling it?

Redistributing isn't allowed by the EULA (for the Oni2 repo):
1.4 Restrictions on Use.

You shall use the Software strictly in accordance with the terms of this Agreement and shall not: (a) distribute the Software (b) make the Software available over a network or other environment permitting access or use by multiple users at the same time; (c) violate any applicable laws, rules, or regulations in connection with Your access or use of the Software;

We may amend that though when we have the trial builds available (to allow distribution of non-modified builds).
However, in any case, this is why we have the time-delay licensed repo: oni2-mit  - those commits are relicensed under MIT after 18 months so you're free to modify, use non-commercally, redistribute, etc - no limits. And by design - everything eventually ends up there. We have a script that runs nightly that takes the 18-month-ago commit and relicenses it.
Let me know if you have any other questions. Happy to add to the FAQ too

Is packaging binaries from unmodified source considered "redistribution"