[WIP] add variant allocation context option

This is quick and dirty, but I needed it for a POC project and thought getting it some attention would be helpful. I still need to add unit tests. Resolves #460.
Usage:
{
  "id": "TestVariant",
  "enabled": true,
  "allocation": {
    "default_when_enabled": "Default",
    "client_filters": [
      {
        "name": "TestFilter",
        "variant": "V1",
        "parameters": {
          "SomeParam": "SomeValue"
        }
      },
      {
        "name": "TestFilter",
        "variant": "V2",
        "parameters": {
          "SomeParam": "SomeValue2"
        }
      }
    ]
  },
  "variants": [
    {
      "name": "Default",
      "configuration_value": "Default"
    },
    {
      "name": "V1",
      "configuration_value": "Variant 1"
    },
    {
      "name": "V2",
      "configuration_value": "Variant 2"
    }
  ]
}

var test = await variantFeatureManager.GetVariantAsync("TestVariant", new TestFilterContext { SomeParam = "SomeValue" });
// test.Configuration.Value == "Variant 1"

Thank you for the PR!
We've looked into this a few times and haven't aligned on a solution here. I'll add some of my notes here. We considered exactly this design you have here. If I recall correctly, the biggest argument against it was the idea of "stability" for allocation. In short, the idea is:

A given TargetingContext should always allocate in the exact same way.

This is a new concept that filters don't do. Filters break this hard rule, because a filter is free to run any custom code it wants and might simply flip its results on each run. This stability is important- as it gives us new guarantees on users who are assigned variants (we know what they got and what they'll always get).
The design I liked a little more was keeping the filters outside, but allowing variant shortcutting. Having the logic be "filters" -> if no variant -> "allocation" Like:
{
  "id": "TestVariant",
  "enabled": true,
  "conditions": {
    "client_filters": [
      {
        "name": "TestFilter",
        "variant": "V1",
        "parameters": {
          "SomeParam": "SomeValue"
        }
      },
      {
        "name": "TestFilter",
        "variant": "V2",
        "parameters": {
          "SomeParam": "SomeValue2"
        }
      }
    ]
  },
  "variants": [
    {
      "name": "Default",
      "configuration_value": "Default"
    },
    {
      "name": "V1",
      "configuration_value": "Variant 1"
    },
    {
      "name": "V2",
      "configuration_value": "Variant 2"
    }
  ]
}

The pushback to this design is two main items:

Adding variants here affects the IsEnabled call that normally checks these filters. Allocation only runs if IsEnabled returns true (aka- a filter returns true or there are no filters). Adding variant override filters here makes running allocation complicated- the logic might look like: If a filter with no variant returns true or all filters have variants and are just overrides or no filters are defined.
Variants are no longer specific to "allocation" and no longer have the predictability guarantee.

Either way- I think this PR is valuable. Both as a place to discuss and a resource for others looking to do the same thing.

@rossgrambo - I think I like the short circuit option more actually. It's similar to a few other systems I've used before. Some thoughts:

A given TargetingContext should always allocate in the exact same way.

Makes sense, in this PR if you provide a context that implements ITargetingContext it will not run the filters, though this is an unintentional side effect of the rushed code rather than something I did on purpose.

