Validation Errors - custom log level

Hi,
First of, great work on IS4 really satisfied with the product in general.
This is a feature request for adding the option to set the log level of errors involving validators in IS4.
To be precise, that includes all validator classes within IdentityServer4.Validation namespace.
This could be done a bit broader as well, by setting sections/areas of IS4 like, stores, services etc... and allowing the developers to change the default log levels of various sections. Either through constants or whichever method you consider viable.
I've already tried this by cloning your dev branch and implementing it. Works as intended. However I'd like to discuss this as a permanent feature as it may prove useful.

What's the motivation?

Any input on this?

Hi and sorry for the delay I’m on a trip so no constant internet connection.
Anyways, the motivation for this came from observing our production environment for last few months. More control over the log levels in various places would be more than welcome. For instance, we wish to setup an automated alert system but we dont want certain logs to be considered as errors so they dont alert anyone. More control over whats logged in what way is always more than welcome.

If you’re reworking logging in general than a minor update for this would suffice I dont have example code on me since Im limited to my phone, but the basic idea could be to create an extension method(s) for logging and make it switch based on some value either from your constant class or from wherever that in my mind feels like least trouble and change for this sort of thing. Then just change all desired elements to use those extension methods.
It would stay clean and well theres always an option to just extend this even further with the use of something like serilog for more customization of logged properties etc. but not much point in that if you’re reworking the whole thing. I’d just stick to the simple example of extension method per ‘area’ and change them set defaults within those methods to be safe and set the needed value to default as well to be clearer.

@leastprivilege Have you had time to make any decision regarding this?

I'd use the Microsoft.Extensions.Logging.Abstractions NuGet for the log. One can than filter log events by namespace.
Microsoft's logging interface is very basic, but it is supported by all common logging libraries.

Doh. Yes absolutely.

@MovGP0 We are using Microsoft.Extensions.Logging.Abstractions however I fail to see how this relates. I don't want to filter them, I want to set the different log level for various errors.
Perhaps I'm missing something here.

You are right - I was too quick closing the issue.
That being said - we don't plan to touch the logging system soon. As I mentioned before, we are planning to re-write it anyways. Then this requirement will be considered.
Check Serilog - it offers a pretty powerful filtering and processing pipeline - maybe you can achieve your goal this way.

@leastprivilege We're already using Serilog for various things, however unfortunately it cannot override this in any way. Guess we'll wait for your upgrade on logging. Then we can review this matter and see if it can be done more naturally.

Serilog is the library I am using in all my projects. However, I am not sure if it's the right tool for libraries on GitHub. A common logging library might be the better choice here. People who use the library in their projects should use Serilog, but not required to do so.

This is of great interest to us as well.  Here is some detail from our perspective;
Background
We run pretty aggressive monitoring and alerting on error logs in production - more than N error logs in X min results in a page to on-call.
Currently a lot of internal IdentityServer4 logging emits Error events in situations where IdentityServer is doing exactly the right thing (eg token is invalid, authZ code is invalid, etc) and is technically not itself experiencing errors at all.  Sure a client isn't getting the response they want but if that's due to invalid input that's not an error at our end - and isn't something we can do anything about.  (Well, we can and do plead with people to stop doing bad things but our Salesforce integration support is just a deadend and I think they'll spam us with invalid input forever.)
My primary concern is that IdentityServer is emitting Error logs in cases which are not errors.  The client isn't getting the response they want but IdentityServer is doing exactly what it should.  This makes it impossible to isolate actual errors from noise caused by badly behaved clients.
Request
Would you be open to a PR which alters the log levels for client-caused request rejection down to Warn or Info level?  This would most likely target all types under the IdentityServer4.Validation namespace.  We would be happy to contribute this.
You mention

we are planning to re-write [the logging system] anyways. Then this requirement will be considered.

Is there an issue somewhere where we could contribute requirements/input to this?
Alternatively, when looking at your logging rewrite would you consider providing something like a Dictionary<string,LogLevel> for log level mappings?  That would allow us to override the log level for a specific log message, and then the app code could lookup the log level at runtime like so;
private void Log(string message) {
    var logLevel = LogLevels[message];
    _logger.Log(logLevel, message);
});

There are obviously other considerations but the basic idea is to provide a means to control log levels where that is appropriate (clearly it's not appropriate everywhere).
Thanks.  🙂
Workaround
We also use Serilog and what we've done is to add a LogLevelModifyingSink which alters the level of logs emitted by IdentityServer on the way out - typically to drop Error logs down to Warn or lower.  See below for impl details if that's useful.  It's just a pretty nasty workaround to have to apply - incurs overhead on the logging output and may hide some legitimate error logs.
Here is our logic (and we're about to add yet more log level overrides);
/// <summary>
/// Runs conditional logic on logs to alter log levels on the fly
/// </summary>
/// <remarks>
/// Useful to control logs from third party libs which output logs with levels that we think are too spammy or not helpful.
/// </remarks>
public class LogLevelModifyingSink : ILogEventSink, IDisposable
{
    readonly ILogEventSink _pipeline;
    readonly LogLevelModifier _logLevelModifier;

    // this is a list of loglevel modifiers
    // each modifier has a predicate which takes a logevent and returns whether the log level should be modified,
    // and a replacement logeventlevel (used if modifying the log)
    static readonly IList<(ShouldModifyLog,LogEventLevel)> LogLevelModifiers = new List<(ShouldModifyLog, LogEventLevel)> {
        (IsIdentityServerErrorLogScopeValidatorRequestedScopeNotAllowed,LogEventLevel.Warning),
        (IsIdentityServerErrorLogTokenRequestValidator_RequestedScopeNotAllowedOrAuthorisationCodeInvalid,LogEventLevel.Warning),
        (IsIdentityServerErrorLogTokenValidatorInvalidReferenceToken,LogEventLevel.Warning)
    };

    // a list of quick checks to see if we should handle a particular log
    static readonly IList<ShouldModifyLog> ShouldHandlePredicates = new List<ShouldModifyLog> {
        logEvent => logEvent.SourceContextHasNamespaceStartingWith(IdentityServer4Namespace),
    };

    static bool IsIdentityServerErrorLogScopeValidatorRequestedScopeNotAllowed(LogEvent logEvent) {
        return logEvent.Level.Equals(LogEventLevel.Error)
               && logEvent.SourceContext().Equals($"{IdentityServer4Namespace}.Validation.ScopeValidator")
               && logEvent.MessageTemplate.Text.StartsWith("Requested scope not allowed");
    }

    static bool IsIdentityServerErrorLogTokenValidatorInvalidReferenceToken(LogEvent logEvent) {
        return logEvent.Level.Equals(LogEventLevel.Error)
               && logEvent.SourceContext().Equals($"{IdentityServer4Namespace}.Validation.TokenValidator")
               && logEvent.MessageTemplate.Text.StartsWith("Invalid reference token");
    }

    static bool IsIdentityServerErrorLogTokenRequestValidator_RequestedScopeNotAllowedOrAuthorisationCodeInvalid(LogEvent logEvent) {
        return logEvent.Level.Equals(LogEventLevel.Error)
               && logEvent.SourceContext().Equals($"{IdentityServer4Namespace}.Validation.TokenRequestValidator")
               && (
                   // requested scope not allowed
                   logEvent.MessageTemplate.Text.Equals("{details}") || // wut?  :confounded:
                   logEvent.MessageTemplate.Text.StartsWith("Invalid authorization code")
               );
    }

    #endregion

    public LogLevelModifyingSink(ILogEventSink pipeline) {
        _pipeline = pipeline;
        _logLevelModifier = new LogLevelModifier(ShouldHandlePredicates, LogLevelModifiers);
    }

    public void Dispose() {
        (_pipeline as IDisposable)?.Dispose();
    }

    [DebuggerStepThrough]
    public void Emit(LogEvent logEvent) {
        // let's assume that all our own logs have correct logging levels and we can just pass-thru
        if(logEvent.SourceContextHasNamespaceStartingWith(MyCompanyNamespace)) {
            _pipeline.Emit(logEvent);
        }

        // otherwise it's third party so we'll check...
        else if(_logLevelModifier.ShouldHandle(logEvent)) {
            var modifiedEvent = _logLevelModifier.Modify(logEvent);
            _pipeline.Emit(modifiedEvent);
        }
        else {
            _pipeline.Emit(logEvent);
        }
    }
}

and the LogLevelModifier impl includes
/// <summary>
/// Runs through the <see cref="_logLevelModifiers"/> and applies the first one that matches.
/// </summary>
/// <param name="logEvent"></param>
/// <returns>A log event with an altered log level</returns>
[DebuggerStepThrough]
public LogEvent Modify(LogEvent logEvent) {
    foreach(var (predicate, replacementLogLevel) in _logLevelModifiers) {
        var replacementLogEvent = ConditionallyModifyLogLevel(predicate, logEvent, replacementLogLevel, out var wasModified);
        if(wasModified) {
            return replacementLogEvent;
        }
    }

    // shouldn't get here
    return logEvent;
}

static LogEvent ConditionallyModifyLogLevel(ShouldModifyLog predicate, LogEvent logEvent, LogEventLevel replacementLevel, out bool wasModified) {
    if(predicate(logEvent)) {
        wasModified = true;
        return ModifyLog(logEvent, replacementLevel);
    }

    // shouldn't get here
    wasModified = false;
    return logEvent;
}

static LogEvent ModifyLog(LogEvent logEvent, LogEventLevel replacementLevel) {
    return new LogEvent(
        logEvent.Timestamp,
        replacementLevel, // only changing this
        logEvent.Exception,
        logEvent.MessageTemplate,
        logEvent.Properties.Select(kvp => new LogEventProperty(kvp.Key, kvp.Value)));
}

I have faced this same problem multiple times. There is no simple answer since incessant hammering of a authn system is a valid error condition. You probably will not like the answer we crafted, which was to write a program that would measure the errors per account and report when they exceeded a threshold. That was done in a SIEM system with the capability to handle little microprograms like that.
It really is not possible for any general system (like idsvr) to know the threshold characteristics of each install. Nor is it likely that they will remain constant over time even at the same site.
I agree with the @MovGP0 comment - use a common format and let the security analysis sort it out.
Peace ..tom

There is no simple answer since incessant hammering of a authn system is a valid error condition.

Thanks - that's helpful feedback.  And I agree - sort of.
Where I work we've attempted to handle this with rate limiting on requests (that are necessarily unauthenticated), if we can extract identifying information such as clientid from the request.
Or we can ip block at our internal WAF if it's bad enough and we can't extract uniquely identifying information.

It really is not possible for any general system (like idsvr) to know the threshold characteristics of each install.

Yes that's true, but I'd argue idsvr is not the right place to identify whether this is an error or not.  We can only see if it's truly 'incessant hammering of a authn system' from outside the request; as you say in a system which can measure and respond to aggregated counts of a specific type of log/event.
The problem as I see it is that idsvr is unilaterally deeming that threshold to be 1, where any validation failure is an error, not N validation failures over X time.  Idsvr conflates actual errors we can fix with validation errors we can't.
I'd much rather idsvr emitted validation errors via an event or non-error log that allows external systems to aggregate and determine if there is in fact an error.

use a common format and let the security analysis sort it out

So I totally agree - use a common format, don't prematurely mark these as errors and let downstream analysis/monitoring sort it out.  That's my argument - that it's not an idsvr concern.

You may very well be correct, but the solution is not up to me.
I will point out that Windows considers (or did consider) this to be an error.

@leastprivilege, @brockallen
Would you be open to a PR which gives idsvr lib consumers the ability to alter the log levels for client-caused request/validation rejection (I would downgrade these to Warn or Info level)? This would most likely target all types under the IdentityServer4.Validation namespace. We would be happy to contribute this.
Also, you mentioned

we are planning to re-write [the logging system] anyways. Then this requirement will be considered.

Is there an issue somewhere where we could contribute requirements/input to this, or even just see what is planned?

Will be tracked here: https://github.com/IdentityServer/IdentityServer4/issues/3518


vscode opens temp file for Jupyter cell debugging

Applies To

[X] Notebooks (.ipynb files)
[ ] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
S:\src\test> conda create --prefix ./conda python jupyter
S:\src\test> conda activate ./conda
(S:\src\test\conda) S:\src\test> code .

create testme.ipynb and cell node with few lines of code. setup breakpoint (F9). Click "debug cell"
Expected:

The debugger stops at the breakpoint inside the cell

Actual:

The debugger opens a new temp file with the code from the cell and stops in that file. Screenshot provided.

VS Code Version
1.86.0
Jupyter Extension Version
2024.1.0
Jupyter logs
Visual Studio Code (1.86.0, undefined, desktop)
Jupyter Extension Version: 2024.1.0.
Python Extension Version: 2024.0.0.
Pylance Extension Version: 2023.12.1.
Platform: win32 (x64).
Workspace folder s:\src\test, Home = c:\Users\Admin
13:28:19.334 [info] Start refreshing Kernel Picker<PHONE_NUMBER>334)
13:28:19.340 [info] Using Pylance
13:28:19.360 [info] Start refreshing Interpreter Kernel Picker
13:28:19.669 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd08f1ce695b34a710b65a4374c0c9e875211a74ab7493683ad5f5d01b9cf9510ad.s:\src\test\conda\python.exe.s:\src\test\conda\python.exe.-m#ipykernel_launcher  (Python Path: s:\src\test\conda\python.exe, Conda, 3.9.18) for 's:\src\test\testme.ipynb' (disableUI=true)
13:28:21.987 [info] Process Execution: s:\src\test\conda\python.exe -m pip list
13:28:21.991 [info] Process Execution: s:\src\test\conda\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
13:28:21.998 [info] Process Execution: s:\src\test\conda\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2024.1.0-win32-x64\pythonFiles\vscode_datascience_helpers\kernel_interrupt_daemon.py --ppid 20672
    > cwd: ~\.vscode\extensions\ms-toolsai.jupyter-2024.1.0-win32-x64\pythonFiles\vscode_datascience_helpers
13:28:22.128 [info] Process Execution: s:\src\test\conda\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-20672dQhCASyFW9ya.json
    > cwd: s:\src\test
13:28:22.129 [info] Kernel process 7644.
13:28:22.566 [info] End refreshing Kernel Picker<PHONE_NUMBER>334)
13:28:22.748 [warn] StdErr from Kernel Process 0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
13:28:23.085 [info] Process Execution: s:\src\test\conda\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2024.1.0-win32-x64\pythonFiles\printJupyterDataDir.py
13:28:23.116 [warn] Got a non-existent Jupyter Data Dir file:///c%3A/Users/<username>/AppData/Roaming/Python/share/jupyter
13:31:11.391 [info] Starting debugging with mode 1
13:31:12.012 [info] Handle Execution of Cells 0 for s:\src\test\testme.ipynb
13:31:12.019 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>018

