Added role to golang image updates

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve


Wrong detection DirectX - WDDM2

I have a Radeon RX 570 with last AMD drivers, DirectX 12 and WDDM 2.7 and I have Error "DirectX too low" and WDDM2 not at the minimum ... (which is false) WhyNotWin11 is ok
DxDiag.txt

Same here with NVIDIA Geforce RTX 3080 Ti.

:thinking: the code is crude since the contents of dxdiag are only extracted into an xml file and contain methods query DirectXVersion and DriverModel
here again an even simpler version. please test
ReadySunValley_x64.zip

@Belim The version you attached is running without any issue! Thank you for your hard work :)

but its to slowww :unamused:
how many seconds did the directx/wddm check take?
can you please check again with the previous/official version but delete this time the dxv.xml file in the execution dir of ReadySunValley.exe

what about this one? it also export to dxv.xml
ReadySunValley.zip

@Belim Well, I think they almost same; they took around 10 seconds. And I don't know why but the official release also worked after re-download and launch it.

@AcrylicShrimp thanks, let us stay with this "fixed" version. it also seems to me the safer variant

i also get this :/

did you try the latest release 0.11.12

yes that is latest.

check the latest preview https://github.com/builtbybel/ReadySunValley/releases/tag/0.20.0


Timeout on Status Activity

Hi,
We are using the built in Status Screens on the SDK for a donation kiosk app rather than our own Payment status page.
What we would like is if a user makes a payment or cancels a payment and then walks away without Skipping/Dismissing the Status Page, the page times out and returns to the App after a timeout period.
Currently it just stays on the Status Page until someone else Skips/Dismisses it.
Also - I note alot of the issues with bluetooth locks up on the reader (AIRE205) is if it receives two commands close together - e.g. prepare and transaction commands. It needs a wait time between needs to clearing down a transaction before preparing for another.
Kind Regards,

Hi shaksp,
It looks like you are using an unattended use case, can you please describe more at<EMAIL_ADDRESS>Many thanks,


ToolTip with image is not showing

<Button ToolTip.Tip="Some text">Button mit ToolTip</Button>
            <Button>
              Button with Image ToolTip
              <ToolTip.Tip>
                  <DockPanel>
                    <Image Source="Page01.jpg"/>
                    <TextBlock>Further informations ...</TextBlock>
                  </DockPanel>
              </ToolTip.Tip>
            </Button>

The ToolTip of the first button works as expected. The second one only works in the Designer in VisualStudio.

I just tried this on current master and it appears to work. Is this still a problem for you if you update to the latest Avalonia CI package (at this time 0.7.1-cibuild0001534-beta)?

Yes, the Problem is still present. Here is a simple repro.
AvaloniaApplication1.zip

Ok, that repro works for me, with a caveat. The image is huge, and it looks like the code that tries to align the popup on the screen is having trouble, so it's placing the popup on my second monitor (to the left).
Could you try adding a width/height to the image e.g. <Image Source="resm:AvaloniaApplication1.Assets.Page01.jpg" Width="100" Height="100"/>  and confirm it now displays the image?
If so, this issue is about popup positioning; i'll look into that.

Yes, that works. I already thought, that it is something about the size of the image. I should have written ithere, but I only wrote it in the chat, Sorry for that.

There appears to be a general issue with popups that have larger content than fits on the screen not showing. I had someone report this when a previous x11 backend scaled everything too big and popups failed to show.

Ok, I've updated the title. cc:ing @danwalmsley as I believe you wrote the popup positioning code?

Ah actually, this should be the same issue as #2277, so closing this and will track the problem there,


Issue with getting started script recognizing python version

On line 60 of the first-time-setup.sh we have a chunk of code to evaluate the python version
# for versions. TODO check version.
if ! python -c "import sys; assert sys.version_info[0] == 3 and sys.version_info[1] > 6" &> /dev/null
then
    echo "[!] Cannot find Python interpreter at 'python', or installation is not the 3.7 min version"
    echo "[!] Make sure you have at least a Python 3.7 installation available"
else
    echo "[✓] Found Python installation with interpreter 'python' and min version 3.7"
fi

However when running this script, having Python 3.8 installed, it throws the errors that it cannot find the interpreter or it's not the min version. If I remove the ! from the if statement, it runs fine. Not the behavior I would expect from the statement, so clearly it's not evaluating the bool properly. I'm struggling to get any output from the statement to diagnose the issue.

Does this work in the same environment?
python --version

We should see that command succeed. If it doesn't, we've failed the first check: cannot find the Python interpreter at python.
If it succeeds, we should see a version greater than 3.6. If it's not greater than 3.6, we've failed the second check: the python installation is not at least 3.7.
On my system, I have python pointing to a 2.7 installation, and python3 pointing at a 3.9 installation. Is that similar to your setup? That would cause the script to fail, since we're explicitly looking for python, not python3.
We can use a virtual environment to retarget the interpreter for this project (and maintain dependency isolation). After activating the virtual environment, you should find that python points to the interpreter used to create the environment.
If creating the virtual environment inside the project directory, consider naming it pyenv, since it's already excluded from version control. Or, add the virtual environment directory to the ignore list.

I'm struggling to get any output from the statement to diagnose the issue.

Make sure to remove the &> /dev/null redirection, which is designed to suppress output. Use print to see the machine-readable version information:
python -c "import sys; print(sys.version_info)"

Does this work in the same environment?
python --version

We should see that command succeed. If it doesn't, we've failed the first check: cannot find the Python interpreter at python.

Yes, I get version 3.8.6.

On my system, I have python pointing to a 2.7 installation, and python3 pointing at a 3.9 installation. Is that similar to your setup? That would cause the script to fail, since we're explicitly looking for python, not python3.

I only have python3 installed on my system and in the terminal, python wasn't recognized as a command. So in a bash_aliases file I created an alias for python to point to python3. Now when I call python from terminal it points to my python3 install.

I'm struggling to get any output from the statement to diagnose the issue.

Make sure to remove the &> /dev/null redirection, which is designed to suppress output. Use print to see the machine-readable version information:

I had removed the &> /dev/null and still wasn't really getting an output in terminal.

python -c "import sys; print(sys.version_info)"

This works for me and I get python 3.8.6 version out.
Does the first time setup script succeed for you?

I should add that this isn't blocking progress, but I figure we should straighten out what's going on here so that we don't get a false failure.

Thanks for the info. I think the issue is the alias on your system. When you run a bash script, the alias isn't available in the script. (See here for a similar issue.) This means that python is available in your interactive shell, but not in the first-time-setup.sh script. To confirm this, change all python to python3 in first-time-setup.sh, and see if it works.
If that's the issue, there's a few different approaches we can take:

