bug with ArrayHelper::filter($array, $filters)

Hi i found a bug in
public static function filter ($ array, $ filters)
yii2 / framework / helpers / BaseArrayHelper.php file
line 947 if ($ filter [0] === '!')
if $ filters is one dimensional array i see
PHP Notice - yii \ base \ ErrorException
Trying to access array offset on value of type int
1.in /var/www/test_dev/vendor/yiisoft/yii2/helpers/BaseArrayHelper.phpat line 947
 * @return array Filtered array
 * @since 2.0.9
 * /
public static function filter ($ array, $ filters)
{
    $ result = [];
    $ excludeFilters = [];

    foreach ($ filters as $ filter) {
        if ($ filter [0] === '!') {
            $ excludeFilters [] = substr ($ filter, 1);
            continue;
        }

        $ nodeValue = $ array; // set $ array as root node
        $ keys = explode ('.', $ filter);
        foreach ($ keys as $ key) {
            if (! array_key_exists ($ key, $ nodeValue)) {
                continue 2; // Jump to next filter

In older versions it worked like this
$ array:
Array
(
    [0] => #
    [1] => Action Column
    [2] => User
    [3] => Subject
    [4] => Is Active
    [5] => Created At
    [6] => Updated At
)

$ filters:
Array
(
    [0] => 0
    [1] => 1
    [2] => 3
    [3] => 2
    [4] => 6
    [5] => 5
)

$ result:
Array
(
    [0] => #
    [1] => Action Column
    [3] => Subject
    [2] => User
    [6] => Updated At
    [5] => Created At
    [4] => Is Active
)

It was possible to use ArrayHelper :: filter to display the array in the desired order.
I fixed it like this
- 947 if ($ filter [0] === '!') {
+ 947 if (is_array ($ filter) && $ filter [0] === '!') {

Maybe it should be included this in the repository?
Additional info

Q
A

Yii version
<IP_ADDRESS>

PHP version
7.4.3

Operating system
Ubuntu 20.04

@rikcage do you have time for a pull request with a unit test and the fix?

It seems that @rikcage uses integer values in the filters argument, but they are expected to be strings.

I think this is a misunderstanding of the cause of this error. $filters must be a flat array (and it should be checked BTW). The problem here is the same as in #18426 - the check for the first character being exclamation mark is done accessing the string as an array.

I'll fix this together with all other places having similar solution.

@bizley But the notice from bug report says 'Trying to access array offset on value of type int', and the flat array of integers is passed as an argument.

Hmm, right. The change introduced in https://github.com/yiisoft/yii2/commit/b794d76056ac2fe7426018f5400e9921a4952a55#diff-e6a3dd2628f9c50a496966ef3ba411cae921504c003153c65d723292ed1a3a2c rendered using integer keys here impossible. I'll try to re-enable it.


expose window.panes

I'm using this for https://mashlib-as-an-app.5apps.com/#resource=https%3A%2F%2Fmichielbdejong.inrupt.net%2Finbox%2F

This is a big question in terms of which API we expose, so want input from @timbl on this.

ok! @megoth do you know how to get that app working, by the way? It's retrieving the resource, but not displaying it: https://mashlib-as-an-app.5apps.com/#resource=https%3A%2F%2Fmichielbdejong.inrupt.net%2Finbox%2F
(use the house icon to log in)

I think this is outdated and not needed anymore.
Please reopen if you disagree.


Add Awesome ChatGPT Prompts

https://github.com/f/awesome-chatgpt-prompts
A collection of prompt examples to be used with the ChatGPT model. It should be included because ChatGPT is a very popular AI Chatbot and the awesome repo linked has 3k stars despite being created less than 7 days ago.
I know this doesn't meet the rule: Has been around for at least 30 days.. However, given the high level of interest in this project, I propose we make an exception.

PR to add the awesome badge: https://github.com/f/awesome-chatgpt-prompts/pull/39

Open Pull Requests I've reviewed:

https://github.com/sindresorhus/awesome/pull/2435#pullrequestreview-1212710458
https://github.com/sindresorhus/awesome/pull/2445#pullrequestreview-1212711880

By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions.
You have read and understood the instructions for creating a list.
This pull request has a title in the format Add Name of List.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

Your entry should be added at the bottom of the appropriate category.
The title of your entry should be title-cased and the URL to your list should end in #readme.

Example: - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.

The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it. Instead use #2242 for incubation visibility.
Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
The default branch should be named main, not master.
Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

Non-generated Markdown file in a GitHub repo.
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate. Please search for existing submissions.
Only has awesome items. Awesome lists are curations of the best, not everything.
Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.
Must not feature Contributing or Footnotes sections.

Has an appropriate license.

We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.
It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
The section should not appear in the Table of Contents.

All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't use hard-wrapping.
Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.
Doesn't include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

Thanks for making an Awesome list! 🙌
It looks like you didn't read the guidelines closely enough. I noticed multiple things that are not followed. Try going through the list point for point to ensure you follow it. I spent a lot of time creating the guidelines so I wouldn't have to comment on common mistakes, and rather spend my time improving Awesome.

The biggest problem I noticed was that there is no table of contents in the list. It's hard to navigate through the prompts without one.

Thanks fix is here: https://github.com/f/awesome-chatgpt-prompts/pull/74

The biggest problem I noticed was that there is no table of contents in the list. It's hard to navigate through the prompts without one.

Thanks fix is here: f/awesome-chatgpt-prompts#74

Slight issue I noticed is that there seems to be an extra space in your description about the theme of the list. Other than that it looks good!

My advice would be to have the introduction first, then the prompts, and everything else at the end. I could feel my focus loosening as I scrolled down, especially on my phone. That's just my personal perception. If someone else wants to try it and thinks it looks easy to navigate, then I'll say it's a problem with me instead.

I feel like categorisation is needed on this list. Right now it just seems to be random.
I'd also be interested to see a list of related awesome lists and/or useful tools. I found this list being used in the desktop app @ https://github.com/lencx/ChatGPT but it is not mentioned in this list at all.

Pointing out one of the requirements:

Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.

Really interesting and useful list by the way!

There are several mistakes you should consider running npx awesome-lint.

I think the list is very interesting. There however appear to be some problems:

The title of your entry should be title-cased and the URL to your list should end in #readme.
Example: - Software Architecture - The discipline of designing and building software.

❌ The description should contain the #readme suffix.

Has a Table of Contents section:

❌

The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.

❌

Includes the Awesome badge.
Should be placed on the right side of the readme heading.
Can be placed centered if the list has a centered graphics header.

❌ Not placed at the right side of the header.

Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.

❌

Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.

❌ The list contains 168 linting errors.

Other

The list appears to contain a sales link. @sindresorhus do we allow these?

Logs
Show errors

✖ Linting

  README.md:596:2
  ✖    1:1    The repository should have "awesome" as a GitHub topic                                                                              remark-lint:awesome-github
  ✖    1:1    The repository should have "awesome-list" as a GitHub topic                                                                         remark-lint:awesome-github
  ✖    1:1    Forbidden license section found                                                                                remark-lint:awesome-license
  ✖    1:1    Missing or invalid Table of Contents                                                                                remark-lint:awesome-toc
  ✖    3:157  https://www.steamship.com/build?utm_source=github&utm_medium=badge&utm_campaign=awesome_gpt_prompts&utm_id=awesome_gpt_prompts
  remark-lint:double-link
  ✖   15:1    Don’t use emphasis to introduce a section, use a heading
  remark-lint:no-emphasis-as-heading
  ✖   17:1    Don’t use emphasis to introduce a section, use a heading
  remark-lint:no-emphasis-as-heading
  ✖   23:1    Don’t add a trailing ? to headings
  remark-lint:no-heading-punctuation
  ✖   29:1    Don’t add a trailing ? to headings
  remark-lint:no-heading-punctuation
  ✖   31:14   https://www.steamship.com/build?utm_source=github&utm_medium=explainer&utm_campaign=awesome_gpt_prompts&utm_id=awesome_gpt_prompts
  remark-lint:double-link
  ✖   33:9    https://www.steamship.com/build?utm_source=github&utm_medium=explainer&utm_campaign=awesome_gpt_prompts&utm_id=awesome_gpt_prompts
  remark-lint:double-link
  ✖   35:1    Don’t add a trailing ? to headings
  remark-lint:no-heading-punctuation
  ✖   70:17   https://github.com/f
  remark-lint:double-link
  ✖   76:17   https://github.com/f
  remark-lint:double-link
  ✖   82:17   https://github.com/f
  remark-lint:double-link
  ✖   89:3    Text "javascript" should be written as "JavaScript"
  remark-lint:awesome-spell-check
  ✖   92:17   https://github.com/f
  remark-lint:double-link
  ✖   96:17   https://github.com/f
  remark-lint:double-link
  ✖  118:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  122:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  123:406  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  123:456  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  126:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  130:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  134:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  138:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  142:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  146:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  150:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  154:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  163:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  167:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  168:107  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  171:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  175:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  179:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  183:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  187:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  191:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  195:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  199:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  203:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  204:397  "”" is used without matching "“"
  remark-lint:match-punctuation
  ✖  207:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  211:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  215:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  219:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  223:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  227:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  231:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  235:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  239:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  243:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  247:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  251:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  255:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  259:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  260:243  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  260:349  "“" is used without matching "”"
  remark-lint:match-punctuation
  ✖  263:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  264:375  "“" is used without matching "”"
  remark-lint:match-punctuation
  ✖  267:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  271:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  275:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  276:558  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  279:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  280:407  "“" is used without matching "”"
  remark-lint:match-punctuation
  ✖  283:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  287:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  291:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  295:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  299:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  303:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  307:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  317:1    Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  317:217  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  317:218  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  322:17   https://github.com/sinanerdinc
  remark-lint:double-link
  ✖  330:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  334:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  338:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  342:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  346:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  350:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  354:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  358:17   https://github.com/iuzn
  remark-lint:double-link
  ✖  359:381  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:382  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:383  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:389  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:397  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:398  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:399  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:408  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:409  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:410  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:425  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:431  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  359:432  Should not repeat "."
  remark-lint:no-repeat-punctuation
  ✖  366:17   https://github.com/sinanerdinc
  remark-lint:double-link
  ✖  378:17   https://github.com/f
  remark-lint:double-link
  ✖  381:1    Don’t add a trailing : to headings
  remark-lint:no-heading-punctuation
  ✖  382:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  385:1    Don’t add a trailing : to headings
  remark-lint:no-heading-punctuation
  ✖  388:3    Text "StackOverflow" should be written as "Stack Overflow"
  remark-lint:awesome-spell-check
  ✖  391:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  399:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  403:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  407:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  411:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  415:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  419:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  423:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  431:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  435:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  439:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  443:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  447:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  451:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  455:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  459:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  463:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  467:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  471:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  475:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  479:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  483:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  487:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  491:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  495:17   https://github.com/devisasari
  remark-lint:double-link
  ✖  515:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  519:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  523:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  527:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  531:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  535:17   https://github.com/giorgiop
  remark-lint:double-link
  ✖  539:17   https://github.com/TirendazAcademy
  remark-lint:double-link
  ✖  551:17   https://github.com/ersinyilmaz
  remark-lint:double-link
  ✖  567:17   https://github.com/ersinyilmaz
  remark-lint:double-link
  ✖  584:17   https://github.com/TirendazAcademy
  remark-lint:double-link
  ✖  588:4    Text "StackOverflow" should be written as "Stack Overflow"
  remark-lint:awesome-spell-check
  ✖  591:3    Text "stackoverflow" should be written as "Stack Overflow"
  remark-lint:awesome-spell-check
  ✖  594:17   https://github.com/ilhanaydinli
  remark-lint:double-link
  ✖  596:2    Add 1 space between block quote and content
  remark-lint:blockquote-indentation
  ✖  599:17   https://github.com/ilhanaydinli
  remark-lint:double-link
  ✖  601:2    Add 1 space between block quote and content
  remark-lint:blockquote-indentation
  ✖  606:2    Add 1 space between block quote and content
  remark-lint:blockquote-indentation
  ✖  611:2    Add 1 space between block quote and content
  remark-lint:blockquote-indentation
  ✖  611:617  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  624:16   https://github.com/buddylabsai
  remark-lint:double-link
  ✖  631:2    Add 1 space between block quote and content
  remark-lint:blockquote-indentation
  ✖  631:226  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  634:17   https://github.com/buddylabsai
  remark-lint:double-link
  ✖  661:169  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  661:414  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  661:698  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  666:78   Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  666:89   Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  671:320  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  671:419  "“" is used without matching "”"
  remark-lint:match-punctuation
  ✖  711:250  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  716:648  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  716:789  Found reference to undefined definition
  remark-lint:no-undefined-references
  ✖  733:780  "’" is used without matching "‘"
  remark-lint:match-punctuation
  ✖  741:17   https://github.com/y1j2x34
  remark-lint:double-link
  ✖  756:16   https://github.com/y1j2x34
  remark-lint:double-link
  ✖  777:1    Don’t use multiple top level headings (67:1)
  remark-lint:no-multiple-toplevel-headings
  ✖  777:1    List can only have one heading
  remark-lint:awesome-heading

  168 errors


Add new ser/deser for scann index

In next releases, scann index will be officially supported instead of a beta version, we add a new ser/deser for scann index, which will minimize the impact scann index brings if we have any changes to IndexRefine in the future.
/kind improvement

My overall comment would be to restore IndexRefine as it was  in the baseline Faiss version (https://github.com/facebookresearch/faiss/blob/main/faiss/IndexRefine.cpp). Same for IndexRefine-related code in index_read.cpp and index_write.cpp
Some more details.
Technically, there is no need to have bool with_refine;field at all. So, I'd remove this field completely. It can be expressed as
inline bool IndexScaNN::with_refine() const { return (refine_index != nullptr); }

Please derive IndexScaNN from IndexRefine, not from IndexRefineFlat. The reason is that IndexScaNN has its own custom IndexScaNN::search() call and Knowhere code has to patch IndexRefineFlat::IndexRefineFlat() constructor for IndexScaNN purposes. This can be avoided if IndexScaNN is derived directly from IndexRefine.
Please override IndexScaNN::train() and IndexScaNN::add() in the way it is done for IndexRefine::train() and IndexRefine::add(). The reason is that IndexRefine is written in the way that it does not assume that a refine_index can be nullptr at all. So, this logic needs to go into IndexScaNN

I've also checked the benchmark_float_qps that loads / saves the index files. It seems to work as expected.

/run-e2e

/run-e2e


🐞 dagger 0.13.3 Windows 11 - failed to import local module source: archive/tar: unknown file mode

What is the issue?
On windows, if one of the directories under dagger is a symbolic link then any dagger operation that loads the entire directory will crash.
This seems to be related to a well commented (and unresolved since May 2024) issue in the docker github repo docker/for-win/issues/14083 .
A simple way to fix this kind of issue would be to implement a .daggerignore analogous to .gitignore and .dockerignore, on a side note, running dagger init or dagger git on a 166mb directory in windows takes 35 seconds just to load into the container, if I remove unnecassary compilation artifcats the the directory shrinks in size to 11mb and take 0.9s to load into dagger.
This is an elixir project.
Dagger version
0.13.3
Steps to reproduce
fcbry_teamwork_poc on  main [✘!?] via 🐳 desktop-linux via 🐹 v1.23.1 took 40s
❯ dagger version
dagger v0.13.3 (registry.dagger.io/engine:v0.13.3) windows/amd64

fcbry_teamwork_poc on  main [✘!?] via 🐳 desktop-linux via 🐹 v1.23.1
❯ docker version
Client:
 Version:           27.1.1
 API version:       1.46
 Go version:        go1.21.12
 Git commit:        6312585
 Built:             Tue Jul 23 19:57:57 2024
 OS/Arch:           windows/amd64
 Context:           desktop-linux

Server: Docker Desktop 4.33.1 (161083)
 Engine:
  Version:          27.1.1
  API version:      1.46 (minimum version 1.24)
  Go version:       go1.21.12
  Git commit:       cc13f95
  Built:            Tue Jul 23 19:57:19 2024
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.7.19
  GitCommit:        2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
 runc:
  Version:          1.7.19
  GitCommit:        v1.1.13-0-g58aa920
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Run a dagger command like git or init - doesn't matter, they all crash with that bad file in play.
❯ dagger -m github.com/shykes/git@2d0fc9687fdd48519352bc54418292864389e7d7 call load --source .
✔ connect 4.3s
✔ initialize 4.6s
✘ prepare 18.8s
! failed to get value for argument "source": input: moduleSource.resolveDirectoryFromCaller resolve: failed to import local directory module arg: archive/tar: unknown file mode ?rwxr-xr-x
  ✘ ModuleSource.resolveDirectoryFromCaller(path: "."): Directory! 18.8s
  ! failed to import local directory module arg: archive/tar: unknown file mode ?rwxr-xr-x
    ✘ upload C:/code/fcbry_teamwork_poc from q3rjl5kiva31j8zkg3ddzmxyy (client id: zumijfg9mlixxr4nn9hqq2420, session id: k4so4b1szrnm2n6olan0v58iq) 18.8s
    ! archive/tar: unknown file mode ?rwxr-xr-x

Full trace at https://dagger.cloud/foodsconnected/traces/9dc2d45b9c7863577eeb2cde73dcd8fa

Error: failed to get value for argument "source": input: moduleSource.resolveDirectoryFromCaller resolve: failed to import local directory module arg: archive/tar: unknown file mode ?rwxr-xr-x

Run 'dagger call load --help' for usage.

Remove the deps folder that contains the symbolic link (I actually removed a couple of others just to see how small a potential load could be, but multiple tests showed it was the files under deps):
fcbry_teamwork_poc on  main [✘!?] via 🐳 desktop-linux via 🐹 v1.23.1
❯ rm -Recurse -Force .\code\deps

fcbry_teamwork_poc on  main [✘!?] via 🐳 desktop-linux via 🐹 v1.23.1
❯ du -ms .
11      .

fcbry_teamwork_poc on  main [✘!?] via 🐳 desktop-linux via 🐹 v1.23.1 took 16s
❯ dagger -m github.com/shykes/git@2d0fc9687fdd48519352bc54418292864389e7d7 call load --source .
✔ connect 0.7s
✔ initialize 0.9s
✔ prepare 0.9s

Full trace at https://dagger.cloud/foodsconnected/traces/1d5597804550848f232167cabfb2dca9

_type: GitRepo

And here's the specific files that were causing this issue:
fcbry_teamwork_poc\code on  main [✘!?] is 📦 v0.1.0 via 💧 v1.17.1 (OTP 27)
❯ stat.exe C:\code\fcbry_teamwork_poc\code\deps\redbug\_build\prod\plugins\hex_core
  File: 'C:\code\fcbry_teamwork_poc\code\deps\redbug\_build\prod\plugins\hex_core' -> 'c:/code/fcbry_teamwork_poc/code/deps/redbug/_build/default/plugins/hex_core'
  Size: 75              Blocks: 8          IO Block: 4096   symbolic link
Device: facf8ea4h/4207906468d   Inode:<PHONE_NUMBER>79784  Links: 4
Access: (0777/lrwxrwxrwx)  Uid: ( 4095/BryanHunt)   Gid: ( 4095/BryanHunt)
Access: 2024-09-23 15:40:47.417895300 +0100
Modify: 2024-09-23 15:40:47.417895300 +0100
Change: 2024-09-23 15:40:47.417895300 +0100

fcbry_teamwork_poc\code on  main [✘!?] is 📦 v0.1.0 via 💧 v1.17.1 (OTP 27)
❯ busybox.exe find . -type l
./deps/redbug/_build/prod/plugins/hex_core
./deps/redbug/_build/prod/plugins/rebar3_hex
./deps/redbug/_build/prod/plugins/verl

Log output
No response

This is going to be very difficult for docker / dagger to fix as it's an issue with/feature of the go archive/tar package itself, I don't even see somewhere to report an issue with that:
https://cs.opensource.google/go/go/+/master:src/archive/tar/common.go;l=678?q="unknown file mode"&ss=go%2Fgo

Put the symlink path to the exclude in dagger.json works for you? Like:
// dagger.json
{
  ...
  "exclude": [
    "path/to/symlink"
  ]
}

exclude

I'm not sure what's going on with at exclude pattern you mention @wingyplus , it seems the exclude system is in a bit of state of flux atm. What I did manage to get working was the following:
{
  "name": "fcbry_teamwork_poc",
  "sdk": "go",
  "source": ".",
  "engineVersion": "v0.13.3",
  "views": [
    {
      "name": "default",
      "patterns": [
        "!.git",
        "!include",
        "!code/deps",
        "!code/_build",
        "!code/.elixir_ls",
        "!code/*.dump"
      ]
    }
  ]
}

dagger call container-find --directory-arg .:default   | busybox egrep "(git|include\/)"

// ContainerEcho returns a container that echoes whatever string argument is provided
func (m *FcbryTeamworkPoc) ContainerFind(ctx context.Context, directoryArg *dagger.Directory) (string, error) {
	return dag.Container().
		From("alpine:latest").
		WithMountedDirectory("/mnt", directoryArg).
		WithWorkdir("/mnt").
		WithExec([]string{"/usr/bin/find", "."}).
		Stdout(ctx)

}

And that seems to be filtering the input correctly.
PS C:\code\fcbry_teamwork_poc> dagger call container-find --directory-arg .:default   | busybox egrep "(git|include\/)"
✔ connect 0.4s
✔ initialize 7.6s
✔ prepare 0.2s
✔ fcbryTeamworkPoc: FcbryTeamworkPoc! 0.0s
✔ FcbryTeamworkPoc.containerFind(
    directoryArg: ✔ ModuleSource.resolveDirectoryFromCaller(path: ".", viewName: "default"): Directory! 0.0s
  ): String! 1.3s

Full trace at https://dagger.cloud/foodsconnected/traces/f432853c759650f680d723d93667e112

./.gitattributes
./.gitignore
./code/.gitignore
./code/apps/fc_teamwork_client/.gitignore
./code/apps/fc_teamwork_ecto/.gitignore
./code/apps/fc_teamwork_cron/.gitignore
./code/apps/fc_teamwork_web/.gitignore

So my problem is fixed for now. It would be handy if it were possible to just have something like a .dockerignore (.daggerignore?) file for those commands like dagger init where there's a pre-existing load of code. I think there is some work going on to exclude everything from the .gitignore by default  #8501 which seems promising....


Handling large values

Hi
I've recently started using owner to configure several of my projects and I had an idea for a small, yet significant feature.
Some systems have to deal with large or long values that are hard to validate at a glance. Say I have something set to happen once a day in a system that measures everything in milliseconds. That means that somewhere I have a parameter set to 86400000. Glancing at this number, it's hard to say whether it's correct, or (for instance) has an extra zero, or some other typo.
A solution I've been using with other configuration frameworks is defining such values as "24 * 60 * 60 * 1000" which is much easier to read as "one day in milliseconds". In the same way  "7 * 24 * 60 * 60 * 1000" is much easier to understand as "a week in milliseconds" compared to just seeing the number 604800000.
Unfortunately owner doesn't seem to be able to parse things like "7 * 24 * 60 * 60 * 1000", so I can't use this scheme (at least without performing explicit conversion in my own code). So it's something I think could be added.

Hi.
I think that adding string evaluation for math expression would sensibly slow down and increase complexity.
BTW, this can be done with something like:
interface MyConfig extends Config {
    @DefaultValue("24 * 60 * 60 * 1000")
    @ConverterClass(EvalConverter.class)
    Long millis();
}

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;

public class EvalConverter implements Converter<Long> {
    public Long convert(Method targetMethod, String text) {
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        return Long.valueOf(engine.eval(text));
    }
}

I've not tried it, but it should work.

For your particular use case, I would recommend you to use strings with time units (like "1w" or "1w 12m" or something like that) instead of raw values - even less thinking than with "24 * 60 * 60 * 1000"
Parsing such Strings is rather simple, it could be done like this: https://gist.github.com/outofrange/913b93bcb34124eea0e1
@lviggiano I think that Owner could provide some more default Converters like your EvalConverter or my TimeStringToMillisConverter (or whatever it should be called...).
Is this the purpose of owner-extras? If so, I could write tests for my converter and add a merge request.

@outofrange owner-extras is for things who are not "core features" that can be pluggable. As well for things who bring transitive dependencies. So, yes, custom loaders, converters, etc. can be added there, and if they don't bring transitive dependencies and are very useful, then we can add to the main owner.jar artifact (owner module).


Standard Realm Client Request Form

The existing issue template
If you have an urgent request, please contact our Product Owner at<EMAIL_ADDRESS>Step 0
Are you the product owner or project admin/team lead?
If not, you will need to ask one of those two people in your organization to make this request for you.
We cannot process realm requests except from individuals in these roles.
Note: This SSO service is undergoing upgrades in 2021 and is currently not recommended for critical applications. Support is currently available only during business hours and only on a best efforts basis. If your application is critical, please contact Web Access Management (WAM) and/or Provincial Identity Information Management Program (IDIM).
Step 1
Are you new to Single Sign-On (Keycloak)?
If so, please indicate that in Step 4, we will setup a meeting with you and your team for an onboarding meeting.
Step 2
Field the following information.

Project Name:

Identity Providers Required

[ ] BCeID Basic
[ ] BCeID Business
[ ] GitHub
[ ] IDIR

Step 3
Field the following information.

Project Name:

Identity Providers Required

[ ] BCeID Basic
[ ] BCeID Business
[ ] GitHub
[ ] IDIR

A list of redirect URLs for each environment (DEV, TEST, PROD). These are the URLs that your application is allowed to use after sign-on events are complete. These are the secure "front door" for your application.

DEV redirect URL(s):
TEST redirect URL(s):
PROD redirect URL(s):

Step 4
For teams requesting access to BCeID, there is an approval process. Please provide the following information on this ticket. The IDIM team will review this information and will be in touch with you at the email provided.
The OCP-SSO team will provision your DEV and TEST clients right away, and your PROD client will be provisioned when the IDIM team approves your request.

Organization Details (Organization/Division/Branch/Program):
Exectutive Sponsor Name, Title, & Email:
Project Manager / Business Lead Name, Title, & Email:
Technical Lead (if applicable) Name, Title, & Email:
Privacy Lead (if applicable) Name, Title, & Email:
Security Lead (if applicable) Name, Title, & Email:
Communications Lead (if applicable) Name, Title, & Email:
Name of service or application:
URL of service or application:
Estimated volume of initial users:
Forecast of anticipated growth over the next three years:
Date of release in production environment:
Date of first use by citizens or end users:

Step 5
Submit this ticket and email us the contact information.
For security purpose, please provide the following contact information to the email address -<EMAIL_ADDRESS>
Email to reach out for On-Boarding meeting invitation:
link to the GitHub ticket you just created:
Product Owner's IDIR name:
Product Owner's Business Email Address:

Please note that we will only start processing your request when the email has been received.


Fix bson load issue that occurs with native mongodb driver workflow.

Note, on a Windows 7 64bit environment, building mongodb fails on bson-ext/ext/index.js stating it cannot load the c++ bson extension. Adding another layer of protection as a failsafe to attempt to require('bson') resolves this issue. If this new condition still fails, then the normal error procedure from bson-ext is still followed, and the flow remains the same.
This is actually a suggested workaround to the issue on numerous mediums. It has been verified by other users on Ubuntu as well.

1.0 changes things around a lot so not relevant anymore


Kai OS support

It seems like this package does not recognize "kai os" systems.

Hi @bartoszboruta!
Is there a way from the userAgent or runtime to detect it?

Hi @jdalton !
Sorry for delay, found something like that:
Mozilla/5.0 (Mobile; LYF/F90M/LYF-F90M-000-02-17-270917; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.0


Re-map code for export to ILS to accommodate change from direct link to blank node in local adminmetadata

When the adminmetadata template was added as a blank node to the instance & work templates, catalogers were very happy (they can now mostly ignore it), but it has caused issues with the local adminmetadata template which is used to entered a Symphony ckey in order to overlay a Symphony record on export. We had been creating a separate local adminmetadata description & linking to it (as we had been with regular adminmetadata), but now that is not possible, since we cannot duplicate a property unless they each go to separate resource templates. So currently record overlay is not possible.
I would like to change the local adminmetadata to a blank node for the following reasons:

The current modeling no longer works unless we remove the blank node adminmetadata template from the instance and work templates. This would be very unpopular among users.
It would make it the same modeling as the regular adminmetadata template & resolve the issue
Having the local template attached to local Stanford templates would increase efficiency on the part of users in data entry & give users a visual cue that a description has been exported

I would also like to change the template being used. Instead of pcc:sinopia:localAdminMetadata it should be stanford:sinopia:localAdminMetadata. Both templates are the same in content; the second has a more logical name.
This issue will also be added to the ILS-Middleware issue list.
Note that this is a blocker to Stanford doing production since we cannot currently export a Sinopia description and overlay a Symphony or FOLIO record.
Should be done in tandem with issue #3464

After thinking about it some more, a different approach to consider.
Changing to a blank node would keep the modeling in line with the general bf:adminMetadata/bf:AdminMetadata, which makes sense. However, I do see that there is an alternative to moving to the blank node. Instead, we could create a local property for adminmetadata that has the express purpose of sending the description to an outside system (here SIRSI & FOLIO). This makes sense in that it is a completely local function of Sinopia and is not useful to share. A ingest process by someone like SVDE could drop that local property more easily.
From the user point of view, if we complete the move to integrating the export button with the ability to add a ckey from Symphony, then this method might also be cleaner & safer (in that its modeling is not dependent on the property being used for other things as well)


OVH DNS Provider and DNS-01 Challenge not working on wildcard subdomains

Describe the bug:
It's a Cert-Manager triggered OVH DNS-Bug: When txt-Records with "_acme.some.domain.com" are created by cert-manager and there is a Wildcard A-Record for "*.domain.com" then "some.domain.com" is not resolving any more as long as TXT-Record for "_acme.some.domain.com" exists. This could be some strange error with truncating and mixing up TXT and A Records.
❯ # created an A-Record: *.test.example.com -> <IP_ADDRESS>
❯ ping some.test.example.com
PING some.test.example.com (<IP_ADDRESS>): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- some.test.example.com ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss

❯ # created an TXT-Record: _acme-challenge.some.test.example.com
❯ dig _acme-challenge.some.test.example.com TXT

; <<>> DiG 9.10.6 <<>> _acme-challenge.some.test.example.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55052
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;_acme-challenge.some.test.example.com. IN TXT

;; ANSWER SECTION:
_acme-challenge.some.test.example.com. 3600 IN TXT "Test"

;; Query time: 31 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Fri Jul 16 13:56:04 CEST 2021
;; MSG SIZE  rcvd: 86

❯ # Ping again
❯ ping some.test.example.com
ping: cannot resolve some.test.example.com: Unknown host

for code blocks of your kubectl output or YAML files.
-->
Expected behaviour:
TXT Records and A-Records should be independent from each other not interfering in some way. The existence of an TXT Record for a subdomain like _acme.some.domain.com should not affect resolvability for some.domain.com, when there is a Wildcard Entry *.domain.com used to resolve some.domain.com.
Steps to reproduce the bug:

Create a Wildcard Subdomain A-Record like: *.test.example.com -> <IP_ADDRESS>
Test to ping some hostname: ping test1.test.example.com -> resolves to <IP_ADDRESS>
Create Ingress with cert-manager annotations for tls host: test1.test.example.com
Test ping again: ping test1.test.example.com -> NOT RESOLVING

What has happened?
Cert-Manager created a TXT-Record for DNS-01 validation: _acme-challenge.test1.test.example.com
Now do a manual test to reproduce:

Manually create a TXT-Record for: _acme-challenge.test2.test.example.com
Try to resolve test2.test.example.com -> Not resolving

Anything else we need to know?:
Environment details::
This is not related to my setup. You can see this behaviour with your OVH DNS Account. Just reporting this here because creating wildcard subdomains for K8S Services is something a lot of people do and cert-manager triggers this behaviour.
Will open a trouble ticket at OVH.
/kind bug

Hi @bit-project-de this seems the same issue as the following https://github.com/jetstack/cert-manager/issues/806#issuecomment-453787144

Hi @bit-project-de this seems the same issue as the following #806 (comment)

Yes it is, closing this here.


Merge pull request #15 from MicrosoftDocs/master

Merge master-live

@namkedia,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed
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.


hash support

When you goto a url with a hash like #page-1 the rest of the content above can't be scrolled and the content below can go past the container.

HI everyone,
I had a similar hash issue but your code doesn't seem to work for me, mainly because of the async loaded comments system which may make the browser jump into the DIV.
I've implemented another way to deal with anchors here:
http://www.gamalto.com/documentation/
The main idea here is to always have a #_top anchor at the top of the scrolling region so that we can always return to the real top of this DIV (not the one computed by iScroll whoch may be roken be cause of the anchor jump). Also, the href# selector is slightly different to handle different anchor cases.
The script is here (you should of ccourse remove all the theme related stuff):
http://www.gamalto.com/documentation/scripts/gamalto.js
Hope this helps.
Chris


Statically Linked version of zlib.dll / librdkafka.dll

I get the NuGet package and found that the zlib.dll is not statically linked to the runtime.

This involves an extra runtime on deployment.  Can we use a statically linked version of zlib.dll in the NuGet package?
Or even better,  statically link to the zlib in librdkafka.dll to avoid the extra dependency on zlib.dll.

Yes, that'd be really nice and make it easier to use.
This build is done with https://github.com/ah-/librdkafka-build, want to give it a go? I'd love to merge a PR.

PR is created here : https://github.com/ah-/librdkafka-build/pull/1
Please have some test, if everything is ok. Could you please update NuGet package?


healthcheck: make sure chain backend has enough outbound peers

Change Description
Closes #8487
Steps to Test
Steps for reviewers to follow to test the change.
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[ ] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[ ] Commits follow the Ideal Git Commit Structure.
[ ] Any new logging statements use an appropriate subsystem and logging level.
[ ] Any new lncli commands have appropriate tags in the comments for the rpc in the proto file.
[ ]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

@guggero Is it ready to be merged?


NFT Market: Sorts and Filters

Create logic for filtering nfts within of a collection
Create logic for filtering nfts within a user profile
remove live auctions tab from collections

Create sort logic for nfts sorting within a collection
Create sort logic for nfts within a user profile


Small Theme Tweaks

Here are few things that I want changed.
Hover over the line numbers while debugging:

Non project files

You changed these in one spot, do it for the rest.

 ddlc-jetbrains-theme Small Theme Tweaks

Moar Readable


Added a/b test for language on Donation banner

Fixes

Fixes #1233 by @annatuma
Description

Add a/b test for donation banner language. Currently the banner says "If you donate $5 today, and everyone else does the same, we can keep growing our database of freely reusable content. For you. For all of us.". The test version is "Only 1% of people reading this will donate. Be one of them and help us sustain CC Search."
Technical details

Previously, a/b tests were initialized in the clientEntry.js. After the Nuxt migration, we no longer have clientEntry.js. I added initialization of a/b tests to the index.vue page. If there's a better place for it, I will fix it.
The ab experiments are added to store asynchronously, so when the page loads, the store doesn't have experiments in it. This is why I watch the store for mutations to a/b experiment data, and update the donation text when it loads.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@obulat This is great. Last thing, the a/b test needs to convert when the donate button is clicked. This is how we determine which language is more effective. You can see an example of the dispatch for a na/b conversion here https://github.com/creativecommons/cccatalog-frontend/blob/fd4bdb7297cc1ba81c56aa2d21b6e4062e1acfbf/src/store/abtest-store.js and here https://github.com/creativecommons/cccatalog-frontend/blob/fd4bdb7297cc1ba81c56aa2d21b6e4062e1acfbf/src/store/filter-store.js#L96

I added the conversion, and also changed keyboard event handling a little bit:
@click event on a button automatically handles the keyboard Enter and space presses as well. Or, to be more precise, pressing Enter or space when a button is focused triggers a 'click' event, which is handled by the @click handler. This is why I removed the keypress handling.
The 'vue-a11y' plugin shows this as an error, however there's an issue about this . It seems that the plugin development has stopped 17 months ago, and there is an alternative plugin (eslint-plugin-vuejs-accessibility) worth considering.
Because our 'Donate' button is actually an a link element, its 'click' event is also triggered when user presses Enter key when it is focused. This is why I removed onkeypress handler. However, a link does not handle pressing space natively or using vue directives.


iOS TextField, Incorrect "fast delete" mode behavior

Describe the bug
When you enter a long text in TextField and than press and hold backspace button on a phone keyboard, it first deletes symbols by one, and then starts to delete them by two.
This differs from the standard iOS behavior (see attached videos). In "fast delete" mode it removes the content splitting it by whitespaces or newlines. Probably there's also a more advanced behavior, but I haven't found it yet.
Affected platforms

iOS

Versions

Compose Multiplatform version: 1.4.0-rc1

Video
https://user-images.githubusercontent.com/3955262/230163037-d38ac148-06a1-4d8e-a98a-3b71f63dce62.MP4
https://user-images.githubusercontent.com/3955262/230163068-d22674e9-b9d4-4900-ab44-2c03be8a4ed5.MP4
https://user-images.githubusercontent.com/3955262/230163074-f2fe0437-718e-483f-b82c-049eb4044c5a.MP4

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Build OLM bundle and index on releases

What does this PR do?
Adds steps to make-release.sh to automatically build and push a suitable bundle + index image to quay.
Detailed changes:

Generate relatedImages in the CSV
Update opm to v1.19.1
Switch upstream bundle + index build to use a file-based catalog, introduced in opm v1.19.0

This requires storing additional metadata files in the repo and adds a couple of manual steps to the release process

Build one index for releases that gets updated and includes update paths from previous releases.

What issues does this PR fix or reference?
This allows us to release an upstream index + bundle for the operator.
Is it tested? How?
# Set these env vars to avoid pushing to main repos
export DWO_QUAY_REPO="quay.io/amisevsk/devworkspace-controller-test"
export PROJECT_CLONE_QUAY_REPO="quay.io/amisevsk/project-clone-test"
export DWO_BUNDLE_QUAY_REPO="quay.io/amisevsk/devworkspace-operator-bundle-test"
export DWO_INDEX_IMAGE="quay.io/amisevsk/devworkspace-operator-index-test:release"

# Setup local repo with dummy "remote" to avoid pushing changes to GitHub
cd $(mktemp -d)
git clone git@github.com:amisevsk/devworkspace-operator
mkdir devworkspace-upstream
cd devworkspace-upstream && git init --bare
cd ../devworkspace-operator

# Merge this PR to main
git merge origin/build-bundle-release
git remote set-url origin ../devworkspace-upstream
git push origin main

# Do prerelease for v0.11.0
./make-release.sh --prerelease --version v0.11.0
git checkout 0.11.x

# Manually add `replaces` field to CSV (required)
yq -Yi '.spec.replaces = "devworkspace-operator.v0.10.0"' \
  deploy/templates/components/csv/clusterserviceversion.yaml \
  deploy/bundle/manifests/devworkspace-operator.clusterserviceversion.yaml
git commit -am 'add .spec.replaces to CSV'

# Release v0.11.0
./make-release.sh --release --version v0.11.0

Once complete, check the commits in main and 0.11.x to ensure fields/versions/images are set correctly.
A built index for a fake v0.11.1 release is available at https://quay.io/repository/amisevsk/devworkspace-operator-index-test; I haven't fully tested installing/upgrading the operator using it yet, but will do that next week.
PR Checklist

[ ] E2E tests pass (when PR is ready, comment /test v8-devworkspace-operator-e2e, v8-che-happy-path to trigger)

[ ] v8-devworkspace-operator-e2e: DevWorkspace e2e test
[ ] v8-che-happy-path: Happy path for verification integration with Che

/test v8-devworkspace-operator-e2e, v8-che-happy-path

Holding off on merging this as I tested the built index and, while it appears correct on the cluster no Operators are listed inside of it.

Blocked as changes in https://github.com/operator-framework/operator-registry/pull/807 are required in opm for the index image to function correctly. These changes haven't been propagated to a release yet and are unavailable.

/test v8-devworkspace-operator-e2e, v8-che-happy-path
Reworked to use the old way (opm index add ...) for now. Tested the latest commit (with an index built the old way) and it works properly. Image is quay.io/amisevsk/devworkspace-operator-index-test:release  (same as previous).

Testing the catalog with the new image:
oc new-project devworkspace-operator-test
cat <<EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: dwo-test
EOF

cat <<EOF | oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: custom-devworkspace-operator-catalog
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: quay.io/amisevsk/devworkspace-operator-index-test:release
  publisher: Red Hat
  displayName: DevWorkspace Operator Catalog
EOF

cat <<EOF | oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: devworkspace-operator
spec:
  channel: fast
  name: devworkspace-operator
  source: custom-devworkspace-operator-catalog
  sourceNamespace: openshift-marketplace
  installPlanApproval: Manual
  startingCSV: devworkspace-operator.v0.10.0
EOF

Then, approve the v0.10.0 install (which will install the actual v0.10.0 release), test that DWO works correctly, approve the v0.11.0 install (built from current master) and test that DWO upgrades smoothly and continues to work.
In testing this myself, I noticed that my running DevWorkspace was restarted; it's unclear why at the moment.

/retest
looks like a cluster-level failure.

/retest

/retest

/retest

/test v8-devworkspace-operator-e2e, v8-che-happy-path

/retest

/retest

/retest

/test v8-devworkspace-operator-e2e

/test v8-devworkspace-operator-e2e


Better shows git error message.

Summary
When the repo is on Github, it may have turned on the email protection, which returns error when the receipt uses a clear email address. Without error message, it is quite hard to figure out why.
Steps To Reproduce
Choose my personal gmail "for password store git config", pushing would fail with exit status 1.
Using the<EMAIL_ADDRESS>it worked.
Expected behavior
Pushing succeeds.
Environment

OS: Archlinux
OS version: 5.1.15-arch1-1-ARCH
gopass Version: 1.8.5-git+HEAD
Installation method: via go command

We could improve how we propagate Git error messages, but I don't understand the actual problem.
Which kind of "email protection" are you talking about?
If have properly setup SSH auth w/ GitHub your email shouldn't matter.

"Personal settings" -> "Emails" -> "Block command line pushes that expose my email". With this option on, when I use my actual email (registered in Github) in password-store, git push will be denied with certain error prompting this case.


simplify appveyor

It seems appveyor has been upgraded to have go 1.7.1 out-of-box.
so this patch simplifies appveyor.yml to remove the custom "install go 1.7" build step. should speed up CI by a few seconds

Nice!


Order bug

The following is an example provided by @eobr007 .
X := SmallGroups (3^6);
Y := [x : x in X | pClass (x) eq 2 and Exponent (x) eq 3 and Genus
(x) le 2]\
;
#Y;
6
for i in [1..#Y] do
for> A := TGAutomorphismGroup (Y[i]);
for> i;
for> end for;
1
2
3
4   //also fails for 5

TGAutomorphismGroup(
    G: GrpPC
)
__TameGenusAutomorphism(
    G: GrpPC
)
TGPseudoIsometryGroup(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...
)
In file "/home/eobr007/Stabiliser/TameGenus/src/PIsomGroup.m", line 381,
column
30:
>     ORD *:= Factorization(#K)^(dims_t_nd[1]*d_rad - d_rad^2);
                                ^
Runtime error in '^': Exponent must be non-negative

debug>

I recall this bug a while ago and thought I addressed it. I haven't reproduced this yet, but it is familiar. The expression in the exponent is incorrect if I remember correctly.
ORD *:= Factorization(#K)^(dims_t_nd[1]*d_rad - d_rad^2);

This issue has been fixed on test branch.


[ko] Translate docs/tasks/configure-pod-container/configure-runasusername

This is a Feature Request
Translate docs/tasks/configure-pod-container/configure-runasusername in Korean
What would you like to be added
Translate docs/tasks/configure-pod-container/configure-runasusername in Korean
Why is this needed
No  Translation yet.
Comments

https://kubernetes.io/docs/tasks/configure-pod-container/configure-runasusername/

triage/accepted

/language ko
/assign

/triage accepted

/close


train PairedImageDataset on fivek

I follow here  to use your code to train PairedImageDataset on fivek . After 20000 iters, I check the training results and find the phenomenon of "over exposure" (as shown in the figure below, the right is the input, the middle is the prediction result, and the left is GT). All training super parameters are the default configuration in your code. Can you help to guide me on how to reduce the "over exposure"? thanks a lot.

Hi
I have replied your email several days ago (you send me the same figure and the same question). Please try to remove or decrease the weight of the Discriminator loss when you use paired training data. Thanks.

Hi
I have replied your email several days ago (you send me the same figure and the same question). Please try to remove or decrease the weight of the Discriminator loss when you use paired training data. Thanks.

Thanks for your quick reply. Sorry, I didn't receive the email (maybe system error^_^), so I'm asking here. OK, I will follow your suggestion to try. Thanks again.

Hi, according to your guidance, I removed GAN loss and only used pixel loss (MSE constraint), which looks good. Thank you very much.


[DNM] testing for PR#89

Testing the changes of PR#89. Maybe the secrets in the GitHub repository can not be used for PRs that update the workflow from other forks?

Tests are running successfully, #89 is ready to be merged.


WIP: refactor(warthog): monorepo

WIP: This is a work in progress!
Summary
This pull request is a proposal to split Warthog's codebase into cli, core and server-express packages.
Problem
I want to use Warthog's codegen and Model abstraction in a serverless environment - namely, inside Lambda functions. However, the framework is currently coupled with Express.js. There are alternatives, like aws-serverless-express, that allows me to use Express inside Lambda functions, but they don't feel right for brand new serverless projects.
Current Warthog distribution also includes a ton of dependencies that don't actually need to be packaged and shipped to Lambda, because they are not used at runtime - eg.: gluegun for cli/warthog bin; dotenvi bundle is huge and is only needed to load environment variables - which can be configured via CI. This unnecessarily increases the size of the package and makes the deploy/update much slower than it would be otherwise.
Solution
If Warthog's code was split, one would be able to use only its core logic - eg.: Model abstraction - and develop a custom server. The custom server could be a Lambda handler or a NestJS module, for example.
To validate this idea, I've created three sub-packages:

@warthog/core contains the framework's main logic (decorators and codegen), but it is now decoupled from Express
@warthog/server-express has all the Express server logic
@warthog/cli is the CLI

I am using lerna to manage the project's packages. I was able to successfully run a Lambda function powered by Warthog, with a custom server implementation, as a proof of concept. All existing tests are running fine.
ToDo
Everything seems to be working fine, but there is still some work to be done:

[ ] Fix Jest's configuration for monorepo (currently running independently for each package)
[ ] Adjust the CI pipeline to handle multiple packages distribution
[ ] Fix some problems in typings (eg.: BooleanField and JsonField) and examples (need to validate if it was the monorepo migration that caused it)

With that being said, a monorepo structure is definitely challenging to manage and I'm not sure if this is what you guys want for this project. I would be happy to make any changes you deem necessary and submit a final pull request depending of your feedback.
Oh, and thanks for this awesome piece of work that is Warthog 😊
Closes #147

Hey, thanks for putting so much time into this PR! I've been thinking about moving to a monorepo and your approach seems sane. I'd ask a few things:

Can you clean up the diff to make it as small as possible? A few things you can do is try to get our prettier settings to match and make sure files are moved via "git mv" Instead of deleting and recreating.
Also, it seems like you've moved some other things around - like package.json settings into rc files. Can you comment on why this was necessary?
For any other non-obvious changes, can you comment as to why they're necessary?

I've added some other preliminary comments, but there is a lot of noise more with such a huge diff. Once you clean the diff up I’m happy to do a deeper dive.
Thanks again!

Also, if your use case is open source I’d love to check it out.

Hey, thanks for putting so much time into this PR! I've been thinking about moving to a monorepo and your approach seems sane. I'd ask a few things:

Hey! I'm happy to hear that you are thinking about moving to a monorepo. This would have made my work a little bit easier 😄. My intention with this draft PR was to know if you would like to move to a monorepo structure - didn't want to spend more time on it otherwise.

Can you clean up the diff to make it as small as possible? A few things you can do is try to get our prettier settings to match and make sure files are moved via "git mv" Instead of deleting and recreating.

I've kept prettier configs the same. Prettier changes seems to have caused this issue, sorry for that - explanation here. I've fixed the whitespace-only differences, but sadly git mv wouldn't help here, since it is just a shortcut to mv + git add (the files are still going to appear in the diff as renamed without changes).
Most of the diff now relates to file path changes to support the monorepo structure. I'm afraid there isn't a way around it. I also had to recreate the generated code of the examples and looks like some them were not up to date and/or broken, which also increased the diff.

Also, it seems like you've moved some other things around - like package.json settings into rc files. Can you comment on why this was necessary?

Yes, explanation here. TL;DR it makes sense to have a base config and be able to extend from it when you are inside a monorepo. I must add, however, that this is optional. I can move most of the configs back to package.json if you wish.

For any other non-obvious changes, can you comment as to why they're necessary?

Sure! How do you prefer to do it? I can create discussions in the files/diff, explain key points here in a simple comment or get in touch with you via something like Gitter.

I've added some other preliminary comments, but there is a lot of noise more with such a huge diff. Once you clean the diff up I’m happy to do a deeper dive.
Thanks again!

Thank you for this awesome piece of software!

@thiagozf - did you see my PR into your branch?
https://github.com/thiagozf/warthog/pull/1
You should pull this in and it’ll get things pretty close.

Hey @goldcaddy77. Sorry for the late reply, last couple of days were tough. I plan get back to work on this next weekend. In the meantime, I've merged your PR.

Great, thanks - looking forward to getting this merged. We should discuss whether this should be in an alpha branch for Warthog V3 since it will be a breaking change.

Hey, I’ve merged version 2.0 and want to get another beta version for V3 with the monorepo changes. What is your availability like in the next few weeks?

@thiagozf do you mind if I pick this work up where you left off once I start working on 3.0?

Just started reviewing :)


Read dll from source instead of disk?

Hey, I wonder if it would be possible using your project to manual map from source rather than "ifstreaming" the dll from disk.
I tried it the following way but had some issues:

Imported the Dll into HxD and exported it as C.
export looks like this: char rawData[2785280] = { 0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, ... };
Added export as dlldata.h to the Project
replaced the following code:
std::ifstream File(dllPath, std::ios::binary | std::ios::ate);
with
std::ifstream File(rawData, std::ios::binary);

Result: got an error at if (File.fail()) "Opening the file failed:"
So I changed it from std::ifstream to std::istringstream, also had to change it to:
auto FileSize = sizeof(rawData);.
This almost works but I get an error in Injector.cpp saying "Invalid platform" now.
So now I've reached a point where I don't know what to do next. Would be great if you could help me out as I'm almost finished but cant get it fully working.
Thank you very much.

Just remove File stuff and use directly your raw data, why you want to make it more complex:
https://github.com/TheCruZ/Simple-Manual-Map-Injector/blob/9415b04989d16a204930b4e81633287387a6024d/Manual Map Injector/main.cpp#L122
BYTE * pSrcData = (BYTE*)rawData;
https://github.com/TheCruZ/Simple-Manual-Map-Injector/blob/9415b04989d16a204930b4e81633287387a6024d/Manual Map Injector/main.cpp#L115
auto FileSize = sizeof(rawData);
Delete this https://github.com/TheCruZ/Simple-Manual-Map-Injector/blob/9415b04989d16a204930b4e81633287387a6024d/Manual Map Injector/main.cpp#L107


Fix crash on ios.

not sure why exactly failure::Error::from() caused some crash on ios, but since failure has been deprecated for a while updated to thiserror.

ah realized that the place where the crash originated is not even visible in the PR. the crash happened on this line, when failure::Error::from was called. since I'm writing an ios app on a linux machine, the debugging experience is a bit poor so I can't tell you exactly what happened.

[0] https://github.com/piderman314/bardecoder/blob/master/src/decoder.rs#L43

but here is a screenshot of a qrcode scanned with bardecoder on ios

Hey, I had a look and it turns out you forgot to replace a use failure::Error; in image_tests.rs. Can you please fix that? I also updated master with a Github Actions build file and some clippy fixes so please merge that into your branch before continuing.

Alright, thanks for the PR. I have merged it and published a 0.4.0 version to crates.io .


Rate Limiter Queue getting clogged and doesn't finish processing requests

Bug Report
Code
If I do it like that, and add them all asynchronously, it just stalls in the queue.
for(let user of this.users){
      twitchClient.users.getFollowsPaginated({followedUser:user}).getTotalCount()
        .then((followCount)=>{
          userFollowCounts[user.id] = followCount;
          userFollowCountProcessed++;
        });
    }

If I do this, they all process
for(let user of this.users){
      let followCount = await twitchClient.users.getFollowsPaginated({followedUser:user}).getTotalCount();
      userFollowCounts[user.id] = followCount;
      userFollowCountProcessed++;
    }

The rate limiter debug shows the proper amount of requests. It processed 20, and had 38 left in the queue, but never finished the 58 requests I put into the queue.
[2021-08-17T23:47:25.717Z] 🐞 rate-limiter DEBUG remaining requests: 0
NodeLogger.mjs:99 [2021-08-17T23:47:25.718Z] 🐞 rate-limiter DEBUG doing 1 requests, new queue length is 33
NodeLogger.mjs:99 [2021-08-17T23:47:25.990Z] 🐞 rate-limiter DEBUG remaining requests: 0
NodeLogger.mjs:99 [2021-08-17T23:47:25.991Z] 🐞 rate-limiter DEBUG doing 1 requests, new queue length is 36
NodeLogger.mjs:99 [2021-08-17T23:47:26.230Z] 🐞 rate-limiter DEBUG remaining requests: 0
NodeLogger.mjs:99 [2021-08-17T23:47:26.230Z] 🐞 rate-limiter DEBUG doing 1 requests, new queue length is 38

Expected behavior
If there are still items in the queue, it should always finish processing if/when the rate limits are available for Helix.
Actual Behavior
After a certain amount of items added to the queue in quick succession, it stalls the queue.
Environment
Tested in both Node and Browser:

Version: 5.0.0-pre.15
Node version: 14
Browser version: Chrome
Operating system: Windows 10

I can't reproduce this, but I think my environment is just to slow to exhibit this behavior.
I updated the @d-fischer/rate-limiter package to include some trace logs. Please deep upgrade your project, set the log level to trace and post the relevant log statements here.

I updated the packages, and I am still getting the same thing
There are 58 requests I am trying to process, and it is pulling 17 of them, and 39 are staying in the queue
[2021-09-06T16:12:42.718Z] 🐞 rate-limiter DEBUG Remaining requests: 0
NodeLogger.mjs:99 [2021-09-06T16:12:42.718Z] 🐞 rate-limiter DEBUG Doing 1 requests, new queue length is 33
NodeLogger.mjs:99 [2021-09-06T16:12:42.942Z] 🐞 rate-limiter DEBUG Remaining requests: 0
NodeLogger.mjs:99 [2021-09-06T16:12:42.942Z] 🐞 rate-limiter DEBUG Doing 1 requests, new queue length is 35
NodeLogger.mjs:99 [2021-09-06T16:12:43.171Z] 🐞 rate-limiter DEBUG Remaining requests: 0
NodeLogger.mjs:99 [2021-09-06T16:12:43.172Z] 🐞 rate-limiter DEBUG Doing 1 requests, new queue length is 37
NodeLogger.mjs:99 [2021-09-06T16:12:43.398Z] 🐞 rate-limiter DEBUG Remaining requests: 0
NodeLogger.mjs:99 [2021-09-06T16:12:43.398Z] 🐞 rate-limiter DEBUG Doing 1 requests, new queue length is 39
The function I am running. I have it inside a bigger class, so I took out some shared globals, but it should work. I have my twitch client on a global, not as a parameter like I put below, but makes it easier to reproduce.
async getFollowers(userName:string, twitchClient:ApiClient){
let users = [];
let userFollowCounts = {};
let userFollowCountProcessed = 0;
const channel:HelixUser = await twitchClient.users.getUserByName(userName);
let userID = channel.id;
let request = twitchClient.users.getFollowsPaginated({followedUser:channel});
let followCount = await request.getTotalCount();
let follows = await request.getAll();
let userIds = follows.map(follow=>follow.userId);
users = await twitchClient.users.getUsersByIds(userIds);
for(let user of users){
twitchClient.users.getFollowsPaginated({followedUser:user}).getTotalCount()
.then((followCount)=>{
userFollowCounts[user.id] = followCount;
userFollowCountProcessed++;
});
}
}

I am aware that nothing was fixed.
As I said, I could not reproduce anything, so I only added trace logs, for which you need to change the log level to trace.

I read trace but it didn't actually click in my head to change it off debug.... Here is the stack trace.
localhost-1630946147205.log

Please work with me to get this fixed properly as I am still unable to reproduce anything even after understanding where it fails.

Clone https://github.com/d-fischer/rate-limiter
Check out the clogging-fix branch
Run yarn && yarn build && yarn link in the project
Run yarn link @d-fischer/rate-limiter in your own project
Repeat your tests
No matter whether your problem is fixed or not, please send trace logs again.

This did not fix it. It only ran 1 of the queries, then just stopped.
localhost-1631633174094.log

NodeLogger.mjs:99 [2021-09-14T15:24:52.508Z] 🐾 rate-limiter TRACE runNextBatch delayed now:1631633092508 reset:0 delay:-1631633092508

Guess I failed at delaying here - this timer probably never runs. Will try fixing it in the next few days.

Worked around in the latest prereleases (5.2.0-pre.4, commit 81c870a) by switching to a time-based rate limiter.
Will revert that change when Twitch improves their CORS headers.


[question]no ep_rewmean, eplenmean displayed, I don't know why

Describe the bug
when run my program,the fallowing displayed, but no ep_rewmean, eplenmean displayed, I don't know why
//-------------------------------------
| approxkl           | 0.0          |
| clipfrac           | 0.0          |
| explained_variance | -5.96e-07    |
| fps                | 49           |
| nupdates           | 77746        |
| policy_entropy     | 6.521396e-05 |
| policy_loss        | 0.0          |
| serial_timesteps   | 2487872      |
| time_elapsed       | 4.58e+04     |
| total_timesteps    | 1166190      |
| value_loss         | 278.51614    |
//-------------------------------------
Code example
model = PPO2(MlpLstmPolicy, train_env,n_steps=32, nminibatches=1,lam=0.95, gamma=0.99, noptepochs=15,
vf_coef = 0.0001,ent_coef=0.0001,learning_rate=0.00005,cliprange=0.2,verbose=1,
tensorboard_log="./tensorboard/")
System Info
Describe the characteristic of your environment:

Describe how the library was installed (pip, docker, source, ...)
pip
GPU models and configuration
gpu
Python version
3.6
Tensorflow version
1.13
Versions of any other relevant libraries

Additional context
the ep_rewmean also not displayed in tensorboard, I also want the ep_rewmean displayed in tensorboard. Could you know if there is any way?

Hello,
the questions are already answered here:
https://github.com/hill-a/stable-baselines/issues/24 https://github.com/hill-a/stable-baselines/issues/175 and https://github.com/hill-a/stable-baselines/issues/294
Anyway, we should update the documentation to be clearer.


fix(dump) address free mode workaround regression

I goofed checking 8254879 and only confirmed the negative case :facepalm:
We don't want this to happen if the mTLS auth credentials endpoint is available:
$ /tmp/main-deck dump -o main.yaml
panic: interface conversion: error is nil, not *kong.APIError

goroutine 36 [running]:
github.com/kong/deck/dump.GetAllMTLSAuths(0xc80cb8, 0xc000139240, 0xc000172400, 0xf592b0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/home/traines/src/deck/dump/dump.go:671 +0x5b5
github.com/kong/deck/dump.getConsumerConfiguration.func8(0x0, 0x0)
	/home/traines/src/deck/dump/dump.go:128 +0xef
golang.org/x/sync/errgroup.(*Group).Go.func1(0xc0001dd2c0, 0xc000142f50)
	/home/traines/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57 +0x85
created by golang.org/x/sync/errgroup.(*Group).Go
	/home/traines/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:54 +0x6b
10:16:08-0700 yagody $ /tmp/329-deck dump -o 329.yaml
panic: interface conversion: error is nil, not *kong.APIError

Codecov Report

Merging #335 (5045caf) into main (6ede1a8) will not change coverage.
The diff coverage is 0.00%.

:exclamation: Current head 5045caf differs from pull request most recent head d4b7649. Consider uploading reports for the commit d4b7649 to get more accurate results

@@           Coverage Diff           @@
##             main     #335   +/-   ##
=======================================
  Coverage   52.58%   52.58%
=======================================
  Files          60       60
  Lines        4874     4874
=======================================
  Hits         2563     2563
  Misses       2013     2013
  Partials      298      298

Impacted Files
Coverage Δ

cmd/konnect_dump.go
27.08% <0.00%> (ø)

dump/dump.go
1.56% <0.00%> (ø)

file/types.go
43.43% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6ede1a8...d4b7649. Read the comment docs.


IP Theft

https://www.tdn.tn/webtech/js-micro-check-library/
All they did was zip your files up and offer them for download on their site.

Thanks @k3n Contacted with them.
Actually I don't really mind the IP side of situation so much. Providing a static version of the library doesn't look like a healthy choice though.


Updating manual parser tests.

It will no longer fetch the same repository twice. Additionally, we will now use the configuration files that are present.

Codecov Report

Merging #90 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #90   +/-   ##
=======================================
  Coverage   95.22%   95.22%
=======================================
  Files         102      102
  Lines         943      943
=======================================
  Hits          898      898
  Misses         45       45

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 21add17...0e59a41. Read the comment docs.


feat: add CORS to SecurityPolicy

What this PR does:

Adds CORS to SecurityPolicy.
Follow Golang name convention to rename  IR type "Cors" to "CORS"

Relate issues:

https://github.com/envoyproxy/gateway/issues/1845
https://github.com/envoyproxy/gateway/issues/567

Related PRs:

https://github.com/envoyproxy/gateway/pull/1957
https://github.com/envoyproxy/gateway/pull/2016

BTW, the string match types are a bit messy. They're defined in multiple APIs but look similar. For most of EG APIs(Ratelimit and CORS for now, more in the future), the match types are just used to represent the StringMatcher XDS API. I think we can have one common string match structure used by all the EG APIs. I would like to raise a PR to refactor it if it makes sense.

looking good @zhaohuabing ! added some comments

Need to retrigger the coverage-test.

/retest


Incorrect Style/SafeNavigation autofix with ! and method chain

Hi, I found a problem similar to #4745.
rubocop -a fixes Style/SafeNavigation error incorrectly.
Sample code (sample.rb):
# frozen_string_literal: true

def decorate(value)
  return value unless value && !value.downcase.include?('decorated')
  "decorated #{value}"
end

Expected behavior
rubocop -a sample.rb does nothing. In this case decorate(nil) returns nil.
Actual behavior
It fixes the code like below:
# frozen_string_literal: true

def decorate(value)
  return value if value&.downcase&.include?('decorated')
  "decorated #{value}"
end

This changes the decorate method behavior. Now decorate(nil) returns "decorated " instead of nil.
Steps to reproduce the problem
Run rubocop -a sample.rb using this .rubocop.yml:
AllCops:
  TargetRubyVersion: 2.4

RuboCop version
$ rubocop -V
0.50.0 (using Parser <IP_ADDRESS>, running on ruby 2.4.1 x86_64-darwin16)

I also checked using the latest commit 3920afac but it still happened.
However the latest commit version does nothing If .downcase does not exist.

This will be fixed in the next release through #4752. 🙂

There's a change in #4752, that will prevent the cop from doing anything on a negated expression.
We could potentially try to do the suggested correction, but I think it opens up a lot of edge cases and will force more complexity (it's already pretty bad) into the cop.

Right, it seems difficult to implement the Style/SafeNavigation cop perfectly 😓
I tried to fix the cop and solved the above problem. https://github.com/ryym/rubocop/commit/84d64f769b8bdc6a070218b1e58fa29d8de7a59c
but I'm not confident that this fix could handle all negated expressions properly, and that it does not affect other cases.

Fixed in #4752 and #4749.

Thank you 🎉


Upgrade/800/logical interconnect

Description
Upgraded Logical Interconnect resource module to support OneView API version 800
Check List

[x] New functionality includes testing.

[x] All tests pass. ($ ./build.sh).

[ ] New functionality has been documented in the README if applicable.

[x] New functionality has been thoroughly documented in the examples (please include helpful comments).

@madhav-bharadwaj , Worked on the comments, please have a look.


Engine don't compile

Describe your problem here.
I downloaded the engine this afternoon, added a few sprites and xml's and tried to compile but when i try to compile it gives me this error:
source/Song.hx:64: characters 27-41 : Array access is not allowed on {+ length : Int }
Pls help me.
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
no i only added a few sprites

Try updating Haxe AND STOP MAKING DUPLICITES OMG

Duplicate of https://github.com/ShadowMario/FNF-PsychEngine/issues/2049, https://github.com/ShadowMario/FNF-PsychEngine/issues/2038, https://github.com/ShadowMario/FNF-PsychEngine/issues/2028, https://github.com/ShadowMario/FNF-PsychEngine/issues/2027, https://github.com/ShadowMario/FNF-PsychEngine/issues/2026, https://github.com/ShadowMario/FNF-PsychEngine/issues/2024
Don't use the source code on Github's release, use the main repo.

sorry if it spammed idk why, i shutted down my PC after I send the issue.


Omega Station

This will phase Atlas out of rotation and replace it with Omega. Atlas was mainly just a test to put in a goon map and see how it played. Omega Station is a low pop map with a squarish shape. It was made by Okand37, the creator of delta station. It is currently defunct in ss13 but a couple servers still maintain their own versions of it. I used several versions of this map for inspiration and also redid some departments from scratch, like med, sci, and engi. It has a north side bridge and a center service area. It has a maximum of 35 players. The bulk of the station occupies about a 100x100 space. It is similar size to moose and saltern.  Thank you for reading. There are no guns of any sort mapped currently so it does not conflict with the ongoing gun refactor.
here is an ms paint render:

some candid photos since i cannot render:

to all coders. yes power on omega starts instantly in arrivals. no i dont know why it doesnt on some othermaps

This will phase Atlas out of rotation

It's sad to see Atlas go away, I liked it. Also in Progress Report #34 (the newest as of right now) It's mentioned being added, so it's a small amount of time to see it go away.

atlas has some problems that i need to figure out so id rather spend the time maintaining other maps and putting it on the backburner for now. needless to say i dont plan on having it gone forever

thanks moony, sad to see decals no worky on it

this is giving me conflicts and is annoying so im just remaking


Simple event handling

Purpose
Find events after a full stepp triggered one, stop the simulation and update the discrete variableas and restart simulation.
Changes

Detect switching event indicator correclty and start event handling after completed step.
Start event iteration and update states/ derivatives
Restart simulaton after event
New file src/EventHandling.jl for everything regarding events
Moved findEvent, arrayDiffSign and eventIteration to new file src/EventHandling.jl

Why does the test fail for /home/travis/build/AnHeuermann/JuliaFMI/test/fmi-cross-check/fmus/2.0/me/linux64/JModelica.org/1.15/ControlledTemperature/ControlledTemperature.fmu even on Julia 1.0.5.
Is the only working version now Julia 1.2??


Output binding should break events into batches before flushing.

If the output binding gets too many events added to it, it can result in the exception The maximum size (1536000) has been exceeded from EventGrid. The output binding should be able to break this up and Flush in batches.

Label prediction was below confidence level 0.6 for Model:CategoryLabels: 'Client:0.539298,Mgmt:0.24787387,Service:0.19938183'

//fyi: @JoshLove-msft  - this got mislabeled as Event Hubs.

We ran into this issue with a function that sends out multiple events.
What's the recommended workaround?

I need this feature and can implement this.
@JoshLove-msft This will require serializing the message inside the 'AddAsync' method instead of lazily in the 'FlushAsync' method so we can track the total size of the batch when a message is added. This means AddAsync may start throwing exceptions that originally would have only been thrown from FlushAsync. Is that an acceptable change?

@es-alt I've wrapped my collector in a custom class which tracks the batch size and flushes automatically before the batch exceeds the maximum size. This class is heavily coupled to the knowledge of how the events are serialized, e.g. adding two bytes for the array brackets and a byte for every comma. I checked the sdk source code to confirm events are not serialized with whitespace when they are published but if that changes in the future then this code would break.
/// <summary>
/// A wrapper around the default EventGrid collector which properly handles
/// flushing automatically when the accumulated batch of events reaches the
/// maximum batch size.
/// </summary>
internal class CloudEventCollector : IAsyncCollector<CloudEvent>
{
    private const int MaximumBatchSize = 1500 * 1024;

    private readonly IAsyncCollector<CloudEvent> _collector;

    // Include 2 bytes for the opening and closing square brackets []
    private int _batchSize = 2;

    /// <summary>
    /// Creates a new instance which wraps the given
    /// <see cref="IAsyncCollector{T}"/> and flushes automatically when the
    /// accumulated batch of events reaches the maximum batch size.
    /// </summary>
    /// <param name="collector">The collector to wrap.</param>
    public CloudEventCollector(IAsyncCollector<CloudEvent> collector) => _collector = collector;

    /// <inheritdoc />
    public async Task AddAsync(CloudEvent cloudEvent, CancellationToken cancellationToken)
    {
        var serialized = JsonSerializer.Serialize(cloudEvent);
        if (_batchSize + serialized.Length > MaximumBatchSize)
        {
            await _collector.FlushAsync(cancellationToken).ConfigureAwait(false);
            _batchSize = 2;
        }

        await _collector.AddAsync(cloudEvent, cancellationToken).ConfigureAwait(false);
        var commaNeeded = _batchSize > 2;
        if (commaNeeded)
        {
            _batchSize++;
        }

        _batchSize += serialized.Length;
    }

    /// <inheritdoc />
    public async Task FlushAsync(CancellationToken cancellationToken)
        => await _collector.FlushAsync(cancellationToken).ConfigureAwait(false);
}

@JoshLove-msft while implementing this, I realised there's two different approaches I could take:

Flush batches as needed when calling 'AddAsync'
Buffer them all in memory and only break them into batches inside the 'FlushAsync' method

I think there is an implicit assumption that IAsyncCollector has the first behaviour, and that's how some of the other bindings (ServiceBus, EventHub) have been implemented, so I think that should be the preferred approach. However, I can imagine a scenario where a user has coupled to the current behaviour and expects that their messages will only be published when they call FlushAsync. I would never recommend doing this, but they may have code which treats the collector as a buffer and chooses not to call FlushAsync in certain circumstances. I don't think it's worth trying to preserve that behaviour but we might need to notify them of potentially breaking changes.

There is a discrepancy between Microsoft's documentation and the response message we are getting from Azure:

The maximum size (1536000) has been exceeded.
Status: 413 (Request Entity Too Large)
ErrorCode: RequestEntityTooLarge

This indicates a maximum size of 1.5MB, in contrast to the documentation:

When posting events to an Event Grid topic, the array can have a total size of up to 1 MB. Each event in the array is limited to 1 MB. If an event or the array is greater than the size limits, you receive the response 413 Payload Too Large.

I've confirmed that even though the response says the maximum size is 1.5MB, it doesn't accept messages that large. Reducing the threshold to 1MB fixed my issue. This is either a bug in the EventGrid implementation, or the message is referring to the size of the whole HTTP message and not just the payload.


Overide the shortcut Ctrl+S for own function

Hello!
I'm trying to implement my own backend for working with Excalidraw files. Everything working fine so far, but I can't change the default behavior of the Ctrl+S shortcut. I would like to trigger my own function instead of downloading the .excalidraw file. I've tried following, but it is not working as soon as Excalidraw gets focus.
const handleKeyDown = (event: KeyboardEvent) => {
    if ((event.ctrlKey || event.metaKey) && event.key === "s") {
      event.preventDefault();
      save(); // my custom function for sending the content to backend
    }
  };

window.addEventListener("keydown", handleKeyDown);

I've integrated Excalidraw in a WordPress Plugin. Saving a documents in this plugin means to save it to the backend. I would like to override Ctrl+S, so it can be done using a shortcut. As for today the user can only save by pressing the "Save" button.
More infos on the plugin here:
https://github.com/leonidlezner/excalidraw-wp-plugin

Can i give this issue a try?

const handleKeyDown = (event) => {
if ((event.ctrlKey || event.metaKey) && event.key === "s") {
event.preventDefault();
// Your custom logic here (e.g., send content to the backend)
}
};
window.addEventListener("keydown", handleKeyDown);
just look over it

I've integrated Excalidraw in a WordPress Plugin. Saving a documents in this plugin means to save it to the backend. I would like to override Ctrl+S, so it can be done using a shortcut. As for today the user can only save by pressing the "Save" button.
More infos on the plugin here: https://github.com/leonidlezner/excalidraw-wp-plugin

As variant you can add this option to < Excalidraw />
UIOptions={{                             canvasActions: {                                 saveToActiveFile: false                             }                         }}

@leonidlezner Agree with above tip from @yalogica , if you need to implement something like custom handling of CTRL + S, then you can disable default behaviour with the above code. I don't see any reason to provide additional API for this, suggest closing
@Mrazator WDYT?

Yeah, that should be the way, closing for now
@leonidlezner feel free to re-open if anything


Update Principles.md

Couple tweaks so bullet points layout properly

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/resources/Principles.md
:white_check_mark:Succeeded

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.