Coding Language and Runtime Version
pkgs/main/win-64::python-3.11.7-he1021f5_0
Language Extension Version (if applicable)
No response
Anaconda Version (if applicable)
current version: 4.12.0
Running Jupyter locally or remotely?
Local

I'm not able to repro this.
Are you just using the debug cell item in the run button drop down?
Can you try to repro with all other extensions disabled besides python/jupyter

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

Got it to root cause this one, finally. Quite annoying bug and hard to rootcause unless you've some understanding how the vscode debugger file matching works. It appears that somewhere in the jupyter/python extensions the path being compared is case-sensitive. The suggested fix would be to ignore the case sensitivity for the paths on windows.
The repro: in cmd shell:
set TEMP=c:\temp
set TMP=c:\tmp
code .

then create a python notebook add simple cell, set up a breakpoint in it and attempt to debug. The debug breakpoint will be opened in a separate temp file.
NOTE: the c in the c:\temp is lowercase, and this works well for all the applications, except for the jupyter notebook debugging.
As a workaround I've changed my system environment variables to C:\temp that unblocked me.


New DNS Provider: Vercel

Hello,
I've forked the Hetzner Repository and modified it to work with domains that are managed by Vercel (vercel.com).
It uses the vercel API, the tests pass (just not the TTL value in GetRecord since Vercel's API does not return any TTL values).
Can we get this as an official libdns package? (I would like to use it on Caddyserver)
I didn't know where to open the request, obviously this i don't want this to be merged into hetzner.

Yes, that would be fine. I will take a look at this asap and make new repos for vercel.

Just did a quick glance, LGTM. I made the vercel repos and gave you maintain access, so you can go to town there. (FYI in the future, we ask that new DNS providers be reviewed at libdns/libdns, not in random other repos.)
Be sure to update package and module paths. Once it's ready you can add it to the Caddy website. Thanks!

Just did a quick glance, LGTM. I made the vercel repos and gave you maintain access, so you can go to town there. (FYI in the future, we ask that new DNS providers be reviewed at libdns/libdns, not in random other repos.)
Be sure to update package and module paths. Once it's ready you can add it to the Caddy website. Thanks!

Done! What exactly do i add to the website?
The module works, even though it errors twice before getting a wildcard certificate but after that, everything's fine!

even though it errors twice before getting a wildcard certificate but after that

That isn't normal, try to make sure it works the first time. :)

even though it errors twice before getting a wildcard certificate but after that

That isn't normal, try to make sure it works the first time. :)

Deleted the certificates and restarted caddy, this time it worked without errors, maybe a vercel api problem earlier.
Will take a closer look in the next few days and if i can't reproduce it, i'll put a warning in the Readme!


chore: optional evaluate install

Please do not create a pull request without creating an issue first.
Changes need to be discussed before proceeding, pull requests submitted without linked issues may be rejected.
Please provide enough information so that others can review your pull request. You can skip this if you're fixing a typo – it happens.

[ ] I have added tests to tests to cover my changes.
[ ] I have updated docs/, if necessary.
[ ] I have updated the README.md, if necessary.

What existing issue does this pull request close?
Put closes #issue-number in this pull request's description to auto-close the issue that this fixes.
How are these changes tested?
This pull request includes automated tests for the code it touches and those tests are described below. If no tests are included, reasons why must be provided below.
These changes are tested with [...]
Demonstration
Demonstrate your contribution.
For example, what are the exact commands you ran and their output, related screenshots, screen-recordings, test runs, anything that can showcase.
Provide additional context.
Provide as much relevant context as you like.

Codecov Report

Merging #569 (817fe98) into main (b454ac8) will decrease coverage by 0.04%.
The diff coverage is 60.00%.

@@            Coverage Diff             @@
##             main     #569      +/-   ##
==========================================
- Coverage   89.28%   89.24%   -0.04%
==========================================
  Files         147      147
  Lines       11605    11609       +4
==========================================
- Hits        10361    10360       -1
- Misses       1244     1249       +5

Impacted Files
Coverage Δ

dataquality/dq_auto/ner_trainer.py
37.83% <60.00%> (-0.40%)
:arrow_down:

dataquality/dq_auto/tc_trainer.py
93.93% <60.00%> (-6.07%)
:arrow_down:

... and 3 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Reset animation on playback stop

Fixes #27499

@akien-mga do you see any danger in merging this?

do you see any danger in merging this?

Yes, two things I'm not sure about:

seek(0, true) calls _animation_process(0), which does a whole lot of update logic. I'm not sure if it's good per se to have so much logic running when the user just wants to stop the animation from playing.
More importantly, I think there are two conflicting use cases and we can't support both. Currently stop(true) will reset the position so that the next play() starts from 0, but it will not change the displayed frame back to frame 0. It's actually wanted in various situations if you want to stop the animation while staying on the stop frame, and when you play() again it should restart from 0. If we merge this PR, you'd have to pause the animation, seek to 0, and then play.

@KoBeWi Is this still desired? If so, it needs to be rebased on the latest master branch.

Needs a rebase to fix CI. But note that this is potentially superseded by #44345, we need a design decision on how we want the API to be like for animation playback (both AnimationPlayer and AnimatedSprite).
From what I remember #44345 was discussed in a PR review meeting and had mostly consensus, so we might want to re-review that and possibly close this PR while merging #44345.

Rebased. The animation process code is so complex that I couldn't think of how to reasonably implement "internal seeking", so I just added a bool called is_stopping. Hope it's acceptable.

Playback avoidance is needed not only in TYPE_METHOD but also in TYPE_AUDIO and TYPE_ANIMATION. So, it is better to do continue; at the beginning of those case statements rather than propagate it to can_call.

I'm already stopping TYPE_AUDIO, forgot about TYPE_ANIMATION.

Tested, looks fine except for the above issue. I sent a PR to apply the pause() and stop() separately to AnimationPlayerEditor as #71321. I will rebase that PR as soon as this PR is merged first.

Thanks!

Hi. Does this fix imply that property values tracks will have their 0 time values reapplied when  an animation is stopped?
How is that desired behavior?


False ts(1261) error message

Issue:

False TS(1261) error message displayed in VS Code
Steps to reproduce:

Temporary solution:
For anyone who is looking for a solution, reverting to Volar 1.8.6 fixed it for me.

Please check if this issue has been resolved by now. If not, feel free to create a new one.


fix: correctly copy null buffer when making deep copy

In some situations an array could be sliced in such a way that the array had no offset, but the array's null buffer did have an offset.  In these cases we were not deep copying the array correctly and the offset of the null buffer was lost.  This does mean, in some cases, the 2.0 writer could write incorrect nulls.  However, the input conditions would mean that the user's data would have to originate from rust in such a way that it was sliced like this.  It would be impossible for batches from the C data interface or from python to look like this.

The reason had become a problem is that we started using 2.0 to write our scalar indices.  The input for 2.0 is the output of a datafusion sort plan which caused the data to be sliced in this way.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.49%. Comparing base (ef9d0c2) to head (cc22232).
Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3238      +/-   ##
==========================================
+ Coverage   78.45%   78.49%   +0.04%
==========================================
  Files         244      245       +1
  Lines       84554    85065     +511
  Branches    84554    85065     +511
==========================================
+ Hits        66333    66772     +439
- Misses      15418    15478      +60
- Partials     2803     2815      +12

Flag
Coverage Δ

unittests
78.49% <100.00%> (+0.04%)
:arrow_up:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[UBS Admin Violation] UI inconsistency in the pop-up with details of related violation record

Environment: MacOS Version 12.4 Google Chrome 103.0.5060.114
Reproducible: always
Build found: 31.07.2022
Preconditions

User is logged in as administrator https://www.testgreencity.ga/GreenCityClient/#/ubs
There is at least one order created in the system
Administrator has opened an order from current orders view table
The violation has already been added to the current order
Figma`s mockup is opened - https://www.figma.com/file/092AhCGadc1Hq8nAysxmYB/ITA-Greencity-УБС?node-id=18992%3A96252

Steps to reproduce

Clicks on “1” in the field “Поточне замовлення”
Verify UI control's alignment, spelling, font, size, color
Verify that all required elements are present on the page (corresponds to mock-up)

Actual result

The writing on the "Редагувати" button is purple (#5539BB)

The writing on the "Завантажити фото з пристрою" button is purple (#5539BB)

The labels of the following fields differ from the mockup: "Оберіть ступінь порушення", "Фото порушення"

White color of the button with a black writing "Cкасувати".
Black button border
Font: Lato;
font-style: normal;
height: 18px;
width: 97px;
left: 4px;
top: 8px;

Gray color (#E3E6E8) of the button with a gray (#CACFD3) writing "Зберегти".
Font: Lato;
font-style: normal;
height: 18px;
width: 159px;
left: 4px;
top: 8px;

6. Checkbox that is not selected has a colored background and a black writing

7. The selected checkbox is gray

8. Incorrect alignment of elements: "Легке", "Серйозне" checkboxes and "Завантажити фото з пристрою" field

Expected result

The writing on the "Редагувати" button is green (#13AA57)

2. The writing on the "Завантажити фото з пристрою" button is light green (#B3E6C9)

3. All labels of the fields are as in the Mock-up

4. White (#FFFFFF) color of the button with a green (#13AA57) writing "Cкасувати".
    Green button border (#13AA57)
    Font: Lato;
    font-style: normal;
    height: 24px;
    width: 78px;
    left: 24px;
    top: 8px;

5. Light-Green color (#B3E6C9) of the button with a white (#FFFFFF) writing "Зберегти".
    Font: Lato;
    font-style: normal;
    height: 24px;
    width: 78px;
    left: 24px;
    top: 8px;

6. Checkbox that is not selected has no background and the label is gray (#9CA7B0)

7. The selected checkbox is green (#13AA57)

8. Fields "Порушення", "Ступінь порушення", "Деталі порушення", "Фотографії  порушення", "Завантажити фото з пристрою" have the same alignment

User story and test case links
E.g.: "User story #2862
Test case"

The highlighting is correct and corresponds to the existing mockups:
https://www.figma.com/file/JvDAu4MHnh1Vxc5FaokyiA/ITA-UBS-styles?node-id=15642%3A92142
Give a link to new mockups, please, if there are any, or close this issue.


[BUG] Not Connected To Server

Describe the bug
Connect ECONNREFUSED <IP_ADDRESS>:3006
Screenshots

System:

OS: win10

i get this also

Please make sure the prod tool is running as well and your configuration for the IP and port a correct

Please make sure the prod tool is running as well and your configuration for the IP and port a correct

i have the same issue, can u please give us more details on how to do that please

Please make sure the prod tool is running as well and your configuration for the IP and port a correct

all good but still not working same error

Could you post the resolution to your issue to help out other people encountering the same thing?

i can make it green and connected
but nothing  is showing in the software

all good fixed!

Any tips on how you resolved it?


feat: adding persistent scrollbar

Close https://github.com/aeecleclair/Titan/issues/204

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (9199c46) 56.60% compared to head (07ad7d4) 56.60%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #250   +/-   ##
=======================================
  Coverage   56.60%   56.60%
=======================================
  Files         160      160
  Lines        3491     3491
=======================================
  Hits         1976     1976
  Misses       1515     1515

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Here is how it looks on my phone :

It seems off compare to your screenshot


DropCollection fails with System.NotImplementedException

I've made a minimal unit test, which doesn't show this behaviour.
I suspect it may be related to the collection type?
Test method threw exception:
System.NotImplementedException: The method or operation is not implemented.
Result StackTrace:
at LiteDB.BinaryReaderExtensions.ReadBsonValue(BinaryReader reader, UInt16 length)
at LiteDB.IndexPage.ReadContent(BinaryReader reader)
at LiteDB.DiskService.<>c__DisplayClass11.<ReadPage>b__0()    at LiteDB.DiskService.TryExec(TimeSpan timeout, Action action)    at LiteDB.DiskService.ReadPage[T](UInt32 pageID)    at LiteDB.PageService.GetPage[T](UInt32 pageID)    at LiteDB.IndexService.GetNode(PageAddress address)    at LiteDB.IndexService.<FindAll>d__2.MoveNext()    at LiteDB.CollectionService.Drop(CollectionPage col)    at LiteDB.LiteCollection1.Drop()
at LiteDB.LiteDatabase.DropCollection(String name)
at Accord.Service.AccordService.Reset() in
snip

In this method ReadBsonValue throws a NotImplementedException when there read a invalid BSON data type. But, in theory, this will never to happend, only if your file is corrupted. Its always happing? It's with only 1 datafile?

It's always happening.
This is within a UnitTest of my application, so it's repeatable. The byte value read back is 255 - hence the invalid data type.
I'm trying to get a minimal repro, but so far no luck.
I can send you the failing file if that's useful?

Yes, please! Are you using concurrence insert/update/delete operations?

No, this is a single-threaded test.
The only thing I'm doing which is dodgy is the test is failing (terminating hard) before completion - which means the database isn't being disposed.

Database file attached.
The collection is called "jobStore".
Regards,
Rob
On Mon, Jul 27, 2015 at 12:17 AM, Mauricio David<EMAIL_ADDRESS>wrote:

Yes, please! Are you using concurrence insert/update/delete operations?
—
Reply to this email directly or view it on GitHub
https://github.com/mbdavid/LiteDB/issues/46#issuecomment-125047501.

In case the file doesn't make it through email/github, here's a link: https://www.dropbox.com/s/7fy59ri4dfid66x/accord-does-not-drop.db?dl=0

Strange, in LiteDB shell collections was drop if no problems.
> dump
Dump - Only Disk
0000 <----,----> [Header] 0000  | Change: 5, Version: 1, FreeEmptyPageID: ----, LastPageID: 0003, ColID: 0001
0001 <0000,----> [Collec] 0000  | 'jobStore', Count: 4, FreeDataPageID: 0003, Indexes = [0] Field: '_id', Head: 0002:0, FreeIndexPageID: 0002 /
0002 <0000,----> [Index ] 3103  | [0] Key: -oo, Data: ----:-- / [1] Key: +oo, Data: ----:-- / [2] Key: fa43c210-4523-44a4-97f2-99efef99d1a2, Data: 0003:0 / [3] Key: 07f4c714-42fb-437d-bf2c-1a8278c8dd42, Data: 0003:1 / [4] Key: 0463c159-85af-4329-a7ee-62f76ed2d65d, Data: 0003:2 / [5] Key: f6e85ba2-6013-40bf-a613-0d06baaa26db, Data: 0003:3 /
0003 <0000,----> [Data  ] 3243  | [0] BytesUsed: 105 / [1] BytesUsed: 105 / [2] BytesUsed: 105 / [3] BytesUsed: 105 /

> db.jobStore.find
[1]: {"_id":{"$guid":"0463c159-85af-4329-a7ee-62f76ed2d65d"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job3","lastUpdated":{"$date":"0001-01-01T02:00:00.0000000Z"}}
[2]: {"_id":{"$guid":"07f4c714-42fb-437d-bf2c-1a8278c8dd42"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job2","lastUpdated":{"$date":"0001-01-01T02:00:00.0000000Z"}}
[3]: {"_id":{"$guid":"f6e85ba2-6013-40bf-a613-0d06baaa26db"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job4","lastUpdated":{"$date":"0001-01-01T02:00:00.0000000Z"}}
[4]: {"_id":{"$guid":"fa43c210-4523-44a4-97f2-99efef99d1a2"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job1","lastUpdated":{"$date":"0001-01-01T02:00:00.0000000Z"}}

> db.jobStore.drop
true

> dump
Dump - Only Disk
0000 <----,----> [Header] 0000  | Change: 6, Version: 1, FreeEmptyPageID: 0001, LastPageID: 0003, ColID: ----
0001 <0000,0002> [Empty ] 4079  |
0002 <0001,0003> [Empty ] 4079  |
0003 <0002,----> [Empty ] 4079  |

> db.jobStore.find
no documents

When you interrupt program during write operations, database can be stay in corrupted state. When you call again, recovery file will be called and fix inconsistent pages.

I see identical behaviour in LiteDB.Shell too.
> db.jobStore.find
[1]: {"_id":{"$guid":"0463c159-85af-4329-a7ee-62f76ed2d65d"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job3","lastUpdated":
{"$date":"0001-01-01T00:00:00.0000000Z"}}
[2]: {"_id":{"$guid":"07f4c714-42fb-437d-bf2c-1a8278c8dd42"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job2","lastUpdated":
{"$date":"0001-01-01T00:00:00.0000000Z"}}
[3]: {"_id":{"$guid":"f6e85ba2-6013-40bf-a613-0d06baaa26db"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job4","lastUpdated":
{"$date":"0001-01-01T00:00:00.0000000Z"}}
[4]: {"_id":{"$guid":"fa43c210-4523-44a4-97f2-99efef99d1a2"},"creationDate":{"$date":"2001-01-01T00:00:00.0000000Z"},"priority":0,"userID":"job1","lastUpdated":
{"$date":"0001-01-01T00:00:00.0000000Z"}}
> dump
Dump - Only Disk
0000 <----,----> [Header] 0000  | Change: 5, Version: 1, FreeEmptyPageID: ----, LastPageID: 0003, ColID: 0001
0001 <0000,----> [Collec] 0000  | 'jobStore', Count: 4, FreeDataPageID: 0003, Indexes = [0] Field: '_id', Head: 0002:0, FreeIndexPageID: 0002 /
0002 <0000,----> [Index ] 3103  | [0] Key: -oo, Data: ----:-- / [1] Key: +oo, Data: ----:-- / [2] Key: fa43c210-4523-44a4-97f2-99efef99d1a2, Data: 0003:0 / [3]
Key: 07f4c714-42fb-437d-bf2c-1a8278c8dd42, Data: 0003:1 / [4] Key: 0463c159-85af-4329-a7ee-62f76ed2d65d, Data: 0003:2 / [5] Key: f6e85ba2-6013-40bf-a613-0d06baa
a26db, Data: 0003:3 /
0003 <0000,----> [Data  ] 3243  | [0] BytesUsed: 105 / [1] BytesUsed: 105 / [2] BytesUsed: 105 / [3] BytesUsed: 105 /

> db.jobStore.drop
true
> dump
Dump - Only Disk
0000 <----,----> [Header] 0000  | Change: 6, Version: 1, FreeEmptyPageID: 0001, LastPageID: 0003, ColID: ----
0001 <0000,0002> [Empty ] 4079  |
0002 <0001,0003> [Empty ] 4079  |
0003 <0002,----> [Empty ] 4079  |

>

Debugging:
In IndexPage.ReadContent the call to reader.ReadBsonValue has a parameter value of zero.
node.Position is 2:0
node.KeyLength is 0
I suspect issuing a zero length read to reader.ReadBsonValue is yielding the 255 return code.
My test is single threaded, but is appears the LiteDB watchdog thread is building an index at the same time?

The two threads (un-named worker thread) and the watchdog thread seem to be sharing an instance of the reader (same hash code).
Are they racing to read the same file? Is the file position being destroyed by the indexer?

LiteDB is no thread safe, so if two threads chage same object reference it's will be a problem.
You can have 2 (or more) instances of LiteDatabase connected in same data file.

Ah... That's probably my watchdog thread doing the stomping.
I'll get back on this tomorrow.
Thanks,
Rob
On Monday, July 27, 2015, Mauricio David<EMAIL_ADDRESS>wrote:

LiteDB is no thread safe, so if two threads chage same object reference
it's will be a problem.
You can have 2 (or more) instances of LiteDatabase connected in same data
file.
—
Reply to this email directly or view it on GitHub
https://github.com/mbdavid/LiteDB/issues/46#issuecomment-125050622.

Yes - I confirm that is my watchdog thread.
So, as you first suspected, this is a user error!
Cheers,
Rob


GUVNOR-3233: [Preferences] Invalid values of File exporting properties break Admin page

Hey @manstis @tomasdavidorg @paulovmr
This commit adds preferences validators for the PDF file export stuff.  Please, this ticket is important for next LA, would appreciate some feedback when you have chance., thanks in advance!!!
Notice moved from the use of Enum, as fields in the preferences bean,  to the use of String, because I was facing some issues, specially while coding in SDM, about the generated preferences beans, and because the value type for PropertyValidator are String's too. Anyway finally created 2 more built-in preference validators for constraining values - one for generic objects and another implementation for Enum types. This way the PDF file export preferences just re-use the core validator for enums for each field.
Thanks!

 Not sure what could be the root cause though. Could you try to rebase the branch against the latest master?

Just rebased - let's see if Jenkins agrees now

I doubt it. He's been disagreeable today.

Jenkins execute full downstream build

Errors are not related.


[mini.ai] textobject selection places cursor at the beginning instead of the end of the selection

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md
[X] I have updated 'mini.nvim' to latest version

Module(s)
mini.ai
Description
When using textobjects provided by mini.ai in Visual mode (e.g., vi) or vi"), the cursor is placed at the beginning of the selection. However, Neovim's default behavior places the cursor at the end of the selection.
This creates an inconsistency between mini.ai textobjects and Neovim's default textobjects. For example:

Using viw places the cursor at the end of the selected word.
Using vi) places the cursor at the beginning of the selected parentheses.

This behavior is unexpected for users accustomed to Neovim's default textobject behavior.
Would it be possible to:

Adjust the default behavior to match Neovim's default, where the cursor is placed at the end of the selection?
Alternatively, provide an option to configure this behavior?

Neovim version
0.10.3
Steps to reproduce

Open any file in Neovim with mini.ai enabled.
Place the cursor inside a pair of parentheses or quotes, e.g., This is (a test) or "some text".
Enter Visual mode and use vi) or vi" to select the textobject.

Expected behavior
The cursor should be placed at the end of the selected textobject, matching Neovim's default behavior.
Actual behavior
The cursor is placed at the beginning of the selected textobject.

Thanks for the suggestion!
If I remember correctly the main motivation for this behavior is to be consistent with how cursor is placed after operating on textobject. This is explicitly documented while cursor placement after visual selection is more of an implementation detail. At least I am not aware of the explicit documentation on the matter.
This was previously closed as not planned (but I can not find right now), but I'll revisit later (and also take a look at whether there are more important implementation reasons for that in 'mini.ai').

Thank you for your response and for explaining the design decision!
Based on my testing, in Neovim, after selecting a region and pressing y to yank, the cursor always moves back to the start of the selection. y + textobject acts the same. However, when using v + textobject to visually select content, the cursor always moves to the end of the selection.
This leads to a noticeable difference: for example, yiw leaves the cursor at the start of the word, while viw moves the cursor to the end of the word. If you follow viw with y (viw + y), the cursor first moves to the end of the selection (due to viw) and then returns to the start (due to y).
I’m not entirely sure why Vim was designed this way, but this has been the default behavior I’ve grown accustomed to over the years. It feels natural to me.
If it’s possible to add a parameter or configuration option to control this behavior in mini.ai, I would greatly appreciate it. This would allow users to choose between the current behavior and one more aligned with Neovim’s defaults.

There definitely won't be an option for this. I'll revisit and rethink about all pros and cons of putting cursor at the end vs the start. Right now I am leaning towards keeping current behavior, but we'll see.


Add functions to traverse TFRecords dataset

Append functions to traverse TFRecords dataset in cellx.tools.dataset:

[ ] Add fn to count the number of images in the created dataset
[ ] Add fn to convert the TFRecords images to np.stack to return

I fixed the counter fn, but in the 2nd one I keep using the build_dataset - otherwise I struggle to convert the tensors to numpy arrays (read as bytes).

Yes, that's right - you need to deserialize the examples to read the actual image data.


ungit not opens

I installed atom + ungit and try to open it, but nothing happens. No error message and no ungit tab.
How could it be debugged / fixed?

It was a nodejs problem... solved it!


Implemented: Use node/npm during gradle build from multiple sub-projects (OFBIZ-12787)

Added gradle plugin, ofbiz-node-conventions, to set conventional use of the gradle node plugin across OFBiz sub-projects (i.e. components).
Modified common-theme to install and cleanup NPM modules at appropriate points in the gradle task lifecycle.
This change will allow multiple components, including plugsin, to leverage the gradle node plugin in their build process without needing updates to the parent build.gradle script.

New node/npm build functionality for components can be observed by building the example plugin in PR https://github.com/apache/ofbiz-plugins/pull/77.
A new sub-menu has been added to the Example plugin which incorporates a react web app, build using npm.

Hi Daniel,
It's not OFBIZ-12787 but OFBIZ-12789 ;)

Hi Daniel,
It's not OFBIZ-12787 but OFBIZ-12789 ;)

Good catch - I'll recreate the commit and force push to get this PR updated


Update README.md

I found that when using immutable.js v4, the TypeScript version needs to be higher than v.2.1.0, and need to use import instead of require

Thanks!


Google Sheets Sync - Deploy Fails: NPM Dependencies

How to reproduce these conditions
Sample name or URL where you found the bug

Google Sheets Sync Function

Failing Function code used (including require/import commands at the top)
+-- UNMET PEER DEPENDENCY<EMAIL_ADDRESS>--<EMAIL_ADDRESS>'npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
Steps to set up and reproduce

Follow the steps in the guide/readme on Sheets Sync

Clone the repo and NPM install

Security rules used

Default

Expected behavior

run NPM install in the functions directory and then be able to deploy

Actual behavior

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

I was able to attempt a deploy with the failed dependency but this is the console logs on the deploy fail

Error: Error occurred while parsing your function triggers. TypeError: OAuth2Client is not a constructor at Object

Thanks for the report @tomtom215
We're going to fix all packages.json import version soon. In the mean time you can manually change the following lines in the functions/package.json file to make sure you are not getting the warning:
    "firebase-admin": "~5.8.1",
    "firebase-functions": "^0.8.1",

Thanks for the update @nicolasgarnier
I have cloned the most recent version of this function sample I was faced with some npm dependency versioning with this error -
 Error occurred while parsing your function triggers. Please ensure you have the latest firebase-functions SDK by running "npm i --save firebase-functions@latest" inside your functions folder.
This was simple enough to do, but I am still facing this error on deployment -
Error: Error occurred while parsing your function triggers. TypeError: OAuth2Client is not a constructor     at Object.<anonymous> (C:\Users\***\GitHub\cloudfunctions\google-sheet-sync\functions\index.js:45:30)     at Module._compile (module.js:570:32)     at Object.Module._extensions..js (module.js:579:10)     at Module.load (module.js:487:32)     at tryModuleLoad (module.js:446:12)     at Function.Module._load (module.js:438:3)     at Module.require (module.js:497:17)     at require (internal/module.js:20:19)     at C:\Users\admin\AppData\Roaming\npm\node_modules\firebase-tools\lib\triggerParser.js:18:11     at Object.<anonymous> (C:\Users\***\AppData\Roaming\npm\node_modules\firebase-tools\lib\triggerParser.js:38:3)
I have only followed the steps in the readme - please advise if this is an error on my end
Thanks!


Undefined symbol T in class Option, reported with Embarcader XE 7 C++ Builder (32-bit)

Description
A simple test using the tutorial fails with a build error:
[bcc32 Error] catch.hpp(3131): E2451 Undefined symbol 'T'
[bcc32 Error] catch.hpp(3131): E2109 Not an allowed type

The error is reported at line 3131.  The compiler seems to have trouble with T inside the union construct.
        union {
            char storage[sizeof(T)];

            // These are here to force alignment for the storage
            long double dummy1;
            void (*dummy2)();
            long double dummy3;
#ifdef CATCH_CONFIG_CPP11_LONG_LONG
            long long dummy4;
#endif
        };

I do not get that build error if I comment out the #define CATCH_CONFIG_MAIN statement.
Any ideas how to fix this?
Steps to reproduce
Added a file test_catch.cpp (which contains the tutorial example) to an Embarcadero project, and the catch.hpp header file (v1.10.0), and tried to build a console application.
Extra information

Catch version: v1.10.0 (single header file)
Operating System: Windows 7
Compiler+version: Embarcadero XE7 C++ Builder (32-bit)

32-bit version of compiler is proprietary and is C++98 only.
64-bit version of compiler is based on clang (3.1+svn) and has C++11 features, and compiles ok.

$ bcc32.exe --version
Embarcadero C++ 6.90 for Win32 Copyright (c) 1993-2014 Embarcadero Technologies, Inc.
Revision 6.90.5338.34256

$ bcc64.exe --version
Embarcadero C++ 6.90 for Win64 Copyright (c) 2012-2014 Embarcadero Technologies, Inc.
Embarcadero Technologies Inc. bcc64 version 3.1 (34540.0798eef.0c4972a) (based on LLVM 3.1svn)
Target: x86_64-pc-win32-elf
Thread model: posix

Wow! Borland C++ lives on! I've not used that for over 20 years!
So the 32-bit compiler appears to be virtually unchanged from the Borland days, AFAICS - and all new investment is in the 64-bit compiler which, as you say, is based on clang anyway.
There was an effort (#104), some years ago now, to maintain a fork for Borland Builder (which, I presume, would transfer to the Embarcadero version) - but, AFAIK, that was never kept up (there were some PRs that I would have needed to accept that made me nervous).
There was also a VC6 fork that was maintained for some time (maybe even a couple of years) - but even that was abandoned as untenable.
So I think the bottom line is that the 32-bit compiler is unsupported by Catch - but the 64-bit one should be fine.
Note that this is not about C++98 vs C++11. The issues with the Borland/ Embarcadero (32-bit) compiler are about missing C++98 conformance.
Sorry if that's not what you wanted to hear.
Of course if you're eager to plough on, and maintain your own fork you're entirely free to do so.

Not really that keen.  It's just a tool that we use at work.  I managed to get another single header test framework to compile with just a one line change, so thought it might be simple for Catch to be ported too.
Embarcadero is reasonably good at what it does, but C++ is a second class citizen to Delphi (which we don't use).  Even the recent clang version has been stuck at v3.3 for quite a while (so no C++14 support).
Now, I do remember that Embarcadero recently sent an email/advert stating they have released a free downloadable version of a 32-bit clang port (I think for the 10.1 Berlin or 10.2 Tokyo releases), so I might give that a go and see if I can get the XE7 IDE to play nice with that.  That would be a better option than using the legacy 32-bit compiler.

Good luck! Please let us know if that works out - in case anyone else has the same issue.
If you're not using the Delphi integration is there any reasons or you to stick with Embarcadero at all? Moving to vanilla clang would seem to solve this (and probably other) problem(s).

It's historical a choice for the company.  Apparently it was the best IDE by far at the time it was chosen, and is used for RAD development and simulation of C code used in embedded targets.  The support for Android, macOS, iOS, Linux, Windows seems advantageous (though we've only ever targeted Windows).  There's also a reasonable library of code that gets reused, as well as a comfort and knowledge base built up with senior developers, so the effort to switch to something else is a factor.

Since this has been "Wont fix" for over a month, I am going to close it.


Update registerSchemesAsPrivileged for Electron>5.x

Related #238 .
This allows me to run and package Electron 6 (without signing).

This should be bumped, the appveyor tests timed out

once more

Thanks @darqs!
Moving forward I would be interested in becoming a collaborator if you and @wojtkowiak are open to the idea 😄


Add logger configuration to output log to file

By default, slack-ruby-bot outputs logs to STDOUT.
We can silence log by changing log level, but can't change output destination.
So I added logger configuration to set custom logger.

Does it make sense to do this in slack-ruby-client (as well), https://github.com/slack-ruby/slack-ruby-bot/blob/master/lib/slack-ruby-bot/support/loggable.rb#L10 and piggyback on that?
Otherwise perfect. Can you please rebase and I'll merge.

@dblock,
Thank you for your advice to use slack-ruby-client to customize logger.
I rebased latest master!
If it's OK with you, please merge this PR 🙇

Merged


Setting $inlinecount=allpages doesn't return a count in the response

The issue is actually in the Net.Http.WebApi.OData library so it needs fixing in there and then this library needs updating to use the updated Net.Http.WebApi.OData library


Bug/Question - Trait methods can (apparently) be overridden.

Hello
Today I learned that apparently, a method that originates from a trait can be overridden by a method from the class using the trait. I was totally stumped when I learned this as this looks like function overloading in my eyes, which PHP does not support:
trait A
{
    public function foo($param1) {}
}

class B
{
    use A;

    // Apparently completely valid.
    public function foo($param1) {}
}

In any case, I'm not sure if it's very good practice to use it, as you can alias the trait method to use a different name such as fooPrivate.
I would like to support this, but the problem is, for goto at least, I can't uniquely detemine the declaringStructure of the method. Currently it works like this:

Fetch declaringClass of method. This is the (base) class that has it.
Look at traits of class to see if any of them have the method. If so, the method originates from the trait.

With this however, the declaringStructure of foo should be B as it takes precedence over the method from the trait, but when fetching methods for B, it will always include foo, no matter if it's overridden there or not (as getMethods also includes trait methods). Without fixing this, alt-clicking a call to ->foo will always navigate to the trait method instead of to the class method.
You could always regex your way through the class file to look for the overload, but that seems like a bad idea. Any idea's and should we even support this?
PS: If we support this, isAbstract checks in Tools also have to be removed for trait methods as non-abstract methods can also be overridden.

When I see all the implications, I think that "if" we support it, it will be after a first release.
For the moment, I think that it will be a wontfix as it is a really not common case.

Ok, seems like a good plan to me. Perhaps we should put this under "Things that will not be implemented" in the README, along with #101?

I'm closing this as it is won't fix and mentioned in the README for future reference.


Upgrade docker-client dep from 5.0.2 to 7.0.1

This reverts commit db39f5e
and upgrades docker-client to 7.0.1.

👍


Libcanard v2.0

Closes #168
Fixes #175
Closes #176 -- while the demos that are shown in the README still don't use Nunavut, they are explicit about it.
Closes #178 by removing the offending code (use Nunavut instead)

See the changelog in the README for a brief overview of the changes. The most interesting changes are two:

Split API into smaller entities to improve its orthogonality and fix the problem of const correctness reported by Scott.
Replace all linked lists with AVL trees to reduce the asymptotic complexity of both RX and TX pipelines from linear to logarithmic.

@coderkalyan do you want to include #171 into this release or should we wait for v2.1?

And I'll review the rest of this soon as well :)


Replace jquery smart autocomplete with a more robust solution

See todo in QuickFileOpen.js
Currently jquery smart autocomplete (http://laktek.com/2011/03/03/introducing-jquery-smart-autocomplete/) is used as an auto suggest list in Brackets. While this mostly works for QuickFileOpen there are some limitations so it's likely we will want to replace this component with a more robust solution when our need for an auto complete component grows.
Issues with jquery smart autocomplete

only accepts an array of strings. A list of objects is preferred to avoid some work arounds to display
both the path and filename.
the popup position logic has flaws that require css work-arounds
the popup properties cannot be modified once the object is constructed

Only 3 years later, this has now been done ;-)  The new Quick Open dropdown implementation will ship in 1.3


i stuck in Getting your expired subscriptions (this may take awhile)...

i stuck in Getting your expired subscriptions (this may take awhile)... and after 5 minutes automatically close and dont show any other message

Please update, and reopen a new issue if this still occurs


Garage door stuck closing or opening

What issue do you have? Please be as thorough and explicit as possible.
Garage door simulation with Sonoff 3Channel works to open/close from HomeKit but somehow will keep saying “Opening…” or “Closing…” indefinitely.
I have paired it with a DW2-RF contact sensor and inputted it in the settings, no change. Removing sensor and it still is stuck opening or closing message. Very strange.
In the past, without the sensor, it would change to Open or Close after the specified seconds in Operation time. Now it just stays indefinitely in the opening/closing. If I press it again it’ll operate the sonoff (go from closing to opening and Vice versa) but the status stays stuck.
Things Ive tried:
Removing bridge
Delete cache for sonoff 3CH
Delete plugin and config in homebridge
Remove/re-add bridge to HomeKit
Details of your setup.

Do you use Homebridge (with config-ui?) or HOOBS?

Homebridge

Which version of Homebridge/HOOBS do you have?

1.50

Which version of this plugin (homebridge-ewelink) do you have? Has the issue started since upgrading from a previous version?

10.0.0. I’m not sure, but it used to work. Not sure if this is due to newer version or not.

Which eWeLink devices do you have that are causing issues? Please include product models if applicable.

Sonoff 3CH (HC-3CH-E (3))

Do you use your main eWeLink credentials or do you use a secondary eWeLink account for Homebridge?

Main credentials
Please paste any relevant logs below.

Hi,
Closing this just as been a little overwhelmed with issues recently.
If this is still an issue or a feature you would like implemented then please do re-open this ticket!
Thanks for your understanding!

@bwp91 Im experiencing the same issue, suddenly the status is “closing” I’m not sure what’s the cause or how to reproduce, the status is correct in ewelink app it’s resolving after HomeBridge restart.
If I’m not mistaken the issue started 3 months ago, nothing was changed in my setup


Add copy commit SHA1 button in commits list

Targeting Issue - #13816
Description - This will add a copy button next to the SHA1 commit text in the commit lists page
Screenshots
Copy Button

On Hover

After Hover

Replaced by

https://github.com/go-gitea/gitea/pull/17759


[WIP] [auth] Lookup LDAP Groups does not work with IDM

Adding ruby to sssd interface (via dbus)
Added Support Getting User Groups for External Auth, should work with all ext auth, IdM, AD, Ldap.
Updated UI to not prompt for bind DN/password when ext auth enabled
Updated controller to call new get_httpd_groups_by_user method in model.

[skip ci]
https://bugzilla.redhat.com/show_bug.cgi?id=1158421

Marked as WIP

requires more UI fine/tuning
requires specs
requires SELinux policy

Note: SELinux.

currently only works in permissive mode.
basic problem is that appliance running from initrc.
created an SELinux policy to support this AVC denial and allow initrc context to access sssd.

require {
	type sssd_t;
	type initrc_t;
	class dbus send_msg;
}

#============= sssd_t ==============
allow sssd_t initrc_t:dbus send_msg;

should be ok, but need to review with security team.

Adding group with Internal or LDAP type authentication:

Adding group with External authentication.  See we only ask for the user to lookup:

Groups returned from IPA:


Wasm GC doesn't seem to collect garbage which results in GC heap out of memory errors

Test Case
Running Kotlin-compiled Wasm guest requires Wasm GC proposal to be implemented by the runtime and Wasmtime now officially supports Wasm GC since version 27.0.0.
I'm embedding Wasmtime in Go (Wasmtime version in wasmtime-go updated to 27.0.0 locally) and running a benchmark that calls a simple guest function which makes small heap allocations. A minimal Kotlin guest function that reproduces the issue looks like this:
@OptIn(UnsafeWasmMemoryApi::class)
@WasmExport("test")
fun test() {
    withScopedMemoryAllocator { allocator ->
            val ptr = allocator.allocate(16)
            ptr.storeInt(1)
        }
}

Running a benchmark which calls this this function from the host repeatedly results in GC heap out of memory error almost instantaneously. According to the discussion at #wamtime this might be caused by an issue with Wasm GC implementation in Wasmtime.
Expected Results
Kotlin's withScopedMemoryAllocator is supposed to free all the memory allocated during the function call so this function shouldn't cause GC to run out of memory.
Actual Results
Wasm guest execution fails with a GC heap out of memory error after several calls to the function.
Versions and Environment
Wasmtime version or commit: 27.0.0
Operating system: macOS
Architecture: arm64
Extra Info
It would be great to have more details in the documentation on how Wasm GC works in Wasmtime. For example, Wasm GC uses it's own memory but I can't find any documentation on the default size of it or whether it can be configured.
Edit: actually, MemoryAllocator doesn't rely on Wasm GC and uses linear memory instead so probably the GC heap out of memory error is not caused by allocator.allocate calls but by all the allocations Kotlin does automatically which do use Wasm GC heap.

Thanks for filing an issue! I just got back from vacation and am in the process of catching up on things.
To confirm: you are using the default collector (DRC) not the null collector?
FWIW, it is expected that the null collector will not collect garbage and allocation will eventually exhaust the GC heap.
The DRC collector is a reference-counting collector and does not have a cycle collector, so it is also expected to leak GC objects if they are part of cycles. This is fundamental. Additionally, at this moment the DRC collector does not yet transitively decrement reference counts, so many acyclic garbage objects will be leaked as well (eg with a cons list, only the head would be collected and not anything in the list's tail). This latter bit of leakage is not fundamental nor intended long term, it just reflects that this is a young, WIP implementation.
Final note: can you attach the .wasm or .wat file as a test case? This makes it easier for Wasmtime maintainers to debug and diagnose issues, since it removes needing to set up and invoke/understand/debug the Kotlin toolchain.

Thank you! Yes, this was tested with the default DRC GC. Sure, will provide a .wasm file shortly.

What is the size of the GC heap? Is it configurable?

At the moment it has a fixed, fairly small capacity of 512KiB. This is just intended as a default for running tests. The plan is to have all the same knobs that linear memories have, we just haven't gotten there yet.

And thanks for attaching the wasm files!


Updating README.md packages list

@krealyt These installation instructions should be in sync with the everest.github.io . How about storing this part in an extra file and including it in both files? To have one single source of truth.

@krealyt These installation instructions should be in sync with the everest.github.io . How about storing this part in an extra file and including it in both files? To have one single source of truth.

@Dominik-K Yes! :) This is one topic that we have already discussed and I want to do that on several locations where documentation is currently both on GitHub.com and on GitHub.io.
Should you want to start with this one, please drop me a line first, to talk about a "change strategy".


EC2 instances are not created and CF fails

I'm trying to spin up a new cluster on AWS with the following command:
./ose-on-aws.py \
--region=us-east-2 \
--keypair=openshift-infra \
--create-key=yes \
--key-path=/home/user/.ssh/id_rsa.pub \
--public-hosted-zone=mydomain.com \
--deployment-type=origin \
--ami=ami-18f8df7d \
--github-organization=#{GITHUB_ORGANIZATION} \
--github-client-secret=#{GITHUB_CLIENT_SECRET} \
--github-client-id=#{GITHUB_CLIENT_ID} \
--containerized=true \
--no-confirm \
--verbose

Unfortunately I got back the following error from CF:

No message and no way to enhance debug. do you have any idea? It seems that it's not possible to create only EC2 resources

Please, check the ami ID, I used this ami-10f53a06

Yep this solve the issue. Thank you @jcperezamin


Request for ClojureScript track

What programming language should we add?
ClojureScript
What is the official website for the language?
https://clojurescript.org
Is this a language that comes in many variants? If so, which variant should we support?
no
Is there a testing framework available for the language?
yes https://clojurescript.org/tools/testing
Who will be leading the effort to launch the track?
I don't know. Can it be me?
I am also going to draw attention to this in the #ClojureScript channel of the Clojurians Slack.

Note: there is a great deal that could be borrowed from the Clojure track. However, I believe that ClojureScript is distinct enough to benefit from a track that is independent of Clojure (think common lisp vs emacs lisp vs scheme vs LFE).

I don't know. Can it be me?

Yes! Absolutely.
For the most enjoyable experience, it's worth finding two or three other people who can help you launch it. With 1 person it's possible but often not particularly enjoyable (a bit lonely). With 2 people it's definitely doable. With 3 people something magical happens—the discussions tend to become lively and really inspiring and interesting and fun.
So I'm not warning you off, just suggesting that you find some co-conspirators from a local meetup, or an online community.
I will create the repository for you now.

Here you go!
https://github.com/exercism/xclojurescript/issues/1
Feel free to at-mention me if you have questions, of course! We're still working on the documentation, so if anything is unclear in the launch checklist or anywhere else, please open an issue and we can figure out how to improve it.
🎉 🎈

[ ] Run bootstrap script
TRACK_ID=<id> LANGUAGE=<language> bin/bootstrap
[ ] Turn on Travis CI
[ ] If Windows-specific language, turn on AppVeyor
[ ] If Mac-specific language, turn on Circle CI
Add it as a Linux project, then switch it to OS X in Project Settings -> Build Environment
[ ] Add as a submodule to trackler
TRACK_ID=<id>; git submodule add https://github.com/exercism/x$TRACK_ID tracks/$TRACK_ID
[ ] Create new team for language
[ ] Add bootstrapped repository to team with write access
[ ] Invite requestor to team

OK, it should all be set up now.

@ballPointPenguin did you ever have any luck finding people to help you implement this track?

Note—it has been 4 months without any contributions to the ClojureScript track, so I've deleted the repository.
If there's any interest in reviving it, we can reopen this issue and bootstrap a new repository.

Can we formalize this process a bit?
I think some "call us back in a week or we delete" were much nicer than just to delete everything without any warning.

Certainly. Would you mind making some suggestions in this issue? https://github.com/exercism/discussions/issues/143

For what it's worth, I still have a copy of this repo locally. There were no commits on it other than the ones I have made. I pinged the original requestor back in may and didn't hear back.

totally reasonable. I reserve hope that I will actually build this track, but since I have not made any commits, it's just as well done in a new repo if/when that time comes.

@ballPointPenguin ❤ It will be a super nice fresh repo when the time comes. Just holler :)

@kytrinyx, I'm really into this!

Just to confirm, @LeaveNhA, you are willing to take on the responsibility of building out the clojurescript track?

@LeaveNhA I've created a repository here: https://github.com/exercism/clojurescript/issues/1
Please submit individual pull requests with cohesive changes (e.g. documentation, CI setup, logo, individual exercises) to the new repo. I've given you commit access, so you can create branches right in the repo rather than creating a fork. Individual, smaller PRs will give us a few benefits:

We can help catch things that should have been documented but weren't
Ongoing development will be visible/transparent to others who are interested in following along
It will be easier to go back in the git logs to figure things out

If you find things that are odd or confusing, holler.
Welcome :heart: :heart: :heart:
@ballPointPenguin If you have the bandwidth and interest, it looks like maybe the ClojureScript track will have some activity going forward. If you want to help build it, holler, and we will add you to the maintainer team.

Also, if you're not in our Slack and want to be, email me at<EMAIL_ADDRESS>and I'll get you invited :)

Just to confirm, @LeaveNhA, you are willing to take on the responsibility of building out the clojurescript track?

Yes, I’m taking full responsibility, @kytrinyx.

Also, if you're not in our Slack and want to be, email me at<EMAIL_ADDRESS>and I'll get you invited :)

I, already am. Thank you. 😇


WIP: cleanup and improve tests

Pr #1070 also has a test to ensure TcpStream returned by TcpListener::accept are non-blocking.

@Thomasdezeeuw sounds good. Let’s get that one merged. I think adding more debug asserts would be good too. I can work on the later. I’m also working on importing uds support.

@carllerche do you plan to continue this work or can we close this?


Added support for remote hosts, fixed "performance" leak

Added the support to get system stats from remote hosts.
Since commands to get stats differ from system to system, I made the command and also the split and replace commands configurable.
There also was a problem with the interval timers in the node_helper.js. With every page request new timers where created but never stopped/deleted. This resulted in increasing faster updates and also increasing performance and memory consumption until raspberry crashes.
I fixed this by moving the interval timers to the client side, so they are resetted with each page request.

Wow nice feature, but a lot of code changes. I have to test this first.
Btw can you split the configuration table in the readme into two sections (basic & advance/remote).

Ok, I'm gonna have a look at it.

Hi Ben, I splitted the configuration into basic and advanced config values.
But I had to remove the config.unit value, since the commands are no longer hard coded in this version, but are also configuration values. I added the commands for the different units as example values in the readme.
If you want to keep the units or keep things simple, I can understand that. So if you dont want to merge the changes, please tell me, then I will rename the fork (e.g. MMM-SystemStatsRemote) and keep it as a separate module.
Happy Easter!

Thank you @Sickboy78 currently i am a bit busy. First impression looks good.
Have setup a mm and test it.


[Bugfix] Fix Cannot import name '_LIB' from 'mlc_chat.base'

#1167 imports LIB in chat_module.py, causing the doc-making process unable to find LIB, hence the API reference is not displayed in https://llm.mlc.ai/docs/deploy/python.html#api-reference.

Interesting! Thanks for spotting this issue. The particular bug I wanted to fix in #1167 is that _LIB, i.e. libmlc_llm.so, may not be loaded properly when a ChatModule is used, and thus leads to the issue below (report):
ValueError: Cannot find global function mlc.llm_chat_create

Therefore, the fix I introduced in #1167 effectively guarantees that _LIB is actually created before a ChatModule is used.
I don't 100% understand the doc building process, so please correct me - does it only rely on ChatModule's docstring? And this particular issue is caused because the given DSO is not present in doc building environment - which we could not enforce to exist - and therefore throws in the doc building process?

Thanks for the context! I'm not exactly familiar with the doc-building process either, but it indeed relies on ChatModule's docstring, particularly the API Reference part of our documentation: https://llm.mlc.ai/docs/deploy/python.html#api-reference, which comes from here: https://github.com/mlc-ai/mlc-llm/blob/main/docs/deploy/python.rst#L348.
I believe the reason why we weren't able to do from base import LIB is because of this line:
https://github.com/mlc-ai/mlc-llm/blob/main/python/mlc_chat/base.py#L25, where under the doc-making setting, LIB is not created.

@junrushao I think from . import base would serve as the same purpose while not requiring us to depend on _LIB when it is handled in skip SO mode

I see. I didn’t notice the “SKIP_LOADING_MLCLLM_SO” environment variable. It makes sense to me then!

Doc building still fails after this PR. I just checked and it says:
Try out the Prebuilt Webpage
------------------------
WARNING: autodoc: failed to import class 'ChatModule' from module 'mlc_chat'; the following exception was raised:
No module named 'shortuuid'
WARNING: autodoc: failed to import class 'ChatConfig' from module 'mlc_chat'; the following exception was raised:
No module named 'shortuuid'
WARNING: autodoc: failed to import class 'ConvConfig' from module 'mlc_chat'; the following exception was raised:
No module named 'shortuuid'
WARNING: autodoc: failed to import class 'GenerationConfig' from module 'mlc_chat'; the following exception was raised:
No module named 'shortuuid'
looking for now-outdated files... none found

I noticed that those dependencies are introduced because chat_module.py imports .interface.openai_api, which does need a few more packages (more than shortuuid). Ideally, it's technically not the best design if the core runtime API (ChatModule) depends on an API in the application layer, and we should fix it

Got it, will look into it today!


[REQUEST] windows options like other software

for example when i double click program in title its need go full screen or windowed screen but its not xd and when i click fullscreen button then click OB title and move this its go move but still fullscreen its need back windowed screen like other programs :3

kk

@Teals53 feature added you can close this now

no not all done yet ?

@Teals53 in order to achieve what you want I would have to remove the custom black window top bar and put the boring ordinary white one. It will look bad, I don't want to do that. If I find another way, I'll do it.

oh kk


KC-1746:  Upgrade Jetty,  HttpClient, Jersey, commons-codec.

This is to resolve a Jersey CVE.
Committer Checklist (excluded from commit message)

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

Sup of https://github.com/confluentinc/kafka/pull/574/


SQFormTextField and SQFormTextarea should allow character restrictions

Affected Components: SQFormTextField, SQFormTextarea
As part of the SQFormTextField and SQFormTextarea functionality a consumer should be able to pass a regex string that these components use to determine if the character the user is trying to input is allowed. If not it should bail out of the change handler.
It seems like a common use case for a textfield or textarea to restrict certain characters for things like login pages, CC details, alpha-numeric policy/serial numbers, SSN, etc.

MUI exposes a type prop to allow for many of these default HTML field types https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_<input>_types
Between the type prop and the new Masking input, we should have the 80% use case covered. The designs don't usually specify these specifics. If this becomes a more common practice it might justify a new prop-type.
Example usage for a login password field:
<SQFormTextField type="password" />

For sure. If we don't think this functionality would be utilized enough to justify the work to add it that's reasonable. I had a case where we would need it and though it would be a good addition. But you're definitely right. Between type and masking we hit most use cases.


Fix service.json location in nginx.conf

Because of incorrect service.json location, it's not possible to successfully create pod using esp_echo_custom_config_gke.yaml (see "Use your custom nginx.conf" section)
Logging parameters in nginx.conf also have been synced with similar settings found in b.gcr.io/endpoints/endpoints-runtime:0.3 container

@elibixby
Looks good to me.
thanks for the fix.


Revert "feat: bump minimal NodeJS version to 18"

Reverts lembdev/nestjs-protobuf-compiler#28

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Release is missing runtime dependencies

I've been trying to run on Ubuntu 22.04 and I've ran into a number of issues due to poor documentation.
I've documented them here: https://github.com/hyprwm/hyprland-wiki/issues/268
I believe uncommon libraries, especially ones, that do not have native OS packages, should be bundled with the release.
You are already bundling libwlroots, which by the way does have Ubuntu package, but not libdisplay-info, libliftoff, and libliftoff, which do not and are required by libwlroots.
I suggest either to remove the libwlroots from the release and add instruction to the wiki on how to install it (preferred) or bundle any 3rd level dependencies that are not commonly found in native OS package repositories.

I believe uncommon libraries, especially ones, that do not have native OS packages

https://repology.org/project/libliftoff/versions
https://repology.org/project/libdisplay-info/versions

I've been trying to run on Ubuntu 22.04

I suggest either to remove the libwlroots from the release and add instruction to the wiki on how to install it (preferred)

#302
Your entire post is just a massive "I did not check anything, did not read anything, I am a ubuntu user, everything should just work" moment


[github template] Extend PR template with issue reminder.

Description
Extend PR template with reminder to include linked issue, if any (I often forget to mention it).
Testing instructions
n.a.
Types of changes

GitHub template only

Checklist

[x] Prefix PR title with [WIP] if necessary.
[x] Add tests to cover changes as needed.
[x] Update documentation as needed.

/azp run


How install firefox french version ?

Hi,
Is see to firefox.rb that get en_US version.
How get french version of Firefox with brew cask ?

brew cask install caskroom/versions/firefox-fr


OSL Internship Program 2024-01 (Orgs/Projects): Makim

Organization/Project Name
Makim
Organization/Project Webpage URL
https://osl-incubator.github.io/makim/
Organization/Project Introduction
Makim (or just makim) is based on make and focus on improve the way to define targets and dependencies. Instead of using the Makefile format, it uses yaml format.
Organization/Project Summary
Makim aims to offer a way to define targets and dependencies with some special control options, like conditionals if, etc.
Some Key Features:

Help text as first-class in the .makim.yaml specification. It can be used by targets and arguments.
Targets have an option for arguments.
Targets have an option for dependencies.
Dependencies can call a target with specific arguments.
Dependencies can have a conditional control flow (if).
Allow the creation of groups, so the targets can be organized by topics.
Targets and groups have an option for user defined variables and/or environment variables.
Access arguments, variables or environment variables via template (using Jinja2).
Option for using dot environment files using env-file key.

Organization/Project Structure
Makim is under the OSL Incubator Program
Applicant's Full Name
Ivan Ogasawara
Applicant's Email
<EMAIL_ADDRESS>Code of Conduct Agreement

[X] I have read and agree to the
Code of Conduct.

Project Ideas Document Link
https://github.com/osl-incubator/makim/issues/74

@xmnlab  thank you for applying to the internship project program.
We're pleased to inform you that your application is complete and in excellent condition.
Our team will review it and get back to you shortly with further details.
We appreciate your interest in joining our program.
All the best.

Makim is already listed:

OSL Internship page https://opensciencelabs.org/programs/internship/cycles/2024-01/#makim
Announcement Blog Post https://opensciencelabs.org/blog/call-for-interns-2024-01/#makim


Add managed pipeline variables to pipelinegenerator

Add support for managed variables in pipeline generator:
meta.platform: java
meta.category: ci
meta.component: storage
meta.autoGenerated: true

Am I understanding this correctly? The code will take the existing pipeline generator conventions and set pipeline/definition level variables, which I assume will then get consumed as environment variables by the metric provider? I think it would be helpful to provide some documentation or links to documentation in the comments here, as "variable" is an overloaded term in devops and it took me a few minutes to figure out what this was doing.

@benbp, "Variable" in this case will standard pipeline level variables that can be used by the pipeline $(meta.platform), processes in the pipeline Environment.GetEnvironmentVariable("meta.platform"), or in kusto queries about the pipeline `where Variables['meta.category'] == 'test'


update owners file

What type of PR is this?
cleanup
What this PR does / why we need it?
Update OWNERS to with current maintainers

Codecov Report

Merging #85 (72323bd) into master (bc3a6b2) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##           master      #85   +/-   ##
=======================================
  Coverage   66.69%   66.69%
=======================================
  Files          19       19
  Lines        1165     1165
=======================================
  Hits          777      777
  Misses        322      322
  Partials       66       66


Spotlight focus behaving differently depending on screen resolution.

Category

[x] Rendering issue
[ ] Crash/Exception
[ ] Console error or warning
[ ] CLI issue
[ ] Other

Description
I have multiple horizontal VirtualList components within a Moonstone Scroller component. Using keyboard navigation, the expected behavior is to change focus to the adjacent VirtualList (when the down key is pressed, the focus changes to the VirtualList below the current focused item). Whenever setting the viewport to 1920 x 1080 using Chrome's dev tools, this works. However, using my native browser resolution (2560 x 1334), different behavior occurs. Rather than changing focus to the next VirtualList, it attempts to scroll the page. The page has been refreshed between these tries and it makes no difference.
Below are screen recordings:
1920 x 1080 (expected behavior):

Glitched behavior/ native browser resolution (2560 x 1334):
https://user-images.githubusercontent.com/5975311/148848547-3c6567ab-9704-4d61-8b3b-1248c59a3bc7.mp4
Environment
Arch Linux (reproduced on macOS too)
Chrome Version: 97.0.4692.71 (Official Build) (64-bit)
Node: v14.17.6
Enact version:
v4.1.2
Reproduction Code
(Roughly the component hierarchy)
<Scroller
        direction="vertical"
        verticalScrollbar="hidden"
        focusableScrollbar={false}
>
  <!-- some divs and such -->
  <VirtualList
        direction="horizontal"
        horizontalScrollbar="hidden"
        ...
  />
</Scroller>

Comments and Screen Shots
See above for gifs.

Hi @DrakeWitt Thanks for reporting the issue with detailed information! We will look at it shortly. Can you share your code so that we can reproduce it?

I created a quick demo project that reproduces the bug: https://github.com/DrakeWitt/enact-virtuallist-bug-demo

@DrakeWitt Good catch! 👍 The issue is reproduced with your sample and we're finding what actually happened inside.

@DrakeWitt
Due to non-integer rectangle boundaries of focusable elements, there is some issue with choosing the next focus target on key down. We're finding a proper way to handle this and we will ship it in the next release. Until the next release, changing items smaller (at least 1px) inside lists could be helpful.
I found you don't pass rest params in itemRenderer function. It looks not an actual case but a sample code, but I left some notes for sure. If rest params are not passed, focus navigation inside lists does not work well. Refer enactjs.com

This issue is resolved in #2997 and will be shipped in the next release.
Note that the issue occurs when a spottable element is NOT contained inside a spotlight container. Normally this does not happen since app developers make elements' size fit into a container. In the reproducing sample, elements' size is calculated with a floating-point parameter to match with viewport size and becomes slightly larger than container size. The fixed code is to allow an epsilon (under one px) on comparison between a container and an element to support various size units which lead to floating-point calculation and size mismatching.


Simplify the Environment assign in connections table

Notes for Reviewers
This PR fixes #

Remove the selection count and make simple multiselect with checkbox

further behaviour is fixed by: https://github.com/meshery/meshery/pull/10551

Signed commits

[ ] Yes, I signed my commits.

👍


Language Translation JP

@qlpqlp PING

Just need a JP Shibe to review it. I will ask the Dogecoin Community for help :)