Change python to python3 in the setup script. This makes it explicit that we need a modern Python version. Should still work for virtual environment users. This is more effort for us, since we need to update all docs and follow this practice going forward. Might not be portable; we could hit the inverse of the issue we're troubleshooting, where a user has python but not python3.
Use a virtual environment, which adds python to your environment in a way that works within Bash scripts. (This is good practice anyway, so it's not exclusive from 1.)
Do nothing. Treat it like the hint that it is, and expect users to know how to fix issues later.

Does the first time setup script succeed for you?

Yup, works for me. I use a virtual environment derived from my Python 3 installation. I activate the environment before running the script, and doing other in this project.
It also works by default in these continuous integration environments, out of the box:

Ubuntu
Windows

The macOS interpreter is too old, but it exists as python. The script warns as expected.

I changed the statement to
then

Actually, I think putting an output that sums up this python vs. python3 discussion may be sufficient. I'll push an update and see what you think.

@mciantyre , do we have dependencies downstream that imply a python call over a python3 call?

I think putting an output that sums up this python vs. python3 discussion may be sufficient. I'll push an update and see what you think.

Sounds good! Feel free to change or stack changes on #37, which provides my recommendations. I'll stop rebasing that branch.

do we have dependencies downstream that imply a python call over a python3 call?

No dependencies. It's mostly in documentation (see the README, which has an unqualified python call, which implicitly requires Python 3).

I added to the warning, pointing to a potential cause of the issue. Thanks for resolving this!


Swedish Translation

Hi,
First time doing a fork and pull request, so bare with me.
I've added a Swedish translation, although I don't use it myself. I prefer english, but trying to get my wife into CairoShell and she wanted Swedish, so here is my translation. Perhaps not perfect, but let me know if you wonder anything!
/Morgan

This looks great, thanks!


"Remove item" tooltip not translated

I have loaded select2.min.js and i18n/de.js and initialize select2 like this:
$('#some-id').select2({language: "de"});

The "no results" text gets properly translated to German, but the "Remove item" text stays in English:

tested in Firefox and Chrome
The translation does exist:
https://github.com/select2/select2/blob/4de1d236e602149a5c78d35899b49b3989b94107/src/js/select2/i18n/de.js#L40-L42
but it seems to get ignored for some reason

Make sure you've got the latest copy of that translation loaded. Select2 won't yell if you mix and match versions but the side effect is that you'll get situations like this where it's missing translations.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.

@kevin-brown I installed the latest version from npm, which is also the latest tag listed on github: 4.1.0-rc.0 and the same as the master branch. I mean I can use the latest HEAD from develop branch if that is stable, but if it is, maybe tag a new release?


Datamarts?

Can this page clarify what role can perform which actions with the new datamart functionality?

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

ID: 2ad65c63-c38d-5ec7-0386-45ff2602e2a6
Version Independent ID: d8146ced-680a-5df4-531f-06ebf9c1c2e0
Content: Roles in the new workspaces in Power BI - Power BI
Content Source: powerbi-docs/collaborate-share/service-roles-new-workspaces.md
Service: powerbi
Sub-service: pbi-collaborate-share
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Thanks for your comment, @otravers. This issue has been assigned to the doc author for review.

Hi @otravers , I'm moving this issue to our work item backlog for better consideration and tracking, and closing it here in the meantime. Thanks for providing your feedback!


Mac crashes with EXC_I386_DIV when too many of a certain scene

Godot version
4.0-beta4
System information
Mac OS, 2 GHz Quad-Core Intel Core i5
Issue description
In beta 4.0-beta4, I have a scene with instanced child scenes . When i instance about 30 or less of one particular scene, everything runs just fine. but if i make more than that, the debugger always crashes with EXC_I386_DIV (divide by zero) before it starts. As far as i can understand these scenes shouldn't require too much processing and even if they did i would expect it to crash with out of memory or something like that.
Im trying out Godot for the first time, thanks for all the work that has gone into this. Its been fun for me.
Steps to reproduce
Let me know if this isn't enough information:
Crash Report
Child Scene
Minimal reproduction project
No response

Let me know if this isn't enough information:

Indeed, we need a complete minimal reproduction project here.

This no longer happens as of Godot 4.0-beta6


feat: allow changing YouTube host for trailers

Description
Feature to allow changing YouTube host for trailers
Screenshot (if UI-related)

To-Dos

[x] Successful build yarn build
[ ] Translation keys yarn i18n:extract
[ ] Database migration (if required)

Issues Fixed or Closed

Resolves #620

What's the point of this ?


Carousel Image Scaling

When the site isn't viewed in full screen the images and carousel boxes scale in peculiar ways, such as in the example below:

Didn't realize this. Ill look into this after the AQI deadline on Tuesday.


Native Scala YAML parser

Is it possible to work with YAML files using this library? So far all solutions I found for Scala are using Java libs for that.
See https://github.com/scala-native/scala-native/issues/2174

Parsing the full yaml is notoriously hard. This is a parser combinator library that helps you write parsers, but there are few parsers (see the Number object that does some parsers... we would accept PRs for more examples).
What I have heard is that all the yaml parsing libraries are basically line-by-line ports of the original ruby parser since it is so complex with so many corner cases.
Re-open if you have more questions or comments.

@johnynek I agree that full YAML specification is a bit insane, but maybe a limited demo parser with indented input suitable for YAML subsets that could be immediately useful for the projects like like Kaitai Struct (https://github.com/kaitai-io/kaitai_struct/issues/519#issuecomment-699689785) ?

JFYI, I can't reopen issues.


Step interpolation example

Hello there.
Could you provide logical example how step interpolation works?
Suppose I have a timeserie which has as x values = [ 5,6,7,10] and as y values = [ 50, 49, 48, 45 ] .
How can i use the step function to "fill in the gaps" and return the resulting array so I know what value y is at value x = 8 and x = 9?

You can do it like that:
const
  step = require('everpolate').step,
  X = [ 5, 6, 7, 10 ],
  Y = [ 50, 49, 48, 45 ];

step([8, 9], X, Y);


[Donation] Make your license consistently

I have noticed you changed the license file from MIT to Apache 2.0, which is good. But you should notice that, your README still keeps in MIT. Please fix.

Fixed：https://github.com/TinyAllen/rocketbot/commit/d49282aa0379d20910e824f4daee3656a44145cb


Add a recommanded practice in readme.

A follow-up for discussion of PR: https://github.com/stolostron/multicloud-operators-foundation/pull/710

/assign @zhiweiyin318

/retest

/retest


api: support failOpen in ext auth

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

add a failClosed field for ext auth, set its default value to true

Fixes #2897

/retest

quick question, here https://github.com/envoyproxy/gateway/blob/main/internal/xds/translator/extauth.go#L98 it is set explicitly to false, should this be changed as well?


[CI] Verbose flag -vv cannot be passed as pytest parameter to the current tests

Context
Currently celery workers get passed any command line args you pass to pytest, making it impossible to see verbose output. This issue is to track work required to change this.
Value and/or benefit
We can't debug effectively unless we can get verbose output.
Anything else?
No response

I added the following lines to my python 3.10's argparse.py:2174:
import traceback
traceback.print_stack()

When running pytest tests/test_app_api.py::test_conda_store_register_environment_workflow -svv I get the following traceback from the affected celery worker:
File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/threading.py", line 973, in _bootstrap
    self._bootstrap_inner()
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/contrib/testing/worker.py", line 73, in start
    return super().start()
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/worker.py", line 202, in start
    self.blueprint.start(self)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 365, in start
    return self.obj.start()
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 340, in start
    blueprint.start(self)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 746, in start
    c.loop(*c.loop_args())
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/loops.py", line 130, in synloop
    connection.drain_events(timeout=2.0)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/connection.py", line 341, in drain_events
    return self.transport.drain_events(self.connection, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 997, in drain_events
    get(self._deliver, timeout=timeout)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/utils/scheduling.py", line 55, in get
    return self.fun(resource, callback, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 1035, in _drain_channel
    return channel.drain_events(callback=callback, timeout=timeout)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 754, in drain_events
    return self._poll(self.cycle, callback, timeout=timeout)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 414, in _poll
    return cycle.get(callback)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/utils/scheduling.py", line 55, in get
    return self.fun(resource, callback, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 418, in _get_and_deliver
    callback(message, queue)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 1017, in _deliver
    callback(message)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 639, in _callback
    return callback(message)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/kombu/messaging.py", line 656, in _receive_callback
    return on_m(message) if on_m else self.receive(decoded, message)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 685, in on_task_received
    strategy(
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/strategy.py", line 207, in task_message_handler
    handle(req)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/worker.py", line 225, in _process_task
    req.execute_using_pool(self.pool)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/worker/request.py", line 754, in execute_using_pool
    result = apply_async(
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 153, in apply_async
    return self.on_apply(target, args, kwargs,
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/concurrency/base.py", line 30, in apply_target
    ret = target(*args, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 630, in trace_task_ret
    R, I, T, Rstr = trace_task(app.tasks[name],
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 586, in trace_task
    return task.__trace__(uuid, args, kwargs, request)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/celery/app/trace.py", line 453, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/home/pdmurray/Desktop/workspace/conda-store/conda-store-server/conda_store_server/_internal/worker/tasks.py", line 104, in task_update_storage_metrics
    conda_store = self.worker.conda_store
  File "/home/pdmurray/Desktop/workspace/conda-store/conda-store-server/conda_store_server/_internal/worker/tasks.py", line 51, in worker
    self._worker.initialize()
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 118, in inner
    return method(app, *args, **kwargs)
  File "/home/pdmurray/Desktop/workspace/conda-store/conda-store-server/conda_store_server/_internal/worker/app.py", line 63, in initialize
    super().initialize(*args, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 118, in inner
    return method(app, *args, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 465, in initialize
    self.parse_command_line(argv)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 118, in inner
    return method(app, *args, **kwargs)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/application.py", line 881, in parse_command_line
    self.cli_config = deepcopy(loader.load_config())
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 895, in load_config
    self._parse_args(argv)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 954, in _parse_args
    self.parsed_data = self.parser.parse_args(to_parse)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1833, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/site-packages/traitlets/config/loader.py", line 790, in parse_known_args
    return super().parse_known_args(args, namespace)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 1866, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2079, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2009, in consume_optional
    arg_count = match_argument(action, selected_patterns)
  File "/home/pdmurray/.pyenv/versions/miniconda3-latest/envs/conda-store-server-dev/lib/python3.10/argparse.py", line 2175, in _match_argument
    traceback.print_stack()

I don't think we're passing these arguments on purpose to the celery task, but traitlets allows for configuration variables to be set from the command line, and it automatically parses command line args. I think we can explicitly pass an empty argv to Application.initialize to prevent this.


Docker compose test service: price simulation bot

This PR intends to add a new Docker service that simulates user activity and can be run alongside the chain.
Useful mostly for being able to seed test liquidity and create events on a chain in a somewhat random but organized way with continually changing:

pair price (oscillates between ~price ratios of 1:3 and 3:1)
liquidity locations (shares are withdrawn from extreme values and deposited nearer to the price target
emitting Deposit / Withdraw / Swap events somewhat regularly but at random intervals

Usage
To use, pull this branch and with Docker installed type:
docker-compose --profile simulation up --build --abort-on-container-exit || true && docker-compose down

This command will start the relevant services and when you exit with Ctrl+C it will docker-compose down and remove the created Docker containers (it will start fresh on the next load).
Generated Data
The simulation as of now generates data that looks this this price chart:
Over ~5 hours:

Over ~30mins:

This PR is being closed in favor of adding Docker fixes here, and Docker services in a new https://github.com/duality-labs/docker-services repo

https://github.com/duality-labs/duality/pull/391
https://github.com/duality-labs/docker-services/pull/3


OOP Vulnerability fixes

Please check if the PR fulfills these requirements:

[x] After these changes, the app was run and still works as expected
[x] Tests for these changes were added (if applicable)
[x] All existing unit tests were run and still pass

Please specify the type of change this PR introduces (Bug fix, feature addition, content update, chore, etc.):
Basic vulnerability fixes (ran npm audit fix)
Additional Notes:

[x] Unit and e2e tests all pass (Electron)
[x] Npm run build passes.
[x] Npm run lint has no errors except for expected warnings
[x] E2e tests in Edge without weird console errors
[x] E2e tests in Firefox
[x] E2e tests in Chrome

Please note that Firefox and Chrome had some console warnings (Firefox warned about localhost cookie rejection, and Chrome warned about domain mutation). My suspicion is that these are minor localhost/Cypress errors that won't happen after deployment, but I'll run my test suites in the DEV environment to be sure.

Confirmed in both Chrome and Firefox that the aforementioned console errors don't appear to show up in DEV.


Diablo 2 Resurrected Support

Any chance auto mode (memory reader) will support D2R?

Maybe one day we'll be so lucky for someone knowledgeable enough to make our dreams come true.

Resolved for simple automode with the latest release


CI builds are done on ff merge commits, instead of actual commits

Environment

Server - Azure Pipelines

Issue Description
When ff merge commit gets triggered by push of a code commit, CI build attaches itself to the merge commit instead of the actual commit:

Technically, it's not a problem, as it's still testing the commit, it's just that it's not doing it with the correct commit sha1 and thus the commit itself doesn't report pass/fail on github - it's always green (CLA check).
You can see this happening for each pair of merge and commit entries here: https://github.com/fastai/fastai/commits/master when it happens so .

@stas00 we have made many improvements in this area, and the pass/fail report on GitHub should be correct. Please open a new ticket on the Azure DevOps Developer Community site if you are still having issues.


🚸 Improve ln.track()

Summary
This improves ln.track() by

letting users omit the uid argument
enabling users to work with transforms in folders
automating the versioning process (requirement for 1.)
enabling to save scripts and notebooks without running them (corollary of 1.)
no longer requiring titles in notebooks

How does it work
When called without a uid, ln.track() auto-generates uid values modeling a revision process similar to other tools (git, Google Docs, etc.):

if there is no transform with the same key, make a new uid
if there is a transform with the same key, bump the version uid

Examples
Init a transform
Before:
>>> ln.track()
✗ to track this script, run: ln.track("PC0eB2QPm0jW0000")

After:
>>> ln.track()
→ created Transform('2D4W8qklAPLg0000'), started new Run('zXWSu267...') at 2024-12-30 05:13:07 UTC

Bump version of transform
Before:
>>> ln.track("PC0eB2QPm0jW0000")
Source code changed, bump revision by setting:

ln.track("PC0eB2QPm0jW0001")

After:
>>> ln.track()
→ there already is a transform with key 'my_test_script.py', making version 'PC0eB2QPm0jW0001'
→ created Transform('PC0eB2QPm0jW0001'), started new Run('gl5Nvt0m...') at 2024-12-30 05:58:54 UTC

Materials
Needs:

https://github.com/laminlabs/lamin-cli/pull/99

Continues a sequence of improvements for ln.track():

https://github.com/laminlabs/lamindb/pull/2176
https://github.com/laminlabs/lamindb/pull/1982
https://github.com/laminlabs/lamindb/pull/1816

Still need to support the case in which multiple folders are created on the UI at a later point and a user loads one of them and there is no uid in the script/notebook.

This is still WIP. I need to do another refactor.

Interesting, but i doubt that key is reliable enough for this. But i haven't looked at the code yet and don't know the exact logic. Probably makes sense to discuss this sometime.

Interesting, but i doubt that key is reliable enough for this. But i haven't looked at the code yet and don't know the exact logic. Probably makes sense to discuss this sometime.

I have weighed pros & cons for quite some time now and will document them in the PR description. I don't think there is a robustness issue; in my mind there are only UX issues where the advantages of this (non-breaking) change outweigh the disadvantages of omitting the uid in many cases.

This should still prompt users to add uid to track, in a non-breaking manner maybe. I expect a ton of problems from relying on key alone.


Create sman1kotamungkid.txt

School Name SMA Negeri 1 Kota Mungkid
Official education department references:

https://dapo.kemdikbud.go.id/sekolah/6FB344254F62C9172ABB
https://id.wikipedia.org/wiki/SMA_Negeri_1_Kota_Mungkid
https://referensi.data.kemdikbud.go.id/tabs.php?npsn=20307714

Adding SMAN 1 Kotamungkid to the JetBrains Education program.

Please kindly provide the full name of your school on the first line of the file in your request

@iwanmahendraw Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


[Closed] find perimeter of a square in scala

Why:
Closes #3688
What's being changed:
Add function for the perimeter of a square in scala

@harshraj8843 Kindly take a look.

Hey @unclebinary1001
#3688 is a duplicate of #4257
Sorry for the inconvenience caused

No problem.  Thank you for assigning this to me.


[osgearth] update to 3.0

Fix #12340
Update osgearth to the latest version 3.0
No feature need to test

/azp run

Awesome, thanks @JonLiu1993 :)


Cannot launch basic app in Windows 11 via WSLg (Ubuntu 23.04)

Software Versions

Python: 3.11
OS: Ubuntu 23.04
Kivy: 2.2.1
Kivy installation method: poetry add kivy[base]
Windows 11 23H2 (OS Build 22631.2115)
WSL 2

Describe the bug
I get the following log and error when launching a basic demo application:
[INFO   ] [Logger      ] Record log in /home/ethteck/.kivy/logs/kivy_23-07-31_1.txt
[INFO   ] [Kivy        ] v2.2.1
[INFO   ] [Kivy        ] Installed at "/home/ethteck/.cache/pypoetry/virtualenvs/evbdiff-lMgar_9g-py3.11/lib/python3.11/site-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.11.2 (main, May 30 2023, 17:45:26) [GCC 12.2.0]
[INFO   ] [Python      ] Interpreter at "/home/ethteck/.cache/pypoetry/virtualenvs/evbdiff-lMgar_9g-py3.11/bin/python"
[INFO   ] [Logger      ] Purge log fired. Processing...
[INFO   ] [Logger      ] Purge finished!
[INFO   ] [Factory     ] 190 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  148 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  103
  Current serial number in output stream:  104

Expected behavior
A non-error
To Reproduce
Run the provided code in my environment
Code and Logs and screenshots
import kivy

kivy.require("2.2.1")

from kivy.app import App
from kivy.uix.label import Label

class EVBDiffApp(App):
    def build(self):
        return Label(text="Hello World")

if __name__ == "__main__":
    EVBDiffApp().run()

Additional context
None I can think of

Works for me.   (WSL2, Ubuntu 22.04, Py 3.10. kivy 2.1.1 install with pip)
So it could be the Ubuntu version, WSL version (you don't say), also could be Windows version (you don't say) check this https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps#prerequisites

I'm on WSL 2 and Windows 11, both latest versions. I've updated the issue description with that info. I'm able to open other GUI apps from WSL so I know WSLg is working

reminder, this isn't WSL, it's WSLg, Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios
https://github.com/microsoft/wslg

update:
@ethteck i got it to work, time to retrace steps.
on win 11, python3.10 fresh install of WSL/WSLG (WSLG is with the latest WSL update)
did sudo apt update
re: poetry, was installed on my host windows, still miraculously worked in WSLG,
poetry update worked from within WSLG
repo I used: https://github.com/ShootingStarDragon/Kivy-3.9.5
I didn't bother installing pyenv to wsl so I went the lazy route and said python = "^3.9.5"
then i did poetry shell > python main.py > it worked

I figured it out. I had, from some other issue I was troubleshooting, the following line in my .bashrc:
export LIBGL_ALWAYS_INDIRECT=1

Removing this and starting a new shell fixed my issues!
Thanks to this comment for helping me figure it out https://github.com/microsoft/wslg/issues/321#issuecomment-966588587
Closing :)


want access to arguments within the block of a macro

I'd like to provide a String.eachChar method that expands out and lets
you execute a block for each char in the String.
My first revision is this:
macro def eachChar(value, &block)
quote {
value.toCharArray.each do | my_char |
block.body
end
}
end
eachChar('laat de leeeuw niet in zijn hempie staan') do | my_char |
puts my_char
end
This works... but only because the block parameter is called "my_char"
and the macro references the same "my_char" parameter name.
I want Mirah to provide a way to lookup the "my_char" parameter name and bind it into the macro.

Is there a resolution for this? I'd like to generate unit tests based on a pattern, and need access to the parameters just like Hamlet describes.


Fix libclang pip package version

Clang 3.8 was released two weeks ago, and the python libclang bindings package was updated accordingly. This broke our reflection CI builds since I just wrote clang (Without version) as a requirement in the requirements.txt file, which downloads the latest version.
The requirement should be fixed to the clang version installed in the system

Fixed as part of refactor for reflection mangling. I will not close it til that branch is merged into master.


Super slow performance (even for one serching one repository)

Consider searching apache/commons-math (in the exact match mode), and it takes the web app up to 1 minute (!!) to perform the search. This is the same for downloading the result (i.e., a csv with one row).

With updating database Indexes we got some improvements, so I close it for now.

Version 1.3.0 introduces many new improvements that helped bolster application performance. Read more about it at #24.


cellxgene-schema must validate Drop-seq refinement in suspension_type

Please see the details in Drop-seq must use either "cell" or "nucleus" in suspension_type.

release candidate for cellxgene-schema version with updated validation and conversion accounting for this change: https://drive.google.com/file/d/1PIC7UkqvRsIgeEHffxr87i5iqDvwDbCr/view?usp=sharing

Just got the updated cellxgene-schema-3.0.0rc14.tar.gz from you, and it looks good! :) Thanks!


Set severity level of rules in preset, as remark(-lint) has no option to pass the level through a preset plugin

By default, if no severity is set, it seems that remark-lint sees the messages as warnings. Imho, it makes more sense that rules that must be obeyed to correctly follow the spec are listed as "error", no? If one would like to set them as warning, then they can overwrite it. Off course, this change would be a breaking change, so @RichardLitt , how would you like this improvement be handled in relation to versioning?

Do errors stop builds? If warnings don't, it may actually foster adoption of the standard by not enforcing it when people want to slightly modify their READMEs to match their particular use-case.

remark is not just a linter, it can also process and format. Hence, if formatting succeeds, we don’t exit with an error, even if there are warnings.
As this is a preset, and the remark CLI has a --frail flag so that it does exit as an error if there were warnings, I’d say to keep in line with remark, as it currently is, and not merge this!

Thanks for clarifying, @wooorm! Leaving as is.

remark is not just a linter, it can also process and format. Hence, if formatting succeeds, we don’t exit with an error, even if there are warnings.
As this is a preset, and the remark CLI has a --frail flag so that it does exit as an error if there were warnings, I’d say to keep in line with remark, as it currently is, and not merge this!

I understand that --frail can be used, but that would let the run fail on ANY warning. The linting rules provided by this preset are used to report actual "errors" according to the specs. If this is used with other plugins/presets, then --frail can't be used if only the actual "errors" are to be resulting in the process ending in an error. So @wooorm , what do you propose to be able to to this? As with --frail, this can't be done.

I looked into several presets, and there is like no rule in what should be used. Some don't set a level, other do like https://github.com/raduserbanescu/remark-preset-lint-styleguide/blob/master/src/index.js. So it would be interesting to know what the standard approach should be? The ability to set the severity level was specifically added because --frail fails on all warnings, while in a lot of situations, you want some things to be warnings and not fail the build, while others should be errors and fail the build.  (https://github.com/remarkjs/remark-lint/issues/65) Though it was implemented, the docs don't subscribe very well how it is intended to be used in combination with presets and what the default usage should be.

@wooorm is the expert on this one.

So @wooorm , what do you propose to be able to do this? As with --frail, this can't be done.

I suggest that errors which crash, be errors (e.g., misconfiguration or so), and that errors that are stylistic (e.g., linting, this project), be warnings. And that --frail mode is used if you specifically want to crash on stylistic issues too. I do not suggest setting different values in presets shared on npm, but it could be useful if you are so inclined to make a preset for your org/company/project, which differs from the defaults.
The preset you linked to sets an error everywhere: that could’ve just as well been --frail. The OP of the original issue you linked to is currently, 4 years later, doing error only too. I believe both those cases could’ve then used --frail.

looked into several presets, and there is like no rule in what should be used.

There is no hard rule indeed, but my strong suggestion, and what most folks are doing, is to use the defaults: warnings.
I agree with what Richard said at the start:

Do errors stop builds? If warnings don't, it may actually foster adoption of the standard by not enforcing it when people want to slightly modify their READMEs to match their particular use-case.

Finally, presets are a combination of plugins. This one is 7 lines. If you want to differentiate here, or combine with other things, you can make your own! Here’s mine!

and that errors that are stylistic (e.g., linting, this project), be warnings

Though the thing is that linting is not only stylistic, it's also about avoiding errors, confusion etc.... So linting itself, you have rules that point out potential errors, or "errors" in the sense that it will confuse devs and in turn write errors. Other rules are purely stylistic, which are there to just bring consistency, which Imho are not really needed, but some want them.
So the use-case is that when you have both "stylistic" linting rules AND "error-avoiding" linting rules, then you want the linting process to fail on these last kind, so you can take action and fix them.

I agree with what Richard said at the start:

Do errors stop builds? If warnings don't, it may actually foster adoption of the standard by not enforcing it when people want to slightly modify their READMEs to match their particular use-case.

I understand this, though I did observe multiple times that warnings get discarded, and are never solved, which means that in this case the standard will not be adopted, even though it was intended to. However, my intent is not to force my opinions on this preset and change it towards what I want. I just want to help improve for use-cases I have and see are needed. Programming is about trade-offs, and whatever get decided eventually, I'm fine with it.

Finally, presets are a combination of plugins. This one is 7 lines. If you want to differentiate here, or combine with other things, you can make your own! Here’s mine!

Though the point of presets is that you can just add them to your dependencies, and add them to your config, and it just works. Imho, presets must work together to enable to just use them, and use all the ones you need for your project.

So I see that there is another view on linting and errors vs warnings. I would like to discuss more about this to find out why you have these views, as I probably will be missing views/parts of why. Apart from the discussion I'm fine with whatever get decided. I already have an idea for a helper that can set the severity level for any preset to the one needed/wanted, so that it can be applied based on the fact that it's "stylistic" vs "error-avoiding".

I don't have a lot of views on this. I don't use this module, at the moment, and I don't really use any similar modules that have errors or warnings. My main concern is that managing expectations for people who use this sort of tool, and for that I tend to defer to @wooorm.


Working with Nakamura match files

Although it is possible to load Nakamura match files using pt.load_nakamuramatch(matchfile) is is unclear how to get the arrays that are returned to work correctly with get_time_maps_from_alignment.
I am trying the following approach:
align, _, alignment = pt.load_nakamuramatch(matchfile)

# from importnakamura.py line 114
perf_dtype = [
        ("onset_sec", "f4"),
        ("duration_sec", "f4"),
        ("pitch", "i4"),
        ("velocity", "i4"),
        ("channel", "i4"),
        ("id", "U256"),
]

note_array = np.array(align, dtype=perf_dtype)
performed_part = pt.performance.PerformedPart.from_note_array(note_array)

# Get score time to performance time map
_, stime_to_ptime_map = get_time_maps_from_alignment(performed_part, score_part, alignment)

However, I get the following error:
line 740, in get_time_maps_from_alignment
    score_onsets = score_note_array[match_idx[:, 0]]["onset_beat"]
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

The docs for performance.from_note_array() may need to be updated since the following information about the structured array fields is not the same as what is in the Partitura codebase, i.e., ‘onset_div’, ‘duration_div’ are not used in the method definition and 'channel' is in fact a valid field. This led to some confusion where I created a new structured array with the 'channel' field removed.
note_array(*args, **kwargs) → ndarray[[source]](https://partitura.readthedocs.io/en/latest/_modules/partitura/performance.html#PerformedPart.note_array)
Structured array containing performance information. The fields are ‘id’, ‘pitch’, ‘onset_div’, ‘duration_div’, ‘onset_sec’, ‘duration_sec’ and ‘velocity’.

@classmethod
    def from_note_array(
        cls,
        note_array: np.ndarray,
        id: str = None,
        part_name: str = None,
    ):
        """Create an instance of PerformedPart from a note_array.
        Note that this property does not include non-note information (i.e.
        controls such as sustain pedal).
        """
        if "id" not in note_array.dtype.names:
            n_ids = ["n{0}".format(i) for i in range(len(note_array))]
        else:
            # Check if all ids are the same
            if np.all(note_array["id"] == note_array["id"][0]):
                n_ids = ["n{0}".format(i) for i in range(len(note_array))]
            else:
                n_ids = note_array["id"]

        if "track" not in note_array.dtype.names:
            tracks = np.zeros(len(note_array), dtype=int)
        else:
            tracks = note_array["track"]

        if "channel" not in note_array.dtype.names:
            channels = np.ones(len(note_array), dtype=int)
        else:
            channels = note_array["channel"]

        notes = []
        for nid, note, track, channel in zip(n_ids, note_array, tracks, channels):
            notes.append(
                dict(
                    id=nid,
                    midi_pitch=note["pitch"],
                    note_on=note["onset_sec"],
                    note_off=note["onset_sec"] + note["duration_sec"],
                    sound_off=note["onset_sec"] + note["duration_sec"],
                    track=track,
                    channel=channel,
                    velocity=note["velocity"],
                )
            )

        return cls(id=id, part_name=part_name, notes=notes, controls=None)

Hi @eoinroe! Could you perhaps send the Nakamura match file that causes this issue? I believe the issue might be related to the Note ids, and how the alignment tool by Nakamura et al. uses them in their match file.
In any case, if you using Nakamura et al.'s tool for  alignment, you might be interested in trying a different library, Parangonar, which is the currently the SOTA for symbolic alignment and plays better with Partitura.

Hi @neosatrapahereje, yes I realised the issue is related to the note ids as you say since the result of match_idx = get_matched_notes(score_note_array, perf_note_array, alignment) was an empty array.
Nakamura uses this format for note ids: P1-1-1, P1-1-6 etc. This is what he says about them in the Manual for his Symbolic Music Alignment Tool:  ”The note ID indicates a note in the reference score MusicXML file ex_ref.xml: Px-y-z means the note is the z th note in the y th bar of part x.“
So instead of loading the score using pt.load_musicxml() I tried to create it from the information returned by load_nakamuramatch() as you can see in the code snippet below.
# This returns the arrays in a different order from pt.load_match()
align, ref, alignment = pt.load_nakamuramatch(matchfile)

score_dtype = [
    ("onset_div", "i4"),
    ("pitch", "i4"),
    ("id", "U256"),
]

score_part_note_array = np.zeros(len(ref), dtype=score_dtype)

dt = np.dtype(score_dtype)
for field in dt.names:
    # Need to remove various fields from the structured array returned by the Nakamura match file
    score_part_note_array[field] = ref[field]

_, stime_to_ptime_map = get_time_maps_from_alignment(performed_part, score_part_note_array, alignment)

However, I don't think the Nakamura match files give you quite enough information about the score to create a Part properly. For example pt.musicanalysis.note_array_to_score() allows you to pass it a note array with the following fields [“onset_div”, “duration_div”, “pitch”] but the the score_dtype in load_nakamuramatch() only includes these fields:
score_dtype = [
        ("onset_div", "i4"),
        ("pitch", "i4"),
        ("step", "U256"),
        ("alter", "i4"),
        ("octave", "i4"),
        ("id", "U256"),
    ]

And I get the following error:
line 743, in get_time_maps_from_alignment
score_onsets = score_note_array[match_idx[:, 0]]["onset_beat"]
ValueError: no field of name onset_beat

In any case here is the Nakamura match file that is causing the issue - ex_align1_match.txt
This file was generated by running the C++ Alignment Tool found here
Thanks for the Parangonar recommendation. I discovered it last week after running into these issues and it works great. I thought it was still worth documenting the issues I ran into using Nakamura match files with Partitura for other users.

Hi @eoinroe ! Thank you for the issue!
First of all: partitura uses structured arrays to pass information around where a simple "list of notes suffices". The structured arrays for performances/performedparts and scores/parts are different:

scores: Structured array with fields are ‘id’, ‘pitch’, ‘onset_div’, ‘duration_div’, ‘onset_beat’, ‘duration_beat’, ‘onset_quarter’, ‘duration_quarter’, and possibly more depending on flags. Depending on the needs of the receiving function it might require some or all of these fields, e.g., in the case of get_time_maps_from_alignment the field onset_beat is required -> this generates your second error! As you noticed, creating such note_arrays ad hoc is not pain-free, but in your case, you could fix it by creating a dummy (float) field from onset div like so:

score_dtype = [
    ("onset_beat", "f4"),
    ("duration_beat", "f4"),
    ("onset_div", "i4"),
    ("pitch", "i4"),
    ("id", "U256"),
]

score_part_note_array = np.zeros(len(ref), dtype=score_dtype)

dt = np.dtype(score_dtype)
for field in dt.names:
    if field == "onset_beat":
        score_part_note_array[field] = ref["onset_div"].astype(float)
    elif field == "duration_beat":
        score_part_note_array[field] = np.ones_like(ref["onset_div"]).astype(float)
    else:
        score_part_note_array[field] = ref[field]

notice that I also created a dummy field duration_beat which the time map function requires.

performances: Structured array with fields ‘id’, ‘pitch’, ‘onset_ticks’, ‘duration_ticks’, ‘onset_sec’, ‘duration_sec’ and ‘velocity’. Good catch with the error in the documentation there! We use ticks to refer to MIDI ticks or parts, and divs to refer tos core units derived from MusicXML divs. The PerformedPart.from_note_array() is also limited in the sense that it expects timing information in seconds, which is converted to MIDI ticks using the standard 480 parts per quarter and 500000 microseconds per quarter (= 120 bpm), some timing precision might get lost in the float second -> int ticks conversion and of course, no tempo changes or the like are available. This is a bare-bones function mainly to be able to export MIDI files from generated note lists.

You have a peculiar use case here, but it looks like it can work. Let us know if you encounter more bugs and thanks for the documentation pointer!


remove slot duration from the booking product page

Bug report
Title
remove slot duration from the booking product page
Issue Description
remove slot duration from the booking product page
Preconditions
1. framework Version- master

Steps to reproduce
1. step1- check the booking product in product page

Expected result

slot duration shouldn't visible in front

Actual result

This issue has been fixed only booking type one booking for many days, still exists for others booking as well.

Slot duration will not show only for one booking for many days.


fix(docs): corrects typo in project documentation

Scope of changes is restricted to docs only.

I signed the CLA immediately before issuing this PR.

apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:

name: redis
image: redis
volumeMounts:

name: redis-storage
mountPath: /data/redis
volumes:

name: redis-storage
emptyDir: {}


Avoid conflicts with hyperref includes by other packages

Pass the unicode option through PassOptionsToPackage instead of directly specifying it to RequirePackage.

This is a good small change.
Thank you for the contribution


Quick to try to fix the Cassanrda unit tests.

Signed-off-by: Jim Hughes<EMAIL_ADDRESS>

whats up with this? still wanted?


Consistent bazel rule names open source gapic packages

Currently three different versions are used in the template.
name = "google-cloud-{{assembly_name}}-{{version}}-java",
name = "gapi-cloud-{{assembly_name}}-{{version}}-go",
name = "{{assembly_name}}-{{version}}-py",

It simplifies downstream tooling if these follow a consistent pattern. What are the consequences of changing these to a single format?

I suppose an alias could be used in the mustache template to avoid breaking changes.


[Market] Offchain sOrder

Same issue with work report, and storage order even worse, may 10 times than work report.
Offchain maybe a better solution.

Will be put into M3 ms

Closed because of the new design of DSM


DNS incoherent failures (NodeJS)

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
While DNS checks work fine, http(s) probes fail due DNS resolution issues !
Context, I am running a bunch of services in a k8s cluster. That includes uptime-kuma, 6x bind9 nodes and a dashy dasboard used as example for this issue. The services are expose via Traefik, which provides SSL certificates.
Before using Traefik and SSL certificates, I was monitoring services via IP. It worked very good.
Since I switched to Traefik + local DNS, I am seeing lots of intermitent:
getaddrinfo ENOTFOUND

Here are a few hours:

So I decided to check if uptime-kusam was right and if my DNS had issues... I ran succesfully some benchmarks and can server without problem way more than thousands of DNS requests per second.
I even started tested the DNS using uptime-kuma and it confirms that the DNS is fine:

If you compare the 2 charts above, you can spot the issue:

the DNS works fine
uptime-kuma however fails resolving DNS during the http(s) probe checks

I don't think the issue is uptime-kuma directly but more of a NodeJS issue and a workaround in uptime-kuma may be required to avoid running into the issue.
I tested toggling the various DNS caching options without seeing any change.
👟 Reproduction steps
There are lots of moving parts and I am not sure if that's reproducible in a small example.
A small docker-compose may be able to show the issue if running:

a DNS server (bind9)
a service (could be a nginx...)
uptime-kuma
a http(s) probe using the local DNS to resolve to the nginx test service

I don't think SSL or Traefik play a role in the issue.
👀 Expected behavior
If DNS can resolve, the name should result in an IP.
If an IP can be found, some caching may help.
😓 Actual Behavior
DNS resolution fail often:

🐻 Uptime-Kuma Version
1.23.3
💻 Operating System and Arch
K8S
🌐 Browser
brave
🐋 Docker Version
K8S 1.27.2
🟩 NodeJS Version
n/a
📝 Relevant log output
The logs below also show a similar error on another service (grafana):

NOTEs:
 - the real domain has been redacted and is not `redacted.io`
 - `getaddrinfo ENOTFOUND` is not permanent, the resolution works sometimes, it is not a typo

07T06:15:32+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T06:15:47+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T06:19:42+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T06:19:47+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T06:20:12+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T06:40:43+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T06:40:49+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T06:41:13+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:01:03+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:06:34+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:06:50+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:07:04+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:07:34+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 3 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:07:50+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:11:44+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:11:51+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:13:04+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:13:34+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:13:50+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:19:04+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:19:34+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:19:50+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:22:14+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:22:44+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:22:51+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:23:14+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 3 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:23:44+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 4 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:23:51+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:24:14+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 5 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:25:05+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:25:35+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:25:51+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:29:44+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:29:52+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:30:14+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:45:45+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:45:53+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:46:15+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:46:45+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 3 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:46:53+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:51:06+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:51:36+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T07:51:53+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T07:57:15+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:42:46+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:42:58+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T08:43:16+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:43:46+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 3 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:43:58+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T08:44:16+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 4 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:44:46+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 5 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:44:58+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T08:45:17+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Failing: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Interval: 300 seconds | Type: http | Down Count: 0 | Resend Interval: 0
2023-11-07T08:45:58+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:46:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:47:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:48:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:49:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:50:17+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Failing: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Interval: 300 seconds | Type: http | Down Count: 0 | Resend Interval: 0
2023-11-07T08:50:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:51:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:52:07+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:52:38+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:52:57+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T08:52:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:53:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:54:59+01:00 [MONITOR] WARN: Monitor #39 'Tools': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T08:57:44+01:00 [AUTH] INFO: Login by token. IP=<IP_ADDRESS>
2023-11-07T08:57:44+01:00 [AUTH] INFO: Username from JWT: redacted
2023-11-07T08:57:44+01:00 [AUTH] INFO: Successfully logged in user redacted. IP=<IP_ADDRESS>
2023-11-07T08:58:08+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:58:38+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:58:58+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T08:59:08+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 3 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:59:38+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 4 | Retry Interval: 30 seconds | Type: http
2023-11-07T08:59:58+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T09:00:08+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 5 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:00:39+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Failing: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Interval: 300 seconds | Type: http | Down Count: 0 | Resend Interval: 0
2023-11-07T09:00:59+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T09:01:59+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T09:02:59+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T09:03:59+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T09:04:59+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Failing: Child inaccessible | Interval: 60 seconds | Type: group | Down Count: 0 | Resend Interval: 0
2023-11-07T09:10:19+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:30:50+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:31:02+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T09:45:42+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:46:02+01:00 [MONITOR] WARN: Monitor #35 'Monitoring': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T09:46:12+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:51:21+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:51:51+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 2 | Retry Interval: 30 seconds | Type: http
2023-11-07T09:52:05+01:00 [MONITOR] WARN: Monitor #39 'Tools': Pending: Child inaccessible | Max retries: 1 | Retry: 0 | Retry Interval: 60 seconds | Type: group
2023-11-07T09:52:33+01:00 [AUTH] INFO: Login by token. IP=<IP_ADDRESS>
2023-11-07T09:52:33+01:00 [AUTH] INFO: Username from JWT: redacted
2023-11-07T09:52:33+01:00 [AUTH] INFO: Successfully logged in user redacted. IP=<IP_ADDRESS>
2023-11-07T09:57:21+01:00 [MONITOR] WARN: Monitor #5 'Dashy': Pending: getaddrinfo ENOTFOUND dashy.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http
2023-11-07T10:06:43+01:00 [MONITOR] WARN: Monitor #7 'Grafana': Pending: getaddrinfo ENOTFOUND grafana.k8s.redacted.io | Max retries: 5 | Retry: 1 | Retry Interval: 30 seconds | Type: http

What is the TTL of the domains you are using?

Do you have DNS caching enabled in the settings?

Here is the current stand:

I also truied with both disabled.

Could you try Enabled, Disabled?

Yep, I just switched to that after answering you :)
I now need to let it run for a while.

Already some signs of troubles:

I don't think enabled/disabled is a reliable fix:

It does not seem to be doing worst but also does not seem to improve anything.

And it eventually fails whereas the service is perfectly accessible.
On the chart below, the checks are done every 60s.

Noticably, sometimes, pausing an resuming "fixes" the issue for a while.

Unlike any other dns timeout error, getaddrinfo ENOTFOUND is literally a response by your upstream DNS server. Your DNS server actually cannot find the record.

So I decided to check if uptime-kusam was right and if my DNS had issues... I ran succesfully some benchmarks and can server without problem way more than thousands of DNS requests per second.

Did you test it inside your Uptime Kuma container? If not, you go into your container's bash.
https://github.com/louislam/uptime-kuma/wiki/Troubleshooting


2020-04-01 tc011 M1SS DOSEC not calculated correctly

Issue
When running tc011, DOSEC does not appear to be calculated correctly. Given that the DOSE is in "MG" and CONC is in "UG/ML" it is assumed that DOSE would be multiplied by 10^3. Instead DOSE has the same value as DOSEC.
Output after running the computation engine for tc011 below:
> unique(d[,mct$DOSE1U])
[1] "MG"
> unique(d[,mct$CONCU])
[1] "UG/ML"
> mct$DOSEOUTPUTUNIT
[1] "MG"
> mct$CONCOUTPUTUNIT
[1] "NG/ML"
> unique(r$DOSE1)
[1] 300
> unique(r$DOSE1*10^3)
[1] 3e+05
> unique(r$DOSEC)
[1] 300

As of commit ed0aed3 it appears that this issue no longer occurs.
> unique(d[,mct$DOSE1U])
[1] "MG"
> unique(d[,mct$CONCU])
[1] "UG/ML"
> mct$DOSEOUTPUTUNIT
[1] "MG"
> mct$CONCOUTPUTUNIT
[1] "NG/ML"
> unique(r$DOSE1)
[1] 300
> unique(r$DOSE1*10^3)
[1] 3e+05
> unique(r$DOSEC)
[1] 3e+05


How to allow-list iam_policy_allows_privilege_escalation?

New feature motivation
How do I allow-list an accepted iam policy validation?
Check ID: iam_policy_allows_privilege_escalation - iam [high]         FAIL eu-central-1: Custom Policy arn:aws:iam::112:policy/service-role/Amazon_EventBridge_Invoke_Start_Automation_Execution_112 allows privilege escalation using the following actions: {'iam:PassRole'}
My allowlist snippet is:
`        "iam_policy_allows_privilege_escalation":
      Regions:
        - "eu-central-1"
      Resources:
        - "arn:aws:iam::112:policy/service-role/Amazon_EventBridge_Invoke_Start_Automation_Execution_112"`

The same question would also apply to i.e. the sns_topics_kms_encryption_at_rest_enabled provider. I would need to allow-list a similar "pattern" there:
Check ID: sns_topics_kms_encryption_at_rest_enabled - sns [high]         FAIL eu-central-1: SNS topic arn:aws:sns:eu-central-1:112:cloudwatch-pagerduty-alarms-ec2-state-changes is not encrypted
Thank you!
Solution Proposed
none
Describe alternatives you've considered
none
Additional context
No response

Hi @HarryBo112, the allowlist works with resource IDs. Can you try it to do it by including in the Resources section your resources' IDs? (in your case Amazon_EventBridge_Invoke_Start_Automation_Execution_112 and cloudwatch-pagerduty-alarms-ec2-state-changes.

Thank you!


ChangeLog

New feature type
Other (please explain below)
What is this new feature?
It might be nice to have a ChangeLog in the ADF (similar to what is in CAM).
I thought I would gather otehr's thoughts.
Assistance required?
Yes, I am requesting a new feature but won't have time to develop it
Extra info
No response

I guess a changelog would go along with ADF tags or "versions." Looks like we haven't had a new tag in almost a year.


Simplify handling of the 'any' type inside the checker.

Never reference 'anyType' directly, unless it is the result of some operation.  i.e. do not use it when checking if some type is the 'any' type or not.
Always use the TypeFlags.Any flag to see if a type is the 'any' type.
When possible, propagate the 'unknown' type along to help suppress cascading errors.

I recommend looking at this commit-wise, and appending "?w=1" to make it easier to read.

:+1:


Defining dependencies between projects?

Hey there 👋
This looks like an awesome project but I was hoping to get some clarification.
You mention "Especially useful for monorepos where you want to create dependencies between projects." Is there an example that shows how to define dependencies between projects? I can't find docs around this anywhere.
If it helps, here's the use case I have in mind. I'm looking to do Packer builds, where if I change the base image, I want to trigger all subsequent builds:
Ex:
└── packer
    ├── golang
    ├── node
    ├── python
    ├── ruby
    └── ubuntu

I would like the language-specific images to have a dependency on the ubuntu build, so if I update the base image, all the others will be updated.
Similarly, I might want to do something like run tests on all projects in the monorepo if a shared library changes.

Hi @evandam! Check out https://github.com/ksindi/buildkite-monorepo-example for a working example.

You can definitely set ubuntu as a dependency for the other projects by adding it to their paths.

Hi friends,
I trust there's no way to be more granular about this dependency on a per step basis?
e.g. In this example, app depends on some packages
root/
  app/
  packages/

Tests
My app depends on packages so I want to run tests on both when packages change.
Linting
Changing packages doesn't affect the source code of app so I don't want to lint app
--
The current config method for defining buildpipe dependencies is the paths:
projects:
  - label: App
    path:
      - root/app
      - root/packages
  - label: Packages
    path: root/packages

steps:
  - label: 'Test'
    env:
      BUILDPIPE_SCOPE: project
    command:
      - cd $$BUILDPIPE_PROJECT_PATH
      - yarn run test
  - label: 'Lint'
    env:
      BUILDPIPE_SCOPE: project
    command:
      - cd $$BUILDPIPE_PROJECT_PATH
      - yarn run lint

But in this case, changing code in packages will cause app to be linted.

@bradbarrow unfortunately there's no easy way. The most you can probably do is have custom logic on the step that inspects environment variables set.


bundle install --clean exits with code 15

bundle install --retry=3 --clean run with the most recent Bundler 1.16.0 exits with non-zero code 15 though there were no errors during gems installation. Looks like behavior change comparing with previous versions where exit code was 0. In AppVeyor CI environment non-zero code means "unsuccessful", so the build/test process stops.
There are AppVeyor builds demonstrating the regression:

Successful build with Bundler 1.15.4: https://ci.appveyor.com/project/famished-tiger/rley/build/114/job/tpudkfqxfpgh9vg9
Failing build with Bundler 1.16.0: https://ci.appveyor.com/project/famished-tiger/rley/build/115/job/j4jnhihqnr8q0474
Another failing test with different gems: https://ci.appveyor.com/project/FeodorFitsner/simple-console/build/1.0.3150

cc @IlyaFinkelshteyn

Thanks for the report!

I believe 1.16.0 actually fixed the bug (unknown bug?). From what I understand, the default behavior should be: if --path (or BUNDLER_PATH) is not present (which is how appveyor is configured in the issue), then bundle clean or bundle install --clean should both complain about removing gems from the "system path" (default path). Hence, why a --force flag was required. However, in 1.15.4, it appears that, there was a discrepancy between bundle clean and bundle install --clean.
That said, bundle clean would raise the appropriate error, whereas bundle install --clean would silently install and not clean (plus won't raising any errors).

Example of bundle clean and bundle install --clean when no --path or BUNDLER_PATH is set:
in 1.15.4
bundle clean raises InavlidOption (which exits with 15 status code), but bundle install --clean does not.
bundle clean
The latest bundler is 1.16.0, but you are currently running 1.15.4.
To update, run `gem install bundler`
Cleaning all the gems on your system is dangerous! If you're sure you want to remove every system gem not in this bundle, run `bundle clean --force`.

echo $? #status code
15

bundle install --clean
The latest bundler is 1.16.0, but you are currently running 1.15.4.
To update, run `gem install bundler`

...

echo $? #status code
0

in 1.16.0
bundle clean and bundle install --clean both behave the same way.
bundle clean
Cleaning all the gems on your system is dangerous! If you're sure you want to remove every system gem not in this bundle, run `bundle clean --force`.

echo $?
15

bundle install --clean
...

echo $?
15

This behavior in 1.16.0 is now consistent. That said, to resolve the original issue I think either one of the following should happen:

Install with a custom path each time bundle install --clean --path /tmp/some-path
Or, Install on default system path and clean with force bundle install --clean --force

PR that fixed https://github.com/bundler/bundler/pull/5860
Would love to learn if I missed anything here :)

Thank you for the detailed elaboration on this issue!
Having consistency is great and using --force does make sense, of course. 😄 Let's close the issue.

Wow, thanks for hunting down the explanation for this, @shayonj!


Run cells from the editor in the Integrated Terminal

We can run cells from the editor in the Pyhton Interactive Window.
Is there a way to run cells from the editor in the Integrated Terminal?
i.e., when there is an open "ipython terminal" running, can we have the feature to run cells in this terminal?
Actually, this is the default approach used in other editors, like Spyder.
Even in softwares like Matlalb or Scilab work in this way. So, I think this could be a good feature.
I'm sorry if feature already exist. I couldn't find it.

Thanks for your feedback @Diogo-Rossi. We'll discuss this feature in our next triage.

To add information: we already have a feature "Run Selection/Line in Python Terminal"
Maybe doing some mechanism to internally select the cell content, and apply the already existing feature mentioned above, it should work . . .

Thanks for the feedback! However, we don't have plans on adding this functionality at this time.

Hi @greazer and @DavidKutu
Look, this is not a hard functionality to implement. Maybe it is not related even with "data-science", but a "general feature request".
I know you can run cells in "Python Interactive Window", and it is very fine, but some people prefer to use the terminal. See, for example, #5305 and #8945.
All you have to do is send the commands from the cell to the active terminal, instead of send they to the "Python Interactive Window". We already can do this by manually selecting the text.
Bellow there are two examples: from Spyder and from Matlab (which isn't even Python). In both we can use Ctrl+Enter key bind to run the cell from the editor in the terminal (could be another key bind in VS Code). This feature is very useful, and also very old. It is almost the base of Jupyter.
Run cells from the editor in Terminal of Matlab:

Run cells from the editor in Terminal of Spyder:

I've made a workaround here


Correct vertical tab 5/6 links

Replace links anchors for vertical tabs 5 and 6 in example. They point to panel 3 and 4

👍 Good to merge.


controller: sets namespace to openshift-storage

Changed the default operator namespace to openshift-storage.
Signed-off-by: N Balachandran<EMAIL_ADDRESS>

/hold

@nbalacha i think this can be merged?


Show SchemaPropagation error early during editing time as Messages

This PR fixes several issues with SchemaPopagation, enabling early feedback to the user during editing a workflow.
SchemaPopagation is used in two places:

When the user changes operator properties, editing links, schema propagation would be triggered.
When the user executes the workflow, schema propagation would be triggered during workflow compilation.

Previously, errors during Schema Propagation are surpassed and result in an empty schema, and users will receive runtime errors when the schema is incomplete only during the 2nd scenario, which is during the workflow compilation.
This PR

Does not surpass exceptions during Schema Propagation, instead, we format it to better show to the frontend users.
Moves such runtime error to the earlier editing phase, which is the 1st scenario. User will receive a Message to indicate something goes wrong with the schema propagation while editing the workflow, and will be able to interactively fix it before submit the problematic workflow for execution.

Discussion 1/11: Zuozhi will work with Yicong to merge this to master

Discussion 2022.05.12: Yicong & Zuozhi said again they will work on it.

Discussion 2022.12.07: We will close this.


feat(directives): Add ifUserInGroup and ifUser directives

Contributes to #30.
NOTE: The ifUser directive doesn't quite work as expected because I'm unable to replace *ngIf="(user$ | async)" with it.

Might what to enhance with * syntax: https://angular.io/docs/ts/latest/guide/structural-directives.html#!#asterisk


Thread 'main' panicked at 'connection closed'

 Issue by JoakimLindbom
Tuesday Oct 24, 2017 at 11:35 GMT
Originally opened as https://github.com/plietar/librespot/issues/262

Randomly playback is stopped.
I'm running librespot 8971d3a (2017-10-05). Built on 2017-10-05. Build ID: POyxPQVg on a Raspberry Pi 3 with raspotify. Using ALSA with an Hifiberry AMP+
Kernel: 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l
Oct 24 13:04:08 myplayer librespot[3472]: thread 'main' panicked at 'connection closed', /checkout/src/libcore/option.rs:819:4
Oct 24 13:04:08 myplayer librespot[3472]: note: Run with `RUST_BACKTRACE=1` for a backtrace.
Oct 24 13:04:08 myplayer systemd[1]: raspotify.service: Main process exited, code=exited, status=101/n/a
Oct 24 13:04:08 myplayer systemd[1]: raspotify.service: Unit entered failed state.
Oct 24 13:04:08 myplayer systemd[1]: raspotify.service: Failed with result 'exit-code'.
Oct 24 13:04:18 myplayer systemd[1]: raspotify.service: Service hold-off time over, scheduling restart.
Oct 24 13:04:18 myplayer systemd[1]: Stopped Raspotify.
Oct 24 13:04:18 myplayer systemd[1]: Starting Raspotify...
Oct 24 13:04:18 myplayer systemd[1]: Started Raspotify.
Oct 24 13:04:18 myplayer librespot[3766]: INFO:librespot: librespot 8971d3a (2017-10-05). Built on 2017-10-05. Build ID: POyxPQVg
Oct 24 13:04:19 myplayer librespot[3766]: INFO:librespot_core::session: Connecting to AP "gew1-accesspoint-b-jws4.ap.spotify.com:4070"

Does it run well outside a docker container @tomtaylor?

Closing as no response from OP, and no suggestion in backtrace that this is a bug in librespot. Open a new issue and reference this one if this is still a problem.


Docs: Incorrect link to the design tokens course

Where Jina is thanked for her work on design token, there is a link to a course, but it takes you to twitter - should it be link to this: https://aycl.uie.com/virtual_seminars/design_tokens_scaling_design_with_a_single_source_of_truth
Or should the text be changed to say 'follow Jina on twitter' or something along those lines?

Ah good catch @juanfernandes!! Yeh that's exactly where is should point. Fancy running a PR?

Yeah, more than happyt to do a PR

Awesome, thank you!


Release/2.0.2 to develop

LGTM, Thank you for handling this work!

I resolved merge conflict by rebasing develop branch (cc: @yoojinko)


new website/service

"name" : "Quera"
"website": "https://quera.ir/"
"deleteurl": "impossible"
"info": "Quera is a website that includes programming colleges and various programming competitions."

@shahriaarrr
شهریار جان کوئرا قبلا ثبت شده ممنون بابت مشارکتت


Support bluetooth connectivity and 4th axis?

Nope ... wifi is sufficient for me
And 4th axis is complex ... sorry


regular expression with Unicode flag causes Parse error

When compiling regular expressions with the unicode flag set as part of /<regex>/gu, the u causes the compiler to choke.
As an example...
root@250c93857c43:/# cat /js/test.js
"hello".search(/\p{gc=Ll}/gu)
root@250c93857c43:/# closure-compiler --js /js/test.js --js_output_file /js/opt/test.js
/js/test.js:1: ERROR - Parse error. invalid flag after regular expression
"hello".search(/\p{gc=Ll}/gu)
               ^

1 error(s), 0 warning(s)

Error persists with the full entity name without the abbreviation:
root@250c93857c43:/# closure-compiler --js /js/test.js --js_output_file /js/opt/test.js
/js/test.js:1: ERROR - Parse error. invalid flag after regular expression
"hello".search(/\p{General_Category=Lowercase_Letter}/gu)
               ^

1 error(s), 0 warning(s)

When omitting the u, the compiler works...
root@250c93857c43:/# cat js/test.js
"hello".search(/\p{gc=Ll}/g)
root@250c93857c43:/# closure-compiler --js /js/test.js --js_output_file /js/opt/test.js

But obviously the regular expression now no longer does what it's supposed to do:
> "hello".search(/\p{gc=Ll}/gu)
> 0
> "hello".search(/\p{gc=Ll}/g)
> -1

According to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#browser_compatibility , this functionality is supposed to exist in all modern javascript / ecmascript runtimes.

Which version of closure-compiler are you running? This works for me:
$ cat test.js
"hello".search(/\p{gc=Ll}/gu)
$ npm i --save google-closure-compiler
$ ./node_modules/.bin/google-closure-compiler --js test.js --js_output_file test_out.js
$ cat test_out.js
"hello".search(/\p{gc=Ll}/gu);
$ ./node_modules/.bin/google-closure-compiler --version
Closure Compiler (http://github.com/google/closure-compiler)
Version: v20230502

Great question...
Closure Compiler (http://code.google.com/closure/compiler)
Version: 20130227
Built on: 2020/10/28 19:53

I don't even know how I got a version that old. My goodness.
Sorry for the noise!

FYI, even with an updated closure-compiler, you'll need to tell the compiler to generate at least ES_2018 language out (--language_out=ES_2018). If you don't, the compiler will report an error that is basically telling you that it does not transpile regular expressions to work for older versions of the JS language.


Allow to add multiple routes to private LAN of Kubernetes node pool

Use-cases
As of now, it's only possible to add a single route network + gateway IP per private LAN added to a Kubernetes node pool.
But it is possible to add multiple routes in the DCD.
Attempted Solutions
ionosctl k8s nodepool lan add --cluster-id $CLUSTER_ID --nodepool-id $NODEPOOL_ID --lan-id 1 --network $NETWORK --gateway-ip $GATEWAY_IP

Specifying multiple networks in $NETWORK using spaces as separator results in only using the first subnet. Using something else like a comma as separator breaks the CIDR validation as the whole string is used as CIDR.
Specifying --network and --gateway-ip multiple times for each network-gateway combination also has no other effect than just using the first network.
Proposal
Allow to specify multiple routes either by space/comma separating them or allowing to pass --network and gateway-ip multiple times.
The best solution might be to allow specifying the network and gateway together like --network $NETWORK_1,$GATEWAY_1 --network $NETWORK_2,$GATEWAY_2. But using something like --network $NETWORK_1,$NETWORK_2 --gateway-ip $GATEWAY_1,$GATEWAY_2 would be also OK.

Hi, while the first solution is definitely more user friendly, I think we're gonna have to go with the second variant to keep backwards compatibility

Hello, thank you for this feature request. This has been implemented in release v6.6.2
Have a nice day!


Login with web wallet not working

There is some weird redirection happening making the user to confirm 2 times the jwt token and end up without login.
to reproduce:

Open a room, do not authenticate with extension
Click Settings -> Profile -> Login with web wallet
Confirm the jwt token
After that you get redirected again in the web wallet

In addition "cancel" does not work redirecting to the same page

todo: notice, please check the tip-button button branch. it includes some fixed about JWT.

cancel is not working.
todo: check the server - returns 404

when all dialogs are confirmed the user end up disconnected


How could I modify the background color of the list?

the default background  color(the color under the buttons) of list is gradient from white to gray. What can I do to change the color ?

Have a look at the style documentation for the list object. Adjusting the color of LV_LIST_STYLE_BG or LV_LIST_STYLE_SCRL should do what you're looking for.

Thank you very much, the problem is solved.


⚠ ClamAV has degraded performance

In d71785e, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 602 ms

Resolved: ClamAV performance has improved in e0b2e7e after 538 days, 16 hours.


Update FAQ page

Number of Volunteers: 1
Change the General data protection FAQ on https://virtual.acl2020.org/about.html to be called "General Data Protection and Privacy" and add a sentence at the end saying "For more information on privacy practices of all the conference software, we encourage all attendees to consult the statements from each of the companies at https://zoom.us/privacy, https://slideslive.com/privacy-policy, and https://rocket.chat/privacy."
cc @dreasysnail

Hi @hao-fang I can work on it :+1:

@Robert-Alonso  Thanks!

Done :)


cch Overrides lovelace background image

Describe the bug:
Whenever I have a card configured a card with an background and have cch enabled it replaces the background of the card with paper-card-background-color - getting loaded first - but then overritten.
Config YAML:
background: center / cover no-repeat url("/local/jpg/bg/2.jpeg") fixed
badges: []
cards:
  - cards:
      - !include 101_bad1.yaml
      - !include 001_settings/custom-header.yaml
      ....
.....
....

menu: overflow
chevrons: true
options: clock
clock_format: 24
exceptions:
  - conditions:
      user: falcion
    config:
      #voice: show
      header: false

  - conditions:
      user_agent: KFFOWI
    config:
      show_tabs: 1,6,10,2

enabled cch:

Disabled cch:

HA and/or Browser Error:
None
HA, Card, and Browser Versions:
Home Assistant: 0.91.2, YAML Mode
cch: 1.0.2b9
Chrome Version 73.0.3683.103

Sorry, the bot closed this one since you deleted the error section of the template.
I am unable to reproduce this one. Do you get any errors in the HA log or in your browsers dev tools (F12)? Do you have the first view setup as "main_config"? Are you using card-modder or anything else to style lovelace and if so could you share that code?

Dont worry - Wanted to make it prittey.
Didnt even thourght on the other cards that they could interfier 🤦♂
Its then probably from the vertical-stack-in-card  where I placed the cch config in

after friggeling with the config - Its now clear that cch isnt playing nicely with vertical-stack-in-card  at all. Removed the custom: and -in-card and its loading the background.
was
  - cards:
      - !include 101_bad1.yaml
      - !include 001_settings/custom-header.yaml
      - !include 102_bad2.yaml
    title: ' '
    type: 'custom:vertical-stack-in-card'

Now
  - type: vertical-stack
    cards:
    - cards:
        - !include 101_bad1.yaml
        - !include 102_bad2.yaml
      title: ' '
      type: 'vertical-stack'
    - !include 001_settings/custom-header.yaml

still using custom:layout-card, custom:useful-markdown-card, and custom:card-modder in the included files. Working like a charm

Ah, I see. Looking at the issues on the vertical-stack-in-card github page it seems that it has some issues with custom styling.


[Build] Use list of arguments for clang tool

This will solve the issue where spaces in path failed to build for clang
modules.

@swift-ci please test

looks like generated xcodeproj is invalid if there is spaces in paths but that should be a separate bug, will put a different testcase for this instead.

@swift-ci please test

We just need to quote the paths in the Xcodeproj I think

It wasn't the path, it was the target name causing pbx file to become invalid.
opened a fix here: https://github.com/apple/swift-package-manager/pull/466

LGTM, thanks!