Support of Docker TCP port to scan local cache images on host machine

Currently, dockle only have a support for /var/run/docker.sock to connect Docker Daemon. We @developer-guy noticed that since we rely on $DOCKER_HOST variable by setting tcp://localhost:2375, dockle ignores the local cache even if image already present on the host machine. Ending up with pulling the image again.
Consider following example:
scan:
  image: $SCAN_IMAGE
  services:
    - docker:19.03.15-dind
  variables:
    DOCKER_HOST: "tcp://localhost:2375"
    DOCKER_TLS_CERTDIR: ""
  script:
    - docker image pull --quiet $DOCKER_IMAGE
    - dockle --exit-level WARN --exit-code 0 $DOCKER_IMAGE

How to reproduce:

$ docker run --privileged -p 12375:2375 -e DOCKER_TLS_CERTDIR="" --rm -it docker:20.10.12-dind
$ DOCKER_HOST=tcp://localhost:12375 docker image pull busybox
$ DOCKER_HOST=tcp://localhost:12375 docker image tag busybox foo

$ DOCKER_HOST=tcp://localhost:12375 docker image ls
REPOSITORY             TAG       IMAGE ID       CREATED        SIZE
busybox                latest    ec3f0931a6e6   10 days ago    1.24MB
foo                    latest    ec3f0931a6e6   10 days ago    1.24MB

$ DOCKER_HOST=tcp://localhost:12375 dockle --exit-level WARN --exit-code 0 foo

2022-02-15T17:26:12.772+0300    FATAL   unable to initialize a image struct: failed to initialize source: reading manifest latest in docker.io/library/foo: errors:
denied: requested access to the resource is denied
unauthorized: authentication required

If you have necessary access to docker.io, you will get the following error:
2022-02-15T12:09:30.033Z	DEBUG	There is no .dockleignore file
2022-02-15T12:09:30.033Z	DEBUG	Fetch latest version from github
2022-02-15T12:09:30.575Z	DEBUG	Start assessments...
2022-02-15T12:09:30.928Z	FATAL	unable to initialize a image struct:
    github.com/goodwithtech/deckoder/extractor/docker.newDockerExtractor
        /home/runner/go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20210909145842-06c0013a5310/extractor/docker/docker.go:73
  - failed to initialize source:
    github.com/goodwithtech/deckoder/extractor/image.NewImage
        /home/runner/go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20210909145842-06c0013a5310/extractor/image/image.go:86
  - manifest unknown: manifest unknown

We didn't aware of this until diving deep into it. Writing a log would be great in this case: pulling image from ...

@Dentrax Thank you for your comment. I merged it.


add meta colmn to check results

save link to graphite in meta

Coverage decreased (-0.2%) to 96.659% when pulling bbe5e3a603ca97988fdda2055d09cf0a2184f7f7 on feature/meta-column-in-result-table into f6c5acea011f5df333cd23e6e920e991fb38d756 on develop.


An possible improvement

In the querying operation have the option of the k-NN of the same class as the query_data.
An option that allow you execute the querying operation over the same data (query_data = data) avoiding calculating distances between them selfs (distance = 0).

This will be of great help finding target neighbors in LMNN (large margin nearest neighbors).

I'm not sure quite what you mean in suggestion one -- can you explain a little further?
For option two there used to be an option that tried to detect passing in the training data as query data and just returned the neighbor graph -- we could instead initialize with the neighbor graph. Would that suffice, or did you have more complex plans in mind?

Let me explain myself. Currently i'm working with the Large Margin Nearest Neighbor (LMNN), the algorithm needs to compute a priori the k nearest neighbors with the same class label of each sample input, as determined by Euclidean distance. I'm currently trying to improve this step with NN-Descent.
it would be necessary a function with the training data and class label as inputs and return the k nearest neighbors with the same class label of each sample input in the training data (avoiding calculating the distance of each sample input from itself of course, e.g., Distance(x_i,x_j)==0 where x_i == x_j).

Ah, I see what you want to do now. It isn't so obvious how to integrate that into the code in a way that wouldn't be a very special case handling. It would likely be easier to simply split the training (and test) data by label and have n_classes many indices, and simply query in the index corresponding to the label of the query point.

Well, yes. But doing that only fix half of the problem. The function will still compute the distance of each sample from itself. I mean, i could look for the k+1 nearest neighbors and in some weird cases i have notice that the distances are not always sorted (the distance of the sample x_i from x_i is not the first in the vector). This would imply extra work from the user.
Also i was thinking in a function that could compute the k most represantive data points of each class, i mean the k-samples that most minimize the distance with the other data points of the same class. It could be interesting.

I would be happy to see a pull request to implement such a thing, but given that a user can work around these issues on their end I don't see this as a high enough priority feature for me to spend time implementing it myself.

Adding my 2 cents here since I had to handle a similar problem. Suppose you build a KNN index on a set of points data as follows:
index_knn = NNDescent(data, **params)

The nearest neighbors of data can be accessed from the KNN index as follows:
nn_indices = index_knn._neighbor_graph[0]
nn_distances = index_knn._neighbor_graph[1]

Each row of nn_indices and nn_distances has an entry corresponding to the point itself, which we want to remove. Ideally, we would expect that nn_indices[i, 0] == i and that nn_distances[i, 0] = 0. However, if the data has some overlapping points this may not be true. Hence, without any assumptions,  I wrote this little function that removes the "self neighbor" entries from nn_indices and nn_distances. It is  numba compiled to be fast.
import numpy as np
from numba import njit, float64, int64
from numba.types import Tuple

@njit(Tuple((int64[:, :], float64[:, :]))(int64[:, :], float64[:, :]))
def remove_self_neighbors(index_neighbors_, distance_neighbors_):
    """
    Given the index and distances of k nearest neighbors of a list of query points, remove points from their
    own neighbor list.
    :param index_neighbors_: numpy array of the index of `k` neighbors for a list of points. Has shape `(n, k)`,
                             where `n` is the number of query points.
    :param distance_neighbors_: numpy array of the distance of `k` neighbors for a list of points.
                                Also has shape `(n, k)`.
    :return: (index_neighbors, distance_neighbors), where each of them has shape `(n, k - 1)`.
    """
    n, k = index_neighbors_.shape
    index_neighbors = np.zeros((n, k - 1), dtype=index_neighbors_.dtype)
    distance_neighbors = np.zeros((n, k - 1), dtype=distance_neighbors_.dtype)
    for i in range(n):
        j1 = j2 = 0
        while j1 < (k - 1) and j2 < k:
            if index_neighbors_[i, j2] != i:
                index_neighbors[i, j1] = index_neighbors_[i, j2]
                distance_neighbors[i, j1] = distance_neighbors_[i, j2]
                j1 += 1

            j2 += 1

    return index_neighbors, distance_neighbors

Query the k + 1 nearest neighbors of points in data and then call the above function as follows:
nn_indices = index_knn._neighbor_graph[0]
nn_distances = index_knn._neighbor_graph[1]
nn_indices, nn_distances = remove_self_neighbors(nn_indices[:, :(k + 1)], nn_distances[:, :(k + 1)])

Hope this helps!

@lmcinnes Is it correct to assume that the output of the query method of NNDescent returns the neighbors sorted by increasing distance to the query point? Thanks.

Technically you can make that assumption, but in some cases, like mine, i have some points that overlap and appear in first place, instead of the main point. So, the position or even the existence in the vector of the measured point can not be assume if you have several overlapping point.


Or in filters

There is no example in the doc for a request like that :
select Movie {
  title
} filter
  .title like 'The %'
  or
  .actors.name = 'Scarlett Johansson';

Is it implemented ? I can add it to the docs if you give me a code example of that
Source : Edge DB Tutorial

Thanks,
Indeed it's very similar. But how would you do a and in the same or, like this for example ?
select Gpu
        filter .is_using = false
        and
            (.current_user = 'dato' and .last_ending_time < datetime_current())
            or
            (.current_user = 'human' and .last_seen_usage < datetime_current() - <duration>'01:00:00')
        and .memory_used < 250

Thank you for your interest in the project and the good use cases.
Unfortunately, I found two bugs while trying to build your request.

Rendering a function call without arguments caused an error. I fixed this in PR #90.
Brackets around or operators are not placed correctly. I found a way to build your request without breaking all the other tests. To do this, you need to swap the precedence of or and and operations here. I'm not sure this is the right solution and should be done this way. At the very least, such a solution contradicts the EdgeDB documentation. Therefore, I will take some time to dig into the issue more thoroughly.
If you make the corresponding changes, it will be possible to build your query as follows:

def test_issue_87_3() -> None:
    gpu = EdgeDBModel('Gpu')

    query = (
        gpu
        .select(gpu.c.name)
        .where(gpu.c.is_using is False)
        .where(
            (gpu.c.current_user == 'dato')
            & (gpu.c.last_ending_time < func.std.datetime_current())
            |
            (gpu.c.current_user == 'human')
            & (gpu.c.last_seen_usage < func.std.datetime_current() - timedelta(hours=1)),
        )
        .where(gpu.c.memory_used < types.int16(250))
        .build()
    )
    assert query.query == (
        'select Gpu { name } '
        'filter .is_using = <bool>$filter_0 '
        'and (.current_user = <str>$filter_1 and .last_ending_time < datetime_current()) '
        'or (.current_user = <str>$filter_2 and .last_seen_usage < datetime_current() - <duration>$filter_3) '
        'and .memory_used < <int16>$filter_4'
    )
    assert query.context == FrozenDict(
        filter_0=False,
        filter_1='dato',
        filter_2='human',
        filter_3=timedelta(seconds=3600),
        filter_4=250,
    )

@jgcb00 I'm dig into second case a bit more.
filter
.is_using = false
and (.current_user = 'dato' and .last_ending_time < datetime_current()) or (.current_user = 'human' and .last_seen_usage < datetime_current() - <duration>'01:00:00')
        and .memory_used < 250

seems like your predicates could be written in more simple and abstract way like this:
filter A and (B and C) or (D and E) and F
where
A := .is_using = false
B := .current_user = 'dato'
C := .last_ending_time < datetime_current()
D := .current_user = 'human'
E := .last_seen_usage < datetime_current() - <duration>'01:00:00'
F := .memory_used < 250

We can verify that expressions with parentheses and without parentheses are equivalent as follows:
import itertools

def evaluate_expressions(a, b, c, d, e, f):
    expression1 = a and b and c or d and e and f
    expression2 = a and (b and c) or (d and e) and f
    return expression1, expression2

for a, b, c, d, e, f in itertools.product([False, True], repeat=6):
    expr1, expr2 = evaluate_expressions(a, b, c, d, e, f)
    if expr1 != expr2:
        print(expr1, expr2)
        break
else:
    print('ok')

