[BUG]

Describe the bug
long names causes the entire plugin to glitch
To Reproduce
Steps to reproduce the behaviour:

Run command /team create lospibes
the entire plugin just glitches out

Expected behaviour
when i use short names everything works fine and teams works fine, only happends with long names
Screenshots

(creating a team with short name like "test")

(creating a team with a semi short name like "lospibes")
Details
Please provide the following details about your server set-up:

Spigot version (found by running /version): mohist 1.12.2-198
BetterTeams version (found by running /version BetterTeams):  3.1.22

Additional context
mods used in case anyone asks (TF2 Stuff mod)

It appears to be for me. It may be caused by mohist, I'm not familiar with that server software.
Your screenshot says "An internal error occurred..." If you could provide a screenshot of the error in the console I may be able to offer more support. But I am leaning towards it being a problem with mohist as when I tried to use a fabric/spigot server all my plugins broke, at a guess forge/spigot will have the same problem.

https://mclo.gs/CcXebD4 logs after creating a team with more than 5 letters
in fact mohist is for plugins and mods

What is the value of nametag.syntax in your mesages.yml file. There must be a problem with the specific syntax as there is a '?r' being added to the team name which is not done by the plugin.

nono that's the fault of the hosting's panel, doesn't show console colors properly so everytime it ends something with ?r or something like that

Could you please attach your messages.yml file and I will test if your file works on a standard spigot server. If it does then the problem is with mohist. If it does not, the problem is with the plugin and will be fixed.

https://mclo.gs/bJuWGV4 < messages.yml

Ah, I took too long to open the log and it is now deleted. Could you please reupload


Web UI improvements

Fixes #247

It looks like when EnableUI is set to true or false, it always prompts (if origin password file does not exist):
Pelican admin interface is not initialized
To initialize, login at https://e66d18373dad:8444/view/initialization/code/ with the following code:
191229

The only difference that this config setting seems to make is adding this line:
INFO[2023-10-24T20:30:23Z] Origin web UI is not enabled; skipping setup
Otherwise the behavior of the EnableUI config seems very similar in both cases and with -d flag set the output is basically the same and the webpage being generated is the same. Is this the intended behavior?


Sending ping conflicts with send_message

The following code sends a message upon connect. It listens for messages, while also sending a ping at regular intervals to keep the socket alive.
Adding the keepalive causes it to crash.
import json
import gzip

import trio
from trio_websocket import open_websocket_url

import threading

from time import sleep

# import traceback

# from utils import tprint

class WebSocket:
    KEEPALIVE_INTERVAL_S = 10

    def __init__(self, ws_url, on_connect, on_msg):
        self.ws_url = ws_url
        self.on_connect = on_connect
        self.on_msg = on_msg

    async def run(self):
        while True:
            try:
                async with open_websocket_url(self.ws_url) as ws:
                    print(f'{self.ws_url} connected')

                    self.ws = ws

                    async with trio.open_nursery() as nursery:
                        async def keepalive():
                            while True:
                                print('sending ping')
                                await ws.ping()
                                await trio.sleep(WebSocket.KEEPALIVE_INTERVAL_S)

                        async def recv():
                            while True:
                                msg = await ws.get_message()

                                if isinstance(msg, bytes):
                                    try:
                                        msg = msg.decode('utf8')
                                    except:
                                        print('DECODE FAIL')
                                        print(msg)
                                print('GOT MESSAGE', msg)

                                return json.loads(msg)

                        nursery.start_soon(self.on_connect, ws)
                        nursery.start_soon(recv)
                        nursery.start_soon(keepalive)

            except Exception as e:
                print('⛔ WebSocket disconnect')
                await trio.sleep(5)
                print('Attempting reconnect')

        print('👋 from trio_main')

WS_URL = 'wss://ws.hotbit.io'

if __name__ == '__main__':

    async def trio_main():
        async def on_connect(ws):
            print('sendingJSON')
            await ws.send_message(
                json.dumps({
                    'method': 'deals.subscribe',
                    'params': ['ETHUSDT','BTCUSDT'],
                    'id': 123
                })
            )

        async def on_msg(msg):
            print('GOT MSG', msg)

        ws = WebSocket(WS_URL, on_connect, on_msg)

        print('Running')
        await ws.run()

        print('👋 from trio_main')

    def trio_threadfunc():
        trio.run(trio_main)
        print('👋 from trio_threadfunc')

    trio_thread = threading.Thread(
        name = 'aio_thread',
        target = trio_threadfunc,
        daemon = True,
        # args = (foo,)
        )

    trio_thread.start()

    print('Entering mainloop')
    while True:
        print('mainTick')
        sleep(1)

Here's the crashdump:
> ./WebSocket_Trio.py
Entering mainloop
mainTick
Running
 2021-06-12 17:55:47,539             _impl.py:169    connect_websocket() Connecting to wss://ws.hotbit.io:443/
 2021-06-12 17:55:47,563             _impl.py:1251                _send() client-0 sending 151 bytes
 2021-06-12 17:55:48,129             _impl.py:1227         _reader_task() client-0 received 516 bytes
 2021-06-12 17:55:48,130             _impl.py:1204         _reader_task() client-0 received event: <class 'wsproto.events.AcceptConnection'>
 2021-06-12 17:55:48,131    WebSocket_Trio.py: 42                  run() wss://ws.hotbit.io connected
