Making docker usage with localhost and external ip more clear

⚠⚠⚠ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
Tick the checkbox if you understand [x]:

[x] I have read and understand the pull request rules.

Description
This pull request makes a small change in README.md related to running in docker. Previously it said that using -p 3001:3001 will expose this port to localhost, but it actually exposes it to <IP_ADDRESS>, and it can lead problems like a target for brute force (it's expecially dangerous for VPS or for machines that have external IP).
Type of change
Please delete any options that are not relevant.

Bug fix (non-breaking change which fixes an issue)

Checklist

[x] My code follows the style guidelines of this project
[ ] I ran ESLint and other linters for modified files
[x] I have performed a self-review of my own code and tested it
[x] I have commented my code, particularly in hard-to-understand areas
(including JSDoc for methods)
[x] My changes generate no new warnings
[ ] My code needed automated testing. I have added them (this is optional task)

Screenshots (if any)

It displays the situation met by me by using default commandline.

And what would be if we will use the second commandline.

Previous related discussion: #3002

My PR does not change a code, but only extends docs with a clarification that using ordinary "3001:3001" could lead unexpected results like (e.g. security issues like continious brute force, leak of password via unencrypted http due MiTM attack). I know that is would be a problem of end user itself, but not everybody is friendly with container technologies and administration :)

I agree that this is a better solution. However, I think the language in the proposed change is not clear and maybe confusing.

If you want to run it at localhost...

In both cases, the container is still running at localhost.