This stability is important- as it gives us new guarantees on users who are assigned variants (we know what they got and what they'll always get).

I think it's fair that if a developer writes custom filters, they're also on the hook for maintaining that consistency (or choosing not to). This could be particularly relevant for third-party IFeatureDefinitionProvider implementations that might save assigned variants to a database.

Adding variant override filters here makes running allocation complicated- the logic might look like: If a filter with no variant returns true or all filters have variants and are just overrides or no filters are defined.

I ran into this as well, while it pained me to duplicate much of the filter evaluation code, I couldn't think of a clean way to keep the Any vs All paradigm. It made the most sense that the first matching filter would win but this might not be desirable in all scenarios. I do believe that DefaultWhenEnabled|Disabled is flexible enough to handle the case where a filter does not assign a variant directly.

Variants are no longer specific to "allocation" and no longer have the predictability guarantee.

Just wild spit balling here, but what if there was no allocation section and we simply relied on Microsoft.Targeting filters instead? This would take care of the "no filters are defined" scenario because you'd always need at least one. Probably too much churn this late in the game though.
You do lose the ability to enable or disable variants with the filters with this approach, but unlike boolean flags it's more likely that the variant's filters would be more exhaustive. From a glance this also seems similar to how OpenFeature works, but I've never used that: https://openfeature.dev/specification/glossary#evaluating-flag-values


timers: add farmer's affinity effect timer

Enhancement on the timers plugin to add the Farmer's Affinity effect timer (going through wheat faster in Puro-Puro).

Needs rebase

I'll review this if/when #16074 is merged, as it will simplify this PR's changes significantly.

I've rebased and rewritten this change as https://github.com/Nightfirecat/runelite/commit/5021e6db9ff63c6d54481151be6307840bfce6c1, can you test to make sure that commit works as expected? It seems to work fine for me.

Your commit works as expected on my end too! 👍 @Nightfirecat

Added in 5021e6db9ff63c6d54481151be6307840bfce6c1, thanks!


Use terminal scrollbar

The standard scrollbar actually only shows where you are in the file. That is, it does not perform the function of moving with the mouse buttons ... Can Micro use the scrollbar of the terminal from which it is launched?

It's not possible for a program to control the terminal emulator's scrollbar. Many terminal programs such as st don't even support scrollback in the first place, and terminal multiplexers like tmux also have to emulate scrollback.


How to better debug server code?

Typically, how can I tell if there's a syntax error in the server-side code, such as in osc_server.py? It doesn't provide any information in the abletonosc.log; it remains silent.
Whenever I make changes to the server code, I have to restart Ableton Live. Is there a more efficient alternative?

I am not 100% sure but I think you can just reload your Ableton project from File>Open Recent, it should refresh it.

Good question. Unfortunately, for something to show up in abletonosc.log, the script has to successfully be parsed and run. Any compile-time issues end up in a separate Live internal log file, in the Live Reports/Usage directory.
Information on this is in CONTRIBUTING.md.
Unfortunately, the error gets collapsed into a single line (example below) so it takes a bit of effort to look through, but it should be enough for debugging.


add T02.02-Exercise-AddMenu

address https://github.com/udacity/ud851-Exercises/issues/7

Thanks for the patch. Unfortunately this repo is built in a pretty special way, so PRs against student don't really work. Fixed in f10394f16cad062cb7ba857a784f158fafa1e175

It's super helpful to use Diff to check answers. Thanks for fixing that.


Added support for $style in hasClass

Checks the className against $style where available.

Allows for checking classes that were converted with css modules without needing to know what it was converted to.
Only works when $style exists on the vm and a mapping is available for the target class.

DISCLAIMER: Not a fan of defining a function argument but it's the cleanest solution.

Made some tweaks so that the function variables are not getting redefined at the cost of consiceness.

Sure, i was going to add one but didn't have time yesterday.

Added a unit test

No idea why that failed, just downloaded and ran it myself again and everything passed.

The compatibility tests are failing, it looks like $style is implemented differently in Vue 2.0.x
To debug you can run the npm run test:compatibility

Should be good to go now, sorry about that.

FYI: You can supress all of the stuff being spewed out on console in the karma runner with the client.captureConsole property.

And can you revert the test to the previous test, where you had a class but had a scoped style block

@eddyerburgh I am not convinced the test was correct as to be able to use css modules, the class needs to be that of the mapped (found in $style) one rather than the original which to my understanding is not done automatically.

The test was correct, you can see the example in the vue loader docs —https://vue-loader.vuejs.org/en/features/scoped-css.html

@eddyerburgh this feature is for CSS modules, not scopped css.

Ah sorry 👍
You're right then, the test you have now looks correct

Cool, thanks 👍


acme 错误

当我第一次在执行cert-up.sh update 的时候，出现如下报错：
begin installing acme.sh tool...
cert-up.sh: line 39: ./acme.sh: No such file or directory
done installAcme
begin generateCrt
begin updating default cert by acme.sh tool
[Sat Dec 28 21:06:54 CST 2019] Please refer to https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html for error code: 4
[Sat Dec 28 21:06:54 CST 2019] Can not init api.

怀疑是下载安装acme的步骤失败，请尝试重新运行脚本

已修复，参见https://github.com/andyzhshg/syno-acme/pull/41#issue-388133564

close，thanks to @vc5


[CC] Support clipboard operations on images/chips

Support clipboard operations on selections of a single void node (e.g. image or variable chip).
Cut/copy/paste operations were ignored from selections that contained a single void node, i.e. an image or a variable chip. This is because in onEvent, certain events (including clipboard operations) are ignored when isContentEditable is false, which is the case when the selection contains only a void node. The first change is to allow the isContentEditable check to be bypassed for clipboard operations. This reveals the next problem, which is that the existing code for copying the selection to the clipboard doesn't work for selections that contain a single void node.
Therefore, the second change is to the cloneFragment() function, which had a hard-coded assumption about where to find the content DOM element for a void node which is not correct for our image or variable chip nodes. Rather than hard-code another assumption the layout of the DOM we instead require our void nodes to apply the slate-void class to the DOM element that should be considered the content.
Note that this change isn't testable on its own but I have tested it in conjunction with slate-editor library changes and the basic functionality works. There are still some things that don't work quite right, e.g. after pasting an image or variable chip the caret is placed before the pasted node rather than after it, but the behavior works well enough to be a clear improvement and it's unclear how long it would take to track down some of the remaining issues, so I'm inclined to merge this and we can log any remaining issues in PT for future prioritization.
Checks

[x] The new code matches the existing patterns and styles.
[x] The tests pass with yarn test.
[x] The linter passes with yarn lint. (Fix errors with yarn fix.)
[x] The relevant examples still work. (Run examples with yarn start.)

@scytacki The slate-react package has essentially been rewritten from scratch in the more recent versions so this is a stopgap measure until we get there. I don't think it's worth further investigation at this point.


Any facility for tmpfs?

Being able to mount a tmpfs is (in my experience) something many apps end up wanting.  Should volumes (empty) accomodate this?

Perhaps; I requested this (clumsily) in https://github.com/coreos/rkt/issues/378.
Any arguments against making this the actual definition of the "empty" volume type? (otherwise this would resolve #183 )

I don't think you want all empty to be tmpfs.  I also don't think you want
tmpfs to be a distinct top-level volume kind.  PTAL at
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/api/types.go#L357-L362
for at least one way to describe it.  Even that is imperfect but maybe good
enough for a while
On Mon, May 4, 2015 at 11:33 PM, Jonathan Boulle<EMAIL_ADDRESS>wrote:

Perhaps; I requested this (clumsily) in coreos/rkt#378
https://github.com/coreos/rkt/issues/378.
Any arguments against making this the actual definition of the "empty"
volume type? (otherwise this would resolve #183
https://github.com/appc/spec/issues/183 )
—
Reply to this email directly or view it on GitHub
https://github.com/appc/spec/issues/369#issuecomment-98968034.

Let's ensure we capture this comment from #392:

.... tmpfs which is a memory consumer and whose consumption is probably not accounted for in the other resource isolators; this should probably be made explicit in documentation and the example should probably include a tmpfs size limit for reference.


Expose "Enable automatic cloudflared authentication" setting to Terraform

Current Terraform version
$ terraform --version
Terraform v0.14.7
+ provider registry.terraform.io/cloudflare/cloudflare v2.18.0
+ provider registry.terraform.io/hashicorp/template v2.2.0

Description
I'd like to be able to toggle the "Enable automatic cloudflared authentication" switch via Terraform for created applications; when creating several dozen apps, being able to flip this switch programmatically would be great.
Use-cases
The end goal is, as mentioned, being able to set the state of cloudflared automatic authentication for multiple Cloudflare Access applications at the same time; we use lots and lots of hosts and toggling this manually (or writing a bash script to do it programmatically after the fact) is both time-consuming and doesn't capture the state of cloudflare infrastructure in code.
-->
Potential Terraform configuration
here's a snippet for the code portion of the provider:
"automatic_cloudflared_authentication": {
    Type:     schema.TypeBool,
    Optional: true,
    Default:  false,
}

and how it might look in terraform:
resource "cloudflare_access_application" "example_app" {
  zone_id          = var.cloudflare_zone_id
  name             = "Example SSH App"
  domain           = join(".", ["example", var.cloudflare_domain])
  session_duration = "6h"
  auto_redirect_to_identity = true
  automatic_cloudflared_authentication = true
}

-->
References
I have not found any other issues for this, but I have searched.
Community note

Please vote on this issue by adding a 👍 reaction
to the original issue to help the community and maintainers prioritize this request
If you are interested in working on this issue or have submitted a pull
request, please leave a comment

The v4 API isn't documented as supporting setting this property, though it does return it if created; it's called skip_interstitial in the json blob returned when curling for Access apps.

This will need to be added to cloudflare-go and the public documentation before we add it to Terraform.

One additional issue is that if you manually flip the switch in the Cloudflare access dashboard, Terraform believes that the app is gone and tries to recreate it, which fails because the app already exists. 👎

I'll have to confirm however Access Policies operate in a similar fashion where updating via the dashboard doesn't perform an in place update but a new resource that looks very similar. My advice is to manage your resources in one way and don't jump between UI and managing as code because it can (and will!) introduce headaches for you.

@Justin-Holmes is this something that is coming to a public API any time soon?

Yep! This will be coming to the public API in the near future. We'll probably use automatic_cloudflared_authentication  over skip_interstitial so the name is consistent with the UI.

thanks! i'll keep an eye out and link this when it comes about.

Following up on this - has it been added to the upstream library or the terraform provider?

Yes, this is available as the skip_interstitial field: https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/access_application#skip_interstitial
@jacobbednarz we can close this ticket if you'd like!


AzCopy include filter skips some files

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
10.1.2
Which platform are you using? (ex: Windows, Mac, Linux)
Mac
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
azcopy sync <local_folder> https://<storage_account>.blob.core.windows.net/<container>/.?<sas_token> --include="file005.bin;file004.bin;file006.bin;file007.bin;file003.bin;file002.bin;file001.bin;file009.bin;file008.bin" --delete-destination=true
What problem was encountered?
Two problems occurred:

It uploaded all files except file005.bin and file008.bin. We tried it several times, it always excluded these specific files. They are valid files on the file system. Trying to upload the files themselves also didn't work. Trying to upload the files to a different container also didn't work.
The --delete-destination didn't delete anything. Is this because it also takes the include filter into account?

How can we reproduce the problem in the simplest way?
No idea whether it's easily reproducible. These are the files we tried to upload: Archive.zip. They're just binary files with random data.
Have you found a mitigation/solution?
We haven't found a solution.

Hi @rugheid, thanks for reaching out!
Unfortunately I wasn't able to reproduce this problem. Could you please double-check with another container?

As for --delete-destination=true, it only deletes the extra files at the destination that are not present at the source. Here is a wiki on the sync command. Please don't hesitate if you have any other question.

Also, @rugheid, it's probably worthwhile for you to double check to see whether the files in question may have been symbolic links.  If that are, that would explain it.  (The copy command can follow links, but does not do so by default.  IIRC sync does not support symbolic links yet)

@zezha-msft Thank you for trying it out so quickly! Too bad it's not reproducible indeed, I will try to find a reproducible example. For my own debugging: is it possible to enable a lower logging level to get more insight into what AzCopy is doing?
@JohnRusk I double checked, but the files aren't symbolic links. Thanks for raising the symbolic link difference though, definitely useful information!

@rugheid One question, what did you mean by "Trying to upload the files themselves also didn't work."  Did you do a test where you put the full path of just one of the files as the source (with no --include)?  To help us (and you) figure out what's going on, could you (re)try that test please using azcopy copy (instead of sync). I.e. using copy to upload exactly one of the problem files to an empty container.
If that fails, (a) the log will be small and easy to read and (b) there's a reasonably chance that the log will tell you something useful.

@JohnRusk That's indeed what I tried. I'll test with copy and get back to you with the results! 😄

@JohnRusk I tried uploading the files directly without --include, but I got this error: Cannot perform sync due to error: sync must happen between source and destination of the same type: either blob <-> file, or container/virtual directory <-> local directory.
This was the command: azcopy sync datatest/file005.bin "https://<storage_account>.blob.core.windows.net/<container>/file005.bin?<sas_token>"
I then tried uploading that single file using a very simple --include="file005.bin", so without a pattern that has to match a digit, but that didn't work either.
The copy you mentioned does work.

@JohnRusk What's very weird is that it's now working for me again. After I copied the files using copy, I deleted the files and tried the original sync command again, which worked. Is there any caching going on in AzCopy locally that might explain this behaviour? Also note that uploading the files manually using Microsoft Azure Storage Explorer did not solve it, so I think the problem is happening locally on my computer alone.

There is no caching.  To confirm your theory that its local to your computer, can you please look in Storage Explorer. Click on the "Preview" menu, to drop it down (but don't click anything else).  If there's a check mark next to 'Use AzCopy for improved blob upload and download' that means it was using AzCopy and your local machine theory is not confirmed. But if there is no checkmark there, then that means it was not using AzCopy, and your local machine theory IS confirmed.

We were able to find the cause of our problem by adding extra logs to azcopy's filter matching.
Something we forgot to mention was that we called this from a Python script using subprocess. The include filter we had in our argument list was --include="file005.bin;file004.bin;file006.bin;file007.bin;file003.bin;file002.bin;file001.bin;file009.bin;file008.bin".
The problem is then that subprocess will escape the quotes so they become part of the pattern which results in the following include patterns used by azcopy:
"file005.bin, file004.bin, ..., file009.bin and file008.bin". This explains why it skipped file 5 and 8: they were the first and last files in the include string so their patterns included the opening and closing quotes.
So as this is not a problem with azcopy, this issue can be closed. Thank you for the fast responses and helping us.


Archive this repository

There hasn't been any activity here for a couple of year. Is this project still used? Has it been replaced with something like dask-jobqueue?
Should we archive it?

I'm ok with that personally.
On Tue, Nov 3, 2020 at 2:18 AM Jacob Tomlinson<EMAIL_ADDRESS>wrote:

There hasn't been any activity here for a couple of year. Is this project
still used? Has it been replaced with something like dask-jobqueue?
Should we archive it?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-drmaa/issues/98, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTHU43R2OMB5R2DNSO3SN7KITANCNFSM4TIRUMTQ
.

Fine by me. Would suggest adding a note to the README to redirect people.

Is this just waiting on someone to add a note to the README? I am happy to be that person :)

See https://github.com/dask/dask-drmaa/pull/99

Merged that PR. Thanks for adding that. Is there anything else needed here before archiving?

I think we're good to archive now


Return value of Osiset\BasicShopifyAPI::jsonDecode() must be an instance of stdClass, null returned

Catch this in my Sentry logs, sometimes Shopify seems to return null.
Maybe can we add something to catch the null in $this->jsonDecode($body);
Symfony\Component\Debug\Exception\FatalThrowableError: Return value of Osiset\BasicShopifyAPI::jsonDecode() must be an instance of stdClass, null returned
#19 /vendor/osiset/basic-shopify-api/src/Osiset/BasicShopifyAPI.php(1004): Osiset\BasicShopifyAPI::jsonDecode
#18 /vendor/osiset/basic-shopify-api/src/Osiset/BasicShopifyAPI.php(832): Osiset\BasicShopifyAPI::Osiset\{closure}
#17 /vendor/osiset/basic-shopify-api/src/Osiset/BasicShopifyAPI.php(868): Osiset\BasicShopifyAPI::rest

@ianfortier Which osiset/basic-shopify-api version are you on? Check with composer info.
I recently released a new version last week and it doesn't have a type return because it could be stdClass or array now, previously it was just stdClass.

"osiset/basic-shopify-api": "^8.1"
Will try to update to 8.2

Why you are return array instead stdClass ? @osiset
[             'errors'     => false,             'response'   => $resp,             'status'     => $resp->getStatusCode(),             'body'       => $this->toResponse($resp->getBody()),             'link'       => $link,             'timestamps' => $this->getTimeStore()->get($this->getSession()),         ]
I like stdClass more than array
LOL
:D

@khiconit It was changed because there was several people using this package with my other repository (laravel-shopify) and trying to map the responses to a Laravel JSON Resource, this is not possible with a stdClass.
The main return of rest/graph will return an array now instead of stdClass. However, the "body" of the response can be accessed as an array or stdClass.
Will close for now unless present in 8.2+.


Support multiple pattern/replacement pairs in Replace mode

In Replace mode it could be useful to specify multiple pattern/replacement pairs.
In normal Replace mode these would just be applied in order, so you could specify a multi-step replacement.
In looped Replace mode (+) one could either cycle through the pairs, or could apply all of them in each loop iteration (it would only make a difference for the terminating condition). Alternatively, one could make it even more elaborate and specify a number of replacements to be carried out first, then a number to be looped through, and then a number to be carried out once the loop terminates.

The more elaborate part of this issue has been deferred to #15.


Unfollowing Job Continuesly Scrolls and does not Iterate

What happened:
When bot enters unfollowing job, it scrolls and iterates over visible followings. However, after 2-3 times doing this successfully it just scrolls and keepy saying:
Need to scroll now.
Iterate over visible followings.
Need to scroll now.
Iterate over visible followings.
Need to scroll now.
Iterate over visible followings.
Need to scroll now.
Iterate over visible followings.
Scroll never ends! The following list keep repeat itself.
What you expected to happen:
Iterate users through followings every time after it scrolls.
How to reproduce it (as minimally and precisely as possible):
Bot needs to enter unfollow job.
Anything else we need to know?:
Environment:

GramAddict version:  GramAddict 3.2.10
Device Model/Emulator Type: MemuPlay
Android Version: 9
Instagram Version: Latest tested version
Discord Ticket ID:           *(if submitting crash log)

Relevant Logs:

activate debug mode in confing.yml if you want to paste from the console, otherwise attach the log file from the logs folder

*Note: if you have a crash log, please do not attach the archive here as this is not a secure place to upload the sensitive data inside. Please open a ticket in Discord in #lobby and provide the ticket ID here.

Hi!
I have the same problem on my environment:
GramAddict version: GramAddict 3.2.10
Device Model/Emulator Type: Google Pixel 4XL, Google Pixel
Android Version: Android 13, Android 10
Instagram Version: Latest tested version
Discord Ticket ID: *(if submitting crash log)

Probably ReseouceId needs to get updated

I have the same issue too and i notice it's because after a few scrolls, IG keep repeating the same list of users.
I can manually reproduce this issue.
If I don't sort the list and use the default settings: I can scroll until end of the list without repeating the same users.
if I sort the list, regardless "date followed: latest" or "date followed: earliest", after 1 or 2 scrolls, the users coming out from the list again.
Can we have an option to disable the bot from sorting?
Currently, I tried to mask this option "sort-followers-newest-to-oldest" but it will still sort the list before start scrolling.

What happened: When bot enters unfollowing job, it scrolls and iterates over visible followings. However, after 2-3 times doing this successfully it just scrolls and keepy saying:
Need to scroll now. Iterate over visible followings. Need to scroll now. Iterate over visible followings. Need to scroll now. Iterate over visible followings. Need to scroll now. Iterate over visible followings.
Scroll never ends! The following list keep repeat itself.
What you expected to happen:
Iterate users through followings every time after it scrolls.
How to reproduce it (as minimally and precisely as possible): Bot needs to enter unfollow job.
Anything else we need to know?:
Environment:
* GramAddict version:  GramAddict 3.2.10

* Device Model/Emulator Type: MemuPlay

* Android Version: 9

* Instagram Version: Latest tested version

* Discord Ticket ID:           *(if submitting crash log)

Relevant Logs:
* activate debug mode in confing.yml if you want to paste from the console, otherwise attach the log file from the logs folder

*Note: if you have a crash log, please do not attach the archive here as this is not a secure place to upload the sensitive data inside. Please open a ticket in Discord in #lobby and provide the ticket ID here.

the same problem with my honor 9, I noticed that this problem does not exist if it is set to "Default".
I went to look for the file "C:\Users\MYNAME\AppData\Local\Programs\Python\Python39\Lib\site-packages\GramAddict\plugins\action_unfollow_followers.py"
and I changed this code to line 232 and 233
232            logger.info("Sort followings by date: from newest to Default.")
233            sort_options_recycler_view.child(textContains="Default").click()

Now it works well

Strange. I changed the action_unfollow_followers.py in my virtual env but seems like nothing been changed, it's not running from this file.
Is it because I am running in a virtual env?
even i restored the original .py file but now whenever i run i see this error messages but all the while I hashed all the unfollowing options I don't see these error messages:
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow: conflicting option string: --unfollow (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow-non-followers: conflicting option string: --unfollow-non-followers (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow-any-non-followers: conflicting option string: --unfollow-any-non-followers (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow-any-followers: conflicting option string: --unfollow-any-followers (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow-any: conflicting option string: --unfollow-any (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --min-following: conflicting option string: --min-following (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --sort-followers-newest-to-oldest: conflicting option string: --sort-followers-newest-to-oldest (config.py:136)
[04/21 21:51:21]    ERROR | Error while importing arguments of plugin ActionUnfollowFollowers. Error: Missing key from arguments dictionary - argument --unfollow-delay: conflicting option string: --unfollow-delay (config.py:136)

Suggest a few lines of code to fix this issue in GramAddict/plugins/action_unfollow_followers.py at the iterate_over_followings function. Simply save the seen username in a see, check in each scroll, and see if more than a threshold (3 in my case) of duplicated usernames in new refreshes.
I was trying to commit the code but I'm not a contributor.
seen_users = set()
seen_user_threshold = 3
while True:
    screen_iterated_followings = []
    logger.info("Iterate over visible followings.")
    user_list = device.find(
        resourceIdMatches=self.ResourceID.USER_LIST_CONTAINER,
    )
    row_height, n_users = inspect_current_view(user_list)
    for item in user_list:
        seen_user_count = 0
        cur_row_height = item.get_height()

           .......

        username = user_name_view.get_text()
        screen_iterated_followings.append(username)
        if username in seen_users:
            seen_user_count += 1
        seen_users.add(username)
        if username not in checked:
            checked[username] = None

  .......

   if screen_iterated_followings != prev_screen_iterated_followings:
        prev_screen_iterated_followings = screen_iterated_followings
        if seen_user_count > seen_user_threshold:
            logger.info(
                "Reached the following list end, finish.",
                extra={"color": f"{Fore.GREEN}"},
            )
            return
        logger.info("Need to scroll now.", extra={"color": f"{Fore.GREEN}"})
        list_view = device.find(
            resourceId=self.ResourceID.LIST,
        )
        list_view.scroll(Direction.DOWN)


Allow PcapWriteHandler to output PCAP files larger than 2GB (#14478)

Motivation:
PcapWriteHandler should be able to support large files but is currently limited to 2GB due to the usage of int without wrapping.
Modifications:
segmentNumber and ackNumber are now long values to support uint32 values. segmentNumber and ackNumber wrap around when the uint32 max is reached. Ported unit test from
https://github.com/apple/swift-nio-extras/pull/85
Result:
Fixes #11543


Svrg minimizer

@karlnapf
@lisitsyn
You may take a look at this. It depends on https://github.com/shogun-toolbox/shogun/pull/2885

The error is not related to this PR.
Merge


[Bug] [Module Name] Bug title v0.6.0源码部署时报错

Search before asking

[X] I had searched in the issues and found no similar issues.

Operating system information
Linux
Python version information
3.10
DB-GPT version
latest release
Related scenes

[ ] Chat Data
[ ] Chat Excel
[ ] Chat DB
[ ] Chat Knowledge
[ ] Model Management
[ ] Dashboard
[ ] Plugins

Installation Information

[X] Installation From Source

[ ] Docker Installation

[ ] Docker Compose Installation

[ ] Cluster Installation

[ ] AutoDL Image

[ ] Other

Device information
GPU：24G
Models information
LLM_MODEL=glm-4-9b-chat
What happened
python 安装报错，具体的错误信息如下，安装过程中，matplotlib一直找不到合适的版本
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [60 lines of output]
/tmp/pip-install-u3iwfl2e/matplotlib_498b668ccc8947ea9526de450efe5145/setup.py:33: SetuptoolsDeprecationWarning: The test command is disabled and references to it are deprecated.
!!
          ********************************************************************************
          Please remove any references to `setuptools.command.test` in all supported versions of the affected package.

          By 2024-Nov-15, you need to update your project and remove deprecated calls
          or your builds will no longer be supported.
          ********************************************************************************

  !!
    from setuptools.command.test import test as TestCommand
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/tmp/pip-install-u3iwfl2e/matplotlib_498b668ccc8947ea9526de450efe5145/setup.py", line 225, in <module>
      msg = pkg.install_help_msg()
    File "/tmp/pip-install-u3iwfl2e/matplotlib_498b668ccc8947ea9526de450efe5145/setupext.py", line 650, in install_help_msg
      release = platform.linux_distribution()[0].lower()
  AttributeError: module 'platform' has no attribute 'linux_distribution'
  ============================================================================
  Edit setup.cfg to change the build options

  BUILDING MATPLOTLIB
              matplotlib: yes [3.0.3]
                  python: yes [3.10.15 (main, Oct  3 2024, 07:27:34) [GCC
                          11.2.0]]
                platform: yes [linux]

  REQUIRED DEPENDENCIES AND EXTENSIONS
                   numpy: yes [not found. pip may install it below.]
        install_requires: yes [handled by setuptools]
                  libagg: yes [pkg-config information for 'libagg' could not
                          be found. Using local copy.]
                freetype: no  [The C/C++ header for freetype2 (ft2build.h)
                          could not be found.  You may need to install the
                          development package.]
                     png: yes [version 1.6.37]
                   qhull: yes [pkg-config information for 'libqhull' could not
                          be found. Using local copy.]

  OPTIONAL SUBPACKAGES
             sample_data: yes [installing]
                toolkits: yes [installing]
                   tests: no  [skipping due to configuration]
          toolkits_tests: no  [skipping due to configuration]

  OPTIONAL BACKEND EXTENSIONS
                     agg: yes [installing]
                   tkagg: yes [installing; run-time loading from Python Tcl /
                          Tk]
                  macosx: no  [Mac OS-X only]
               windowing: no  [Microsoft Windows only]

  OPTIONAL PACKAGE DATA
                    dlls: no  [skipping due to configuration]

  ============================================================================
                          * The following required packages can not be built:
                          * freetype
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
What you expected to happen
1、正常来说，参照官方文档执行后，可正常部署，不会报任何错误；
2、一开始使用python=3.10的虚拟环境，尝试过采用python=3.11的虚拟环境，仍然报同样的错误
How to reproduce
python >= 3.10
conda create -n dbgpt_env python=3.10
conda activate dbgpt_env
it will take some minutes
pip install -e ".[default]"
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Cento os?
try
pip install --use-pep517 fschat

Cento os? try
pip install --use-pep517 fschat

the os is Ubuntu 22.04.1.   have tried the command "pip install --use-pep517 fschat",but the problem still exists.

I also encountered the same problem, and my system information is as follows:
Linux version 3.10.0-1160.119.1.el7.x86_64<EMAIL_ADDRESS>(gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) )
“pip install --use-pep517 fschat”  has no effect
According to the log information, a suitable matplotlib version cannot be found in all versions from 3.9.2 to 3.0.3.
Is there any way to handle it?

I also met the same problem. Is there any progress.

I also met the same problem. Is there any progress.

Cento os? try
pip install --use-pep517 fschat

same problem, can you solve it as quick as possible?


The display of Japanese text in OGP is slightly corrupted.

When I shared a post to Twitter with the njump link, I noticed that the Japanese text was displayed a little corrupted.
The lines do not seem to be connected or contain unnecessary white space.
njump Link Preview

Tweet link : https://twitter.com/shi_on_72/status/1737873170169020475
The Same Sentence on njump Page

njump Page Link : https://njump.me/nevent1qqsgm65qjn6dr3nkd33u4plpr7rqfekyt80dusr75u9kxvp5fc7c04qzyqxfk85laamv3zmrlpnythpnhdmh0up9nmzpue6tv860c4fldkcwquql2w4
The Same Sentence in Bold Font

The environment may not be relevant since it is an issue of the OGP generated, but I will note it in case it is.

Mobile
device : Xperia 5Ⅱ
OS : Android 12
App : Twitter

PC
device : Surface Book 3
OS : Windows 11
Browser : Chrome ver.120.0.6099.111

It should be the font, here's my local rendering with a different font, there's a noticeable improvement.

How should it look like considering that it must be split into two lines? I have coded some dumb thing to the lines because most Japanese notes don't have any " " space in them.


Adding WLS <IP_ADDRESS> images

Adding WLS <IP_ADDRESS> JDK 11 images

Avi please do not Merge I need @rjeberhard to review.

Avi if you are ok with all the changes this PR is ready to be merged.

You need to fix up the copyright lines by removing "Corporation" as per my comments first, please.


AKPlayer outTime not being reset on new load(url: URL)

Using AKPlayer with song that has:
startTime: 20 ,  endTime: 40 , outTime: 2
Play song
Stop Song using .stop() after 20 seconds (20 seconds before the fade should happen)
LOAD another song with .load(url: URL) (for now it's loading the same song)
startTime: 20 , endTime: 40 , outTime: 2
Play Song
Song Fades after 10 seconds which is the remaining time left from the first fade.
Song keeps playing at 0 volume to the end of play(from: , to: )
In other words the fade is not releasing it's values when you issue a STOP or load in a new song.
With app below:

Hit Play-button  (playing starts at 20)
Hit Fade-button (at 28) -- it fades out
Hit Play-button (playing starts at 20...but fades out around 30)
the 2nd fade seems to be
playLength - firstFadeTime - delta = secondFadeTime
(delta being the time between fade push and 2nd play push)

ALSO it's weird that whenever you first start the app if you hit play and wait, the song fades out but then continues playing to the endTime and then rolls back to the startTime (at 20s and 0 volume) and keeps looping over and over (even though looping is turned off)....  -- BUT AFTER you've hit fade-button which issues stop() once, the player stops after the fade completes as it should.
import UIKit
import AudioKit

class ViewController: UIViewController {
    var player: AKPlayer = AKPlayer()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let path = Bundle.main.path(forResource: "04ListenToTheMusic.m4a", ofType:nil)!
        let audioUrl = URL(fileURLWithPath: path)
        player = AKPlayer(url: audioUrl)!
        AudioKit.output = player
        do { try AudioKit.start() } catch { print("ERROR:  Audio A&B Mixer not started") }
        makeShiftUpdater()
    }

    @IBOutlet weak var playBtn: UIButton!
    @IBAction func play(_ sender: Any) {
        do {
            let path = Bundle.main.path(forResource: "04ListenToTheMusic.m4a", ofType:nil)!
            let audioUrl = URL(fileURLWithPath: path)
            try player.load(url: audioUrl)
           player.fade.outRampType = .logarithmic
            player.startTime = 20
            player.endTime = 40
            player.isLooping = false
            player.fade.inTime = 2
            player.fade.inStartGain = 0.0
            player.fade.outTime = 2
            player.fade.outStartGain = 1.0
            player.volume = 1.0
            player.play(from: player.startTime, to: player.endTime)
            player.completionHandler = { print("song end reached")}
        } catch {
            print("didn't play")
        }
    }
    @IBAction func fade(_ sender: Any) {
        player.stopEnvelopeTime = 1.0
        player.stop()
    }
    func makeShiftUpdater() {
        if player.isPlaying {
            let time = Float(Int( player.currentTime * 100 )) / 100
            playBtn.setTitle("Play: " + time.description, for: .normal)
        }
        let delay = DispatchTime.now() + 1.0
        DispatchQueue.main.asyncAfter(deadline: delay , execute: { self.makeShiftUpdater() })
    }
}

Thanks, i'll take a look.

I've gone through this finally - sorry for the delay. I believed I've pushed a fix for it. While the documentation might not be clear, just to clarify what these fade options are for:
The general player.fade is for putting fades that automatically are applied to the player. In a DAW this would correspond to something like:

The stopEnvelopeTime is for when you just want a player (that doesn't have fades on it) to put a short fade at the end when you press stop to eliminate clicks. Mixing the two isn't really something I had in mind. That said, there was a conflict between them that your example pointed out - which I hope is fixed now. Also, the log fade out type isn't that great. I'd recommend exponential.
Thanks for the report!
Ryan


Pretrained RPN in Faster RCNN

Hi, If I only want to load the pretrained RPN in Faster R-CNN, what should I do ? Do I need to modify the code in mmdet? or I can do this just by modify the config files

You can simply load Faster R-CNN weights and use RPN configs.

Thx, I try to load RPN, and it works!

Thx, I try to load RPN, and it works!

How do you do it in detail, please help me, thank you


waiting for authorization failed: acme: identifier authorization failed after tearing down and recreating cluster

I was asked to do a small presentation about kubernetes and and basically created a site containing a presentation how to set up itself using google container engine from scratch. I added kube-lego as per the GCE example (documented in the presentation too, of course) and it worked like a charm. After a couple of days i wanted to test reproducibility, tore down and recreated  the cluster, and now requesting certificates fail and i hit the rate limiter whenever i start kube-lego.
Steps to reproduce are available at the host name mentioned in the logs below :)
logs from kube-lego from self test passing to rate limiter hit:
2017-06-02T21:41:57.767748661Z time="2017-06-02T21:41:57Z" level=debug msg="error while authorizing: reachability test failed: wrong status code '502'" context=acme domain=kubernetes.rocks
2017-06-02T21:42:08.92893298Z time="2017-06-02T21:42:08Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks
2017-06-02T21:42:09.631601384Z time="2017-06-02T21:42:09Z" level=debug msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=kubernetes.rocks token=8QZ11hiqJXk4HrsmVVZlOPvmMuCaJEpEmam1eKLQI-c
2017-06-02T21:42:11.049206715Z time="2017-06-02T21:42:11Z" level=debug msg="error while authorizing: waiting for authorization failed: acme: identifier authorization failed" context=acme domain=kubernetes.rocks
2017-06-02T21:42:31.00203884Z time="2017-06-02T21:42:31Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks
2017-06-02T21:42:31.480852416Z time="2017-06-02T21:42:31Z" level=debug msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=kubernetes.rocks token="6n96XpZSVwbzVecJ9OZA-MeUsxkxTY_MDNaM9qXuM54"
2017-06-02T21:42:33.192175385Z time="2017-06-02T21:42:33Z" level=debug msg="error while authorizing: waiting for authorization failed: acme: identifier authorization failed" context=acme domain=kubernetes.rocks
2017-06-02T21:42:33.192210207Z time="2017-06-02T21:42:33Z" level=warning msg="authorization failed after 1m0s: waiting for authorization failed: acme: identifier authorization failed" context=acme domain=kubernetes.rocks
2017-06-02T21:42:33.192238738Z time="2017-06-02T21:42:33Z" level=error msg="Error while processing certificate requests: no domain could be authorized successfully" context=kubelego
2017-06-02T21:42:33.192243832Z time="2017-06-02T21:42:33Z" level=debug msg="worker: done processing true" context=kubelego
2017-06-02T21:42:33.192249919Z time="2017-06-02T21:42:33Z" level=debug msg="worker: begin processing true" context=kubelego
2017-06-02T21:42:33.195780799Z time="2017-06-02T21:42:33Z" level=debug msg=reset context=provider provider=gce
2017-06-02T21:42:33.20068869Z time="2017-06-02T21:42:33Z" level=debug msg=finalize context=provider provider=gce
2017-06-02T21:42:33.200700756Z time="2017-06-02T21:42:33Z" level=debug msg="UPDATE ingress/default/kubernetes-presentation-ingress" context=kubelego
2017-06-02T21:42:33.202819556Z time="2017-06-02T21:42:33Z" level=debug msg="setting up svc endpoint" context=provider namespace=default pod_ip=<IP_ADDRESS> provider=gce
2017-06-02T21:42:33.211175395Z time="2017-06-02T21:42:33Z" level=debug msg=reset context=provider provider=nginx
2017-06-02T21:42:33.21118727Z time="2017-06-02T21:42:33Z" level=debug msg=finalize context=provider provider=nginx
2017-06-02T21:42:33.214224797Z time="2017-06-02T21:42:33Z" level=info msg="disable provider no TLS hosts found" context=provider provider=nginx
2017-06-02T21:42:33.214237025Z time="2017-06-02T21:42:33Z" level=info msg="process certificate requests for ingresses" context=kubelego
2017-06-02T21:42:33.215801204Z time="2017-06-02T21:42:33Z" level=info msg="Attempting to create new secret" context=secret name=kubernetes-presentation-tls namespace=default
2017-06-02T21:42:33.215812457Z time="2017-06-02T21:42:33Z" level=info msg="no cert associated with ingress" context="ingress_tls" name=kubernetes-presentation-ingress namespace=default
2017-06-02T21:42:33.215816891Z time="2017-06-02T21:42:33Z" level=info msg="requesting certificate for kubernetes.rocks" context="ingress_tls" name=kubernetes-presentation-ingress namespace=default
2017-06-02T21:42:33.625283939Z time="2017-06-02T21:42:33Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks
2017-06-02T21:42:34.429604354Z time="2017-06-02T21:42:34Z" level=debug msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=kubernetes.rocks token="OqpJQZoUdv84NAA15Gng4pHI1BUgzeikuJT_gYxUIyA"
2017-06-02T21:42:36.598596642Z time="2017-06-02T21:42:36Z" level=debug msg="error while authorizing: waiting for authorization failed: acme: identifier authorization failed" context=acme domain=kubernetes.rocks
2017-06-02T21:42:36.923244431Z time="2017-06-02T21:42:36Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks
2017-06-02T21:42:38.399489775Z time="2017-06-02T21:42:38Z" level=debug msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=kubernetes.rocks token=XEz9niHNY3r714z8btd3cfi5In-apA5oWvq6p9G2SMM
2017-06-02T21:42:39.066327449Z time="2017-06-02T21:42:39Z" level=debug msg="error while authorizing: waiting for authorization failed: acme: identifier authorization failed" context=acme domain=kubernetes.rocks
2017-06-02T21:42:39.697006796Z time="2017-06-02T21:42:39Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks
2017-06-02T21:42:39.920717523Z time="2017-06-02T21:42:39Z" level=debug msg="error while authorizing: getting authorization failed: 429 urn:acme:error:rateLimited: Error creating new authz :: Too many invalid authorizations recently." context=acme domain=kubernetes.rocks
2017-06-02T21:42:41.150655045Z time="2017-06-02T21:42:41Z" level=debug msg="testing reachability of http://kubernetes.rocks/.well-known/acme-challenge/_selftest" context=acme domain=kubernetes.rocks

There's nothing on the kube-lego end that can be done to stop this. Letsencrypt outline their rate limits here: https://letsencrypt.org/docs/rate-limits/.
Could this perhaps be due to your domain still point at the old ingress IP, and DNS propagation taking a while, thus Letsencrypt is still making requests to another address and causing invalid challenges?
I'm going to close this for now as it doesn't seem to be something that kube-lego can deal with. Feel free to reopen if you disagree!


4/9/2020 Publish

Docs Build status updates of commit af01a2d:
:clock10: Full build: the average full build time is 7 min(s) 22 sec(s), this is based on the last 543 build(s) for this repository.

Docs Build status updates of commit af01a2d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

2017-03-09-profile/docs-ref-autogen/TOC.yml
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile)

2017-03-09-profile/docs-ref-autogen/ext/alertsmanagement/index.yml
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile)

2017-03-09-profile/docs-ref-autogen/ext/alertsmanagement/monitor.yml
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile)

2017-03-09-profile/docs-ref-autogen/ext/alertsmanagement/monitor/action-rule.yml
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile)

2018-03-01-hybrid/docs-ref-autogen/TOC.yml
:white_check_mark:Succeeded
View (azure-cli-2018-03-01-hybrid)

2018-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/index.yml
:white_check_mark:Succeeded
View (azure-cli-2018-03-01-hybrid)

2018-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/monitor.yml
:white_check_mark:Succeeded
View (azure-cli-2018-03-01-hybrid)

2018-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/monitor/action-rule.yml
:white_check_mark:Succeeded
View (azure-cli-2018-03-01-hybrid)

2019-03-01-hybrid/docs-ref-autogen/TOC.yml
:white_check_mark:Succeeded

2019-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/index.yml
:white_check_mark:Succeeded

2019-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/monitor.yml
:white_check_mark:Succeeded

2019-03-01-hybrid/docs-ref-autogen/ext/alertsmanagement/monitor/action-rule.yml
:white_check_mark:Succeeded

docs-ref-conceptual/authenticate-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

latest/docs-ref-autogen/TOC.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/acr/scope-map.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/acr/token.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/ams/asset.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/ext/alertsmanagement/index.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/ext/alertsmanagement/monitor.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

latest/docs-ref-autogen/ext/alertsmanagement/monitor/action-rule.yml
:white_check_mark:Succeeded
View (azure-cli-latest)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


I have 2 Modals
Modal 1 including an Contact form
Modal 2 opens when Contact Form has an Validate Error
after closing the Modal 2 the contact form is no more scrolling
Does anyone have a solution ?

i'm afraid multiple/stacked modals are not supported in bootstrap http://getbootstrap.com/javascript/#modals
i'd suggest checking on StackOverflow or similar for a potential workaround/additional code. see https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker


Did YouTube remove the file format with ID 22? It was 720p, 30 frames and had both video and audio

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
Below is my config which I used to download this video on 2024-06-12. I run the config today on other videos and notice it is not working I get the error "Requested format is not available. Use --list-formats for a list of available formats". I run the config on the same video that I downloaded with it before and same issue. When I run yt-dlp -F it all makes sense now. File Format with ID 22 is no longer there. Even for videos I once used this config on, so I'm wondering did YouTube scrape this file format off there servers?
--downloader aria2c
-f 22
--write-subs
--sub-lang en
--write-auto-subs
--sub-lang en
--embed-subs
--embed-metadata
--compat-options no-keep-subs
-o "%(channel)s - %(title)s - %(upload_date)s [%(id)s].%(ext)s"
--no-playlist

Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
yt-dlp -vU -a m-dl.txt                                          ✔
[debug] Command-line config: ['-vU', '-a', 'm-dl.txt']
[debug] Home config "yt-dlp.conf": ['--downloader', 'aria2c', '-f', '22', '--write-subs', '--sub-lang', 'en', '--write-auto-subs', '--sub-lang', 'en', '--embed-subs', '--embed-metadata', '--compat-options', 'no-keep-subs', '-o', '%(channel)s - %(title)s - %(upload_date)s [%(id)s].%(ext)s', '--no-playlist']
[debug] Batch file urls: ['https://www.youtube.com/watch?v=6jxIETSZuAQ', 'https://www.youtube.com/watch?v=Nwl-vQA8cIo', 'https://www.youtube.com/watch?v=v9ph4CZXBtY']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [ae2af1104]
[debug] Compatibility options: no-keep-subs
[debug] Python 3.12.3 (CPython x86_64 64bit) - Linux-6.1.92-1-MANJARO-x86_64-with-glibc2.39 (OpenSSL 3.3.0 9 Apr 2024, glibc 2.39)
[debug] exe versions: ffmpeg 6.1.1 (setts), ffprobe 6.1.1, phantomjs broken, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.20.0, brotlicffi-<IP_ADDRESS>, certifi-2024.02.02, mutagen-1.47.0, requests-2.32.2, secretstorage-3.3.3, sqlite3-3.46.0, urllib3-1.26.18
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
[debug] Downloading _update_spec from https://github.com/yt-dlp/yt-dlp/releases/latest/download/_update_spec
Current version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
ERROR: You installed yt-dlp from a manual build or with a package manager; Use that to update
[youtube] Extracting URL: https://www.youtube.com/watch?v=6jxIETSZuAQ
[youtube] 6jxIETSZuAQ: Downloading webpage
[youtube] 6jxIETSZuAQ: Downloading ios player API JSON
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig iCbsUR7Zp-m63jGC => ET8z4YaBqM9Brw
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig ToZjG8pWUE5SfynB => RUcRxPUOOUcvwg
[youtube] 6jxIETSZuAQ: Downloading m3u8 information
[info] 6jxIETSZuAQ: Downloading subtitles: en
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
ERROR: [youtube] 6jxIETSZuAQ: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1606, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1762, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1821, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 2955, in process_video_result
    raise ExtractorError(
yt_dlp.utils.ExtractorError: [youtube] 6jxIETSZuAQ: Requested format is not available. Use --list-formats for a list of available formats

[youtube] Extracting URL: https://www.youtube.com/watch?v=Nwl-vQA8cIo
[youtube] Nwl-vQA8cIo: Downloading webpage
[youtube] Nwl-vQA8cIo: Downloading ios player API JSON
[debug] [youtube] Extracting signature function js_5b22937f_105
[debug] Loading youtube-sigfuncs.js_5b22937f_105 from cache
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig Mw4nzHjsfOap7226 => 7UzAA9jLGTGCkg
[debug] [youtube] Extracting signature function js_5b22937f_101
[debug] Loading youtube-sigfuncs.js_5b22937f_101 from cache
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig Y7P1DFytihUhdx6g => TwpnBn83JXFewg
[youtube] Nwl-vQA8cIo: Downloading m3u8 information
[info] Nwl-vQA8cIo: Downloading subtitles: en
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
ERROR: [youtube] Nwl-vQA8cIo: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1606, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1762, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1821, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 2955, in process_video_result
    raise ExtractorError(
yt_dlp.utils.ExtractorError: [youtube] Nwl-vQA8cIo: Requested format is not available. Use --list-formats for a list of available formats

[youtube] Extracting URL: https://www.youtube.com/watch?v=v9ph4CZXBtY
[youtube] v9ph4CZXBtY: Downloading webpage
[youtube] v9ph4CZXBtY: Downloading ios player API JSON
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig VK9RH14-pPmT-SgF => 13vniJ5Mye5PvQ
[debug] Loading youtube-nsig.5b22937f from cache
[debug] [youtube] Decrypted nsig kWzEG1OueisW3nPa => sD444o5AzsgSJg
[youtube] v9ph4CZXBtY: Downloading m3u8 information
[info] v9ph4CZXBtY: Downloading subtitles: en
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
ERROR: [youtube] v9ph4CZXBtY: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1606, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1762, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1821, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 2955, in process_video_result
    raise ExtractorError(
yt_dlp.utils.ExtractorError: [youtube] v9ph4CZXBtY: Requested format is not available. Use --list-formats for a list of available formats

Yes, kind of. See #10206 for discussion and workarounds

Yes, kind of. See #10206 for discussion and workarounds

That was fast. Thank you. I thought I was going crazy


Forge search requests fail when executing behind a proxy

The following ENVs were exported:
https_proxy
http_proxy
use_proxies=yes

The following error is displayed:
sudo-sh[root@dlv-eu4-a046]# pufctl search forge puppet_agent
PUFCTL - ERROR: 2020/10/12 10:46:22 Search failed with error:  Search failed: forgeapi: List failed: forgeapi: 2020-10-12 10:46:22.774120684 -0400 EDT m=+5.006676982: HTTP GET request failed. URL: https://forgeapi-cdn.puppet.com/v3/modules?limit=5&query=puppet_agent&sort_by=rank, Headers: map[string]string{"User-Agent":"pufctl/v0.1.0"}, Error: &url.Error{Op:"Get", URL:"https://forgeapi-cdn.puppet.com/v3/modules?limit=5&query=puppet_agent&sort_by=rank", Err:(*http.httpError)(0xc000229660)}

Normally it should use the ENV proxy exported above.
kernel: 4.12.14-122.20-default x86_64 GNU/Linux

@azbarcea This should be fixed with v0.1.1 which is currently building. Please download the binary for v0.1.1 and let me know if that works for you.

Verified working correctly with v0.1.1


[CROSSDATA-729] Tests for lack of support for subqueries in filter

Description
One test added for checking the lack of support for subqueries in filters

Coverage remained the same at 49.238% when pulling 478619833ae5ce4ae053e25b2de341de777c662c on miguel0afd:tests/CROSSDATA-729 into c3fe81a0e9d4f6d826f5b2b777aaac69feb1a30c on Stratio:branch-1.7.


⚠ Bofrost.lu has degraded performance

In 40a7b02, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2667 ms

Resolved: Bofrost.lu performance has improved in 628846c after 26 minutes.


Xpath element not found

Description
I use firefox to generate an Xpath of a html file
I load the file to html agility, and the node is not found.
Further technical details

NET version ( netcore 3.1,)
VS2019

https://www.galaxus.de/de/s1/product/zotac-zbox-magnus-en72070v-intel-core-i7-9750h-0gb-pc-13590721
File saved: 2020-12-21_22-40-43__GalaxusZotac72070_805_dl.html   <<<<<<<<<<< file is attached
2020-12-21_22-40-43__GalaxusZotac72070_805_dl.html.txt
Node not found: '/html/body/div/div/div[2]/div/main/div/div[1]/div/div[2]/div/div[1]/strong'
expected node to be found: "1194,16"
below screen shot in firefox of the portion of page that i want to extract:

below the comand that i do with firefox to generate the xpath:

firefox creates xpath:
/html/body/div/div/div[2]/div/main/div/div[2]/div/div[2]/div/div[1]/strong
Regards.
C#code which uses htmlagility (works succesfully on other pages:xpath):
        protected override IDataTruck GetOutput(IDataTruck data)
        {
            IDataTruck ret;
            try
            {
                var htmldoc = new HtmlDocument();
                htmldoc.LoadHtml(data.GetText());
                var node = htmldoc.DocumentNode.SelectSingleNode(_xPath);
                if (node == null)
                {
                    _log.Error($"Node not found '{_xPath}'");
                    ret = DataTruck.CreateText(NOT_FOUND);
                }
                else
                {
                    ret = DataTruck.CreateText(node.InnerText.Trim());
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                ret = DataTruck.CreateText(NOT_FOUND);
            }
            return ret;
        }

Hello @tbremard ,
Thank you for reporting,
My developer will look at it and see if there is some issue that we could find on our side
Best Regards,
Jon

Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensions • Entity Framework Classic • Bulk Operations •  Dapper Plus
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Function • SQL Eval Function

Hello @tbremard ,
Firefox and Chrome create the following xpath /html/body/div/div/div[2]/div/main/div/div[2]/div/div[2]/div/div[1]/strong (the one you also reported,
However, you seem to report this xpath which is different doesn't work: '/html/body/div/div/div[2]/div/main/div/div[1]/div/div[2]/div/div[1]/strong
(See this part: /main/div/div[1] which is /main/div/div[2] when browser report it)
When using the right xpath, everything works on our side.
Is it a problem on your side? Or there is a reason why you use a different xpath than the one reported?
Best Regards,
Jon

Hello @JonathanMagnan ,
thank you very much for your analysis.
You spotted on my enquiry that I have 2 different Xpath :
'''
mycode:  /html/body/div/div/div[2]/div/main/div/div[1]/div/div[2]/div/div[1]/strong
Firefox:    /html/body/div/div/div[2]/div/main/div/div[2]/div/div[2]/div/div[1]/strong
'''
I didn t noticed this difference.
I think the website targeted did updated its content after I hardcoded the Xpath, and I didn't noticed this change of Xpath, as it is very long and differs with only a character.
Congratulation to your tool which spotted that I give incorrect Xpath.
you can close the ticket
Regards.
Thierry Bremard


made passthrough not overridable

should fix #400

With the changes made this will be good to go!
Again, thank you so much for all your work lately on Mirage, it's really helping me keep up momentum.

Cool, whenever got free time at hand trying to contribute

Looks great. Just a thought, can we add a second test for the opposite case, i.e. make sure if this.get is defined first that it wins?

added another test

Closing due to inactivity


current Wkhtmltopdf breaks metasploit and armatage on kali-linux

When trying to install QT-compiled version of wkhtmltopdf used for html-pdf conversion of current SAFETAG documentation metasploit and armatage are broken.

Used debian wheezy 36bit download for wkhtmltopdf
ERROR encountered:
When using the graphical installer faced the following error.

GDBuc.Error:org.gtk.GDBus.UnmappedGError.Quark._pk_5ftransaction_5ferror.Code4:SimulateInstallFiles not supported by backend

An earlier version of wkhtmltopdf is a required package by other applications.
Using the following command allowed the latest version to be installed. But, it set metsploit, armatage and kali-linux-full to be de-installed because they don't recognize the QT version to be the same package as the one they require. As long as you don't use apt-get after this they won't get de-installed. But, we don't use them anyway with SAFETAG core so this currently works.
apt-get remove wkhtmltopdf
dpkg --install  [WKHTMLTOPDF.deb]
apt-get install -f

This should stay open. We need to actually find an upstream fix to this. SAFETAG breaking metasplit is just silly.

This issue should be moved to the SAFETAG document creator repository issue cue once it is separated from this repository.

moved to https://github.com/OpenInternet/Documentation-Builder/issues/5


fix(consensus): fixes panic when generating a merkle proof

Description
Removed panics when generating the VN Merkle Proof.
Motivation and Context
The panic may occur due to incorrect API usage. For debugging purposes, I previously added a call verify after generating the proof, but I should have used verify_leaf. Removed the debugging code.
To investigate: A panic inside the MerkleProof::check_roots was encountered.
How Has This Been Tested?
N/A temporary debug code removed

I'd like to keep this one open for a bit so that I can replicate the cause and see where to fix the MMR crate

Makes sense, perhaps we should dump the parameters and merkle proof state somewhere so that we can replicate it in a test

The panic inside the check_root was caused by mistaking the leaf index for a node index. We send non-peak node to the check_root which makes it fail. This was caused by generating path for one index and then sending the path for another node to the verify. E.g. one of the cases I debugged. If you have MMR of size 23, and you get leaf 10 (node index 18), you generate path to the root of length 2 (root of 18 is 21). But then you send it for index 10 (this is the mistake node vs leaf index). The path to the root for node 10 is length 3. So it eventually end up on node 13 thinking this is the peak and it send it to the check_root function. I really suggest we should wrap one of the indices e.g. struct NodeIndex(usize) this way we will not mix them again.

Let's close this one


Could oneof be improved to determine the type besides the if else?

First of all, I really love this plugin, amazing work! I was wondering if this could somehow be improved or some advice on how I could approach the following problem.
Take this proto3 file:
syntax = "proto3";

option go_package = "pkg/packets";

// Packet types
message Chat { string text = 1; }
message ClientId { uint64 id = 1; } // For when the server sends a client its ID

// Packet container
message Packet {
  uint64 sender_id = 1;
  oneof payload { // Generates a field called Payload of type isPacket_Payload interface in Golang
    Chat chat_message = 2;
    ClientId client_id = 3;
  }
}

In my main.go file:
func main() {
	// I create a Packet
	packet := &packets.Packet{
		SenderId: 1,
		Payload:  packets.NewChatMessage("Hello, world"), // Helper function to avoid boilerplate code
	}

	// Determines the type of payload at runtime
	switch packet.GetPayload().(type) {
	case *packets.Packet_ChatMessage:
		fmt.Println("Its a chat message.")
	case *packets.Packet_ClientId:
		fmt.Println("It's a client ID message.")
	case nil:
		fmt.Println("The payload was not set.")
	default:
		fmt.Println("Invalid payload.")
	}

In this example, the console will print "Its a chat message." because its inferring the type of payload (oneof) using the .(type) from Golang. I saw on the readme that the way to do this in Godot with this plugin is to just do:
func _ready() -> void:
	if new_packet.has_chat_message():
		pass
	elif new_packet.has_client_id():
		pass
	else:
		pass

If I end up having 50 different "packet types", not only is more verbose, the code will have to check all of them to get to packet_type #50 for example.. Is there a more efficient way to do this? I mean I could add an enum that has the same packet_types and use that enum with a MATCH in godot to filter what to do, in fact I could probably use both, the enum with the MATCH plus the has_X_packet to double check that someone didn't make a mistake assigning the enum on packet creation, but its extra bytes sent over the network, I wish there was a more efficient way to do this, like Golang having the .(type) built into it.

Hi!
As far as I remember, only this feature is implemented in Godobuf, everything is as you described.
There is nothing stopping you from using enum, it is just 1 additional byte to message if their number is less than 128.
I think the size of your messages is significantly larger than message type indicator.


Frontend_Web_Development is missing or archieved from GWOC.

Description
From the GWOC, Frontend_Web_Development is missing or archived.
I have a forked copy of it, from where I work on JavaScript Fundamental and I add about the Script Tag.
Domain
Frontend Dev HTML/CSS/JS
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

@sifa123 Please make a Review.


Bridge either returns old state or times out

I'm managing Automerge documents through JSPyBridge.
from javascript import require
automerge = require('@automerge/automerge')

doc = automerge.init()  # I also give it a key, "log", holding a list, using the separate automerge.load()

Updating a document requires sending the document and a change function into the .change() call, which returns the changed document. This is my best attempt using the bridge:
def append_message(doc):
    doc['log'].append("message")
    return doc

new_doc = automerge.change(doc, append_message)

but the new_doc always appears identical to doc for some reason.
I tried a different approach using eval_js():
from javascript import eval_js

d = doc
new_doc = eval_js('''
    return automerge.change(d, doc => {
        doc['log'].push("message")
    })
''')

which does update the new state into new_doc, but this doesn't seem to be the intended way to use this library. Additionally, I start facing lots of bridge proxy timeout errors this way:
message = "foo"

new_doc = eval_js('''
    let msg = await message.valueOf();
    return automerge.change(d, doc => {
        doc['log'].push(msg)
    })
''')

this error throws when awaiting the valueOf() when shuffling string data into eval_js() with any reasonable frequency::
Exception in thread Thread-6 (process_queue):
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/home/jon/projects/project/file.py", line 80, in process_queue
    new_doc = eval_js('''
        ^^^^^^^^^^^
  File "/home/jon/.local/lib/python3.11/site-packages/javascript/__init__.py", line 53, in eval_js
    rv = config.global_jsi.evaluateWithContext(js, local_vars, forceRefs=True)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jon/.local/lib/python3.11/site-packages/javascript/proxy.py", line 213, in __call__
    else self._exe.callProp(
         ^^^^^^^^^^^^^^^^^^^
  File "/home/jon/.local/lib/python3.11/site-packages/javascript/proxy.py", line 153, in callProp
    resp = self.pcall(ffid, "call", method, args, timeout=timeout, forceRefs=forceRefs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jon/.local/lib/python3.11/site-packages/javascript/proxy.py", line 132, in pcall
    raise Exception(
Exception: Call to 'evaluateWithContext' timed out. Increase the timeout by setting the `timeout` keyword argument.

I've ultimately found something that works well enough (so far):
message = query['message']
d = self.doc
js_code = f'''
    let msg = {json.dumps(message)}; ''' + '''
    const new_doc = automerge.change(d, doc => {
        doc['log'].push(msg)
    });
    return new_doc;
'''
self.doc = eval_js(js_code)

This directly includes the data of the message as part of the code to run, instead of relying on async transfers.
The ''' + ''' avoids confusion around JS's curly braces while allowing direct variable assignment before the break with f''' ... '''
I somehow needed d = self.doc since passing self.doc directly to eval_js() failed (can't handle periods? I'm missing some braces?).

If someone know how to increase timeout - please let me know. setting env var REQ_TIMEOUT=0 does not seem to be reliably working.


How I can change sort order of parent nodes in tree? Frontend its showing but in backend its not updating accordingly.

Also need to change the selected node colour while moving


TINKERPOP3-903 - amend a test

Add a test to validate that results of all sizes stream properly.
This is an amendment to
https://issues.apache.org/jira/browse/TINKERPOP3-903
which was already merged and closed.  As @rjbriody was describing the problem he was seeing, it would be cool if he could review this test to see if it is sufficient for covering the problems he had.  I'd like to have more tests in this area if he can think of holes in this one.  We can vote to merge once we get his :+1:

Looks like the script does a lot of things that are not really required for the test. I think we should save some CPU cycles wherever we can, since the tests already take long enough.
def rand = new Random()
def ii = 0
def ids = [graph.addVertex().id()]
while (ii++ < size) {
  def v = graph.addVertex()
  def u = graph.vertices(ids.get(rand.nextInt(ids.size()))).next()
  v.addEdge('linked', u)
  ids += [v, u]*.id()
}
g.V()

In my opinion that should be sufficient.

I'll let @rjbriody say if your change is ok @dkuppitz but I think having properties were an important part of what was required in the test.  Note that this test only runs on TinkerGraph in the integration tests for gremlin server so it's pretty fast (seconds).

Ok, there's nothing else wrong with the test, I just wanted to point out, that it probably does a lot of unnecessary stuff. If it's needed, cool.
Vote: +1

I like that @dkuppitz looked at this with a discerning eye and questioned the motives of the test, but I guess i could have CTR'd this one.  As we're already in the vote, @okram can you just have a look real quick and vote?
Since @rjbriody is good with the test and it passes nicely:
VOTE: +1

VOTE +1.


Small improvements

Thanks for providing diff2HtmlCompare. I made small changes so I could use it for my need.

Looks great. Thanks for the tweaks!

Looks great. Thanks for the additions!


Is this the best (or only) way to figure out which subcommands have been used?

Say I have my app with nested subcommands
App sub1 sub2

In order to check that I have run app sub1 sub2 --someflag I've been using.
if parser.Command.Active.Name  // sub1 {
    if { parser.Command.Active.Active.Name  // sub2 {
        // do something
    }
}

Is that the best way?
I couldn't find anything else in the docs.

I'd like to know this too. I find the documentation/examples are a little lacking here.

For future readers, the best way I found to do this was to use the Commander interface. It's not the most elegant solution, but it works fairly well.
type Options struct {
	Sub1  Subcommand1 `command:"s1"`
	Sub2  Subcommand2 `command:"s2"`
}

type Subcommand1 struct {
	Enabled bool `hidden:"true" no-ini:"true"`
}

// Detect when the subcommand is used.
func (c *Subcommand1) Execute(args []string) error {
	c.Enabled = true
	return nil
}

type Subcommand2 struct {
	Enabled bool `hidden:"true" no-ini:"true"`
}

// Detect when the subcommand is used.
func (c *Subcommand2) Execute(args []string) error {
	c.Enabled = true
	return nil
}

func main() {
	var ops Options
	args, err := flags.Parse(&ops)
	if flags.WroteHelp(err) {
		return
	}
	if err != nil {
		panic(err)
	}

	switch {
	case ops.Sub1.Enabled:
		// do thing 1
	case ops.Sub2.Enabled:
		// do thing 2
	}
}

@jessevdk this would be a good example to provide in your documentation. Additionally, it would be nice if the parser was able to recognize pointer struct types for subcommands; then it would be easy to check if a subcommand was provided with a simple nil check, as demonstrated below:
type Options struct {
	Sub1  *Subcommand1 `command:"s1"`
	Sub2  *Subcommand2 `command:"s2"`
}

type Subcommand1 struct {
	Enabled bool `hidden:"true" no-ini:"true"`
}

type Subcommand2 struct {
	Enabled bool `hidden:"true" no-ini:"true"`
}

func main() {
	var ops Options
	args, err := flags.Parse(&ops)
	if flags.WroteHelp(err) {
		return
	}
	if err != nil {
		panic(err)
	}

	switch {
	case ops.Sub1 != nil:
		// do thing 1
	case ops.Sub2 != nil:
		// do thing 2
	}
}


feat(CNV-42652): add kubevirt-disk-uploader tool

What this PR does / why we need it:
Add a tool that extracts disk image from source
and uploads it to the container registry.
Release note:

Add disk-uploader tool

@ksimon1 I'm still working on this PR. Can you please review the structure of the folders? What else should be copied from kubevirt-disk-uploader?

@ksimon1 I've resolved compilation errors and dependencies issues. I'm able to build disk-uploader:
go build -o disk-uploader ./cmd/disk-uploader

/retest

/lgtm
/approve

/retest


az lock delete does not work on Microsoft.DocumentDB

Azure CLI "az lock delete" command does not seem to work on providers/Microsoft.DocumentDB
In my specific scenario, the locks are created for the collections within a cosmos db, when I try to delete the lock as below:
az lock delete --ids /subscriptions/mySubcription/resourcegroups/myRG/providers/Microsoft.DocumentDB/databaseAccounts/myDB/apis/mongodb/databases/myCollection/providers/Microsoft.Authorization/locks/myLock --debug
the error I get as below:

cli.azure.cli.core.util : Unexpected --parent for lock myLock,
expected databaseAccounts/myDB

If I try to include the --parent attribute, I also receive the following error:
cli.azure.cli.core.util : --parent is ignored if --resource-group is not given.
--parent is ignored if --resource-group is not given.

I've tried a number of different variations of the command as suggested in the output, however none of them seem to work.
Any suggestions on what is the proper way to use az lock delete cli command on databases?
The version of the cli I'm using is 2.0.77

add to S167.

This issue is fixed in sprint 167.


[DROOLS-7450] fix split packages in drools-base

(tests) - serverless-workflow-examples job #1041 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
export BUILD_MVN_OPTS_CURRENT=
build-chain build cross_pr -f 'https://raw.githubusercontent.com/kiegroup/kogito-pipelines/main/.ci/pull-request-config.yaml' -o 'bc' -p kiegroup/kogito-examples -u https://github.com/kiegroup/kogito-runtimes/pull/3031 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://eng-jenkins-csb-business-automation.apps.ocp-c1.prod.psi.redhat.com/job/KIE/job/kogito/job/main/job/pullrequest/job/kogito-runtimes.tests.downstream.serverless-workflow-examples/1041/display/redirect
Test results:

PASSED: 79
FAILED: 1

Those are the test failures:

org.kie.kogito.examples.DataIndexRestIT.testDataIndexRest
1 expectation failed.JSON path data.ProcessInstances[0].state doesn't match.Expected: is "COMPLETED"  Actual: ACTIVE


StarCoder BetterTransformer - DeepSpeed Zero 3 + A100

System Info
I am using the latest optimum version 1.12.0 and latest transformers version 4.32.0 to fine tune StarCoderBase.
The hardware setup is a single node with 4 A100 GPUs and CUDA 11.8
model.to_bettertransformer() is called before training, and before saving the model, model.reverse_bettertransformer() is called.
After the model is saved, I am seeing that pytorch_model.bin is lighter than it should be and weighs 5.4 MB, and the model is unusable.
Pytorch 2.0 and deepspeed 0.10.1 are installed.

I tried Zero stage 2 and stage 3, results are the same.
I also tried "stage3_gather_16bit_weights_on_model_save": true , but that didn't help either.
Thank you

Who can help?
No response
Information

[ ] The official example scripts
[x] My own modified scripts

Tasks

[ ] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[X] My own task or dataset (give details below)

Reproduction (minimal, reproducible, runnable)
DeepSpeed configuration:
{
"bf16": {
"enabled": "auto"
},
"optimizer": {
  "type": "AdamW",
  "params": {
    "lr": "auto",
    "betas": "auto",
    "eps": "auto",
    "weight_decay": "auto"
  }
},
"scheduler": {
  "type": "WarmupLR",
  "params": {
    "warmup_min_lr": "auto",
    "warmup_max_lr": "auto",
    "warmup_num_steps": "auto"
  }
},
"zero_optimization": {
  "stage": 3,
  "offload_optimizer": {
    "device": "cpu",
    "pin_memory": false
  },
  "offload_param": {
    "device": "cpu",
    "pin_memory": false
  },

  "overlap_comm": true,
  "contiguous_gradients": true,
  "sub_group_size": 1e9,
  "reduce_bucket_size": "auto",
  "stage3_prefetch_bucket_size": "auto",
  "stage3_param_persistence_threshold": "auto",
  "stage3_max_live_parameters": 1e9,
  "stage3_max_reuse_distance": 1e9,
  "stage3_gather_16bit_weights_on_model_save": false
},
"gradient_accumulation_steps": "auto",
"gradient_clipping": "auto",
"steps_per_print": 2000,
"train_batch_size": "auto",
"train_micro_batch_size_per_gpu": "auto",
"wall_clock_breakdown": false

}
Expected behavior
Pytorch model should weigh ~59GB , and model should be usable when loaded later from disk.

@drorbrillsnps Thank you! I can try and help look into it. Could you provide a complete reproduction?

Thank you!
I am using a slightly modified https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_clm.py training script, where I have added model.to_bettertransformer() and model.reverse_bettertransformer().
deepspeed run_clm.py
--model_name_or_path="bigcode/starcoderbase"
--dataset_name=""
--preprocessing_num_workers=32
--save_steps 2
--save_total_limit 1
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--learning_rate 2.0e-5
--block_size 8192
--gradient_accumulation_steps 16
--do_train
--do_eval
--bf16
--lr_scheduler_type="cosine"
--evaluation_strategy="epoch"
--deepspeed="./deepspeed_z3_config_bf16.json"
--report_to="tensorboard"
--overwrite_output_dir

Perfect thank you, I'll look into it tomorrow.

One more piece of information:
When using "stage3_gather_16bit_weights_on_model_save": true
The process gets stuck, or maybe is in an infinite loop, when saving a checkpoint.

@drorbrillsnps Thank you I can reproduce the issue.

@drorbrillsnps The issue appears to arise only with zero3. Using your config with "stage": 2, things are fine. Will look into what is wrong.

Hello @fxmarty , any update on this issue? :)
Thank you!

Hi @drorbrillsnps for reference from transformers>=4.36 + torch>=2.1.1, Transformers by default uses PyTorch's scaled_dot_product_attention operator for GPT BigCode and we deprecate the usage of BetterTransformer for this architecture.
See details at https://huggingface.co/docs/transformers/perf_infer_gpu_one#flashattention-and-memory-efficient-attention-through-pytorchs-scaleddotproductattention and https://github.com/huggingface/transformers/releases/tag/v4.36.0


Nitro modules ? like Nuxt

Describe the feature
Hello,
I'm currently asking myself how to share code between Nitro app.
Imagine, I'm building a server with auth on app A. I implement auth within code source A. Then, I'm building app B. I also need auth. How could I share code?
Currently, if I use Nuxt with Nitro, I can build a Nuxt module and modify directly the Nitro config to import some utils. If I use Nitro alone, it's not possible. In the same time, some features currently build for Nuxt could be only for Nitro and shared to other Nitro based framework.
I could create a simple JS package but I will not be able to provide great DX like auto-import, to update the config, inject routes or more...
What do you think of modules for Nitro like in Nuxt?
Additional information

[ ] Would you be willing to help implement this feature?

Thanks for making issue. As discussed before internally, this is something i had been thinking too mainly to unblock developing experiments and integrations out of Nitro core.
Currently, you can benefit from Nuxt/Nitro layers. Nitro-only apps, can extend from server/ directory.


feat(CategoryTheory): more lemmas for the calculus of fractions

We introduce lemmas on fractions which shall be useful when constructing the preadditive structure on the localized category.

[x] depends on: #11721

bors merge


No MQTT connection ("Client  disconnected due to protocol error.")

NUKI Hub can't connect to HA MQTT broker.
Everything configured correctly, using the same data on another client (e. g. MQTT Explorer on a Windows machine) connects just fine.
Mosquitto broker logs for the NUKI hub:
2023-02-05 18:45:03: New connection from <IP_ADDRESS>:52648 on port 1883.
2023-02-05 18:45:03: Client <unknown> disconnected due to protocol error.
2023-02-05 18:45:08: New connection from <IP_ADDRESS>:52649 on port 1883.
2023-02-05 18:45:08: Client <unknown> disconnected due to protocol error.

This is so annoying as I'm trying to make NUKI Hub run for weeks now, testing it every few days. Today I must conclude: the bug is on the NUKI hub side.
Please assist.

It looks like you haven't configured MQTT fully on the Nuki Hub side, because otherwise Mosquitto would log your client ID.

It looks like you haven't configured MQTT fully on the Nuki Hub side, because otherwise Mosquitto would log your client ID.

As I wrote: checked that plenty of times, all data is correct. Using the same information from another MQTT client works just fine.
So: tell me what's missing according to your opinion.

Please update to 8.4, open the web portal and open the system information page by clicking on the firmware version. Copy & paste your info here.

Firmware version: 8.4
run: true
deviceId: 3***80***5
mqttbroker: <IP_ADDRESS>
mqttport: 1883
mqttuser: ***
mqttpass: ***
mqttlog: false
lockena: true
mqttpath: nuki
openerena: false
mqttoppath: nukiopener
maxkpad:
mqttca:
mqttcrt:
mqttkey:
hassdiscovery: homeassistant
nwhw: 2
nwhwdt: 26
rssipb: -1
hostname: Nuki-Hub
nettmout: -1
restdisc: false
resttmr: -1
rstbcn: -1
lockStInterval: 1800
configInterval:
batInterval: 1800
kpInterval: 1800
kpEnabled: false
regAsApp: false
nrRetry: 3
rtryDelay: 100
crdusr: ***
crdpass: ***
pubauth: false
gpiolck: false
pubdbg: false
prdtimeout: 60
hasmac: true
macb0: 43
macb1: 120
macb2: 64
MQTT connected: No
Lock paired: No
Lock PIN set: -
Heap: 80148
Restart reason FW: NetworkDeviceCriticalFailure
Restart reason ESP: ESP_RST_SW: Software reset via esp_restart.

Note I masked deviceId and hostname (real one contains an ü, just in case that makes any difference).

No need to censor the deviceId. It's the id of the client (the ESP in this case) and randomly generated when you boot it the first time.

Okay. Anything helpful in that log data (which is a great new feature by the way 👍)?
By the way, this is sent when saving the MQTT/network settings:
http://nuki-hub/method=get?HOSTNAME=Nuki-Hub&MQTTSERVER=<IP_ADDRESS>&MQTTPORT=1883&MQTTUSER=username_mqtt&MQTTPASS=[MASKED]&HASSDISCOVERY=homeassistant&MQTTCA=&MQTTCRT=&MQTTKEY=&NWHW=2&NWHWDT=26&RSSI=-1&NETTIMEOUT=-1&RSTDISC=0&RSTTMR=-1&MQTTLOG=0&submit=Save
For the password, special characters are replaced by some kind of ASCII representation I guess, e. g. the ü from the hostname is shown as %FC.
Not sure what else I could provide.

Note I masked deviceId and hostname (real one contains an ü, just in case that makes any difference).

That's not a valid DNS label (and I'm pretty sure, ESP32 doesn't translate to punycode).

Note I masked deviceId and hostname (real one contains an ü, just in case that makes any difference).

That's not a valid DNS label (and I'm pretty sure, the ESP32 network stack doesn't translate to punycode).

BAM - here we go:
replaced the ü in the hostname setting with ue and immediately:

MQTT Explorer:

Please add input validation or at least a note what exactly is allowed for which fields (same as with the passwort length #111). That would have saved me roughly 3 weeks...

Max. password length is already added. Input validation at this point would mean the ESP just wouldn't save such a hostname ... which is probably better than nothing since it's more obvious than a failing MQTT connection.


Getting error when running the fitting command "dataset.fit()"

Hello
I'm sorry before if this problem isn't worth be noticed at all. I'm new to the code and tried to follow the code given in the documentation. But when I tried to fit the example data with the dataset.fit() command, I encounter the following error:
ValueError: not enough values to unpack (expected 2, got 1)
It rises from this line:
name, values = l.split('   ', 1)
The fitting is actually done and the result is there in the file I specified. But when the code showed analysing data from hats46/jomnest_.txt, the above error appeared. It appears that I always encounter the error every time I run the dataset.fit() command. I really don't have any idea about it. Can somebody help me with this?
Thank you very much!

Hi @ghost,
Thanks for using juliet! I presume you are following the lightcurve fitting tutorial --- correct? I just tried running it in a freshly installed version of juliet, and the dataset.fit() seems to run just fine at least on my system.
Can you pass the entire traceback you are getting?
Thanks!
Néstor


Separate TLS from servers

Is your feature request related to a problem? Please describe.
Using nodeJS's integrated TLS stack is not good practice in performance and in consideration of docker environment.
Describe the solution you'd like
We can provide nginx frontend server for testing purpose and removing integrated TLS stack.

Using nodeJS's integrated TLS stack is not good practice in performance

Question: What is the specific production deployment scenario where you see that the optional TLS/mTLS support's mere presence would cause a performance degradation of any kind?

We can provide nginx frontend server for testing purpose and removing integrated TLS stack.

This is true already. You turn off the TLS/mTLS in the NodeJS process via the configuration flag and then do TLS at any other point in your infrastructure where you prefer to do so.

Closing this as stale for now, feel free to re-open anytime of course!


96 dependabot

Closes #96

I'm not entirely sure dependabot works, hard to test locally ;) Once merged to master, I expect a PR from dependabot in a couple minutes, because I intentionally left one of the dependencies outdated (sklearn 0.24.0 instead of 0.24.1).
I also had to fix a test due to new versions of depends. And in turn, because we now have precommit, I had to fix a lot of styling issues.

@Matgrb I abandoned the dependabot approach, but made other improvements, one of which is optional requirements. can you review & merge the PR?


InstagramInboxThread items size are always at one

InstagramInboxThread thread = this.getGroups().get(0);  System.out.println(thread.getThread_title());   System.out.println(thread.getItems().size());
Im getting the first one of all my groups on instagram in the first line. After that I print the group name to make sure that the group contains more than one message. The third line always shows that the itemSize is 1. The first item is just the latest message.
How can I get the last 10 or all messages from a instagram direct messages group?

Not really, you need to pagination the result. The Pull request below has an example
#154


That's when it comes to concatenating variables.

The problem with this implementation.
That's when it comes to concatenating variables.
This command does not support example:
Serial.println("[INFO] - Conectando no WiFi " + Wifi_SSID + ".");

True.
String msg = "[INFO] - Conectando no WiFi " + Wifi_SSID + ".";
debugPrintln(msg);
Tudo bem!