@kmtr Thank you for the review!
I made the following adjustments. I also checked the screen to ensure that the layout remains intact.
https://github.com/dogecoinfoundation/dogecoin.com/pull/308/commits/fdfb5b05791718a328f2d9f66cac5a00cdb850fe

@qlpqlp I got approval from @kmtr  review. Please merge it if there are no issues.

https://github.com/dogecoinfoundation/dogecoin.com/pull/308/commits/c45e9ad7ca883d1ce103b54a944696723b99a3dc
update to v1.14.9

@qlpqlp Isn't it possible to release this PR for Japanese users?

@qlpqlp PING


Jenkins job cleans up cluster even when it is not specified

When running the osde2e scale test the Cluster cleanup box was unchecked yet the clusters were cleaned up anyway. See https://jenkins.scalelab.redhat.com/job/SCALE-CI-MS-OSDE2E/12/ for an example

cc @chentex @morenod

This was problably introduced after removing "is True" here https://github.com/cloud-bulldozer/perfscale-managed-services/pull/82/files#diff-b00512b305bddf9239d88a18b35005689c1ea31c9217e6f67386b7b7e04f9735L520
It will be fixed here https://github.com/cloud-bulldozer/perfscale-managed-services/pull/83/files#diff-d9221c824593436ccce0488ca4acb649af24d233a34b90ac63384cc3f270e7b2R478