I haven't checked in EdgeQL, but apparently the same logic for placing parentheses applies there too.
So, I think that the fact that parentheses are not being displayed in your expression is more like a feature than a bug.


Why it does not remember window size position?

Windows Terminal version
No response
Windows build number
No response
Other Software
No response
Steps to reproduce
Open terminal. Resize to new position. Close telegram. Open new telegram.
Expected Behavior
No response
Actual Behavior
Position is default. It is not good.

Seems this issue is tracked in #9800 and #12633

Yea this sounds exactly like /dup #12633 to me.


appRoot does not work correctly

When setting appRoot to styleguide  all these paths are returned as 404's:
http://localhost:9090/styleguide/styleguide/styleguide/js/vendor.js
http://localhost:9090/styleguide/styleguide/styleguide/js/app.js
http://localhost:9090/styleguide/styleguide/styleguide_at_rules.css
http://localhost:9090/styleguide/styleguide/styleguide-app.css
http://localhost:9090/styleguide/styleguide/styleguide/assets/img/favicon.ico

It would seem as though there is some sort of strange recursion happening somewhere...
My HapiJS config is as below:
server.route({
      method: 'GET',
      path: '/styleguide/{param*}',
      config: { auth: 'simple' },
      handler: {
        directory: {
          path: 'styleguide'
        }
      }
    });

I guess path: '/styleguide/{param*}', and path: 'styleguide' parameters concat. However this is just my guess, I never used HapiJS.

Correct

From what I can see, when you set the appRoot, it sets in the index.html file the header's  base tag's href attr to the appRoot value and adds the appRoot value to the relative path for all the script and style tags.  That is why you get two of the "styleguide" in the path for css and js files.
It seems to be that the path set on the style and script tags should always have relative paths (they are absolute paths by default).  If I set the appRoot config, then it should only change the base tag in the index.html header.  The default value for the base tag href = '/'.  It seems that should be blank by default also.

I had the same issue when I specify appRoot in gulp configuration.
To make it work for now until we get the final solution I am doing given below steps.
Step 1
Generate styleguide using given below configuration.
var gulp = require('gulp');
var styleguide = require('sc5-styleguide');
var less = require('gulp-less');
var outputPath = 'styleguide';

gulp.task('styleguide:generate',
  function()
  {
    return gulp.src([
        'overview.less',
        'presets/*.less',
        'variables/*.less',
        'mixins/*.less',
        'base/*.less',
        'commons/*.less'
      ])
      .pipe(styleguide.generate(
      {
        title: 'cBanker Modern Less Commons',
        overviewPath: 'README.md',
        // For Local server
        // server:true,
        // rootPath:outputPath,
        // For remote server
        appRoot: '/abc/def/styleguide',
        disableEncapsulation: true
      }))
      .pipe(gulp.dest(outputPath));
  });

gulp.task('styleguide:applystyles',
  function()
  {
    return gulp.src([
        'presets/*.less',
        'variables/*.less',
        'mixins/*.less',
        'base/*.less',
        'commons/*.less'
      ])
      .pipe(less(
      {
        errLogToConsole: true
      }))
      .pipe(styleguide.applyStyles())
      .pipe(gulp.dest(outputPath));
  });

gulp.task('watch', [
    'styleguide'
  ],
  function()
  {
    // Start watching changes and update styleguide whenever changes are detected
    // Styleguide automatically detects existing server instance
    gulp.watch([
      'overview.less',
      'README.md',
      'presets/*.less',
      'variables/*.less',
      'mixins/*.less',
      'base/*.less',
      'commons/*.less'
    ], [
      'styleguide'
    ]);
  });

gulp.task('styleguide', [
  'styleguide:generate',
  'styleguide:applystyles'
]);

Steps 2
Make sure you remove/commnet-out the base href from index.html file
<!-- base href="/abc/def/styleguide/" / -->

Steps 3
Copy the generated styleguide to your remote server directive


The drawing cache blurs the text in the text editor

On Windows and Linux, it looks like this.

Works now on Windows.

The text appears bold sometimes on Linux.

When the cache is enabled, we see this on Windows:

We have disabled the cache for now.


sysutils/nut: add support for timed shutdown with upssched

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
[x] When the request is meant for an existing plugin, I've added its name to the title.

Is your feature request related to a problem? Please describe.

I don't feel comfortable waiting to shutdown my devices until the battery of the UPS is low, because it leaves me without a properly working UPS when multiple outages occur before the batteries are charged again.
My setup is too complex to wait for LB / FSD to be triggered on the master for all clients at the same time, because the clients need to power down in a certain order. I achieve this by configuring upssched on the clients accordingly.
If I configure upssched on the clients to trigger a timed shutdown, I need to make sure the UPS is shutdown even if the power comes back before LB is reached, to assure everything comes back up automatically again (having 'ondelay' and 'offdelay' configured properly for the UPS and 'restore power on AC return' for the clients).

Describe the solution you'd like

Add NOTIFYFLAG [...] EXEC lines for ONLINE, ONBATT to upsmon.conf
Add a template for upssched.conf including a shutdown timer
Add a template for /usr/local/bin/upssched-cmd accordingly
Add config options for the shutdown timer to the WebUI ('enabled' and 'delay in seconds')

Describe alternatives you've considered
Configure it via CLI (does not survive updates).
Additional context
NUT Configuration Examples by Roger Price
I've got this running with a Raspberry Pi as master and I'll be happy to help working on a PR for OPNsense if it has a chance to get merged.

+1
The only reason I use net client instead of standalone on OPNsense is the lack of a timed shutdown option in the UI.


fixes import deepspeed and logger.warning (otherwise it will block ot…

…her logging messages to appear)
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)
[x] Did you read the contributor guideline?
[ ] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

What does this PR do?
Fixes import deepspeed and logger.warning (otherwise it will block other logging messages to appear)
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

Ah, we did fix this in a concurrent PR before seeing this one, but thank you! Will close this out since it's fixed in master already.


Always 'CLEAN_ALL' the folder named by 'bigbench' regardless of specified folder

Hi,
I firstly try to change the default name from 'bigbench' to 'bigbench_new' in conf/userSettings.conf like below:
export BIG_BENCH_DEFAULT_DATABASE="bigbenchORC_new"
export BIG_BENCH_HDFS_RELATIVE_INIT_DATA_DIR="benchmarks/bigbench_new/data"
export BIG_BENCH_HDFS_RELATIVE_REFRESH_DATA_DIR="benchmarks/bigbench_new/data_refresh"
export BIG_BENCH_HDFS_RELATIVE_QUERY_RESULT_DIR="benchmarks/bigbench_new/queryResults"
export BIG_BENCH_HDFS_RELATIVE_TEMP_DIR="benchmarks/bigbench_new/temp"
And then run "./bin/bigBench runBenchmark -e hive -i CLEAN_ALL  -b" , found currently BB always deletes the 'bigbench' folder(expected to 'bigbench_new' instead of 'bigbench') on HDFS like below a part snippet of logs on console:
cleaning /user/root/benchmarks/bigbench
Deleted /user/root/benchmarks/bigbench
BigBench clean all                                      finished. Time:          0h:00m:12s:265ms

Hi @jameszhouyi,
Good catch! Thanks for the report. I fixed it by adding two more variables to userSettings.conf, BIG_BENCH_HDFS_RELATIVE_HOME and BIG_BENCH_HDFS_ABSOLUTE_HOME, which correctly set the directories the way you want it to.
Best regards,
Manuel


Improve easyReflectometryLib based on the custom model design

Closing as this is the same as https://github.com/easyScience/easyReflectometryLib/issues/14


Fix #5184, ensure Typescript developer experience doesn't influence user experience

Related PRs and Issues

#5184
#5151

@kibertoad please have all tests run and if they pass I'll update description and convert from draft for review!

@code-ape integration tests got nuked somehow

@kibertoad it's because I'm an outside contributor and changed that CI file. I think there should be some way for you to "approve and run it"?

Coverage remained the same at 92.233% when pulling f98a5f8d58f8c3903130a42ac264a92ec5841c6c on code-ape:I-5184/move-auto-ts-build-to-husky into a4df3e35403756615f297ef75ac1d998035d65e6 on knex:master.

@code-ape I think restriction only applies to first-time committers, CI should kick-in automatically for you.

@kibertoad and @OlivierCavadenti, draft status removed, description updated to describe all changes, and all CI tests passing. Handing it off to you to do as you will 😄


Feature Request: Missing advertising data part while scanning on android

Prerequisites

[X] I am running the latest version
[X] I checked the documentation and found no answer
[X] I checked to make sure that this issue has not already been filed

Current Behavior
Scanning for Advertisings:
On Android currently only scan response data is returned from startDeviceScan() - see settings below -
Example for our specific device sending out following data:
Manufacturer Data Struct within Default Advertising Data:
04:A4:00:8C:21:0E:B9
Another Manufacturer Data Struct within Scan Response Data: A4:04:01:CD:09:47:A8:0C:E9:6F:FF:FF:F7:FF:FF.FE:01:01:23:4D:14:DC:01:80:07:AC:90:3E:19
But all (!) Scan Result Events are only including the data of the scan response, but not the data of the default advertising data packet.
On iOS we are getting a combined packet, including bot data parts, like this:
04:A4:00:8C:21:0E:B9****01:CD:09:47:A8:0C:E9:6F:FF:FF:F7:FF:FF.FE:01:01:23:4D:14:DC:01:80:07:AC:90:3E:19
This is a bit in a strange format (because it strips A4:04 when appending to first data packet), but i works for us.
Here is how i called
startDeviceScan(
null,
{ callbackType: ScanCallbackType.AllMatches, scanMode: ScanMode.LowLatency, allowDuplicates: true },
(error: BleError | null, scannedDevice: Device | null) => {
if (error) {
console.error(error);
return;
}
if (!scannedDevice) return;
console.log(scannedDevice);
}
);
New behavior
Could you please also implement to provide advertising data (not only scan response) for android?
For us it would also be sufficient in a first step, if you provide rawBytes data
byte[] | getBytes() Returns raw bytes of scan record. (https://developer.android.com/reference/android/bluetooth/le/ScanRecord)
Breaking changes
Does a feature breaks compatibility with previous version?
-> No, if you provide differnent data (advertising + scan response) in multiple scanresult events within "manufacturerData" property.
-> Also no, if you provide another optional property in scan events (for example "rawData") for providing raw bytes
Really appreciate your work! Thanks in advance.

Hey you found anyway to go around this, I also need advertising data and it's currenlty null on android. Also looks like support is slow around here

I also encountered the same problem. Why not give priority to such an important problem?


Way more frame Drops compared to alternatives

Hello,
Thank you for providing this package.
I have tried using it for one of my projects but unfortunately compared other video players like react-native-video I experience constantly frame drops with this package as a player.
I tried playing around with the settings a bit even though it seems like leaving everything on auto is the best I did not manage to improve this.
So basically with react-native-video I am not dropping any frames with the same devices / internet setup but with this package it is more a picture gallery.
Thank you for the work and I am happy to provide more info if needed.
Edit: Lowering the bitrate on streamer side does not change this.
Also AWS IVS sees no issue.

Hi @floelm,
Thanks for the feedback!
Just to confirm, are you using this SDK to play IVS streams (i.e. is your streamUrl an IVS URL)? We have not tested it against third-party content.
Also, can you please try playing an IVS test stream and see if you still experience a lot of frame drops? This issue could be related to the content you are playing.
Thanks

Hi @maxstoller,
Yes I am using this SDK to view my own IVS stream. No third party content.
I tried your test streams and they are also "dropping frames". I am putting this here into quotation marks because I cannot actually tell if it is dropped frames or just lagging?! I am right now on Android which does not provide the dropped frames data via the Callback. I tried the 1080, 720 and vertical test stream. Basically the video stutters and then skips to the latest part. I assume that is the definition of dropped frames :D
Some other things that could matter:

Platform Android as mentioned
latest version of this package (0.2.8)
react-native 0.64.0

Thanks. Do you see this same issue when using the example Android app provided in the repo?
If so, can you please post debug logs? You can turn on debug logging using the logLevel prop.
Can you also share a screen recording so we can see what's happening?

Hey,
short update:
I did not have the time yet to check out the example app in the repo but it seems to be an issue that only occurs on Emulator for me. I had the chance now to get it with two real devices and everything worked fine :)