sendingJSON
sending ping
 2021-06-12 17:55:48,132             _impl.py:1251                _send() client-0 sending 80 bytes
 2021-06-12 17:55:48,133             _impl.py:1251                _send() client-0 sending 10 bytes
 2021-06-12 17:55:48,247             _impl.py:1227         _reader_task() client-0 received 76 bytes
 2021-06-12 17:55:48,248             _impl.py:1204         _reader_task() client-0 received event: <class 'wsproto.events.BytesMessage'>
wtf
b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xabVJ-*\xca/R\xb2R\xc8+\xcd\xc9\xd1QP*J-.\xcd)\x01\xf2\xab\x95\x8aK\x12KJ\x8b\x81L\xa5\xe2\xd2\xe4\xe4\xd4\xe2b\xa5Z\xa0\x82\xcc\x14\xa0\x88\xa1\x91q-\x00k\x14\xb2(;\x00\x00\x00'
GOT MESSAGE b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xabVJ-*\xca/R\xb2R\xc8+\xcd\xc9\xd1QP*J-.\xcd)\x01\xf2\xab\x95\x8aK\x12KJ\x8b\x81L\xa5\xe2\xd2\xe4\xe4\xd4\xe2b\xa5Z\xa0\x82\xcc\x14\xa0\x88\xa1\x91q-\x00k\x14\xb2(;\x00\x00\x00'
 2021-06-12 17:55:48,250             _impl.py:1227         _reader_task() client-0 received 1981 bytes
 2021-06-12 17:55:48,250             _impl.py:1204         _reader_task() client-0 received event: <class 'wsproto.events.BytesMessage'>
 2021-06-12 17:55:48,250             _impl.py:1251                _send() client-0 sending 8 bytes
 2021-06-12 17:55:48,251             _impl.py:1227         _reader_task() client-0 received 1962 bytes
 2021-06-12 17:55:48,251             _impl.py:1204         _reader_task() client-0 received event: <class 'wsproto.events.BytesMessage'>
 2021-06-12 17:55:48,255             _impl.py:1227         _reader_task() client-0 received 2 bytes
 2021-06-12 17:55:48,255             _impl.py:1204         _reader_task() client-0 received event: <class 'wsproto.events.Pong'>
 2021-06-12 17:55:48,365             _impl.py:1221         _reader_task() client-0 received zero bytes (connection closed)
 2021-06-12 17:55:48,366             _impl.py:1019    _close_web_socket() client-0 websocket closed ConnectionClosed<CloseReason<code=1006, name=ABNORMAL_CLOSURE, reason=None>>
 2021-06-12 17:55:48,366             _impl.py:1237         _reader_task() client-0 reader task finished
⛔ WebSocket disconnect
mainTick

Simply removing the on_connect message fixes:
        async def on_connect(ws):
            print('sendingJSON')
            # await ws.send_message(
            #     json.dumps({
            #         'method': 'deals.subscribe',
            #         'params': ['ETHUSDT','BTCUSDT'],
            #         'id': 123
            #     })
            # )

Note that get_message isn't picking up the pong response.
So somehow send_message and ping are interfering with one another.
I thought it might be a timing issue, that both sends are happening at the same time. If that was the case this would resolve it:
                                # reverse the order, so sleep BEFORE pinging
                                await trio.sleep(WebSocket.KEEPALIVE_INTERVAL_S)
                                await ws.ping()

But it doesn't.
Is this a known issue? Or a PEBCAK my end...

It isn't crashing. The remote server just doesn't like you or what you are doing to it, and is closing the connection.
 2021-06-12 17:55:48,365             _impl.py:1221         _reader_task() client-0 received zero bytes (connection closed)
 2021-06-12 17:55:48,366             _impl.py:1019    _close_web_socket() client-0 websocket closed ConnectionClosed<CloseReason<code=1006, name=ABNORMAL_CLOSURE, reason=None>>

Hmm, using aiohttp websocket, ping works fine.

And if I remove the ping, it works fine!

My bad, I was failing to gzip-decompress the payload.
Nothing to do with ping.


Can't use CRA

Environment

node -v:  v9.7.1
npm -v: 5.8.0
yarn --version (if you use Yarn): 1.5.1 EDIT: I updated yarn
npm ls react-scripts (if you haven’t ejected):  empty

Expected Behavior
When I use npx create-react-app create-app it creates a react app...
Actual Behavior

I also tried a global npm install of create react app and it produced the same errors.

Can you try yarn create react-app my-app?

Please contact your registry admin and ask them to add the packages for create-react-app.
Or, as @fazouane-marouane, point back at the public npm repository.


added nested values construct assign to field when it is a model

Change Summary

This fix allows to pass the construct result of a value of a field when this field is a model, allowing root validations in a top model to be evaluated properly.  In the issue it is present the motivation for this fix.
Related issue number

#1643
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

Closing this as per https://github.com/samuelcolvin/pydantic/issues/1643#issuecomment-650593607


File upload option for IcButton

It is not uncommon for a button to be used to upload a file. By clicking on the button the file explorer is launched and file selected. Text is then placed to the side of the button with the filename. This is done in html by setting the attribute "input=file". If you could allow this for IcButton that would be great.

Early thoughts here is that we'd also need to expose some sort of changed event to be aware of what the file selected is potentially. If we're doing this work, it'd be worth considering how much extra work a basic file upload component would be

closing as duplicate

Duplicated by #1050


Use registry.access.redhat.com as finalimage for java-spring-boot2 stack

Signed-off-by: Scott Kurz<EMAIL_ADDRESS>Updates to the collections
Change the final image, obtaining from  registry.access.redhat.com.
Related Issues:

@garypicher for your review.


Image/Mask geometry mismatch (installed using docker).

Thank you very much for this wonderful repository. I have installed pyradiomics using docker. When I use it to extract radiomic features, I met the 'Image/Mask geometry mismatch' error.
code:
sudo docker run -it -v /:/data radiomics/pyradiomics:CLI /data/.../input.nrrd /data/.../mask.nrrd
error:
Image/Mask geometry mismatch. Potential solution: increase tolerance using geometryTolerance, see Documentation:Usage:Customizing the Extraction:Settings:geometryTolerance for more information
I wonder how to increase the geometry tolerance in the case that I have installed docker pyradiomics.
Thank you very much and looking forward to your reply.

You can enable resampling by adding correctMask: True to the settings, see this article: https://pyradiomics.readthedocs.io/en/latest/faq.html?highlight=resample#geometry-mismatch-between-image-and-mask
When you get this error, we advise that you visually examine the mask and image for correspondence, using 3D Slicer, for example, to ensure the issue is indeed not due to something more serious.

It works. Thank you very much and have a nice day. (In this case, the pixel spacings of the input and mask images are slightly different)

Great, thanks for confirming!

@fedorov  Thanks for the solution.Wasted more than 7 hours in it.Finally worked!


let the button can transport variables[FEATURE]

Is your feature request related to a problem? Please describe.
now the button only support a variable,that is cursive.But some time I need string
Describe the solution you'd like
One more variable please.

You can use feature called closure in order to achieve that:
add_button("OK",|siv|
{
let s = String::from("Hey");//alternatively this string could come from outside scope, in that case use move before |siv|
call_my_function(siv,s);
});

You can use feature called closure in order to achieve that:
add_button("OK",|siv|
{
let s = String::from("Hey");//alternatively this string could come from outside scope, in that case use move before |siv|
call_my_function(siv,s);
});

Thanks

let s = String::from("Hey");//alternatively this string could come from outside scope, in that case use move before |siv|
call_my_function(siv,s);

Sorry , It doesn't work.
 let buttons = LinearLayout::horizontal()
     .child(Button::new("save", |s|{
            let temp = name;
      }))
      .child(Button::new("back", |s| {
            s.pop_layer();
            re_write(s);
  }));

and it report lifetime 'static required

Hey, I did this and it worked for me:
fn re_write(siv: &mut Cursive) {}
fn some_fn(siv: &mut cursive::Cursive)
{
let name = "name";
    let buttons = LinearLayout::horizontal()
        .child(Button::new("save", move |s| {
            let temp = name;
        }))
        .child(Button::new("back", |s| {
            s.pop_layer();
            re_write(s);
        }));
}

Hey, I did this and it worked for me:
fn re_write(siv: &mut Cursive) {}
fn some_fn(siv: &mut cursive::Cursive)
{
let name = "name";
    let buttons = LinearLayout::horizontal()
        .child(Button::new("save", move |s| {
            let temp = name;
        }))
        .child(Button::new("back", |s| {
            s.pop_layer();
            re_write(s);
        }));
}

The "name" should come from the outside

Hey, I did this and it worked for me:
fn re_write(siv: &mut Cursive) {}
fn some_fn(siv: &mut cursive::Cursive)
{
let name = "name";
    let buttons = LinearLayout::horizontal()
        .child(Button::new("save", move |s| {
            let temp = name;
        }))
        .child(Button::new("back", |s| {
            s.pop_layer();
            re_write(s);
        }));
}

I try to store the message in the title,but I have trouble to read it , I can not find the function to read it although it is one of the variety in the structure,but it is private..

You can use Button::label() to get the label from a button - is that what you need?
You can also make a String from your &str (for example using .to_owned()), then move that into the closure - this way you won't need to borrow the argument.

You can use Button::label() to get the label from a button - is that what you need?
You can also make a String from your &str (for example using .to_owned()), then move that into the closure - this way you won't need to borrow the argument.

But the label of the button is fixed . I need to read a txt and open it , and I don't think all the name should use the label of the button to transport. I use the selected view ,and open the txt and I find  that the selected view can transport two strings, now I use this widget to satisfy my requestment . I use a single selected button as the button I need ,although it is not look like a button because it is always blue...


MM-25305 Fix E2E tests due to duplicate team/channel/user

Summary
Fix E2E tests due to duplicate team/channel/user
Ticket Link
Jira ticket - https://mattermost.atlassian.net/browse/MM-25305

/update-branch


added reduced finance dataset to the list of supported datasets

Hello,
I want to test my stuff on the reduced finance dataset, so I was going to add it to the list anyway.
If you want it in your package, here it is!
Tested on Ubuntu 16.04, Python 3.7.

Worked fine locally here, thanks @zaccharieramzi  !

always a pleasure to see your profile pic


Design the docs solution for Kubeflow 1.0

Develop a doc design and architecture for Kubeflow 1.0. By end of Q3, want to be code ready from an engineering point of view. We need to start defining the docs during Q3, and finish in Q4.
V1.0 will consist of a subset of components that are mature. For example, candidates include Notebooks, central dashboard, Fairing, TFJob, Pytorch, serving, Pipelines, and so on.
We also need to consider upgradability.
For the docs, we need to design a solution that makes it clear which Kubeflow components are part of v1.0 and which are not.

/assign

Doc design is here: https://bit.ly/2OX11vw
I've created separate issues for each item that needs tackling. See label release/v1.0.
/close


Which package do you want?

Prerequisites: Make sure that the following CLI are installed:
flutter, very_good, mason, gh
This is the text that is said after execution and I go to the end, the folder is not created and the following message is given
We have an error!
⚠ This folder is about to be deleted : /home/alireza/StudioProjects/test/hello_riverpod/HELLOWORLDS/ex
Do you want to delete it? Press enter to confirm, type NO if you want to keep it:
I think it's from gh, I don't know what to install

I read the code and came to the following code
brew install gh
I understand that it is github-cli
https://cli.github.com/manual/installation
For Linux, you can directly go to the link below
https://github.com/cli/cli/blob/trunk/docs/install_linux.md
For the release version, go to the link below
https://github.com/cli/cli/releases/tag/v2.27.0
I went to check that very_good_cli was not installed and it gave the following error
Package very_good_cli is currently active at version 0.13.0.
The very_good_cli package is already activated at the newest available version.
To recompile executables, first run dart pub global deactivate very_good_cli.
Installed executable very_good.
Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.
You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.):
export PATH="$PATH":"$HOME/.pub-cache/bin"
Activated very_good_cli 0.13.0.
It was fixed with the following command
export PATH="$PATH":"$HOME/.pub-cache/bin"
And the problem is solved and it works