Updated deploy script

Updated deploy.ps1 to stop errors when $nugetExePath is not the full
path name of nuget.exe but instead has a a folder path.

Rearranged entry code in deploy.ps1 to after the functions.

Added a space to final deployment text so it reads better.

Thanks!


Implement 'api_key' Parameter for Direct API Key Overrides

Hi,
I've introduced an 'api_key' parameter in the completion and embedding functions (see issue #9). This allows for direct API key overrides, providing an alternative to the current method of using environment variables.
Thank you!

Nice!
Can you please change it to apiKey as we are in JS land, camel case is the standard.


Oculus Quest isn't detected by SteamVR when using Windows Mobile Hotspot

Please follow the general troubleshooting steps first:

[X ] I ran "add_firewall_rules.bat" as administrator and checked that the ports are open in the firewall
[X ] I read the ALVR Wikis here and here

Bug reports:
The Oculus Quest doesn't get detected by Steam when connecting it through a Windows Mobile Hotspot despite ALVR detecting and connecting to the headset just fine. SteamVR detects the headset just fine though when connected through a non hotspot connection.
Environment
What hardware do you have: Pentium G4560, GTX 1050
What version of ALVR and SteamVR have you tried.
Experimental v10 and SteamVR 1.11.11
Do you have the latest Windows updates?
Windows 10 1909
Not sure if anything else is needed, but I'd be happy to supply any more info if necessary.