Great to hear, thanks for the update.

@floelm Any additional concerns on your end for this issue? If not I'll close this out 👍

No concerns right now, closing it!


check for new releases on github, and log a warn if update is possible

📝 Summary

checks for new releases on github, and log a warn if update is possible
can be disabled with setting env var DISABLE_NEW_RELEASE_CHECK=1
default check time: at startup and every 2 hours
timeout can be configured with NEW_RELEASE_CHECK_INTERVAL_H

⛱ Motivation and Context
mev-boost users should get notified if new releases are available

✅ I have run these commands

[x] make lint
[x] make test-race
[x] go mod tidy

Codecov Report

Merging #329 (d4bff8d) into main (97207c6) will decrease coverage by 1.16%.
The diff coverage is 57.57%.

:exclamation: Current head d4bff8d differs from pull request most recent head 75a0bce. Consider uploading reports for the commit 75a0bce to get more accurate results

@@            Coverage Diff             @@
##             main     #329      +/-   ##
==========================================
- Coverage   82.14%   80.97%   -1.17%
==========================================
  Files           5        5
  Lines         661      694      +33
==========================================
+ Hits          543      562      +19
- Misses         90       99       +9
- Partials       28       33       +5

Flag
Coverage Δ

unittests
80.97% <57.57%> (-1.17%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

server/utils.go
68.88% <57.14%> (-3.58%)
:arrow_down:

server/service.go
80.04% <58.33%> (-0.67%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

I like the idea but I'm not sure how useful it would be in practice. The type of person that this caters to probably isn't the type of person that regularly checks their mev-boost logs, only when something isn't working properly.

closing this for now. may be worth reconsidering with an opt-in flag


Change Copy Method, Support Graphics copying, new folder structure

Pick and choose what you want to add. I think my improvements are a step forward.
When using the .SetPosition() function on zones, it didnt appear to work, so I used .Move()
For anyone wanting a zip:
dev.zip

Thanks for looking into these problems, proposing all these improvements, and including more examples!

No problem! #11 Has been implimented if you want to mark that as complete aswell.


Error Create Config File

So, I am getting a warning run my mirror, and it boots to the Create Config page.  I was told to deconstruct my config, which I did.  I figured out I get this error because of my calendar link.  I am using and icloud calendar and cannot figure out the problem to this.  Thanks!  Link to my troubleshooting on the Forum w/ my config file: https://forum.magicmirror.builders/topic/2516/trouble-with-config-file-error-create-config-file/9

Please only submit reproducible issues. For other issues, please use the support forums. Thanks!
I'm closing this issue for now. If you feel this issue should remain open, please let me know.


https://github.com/zzgang/kconnp/wiki/LCP(Linux-Connection-Pool)-document

helpful?

is it a kernel module?

yes


I added my name

I added my name, "Okereke Oscar"

sorry, pls can you update your code

Please I am sorry for all the trouble we have caused you but count it all joy. Your PR is about to be merged and you will be able to see your name on this url.
To enable me to do this, READ the README again carefully, update your code with the latest and push the update. I am here for you for the next 6 hours before I close the PR so you can initiate a fresh PR which will be easier to merge.

Sorry I have to close this PR, kindly update your code and initiate a fresh PR
Cheers 🥂


MAINT - Miscellaneous maintenance tasks

:fire: Remove RFD template
:wrench: Update pre-commit config
:arrow_up: Upgrade actions versions

Multiple maintenance updates needed
Note that since I updated the pre-commit config I ran it through all the files so it would be best to review the changes at 932cd18 (#1580) to prevent having too many changed files noise

I am not sure 🤷🏽 I only updated the pre-commit hooks so it makes me believe the previous versions were not catching some issues or maybe since the pre-commits are run on CI the last time those md files were  worked on they were not formatted? who knows?


Opening the same file twice

This is probably not a bug, since I am using the NerdTREE for the first time so maybe I am doing it wrong, but anyway...
I open one file, do some changes that I don't save; then I open another file in the tree and then I want to switch back to the original file by selecting it again in the tree (not by :b#)
It does change me back into the file, but vim shows me this error:
Error detected while processing function <SNR>12_KeyMap_Invoke..32..31..<SNR>12_activateFileNode..56..75..118..119..136:
line    1:
E37: No write since last change (add ! to override)
Press ENTER or type command to continue

Merging this bug report with #128 and closing this off.


Nested keys don't work as expected

Hi,
Here's a simple example that I expected to work:
import { plainToClass, Expose } from 'class-transformer';

let personObj = {
    first_name: 'Joseph',
    last_name: 'Maxwell',
    aka: {
        nick_name: 'Joe'
    }
}

export class Person {
    @Expose({ name: 'first_name' })
    firstname: string;

    @Expose({ name: 'last_name' })
    lastname: string;

    @Expose({ name: 'aka.nick_name' })
    nickname: string;
}

let person: Person = plainToClass(Person, personObj);

person.firstname = 'Joseph'    :heavy_check_mark:
person.lastname = 'Maxwell'    :heavy_check_mark:
person.nickname = undefined    :x: // Why? I want the value in personObj.aka.nick_name
person.aka.nick_name = 'Joe'  :x: // Why is this here?
What am I doing wrong?

@TheSamsterZA any luck with this? Same problem

Hi @pleerock, is this supported? Thanks!

@TheSamsterZA any luck with this? Same problem

@oferRounds Nope, I ended up dropping class-transformer and manually wiring up what I needed. Would absolutely love for this to be fixed! I hope @pleerock sees this and at least responds so we know if the scenario is supported or not.

@TheSamsterZA – yes! thanks for this response!

Nested objects are not supported in @Expose there was a conversation about it, I have added a tracking issue #195. You can track it there.


[SPARK-40152][SQL] Fix split_part codegen compilation issue

What changes were proposed in this pull request?
Fix split_part codegen compilation issue:
SELECT split_part(str, delimiter, partNum) FROM VALUES ('11.12.13', '.', 3) AS v1(str, delimiter, partNum);

org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 42, Column 1: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 42, Column 1: Expression "project_isNull_0 = false" is not a type

Why are the changes needed?
Fix bug.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Unit test.

Merged to master/3.3

https://github.com/databricks/runtime/pull/36671 forgot to add new unit tests for ElementAt when adding a new parameter, and that's why this bug was not found... @wangyum can you help to add new unit tests in CollectionExpressionsSuite?

OK.


Target drive selection error

If I write the new Trident-x64-TOS-19.07-20190710 installer .iso for an DVD than the installer can't find  my HDD and my SSD, when I have to choose the target drives (after the time zone and hostname) or the target partitions of the new system the list is empty. This error already was earlier and solved.
Now if I open a terminal (from the installer) to  partitioning and I'm exiting from this terminal than the  "Installation is ready - Reboot or Live CD"  blue screen come up again.
If I write the installer .iso for an USB key with dd command (block size 1M) than I can choose the target drives and I can make a fresh install, but in the newly installed system all the keyboard layout are empty,I can use my keyboard only with the default US layout.
Interesting the two different behavior of the intaller .iso (in the case of DVD or USB key) maybe the block size can cause this, I will try to write with different block sizes.

At the new Trident-x64-TOS-12-U2-20190808.iso if I start the installer from USB key (.iso) in legacy BIOS mode and in UEFI BIOS mode than the available drives are visible and they are optional for first.
If I start the installer from DVD (.iso)  in legacy BIOS mode and in UEFI BIOS mode than the target drive selection field (second step in the graphical installer) is empty for first. If I shift between the first step and the second step few times,  just than the drives will be visible and optional.

Closing issue.
With the switch to Void Linux going forward, these issues with device detection are changing or vanishing completely with the new installer backend.


core: remove *c from some response code

Allow freeing client response objects without the client object. Clean some confusing logic around clearing memory. Also exposes an interface for allocating unlinked response objects.
Mostly trivial patch that just changes more *c->thread to *t, but also removes a difficult to read memset and cleans the code a bit. Easy to verify.

On reviewing a third time; I am tempted to golf this code shorter but will resist so I don't potentially add bugs right now.
It's certainly more clear than it was and it will be much easier to run a bunch of C unit tests against it if it's not pulling in the connection object.


MySQL: findMany with null relational where clause generating incorrect query

Bug description
Attempting to use the where field on findMany with a null relational value is generating an incorrect query, resulting in zero rows.
Running this query with the schema defined below:
const user: string = "some-user"
const group: string | undefined = undefined;

db.transactionCategory.findMany({
  where: {
    user: user,
    categoryGroup: group ? { group } : null, // or group ? { group} : { is: null } -> same result
  },
  include: {
    categoryGroup: true,
    transaction: {
      include: {
        flags: true,
        account: true,
      },
    },
  },
})

Results in this query:
SELECT
	`orange-heart`.`TransactionCategory`.`id`,
	`orange-heart`.`TransactionCategory`.`category`,
	`orange-heart`.`TransactionCategory`.`outflow`,
	`orange-heart`.`TransactionCategory`.`inflow`,
	`orange-heart`.`TransactionCategory`.`memo`,
	`orange-heart`.`TransactionCategory`.`user`,
	`orange-heart`.`TransactionCategory`.`transactionId`,
	`orange-heart`.`TransactionCategory`.`createdAt`
FROM `orange-heart`.`TransactionCategory`
WHERE (
	`orange-heart`.`TransactionCategory`.`user` = ? AND
	`orange-heart`.`TransactionCategory`.`category` IS NULL
)

This query is adding TransactionCategory.category IS NULL to the where clause, when it should be joining TransactionCategory.category = CategoryGroup.category and adding a WHERE clause on the category group.
The same issue is occurring the count when trying to filter on the same relational null value, and occurs whether you use categoryGroup: null or categoryGroup: { is: null } in the where clause.
If you set const group: string | undefined = "some group value";, the query is instead:
SELECT
	`orange-heart`.`TransactionCategory`.`id`,
	`orange-heart`.`TransactionCategory`.`category`,
	`orange-heart`.`TransactionCategory`.`outflow`,
	`orange-heart`.`TransactionCategory`.`inflow`,
	`orange-heart`.`TransactionCategory`.`memo`,
	`orange-heart`.`TransactionCategory`.`user`,
	`orange-heart`.`TransactionCategory`.`transactionId`,
	`orange-heart`.`TransactionCategory`.`createdAt`
FROM `orange-heart`.`TransactionCategory`
WHERE (
	`orange-heart`.`TransactionCategory`.`user` = ? AND
	(`orange-heart`.`TransactionCategory`.`id`) IN (
        SELECT `t0`.`id` FROM `orange-heart`.`TransactionCategory` AS `t0`
        INNER JOIN `orange-heart`.`CategoryGroup` AS `j0`
        ON (`j0`.`category`) = (`t0`.`category`)
        WHERE (`j0`.`group` = ? AND `t0`.`id` IS NOT NULL)
	)
)

Which looks more proper, and does return the appropriate results.
How to reproduce

Define a model with an optional relation

model TransactionCategory {
  id            String        @id @default(uuid())
  category      String
  categoryGroup CategoryGroup? @relation(fields: [category], references: [category])
}

model CategoryGroup {
  id            String        @id @default(uuid())
  category      String
  group      String
  transactionCategories TransactionCategory[]
}

Populate db with data
Run a transactionCategory.findMany query with prisma using where: { categoryGroup: null }
The results will be empty, even if there rows in the TransactionCategory table that have no related CategoryGroup row.

Expected behavior
When a where clause defines someRelation: null or someRelation: { is: null } on a model that has an optional relation, the resulting query should return results where someRelation = null in the underlying data.
Prisma information
Schema:
generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["referentialIntegrity"]
}

datasource db {
  provider             = "mysql"
  url                  = env("DATABASE_URL")
  referentialIntegrity = "prisma"
}

model Account {
  id           String        @id @default(uuid())
  name         String
  user         String
  createdAt    DateTime      @default(now())
  transactions Transaction[]

  @@unique([user, id])
  @@unique([user, name])
}

model Transaction {
  id        String   @id @default(uuid())
  user      String
  payee     String
  date      DateTime
  createdAt DateTime @default(now())

  accountId             String
  account               Account               @relation(fields: [accountId], references: [id],  onDelete: Cascade)
  transactionCategories TransactionCategory[]
  flags                 Flag[]
  @@unique([user, id])
  @@unique([user, id, accountId])
}

model Flag {
  id           String        @id @default(uuid())
  user         String
  createdAt    DateTime      @default(now())
  name         String
  color        String //Hex Code
  transactions Transaction[]

  @@unique([user, id])
  @@unique([user, name])
}

model TransactionCategory {
  id            String        @id @default(uuid())
  category      String
  outflow       Int
  inflow        Int
  memo          String
  user          String
  transactionId String
  categoryGroup CategoryGroup? @relation(fields: [category], references: [category])
  transaction   Transaction   @relation(fields: [transactionId], references: [id],  onDelete: Cascade)
  createdAt     DateTime      @default(now())

  @@unique([id, user])
  @@unique([category, transactionId])
}

model CategoryGroup {
  id        String   @id @default(uuid())
  category  String
  group     String
  user      String
  createdAt DateTime @default(now())
  transactionCategories TransactionCategory[]

  @@unique([id, user])
  @@unique([category, user])
}

model User {
  id    String  @id
  name  String?
  email String?
}

Query in code:
db.transactionCategory.findMany({
  where: {
    user: this.user,
    categoryGroup: group ? { group } : { is: null },
  },
  include: {
    categoryGroup: true,
    transaction: {
      include: {
        flags: true,
        account: true,
      },
    },
  },
}),

Debug info on generated query:
prisma:client prisma.transactionCategory.findMany({
  prisma:client   where: {
  prisma:client     user: '<snip>',
  prisma:client     categoryGroup: {
  prisma:client       is: null
  prisma:client     }
  prisma:client   },
  prisma:client   include: {
  prisma:client     categoryGroup: true,
  prisma:client     transaction: {
  prisma:client       include: {
  prisma:client         flags: true,
  prisma:client         account: true
  prisma:client       }
  prisma:client     }
  prisma:client   }
  prisma:client }) +0ms

Generated Query:
prisma:query SELECT `orange-heart`.`TransactionCategory`.`id`, `orange-heart`.`TransactionCategory`.`category`, `orange-heart`.`TransactionCategory`.`outflow`, `orange-heart`.`TransactionCategory`.`inflow`, `orange-heart`.`TransactionCategory`.`memo`, `orange-heart`.`TransactionCategory`.`user`, `orange-heart`.`TransactionCategory`.`transactionId`, `orange-heart`.`TransactionCategory`.`createdAt` FROM `orange-heart`.`TransactionCategory` WHERE (`orange-heart`.`TransactionCategory`.`user` = ? AND `orange-heart`.`TransactionCategory`.`category` IS NULL)

Environment & setup

OS: MacOS
Database: MySQL
Node.js version: v14.19.2, tried with v16.15.0 as well with same result

Prisma Version
3.14.0

Ok, this was a bit confusing, but I think I know what's going on.
If the group variable is set, we use the { group } syntax that is a short-hand for { group: group }. This is correct and checks the string value of the group field in the CategoryGroup model.
If the group variable is not set, we just see if the relation is not set, and is actually checking if the relation is NOT set. This is also correct.
What you'd want is a query that does something like { group: null }, and this one would generate a query you might be looking for. Of course then the group should be an optional field.

Hey @alexghenderson, to make this a bit more explicit, here is my try to explain what Julius discovered:
It seems that your code code means actually something different than what you expect to happen in SQL:
categoryGroup: group ? { group } : null

If group has a value "foo", this "expands" to: categoryGroup: { group: "foo" }. It should then query for CategoryGroup with group = foo via SQL - which it does per your description.
But if group has no value, this becomes categoryGroup: null instead. That is turned into the SQL query TransactionCategory.category IS NULL - which also looks correct!

If you instead change your code to look like this:
categoryGroup: group ? { group } : { group: null }

You should get different SQL. But probably you would first get a error in Prisma Client, as CategoryGroup.group in your schema is not actually allowed to contain NULL! Change that, migrate, and it could work though.
Does that make sense to you?

@alexghenderson Are you following that explanation and agree with out conclusion?
I am closing this issue now, but feel free to comment if something is still unclear or you disagree.


Bower support

Cool project. Would you consider adding bower support?
https://bower.io/docs/creating-packages/

Sorry for the late response. I'll look into it soon when I have time.
Good suggestion!


Notification glitch with someone favouriting an ended poll of mine

This is pretty edge-case.
It can be reproduced by starting a poll and then having someone favourite after it ends.

Another notification glitch triggered by user signup

@llamacucumber Can you share the HTML code of these two notifications? I don't have sign ups enabled on my instance. I have a dev environment of course, but it's easiest to hack to HTML directly.

I have now tested these on my test instance.

Are you sure you are using the latest version (1.4.7) and latest Mastodon (4.1.2)? @llamacucumber
Can't reproduce so I'm closing this issue.

<bdi>Bryan </bdi> signed up

<bdi>Bryan </bdi> @RiversideBryan1 Follower

<button type="button" aria-label="Unfollow" aria-hidden="false" title="Unfollow" class="icon-button active" tabindex="0" style="font-size: 18px; width: 23.142857px; height: 23.142857px; line-height: 18px;"> </button>

And I am using 1.4.7 and 4.1.2

This should be fixed now in 1.4.8rc1. Can you test it?


"Hide DS4 Controller" is broken on Windows 10

On Windows 10 build 10074, it seems like DS4Windows is no longer able to hide the DS4 controller. I've tried every combination of reinstalling the drivers, reinstalling DS4Windows, and restarting my computer possible, but it just doesn't seem to function.
This is using the DS4 controller plugged in to the PC, not through Bluetooth. Curiously, the controller shows up as "Wireless Controller" in the Device Manager, but that may be normal. Attempting to disable the Wireless Controller device also disables the 360 Controller device, so I'm not sure there's a way on my end to fix this.

Ah, it looks like this may be a duplicate of https://github.com/Jays2Kings/DS4Windows/issues/6 - has there been any progress on a potential fix?

Here's an Input Mapper forum thread that discusses the same issue, the users here seem to have seen the same behavior I've seen in DS4Windows - I also saw exclusive mode randomly start/stop working over the past few days since I've installed Windows 10.

Build 10074 sometimes frees the controller, however like Build 9879 it's the system grabbing the controller, and there is no fix from my end, only Microsoft's.

Hello, I'm a user of Windows 10 RTM ( build 10240 ) and here is how I could make the ds 4 work in all my games :

Launch DS4Windows in admin mode
Uncheck Hide ds4 if checked
Check Hide ds4
Launch the game
While in game, unplug the ds4 then plug it
Replug the ds4 BUT spam buttons right before you do it, I guess it's to set the priority to the 360

Some steps could be unnecessary, but this is how I managed to make it work with all my games. ( tested on dark souls 1 & 2, phantasy star online 2 and project cars )

@Jays2Kings out of curiosity I'm currently debugging The Witcher 3 which has "native" DS4 support and I'm not able to figure out how the game engine interacts with the DS4:
dinput8.dll

Doesn't use IDirectInputDevice8::GetDeviceData
Doesn't use IDirectInputDevice8::GetDeviceInfo
Doesn't use IDirectInputDevice8::GetDeviceState

HID.dll

Doesn't use HidD_GetInputReport
Doesn't use HidP_GetData
Doesn't use HidD_GetPreparsedData

Any ideas?

Success!

@nefarius will that work with DS4Windows in general? I want to get exclusive access to my DS4, but I get:

Warning: Could not open DS4 exclusively. You must quit other applications like Steam, Uplay before activating the 'Hide DS4 Controller' option.

Clearly something is hanging onto it.  Is it possible to use your HideDS4.dll to prevent the controller from being used at all (so that I can enable the exclusive mode)?

Here is what works for me:

Open the device manager.
Go to Human Interface Devices.
If you use USB, disable and enable HID-compliant game controller.
If you use BT, disable and enable Bluetooth-HID-device.

Don't restart when asked!
Hide DS4 works after that until I reconnect my controller.

@syne- You legend! That worked for me perfectly.

@syne- That worked for me as well. Just a note - the controller needs to be plugged in, otherwise the "HID-compliant game controller" won't show up. Thanks!

@syne- this worked!!
I needed to:

quit Steam & Uplay
stop DS4Windows
disable/re-enable HID-compliant game controller
start DS4Windows

and for the first time ever, exclusive mode works. THANKS!!
Controller now works perfectly in Rocket League and The Crew (those are the only 2 games I play w/ controller at the moment)

@miller-time nope, the DLL has to be loaded into every process which tries to open the DS4.

I'm back again just to ask: can this fix be implemented into the program itself?

not sure if its the same issue but you may want to try my build here
https://github.com/teokp/DS4Windows/releases
it automatically re-enables the device when exclusive mode fails

I've implemented teokp's fix for this in the newest build of DS4Windows, Thanks so much for your help, a tremendous fix.

@Jays2Kings Its great to see my commits merged into the new version, however, there is a small issue with the fix.
I recently discovered that SetupDiChangeState is recommended to only be called by the class installer of the device so I switched to use SetupDiCallClassInstaller instead. The problem is that SetupDiCallClassInstaller is platform specific for some reason, meaning that if you are using 64-bit Windows, DS4Windows must also be built in 64-bit for it to work.

Ah, I see. The thing is I don't want to split DS4Windows into multiple versions, and in non debug mode, the DS4 can at connect exclusively to usb and bluetooth regardless of CPU configuration, however if I see a true issue with this, I will split up DS4Windows I guess.

@syne- when i do this my left analog stick is not recognized and wont do anything. i know it works perfectly

Im very confusing none of this works for me. When i'm plugged the controller doesn't work correctly on Blue tooth it does. The Hide DS4 doesn't work as well. I don't understand the source foler, what am I supposed to do with it?

I tried Disabling and Enabling Bluetooth HID but do i need to do that everytime i restart my computer? i tried to restart my computer and it cant run the exclusive mode again. thanks

@syne- Your solution worked for me too!

Here is what works for me:
Open the device manager.
Go to Human Interface Devices.
If you use USB, disable and enable HID-compliant game controller.
If you use BT, disable and enable Bluetooth-HID-device.

Don't restart when asked!
Hide DS4 works after that until I reconnect my controller.

I recently had this stop working for me as well, but I found a workaround.
Nvidia's services seem to be hooking the controller even after I exit Steam, so to enable Exclusive Mode reliably, I quit Steam, then stop these services in Task Manager:
NvContainerLocalSystem
NvContainerNetworkService
NVDisplay.ContainerLocalService
NvTelemetryContainer
After restarting DS4Windows, the controller then works in Exclusive mode as expected.

@xperia64 After hours and hours of trying to get Exclusive Mode to work today I came across your post and it instantly fixed my issue. I always wondered if there was some process somewhere causing the problem, and I even suspected it might be an Nvidia program, but I was lost in the endless list of processes running on my machine. Thanks for the tip!

Came to say that the nvidia in-game overlay was a problem for me as well. I wish the DS4Windows guys could somehow get around that :(

been several years, but i still have a problem where my emulator (retroarch) recognizes a controller both as a DS4 and a xinput device. When I follow the directions here (disable/renable bt HID) retroarch only recognizes 1 input correctly, but the controls don't work. any advice?

@oarfan24 I don’t know if it will solve the issue but checkout the fork by Ryochan7 which ist still actively developed. Maybe it’s fixed in their version already or if not open an issue there.

thanks for the quick response - yeah that is the one i have - very
frustrating. i think i'll return the controllers and go with something else
at this point.
On Mon, Apr 6, 2020 at 9:51 AM syne-<EMAIL_ADDRESS>wrote:

@oarfan24 https://github.com/oarfan24 I don’t know if it will solve the
issue but checkout the fork by Ryochan7 which is still actively developed.
Maybe it’s fixed in their version already or if not open an issue there.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Jays2Kings/DS4Windows/issues/26#issuecomment-609807804,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APCPZYQXWUG7ZTN4DFK2LMTRLHM77ANCNFSM4BDYAQ5A
.

@xperia64 what is the solution for people without nvidia graphic card (Radeion rx for me)? i just want to play fifa on my pc but origin doesnt let me. i can connect my controller but the hide ds4 controller option doesnt work exclusively.

@xperia64 what is the solution for people without nvidia graphic card (Radeion rx for me)? i just want to play fifa on my pc but origin doesnt let me. i can connect my controller but the hide ds4 controller option doesnt work exclusively.

#654
This Jay2Kings/DS4Windows site is obsolete and out-dated. You should take a look at the Ryochan7/DS4Windows instead for more recent version.


Fix thread safety in DelayedFuncTask class

RunFrame() was accessing m_delayedFuncs insecurely without holding a lock on mutex.
I also changed std::mutex to std::recursive_mutex, because if a delayed func called from RunFrame() calls AddFunc() again itself, it would create a deadlock with normal mutex...

Actually now that I think about it, TTF2SDK::AddFrameTask and then removal in main frame hook is also unsafe, idk if the codebase assumes a possibility someone might add frame task from another thread, I see so far the only AddFrameTask calls are done in main thread... Should I fix it too?


fix errors in caching.md

use new CleanWebpackPlugin() instead of new CleanWebpackPlugin(['dist'])
use hash instead of contenthash

Sorry, this seems to be my fault. stackoverflow.

use new CleanWebpackPlugin() instead of new CleanWebpackPlugin(['dist'])
use hash instead of contenthash

@EugeneHlushko

Thanks!

Yup all good thx for ping @chenyinkai


Neodigm Enchanted CTA | Border visual artifact on top or bottom of buttons is a defect

There is a line either on top or bottom of the CTA buttons. It detracts from the appearance. This was introduced with the Ghost theme (border).

This is fixed in v3.0. Set border: none; when not Ghost theme.


Add more info about pylsp installer

Realy hard to find how to add packages for plugins using pip3 installer
After digging for 2 days in lsp logs and codes for pylsp I finally understood how to add pylsp_mypy and pyls_isort plugins.
lsp installed with pip3 installer seems to create a venv in the lsp_installer directory, thus not finding packages in the user system.
To install those plugins I had to source the created venv and use pip in it.
Possible solutions
In the first time, I think it would be great to add better installation instructions for lsp that uses pip3 installer and explicitly says that they use a virtual env, and how to add packages for them.
An even better solution would be to add the opportunity for the user to customize an existing server, to add additional packages to install in the venv. I don't know how this would be implemented tho, It's just an idea.
Describe alternatives you've considered
For now I had to create an entirely new server and register it in my config, just to add those missing packages automatically.
local function ensure_lsp_installed(servers)
  for _, name in pairs(servers) do
    local server_is_found, server = lsp_installer.get_server(name)
    if server_is_found then
      if not server:is_installed() then
        utils.log('warn', 'Server ' .. name .. ' not installed. Installing...')
        server:install()
      end
    end
  end
end

local custom_pylsp_name = 'pylsp-full'
local lspconfig_configs = require('lspconfig.configs')
local lspconfig_util = require('lspconfig.util')
local pip3 = require('nvim-lsp-installer.installers.pip3')
local lsp_installer_servers = require('nvim-lsp-installer.servers')
local lsp_installer_server = require('nvim-lsp-installer.server')
local root_dir = lsp_installer_server.get_server_root_path(custom_pylsp_name)
lspconfig_configs[custom_pylsp_name] = {
  default_config = {
    cmd = { 'pylsp' },
    filetypes = { 'python' },
    root_dir = function(fname)
      local root_files = {
        'pyproject.toml',
        'setup.py',
        'setup.cfg',
        'requirements.txt',
        'Pipfile',
      }
      return lspconfig_util.root_pattern(unpack(root_files))(fname) or lspconfig_util.find_git_ancestor(fname)
    end,
    single_file_support = true,
  },
}
local custom_pylsp_server = lsp_installer_server.Server:new( {
  name = custom_pylsp_name,
  root_dir = root_dir,
  installer = pip3.packages( { 'python-lsp-server[all]', 'pylsp-mypy', 'pylsp-rope', 'pyls-isort', 'pyls-flake8' } ),
  default_options = { pip3.executable(root_dir, "pylsp") },
} )
lsp_installer_servers.register(custom_pylsp_server)
local servers = { 'rust_analyzer', 'clangd', custom_pylsp_name, 'sumneko_lua', 'vimls', 'bashls', 'cmake' }
--local servers = { 'pylsp' }
ensure_lsp_installed(servers)

The code could probably be cleaner but it's more a proof of concept
If anything is unclear please tell me it's my first issue on an open-source project.

Hello! Ah I was not aware there existed auxiliary plugins for pylsp - I thought by installing python-lsp-server[all] it'd install everything.
We have some other cases where a command provided by a server installation needs to be executed, for example installing project-local TFLint plugins. I think we can take the same approach here? Instead of having users manually going to the installation directory, activating the venv, and installing their packages, I think we can provide a more accessible API for it, like a custom command:
:PylspInstall pylsp-mypy pylsp-rope pyls-isort pyls-flake8

Wdyt?

Yes I think it would make things way easier.
I'm not very confident with nvim for now but I could try to replicate the work done for TFLint.
Should I close the PR and create a new one or rewrite the current I have done ?

I think we can keep the same branch and PR. I use "squash merge commits" in this repository, meaning that when we merge a PR it will be squashed into a single commit with a message that defaults to the PR title - so the commit history in a feature branch doesn't matter too much at the end of the day :).
I believe we should be able to copy most of the stuff done in TFLint, with some small modifications:
{
  PylspInstall = function (...)
    proess.spawn(pip3.executable(root_dir, "pip"), {
      args = { "install", "-U", ... },
      stdio_sink = process.simple_sink(),
    }, function (success) ... end)
  end
}

The ... is the "vararg" syntax for Lua, I believe it can be used like in the example above. Otherwise vim.list_extend({ "install", "-U" }, ...) might be needed

I realized this approach might be a bit annoying when upgrading pylsp though, as upgrading will wipe the existing installation and replace it with the new (you'd have to then run :PylspInstall again). I think it's a fine trade-off for now :+1:, but we might want to consider making this more persistent somehow (maybe through a new setting item).

It seems to be a little bit harder than expected as whenever I want to add arguments to the command I get
E488 Trailing characters
It might be an lspconfig issue as I went through all supported lsp and didn't found any command which seems to have arguments.
for now I just came to
PylspInstall = {
    function (...)
        local plugins = table.pack(...)
        process.spawn(
            pip3.executable(root_dir, "pip"),
            {
                args = vim.list_extend({ "install", "-U", "--disable-pip-version-check" }, plugins),
                stdio_sink = process.simple_sink(),
            },
            vim.schedule_wrap(function(success)
                if success then
                    notify(string.format("Successfully installed %q plugins.", table.concat(plugins, ",")))
                else
                    notify "Failed to install requested plugins."
                end
            end)
        )
    end,
    description = "Install listed modules in the env of Pylsp.",
},

which doesn't add much from your given exemple

Hmm this could be due to how lspconfig sets up these commands. Previously I did a quick look through lspconfig source and saw this line with (<f-args>) so I assumed they'd allow it.
Looking at the code it seems like we have to enable those flags command! flags ourselves. I believe either of the following ought to do it:
PylspInstall = {
  function () ... end,
  "-nargs=+"
}
-- or
PylspInstall = {
  function () ... end,
  ["nargs=+"] = true
}

I have added the command in the PR, and fixed the associated documentation.
There is still the question of the management of stdout and stderr to check but the command works.
I also fixed the coding style issue and used stylua locally.


fixed not working .claspignore

Fixes #587

Can you give a brief example of what files this matches for?
ignoreMatches.includes(name.replace(/\//, '\\'))

I'm sorry, I just found my fix is not necessary anymore.
In version 2.0.0 using clasp under windows 10 compared the
ignorematches: path/to/file
with the name: path\to\file
Can you here mark 2.1.0 as latest release ?
This lead me into thinking there would be no more current version than 2.0.0

Sure thing! @grant do you want to mark minor versions as releases?
https://github.com/google/clasp/releases/new?tag=2.1.0

That sounds fine @campionfellin. You should have the ability to create the tag.
You can ping @erickoledadevrel rather than me for publishing since I'm now working on Google. Instructions should be in the docs/


Add toilet details

Adding toilet (aka "Restrooms" or "WC") details (see https://wiki.openstreetmap.org/wiki/Key:toilets?uselang=en-US) might be useful to some users.
This can be placed under "Services & Information" details.
Test case (includes toilets, toilets:access, toilets:position details):
<EMAIL_ADDRESS>https://www.openstreetmap.org/way/521973195/#map=18/-6.1730521/106.7847367

Qwant maps gets it's data from OpenStreetMap. OpenStreetMap is basically a huge collection of metadata about places all around the world. If you want to improve the map easily, you can take a look at StreetComplete, an app for Android which allows you to contribute to OpenStreetMap without any hassle :)

If you want to improve the map easily, you can take a look at StreetComplete, an app for Android which allows you to contribute to OpenStreetMap without any hassle :)

Already added things to https://www.openstreetmap.org/way/521973195/#map=18/-6.1730521/106.7847367 in 2019 and the toilet details are still not showing up in<EMAIL_ADDRESS>

Oh sorry, I didn't know that.
Okay so I can create implement this feature if that's okay with the devs. @remi-dupre you seem to be the active maintainer for this project


Only one process should calculate aggregated stats

#24

Coverage decreased (-0.1%) to 98.442% when pulling 201fcccbcdff48582b74d6ca050cf223a25739c5 on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.

Coverage decreased (-0.1%) to 98.452% when pulling d7b28a5dff6adbff16787f7cfeedde1af661304d on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.

Coverage increased (+0.04%) to 98.596% when pulling 870db6c0dc055db3eec365a6ace71eaba7484c49 on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.

Coverage increased (+0.04%) to 98.596% when pulling bd5e025a410a24f19c215748f831be232c6c30de on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.

Coverage increased (+0.04%) to 98.596% when pulling bd5e025a410a24f19c215748f831be232c6c30de on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.

Coverage increased (+0.04%) to 98.596% when pulling bd5e025a410a24f19c215748f831be232c6c30de on bugfix/only-one-aggregator into 81071135e94034d75d9dfab0f6e197352d8be1cc on 1.0-dev.


Changing the default cron process to do partial indexes if admin config ...

...flag is set
I love this module. I have been using it since my site get's  a ton of traffic and I have been steadily working my way through various locks I experience on the DB.
My first index run is at 10am in the morning, and 3/5 times I'll get a lock when this index runs - it will also take ages, sometimes up to an hour.
I tested the partial index by running the shell, and this seems to run way more efficient, and worked this into the module to be run with the cron if the admin config flag is set.

what advantage has the new method against unprocessed_events_index?
it currently already allows to do a partial reindex, it even allows to limit the number of indexed events to reduce locking problems.

thx for changing the naming, more understandable now.
Dont know why the new one causes this locks, but if it solves it for you, it is maybe helpfully for others too.
:+1:


tuningConfig.jobProperties not passed to hadoop

While upgrading from 0.9.1 to 0.10.1, we noticed that the segment reindexing tasks are failing with the following exception:
Caused by: java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3n URL, or by setting the fs.s3n.awsAccessKeyId or fs.s3n.awsSecretAccessKey properties (respectively).
	at org.apache.hadoop.fs.s3.S3Credentials.initialize(S3Credentials.java:70) ~[?:?]
	at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.initialize(Jets3tNativeFileSystemStore.java:80) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:191) ~[?:?]
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) ~[?:?]
	at org.apache.hadoop.fs.s3native.$Proxy209.initialize(Unknown Source) ~[?:?]
	at org.apache.hadoop.fs.s3native.NativeS3FileSystem.initialize(NativeS3FileSystem.java:334) ~[?:?]
	at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669) ~[?:?]
	at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94) ~[?:?]
	at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703) ~[?:?]
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685) ~[?:?]
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373) ~[?:?]
	at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) ~[?:?]
	at io.druid.indexer.hadoop.DatasourceInputFormat$3$1.listStatus(DatasourceInputFormat.java:173) ~[?:?]
	at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315) ~[?:?]
	at io.druid.indexer.hadoop.DatasourceInputFormat.lambda$getLocations$1(DatasourceInputFormat.java:213) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[?:1.8.0_131]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_131]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_131]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_131]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_131]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_131]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_131]
	at io.druid.indexer.hadoop.DatasourceInputFormat.getFrequentLocations(DatasourceInputFormat.java:236) ~[?:?]
	at io.druid.indexer.hadoop.DatasourceInputFormat.toDataSourceSplit(DatasourceInputFormat.java:194) ~[?:?]
	at io.druid.indexer.hadoop.DatasourceInputFormat.getSplits(DatasourceInputFormat.java:124) ~[?:?]
	at org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat.getSplits(DelegatingInputFormat.java:115) ~[?:?]
	at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:301) ~[?:?]
	at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:318) ~[?:?]
	at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:196) ~[?:?]
	at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) ~[?:?]
	at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_131]
	at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_131]
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) ~[?:?]
	at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) ~[?:?]
	at io.druid.indexer.IndexGeneratorJob.run(IndexGeneratorJob.java:205) ~[druid-indexing-hadoop-0.10.1-iap3.jar:0.10.1-iap3]
	at io.druid.indexer.JobHelper.runJobs(JobHelper.java:372) ~[druid-indexing-hadoop-0.10.1-iap3.jar:0.10.1-iap3]
	at io.druid.indexer.HadoopDruidIndexerJob.run(HadoopDruidIndexerJob.java:95) ~[druid-indexing-hadoop-0.10.1-iap3.jar:0.10.1-iap3]
	at io.druid.indexing.common.task.HadoopIndexTask$HadoopIndexGeneratorInnerProcessing.runTask(HadoopIndexTask.java:277) ~[druid-indexing-service-0.10.1-iap3.jar:0.10.1-iap3]