(without exposing port for other users...

"Other users" can be on the same machine and they can still access the application.
I think the only difference here is whether the port binding is accessible for external IPs. Explaining that clearly would be enough.

I understand 3001:3001 is too open, but <IP_ADDRESS>:3001:3001 really is too closed.
If people copy this command in the README.md without reading, I think there will be a lot of people asking why it is not working.
So please move it to the wiki instead under Change Port and Volume section without a full command:
https://github.com/louislam/uptime-kuma/wiki/🔧-How-to-Install

in terms of documentation, I think this might be a good usecase for an alert.
It seems that the feature had been removed.

[!NOTE]
I cannot confirm this feature being removed

[!IMPORTANT]
I cannot confirm this feature being removed

[!WARNING]
I cannot confirm this feature being removed

Strange, doesn't seem to be effective on a md file.

[!NOTE]
Highlights information that users should take into account, even when skimming.

I think the not showing in the preview is a bug

I understand 3001:3001 is too open, but <IP_ADDRESS>:3001:3001 really is too closed.

@louislam, uptime kuma allows intruder who can brute force admin password (first issue - password strength, uptime kuma allows me to use admin/admin credentials on setup stage, we need to forbid some dictionary (e.g. from rockyou dictionary) and easy-to-brute passwords) without rate-limiting and captcha after few failture attempts (it's the second security issue). User compromise leads to credentials leak (easy way - using Export Backup) and recon (via pinging other services and manipulating with payloads).

I have updated the docs-change proposed in this PR.
I think this is now ready for merging


HDDS-4346.Ozone specific Trash Policy

What changes were proposed in this pull request?
This defines an ozone specific TrashPolicy implementation. This current patch is almost a copy of TrashPolicyDefault but will be modified in further jira's to support a multithreaded Trash emptier.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4346
How was this patch tested?
Unit Test

Can we also make change in OzoneManager to call this new TrashEmptier ?

Done.

/retest


[120] Issue #120 - October 18, 2018

To contribute to this issue, simply leave a comment here. Please also review our contributing guidelines.
The current draft for this issue in _drafts/. If you want to contribute directly, feel free to open a pull request.

https://twitter.com/FoundationDB/status/1047964152466038784

231 in review

https://blog.jetbrains.com/objc/2018/10/spm-support-clion/

https://forums.swift.org/t/abi-stability-checker-is-now-online-for-the-swift-standard-library

https://swift.org/blog/swiftpm-repl-support/

https://forums.swift.org/t/comparable-and-floatingpoint-types/16886

https://twitter.com/slava_pestov/status/1050571783026266118 + thread +https://github.com/apple/swift/pull/19844

https://twitter.com/tkremenek/status/1050639569303920642

RFC for the new Swift Server work group incubation process that would lead to a recommended set of projects for Swift on server development: https://forums.swift.org/t/rfc-swift-server-work-group-incubation-process/16816

https://twitter.com/swift_unwrapped/status/1051836149323452416
https://spec.fm/podcasts/swift-unwrapped/212093

Episode 67: Raw Strings https://spec.fm/podcasts/swift-unwrapped/212093

New LSP language service supporting Swift and C-family languages for any editor and platform

https://forums.swift.org/t/new-lsp-language-service-supporting-swift-and-c-family-languages-for-any-editor-and-platform/17024
and
https://twitter.com/SwiftLang/status/1051950031081631744

^ + https://forums.swift.org/t/new-lsp-language-service-supporting-swift-and-c-family-languages-for-any-editor-and-platform/17024/8

https://gist.github.com/rxwei/30ba75ce092ab3b0dce4bde1fc2c9f1d


HTTP/2 DefaultHttp2Connection NPE

Motivation:
If while iterating the active streams a close operation occurs this will be queued and process after the iteration has completed to avoid a concurrent modification exception. However it is possible that during the iteration the stream which was closed could have been removed from the priority tree and its parent would be set to null. Then after the iteration completes the close operation will attempt to dereference the parent and results in a NPE.
Modifications:

pending close operations should verify the stream's parent is not null before processing the event

Result:
No More NPE.

@nmittler - fyi

@blucas - fyi

@Scottmitch  LGTM

Cherry-picked 4.1 (bd6040a)


Testing Docker web container with a port binding

Hi, I am developing a Proof of Concept using Terratest for a Docker web server image. Pretty simple stuff, basically just run a container, make a GET request to it and assert that it returns the expected HTML body.
I ran into an issue with the container port binding. First, I tried to add a port binding with OtherOptions: []string{"-p 8080:80"} in the RunOptions struct.
Then I ran into another problem, that is the port conflict when running parallel tests or simply when there is another thing running on port 8080. I then tried to use the -P flag for Docker run, so that it picks a random available port, and it worked.
But now I can't do the GET request because I don't know on which port the container is listening. I think I can contribute by adding a inspect.go file on terratest/modules/docker, and executing a docker inspect {container_id} and returning its contents.
I am opening this issue to ask if the way I am planning to do this test is the "Terratest" way and if the inspect.go change would be welcome before I add a pull request.
I could also work around the issue by running something like this with shell:
docker inspect {container_id} --format '{{ index .HostConfig.PortBindings "80/tcp" 0 "HostPort"}}'

But that sounds too complex for what should be a simple test in my opinion.

In case it is necessary, here is a sample test code of what I am trying to do (missing the HTTP request part)
func TestWebPageGet(t *testing.T) {
    tag := "gusantoniassi/nginx-hello-world"
    buildOptions := &docker.BuildOptions{
        Tags: []string{tag},
    }

    docker.Build(t, "../../../docker/nginx", buildOptions)

    opts := &docker.RunOptions{
        Detach: true,
        OtherOptions: []string{"-P"},
    }

    containerId := docker.Run(t, tag, opts)
    defer docker.Stop([]string{containerId})

    // Do HTTP request here to validate
}

Thanks for filing the issue! An inspect seems like a reasonable addition here, assuming you can return a nice struct output of the json representation for easy introspection and type safety. Even better if you find the exact types used by the docker cli.
But a v1 implementation that returns a basic map type (json.RawMessage) is also fine as a start.

Hey @yorinasub17 thanks for the reply. I tried digging around the CLI repo but couldn't find a related struct to use. I suppose I could use the Docker SDK Container struct, but that would add a dependency on the SDK to the project, IMO that would be overkill for this feature.
I have implemented a struct mapping some of the fields I want to use returned by the Docker API, and converted it into another struct that has an easier testing interface (eg. c.Ports[0].ContainerPort instead of c.NetworkSettings.Ports["80/tcp"]).
On an unrelated note, I saw that there isn't an existing wrapper for the docker rm command, do you think that would be useful too? IMO it's better to run rm -f instead of stop to avoid polluting the test machines with unused stopped containers. If that sounds good I could implement it on another PR.

Solved by https://github.com/gruntwork-io/terratest/pull/492.


Upgrade Escoria 2.0 to Godot 3.2 (take 2)

Note: this is meant as a new "esc2-godot3.2" branch, don't merge on 2.1.
As discussed with @StraToN during FOSDEM, I took a few days to export Escoria 2.0 to Godot 3.2.
The idea is to have a stable/frozen 2.0 version while the Escoria 3.0 rewrite is ongoing.
Once this branch is published I can prepare a clean git merge at flossmanualsfr/escoria/ (which I also fully upgraded), so that new users can experiment with Daïza in Godot 3.2 as well. Future 2.0 merges there, if any, should be reasonably easy.

Thanks a lot, dear friend :)


ModuleNotFoundError: No module named 'langchain.base_language'

I recently update llama_index to 0.6.0 and I'm using the compatible langchain==0.0.152 with it. Getting the below error.
from llama_index import download_loader, SimpleDirectoryReader
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/__init__.py", line 18, in <module>
    from llama_index.indices.common.struct_store.base import SQLDocumentContextBuilder
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/__init__.py", line 4, in <module>
    from llama_index.indices.keyword_table.base import GPTKeywordTableIndex
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/keyword_table/__init__.py", line 4, in <module>
    from llama_index.indices.keyword_table.base import GPTKeywordTableIndex
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/keyword_table/base.py", line 19, in <module>
    from llama_index.indices.base import BaseGPTIndex
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/base.py", line 9, in <module>
    from llama_index.indices.base_retriever import BaseRetriever
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/base_retriever.py", line 5, in <module>
    from llama_index.indices.query.schema import QueryBundle, QueryType
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/query/__init__.py", line 3, in <module>
    from llama_index.indices.query.response_synthesis import ResponseSynthesizer
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/query/response_synthesis.py", line 12, in <module>
    from llama_index.indices.postprocessor.node import BaseNodePostprocessor
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/postprocessor/__init__.py", line 5, in <module>
    from llama_index.indices.postprocessor.node import (
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/postprocessor/node.py", line 11, in <module>
    from llama_index.indices.response.type import ResponseMode
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/response/__init__.py", line 4, in <module>
    from llama_index.indices.response.response_builder import (
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/response/response_builder.py", line 17, in <module>
    from llama_index.storage.docstore.registry import get_default_docstore
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/storage/__init__.py", line 3, in <module>
    from llama_index.storage.storage_context import StorageContext
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/storage/storage_context.py", line 10, in <module>
    from llama_index.vector_stores.simple import DEFAULT_PERSIST_FNAME as VECTOR_STORE_FNAME
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/vector_stores/__init__.py", line 8, in <module>
    from llama_index.vector_stores.myscale import MyScaleVectorStore
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/vector_stores/myscale.py", line 11, in <module>
    from llama_index.indices.service_context import ServiceContext
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/service_context.py", line 7, in <module>
    from llama_index.indices.prompt_helper import PromptHelper
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/indices/prompt_helper.py", line 12, in <module>
    from llama_index.langchain_helpers.chain_wrapper import LLMPredictor
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/langchain_helpers/chain_wrapper.py", line 6, in <module>
    from llama_index.llm_predictor.base import (  # noqa: F401
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/llm_predictor/__init__.py", line 4, in <module>
    from llama_index.llm_predictor.base import LLMPredictor
  File "/home/codespace/.python/current/lib/python3.10/site-packages/llama_index/llm_predictor/base.py", line 13, in <module>
    from langchain.base_language import BaseLanguageModel
ModuleNotFoundError: No module named 'langchain.base_language'

I think you need a newer langchain version. The pinned version should probably be bumped in the reqs

@logan-markewich  Thanks, bumping the version of langchain to 0.0.157 worked for me.

Great! Just merged a fix to pin to the proper version in the package reqs as well. Thanks!

@Bubble007 try installing from a fresh venv. And also, install llama_index instead of gpt_index

Thanks! I was a compatibility problem between GPT_index and langchain, Could solve it by "pip install langchain==0.0.153". This is the last version that still contains the BaseLanguageModel.

P.S.: ChatGPT was able to find out now, because he now also has internet access :-)


Solid props table based on the propTypes

There is a pretty cool tool: https://github.com/FormidableLabs/ecology
If they expose the props table as function/component we can simply use theirs. If not we can copy it over to here.
see live example at the bottom: http://victory.formidable.com/docs/victory-label
Might now be the end solution, but way better for now.

They use https://github.com/FormidableLabs/component-playground for the playground, we could take a look at simply integrating that.

:+1:


Can't Install via Composer

Using version dev-master for anahkiasen/rocketeer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for anahkiasen/rocketeer dev-master -> satisfiable by anahkiasen/rocketeer[dev-master].
- anahkiasen/rocketeer dev-master requires d11wtq/boris ~1.0.8 -> no matching package found.
Potential causes:

A typo in the package name
The package is not available in a stable-enough version according to your minimum-stability setting
see https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion for more details.

Read http://getcomposer.org/doc/articles/troubleshooting.md for further common problems.
Installation failed, reverting ./composer.json to its original content.

That version of Boris exists though, try requiring a stable version instead of dev-master? Do you get the same error? What is your minimum stability configured to?


Update distube dependencies for improved YouTube support

Closes #1173
Closes #1171
Closes #1166
Closes #1165
Closes #1163

[x] Updated Distube

:package: :robot: A new release has been made for this pull request.
To play around with this PR, pull ghcr.io/museofficial/muse:pr-1180.
Images are available for x86_64 and ARM64.

Latest commit: 98fdd3fdf9753e2aed250105d56ffc672f24cc51

@timurko-uwu @SparksSkywere @QuintenQVD0 @ascensionfm @AptGetGnome @kirankunigiri @cwerdna19 @Wancerz @WojenHere @DaanSelen @ThomasHineXYZ @aaddyy227 @arty01238 @Zereah
Hello there! All of you should be having the same issue currently with Muse being unable to play music at this moment, currently... this seems like an issue with several things. Either ffmpeg being annoying, ytdl being annoying or some other issues that I currently can't find. However, in this case. It seems like YTDL seems to be the most damning issue at this moment. As it seems like we are not the only one with the issue, and timelines more or less match up with https://github.com/distubejs/ytdl-core/issues/157 https://github.com/distubejs/ytdl-core/issues/156 and https://github.com/distubejs/ytdl-core/issues/153
If you are able to, please do the following. Add DEBUG=* to your env file, and then make a comment on this PR with your FULL log. Make sure to backtick your code

[!CAUTION]
MAKE SURE YOUR TOKEN/API KEY IS NOT VISIBLE IN THE LOG

Additionally, if you want to take a gander, try upgrading/downgrading muse, ytdl-core and/or ffmpeg to see if this resolves your issue. As several issues are going on at a time, and I can't test all of them.

@timurko-uwu @SparksSkywere @QuintenQVD0 @ascensionfm @AptGetGnome @kirankunigiri @cwerdna19 @Wancerz @WojenHere @DaanSelen @ThomasHineXYZ @aaddyy227 @arty01238 @Zereah
Hello there! All of you should be having the same issue currently with Muse being unable to play music at this moment, currently... this seems like an issue with several things. Either ffmpeg being annoying, ytdl being annoying or some other issues that I currently can't find. However, in this case. It seems like YTDL seems to be the most damning issue at this moment. As it seems like we are not the only one with the issue, and timelines more or less match up with https://github.com/distubejs/ytdl-core/issues/157 https://github.com/distubejs/ytdl-core/issues/156 and https://github.com/distubejs/ytdl-core/issues/153
If you are able to, please do the following. Add DEBUG=* to your env file, and then make a comment on this PR with your FULL log. Make sure to backtick your code

[!CAUTION]
MAKE SURE YOUR TOKEN/API KEY IS NOT VISIBLE IN THE LOG

Additionally, if you want to take a gander, try upgrading/downgrading muse, ytdl-core and/or ffmpeg to see if this resolves your issue. As several issues are going on at a time, and I can't test all of them.

I have tried to update every npm module as far as I can without code errors. It does bot resolve it.

I weirdly do not have the issue... what should be happening?

I weirdly do not have the issue... what should be happening?

What is your current env? Muse version, FFMPEG, distube, etc. Where are you hosting (and so on and so forth).

Running inside Kubernetes 1.31.3
    Image:          ghcr.io/museofficial/muse:latest
    Image ID:       ghcr.io/museofficial/muse@sha256:1d4d3c0a30b1bc22fbeedbbdee94ee350d9547c886f7b581bcdf20d00b774213

https://github.com/museofficial/muse/pkgs/container/muse
I don't think anything else is installed by me other than the information for running.
If you need anything specific let me know!

I ended up writing my own music bot because of this not working. While doing that I discovered that the latest release of @distube/ytdl-core, 4.15.8, is not working apparently universally. I downgraded to 4.15.4, and my bot worked.
I kind of gave up on muse, and started to find justifications for my own (scuffed) bot, like there being muse dependencies that have not been updated for over 2 years, and have severe vulnerabilities. Like a VM2 dependency. Not really sure if there is a real concern for these dependency vulnerabilities.
Coming back to muse, it works fine now with<EMAIL_ADDRESS>Basically, if I had probably just investigated a little bit I would have found that I needed to update ytdl (and downgrade? because the current muse package.json version is 4.14.4), but there were no errors or logs, just a silent failure.
I had also apparently had issues with using different versions of node. ope: Error: Cannot find module<EMAIL_ADDRESS>I believe I changed versions because I was having issues, and probably ended up creating more problems.
Anyway, to verify, I stashed my changes and checked out muse v2.10.0 again to avoid any stupid package version changes I did. rm -rf node_modules/, then did npm i. This just grabbed<EMAIL_ADDRESS>anyway now
Just soapboxing sorry. From my experience, it appears to be working now. I didn't record which version of @distube/ytdl-core was being grabbed before. It was probably a ytdl-core issue, but I had convoluted the issue by changing dependency versions, and changing node versions.

@cwerdna19 thanks for your (VERY) detailed explaination. I'll see if I can downgrade to the version you are using. And lock it there for the time being.
I looked at the code. And yes, there is a TON of outdated code and packages in there. So I'm not sure how stable it's gonna be...

I have read what is here, I also run a Teamspeak server with my own music bot there, recently I had to update the YouTube-DL.exe file I had there and it worked fine, so it sounds to me like a YouTube situation (adblockers maybe).
I am running this bare metal on Windows Sever along with my Teamspeak bot in windows services. Following cwerden's comments I have tried running "4.15.4" of ytdl-core but sadly no audio, this debug however shows the video did somewhat parse but I did not hear anything in the VC with the bot.
WARNING: @distube/ytdl-core is out of date! Update with "npm install @distube/ytdl-core@latest".
  muse Using format {
  mimeType: 'audio/webm; codecs="opus"',
  qualityLabel: null,
  bitrate: 132495,
  audioBitrate: 160,
  itag: 251,
  url: 'https://rr5---sn-8pgbpohxqp5-aigy.googlevideo.com/videoplayback?expire=1735538407&ei=h-JxZ8jxG6XCmLAPo63lmQM&ip=<IP_ADDRESS>&id=o-ABwEWv0Yjd1pbJgcEqNrlkONhGJie50_k4_RJ-9eQf3H&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1735516807%2C&mh=lf&mm=31%2C26&mn=sn-8pgbpohxqp5-aigy%2Csn-5hneknee&ms=au%2Conr&mv=m&mvi=5&pcm2cms=yes&pl=24&rms=au%2Cau&gcr=gb&initcwndbps=4337500&bui=AfMhrI-bqvubaTcnOdvy9Mi1TptJKc3EK4O51_UXZtoYZtD3XHtUOtlCRS2zNv1cYlskGFoKaUNq8WqE&spc=x-caUGtgd5Uw1fHZrbQEkRs4kJCgoHeFmDNzW9yKpZ0MATmfmkiBXS1hdEU5&vprv=1&svpuc=1&mime=audio%2Fwebm&rqh=1&gir=yes&clen=9367497&dur=587.181&lmt=1714750594128606&mt=1735516391&fvip=1&keepalive=yes&fexp=51326932%2C51335594%2C51371294&c=IOS&txp=2318224&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhAJEyY7ThJK7AOSqoVw_fkmi1ucZtmV5UDnIPU9tfRo6rAiBMB7hHpcyWejpx-VrNZBiUdNZPitWo0POSrkVbfPtL-Q%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpcm2cms%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRQIgf3Ag8pLXiranj1KjLW5UZTjjqQ8stCdbyr4SJA1DY2ICIQC1cFBRLW267GfXFwO1EmXwg2z7I04iVneusSnwSaCS5Q%3D%3D',
  initRange: { start: '0', end: '258' },
  indexRange: { start: '259', end: '1258' },
  lastModified: '1714750594128606',
  contentLength: '9367497',
  quality: 'tiny',
  projectionType: 'RECTANGULAR',
  averageBitrate: 127626,
  audioQuality: 'AUDIO_QUALITY_MEDIUM',
  approxDurationMs: '587181',
  audioSampleRate: '48000',
  audioChannels: 2,
  loudnessDb: 5.37,
  hasVideo: false,
  hasAudio: true,
  container: 'webm',
  codecs: 'opus',
  videoCodec: null,
  audioCodec: 'opus',
  isLive: false,
  isHLS: false,
  isDashMPD: false
} +1s
+1s
  muse Caching video +5ms
  muse [WS => Shard 0] First heartbeat sent, starting to beat every 41250ms +9s
  muse [WS => Shard 0] Heartbeat acknowledged, latency of 114ms. +114ms
  muse [WS => Shard 0] Heartbeat acknowledged, latency of 129ms. +41s
  muse [WS => Shard 0] Heartbeat acknowledged, latency of 123ms. +41s
  prisma:client  Prisma Client call: +2m
  prisma:client  prisma.setting.findUnique({
  where: {
    guildId: '504084859757658123'
  }
}) +1ms
  prisma:client  Generated request: +1ms
  prisma:client  query {
  findUniqueSetting(where: {
    guildId: "504084859757658123"
  }) {
    guildId
    playlistLimit
    secondsToWaitAfterQueueEmpties
    leaveIfNoListeners
    queueAddResponseEphemeral
    autoAnnounceNextSong
    defaultVolume
    defaultQueuePageSize
    turnDownVolumeWhenPeopleSpeak
    turnDownVolumeWhenPeopleSpeakTarget
    createdAt
    updatedAt
  }
}
 +1ms

I also did a debug with the current environment which is below with the latest youtube core "4.15.8" and all other modules up to date:
`starting` discord music bot "Sir Groovington Sixth"

><EMAIL_ADDRESS>start
> npm run env:set-database-url -- tsx src/scripts/migrate-and-start.ts

><EMAIL_ADDRESS>env:set-database-url
> tsx src/scripts/run-with-database-url.ts tsx src/scripts/migrate-and-start.ts

(node:19096) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:
--import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from "node:url"; register("file%3A///C%3A/Users/Administrator/Documents/Servers/Discord/Bots/muse/node_modules/tsx/dist/loader.js", pathToFileURL("./"));'
(Use `node --trace-warnings ...` to show where the warning was created)
(node:29280) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:
--import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from "node:url"; register("file%3A///C%3A/Users/Administrator/Documents/Servers/Discord/Bots/muse/node_modules/tsx/dist/loader.js", pathToFileURL("./"));'
(Use `node --trace-warnings ...` to show where the warning was created)
  prisma:tryLoadEnv  Environment variables loaded from C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\.env +0ms
  prisma:client  checkPlatformCaching:postinstall true +0ms
  prisma:client  checkPlatformCaching:ciName undefined +1ms
  prisma:tryLoadEnv  Environment variables loaded from C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\.env +590ms
  prisma:client  dirname C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\.prisma\client +0ms
  prisma:client  relativePath ../../.. +1ms
  prisma:client  cwd C:\Users\Administrator\Documents\Servers\Discord\Bots\muse +0ms
  prisma:client  protocol graphql +0ms
  prisma:client  clientVersion 4.16.0 +1ms
  prisma:client  clientEngineType library +0ms
  prisma:client:libraryEngine  internalSetup +0ms
  prisma:client  checkPlatformCaching:postinstall true +651ms
  prisma:client  checkPlatformCaching:ciName undefined +1ms
  prisma:tryLoadEnv  Environment variables loaded from C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\.env +654ms
  prisma:client  dirname C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\.prisma\client +652ms
  prisma:client  relativePath ../../.. +0ms
  prisma:client  cwd C:\Users\Administrator\Documents\Servers\Discord\Bots\muse +0ms
  prisma:client  protocol graphql +1ms
  prisma:client  clientVersion 4.16.0 +1ms
  prisma:client  clientEngineType library +0ms
  prisma:client:libraryEngine  internalSetup +654ms
========================================
========================================
================= muse =================
========================================
=========== Made with 🎶 by ============
==== https://github.com/codetheweb =====
========================================
========================================

Running version 2.10.0 built on unknown date (commit unknown)

🔧 Need help? https://github.com/codetheweb/muse/discussions/new
🐛 Bug? https://github.com/codetheweb/muse/issues/new
✨ New feature? https://github.com/codetheweb/muse/issues/new
☕ Discussion? https://github.com/codetheweb/muse/discussions/new
💰 Help me? https://www.paypal.me/codetheweb https://github.com/sponsors/codetheweb

- Applying database migrations...  prisma:client:engines:resolveEnginePath  enginePath C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\.prisma\client\query_engine-windows.dll.node +0ms
  prisma:client:engines:resolveEnginePath  enginePath C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\.prisma\client\query_engine-windows.dll.node +1ms
  prisma:client:libraryEngine  library starting +33ms
  prisma:client:libraryEngine  library started +7ms
  prisma:client  prisma.$queryRaw(SELECT COUNT(id) FROM _prisma_migrations, []) +0ms
  prisma:client  Prisma Client call: +56ms
  prisma:client  prisma.$queryRaw({
  query: 'SELECT COUNT(id) FROM _prisma_migrations',
  parameters: {
    values: '[]',
    __prismaRawParameters__: true
  }
}) +1ms
  prisma:client  Generated request: +1ms
  prisma:client  mutation {
  queryRaw(
    query: "SELECT COUNT(id) FROM _prisma_migrations"
    parameters: "[]"
  )
}
 +1ms
  prisma:client:libraryEngine  sending request, this.libraryStarted: true +19ms
√ Database migrations applied.
  prisma:client:libraryEngine  library starting +828ms
  prisma:client:libraryEngine  library started +1ms
  prisma:client  Prisma Client call: +836ms
  prisma:client  prisma.fileCache.findMany({
  where: undefined,
  orderBy: {
    createdAt: 'asc'
  },
  take: 50
}) +0ms
  prisma:client  Generated request: +1ms
  prisma:client  query {
  findManyFileCache(
    orderBy: [
      {
        createdAt: asc
      }
    ]
    take: 50
  ) {
    hash
    bytes
    accessedAt
    createdAt
    updatedAt
  }
}
 +0ms
  prisma:client:libraryEngine  sending request, this.libraryStarted: true +8ms
  muse Evicting oldest files... +0ms
  prisma:client  Prisma Client call: +4ms
  prisma:client  prisma.fileCache.aggregate({
  select: {
    _sum: {
      select: {
        bytes: true
      }
    }
  }
}) +1ms
  prisma:client  Generated request: +1ms
  prisma:client  query {
  aggregateFileCache {
    _sum {
      bytes
    }
  }
}
 +5ms
  prisma:client:libraryEngine  sending request, this.libraryStarted: true +11ms
  superagent POST https://accounts.spotify.com/api/token +0ms
  superagent POST https://accounts.spotify.com/api/token +5ms
- 📡 connecting to Discord...  muse Provided token: *.************************************** +37ms
  muse Preparing to connect to the gateway... +1ms
  muse No files needed to be evicted. Total size of the cache is currently 0 bytes, and the cache limit is<PHONE_NUMBER> bytes. +10ms
  superagent POST https://accounts.spotify.com/api/token -> 200 +105ms
  superagent POST https://accounts.spotify.com/api/token -> 200 +4ms
| 📡 connecting to Discord...  muse [WS => Manager] Fetched Gateway Information
  muse     URL: wss://gateway.discord.gg
  muse     Recommended Shards: 1 +263ms
  muse [WS => Manager] Session Limit Information
  muse     Total: 1000
  muse     Remaining: 999 +0ms
  muse [WS => Shard 0] Connecting to wss://gateway.discord.gg?v=10&encoding=json +3ms
  muse [WS => Shard 0] Waiting for event hello for 60000ms +3ms
/ 📡 connecting to Discord...  muse [WS => Shard 0] Preparing first heartbeat of the connection with a jitter of 0.1678403847209302; waiting 6923ms +163ms  muse [WS => Shard 0] Waiting for identify throttle +2ms
  muse [WS => Shard 0] Identifying
  muse  shard id: 0
  muse  shard count: 1
  muse  intents: 1153
  muse  compression: none +1ms
  muse [WS => Shard 0] Waiting for event ready for 15000ms +2ms
- 📡 connecting to Discord...  muse [WS => Shard 0] Shard received all its guilds. Marking as fully ready. +196ms
  muse --------------------------------------------------
  muse Core Dependencies
  muse - @discordjs/voice: 0.17.0
  muse - prism-media: 1.3.5
  muse
  muse Opus Libraries
  muse - @discordjs/opus: 0.8.0
  muse - opusscript: not found
  muse
  muse Encryption Libraries
  muse - sodium-native: not found
  muse - sodium: not found
  muse - libsodium-wrappers: 0.7.10
  muse - tweetnacl: not found
  muse
  muse FFmpeg
  muse - version: 2024-12-26-git-fe04b93afa-essentials_build-www.gyan.dev
  muse - libopus: yes
  muse -------------------------------------------------- +53ms
√ Ready! Invite the bot with *
  muse [WS => Shard 0] First heartbeat sent, starting to beat every 41250ms +7s
  muse [WS => Shard 0] Heartbeat acknowledged, latency of 104ms. +105ms
  muse DiscordAPIError[10062]: Unknown interaction
  muse     at handleErrors (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:640:13)
  muse     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
  muse     at async BurstHandler.runRequest (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:736:23)
  muse     at async REST.request (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:1387:22)
  muse     at async AutocompleteInteraction.respond (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\src\structures\AutocompleteInteraction.js:86:5)
  muse     at async play_default.handleAutocompleteInteraction (file:///C:/Users/Administrator/Documents/Servers/Discord/Bots/muse/src/commands/play.ts:1:2266)
  muse     at async Client.<anonymous> (file:///C:/Users/Administrator/Documents/Servers/Discord/Bots/muse/src/bot.ts:1:2747) +24s
  prisma:client  Prisma Client call: +31s
  prisma:client  prisma.setting.findUnique({
  where: {
    guildId: '504084859757658123'
  }
}) +1ms
  prisma:client  Generated request: +2ms
  prisma:client  query {
  findUniqueSetting(where: {
    guildId: "504084859757658123"
  }) {
    guildId
    playlistLimit
    secondsToWaitAfterQueueEmpties
    leaveIfNoListeners
    queueAddResponseEphemeral
    autoAnnounceNextSong
    defaultVolume
    defaultQueuePageSize
    turnDownVolumeWhenPeopleSpeak
    turnDownVolumeWhenPeopleSpeakTarget
    createdAt
    updatedAt
  }
}
 +1ms
  prisma:client:libraryEngine  sending request, this.libraryStarted: true +31s
  muse DiscordAPIError[10062]: Unknown interaction
  muse     at handleErrors (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:640:13)
  muse     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
  muse     at async BurstHandler.runRequest (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:736:23)
  muse     at async REST.request (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\node_modules\@discordjs\rest\dist\index.js:1387:22)
  muse     at async ChatInputCommandInteraction.deferReply (C:\Users\Administrator\Documents\Servers\Discord\Bots\muse\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:69:5)
  muse     at async AddQueryToQueue.addToQueue (file:///C:/Users/Administrator/Documents/Servers/Discord/Bots/muse/src/services/add-query-to-queue.ts:1:1685)
  muse     at async play_default.execute (file:///C:/Users/Administrator/Documents/Servers/Discord/Bots/muse/src/commands/play.ts:1:1804)
  muse     at async Client.<anonymous> (file:///C:/Users/Administrator/Documents/Servers/Discord/Bots/muse/src/bot.ts:1:2354) +353ms
  muse [VOICE] received voice state update: {"member":{"user":{"username":"Sir Groovington Sixth","public_flags":0,"primary_guild":null,"id":"1120687496070696991","global_name":null,"display_name":null,"discriminator":"1867","clan":null,"bot":true,"avatar_decoration_data":null,"avatar":"f3915147436d7d16345e9c71ab715c02"},"roles":["796866399003607050","764496539405647952","851125948026716180","1120697640011706459","797603501022773310"],"premium_since":null,"pending":false,"nick":null,"mute":false,"joined_at":"2023-06-20T12:17:45.584000+00:00","flags":0,"deaf":false,"communication_disabled_until":null,"banner":null,"avatar":null},"user_id":"1120687496070696991","suppress":false,"session_id":"60b6c81608f3d380b643f3306ad57b95","self_video":false,"self_mute":false,"self_deaf":false,"request_to_speak_timestamp":null,"mute":false,"guild_id":"504084859757658123","deaf":false,"channel_id":"718552122173685760"} +612ms
  muse [WS => Shard 0] Heartbeat acknowledged, latency of 112ms. +17s
  muse [VOICE] received voice state update: {"member":{"user":{"username":"Sir Groovington Sixth","public_flags":0,"primary_guild":null,"id":"1120687496070696991","global_name":null,"display_name":null,"discriminator":"1867","clan":null,"bot":true,"avatar_decoration_data":null,"avatar":"f3915147436d7d16345e9c71ab715c02"},"roles":["796866399003607050","764496539405647952","851125948026716180","1120697640011706459","797603501022773310"],"premium_since":null,"pending":false,"nick":null,"mute":false,"joined_at":"2023-06-20T12:17:45.584000+00:00","flags":0,"deaf":false,"communication_disabled_until":null,"banner":null,"avatar":null},"user_id":"1120687496070696991","suppress":false,"session_id":"60b6c81608f3d380b643f3306ad57b95","self_video":false,"self_mute":false,"self_deaf":false,"request_to_speak_timestamp":null,"mute":false,"guild_id":"504084859757658123","deaf":false,"channel_id":null} +14s

If you are able to, please do the following. Add DEBUG=* to your env file, and then make a comment on this PR with your FULL log. Make sure to backtick your code

Just pulled pr-1180 to a new directory and run via docker compose up -d. Here is my docker-compose.yml:
services:
muse:
container_name: muse
image: ghcr.io/museofficial/muse:pr-1180
environment:
- SPOTIFY_CLIENT_ID=🤫
- SPOTIFY_CLIENT_SECRET=🤫
- YOUTUBE_API_KEY=🤫
- DISCORD_TOKEN=🤫
- BOT_ACTIVITY=🤫
- BOT_ACTIVITY_TYPE=PLAYING
- DEBUG=*
volumes:
- /home/user/muse/data:/data:rw
restart: unless-stopped
Tried 3 commands:
/play never gonna give you up

🚫 ope: no songs found

/play https://www.youtube.com/watch?v=dQw4w9WgXcQ

u betcha, Rick Astley - Never Gonna Give You Up (Official Music Video) added to the queue
Bot joined voice channel, waited few seconds and disconnected.

/play https://open.spotify.com/track/4PTG3Z6ehGkBFwjybzWkR8
Got message: App is not responding
Debug log in attachment
muse_debug.log


Peewee error?

Hello, I'm getting the following issue when trying to download via SQLite on Windows. I'm still able to run SQLite, do SQL queries, and all that, so it must not be affecting functionality too much. I assume maybe I'd created the team.team_id database entries previously and it was just clashing because it had to overwrite it? I'm relatively new to all this so it could be some dependency I don't have or something to do with my system.
Traceback (most recent call last):
  File "peewee.py", line 3144, in execute_sql
sqlite3.IntegrityError: UNIQUE constraint failed: team.team_id

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "nba_sql.py", line 394, in <module>
  File "gooey\python_bindings\gooey_decorator.py", line 134, in <lambda>
  File "nba_sql.py", line 218, in main
  File "nba_sql.py", line 343, in populate_base_tables
  File "general_requester.py", line 51, in populate
  File "db_utils.py", line 15, in insert_many
  File "db_utils.py", line 28, in __insert_many_sqlite
  File "peewee.py", line 1907, in inner
  File "peewee.py", line 1978, in execute
  File "peewee.py", line 2745, in _execute
  File "peewee.py", line 2474, in _execute
  File "peewee.py", line 3157, in execute
  File "peewee.py", line 3151, in execute_sql
  File "peewee.py", line 2917, in __exit__
  File "peewee.py", line 190, in reraise
  File "peewee.py", line 3144, in execute_sql
peewee.IntegrityError: UNIQUE constraint failed: team.team_id

Thanks in advance!

Hi! It sounds like you created the database already and are trying to re-run the script on the existing database. Is that correct?
The app isn't very sophisticated when it comes to updating a database. Maybe this is a good place to start.
It looks like we're using db_utils.insert_many for the team table. Maybe it'd make more sense to call db_utils.insert_many_ignore_on_conflict.
I can try to make this change tonight or tomorrow, unless you would like to take a crack at it?
Also, are you using the windows client in the release or did you build your own?

Hi! It sounds like you created the database already and are trying to re-run the app on the existing database. Is that correct?

Most likely. The first time I ran it, I think I ran into a completely different error, but I remember resolving it (and I do not recall what caused it). So any/every subsequent attempt likely threw this error.

It looks like we're using db_utils.insert_many for the team table. Maybe it'd make more sense to call db_utils.insert_many_ignore_on_conflict.

Does it make sense to do this on_conflict_ignore call everywhere where relevant? Or maybe it should throw some warning/clarification (or error/exception) message?

Also, are you using the windows client in the release or did you build your own?

I used your 0.0.4 alpha release Windows client.
Also, nice seeing you outside the confines of the NBA (and UtahJazz) subreddit!  Cool application you've provided here.

OK, I am sitting on a PR that I forgot to merge. It should make this easier going forward. It includes a --skip-tables option that takes the team table as an option. I'll see if I can clean that up and merge it tonight and cut a new windows release. I will tag you in a comment here when its done and we can see if it solves the issue.
I'd like to limit on_conflict_ignore to base tables like team, as I feel like it could cause data issues but I'm not 100% certain. I think merging the expanded --skip-tables option is better overall.

PR here for reference: https://github.com/mpope9/nba-sql/pull/59

Small side question @mpope9 . Can data from 2021-22 be pulled for this database? In the .exe dialog box, it went up to 2020-21, but if I wanted to do a 2020-21 vs. 2021-22 comparison, could I go about doing that?
Thanks!

Since I'm making the PR I'll just toss that in because it is a one line change.

@rogersheu Wanna give this release a try: https://github.com/mpope9/nba-sql/releases/tag/v0.0.5
You can select multiple tables to skip the regular way by holding shift. I don't use the GUI much so let me know if there are any issues.

Tried running it on both 2021-22 and 2020-21 (separately) and got the same error.
Traceback (most recent call last):
  File "nba_sql.py", line 378, in <module>
  File "gooey\python_bindings\gooey_decorator.py", line 134, in <lambda>
  File "nba_sql.py", line 89, in main
AttributeError: 'Namespace' object has no attribute 'batch_size'

Also would like to mention that in the description for seasons selection, you have the following example usage
--seasons 2019-2020 2020-2021

but it should (probably) be --seasons 2019-20 2020-21

ah, I only tested with the commadline version. I'll see what the issue that I caused is. In the meantime, the previous release has --skip-base-tables which should do the trick as well.

I ran into the same issue running it from command line. The old version worked both ways.

I was able to repro it with the GUI version. I'll see what I can do.

Ok this should be fixed on master I believe. I can cut another windows build tomorrow, but you can also create your own using this script: https://github.com/mpope9/nba-sql/blob/master/scripts/build_exe.txt
However when doing some testing I noticed that shot_chart_detail is not populated correctly on sqlite, it only works on postgres and mysql. I've filed this follow up for it: https://github.com/mpope9/nba-sql/issues/61
I'll close this issue once I take it out for a spin tomorrow night.

Sorry for the delay on this. I re-built the windows client and give it a run through locally. Looks good.
That shot_chart_detail issue was also not real. I just didn't refresh my dbeaver connection when I rebuilt the database. It looks good, too.
You can find the release here: https://github.com/mpope9/nba-sql/releases/tag/v0.0.6 thanks for reporting this!

Cool! Thanks for maintaining!

Thank you for using 😄


Rework retry logic within impl_inner_call

The first patch fixes #47 by properly comparing the number of failed attempts with the value of config.retry.
The second patch improves the logging that happens as part of this logic.

I saw that there is also some retry logic for creating a new client. Should we adapt that too?

ack cb9b51f3562e87573b91fb9f39f69f0227e45a2d
Yes, I think we need to adapt the client creation too
we can merge this and open another PR for that or add to this, whatever comes first

Yes, I think we need to adapt the client creation too

See c8bace9.
Like before, this is reusing the errors vector to track the errors of re-creating the client as well. I am not fully convinced that this is the best way or whether we should actually isolate that.

ack c8bace9407ba97fff63d4d474469014207cb82c3


FFMpegFilter

I added 3 ffmpeg filters, but there is only one filter node in the final dump result. Is it because optimize has optimized it out? Why is there only one filter left?
I encountered a problem where the speeds of 3 filters were inconsistent.

Yes, filters will be merged into one filtergraph by default, but if you want them run by different nodes, it can be configured like this:
graph.set_option({'optimize_graph': False})
And please reference: bmf/demo/one_to_n_performance/one_to_n_transcode.py


BLE Device sending packet of data every second, iOS missing packets regularly, Android performs better.

So we have a bluetooth enabled sensor that is sending out a data packet every second, app receives the raw packet and runs calculations etc on the data to display.
I rarely see a missed packet in Android, and if I do it's only a second maybe 2, with iOS I'm regularly seeing missing packets and can be anywhere from 3 seconds worth up to around 20 seconds of missed packets.
Is there something in the plugin that I can enable to catch more of these packets or is it an iOS thing where Android is handling bluetooth better?

This is hard to believe. Android seems to have way more issues.

The code isn't indicative of the problem. Proof is in the pudding as they say.
Here is a google sheet showing the packet readings between the devices. Both were ready to read when I reset the sensor that is sending out the packets.
iOS vs Android Packet Log


⚠ Minecraft has degraded performance

In d998812, Minecraft (https://www.minecraft.net) experienced degraded performance:

HTTP code: 200
Response time: 1188 ms

Resolved: Minecraft performance has improved in d9060d9.


refactor: CacheFactory

Again, please add/update comments+docstrings (instead of removing them) so that the code is readable to other people. Additionally, do not remove licensing information from files.

I don't think it's necessary to place a copy of the license into all our php files?
Regarding the phpdocs there are lies, incorrect or outdated information in them. There is not much value there so I just remove them.

It is not a copy to the license, but a reference to it. It is the accepted way to properly license code.
The solution is not to delete docs, but to update them. This PR cannot be merged without proper documentation.
Additionally, clarify the purpose and benefits of each refactoring PR.
This comment applies to this pr, #2832, #2833, #2835, #2836

Okay. I don't think it's necessary to place a copy of a reference to the license in each of our files? Should we also add a copy of the reference to the license to all bridges too?
Most of the stuff in phpdocs is redundant or can be quickly inferred from the code. I think you are overvaluing comments. We don't have to document every single function.


KilledWorker error in the deployment

It looks like the most recent recipe run failed again, this time with a KilledWorker error. This appears to be a different failure than we saw in this previous recipe run, which did not result in an explicit error, but only processed a single chunk in time.
@cisaacstern Any thoughts on how to get passed a KilledWorker error?

@paigem, is it possible that any of the variables added in #4 are fields which, even when divided into 5 subsets
https://github.com/pangeo-forge/cesm-atm-025deg-feedstock/blob/d19040ba9e4eedf03f06c58525bbfbe03c10d693/feedstock/recipe.py#L48
are still > 800 MB in size?
For example, if any of the variables added were >= 5 GB in size, then with our current subset inputs, each subset will be >= 1 GB in size, which could easily kill a worker.
If this is the case, the way to solve it would be to increase subset_inputs to an integer divisor which is large enough to make each subset <= about 800 MB.
Also, just noting that dealing with these troublesome infrastructure concerns is one of many problems which the work scoped in https://github.com/pangeo-forge/pangeo-forge-recipes/issues/256 should solve once complete.

Thanks @cisaacstern for explaining this.
Each individual netCDF file (1 year of daily output) is just under 1 GB. Since I'm stringing together 9 years of data, then the full time series for each variable would indeed be roughly 9 GB, which is > 800MB per chunk.
I decided to go for the subset_inputs=5 with time chunks of length 73, since 5 is one of the few divisors of 365. If I increase the subset_inputs to, say 12 (for roughly one-month segments), this would yield time chunks of unequal size. Would that still work?


GCodeFromInkscape Integration/Tutorial Issues

Revisit tutorial and integration... there seems to be an issue with getting the Z0 and Z2/3 values to output correctly from gcodetools at the moment.

Fixed long ago


[retirements] fix project id on retirement page for ICR projects

Description
This PR fixes the project id on the retirements page which was showing a long number for ICR projects.
Related Ticket
Closes #2285

This fixes the UI issues on the page.
However, the Learn More link is being constructed with the long id and results in 404 page https://carbonmark-git-2285-fix-project-id-on-retirements-page-klimadao.vercel.app/projects/87525131485654382824957055535282281802959500504925522089844996918187118841064-2019
Question:
1. Why is the project description not being included on the receipt?

@jabby09 the "learn more"-url is fixed now. I don't understand your question however.

@jabby09 the "learn more"-url is fixed now. I don't understand your question however.

Non-ICR receipt pages include the project description, so for example https://www.carbonmark.com/retirements/0x6476edf98bdc5ee62f9d4e4bf8932d69ed685483/46
On my ICR receipt pages, the project description you see here (https://www.carbonmark.com/projects/ICR-112-2019) IS NOT being shown on the retirement receipt.

Non-ICR receipt pages include the project description, so for example https://www.carbonmark.com/retirements/0x6476edf98bdc5ee62f9d4e4bf8932d69ed685483/46
On my ICR receipt pages, the project description you see here (https://www.carbonmark.com/projects/ICR-112-2019) IS NOT being shown on the retirement receipt.

@sprrwhwk does this make sense now?


Added button in menu to join to channel.

This PR adds "Join to channel" button in context menu of urls with twitch.tv domain.

Should be "Join channel" or "Open split with channel"

Great feature addition, thank you for your contribution! I will merge this and change the text as @gempir mentioned


README.md missing info about running sdkmanager under Java8

Building for android
Description
Running the android sdkmanager command in the README.md results in the following when run with Java9 (I assume that's what users of javafxmobile-plugin are likely to have installed by default):
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
	at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
	at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
	at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
	at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
	at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)

Workaround
Run with Java 8 by running the following (or similar) before the command
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/

fixed in README -- thanks!


placeholder fix according to NickWer

Basically #217

Coverage remained the same at 75.556% when pulling 9aa12913107c2d6624719485d1d629a8b735ca78 on fix-placeholder-bug into 0901871b024104c6dbf9a75b107e23d3c9f00e14 on master.


roc format --migrate: Type vars not consistently migrated to snake_case.

From this discussion per @smores56: https://roc.zulipchat.com/#narrow/channel/397893-announcements/topic/Snake.20case.20support.20PSA/near/490273357

Don't know why it isn't showing up, but there is a branch for this in https://github.com/roc-lang/roc/pull/7402

Don't know why it isn't showing up

Because you typo'd in the description, and linked #7339 instead :)

That's embarrassing 😂


[Task] dotnet build doesnt work with dlls when ther are in sqltools Folder

This is to track a bug where we are facing issues while loading DacFx dlls to load in build. When the files are in SqlToolsService folder normally - the build fails to load them (particularly the composition dll) but copying them to a separate folder works.

no longer a problem now that we're moving away using the DacFx DLLs in STS to build projects and going to use the Microsoft.Build.Sql SDK for building both legacy and SDK style projects


Make-like incremental build

I'm just discovering this amazing tool, and one thing that surprised me much was that it seems to be building everything anew even for the tiniest change. Would be awesome if soupault or a plugin (pre-parse hook maybe?) could compare the modified dates and only generate what's new! (Neither a Lua coder nor an OCaml one myself, alas.)

There's caching for page preprocessor and other external commands output: https://soupault.app/reference-manual/#caching
Executing external commands is usually the worst offender in that regard, I find that enough of an improvement for my own websites, although I can see how for really large sites it may not be enough.
In soupault's approach, cache invalidation is a pretty tricky problem. For example, any config change may potentially invalidate the entire cache because there may be a widget that inserts something in every page. It gets more interesting down the line: e.g., if a page has changed, it may require rebuild of an index page of its section — if indexing is enabled for the dir where it lives and the index view doesn't exclude it. Any invalidation algorithm is a compromise in that situation — there may be a point when rebuilding a page is faster than trying to find out with certainty if its cached version is still valid.
My reasoning was that the consequences of stale data (even just user frustration from trying to figure out why their change has no effect) are worse than somewhat longer build times, most of the time.
I agree that ideally things that don't need a rebuild should not be rebuild, but I'm not sure what the best compromise is. If you have ideas for that, I'm happy to hear them. The only hard constraint on the cache invalidation algorithm that I don't want to violate is that it should never use stale data, I'm open to any suggestions that maintain that invariant.

You may want to read https://soupault.app/blog/soupault-4.4.0-release-and-ssg-caching/ for the survey of my findings about existing SSGs.

Alright, I see the complexity and will look into existing possibilities :)

For the incremental build of assets, it's possible to use makefile.
In my soupault.toml:
[asset_processors]
  svg = "SRC={{source_file_path}} DST={{target_dir}}/{{source_file_base_name}}.png TOOL=SVG make"
  ipe = "SRC={{source_file_path}} DST={{target_dir}}/{{source_file_base_name}}.png TOOL=IPE make"

In my Makefile:
${DST}: ${SRC}
ifeq "${TOOL}" "SVG"
	convert -background none ${SRC} ${DST}
endif
ifeq "${TOOL}" "IPE"
	iperender -png -resolution 200 -transparent ${SRC} ${DST}
endif

make will automatically check if it needs to rebuild the assets.


Connecting to Selenium Grid

How can I trigger test cases with Selenium Grid using browser library ?

Instructions are in PW side: https://playwright.dev/docs/selenium-grid


Bug in ParNCMesh with p > 2 H1 space on conformal prism mesh

I have a mesh p1_prism.msh, available on branch cavity-prism-par-ncmesh-bug, which when run with ex1p runs fine, with and without a uniform refinement:
mpirun -np 3 ex1p -m ../../data/p1_prism.msh -o 2

The initial p1_prism mesh as shown by glvis is

and the uniformly refined mesh is

Passing the same mesh to ex6p however causes a range of issues. If a uniform refinement is done on the serial mesh before EnsureNCMesh is called, calling mpirun -np 3 ex6p -m ../../data/p1_prism.msh -o 2 -h1 (using -h1 avoids triggering a related bug for RT spaces, see https://github.com/mfem/mfem/issues/3671) gives these error messages:
Verification failed: (key >= 0) is false:
 --> R1 index 35 not found.
 ... in function: const NCMesh::MeshId &mfem::NCMesh::NCList::LookUp(int, int *) const
 ... in file: [redact]/mfem/mesh/ncmesh.cpp:3474

Verification failed: (key >= 0) is false:
 --> R0 index 13 not found.
 ... in function: const NCMesh::MeshId &mfem::NCMesh::NCList::LookUp(int, int *) const
 ... in file: [redact]/mfem/mesh/ncmesh.cpp:3474

In the initial phase of BuildParallelConformingInterpolation where local true dofs are being sent to other ranks here. The R0 and R1 in the above error messages are the ranks of the failing processors.
If uniform refinement is instead performed after the call to EnsureNCMesh, then this loop never terminates for rank 2, as ranks 0 and 1 exit the loop, whilst rank 2 is waiting for one more face dof (141) to be delivered from a communication group of rank 1 and rank 2. Sending all of the dofs that rank 1 believes rank 2 needs again, does not work either, so rank 1 and 2 are in disagreement about the sharing of dofs.
These meshes are entirely conformal, as no AMR has occurred yet, and from the running of ex1p, are valid conformal meshes. So the issue appears to be in the interpretation of the mesh by the ParNCMesh class, and from that the construction of a finite element space that depends on face dofs. For a P2 prism mesh, the only face dofs have to be on quadrilateral faces, suggesting the issue is there.
Any help/feedback would be appreciated as the ParNCMesh class is not the easiest to understand, and it only gets more difficult when interacting with the ParFiniteElementSpace class. I've read the NC mesh paper but that is primarily concerned with quads/hexes, and reading through https://github.com/mfem/mfem/pull/713 it appears most difficulties were associated with mixed meshes, rather than a purely prism mesh such as this.

I can confirm this behavior but I haven't looked further into it yet.

Thanks for the response @mlstowell, I'll post any extra information I glean here. I have a few extra ways of triggering similar (and I believe related) issues. Running with 2 ranks, order 2, then rank 0 fails to send identity rows, as the index returned by UnpackDofs is an invalid entry into the face_list of NCMesh. It looks like ParFiniteElementSpace::UnpackDofs is inconsistent with NCMesh::NCList. Big upside to this particular error is a) Rank 0, so minimal ghosts and b) only two ranks as opposed to the three of above. This then points the finger at var_face_dofs or NCList, and I am inclined to say it's var_face_dofs.

Ok, I think I have possibly identified one issue, but haven't thought of a solution. Basically it looks like the issue is that UnpackDofs is assuming that the map dof -> entity,index,edof is a one to one map, i.e. each dof entry has a single entity associated. The issue is that for a P2 tri there is no dof, so when var_face_dofs table is populated, there will be multiple triangles mapped onto a single dof.
So when dof 191 (dof 7 in the face dofs) is added, it searches through the Table, and finds the interval (13, 14, 15), std::lower_bound then extracts 13 but the real shared face is triangle 14. This then causes the miss when NCList is interrogated for the shared face 13, which doesn't exist. This is clearly an issue, but I still think there are others. Reason being, switching to P3 would fix this, (all faces have interior dofs), but there's still a miss there. It does suggests to me however that the NCList->UnpackDofs interface is where the issues lie.

Discussion continued in #3709.


CB-8607 [GCP] Get stacks

In GCP currently we create resources one-by-one (without using a template), so stacks have to be assembled from resources.
We define a stack for each cloudera-resource-name label value of found instances:

Add instances with the same tag to stack
Add database with the same tag to stack
Filter networks by their description, and add them to stack by the instance's network interface in stack
Add external IPs as referenced by instances in stack
Then add references to these resources in the MetaData property of the stack, so later we can reference them.

This commit contains Cloudera specific stuffs. Would be nice to made it configurable and usable for others

I have made them configurable


Add section for custom templating

Adds a new code area to allow users to input custom pipelines/templates. As templating requires at least 0.10.0 this would break some backend/pipelines support. To solve this I suggest we provide multiple requirements files so that local installs can easily switch. While we support the latest version for the latest features/bug fixes
This is a work in progress, features to add

[ ] Add save button to allow users to save their custom templates/pipelines in the browser local storage
[ ] More?

cc @josehelps

Moved to #22


Add java.util.WeakHashMap

Could be based on WeakMap, supported since ECMAScript 6 (2015) and on all major browsers.

Unfortunately not. JavaScript's WeakMap lacks several fundamental features compared to Java's. In particular, it does not provide iteration of keys/entries (on purpose).
To implement java.util.WeakHashMap, we will need something more, which might be coming with a proposal for WeakRefs: https://github.com/tc39/proposal-weakrefs

Seems that WeakRefs are now present in majority (by market share) of browsers: https://www.caniuse.com/?search=weakref https://github.com/tc39/proposal-weakrefs/pull/212/files

WeakRefs are now at Stage 4, so we could now implement this. PR welcome.


pythonPackages.lz4: remove in favor of pythonPackages.python-lz4

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[x] other Linux distributions

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review pr 51603"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

cc @costrouc

@GrahamcOfBorg build mozlz4a python27Packages.buildbot python27Packages.joblib python27Packages.uproot python37Packages.uproot

Why?

@FRidh Because right now lz4 is just an outdated version of python-lz4.

Care to document that in the commit message(s).

@FRidh done!

@GrahamcOfBorg build python2Packages.python-lz4 python3Packages.python-lz4

pythonPackages.lz4 was bumped to 2.1.2 in 57aa856d25fa63239a55e4523cdb89f8f76ad012 and 775fa99aa432892eebf5e24ccc3d5fa815adaa90. We still need to get rid of the duplicates.


Map tiles not loading if setView() is used inside a PHP page

Hello,
we found that the tiles do not load (only part of one tile is actually loaded as shown in the attached picture) when we embed the code inside a PHP page. The problem is browser independent. The OS is Win 10 64bit.  The structure of the used code is very basic and is as follows

  <link rel="stylesheet"<EMAIL_ADDRESS>/>

In order to help troubleshooting I can say that the tiles load correctly

as soon as the browser windows is resized
if the statement
var map = L.map('map').setView([51.505, -0.09], 13);
is replaced by
var map = L.map('map');
map.locate({setView: true, maxZoom: 16});
if the same code (I mean with setView()) is used in a pure HTML page

As workaround we are using the statement
map.locate({setView: true, maxZoom: 16});
in place of
L.map('map').setView([51.505, -0.09], 13);
but this is not the optimal solution as the map is not centered were we would like.
Thanks in advance for any suggestion.

Just initialize the map after the code that resizes your map container has run, or run map.invalidateSize() when appropiate.

See https://stackoverflow.com/questions/36246815/data-toggle-tab-does-not-download-leaflet-map/36257493#36257493

Thanks to @IvanSanchez and @ghybs, for the answer, in the following the test I did.

Concerning "initialize the map after the code that resizes your map container has run", yes we are using Boostrap, but I am not aware of any intentional resize of the map container. However I moved the following basic code in an external script that is called at the end of the page, so after all the possible  code that resizes the map container. The problem still persists.

$(document).ready(function() {
var map = L.map('map').setView([51.505, -0.09], 13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '© OpenStreetMap contributors'
}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup.
 Easily customizable.')
    .openPopup();

});

Concerning "run map.invalidateSize() when appropiate", always in the external script I used the following code. The problem still persists.

$(document).ready(function() {

var map = L.map('map').invalidateSize(true);

map.setView([51.505, -0.09], 13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '© OpenStreetMap contributors'
}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup.
 Easily customizable.')
    .openPopup();

});

To be sure to assign the proper dimensions to the map container, in the external script I also initialized the map container dimensions as follows, and also in this case the problem still persists.

$(document).ready(function() {

$('#map').css({"height": "500px", "width": "100%"});

var map = L.map('map').setView([51.505, -0.09], 13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '© OpenStreetMap contributors'
}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup.
 Easily customizable.')
    .openPopup();

});

At this point in time I am really running out of ideas.
May be that understanding why setView() is not working while map.locate({setView: true, maxZoom: 16}) yes, can help?

map.locate is asynchronous, so it will apply the setView after a short delay that is enough for your map container to get its final size.
At least try to perform map.invalidateSize() in a setTimeout, if you are really not able to track down when your container is resized.

@ghybs
I tested the following code, but without success
$(document).ready(function() {
var map = L.map('map');

setTimeout(function(){ map.invalidateSize(true)}, 300);

map.setView([51.505, -0.09], 13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '© OpenStreetMap contributors'
}).addTo(map);

});

I will see if am able to post some demo because there is a lot of JS and PHP code and I need to restrict the area of the possible cause.
Thanks


Setup Renovate

We've started using Renovate in the other repositories, let's replace dependabot with Renovate here too.

Hi @nhedger , I am working on this. My approach would be to delete Dependabot and add a new configuration with Renovate. Also, I think once this is done, we need to disable Dependabot alerts and security updates from the repo. Could you please assign this to me to avoid any conflicts?

Sounds good! Appreciate the help!

@nhedger I have added renovate from other repos, so if you need any modifications to current configurations please let me know. Also we will need to enable renovate for this repo.

Thanks, I'll have a look in a bit!


Move from Argparse to Omegaconf

Opening the PR now so that we can properly visualize the changes and eventually get the tests rolling.

@vturrisi Why not use hydra from FAIR. It is a more powerful, and can easily convert to and from OmegaConf options?

I have used hydra in the past and could give feedback and code review

@turian yes, using hydra is another possibility. What would be the main advantages over omegaconf?

@vturrisi Hydra is a library that builds on Omegaconf, so it's more powerful. (Nonetheless, you can easily cast things to OmegaConf if need be.) But it's pretty easy to port to it.
TBH I am not super familiar with OmegaConf because I just just Hydra and it seems to handle the casts to OmegaConf automatically as necessary.
Here is what Hydra does that's cool, let me know if OmegaConf does all this:

You group your configs into different yaml files in config, maybe them easy to find.
You can compose the YAML files but easily override them.

Skim the intro: https://hydra.cc/docs/intro/
and you'll see what I mean.
There's also the Structured Configs which I haven't allowed, but I believe it allows you to statically type all your parameters and not need the YAML file. I haven't really needed this but super mission-critical services might want this.
BTW, Lightning-Hydra-Template which implements best practices also uses hydra?

One more benefit of hydra that I don't think omegaconf has.
Let's say you have two YAML files, one for a super large model and one for a tiny model.
hydra let's you switch configs using just the name of the YAML. Does omegaconf require you to
(I wanted to take a crack at this but first I'd like to discuss #303 i.e. which is the most common / most covering main file(s) to run on toy data.)

I'm thinking about just using hydra to parse the args and merge appropriate default files. Then, we can just call some script like:
python main_pretrain.py --config-path scripts/pretrain/imagenet --config-name barlow {extra parameters to modify} +{extra parameters to add}.

I'm thinking about just using hydra to parse the args and merge appropriate default files. Then, we can just call some script like:
python main_pretrain.py --config-path scripts/pretrain/imagenet --config-name barlow {extra parameters to modify} +{extra parameters to add}.

Agreed

I'm not a bit fan or relying on hydra for everything (e.g. initializing objs) nor adhering to the default "configs" structure that hydra uses as it seems like a nightmare to manage many settings.

Agreed
Nonetheless, you need to add hydra-core to setup.py and requirements.txt. hydra is the wrong package.

Yes, I was in a hurry to commit and put the wrong packaged by mistake. Gonna fix it tomorrow together with moving all config files for pretrain from bash to the new setting. Hopefully I'll also fix the tests soon enough and merge everything this week.

@vturrisi did CI/CD get disabled?

@turian it's just failing in the background for some reason. I'm still fixing the tests so it's gonna take a while.


Unable to start pod due to wrong CRD version

Description
[Description of the problem]
Steps to Reproduce
[Brief description of the steps you took to encounter the problem, if applicable]
Expected behavior: [What you expected to happen]
Actual behavior: [What actually happened]
Versions
[Which version of STUNner you are using]
Info
[Please copy-paste the output of the below commands and make sure to remove all sensitive information, like usernames, passwords, IP addresses, etc.]
Gateway API status
[Output of kubectl get gateways,gatewayconfigs,gatewayclasses,udproutes.stunner.l7mp.io --all-namespaces -o yaml]
Operator logs
[Output of kubectl -n stunner-system logs $(kubectl get pods -l control-plane=stunner-gateway-operator-controller-manager --all-namespaces -o jsonpath='{.items[0].metadata.name}')]
024-10-22T11:25:56.835450039Z	INFO	setup	starting operator thread
2024-10-22T11:25:56.835501009Z	INFO	gatewayconfig-controller	Created GatewayConfig controller
2024-10-22T11:25:56.835512302Z	INFO	gatewayconfig-controller	Watching GatewayConfig objects
2024-10-22T11:25:56.846979851Z	INFO	gatewayconfig-controller	Watching Secret objects
2024-10-22T11:25:56.847008073Z	INFO	dataplane-controller	created dataplane controller
2024-10-22T11:25:56.847013364Z	INFO	dataplane-controller	watching dataplane objects
2024-10-22T11:25:56.847019738Z	INFO	gateway-controller	Created Gateway controller
2024-10-22T11:25:56.847025445Z	INFO	gateway-controller	Watching GatewayClass objects
2024-10-22T11:25:56.847029244Z	INFO	gateway-controller	Watching Gateway objects
2024-10-22T11:25:56.856714629Z	ERROR	setup	problem running operator	{"error": "Cannot register gateway controller: no matches for kind "Gateway" in version "gateway.networking.k8s.io/v1""}

hi @hudson-s !
This error is the key:
{"error": "Cannot register gateway controller: no matches for kind "Gateway" in version "gateway.networking.k8s.io/v1""}

I guess Gateway API v1 CRD is somehow not installed in your cluster (install help: https://gateway-api.sigs.k8s.io/guides/#install-standard-channel).
Is this a new STUNner install or you just updated from an earlier version? BTW mind to tell a few words about your use-case?

Which STUNner version is it? We upgraded the Gateway API CRD in our helm chart to v1.0.0 10 month ago: https://github.com/l7mp/stunner-helm/blob/main/helm/stunner-gateway-operator/crds/gateway-api-crd.yaml
Can you give info on your cluster? Is it self-managed or do you any public option (e.g., GKE, AKS, EKS, etc.)?

Which STUNner version is it? We upgraded the Gateway API CRD in our helm chart to v1.0.0 10 month ago: https://github.com/l7mp/stunner-helm/blob/main/helm/stunner-gateway-operator/crds/gateway-api-crd.yaml
Can you give info on your cluster? Is it self-managed or do you use managed K8s (e.g., GKE, AKS, EKS, etc.)?
I am use managed by alibaba cloud k8s.
I am using the latest clone

Interesting, can you double check that the CRD install was successful?
To install the CRDS, Just run kubectl apply -f  helm/stunner-gateway-operator/crds/ and check the output, and the available API resources and CRDs in your cluster. I have a new insall on AKS, and the output is the following:
kubectl api-resources | grep gateway
gatewayclasses                      gc                  gateway.networking.k8s.io/v1         false        GatewayClass
gateways                            gtw                 gateway.networking.k8s.io/v1         true         Gateway
grpcroutes                                              gateway.networking.k8s.io/v1alpha2   true         GRPCRoute
httproutes                                              gateway.networking.k8s.io/v1         true         HTTPRoute
referencegrants                     refgrant            gateway.networking.k8s.io/v1beta1    true         ReferenceGrant
tcproutes                                               gateway.networking.k8s.io/v1alpha2   true         TCPRoute
tlsroutes                                               gateway.networking.k8s.io/v1alpha2   true         TLSRoute
udproutes                                               gateway.networking.k8s.io/v1alpha2   true         UDPRoute
gatewayconfigs                      gwconf              stunner.l7mp.io/v1                   true         GatewayConfig

Note that we also see gatewayconfigs.stunner.l7mp.io/v1 resources in the output.
kubectl get crds | grep gateway
gatewayclasses.gateway.networking.k8s.io         2024-10-21T17:55:51Z
gatewayconfigs.stunner.l7mp.io                   2024-10-21T17:55:51Z
gateways.gateway.networking.k8s.io               2024-10-21T17:55:51Z
grpcroutes.gateway.networking.k8s.io             2024-10-21T17:55:51Z
httproutes.gateway.networking.k8s.io             2024-10-21T17:55:51Z
referencegrants.gateway.networking.k8s.io        2024-10-21T17:55:51Z
tcproutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z
tlsroutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z
udproutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z

Interesting, can you double check that the CRD install was successful?
To install the CRDS, Just run kubectl apply -f helm/stunner-gateway-operator/crds/ and check the output, and the available API resources and CRDs in your cluster. I have a new insall on AKS, and the output is the following:
kubectl api-resources | grep gateway
gatewayclasses                      gc                  gateway.networking.k8s.io/v1         false        GatewayClass
gateways                            gtw                 gateway.networking.k8s.io/v1         true         Gateway
grpcroutes                                              gateway.networking.k8s.io/v1alpha2   true         GRPCRoute
httproutes                                              gateway.networking.k8s.io/v1         true         HTTPRoute
referencegrants                     refgrant            gateway.networking.k8s.io/v1beta1    true         ReferenceGrant
tcproutes                                               gateway.networking.k8s.io/v1alpha2   true         TCPRoute
tlsroutes                                               gateway.networking.k8s.io/v1alpha2   true         TLSRoute
udproutes                                               gateway.networking.k8s.io/v1alpha2   true         UDPRoute
gatewayconfigs                      gwconf              stunner.l7mp.io/v1                   true         GatewayConfig

Note that we also see gatewayconfigs.stunner.l7mp.io/v1 resources in the output.
kubectl get crds | grep gateway
gatewayclasses.gateway.networking.k8s.io         2024-10-21T17:55:51Z
gatewayconfigs.stunner.l7mp.io                   2024-10-21T17:55:51Z
gateways.gateway.networking.k8s.io               2024-10-21T17:55:51Z
grpcroutes.gateway.networking.k8s.io             2024-10-21T17:55:51Z
httproutes.gateway.networking.k8s.io             2024-10-21T17:55:51Z
referencegrants.gateway.networking.k8s.io        2024-10-21T17:55:51Z
tcproutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z
tlsroutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z
udproutes.gateway.networking.k8s.io              2024-10-21T17:55:51Z

I just ran the kubectl apply -f  helm/stunner-gateway-operator/crds/
Print as follows
# kubectl api-resources | grep gateway
gatewayclasses                     gc               gateway.networking.k8s.io/v1                  false        GatewayClass
gateways                           gtw              gateway.networking.k8s.io/v1beta1             true         Gateway
grpcroutes                                          gateway.networking.k8s.io/v1alpha2            true         GRPCRoute
httproutes                                          gateway.networking.k8s.io/v1                  true         HTTPRoute
referencegrants                    refgrant         gateway.networking.k8s.io/v1beta1             true         ReferenceGrant
tcproutes                                           gateway.networking.k8s.io/v1alpha2            true         TCPRoute
tlsroutes                                           gateway.networking.k8s.io/v1alpha2            true         TLSRoute
udproutes                                           gateway.networking.k8s.io/v1alpha2            true         UDPRoute
gatewayconfigs                     gwconf           stunner.l7mp.io/v1                            true         GatewayConfig

# kubectl get crds | grep gateway
gatewayclasses.gateway.networking.k8s.io                         2024-08-09T03:29:06Z
gatewayconfigs.stunner.l7mp.io                                   2024-10-23T12:15:16Z
gateways.gateway.networking.k8s.io                               2024-08-09T03:29:06Z
grpcroutes.gateway.networking.k8s.io                             2024-10-23T12:15:16Z
httproutes.gateway.networking.k8s.io                             2024-08-09T03:29:06Z
referencegrants.gateway.networking.k8s.io                        2024-08-09T03:29:06Z
tcproutes.gateway.networking.k8s.io                              2024-10-23T12:15:16Z
tlsroutes.gateway.networking.k8s.io                              2024-10-23T12:15:16Z
udproutes.gateway.networking.k8s.io                              2024-10-23T12:15:16Z

I am not very proficient in crd. Can you tell me what I need to do next

LGTM. Any update on your deployment? Does it finally work?

LGTM. Any update on your deployment? Does it finally work?

sorry ,no
I need your help

hello I tried again and resolved the matter. But there is a line printed in the pod, I don't know if it has any effect
2024-10-24T02:34:01.582269558Z	INFO	renderer	No gateway-class objects found	{"event": "render: generation: 1"}
2024-10-24T02:34:01.788381301Z	INFO	udproute-controller	Validating backend	{"udproute": "not found"}
2024-10-24T02:34:01.789473895Z	INFO	udproute-controller	Validating backend	{"udproute": "not found"}
2024-10-24T02:34:12.852483088Z	INFO	udproute-controller	Validating backend	{"udproute": "not found"}
2024-10-24T02:34:12.852514074Z	INFO	udproute-controller	Validating backend	{"udproute": "not found"}
2024-10-24T02:35:45.438481932Z	INFO	node-controller	Reconciling	{"node": "/prod-cn-argus-acknode-pool02-<IP_ADDRESS>"}
2024-10-24T02:35:45.4385956Z	INFO	node-controller	failed to find node with valid external address	{"reason": "End of node list reached after searching through 4 node(s)"}
2024-10-24T02:35:45.688628843Z	INFO	operator	Starting new reconcile generation	{"generation": 1, "last-acked-generation": -1}
2024-10-24T02:35:45.68866041Z	INFO	renderer	Rendering configuration	{"generation": 2, "event": "render: generation: 2"}
2024-10-24T02:35:45.688665757Z	INFO	renderer	Starting dataplane render	{"mode": "managed"}
2024-10-24T02:35:45.688678733Z	INFO	renderer	No gateway-class objects found	{"event": "render: generation: 2"}

Q1:
	udproute-controller	Validating backend	{"udproute": "not found"}
Q2
    failed to find node with valid external address	{"reason": "End of node list reached after searching through 4 node(s)"}
I understand because I didn't leak the extranet ip node.

If the Internet ip address is leaked, will the entire cluster have security problems?
Do you need taint?

I would recommend to try a working example first. The simple-tunnel](https://github.com/l7mp/stunner/tree/main/docs/examples/simple-tunnel) shows how to configure STUNner. Let us know whether this example works in your setup or not.

https://github.com/l7mp/stunner/blob/main/docs/cmd/turncat
can not open

Thanks, this is now fixed in https://github.com/l7mp/stunner/commit/9d1583de2e7b4a3660b7858dbe2d0b41c49eb1a8


Refactor attribute route

@rynowak

:watch: Good start, I think it can be cleaned up a bit more, but this is what I had in mind.

Updated. /cc: @rynowak

:shipit: after fixing spacing


svelte-scoped always parses theme()

UnoCSS version
0.62.4
Describe the bug
I want to use unocss-icons in my UI library with Tailwind.
However, I get compile errors as I am using the Tailwind theme() directive.
As this also happens with an empty UnoCss config it's probably a bug.
import { defineConfig } from 'unocss'

export default defineConfig({
  presets: [],
  // presets: [require('@unocss/preset-icons')],
  rules: [],
  extractors: [],
  transformers: [],
  extractorDefault: false,
  shortcuts: {},
  variants: [],
})

> "olors.slate.5" is not found in your theme
    at getThemeValue (file:///home/vdawg/dev/efront/node_modules/.pnpm/@unocss+svelte-scoped@0.62.4/node_modules/@unocss/svelte-scoped/dist/shared/svelte-scoped.C_b8iifX.mjs:378:13)
    at<EMAIL_ADDRESS>
Reproduction
https://stackblitz.com/edit/sveltejs-kit-template-default-kcbfsk?file=uno.config.ts&view=editor
Run npm run package
System Info
No response
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Use theme('xxx'): https://unocss.dev/integrations/postcss#theme
Check https://unocss.dev/integrations/svelte-scoped#add-plugin (you're using vite instead vite svelte-scoped)

Is it possible to tell UnoCss to ignore the theme() directive?
Tailwind should handle it

@unocss/svelte-scoped/preprocess right now has hard coded theme() support (https://github.com/unocss/unocss/blob/main/packages/svelte-scoped/src/_preprocess/transformTheme.ts), this can probably be changed to be a Svelte Scoped preprocess specific setting.

Yes, like the applyVariable.
I keep the issue open. For now, I just use regular svgs.
And thank you for your help :)


⚠ Samsung has degraded performance

In b8b1257, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2833 ms

Resolved: Samsung performance has improved in 6d003b8.


Running Driver nightly tests fails against undercloud deployment - Newton Qual

Details: For bugs, copy and paste the following template into your new issue and fill it out.
Running Driver nightly tests fails against undercloud newton stack, This is the log message in f5-opesntack-agent.log:

ext: u'{"code":404,"message":"01020036:3: The requested self IP (/Project_57dd3ea01116482ca95d9fd6e1153a2e/local-bigip1-e03cad40-cc4a-4265-b348-c3236d96908d) was not found.","errorStack":[],"apiError":3}' wrapper /usr/lib/python2.7/site-packages/icontrol/session.py:265
2017-05-04 09:50:46.579 43583 DEBUG root [req-ab6c6c10-265a-4efc-aa67-9bf3c73dada6 8d03583ac05d468ebae3aa6f4e117beb cc57ed7b62344129bb4f85fbc3722b10 - - -] post WITH uri: https://<IP_ADDRESS>:443/mgmt/tm/net/self/ AND suffix:  AND kwargs: {'json': {'floating': 'disabled', 'vlan': 'tunnel-vxlan-39', 'partition': u'Project_57dd3ea01116482ca95d9fd6e1153a2e', 'name': u'local-bigip1-e03cad40-cc4a-4265-b348-c3236d96908d', 'address': '%2/28'}} wrapper /usr/lib/python2.7/site-packages/icontrol/session.py:257
2017-05-04 09:50:46.592 43583 DEBUG root [req-ab6c6c10-265a-4efc-aa67-9bf3c73dada6 8d03583ac05d468ebae3aa6f4e117beb cc57ed7b62344129bb4f85fbc3722b10 - - -] RESPONSE::STATUS: 400 Content-Type: application/json Content-Encoding: None
Text: u'{"code":400,"message":"\\"%2/28\\" invalid address","errorStack":[],"apiError":26214401}' wrapper /usr/lib/python2.7/site-packages/icontrol/session.py:265
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips [req-ab6c6c10-265a-4efc-aa67-9bf3c73dada6 8d03583ac05d468ebae3aa6f4e117beb cc57ed7b62344129bb4f85fbc3722b10 - - -] selfip creation error: 400 Unexpected Error: Bad Request for uri: https://<IP_ADDRESS>:443/mgmt/tm/net/self/
Text: u'{"code":400,"message":"\\"%2/28\\" invalid address","errorStack":[],"apiError":26214401}'(400)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips Traceback (most recent call last):
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips   File "/usr/lib/python2.7/site-packages/f5_openstack_agent/lbaasv2/drivers/bigip/selfips.py", line 50, in _create_bigip_selfip
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips     self.selfip_manager.create(bigip, model)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips   File "/usr/lib/python2.7/site-packages/f5_openstack_agent/lbaasv2/drivers/bigip/resource_helper.py", line 94, in create
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips     obj = resource.create(**model)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips   File "/usr/lib/python2.7/site-packages/f5/bigip/resource.py", line 974, in create
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips     return self._create(**kwargs)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips   File "/usr/lib/python2.7/site-packages/f5/bigip/resource.py", line 941, in _create
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips     response = session.post(_create_uri, json=kwargs, **requests_params)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips   File "/usr/lib/python2.7/site-packages/icontrol/session.py", line 272, in wrapper
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips     raise iControlUnexpectedHTTPError(error_message, response=response)
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips iControlUnexpectedHTTPError: 400 Unexpected Error: Bad Request for uri: https://<IP_ADDRESS>:443/mgmt/tm/net/self/
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips Text: u'{"code":400,"message":"\\"%2/28\\" invalid address","errorStack":[],"apiError":26214401}'
2017-05-04 09:50:46.592 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.selfips
2017-05-04 09:50:46.593 43583 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver [req-ab6c6c10-265a-4efc-aa67-9bf3c73dada6 8d03583ac05d468ebae3aa6f4e117beb cc57ed7b62344129bb4f85fbc3722b10 - - -] Prep-network exception: icontrol_driver: 400 Unexpected Error: Bad Request for uri: https://<IP_ADDRESS>:443/mgmt/tm/net/self/
Text: u'{"code":400,"message":"\\"%2/28\\" invalid address","errorStack":[],"apiError":26214401}'
2017-05-04 09:50:46.594 43583 DEBUG f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver [req-ab6c6c10-265a-4efc-aa67-9bf3c73dada6 8d03583ac05d468ebae3aa6f4e117beb cc57ed7b62344129bb4f85fbc3722b10 - - -]     _prep_service_networking took 0.31975 secs _common_service_handler /usr/lib/python2.7/site-packages/f5_openstack_agent/lbaasv2/drivers/bigip/icontrol_driver.py:1233

OpenStack Release
Newton
Bug Severity
For bugs enter the bug severity level. Do not set any labels.
Severity: <Fill in level: 1 through 5>
Severity level definitions:

Severity 1 (Critical) : Defect is causing systems to be offline and/or nonfunctional. immediate attention is required.
Severity 2 (High) : Defect is causing major obstruction of system operations.
Severity 3 (Medium) : Defect is causing intermittent errors in system operations.
Severity 4 (Low) : Defect is causing infrequent interuptions in system operations.
Severity 5 (Trival) : Defect is not causing any interuptions to system operations, but none-the-less is a bug.

Details: For enhancements, copy and paste the following template into your new issue and fill it out.

@dflanigan: please remove test bug from this issue. We don't believe it is a test bug. It is very likely a code fix that must go into either the driver or agent to get a service deployed in newton undercloud.

@szakeri: do you recall the failing test for this issue?

@szakeri: I'm closing this issue, as it has been addressed in newton.


Recording not recording...

I'm using Kapacitor version: 0.10.1-1 from the repo "https://repos.influxdata.com/ubuntu trusty stable"
kapacitor record stream -name cpu_alert -duration 60s

results in this in the kapacitord logs:
[httpd] 2016/03/23 18:18:50 I! <IP_ADDRESS> - - [23/Mar/2016:18:18:50 +0000] POST /record?duration=60s&name=cpu_alert&type=stream HTTP/1.1 200 82 - Go-http-client/1.1 b11239f6-f123-11e5-800c-000000000000 761.764µs

However the command never seems to return. It's now 10 minutes later..
 kapacitor list recordings
 ID                                      Type    Size      Created
 48b60266-ceb1-41a5-bda7-198601cd21cd    stream  0 B       23 Mar 16 11:18 PDT

@SleepyBrett The recording will hang if Kapacitor is not receiving any data. This is because the duration is measured by the increasing timestamps in received data vs real time.
Check that the task cpu_alert has a valid DBRP value and that Kapacitor is receiving data for that DBRP.

gotcha, I'll check my connection to influxdb then.

You can go ahead and close this, the only suggestion I might put forward is in general you guys don't explain failures very well.
The actual problem ended up being that the connection to influx wasn't being fully made because I was deploying it into a different pod than influxdb and thus the udp connection wasn't being made.

@SleepyBrett Agreed, we have an open issue for this specific bug, but in general we need to make it easier to determine if Kapacitor is receiving data for a given DBRP.


Fix Youtube encrypted videos.

Looks like Google switched to a new JS compiler that includes dollar signs in function names.

Sorry, worst commit message ever. Not encrypted videos, encrypted sigs.

Can you name an example URL?

Yeah. All videos with encrypted sigs are failing for me. For example:
nfWlot6h_JM
On Jan 15, 2015 10:46 AM, "Sergey M."<EMAIL_ADDRESS>wrote:

Can you name an example URL?
—
Reply to this email directly or view it on GitHub
https://github.com/rg3/youtube-dl/pull/4706#issuecomment-70138401.

Thanks.

No prob!
On Jan 15, 2015 11:26 AM, "Sergey M."<EMAIL_ADDRESS>wrote:

Thanks.
—
Reply to this email directly or view it on GitHub
https://github.com/rg3/youtube-dl/pull/4706#issuecomment-70145307.


Reminder: figure out how to use WinMain entry point...

...the samples currently open a terminal window (so looks like Odin is using main() by default, not WinMain)... need to figure out if and how Odin can be convinced to use WinMain.

...fixed: via -subsystem:windows


Custom Flyout container

How select a parent container for Flyout?
else,
how add a custom width to Flyout?

I add custom width, but the container disappear...
ORIGINAL
.easyzoom--overlay .easyzoom-flyout {
top: 0;
left: 0;
width: 100%;
height: 100%;
}
CUSTOM
.easyzoom--overlay .easyzoom-flyout {
top: 0;
left: 0;
width: 900px;
height: 100%;
}

Can you add a link with an example? I might be able to help you out. It sounds like the position value for the .easyzoom--overlay element is something other than relative though...

@slindstr I could do, I could only assign a larger width with percentage, but what I wanted was to change the parent container, to be adapted to the full width of the column I where shown.
This is de web --> http://locasdeatar.feline.cl/producto.html


Create a BitBucket Cloud adapter that implements IPullRequestReader

As distinctly different than BitBucket server, which has a different API. Ugh.

After a little research, it looks like the best way to get the kinds of activities we score is to use the concept of activities.
It's shockingly hard to find OSS on Bitbucket, but after 9-10 pages into a site:bitbucket.org google search, I found a promising repo:
https://bitbucket.org/medicalinformatics/mainzelliste/
PR 143 seems to have both approvals and comments, so let's use that one...
https://bitbucket.org/!api/2.0/repositories/medicalinformatics/mainzelliste/pullrequests/activity  -- PR 143 isn't there
But it looks like the API is paginated, so... let's get the next page by following the URL in next like the docs say to do.
...the URL in docs is https://bitbucket.org/!api/2.0/repositories/medicalinformatics/mainzelliste/pullrequests/activity?ctx=gqHaIgtas9tG -- I wonder how stable that will be over time, not that it matters when we're building out the PullRequest objects during normal RepoMan execution...
...no 143 listed. No 143 listed for 10 iterations of calling next, either. Weird. Maybe some things don't show up in the top-level activity stream for a specific repository?
Looks like it's possible to get the activities associated with a single PR id by supplying the PR number, like so, which indeed shows interesting things.
https://bitbucket.org/!api/2.0/repositories/medicalinformatics/mainzelliste/pullrequests/143/activity
OK, so now we just have to get a list of PRs associated with a given BB repo:
https://bitbucket.org/!api/2.0/repositories/medicalinformatics/mainzelliste/pullrequests
Easy enough.
Finding all PRs associated with a repo

Get the first page: https://bitbucket.org/!api/2.0/repositories/{repoOwner}/{repoName}pullrequests/{prNumber}/activity
Follow next until it's null
See what we can glean from the top-level response for the PullRequest object, and start to fill out the properties

Getting the complete comment, commit, approval history associated with a PR number

Get the first page: https://bitbucket.org/!api/2.0/repositories/{repoOwner}/{repoName}pullrequests/{prNumber}/activity
Follow next until it's null
Fill out the rest of the properties in the PullRequest object.

Not unlike GitHub I suppose.

Pulling down the PR root is done. Next up is figuring out where/how comments differ from GH comments, and then pulling those down and mapping them onto the PullRequest object.

Open threads:

BB Cloud does not have ClosedAt or MergedAt notions, but they're value types in the PullRequest object which means they'll default to DateTimeOffset.MinValue when they're serialized.. Should we change PullRequest to be Nullable<T>? Return the UpdatedAt timestamp? Leave it as MinValue? Or what?