Why would you use a mobile hotspot? Also those specs are not that well suited for vr in general

Using the mobile Hotspot should get me a much more stable connection than my current setup since currently my PC is using WiFi and I can't connect it via ethernet.
And I'm well aware that my PC is below spec for VR but I've gotten a few games working well enough on it with the Quest.

it works fine for me, at least when i was using ALVR.... version 7 or 8 i think. have not tried on v10.
btw try pinging your quest thru CMD.
start, cmd
ping oculusquestipaddress

Huh, might give those earlier versions a test in a few days. And would pinging it really give any other results? Cause it shows up just fine on the ALVR program under a different IP than it does when connected to the normal router. It just doesn't get picked up by SteamVR.

yeah pingin will make sure you got a connection to it and its not a bug with incorrect ip address being connected.
btw if using older alvr, make sure to uninstall and install the alvr driver from the right most tab (i think it  was "About"?) just to be extra safe.

I pinged the Quest and it successfully pinged back. And I also tried using v8 and v7 of ALVR but those didn't work either. I also briefly tried Vridge's trial with the mobile hotspot and that had no problems interacting with SteamVR, so I wonder what's going on with ALVR and the hotspot.

This is most likely a firewall issue. VRidge and VD use a different network architecture.
For ALVR, the headset sends packages freely to the pc and the firewall has to allow that. Pinging the headset is the wrong way.
Try to temporarily disable the firewall and try again