Thank you @alirezabashi98
Would you like me to update the documentation in README.md, concerning the different CLI to install ?


Animating map view re-positioning

I'd really like to animate the position of the map view.  The scenario I'm imagining is that the user presses a button and the map slides to the right to reveal a menu hidden underneath the map (displayed in the cordova web view).
I've looked at the code, and it seems to me that the logical place to put support for this on the JS side would be to add an "animated" flag to the map.refreshLayout method.  I guess that the animation duration could be a default value which could get overridden in params passed into the getMap method.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2121071-animating-map-view-re-positioning?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github).

dropped for now due to limited time


create a Python interface for exafmm-t using pybind11

Use pybind11 to create Python bindings of the C++ code. Added pybind11 as a submodule of this repo. In a new directory called python, you will find:

exafmm.cpp: the cpp source file for binding, which can be compiled into a exafmm-t's Python module (a shared library file).
example.ipynb: an example of how to use exafmm-t's Python module.
README.md

Other changes are listed below (mainly to allow using multiple kernels at the same time in an application):

Some global functions (related to tree construction and list construction) are now templated over target's value type (real_t / complex_t)
precomputation source files are absorbed into kernel source files
functions belong to each kernel are now wrapped in a class (named LaplaceFMM, HelmholtzFMM, ...)
global variables: P, NSURF, X0, R0, MAXLEVEL, ... are now attributes of these classes instead of being global.
add modified Helmholtz kernel (Yukawa)
update tests