However, some lines above in the logs, the values are visible, set as per the documentation (and in a way that worked fine pre-upgrade):
{
  "type" : "index_hadoop",
  "spec" : {
    // ...
    "tuningConfig" : {
      "type" : "hadoop",
      "jobProperties" : {
        "fs.s3n.awsAccessKeyId" : "<key id>",        // <- here are the
        "fs.s3n.awsSecretAccessKey" : "<secret key>" // <- properties
      },
      //...
    }
  },
  // ...
}

After some investigation, I found out that the real config is ignored, and what hadoop gets instead is this:
JobConf dummyConf = new JobConf();

In the PR that it was introduced in, the only discussion of this line is that dummyConf should be a local variable instead of a field: https://github.com/druid-io/druid/pull/2223#discussion_r49161015
I am currently looking for a workaround, but this should be fixed for good. However, l cannot understand how the dummyConf was supposed to ever work. Maybe @navis can help explain?

I can also see that this line is present in 0.9.1 as well. It may be the case that back then, the error did not manifest because the config was never queries. Perhaps some newer change (e.g. https://github.com/druid-io/druid/pull/4116) exposed this bug with losing configuration.

commented in https://github.com/druid-io/druid/pull/2223#pullrequestreview-80906299
thanks for identifying the root cause.

@himanshug I fixed this issue here for 0.10.1: https://github.com/Plumbr/druid/commit/640277f00861cbcd2500477703bba54f3e114e9d. We have by now successfully reindexed some months' worth of data with a version built from that branch. However, porting the fix to master is non-trivial because io.druid.indexer.hadoop.DatasourceInputFormat was changed in newer versions. We also don't have a 0.11 cluster at hand to verify the fix. Is it possible to merge the fix at least for 0.10?

@gvsmirnov In Druid code dev workflow, bugs are always fixed in master and then backported into specific release branch if necessary. we wouldn't be able to do a new druid release of 0.10.1 even if we merged it in 0.10.1 and it would be weird for a bug to be fixed in an older unreleased branch but not in master and upcoming releases.

@himanshug I see. This is reasonable, I agree. It will likely take some time before I can verify the fix in a version built from master, though. Cannot give an ETA at the moment, but will get back to it.


When a module with retractions is a dependency, and that module has a newer version, which requires a newer version of Go than it's currently running, the command: go list -u -m all fails.
Other similar issues: https://github.com/golang/go/issues/45305, https://github.com/golang/go/issues/41350 (although with different reasons)
Reproducer:

Checkout the example https://github.com/cardil/repro-golang-66403
Switch to Go < 1.22
Execute go list -u -m all

What did you see happen?
The command go list -u -m all fails with:
go: loading module retractions for<EMAIL_ADDRESS>module<EMAIL_ADDRESS>requires go >= 1.22 (running go 1.21.4)

What did you expect to see?
I expected to see the list of modules.

@gopherbot pretty please backport this to 1.21 and 1.22 🙏


Forgot password generated link doesn't point to anything

The email generated with link to reset is not valid
Steps to reproduce the behavior:

invoke api/user/forgot-password

Expected behavior
generate a valid link to where the user can enter a new password and then invoke the api/user/reset-password endpoint
Generated email below
Your Password Reset Token is 'CfDJ8KOeHn/okTFLk0On9iGCuJrJXn6xW3oJFrIQ89we8StWsSJYzDtl0EzyzRLgYSwsflkEqoSqBoYWtQfHhB+nHxi5shB7ULKR+SGj6mkAHvQuXxMoKUACXPW4MNQnIYKJLAry2B8m7o5GYBguys7zuaTFjLVRm5l4ivYGd5il5MWWofhNQ+9BUFUSvM7ZYcse8GLz101/wCZv9y1g4Px5nR9USmD5RCyHTAKQVGkMMo0c'. You can reset your password using the https://localhost:5001/account/reset-password Endpoint.

This flow is already working as expected.

Hit the password-reset endpoint with your mail id.

A reset email will be sent along with a token. Use the token in the reset-mail endpoint request body along with the mail id and a new password.

Password reset done.


Support other input methods on Popup/Dialogs' _input_from_window

The Popup/Dialog's _input_from_window callback was only listening for keyboard events. Therefore, other input methods (like game controllers) couldn't be used, notably for closing windows.
Fixes #80425

If there isn't any conceptual reason for requiring a keyboard for the "ui_cancel"-action, then I find this implementation fitting.

This looks like a remnant of old code, ever since the Window refactoring:
https://github.com/godotengine/godot/blob/441f1a5fe9a3bf0e4e5dab578f793500b1ff6e3d/scene/gui/popup.cpp#L37-L42
This used to be hardcoded to the Espace key, and then recently changed to use the ui_cancel with https://github.com/godotengine/godot/pull/77297

Thanks!


Nested TickerMode cannot turn tickers back on

Description
Prior to this change a nested TickerMode could override an ancestor TickerMode and turn tickers back on:
TickerMode(
  enabled: false,
  child: TickerMode(
    enabled: true,
   child: ... // <- Tickers are ticking here again.
  ),
);

It doesn't seem to make much sense to turn tickers off for a non-leaf part of a subtree. This change makes it so that if something is wrapped in TickerMode(enabled: false) tickers are off for the entire subtree. Descendant TickerModes cannot turn tickers back on in this subtree.
Related Issues
None
Tests
I added the following tests:

Wrapping TickerMode can turn off ticking in routes
Nested TickerMode cannot turn tickers back on

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

An internal customer discovered this as an unintended side-effect of the changes in https://github.com/flutter/flutter/pull/48900. Specifically, https://github.com/flutter/flutter/pull/48900/files#diff-43a0ab35160384e354368d926a0a96b8R176. When you now wrap the entire Navigator in TickerMode(enabled: false) animations in individual routes are still running unintentionally. Based on that, I did an audit of our code base and saw that we have this problem in a bunch of places (the Visibility widget is another example). Instead of fixing each of these occurrence locally, I came to the conclusion that we should fix TickerMode. As our own code base shows, the old behavior was just too easy to get wrong.
I've not tried this in google's repo (will do now), but I don't anticipate any tests breaking. There weren't any tests breaking when I added the TickerMode to the navigator in https://github.com/flutter/flutter/pull/48900 either, I don't think this is wildly used outside the framework.

@dnfield What PR was that previous comment for?

Tests on the google repo are all passing \o/

I wonder if we should have made the inherited logic skip the given context...


No hundredth in "authenticationStepDateTime" for "MFA denied; user did not select the correct number" Status

Describe the bug
We have more MFA denied Events in the SigninLogs than originally executed.
For example - type in a wrong MFA Code in the smartphone for 4 times. We have 5 MFA denied events in the Logs.
To investigate I assume there are duplicate MFA denied log entries. Therefore I need hundreth as time value to check and verify.
We already tested this behaviour on 2 seperate Tenants, always generating more or less MFA denied events than originally executed.
Therefore it's not representative to have MFA denied rules for more than 3  failed Login attempts and so forth.
To Reproduce
Steps to reproduce the behavior:

Go to Logs
KQL Query to filter for MFA denied Events:

SigninLogs
| project
    TimeGenerated,
    AuthenticationRequirement,
    AuthenticationDetails,
    UserPrincipalName,
    CorrelationId,
    ResultType
| where AuthenticationRequirement == "multiFactorAuthentication"
| parse AuthenticationDetails with *'"authenticationStepDateTime":"'AuthStepDateTime"," *
| parse AuthenticationDetails with *'"authenticationStepResultDetail":"'AuthResult ","*
| where AuthResult has "MFA denied; user did not select the correct number"

Expected behavior
I expect the parsed Column "AuthStepDateTime" to have hundreth as a Time value like other Events than MFA denied have too.
There are just time values with seconds but no hundreth seconds or more.
Screenshots

Hi @B-Hard, Thanks for flagging this issue, we will investigate this issue and get back to you with some updates by 05-04-2024. Thanks!

Hi @B-Hard, Could you please let us know what source you are having to get the data into SigninLogs? You can also check the sync for the MFA denied by using the CreatedDateTime which holds the millisecond values into it.
SigninLogs
| project
    TimeGenerated,
    CreatedDateTime,
    AuthenticationRequirement,
    AuthenticationDetails,
    UserPrincipalName,
    CorrelationId,
    ResultType
| where AuthenticationRequirement == "multiFactorAuthentication"
| parse AuthenticationDetails with *'"authenticationStepDateTime":"'AuthStepDateTime"," *
| parse AuthenticationDetails with *'"authenticationStepResultDetail":"'AuthResult ","*
| where AuthResult has "MFA denied; user did not select the correct number"

As per the MSDoc, the CreatedDateTime is a date and time the sign-in was initiated. So, if logs get pulled in correctly time, the CreatedDateTime will shows the correct value into it.
Thanks!

@v-sudkharat thanks for your response. I checked the CreatedDateTime and it shows the same value (sec+mill sec) for all my attempts of entering a wrong code. There are defenitely more than one second between each attempt. See here:

Thanks for your support.

@B-Hard, We will check on the Timestamp for specific Auth result and will update you.

Any news so far? @v-sudkharat
Thanks

Hi @B-Hard, Sorry for delay in response.
Yes, we have checked the logs in SigninLogs table, The timestep into the AuthenticationDetails is fetch from connector itself. It not only with specific AuthResult "MFA denied; user did not select the correct number" you will get it same for few of the below to: -
MFA successfully completed.
Authentication in progress

This needs to be check from our backend side configuration, and we are not authorized to check on backend config side. We kindly request you to raise a support case on this issue, so our support team can look into it and if required team will connect with you.
Thanks!

Ok thanks for your effort, will open a ticket...

@B-Hard, Welcome. so, closing this issue from GitHub. If you still need support for this issue, feel free to re-open it any time. Thank you for your co-operation.


Mapped paths broken on Windows machines

Windows machines with mapped drives fail to find unit tests.  If a C:\projects\test.js drive is mapped to H:\test.js, running jest unit tests will search for H:\test.js inside of C:\projects which will obviously fail.  We noticed this behavior when we upgraded our jest to 24.x and after a lot of troubleshooting we see that the process.binding('fs') seems to be the culprit.

Does #39 fix the issue for you?

I see, I've pasted his code into my local node module and it comes back with the same error I'm trying to fix which is showing that it can't find the unit tests because of the mapped drive.  The drive mapping and operating system are outside of my control as it's the setup for all devs at my company.  I did look through the process.binding documentation and node.js docs seem to say that "process.binding() is for use by Node.js internal code only" and also that it is deprecated as of node 11.  I wonder is it necessary at all to use it?
https://nodejs.org/api/deprecations.html#deprecations_dep0111_process_binding

I am running into a similiar issue over here using a RAM-disk. It seems to break in line 29:
Error: EISDIR: illegal operation on a directory, realpath 'M:\Some path'
    at Function.realpathSync.native (fs.js:1606:3)
    at realpathSync (M:\Some path\node_modules\realpath-native\index.js:29:28)
    at Object.<anonymous> (M:\Some path\node_modules\jest-resolve\build\index.js:106:48)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at _jestResolve (M:\Some path\node_modules\jest-config\build\normalize.js:99:39)

I could fix it by doing this in line 29 instead. What do you think?
    try {
      return fs.realpathSync.native(filepath);
    }
    catch {
      return filepath;
    }

I've published a v3 and deprecated it - all current releases of node supports fs.realpath.native now, so this module is no longer needed.


Update cache-how-to-scale.md

We can't scale down to C0 size but scaling down to any other size within the same pricing tier is also possible. Just added a reference for better understanding.

@Amrinder-Singh29 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Add Banner component

This pull request adds the Banner component and also Banner.WithControls
also added instructions fo running this repo locally
in order to test their PR check out:
http://localhost:3000/doc/components/banner - has each banner variant separately
http://localhost:3000/doc/components/banner-with-controls - has each banner variant in a carousel of banners that can be closed
thanks to @Majorfi that has super deep knowledge in front-end and helped a lot with commits to getting this done :D

Error on deploy with vercel:
lib/src/index.tsx(37,15): error TS2307: Cannot find module './components/BannerPagination' or its corresponding type declarations.

Nice job !
Thank you for you work on that @MarcoWorms !
I am approving that now, but we will need to add some accessibility stuff:

Image component is not accessible with keyboard navigation
The chevrons are not accessible with the keyboard navigation

I think some other are impacted, we should do a larger pr to fix that!
Again, thank you!

Thanks a lot for the help @Majorfi


CenterNet training extremely slow

Hi,
Iam trying to train CenterNet on the Coco dataset using the centernet-update_r50_fpn_8xb8-amp-lsj-200e_coco.py config.
According to the log output, training will take about 25 days. This seems super long!
Now Iam wondering if there is anything that I could check in order to speed up training?
Thanks in advance,
kind regards,
Michael

@MLRadfys Because of the training 200e, you may consider scaling down the epoch if it is a custom dataset


Incompatible with sass 1.56.0

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
Sass v1.56.0 gives following warning:
Deprecation $weight: Passing a number without unit % (100) is deprecated.

To preserve current behavior: $weight * 1%

More info: https://sass-lang.com/d/function-units

Reduced test cases
Compile:
bootstrap/scss/_functions.scss 201:11  opaque()
bootstrap/scss/_functions.scss 175:18  contrast-ratio()
bootstrap/scss/_alert.scss 64:8        @import

What operating system(s) are you seeing the problem on?
macOS
What browser(s) are you seeing the problem on?
No response
What version of Bootstrap are you using?
5.2.2

I have the same issue with tint-color() function. Sass v1.56.1.
Deprecation Warning: $weight: Passing a number without unit % (0) is deprecated.

To preserve current behavior: $weight * 1%

More info: https://sass-lang.com/d/function-units

    ╷
207 │   @return mix(white, $color, $weight);
    │           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
    src\scss\vendor\bootstrap\_functions.scss 207:11  tint-color()
    src\scss\vendor\bootstrap\_functions.scss 217:57  shift-color()
    src\scss\vendor\bootstrap\_variables.scss 702:17  @import
    src\scss\modules\reviews.scss 5:9                 root stylesheet


Multiple Commit Statuses: Implement MVP

Support multiple statuses per commit:

Injest them from the webhooks
Save them to the DB
Load them from the DB
Request them from the API
Maintain them in the memory model
Update the UI

Split the existing green/red CI status bar into vertical pills
with one per status

CR ☕

CR ☕

CR :vertical_traffic_light:

@addison-grant and I attempted to QA this.

Run docker rm -f pulldasher
Open specific/dev/startup-scripts/install-pulldasher in server-templates
Change the VERSION to origin/commit-statues--suport-more-than-one
Add read -p Paused after the copy config (line 23)
Run bash specific/dev/startup-scripts/install-pulldasher
When the script gets paused, open up config.js and change the db to point to cominor
Hit enter on the install script and the new pulldasher should be up and running

I followed the above commands and noticed that we are now able to have different statuses.
I tried to edit the cominor metrics table in order to see if > 2 statuses looked decent and if the other states (error) looked decent.  When I applied the changes to the DB, they were not reflected on pulldasher.cominor.com.
I attempted docker restart pulldasher, and bin/refresh-all-pulls in order to try to get pulldasher to refresh.  Neither of these worked.
I can say that I was able to see what Danny saw: Two statuses with the correct description, context, state, and url for a single pull/commit.  QA 📱 on that but deploy_block 📱 because I would like to test a few things further like:

If a commit has two success statuses, does it go to the correct columns?
If a commit has 3 statuses, does the UI look decent?
If a commit has all combinations of states, does it behave correctly?

Thanks @addison-grant and @mlahargou !!
Regarding the remaining QA bullets, I wouldn't worry about those ones, their blast radius is low,
they are easy to fix after the fact, and they are easy for CR to verify that it's correct (build_succeeded() and friends are easy to CR).
What I would like more QA on (and is harder to validate / prove that it's done right) is if incoming webhooks produce the desired state change in the DB / UI. This will require running pulldasher with DEBUG='*' (also against the devdb as before) and then getting github to fire some notifications. You can go to github's GUI and re-send any past notifications.

dev_block 👍   found a bug. Using the wrong github API endpoint to retrieve statuses.

More CR :traffic_light:

un_dev_block 👍
QA 👍

CR ☕

un_deploy_block 👍


Load Features While Interacting/Animating

Is it possible to load features while interacting with the map? Currently features get loaded only after the drag is complete (onMouseUp). Also, it does not cache the features already loaded i.e. going to the same area multiple times loads the features in that area again and again.
Is there something like loadWhileAnimating or loadWhileInteracting for the Features too like  for the Map?

Sounds like you are loading your features with a bbox strategy. Switching to a tile strategy would solve the caching problem. Regarding loading, have you tried the updateWhileAnimating and updateWhileInteracting properties on the vector layer? Those won't trigger loading, but will ensure that everything that's loaded already will be displayed during animations and interactions.


HDDS-10997. Avoid publishing build scan for helper Maven commands

What changes were proposed in this pull request?
Skip publication of build scans for helper Maven commands:

read dependency versions (help:evaluate)
merge Jacoco files (jacoco:merge)
set version in POMs (versions:set)

to reduce noise in Develocity.
https://issues.apache.org/jira/browse/HDDS-10997
How was this patch tested?
CI run in apache/ozone:
https://github.com/apache/ozone/actions/runs/9429335669
Verified that the run published no scans for helper tasks:
https://ge.apache.org/scans?search.rootProjectNames=Apache Ozone Main&search.startTimeMax=1717883999999&search.startTimeMin=1717855200000&search.tags=HDDS-10997&search.timeZoneId=Europe%2FVienna

Thanks @fapifta for the review.


Added check to see if analyzer is enabled

Fixes issue #236.

No longer an issue in master (after new-architecture merge)


Implement expanding.groupby.count in Series and Frame

I am opening this to don't forget. It's WIP.

Codecov Report

Merging #991 into master will decrease coverage by 1.5%.
The diff coverage is 93.67%.

@@            Coverage Diff             @@
##           master     #991      +/-   ##
==========================================
- Coverage   94.84%   93.33%   -1.51%
==========================================
  Files          34       34
  Lines        6519     6561      +42
==========================================
- Hits         6183     6124      -59
- Misses        336      437     +101

Impacted Files
Coverage Δ

databricks/koalas/generic.py
96.17% <ø> (ø)
:arrow_up:

databricks/koalas/missing/window.py
100% <ø> (ø)
:arrow_up:

databricks/koalas/groupby.py
91.39% <100%> (ø)
:arrow_up:

databricks/koalas/window.py
92.96% <93.5%> (+0.11%)
:arrow_up:

databricks/koalas/usage_logging/__init__.py
24.54% <0%> (-72.73%)
:arrow_down:

databricks/koalas/usage_logging/usage_logger.py
50% <0%> (-50%)
:arrow_down:

databricks/koalas/__init__.py
78.04% <0%> (-7.32%)
:arrow_down:

databricks/conftest.py
93.61% <0%> (-4.26%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b161428...06150ed. Read the comment docs.

This should be ready for a look.
cc @itholic too since you're working on rolling.

I'm merging this to proceed forward. I am still touching this file so please let me know if there are some comments.

@HyukjinKwon great! okay i'll start Rolling.GroupBy now.


[Backup] Fix #19803: Fixed parallel test execution

Description
Changed the recoveryconfig.json file name to scenario-specific file name to avoid parallel test run failures https://github.com/Azure/azure-cli/issues/19803
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Backup


i18n folder to condense translation system

The creation of a separate i18n folder within the repository will allow easier contribution and general searching for content and copy within the project. As well it will help to minimize the amount of reused localized copy as it will be easier to find and document what already exists if it is all in one place. This will act as the one stop shop for all localization and copy for contributors to find and add to moving forward.

Is this something that's currently in progress in a PR?

Nope, I'm going to make a new PR for its once its ready

Dont think this one is required for our demo, the translation system works fine as-is but this is a nice enhancement/improvement. @ecurrencyhodler


Implement the initial version of the application

This PR contains the complete working source code of the initial version of the application. While it doesn't contain tests, through manual verification, the code, when properly configured, does work.

@bnb Let's take a look in our meeting (I can't add reviewer requests)

@settermjd if you could provide screenshots or a link to a running version of the HTML page that's included here, that'd be helpful!

@settermjd if you could provide screenshots or a link to a running version of the HTML page that's included here, that'd be helpful!

Done!

Thanks @settermjd !


[WFLY-13576] Upgrade WildFly Galleon Plugins from 4.2.6.Final to 4.2.8.Final

Jira issue: https://issues.redhat.com/browse/WFLY-13576

Thanks @yersan.
JIRA isn't working for me right now so please check back on the JIRA and resolve it if it remains unresolved.


docs: URL not found on (what is treasury)

Saw this on onboard-guide section. English and Japan page

The link is not working

Thanks!!
I'll fix it

Okeh, I'll assign this issue to you ^^

Fixed


[High priority]add support of quarot and spinquant

not promising after initial testing and is not quite general to models, e.g. phi-3, mistral


MINOR: Loose verification of startup in EOS system tests

Currently, we verify that a Streams client transitioned
from REBALANCING to RUNNING and that it processes some records
in the EOS system test. However, if the Streams client only
has standby tasks assigned, the client will never process
records. Hence, the test will fail although everything is
fine.
This commit removes the verification that checks whether
records are processed.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

From the logs, I see the following assignment:
2021-06-29 09:57:45,026] INFO Decided on assignment: {

016c5d71-b8a4-4e8a-9896-e757eefb68c6=[
    activeTasks: ([0_0, 0_2, 0_3])
    standbyTasks: ([0_1, 0_4])
    prevActiveTasks: ([0_0, 0_2])
    prevStandbyTasks: ([0_1, 0_3, 0_4])
    changelogOffsetTotalsByTask: ([0_0=-2, 0_1=10880, 0_2=-2, 0_3=10428, 0_4=10964])
    taskLagTotals: ([0_0=-2, 0_1=280, 0_2=-2, 0_3=24, 0_4=4])
    capacity: 1
    assigned: 5],

3134dbd9-4def-4574-b027-427ae654d8f5=[
    activeTasks: ([0_1, 0_4])
    standbyTasks: ([0_0, 0_2, 0_3])
    prevActiveTasks: ([0_1])
    prevStandbyTasks: ([0_0, 0_2, 0_3, 0_4])
    changelogOffsetTotalsByTask: ([0_0=10226, 0_1=-2, 0_2=6254, 0_3=10448, 0_4=10680])
    taskLagTotals: ([0_0=580, 0_1=-2, 0_2=4998, 0_3=4, 0_4=288])
    capacity: 1
    assigned: 5],

5c2faa18-0876-498a-b00d-9b5bd62297d1=[
    activeTasks: ([])
    standbyTasks: ([0_0, 0_1, 0_2, 0_3, 0_4])
    prevActiveTasks: ([])
    prevStandbyTasks: ([0_0, 0_1, 0_2, 0_3, 0_4])
    changelogOffsetTotalsByTask: ([0_0=0, 0_1=0, 0_2=0, 0_3=0, 0_4=2009])
    taskLagTotals: ([0_0=10806, 0_1=11160, 0_2=11252, 0_3=10452, 0_4=8959])
    capacity: 1
    assigned: 5]
} with followup probing rebalance. (org.apache.kafka.streams.processor.internals.assignment.HighAvailabilityTaskAssignor)

5c2faa18-0876-498a-b00d-9b5bd62297d1 is the Streams client that is shutdown uncleanly and verified when it restarts. The verification whether 5c2faa18-0876-498a-b00d-9b5bd62297d1 processed records will never be satisfied since the Streams client only has standby tasks.

Opened #11090 with an alternative approach to fix the system test.

PR #11090 got merged. I will close this for now.


Support Triggers

Could you please do the work to add to validate triggers?
TOSCA 1.3 section <IP_ADDRESS> says that event is a required and event_name is a string,
but in v0.12.0, if I add a trigger to examples/tosca/policies-and-groups.yml like this:
  ContinuousBackup:
    derived_from: Backup
    # Properties are how you configure the policy
    properties:
      frequency:
        type:
          scalar-unit.time
    # Targets are inherited
    triggers:
      event: MyEventName

Then puccini gives an error of
@27,7 policy_types["ContinuousBackup"].triggers["event"]: "!!str" instead of "!!map"

There are two issues here:
Your notation is incorrect, I think. If you look at <IP_ADDRESS> you'll see that triggers has to be a map of trigger definitions. And then in <IP_ADDRESS>.1 and <IP_ADDRESS>.2 you'll see that there is no string notation. So you have to write:
  ContinuousBackup:
    derived_from: Backup
    triggers:
      mytrigger:
        event: MyEventName

But, a second issue is that TOSCA 1.3 changed the type_name keyword to be type. I will fix this.

Actually, the usage of action also changed between TOSCA 1.2 and TOSCA 1.3. This requires a whole re-implementation.