Alright, so disabling my firewall did allow me to finally connect my headset using the mobile hotspot. Although now I wonder if there's anyway to do so without having to disable the entire firewall.


a helpful readme

Here's the RP version of the README.
Let me know if any changes are needed.

thanks!


Properly backup sysconfig files

What does this PR do?
Copy OCP and Origin files in /etc/sysconfig if found
How should this be manually tested?
Run the script
Is there a relevant Issue open for this?
Related to https://github.com/openshift/openshift-ansible-contrib/pull/972
Who would you like to review this?
cc: @bobross419 @cooktheryan  PTAL

I tested this manually on the same server as I used in #972, diff of the output directories match.  LGTM! Thanks @e-minguez
# oc version
oc v1.5.0+031cbe4
kubernetes v1.5.2+43a9be4


[Errno 2] No such file or directory

Hi,
I get the error below after building the container using docker-compose.
python: can't open file 'app.py': [Errno 2] No such file or directory
I would appreciate any help.
Thanks.

@uzziwizzle I cannot replicate this issue.  As this is an old issue can you try again with the latest updates


[improve] When pr contains only md file shouldn't trigger maven compile.

When pr just contains only md files shouldn't trigger compile.

Pr https://github.com/streamxhub/streamx/pull/1357 had merged.


[multi-stage] aggregate node with group by key hash collision may produce wrong result