LGTM


[KOGITO-9982] Add Persistence field in SonataFlow CRD

Adds the Persistence field in the SonataFlow CRD
Adds the implementation to handle PostgreSQL persistence type
If Persistence field is empty or nil, no persistence is defined.

@tchughesiv @wmedvede @ricardozanini PTAL.

@jordigilh another rebase should solve the test issues. Other than that it looks good.

Looks like the added test case is not working here on CI:
Needs to be stable to merge,  I am trying to reproduce the test failure locally.
Validate the persistence  when deploying a SonataFlow CR with PostgreSQL persistence [It] defined in the workflow from an existing kubernetes service as a reference
/home/runner/work/incubator-kie-kogito-serverless-operator/incubator-kie-kogito-serverless-operator/test/e2e/persistence_test.go:123

  [FAILED] Timed out after 600.001s.
  Expected success, but got an error:
      <*errors.errorString | 0xc00007a2a0>:
      kubectl wait pod -n test-546 -l sonataflow.org/workflow-app=callbackstatetimeouts --for condition=Ready --timeout=5s failed with error: (exit status 1) error: timed out waiting for the condition on pods/callbackstatetimeouts-7bf57f9968-5nfsl

      {
          s: "kubectl wait pod -n test-546 -l sonataflow.org/workflow-app=callbackstatetimeouts --for condition=Ready --timeout=5s failed with error: (exit status 1) error: timed out waiting for the condition on pods/callbackstatetimeouts-7bf57f9968-5nfsl\n",
      }

Looks like the added test case is not working here on CI: Needs to be stable to merge, I am trying to reproduce the test failure locally.
Validate the persistence  when deploying a SonataFlow CR with PostgreSQL persistence [It] defined in the workflow from an existing kubernetes service as a reference
/home/runner/work/incubator-kie-kogito-serverless-operator/incubator-kie-kogito-serverless-operator/test/e2e/persistence_test.go:123

  [FAILED] Timed out after 600.001s.
  Expected success, but got an error:
      <*errors.errorString | 0xc00007a2a0>:
      kubectl wait pod -n test-546 -l sonataflow.org/workflow-app=callbackstatetimeouts --for condition=Ready --timeout=5s failed with error: (exit status 1) error: timed out waiting for the condition on pods/callbackstatetimeouts-7bf57f9968-5nfsl

      {
          s: "kubectl wait pod -n test-546 -l sonataflow.org/workflow-app=callbackstatetimeouts --for condition=Ready --timeout=5s failed with error: (exit status 1) error: timed out waiting for the condition on pods/callbackstatetimeouts-7bf57f9968-5nfsl\n",
      }

Fixed 😄