AggregateNode is using hashcode as key for _groupByResultHolders and _groupByKeyHolder map.
If > 1 keys have hashcode collision, only one will be used to produce results.
@walterddr FYI

yes this is possible. we need something similar to the GroupKeyGenerator used in leaf stage aggregate group by executor


Remove the deprecated Modulefile and replace with metadata.json

Puppetforge now uses metadata.json. Moving to it means we'll get display
more relevant information on the forge pages and search results.
And gives us a higher score of course.

merge when green

merged since its not an actual code change


Devtools yield "URI Malformed" error when unicode emoji present

Hi @TeemuKoivisto ,
Thanks for your work. 👏
I find a bug just now. After some research, it seems this is an old bug which exist in prosemirror-dev-tools. And it is also exist in this package. It is greatful if you can take a look at it.

Bug detail:

https://github.com/ProseMirror/prosemirror/issues/906.
https://github.com/d4rkr00t/prosemirror-dev-tools/issues/96

Hey @percy507 !
Thanks, never actually have noticed that one. But ugh, seems like the problem lies in jsondiffpatch library (surprise surprise). Well, there are basically two options here: try to get the fix merged to the original package which has been unmaintained for some time. Or two, and which I really would not want to do, fork the lib and fix that bug by myself (as well as update its dependencies).
But I really wouldn't want to have to maintain/fix yet another package. Especially one with legacy code I don't know anything about. I'll see what I can do.


Ignore swift build artifacts

The CI failures are unrelated to the change and are most likely due to not pinning to specific version of rubocop related gems.  I'm going to fix those but you'll need to merge the changes down into your branch afterwards in order to get CI working again here and on your other fixes.  Sorry for the trouble!

Looks good, I'm ignoring the non-blocking cached license failure workflow, which is due to the token not being available on PRs from forks.


Suggestion: Drop support for python versions < 3.7

The CI only covers versions 3.8 and above, and 3.6 reached EOL a while ago.
I didn't actually go through the code but I noticed that the package has the classifiers for the old versions.

Since we only depend on the standard library, I'm fine with supporting a wider range of Python versions. Though Python 2 needs to go. WIP #23
I'm thinking of covering back to 3.6 in the next minor release, unless there's a good reason not to. See this comment.

Great work!
I'm not sure if Python 3.6 is widely used because most people I know are on 3.7 and above (circumstantial). Even though 3.7 is EOL as of a few days ago, I think it will be a while before projects migrate from it. Regardless, I think you're right to only remove Python 2 in your PR.
I would recommend you run https://github.com/asottile/pyupgrade against the repo as well.

I also migrated to pyproject.toml and it proved too painful to make editable installs work on py36 in CI. So, in the end, I went ahead and pinned it to >=3.7. Thanks for your help.


About MLN（Modified Layer Normalization）

This paper provides new perspectives about Transformer block, but I have some questions about one of the details.
As far as I know, the LayerNorm officially provided by Pytorch implements the same function as the MLN, which computes the
mean and variance along token and channel dimensions. So where is the improvement?

The official example :
#Image Example
N, C, H, W = 20, 5, 10, 10
input = torch.randn(N, C, H, W)
#Normalize over the last three dimensions (i.e. the channel and spatial dimensions)
#as shown in the image below
layer_norm = nn.LayerNorm([C, H, W])
output = layer_norm(input)

Hi @youngtboy ,
Thanks for your attention. Please refer to this issue #9 .

Hi @youngtboy ,
Thanks for your attention. Please refer to this issue #9 .

Thanks for your explanation!

Duplicate of #9


add missing instruction

closes https://github.com/MicrosoftDocs/OfficeDocs-SharePoint/issues/3443

@MikePlumleyMSFT PR has been copyedited and is ready for final review, could you please check and merge? Thanks!