@ricardozanini ready to be merged. Please note that I had to remove the DEBUG=true env value in the job because it caused the kubectl commands to dump extra log entries and that caused errors when parsing the output as it did not match the expected output.

@jordigilh many thanks! we Will wait for QE verification first with @domhanak

Please note that I had to remove the DEBUG=true env value in the job because it caused the kubectl commands to dump extra log entries and that caused errors when parsing the output as it did not match the expected output.

Thanks! I've removed this env var too in an opened PR! 😄

@tchughesiv can you please review it too?

Hi @jordigilh , it looks like we have some merge conflicts now, would you mind take a look please.

@ricardozanini PR is green. Can we merge it?

Let's wait for @wmedvede approval. I'll also take a look on it tomorrow.

@jordigilh can you please open a task to update the docs too? Thank you!


autoMockableImports does not work with single value from command line

I attached a project to demonstrate.
Using a Config.yml file
This config contains
args:
  autoMockableImports: ["CoreData"]

To run: sh withConfig.sh
Output: WithConfigGenerated/AutoMockable.generated.swift
It contains
import CoreData as expected
Using only the command line
Why did I got into the issue? Because my templates are shared with an SPM and I need the path from ${BUILD_DIR%Build/*}
So I had no option but use the arguments and no config file
Using --args autoMockableImports="CoreData"
To run: sh withoutConfig.sh
Output: WithoutConfigGenerated/AutoMockable.generated.swift
It does not contain import CoreData
Using only the command line but with an array (naive way)
Using --args autoMockableImports=["CoreData"]
To run: sh withoutConfig2.sh
Output: WithoutConfig2Generated/AutoMockable.generated.swift
It does not contain import CoreData
How to get the non config working
--args autoMockableImports="CoreData", autoMockableImports="AnotherImport"
Conclusion
Either I'm not doing it correctly or there is something wrong.
I have the feeling that it's because --args autoMockableImports="CoreData" is not considered as an array
When I "print" argument.autoMockableImports, it returns CoreData
When we have --args autoMockableImports="CoreData,autoMockableImports="AnotherImport", it prints [CoreData, AnotherImport] ({{ argument.autoMockableImports }})
Here is the project attached
TestImport.zip

I have the same issue with autoMockableTestableImports. It also produces odd output when I use environment variables:
--args autoMockableTestableImports="App_${PLATFORM_FAMILY_NAME}"

produces:
@testable import _capacityAndFlags
@testable import _countAndFlags

I understood something today, when you run {{ argument.autoMockableImports.count }} you get the count of the characters of the single autoMockableImports argument. Can't find a workaround though :/

I have the feeling that it's because --args autoMockableImports="CoreData" is not considered as an array

Exactly, you have to write --args autoMockableImports=["CoreData"] instead

I'm still having
@testable import _capacityAndFlags
@testable import _countAndFlags

Instead of what I need even if I use
--args autoMockableTestableImports=["App_${PLATFORM_FAMILY_NAME}"]

Hello @ipodishima , @artem-alexandrov .
the problem lies within the escaping of quotes inside the array when you try to pass the array. What you need to do is this :
--args autoMockableTestableImports='["FirstModule","SecondModule"]'
zsh is super confused about the quotes even if you escape it with backlash.
Have a great day :)

Also @krzysztofzablocki would it be worth to update the documentation how to pass those types (other than Strings/Paths) to stencil parameters? I literally spend 20 minutes to realise what is wrong 😀 I believe lot of people struggle with this as well.

@DominikBucher12 wanna join the contributor list? I'd gladly accept PR with that info

@krzysztofzablocki No problem, I will create PR later this evening, thank you!


Documentation for Caption Inspector in the "docs"

Documentation for Caption Inspector in the "docs":
From https://creativeslave.github.io/caption-inspector/

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I think this looks good.

Committed


Inband Firmware update

GA2 Inband firmware update: (Need to check whether both petitboot /OS way support there).
Development Equivalent Story:
https://github.com/openbmc/openbmc/issues/2404

[ ] Automation for Inband FW update - (  OS / Petitboot )

This is actually under development. @pstrinkle is developing this functionality and requested ( @yuennancy ) Nancy to allocate some one from Google to automate and test this functionality.


admin: split stats into its own port

Finishes https://github.com/istio/ztunnel/issues/78
This moves stats to its own port. This was a pretty small change but ended up refactoring out the server logic since we were copy+pasting 100s of lines of code 3 times.
In Istio, we just need to change 1 spot that refers to the old port.

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

test_ztunnel
bd70233f17451d9ea7982e3c3bb13e313e718ea2
link
true
/test test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Removing redundant operations

Description
Both Centos editions are throwing errors related to installing the e2fsprogs package. That package is already installed per the based docker file. Removing them here.
Related Issue

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] If Gemfile.lock has changed, I have used --conservative to do it and included the full output in the Description above.
[ ] All new and existing tests passed.
[ ] All commits have been signed-off for the Developer Certificate of Origin.

unneeded. closing


Error after loading channel list

Trying to get IPTVorg running after locast shutdown, seems lot of my local channels offer stream so it might be a "good enough" alternative.
I'm shocked on how long it takes to process the USA/English list. I understand there's a lot of channels but it takes easily close to 30 minutes.
After it completes, fHDHR loads, but I get a internal server error when I try to load the channel list, guide or even get the m3u or add it to Plex.
Checking the logs, it looks everything goes file while parsing the channels but getting errors when getting/updating the epg:
[2021-09-12 02:36:20,174] DEBUG - Found Existing iptvorg channel. Info: {'name': 'Young Hollywood', 'id': 'Young Hollywood', 'thumbnail': 'https://i.imgur.com/X27MGHd.png'}
[2021-09-12 02:36:21,938] DEBUG - Found Existing iptvorg channel. Info: {'name': 'Youtoo America', 'id': 'Youtoo America', 'thumbnail': 'https://i.imgur.com/3se2VEB.png'}
[2021-09-12 02:36:23,588] DEBUG - Found Existing iptvorg channel. Info: {'name': 'Z Living USA', 'id': 'Z Living USA', 'thumbnail': 'https://github.com/geonsey/Free2ViewTV/blob/master/images/logos/ZLiving_512x512.png?raw=true'}
[2021-09-12 02:36:25,291] DEBUG - Found Existing iptvorg channel. Info: {'name': 'Zoo Moo', 'id': 'Zoo Moo', 'thumbnail': 'https://i.imgur.com/1wYnA2i.jpg'}
[2021-09-12 02:36:26,974] INFO - iptvorg Channel Import took 47 minutes 6 seconds
[2021-09-12 02:36:26,975] INFO - Found no NEW channels for iptvorg.
[2021-09-12 02:36:26,976] INFO - Total iptvorg Channel Count: 1645
[2021-09-12 02:36:26,976] DEBUG - Saving iptvorg channels to database.
[2021-09-12 02:36:26,988] DEBUG - Client GET requested /api/channels Closing
[2021-09-12 02:36:26,997] DEBUG - Client is using internal API call.
[2021-09-12 02:36:26,998] DEBUG - Client GET requested /api/epg Opening
[2021-09-12 02:36:26,999] NOOB - Updating iptvorg EPG cache.
Traceback (most recent call last):
File "main.py", line 30, in
sys.exit(run.main(SCRIPT_DIR, fHDHR_web, deps))
File "/opt/fHDHR/fHDHR/cli/run.py", line 152, in main
returned_code = start(args, script_dir, fHDHR_web, deps)
File "/opt/fHDHR/fHDHR/cli/run.py", line 121, in start
return run(settings, logger, db, script_dir, fHDHR_web, plugins, versions, web, scheduler, deps)
File "/opt/fHDHR/fHDHR/cli/run.py", line 50, in run
fhdhr.api.get("/api/startup_tasks")
File "/opt/fHDHR/fHDHR/api/init.py", line 104, in get
self.client.get(url, headers=self.headers, *args)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 1006, in get
return self.open(*args, **kw)
File "/usr/local/lib/python3.7/site-packages/flask/testing.py", line 227, in open
follow_redirects=follow_redirects,
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 970, in open
response = self.run_wsgi_app(environ.copy(), buffered=buffered)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 861, in run_wsgi_app
rv = run_wsgi_app(self.application, environ, buffered=buffered)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 1096, in run_wsgi_app
app_rv = app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2464, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/opt/fHDHR/fHDHR_web/api/startup_tasks.py", line 15, in call
return self.get(*args)
File "/opt/fHDHR/fHDHR_web/api/startup_tasks.py", line 41, in get
self.fhdhr.api.get("%s&source=%s" % (self.epg_update_url, epg_method))
File "/opt/fHDHR/fHDHR/api/init.py", line 104, in get
self.client.get(url, headers=self.headers, *args)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 1006, in get
return self.open(*args, **kw)
File "/usr/local/lib/python3.7/site-packages/flask/testing.py", line 227, in open
follow_redirects=follow_redirects,
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 970, in open
response = self.run_wsgi_app(environ.copy(), buffered=buffered)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 861, in run_wsgi_app
rv = run_wsgi_app(self.application, environ, buffered=buffered)
File "/usr/local/lib/python3.7/site-packages/werkzeug/test.py", line 1096, in run_wsgi_app
app_rv = app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2464, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/opt/fHDHR/fHDHR_web/api/epg.py", line 19, in call
return self.get(*args)
File "/opt/fHDHR/fHDHR_web/api/epg.py", line 100, in get
self.fhdhr.device.epg.update(source)
File "/opt/fHDHR/fHDHR/device/epg/init.py", line 547, in update
sorted_channel_list = channel_sort(list(programguide.keys()))
File "/opt/fHDHR/fHDHR/tools/init.py", line 39, in channel_sort
return sorted(chan_dict_list_split, key=lambda i: (int(chan_dict_list_split[i]['number']), int(chan_dict_list_split[i]['subnumber'] or 0)))
File "/opt/fHDHR/fHDHR/tools/init.py", line 39, in
return sorted(chan_dict_list_split, key=lambda i: (int(chan_dict_list_split[i]['number']), int(chan_dict_list_split[i]['subnumber'] or 0)))
ValueError: invalid literal for int() with base 10: 'None'
Here's the error when trying to load the channels page:
[2021-09-13 00:50:35,559] DEBUG - Client GET requested /channels Opening
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/gevent/pywsgi.py", line 970, in handle_one_response
self.run_application()
File "/usr/local/lib/python3.7/site-packages/gevent/pywsgi.py", line 917, in run_application
self.result = self.application(self.environ, self.start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/opt/fHDHR/fHDHR_web/pages/channels_html.py", line 16, in call
return self.get(*args)
File "/opt/fHDHR/fHDHR_web/pages/channels_html.py", line 46, in get
sorted_channel_list = channel_sort(list(channelslist.keys()))
File "/opt/fHDHR/fHDHR/tools/init.py", line 34, in channel_sort
subnumber = number.split(".")[1]
AttributeError: 'NoneType' object has no attribute 'split'
2021-09-13T05:50:36Z {'REMOTE_ADDR': '<IP_ADDRESS>', 'REMOTE_PORT': '56402', 'HTTP_HOST': 'plexserver:8089', (hidden keys: 26)} failed with AttributeError
And here's the error when trying to get the m3u file:
[2021-09-13 00:56:00,040] DEBUG - Client GET requested /api/m3u Opening
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/gevent/pywsgi.py", line 970, in handle_one_response
self.run_application()
File "/usr/local/lib/python3.7/site-packages/gevent/pywsgi.py", line 917, in run_application
self.result = self.application(self.environ, self.start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/opt/fHDHR/fHDHR_web/api/m3u.py", line 17, in call
return self.get(*args)
File "/opt/fHDHR/fHDHR_web/api/m3u.py", line 119, in get
sorted_channel_list = channel_sort(list(channels_info.keys()))
File "/opt/fHDHR/fHDHR/tools/init.py", line 34, in channel_sort
subnumber = number.split(".")[1]
AttributeError: 'NoneType' object has no attribute 'split'
2021-09-13T05:56:00Z {'REMOTE_ADDR': '<IP_ADDRESS>', 'REMOTE_PORT': '62065', 'HTTP_HOST': 'plexserver:8089', (hidden keys: 27)} failed with AttributeError
[2021-09-13 00:56:00,849] INFO - <IP_ADDRESS> - - [2021-09-13 00:56:00] "GET /api/m3u?method=get&origin=iptvorg HTTP/1.1" 500 161 0.813692
[2021-09-13 00:56:00,977] DEBUG - Client GET requested /favicon.ico Opening
[2021-09-13 00:56:00,981] DEBUG - Client GET requested /favicon.ico Closing
[2021-09-13 00:56:00,991] INFO - <IP_ADDRESS> - - [2021-09-13 00:56:00] "GET /favicon.ico HTTP/1.1" 200 17449 0.016308
Finally when trying to add it in Plex, I don't get a direct error in debug logs, but Plex just fails saying there was a problem:
[2021-09-13 00:56:57,025] DEBUG - Client is a Plex Media Server.
[2021-09-13 00:56:57,028] DEBUG - Client GET requested /discover.json Opening
[2021-09-13 00:56:57,029] DEBUG - Client GET requested /discover.json Closing
[2021-09-13 00:56:57,034] INFO - <IP_ADDRESS> - - [2021-09-13 00:56:57] "GET /discover.json HTTP/1.1" 404 2028 0.010602
Any ideas?
Thanks! Can't wait to get live tv running again.

Firstly, this plugin is proof of concept, and does not run well, when it does work.
I can see what I can do to handle the error better

https://github.com/fHDHR/fHDHR/pull/184
That core patch should help with the webpages loading properly, however the iptvorg plugin still could use some tlc

Thanks, just pulled and will test it out and report anything I notice.

This fixed all my problems. As always thanks a lot for taking a quick look and providing such a quick fix!


udp: add UV_UDP_MMSG_FREE recv_cb flag

Contributes towards #2822. From https://github.com/libuv/libuv/issues/2822#issuecomment-624512182:

When using UV_UDP_RECVMMSG, recv_cb gets called once for each message with the UV_UDP_MMSG_CHUNK flag set, and then once with nread=0, addr=NULL, and without the UV_UDP_MMSG_CHUNK flag set to free the buffer.
For binding this in a garbage collected language, passing that last callback on seems somewhat strange, as the garbage collected language shouldn't care about it, and it would cause a discrepancy in the number of callbacks called when using mmsg and when not using it. That is, using the test added in #2818 as an example, where using mmsg leads to 2 allocs for 8 messages:

When not using UV_UDP_RECVMMSG, recv_cb would be called 8 times (once for each message)
When using UV_UDP_RECVMMSG, recv_cb would be called 10 times (once for each message, and then 2 for freeing the mmsg buffers)

Not passing these 'free-only' callbacks on would be no problem except that there doesn't seem to be a way to distinguish these 'free-only' callbacks from things like callbacks from EAGAIN or EWOULDBLOCK, which doesn't seem ideal. But, again, I might be thinking about this wrong, so any feedback is appreciated.

For an example of how this would be used, see https://github.com/squeek502/libuv/commit/94de1d6af2a716fd832fe3fec4c9d5f46d781547 which alters the test added in #2818 to use UV_UDP_MMSG_FREE.

It needs a test though. :-)

Would be able to easily test it once https://github.com/libuv/libuv/pull/2818 is merged.

Test added, this should be good to go.

CI: https://ci.nodejs.org/job/libuv-test-commit/1964/

@bnoordhuis should I consider that LGTM a Reviewed-By, or did you want to look again now that there's a test? I'm partly just a rubber stamp, since you said you think it is a good change.

Any reason this didn't make it into 1.39.0?

Sorry for the delay. Landed in https://github.com/libuv/libuv/commit/ea17e1cffb7bb379191c0efd0e264d7bfdafd147!
(I added @bnoordhuis as a reviewer in the commit metadata due to the "LGTM." I hope that was the right thing to do.)

No worries! I think this line needs to be updated to 1.40.0 (presumably). Not totally sure how/when you usually handle that, though.

🤦 yea, it needs to be updated.


Change the ago function to correctly add s or not

There are issues with adding s to the end. We would get this.inMonths() returning 1.3 and that would add 1 months ago as the string. Adding the floor to the compare as well would insure the s isn't incorrectly added.

Nice catch! Thanks!


Ocean.py: Add allowAnyPublishedAlgorithm to compute privacy options

Also, check the flag when starting a compute

closing this, because empty trustedList = allowAnyAlgo


Update example timeline (on fresh start)

I have 2 questions regarding the dummy projects one can see the first time they browse https://markwhen.com/

Life timeline exam: tasks still use the now removed google photo image format.
Project planning example: it's not clear if the 3 projects are parallel or nested. According to the display, they are nested. Are some endGroup keywords missing?

Yes they are outdated.
Google photos links are deprecated and the project sections should not be nested like they are.
I think the stuff in the readme needs to be updated too, it's on my list

Thanks! I think it helps with user onboarding.
Do you plan to have one image in the examples?

Yeah I think I should do that and have an example (if possible) of most features that markwhen supports

I updated the example timeline and also added it at markwhen.com/example, let me know what you think

Sorry for not answering faster. The new example breakdown is a very good idea. Maybe you could add one tab with examples for images embedding?


Kristynhwork

@kristynhamasaki can you please update the PR since there are currently conflicts

Sorry, I didn't realize this got published, I was just trying to compare my changes! I will close as it isn't ready yet, thanks!


PMID:9420333

| normal asymmetric  protein localization to mitotic spindle pole body during anaphase

Most of the existing "asymmetric protein localization to SPB" terms include "to old or new mitotic spindle pole body", and normal protein localization to new mitotic spindle pole body (FYPO:0003330) has EXACT synonym "normal asymmetric protein localization to new mitotic spindle pole body".
Should this new term have anything about which SPB?

Hmm, good question. There are some other terms which do not specify
FYPO:0001876 | decreased asymmetric protein localization to old or new mitotic spindle pole body during anaphase, with protein symmetrically localized to both spindle pole bodies
In this case we now know it is the new SPB, but in this 1998 paper it wasn't known if it was old or new.
https://curation.pombase.org/pombe/curs/709eb266115f50d4


Fake DPO / KTO

This PR adds the simple KTO loss.
It currently requires to build pairs of accepted and random rejected samples outside of LLm Studio.

@maxjeblick any idea why this mypy error happens while it does not for DPOLoss
https://github.com/h2oai/h2o-llmstudio/actions/runs/7783291836/job/21221448386?pr=599#step:5:32

No, no idea, looks strange.

No, no idea, looks strange.

Aftzer spending an hour on it without managing to solve the issues (apart from manually casting everything), I decided to remove the type annotation for return for both losses in order to not waste more time on it.


Fixed/sticky/floating table header

and remove units from each cell as mentioned here:
https://github.com/powdahound/ec2instances.info/issues/203

Implemented in #655


1.2.1 is listed as 1.1 in the results, and userns-remap causes 1.2.1 to fail.

I have a separate partition of /var/lib/docker, however when I set userns-remap: default it creates this path for docker root: /var/lib/docker/296608.296608 which then fails the (1.1) 1.2.1 test.  Is this to be expected?

Hi @adespain, are you running the image or the bash script?
Related to https://github.com/docker/docker-bench-security/issues/332

@konstruktoid I am running the docker image.

@konstruktoid I ran the script this time and it isn't failing now, thanks for that.

For reference: https://github.com/docker/docker-bench-security/issues/405

Closing due to inactivity.


FEATURE REQUEST: Silent Mode

As requested, it would be pretty cool if we could get a 'silent' mode which would maybe just have a %age complete counter instead of a complete run down of what is going in within the browser. Am experiencing a significant portion of CPU time from the browser process (chrome) when performing a large sync operation.

Short term, perhaps expose automated tool mode via a query param or something - probably would scale better.
Longer term, look at console optimizations to reduce CPU usage in the browser on long and busy  console lengths

And a button in the UI for automated tool mode please ;)


BEXMatcher getReplacement that references entire match

Have group 0 represent the match itself
Or should there be a different syntax?
Want way to have replaceAll(Function) and appendReplacement to have way to reference the entire match
Might have :[*]
Ideally don't want to have group name, since user should be able to use whatever name they want, including 0

Decided on :[*] to replace with the entire current match. This of course, can be used as part of a bigger replacement text.
Also added support so BEXMatcher.group and get will accept the value "*" to return group()

Part of 0.6.0 release


Dealing with upper and lower cases in extensions

Some file extensions allow several forms which differ only in letter cases: '.r' and '.R', '.Rmd' and '.rmd', etc. Currently to account for this, manual extra search should be done (like devicons.get_icon(file_name, file_ext) or devicons.get_icon(string.lower(file_name), string.lower(file_ext), { default = true })).
Maybe it is a good idea to incorporate some form of case insensitiveness into plugin directly?

Maybe an option to specify matching with or without case sensitiveness, the choice should be left to the user.

Also noticed that this affects your other plugin, 'nvim-tree.lua':

I don't really know much about case-sensitivity in file extensions, but is it a good idea to add 'R' and 'Rmd' extensions (which are "more default" for R-related files) to icons object in this plugin?

you could add that indeed, make a PR ! Not sure if other filetypes usually allow uppercase letters

By the way, this issue is also happens when you dealing with files made by people with case insensitive flesystems.
So, I saw same thing with *.PDF, *.ZIP files and so on.

@alex-courtis Plugin could sanitise input to all lowercase characters. Can you see any downsides? This might be the easiest solution especially for cases mentioned above.