Some of QUnit tests should be replaced with functional tests

After the research we have an interface that we are going to implement for functional tests running.
/cc @inikulin Is it all ok?
Implement functional harness

@georgiy-abbasov Yay, looks like a long reading. I'll review on Monday if you wouldn't mind? Need a clear head for this.

@georgiy-abbasov Can you ping me then, please?

@inikulin, ok, we will discuss it together on Monday.

@georgiy-abbasov Please write here the comments where we describe the interface you've written about.  Don't force guys to look at our working long issue. Put the main things to this issue

testcafe-functional-harness
Allows to run functional tests in local browsers or on SauceLabs.
What it's doing

Start server for test pages.
Open the specified browsers (locally or on SauceLabs).
Run mocha tests.
Close the browsers and stop the server after the tests.

Install:
$ npm install testcafe-functional-harness
Usage:
functionalHarness
    .src(...sources)
    .sitePorts(port1, port2)
    .browsers(...{alias, url, name, platform})    //name and platform - for saucelabs
    //optional
    .saucelabs(username, accessKey, jobName)
    .timeout(sec) //by default 180s
    //run tests
    .run();

TestCafe
Gulpfile.js
var functionalHarness = require('test/functional/harness.js');

var FUNCTIONAL_TESTS_SETTINGS = {
    testCafePort1: 2000,
    testCafePort2: 2001,
    sitePort1: 3000,
    sitePort2: 3001
};

var FUNCTIONAL_TESTS_BROWSERS = {
    platform:    'Windows 10',
    browserName: 'microsoftedge',
    alias:       'edge'
};

var SAUCELABS_FUNCTIONAL_SETTINGS = {
    username:  process.env.SAUCE_USERNAME,
    accessKey: process.env.SAUCE_ACCESS_KEY,
    build:     process.env.TRAVIS_JOB_ID || '',
    tags:      [process.env.TRAVIS_BRANCH || 'master']
    name:      'testcafe functional tests'
};

gulp.task('test-functional', function () {
    var testsTimeout = 180;

    return gulp
        .src('test/functional/fixtures/**/*-test.js')
        .pipe(functionalHarness.run(FUNCTIONAL_TESTS_SETTINGS, FUNCTIONAL_TESTS_BROWSERS,
                                testsTimeout, SAUCELABS_FUNCTIONAL_SETTINGS));
});

test/functional/harness.js
What it's doing:

Create testcafe instance from the sources.
Exports testcafe and browsersInfo for test-runner.
Run tests via testcafe-functional-harness.

test/functional/test-runner.js
What it's doing:

Provides the runTests function that runs testCafe tests via the testCafe instance from harness.js. It is called from mocha tests.
Returns the object with failed tests in the following format:

{
    testName1: 'test1Error',
    testName2: 'test2Error'...
}

How it works:
var harness  = require(test/functional/harness.js);

var testCafe    = harness.testCafe;
var browserInfo = harness.browserInfo;

export runTests(fixture, testName) {
    var tc     = harness.testCafe;
    var runner =  tc.createRunner();

    return runner
    .filter(function(){
    ...
    })
    .src(fixture)
    .browsers(browserInfo)
    .run()
    .then(function()
    {
        // modify testcafe report to the following way:
        //<testName>: [testError]
        // throwing report if there was errors
    });
}

test/function/fixtures/
--- index.html    // tested page
--- test1.test.js // testcafe test
--- test1-test.js // mocha test

mocha test example
var runTests = require('../../../../test-runner.js').runTests;
var expect   = require('chai').expect;

describe('api click test', function () {
    it('Should fail when the first argument is invisible', function () {
        return runTests('./click.test.js', 'Should fail when the first argument is invisible')
            .then(function () {
                throw new Error('Test should fail but was succeed');
            })
            .catch(function (err) {
                var expectedError = [
                    'Error at step "1.Click on invisible element":',
                    '',
                    'act.click($input);',
                    '',
                    'A target element \<input id="input"\> of the click action is not visible.',
                    'If this element should appear when you are hovering over another',
                    'element, make sure that you properly recorded the hover action.'
                ].join(' ');

                expect(err['Should fail when the first argument is invisible']).eql(expectedError);
            });
    });

    it('Pointer events test (T191183) [ONLY:ie]', function () {
        return runTests('./click.test.js', 'Pointer events test (T191183) [ONLY:ie]')
            .catch(function (err) {
                expect(err['Pointer events test (T191183) [ONLY:ie]']).eql('');
            });
    });
});

it('Should fail when the first argument is invisible', function () {
        return runTests('./click.test.js', 'Should fail when the first argument is invisible')
            .then(function () {
                throw new Error('Test should fail but was succeed');
            })
            .catch(function (err) {
                var expectedError = [
                    'Error at step "1.Click on invisible element":',
                    '',
                    'act.click($input);',
                    '',
                    'A target element \<input id="input"\> of the click action is not visible.',
                    'If this element should appear when you are hovering over another',
                    'element, make sure that you properly recorded the hover action.'
                ].join(' ');

                expect(err['Should fail when the first argument is invisible']).eql(expectedError);
            });
    });

BTW, maybe we can get rid of this part:
 .then(function () {
                throw new Error('Test should fail but was succeed');
 })

By encapsulating it in runTests, e.g.:
it('Should fail when the first argument is invisible', function () {
        return runTests('./click.test.js', 'Should fail when the first argument is invisible', { shouldFail: true })
            .catch(function (err) {
                var expectedError = [
                    'Error at step "1.Click on invisible element":',
                    '',
                    'act.click($input);',
                    '',
                    'A target element \<input id="input"\> of the click action is not visible.',
                    'If this element should appear when you are hovering over another',
                    'element, make sure that you properly recorded the hover action.'
                ].join(' ');

                expect(err['Should fail when the first argument is invisible']).eql(expectedError);
            });
    });

Also, maybe if test name is explicitly specified we could return just this test's error, so it will be:
expect(err).eql(expectedError)

What do you guys think?

I suppose, it'll be useful. @georgiy-abbasov let's implement this. If we specify the test name, err - it is a string with an error. It we specify just fixture - it's a dictionary like now.
The shouldFail flag I like too

I guess we can close it now, since we use functional testing heavily to cover functionality.


Adds a second pair of jester shoes for the clothing set missing shoes.

About the PR

Adds a second pair of jester shoes for the clothing set missing shoes.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl: Whisper

add: A second pair of shoes was added to the Autodrobe for the clothing set that was missing shoes.

i dont even really understand this PR but yeah sure. two jester shoes why not .

Yay!


Bot references itself in its reply

So, this might be down to the prompt. But im not shure. The bot keeps referencing itself with @, in its reply. Could i change something here, so that it references the user instead? I added the "prepend part" in the prompt, is i because of that? (See included screen shot of my bot - and system prompt)

System message;

You are a strategist Slack chatbot designed to assist UX designers, copywriters, strategists, and product owners at a digital services and PR agency. Your role is to provide expert insights and recommendations on various digital strategies, including content strategy, social media strategy, search engine optimization (SEO), user experience (UX), user interface (UI), service design and website design. As a Slack chatbot, you should be able to engage in conversations with users, answer their questions, and provide personalized recommendations based on their specific needs and goals. Your ultimate goal is to be user-friendly, conversational, and a part of a Slack channel , so that users can seamlessly access your expertise and insights. You might receive messages from multiple people. Each message has the author id prepended, like this: "<@U1234> message text". You are called "Sensei".

Hey @Christolito, you can customize the system prompt with SYSTEM_TEXT env variable. Can you explore  a reasonable one  for your use case? Refer to https://github.com/seratch/ChatGPT-in-Slack#running-the-app-on-your-local-machine for more details.
From my experience, whether the bot includes mentions depends on how a human asks a question. So, adjusting the system text plus how your end-users ask questions may change the behavior.

Thx. It's just that it seems to use it's own Slack ID in its reply... Is this because of the prepended part of the prompt, that it gets confused?

Hmm, I’ve never observed the behavior with my app

I have seen this too, and it is caused by the prompt Each message has the author id prepended, like this: "<@U1234> message text", since the Slack messages don't seem to have the user IDs prepended in the message text as the prompt would suggest.
When you start a new thread with @ChatGPT initial prompt, it is interpreted as if @ChatGPT said initial prompt.


Create Posts “ya-rawd-qalby”

Automatically generated by Netlify CMS

👷 Deploy Preview for benevolent-pika-f5fbe0 processing.

Name
Link

🔨 Latest commit
2af07f06145be742c6071d349901f81517a0e771

🔍 Latest deploy log
https://app.netlify.com/sites/benevolent-pika-f5fbe0/deploys/63796270ce987400080abbd2


add taas in README.md

Ⅰ. Describe what this PR did
add taas in README.md.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1021 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop    #1021   +/-   ##
==========================================
  Coverage      38.26%   38.26%
  Complexity      1046     1046
==========================================
  Files            218      218
  Lines           8694     8694
  Branches        1083     1083
==========================================
  Hits            3327     3327
  Misses          4947     4947
  Partials         420      420

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 07f7d8f...36a46d2. Read the comment docs.


Initial support for sharing results

initially addresses #6 by adding support to share JSON serialized result (e.g.,
for adding into the clipboard.

cc @SandroMachado

@dweinstein great!
WDYT of adding the sharing action as an option in the overflow menu?
With this we don't need to hack the FAB buttons setting their visibility.
If you want I can make a commit with that change.

Sure!

I cannot make commits to your branch since I don't have access to the repository. So my suggestion is rebase my fork with the project, clone your branch, make my commit and submit a PR with my commit. Do you have a better alternative?

if @Fuzion24 wants to merge this now (it should be stable) you can PR off the new master as well. in the future I'll open PRs from my own fork if that makes it any easier.

kk, i'll give this a test in the morning.


Terminal is blurred

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.58.2
OS Version: W10

Hi everyone, I have a small problem in my VSCode
My terminal looks like it is processed by my video card (which is not present (Intel HD Graphics (built-in)))

Found solution
Set acceleration in vscode settings to canvas
"terminal.integrated.gpuAcceleration": "canvas"


The efficiency of using Clipper2's offset operation has slowed down

I heard that there is an upgraded Clipper2 that can be used, so I eagerly downloaded and compiled Clipper2, which was then used in my project. Unfortunately, my algorithm started to slow down. And, I tested a simple offset operation using the same default parameters as Clipper1, and I did not find that the algorithm became faster or even slightly slower. I am very confused and would like to know what improper operations can slow down the offset operation efficiency of Clipper2? I have experienced multiple sleepless nights and hope to receive your answer.

You really must provide a small amount of sample code that demonstrates this degraded performance if you're expecting to get help.


Elixir test case is failing

There is a test case that has been failing since Elixir support was added. See the Checks output for PR #233.
Thanks for the useful action!

@chelsea-codes thanks for the notice, will check it out.


Redirects to projects page when user logs in

Fix for #2882
Changed / to /manage/projects - changed required tests as well

@di addressed

@di addressed the changes in tests.

@waseem18 You've got linting errors on a few lines that are too long:
./tests/unit/accounts/test_views.py:166:80: E501 line too long (85 > 79 characters)
./tests/unit/accounts/test_views.py:174:80: E501 line too long (84 > 79 characters)
./tests/unit/accounts/test_views.py:227:80: E501 line too long (85 > 79 characters)

@di Will correct them

Thanks @waseem18!
Send an email to<EMAIL_ADDRESS>with a link to this PR and your address and he'll send you some of these sweet PyPI stickers as a thank-you for your contribution:

Thanks @di for reviewing and merging my PR.
Starting with this good-first-issue I would love to contribute more to warehouse. Will start will resolving unassigned bugs first and then will continue to feature requests.
Will plan to spend at least an hour daily working on warehouse after my office. :)
Thanks for the support


feat: Numpy for random row generation for faster execution

Closes #844
Only works for monotonically increasing numeric PKs.

Closing this PR without merging since the random row generation did not speed up random row generation significantly.


DOCS-9828 stop and restart cluster

@sundippatel - This is a very rough draft based on info from different documentation and info from the Gravity folks. I know it needs a lot of work, but hopefully is a decent starting point.


Upgrade to yarn 3 + Node 16

We are currently using Node v14, npm v7 and Lerna v3.
We've wanted to upgrade to yarn3 but encountered some issues.
Whoever grabs this needs to make sure all the following works:

locally, running yarn run build/yarn run start in every sub-package should work without issues (we had problems running yarn run build in packages/core)
CI should pass

This task might be related to #211 and #236.

Awesome, should definitely be possible. I'll take this up.


Portable Binary Floating Point

Hi,
Is binary-portable also portable for floats and doubles?

Could these serialized real numbers fail on a computer that uses different endianness?
Could these serialized real numbers fail on a computer that does not use IEEE 754?

If it's not portable, how complicated would it be to make it work?
Thank you,

We explicitly take care of endianness, but do not explicitly handle conversion to non-compliant IEEE 754 implementations. If you look at the source code, we require that the floating point implementation is IEEE 754 compliant - this is something that could indeed be replaced by actual conversion, and is something that a third party library can already provide, and potentially could be integrated directly.

That's what I thought because IEEE 754 is just too common. So IEEE 754 is an expectation rather than something the portable library deals with.
I was thinking of using a library such as https://github.com/LiraNuna/soft-ieee754 or https://github.com/kkimdev/ieee754-types to explicitly make this conversion explicit but I wanted to make sure I really needed to do that.
Thanks,


x11: Add cursor hiding

r? @tomaka

cc @est31

That may be a weird request, but please don't fix the warnings. I'm trying to keep the winit repo in sync, and you're easing my life if you avoid merge conflicts if possible.

Perhaps also use the new function from set_cursor_state? It has a functionality to hide the cursor as well.

Heh, no problem, removed the last commit :-)

@est31 you're right, let me find a good way to do it :)

Refactored!
re-r? @tomaka

Cursor hiding from the cursors example works for me now, and the patch looks good.

I think we should eventually split that file into several modules to make it easier to understand, but that's out of scope of that PR.
Thanks!


Update ApacheFriends.Xampp.8.2.installer.yaml to reflect the correct …

After installation Winget shows the installer as 8.4.2-0 instead of 8.4.2 so updated the version number so that winget upgrade --all does not try to unnecessarily upgrade the package from 8.4.2-0 to 8.4.2-0
…version

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Where is other file? Other file also need to move due to the folder.

@BrandonWanHuanSheng apologies, I will update all the files and resubmit the pr


fix: various cleanups for release-tag action

What problem does this PR solve?:
A couple of changes here

Just use the tag name -> https://github.community/t/how-to-get-just-the-tag-name/16241/35
Have the checksum file include the v in the file name
Add a needs for the notarizing pipeline
uses new checksumfile

Which issue(s) does this PR fix?:

https://jira.d2iq.com/browse/D2IQ-NUMBER

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Lets try it again.


using remix routes with remix-flat-routes + vite breaks

Reproduction
run remix routes with a route that works with remix-flat-routes and see the output miss all routes that remix doesn't understand by default
System Info
sh: envinfo: command not found

Used Package Manager
pnpm
Expected Behavior
for remix to understand all routes including from remix-flat-routes
Actual Behavior
seems to assume the config still exists in remix.config.js

This is fixed in v2.8.1, which should be released soon.
https://github.com/remix-run/remix/pull/8916


Added uniq elements ID. Puppeteer will use ID for click on elements.

cc @AnastasiiaVashchuk

@keriat ping


renderRichText not rendering anchors on URLs when using custom schema

When adding a anchor to a Rich Text URL, the anchor isn't added to the URL. This only occurs when using a customSchema for SbRichTextOptions.

Expected Behavior
Anchor gets added at the end of the URL
Current Behavior
Anchor does not get added at the end of the URL
Steps to Reproduce

Create a URL in a Rich Text field, add a anchor

Parse the content via renderRichText in @storyblok/astro

See that the response does not include the anchor at the end of the URL

Example:
---
import type { ISbRichtext, SbRichTextOptions } from "@storyblok/astro";
import { renderRichText, RichTextSchema } from "@storyblok/astro";
import cloneDeep from "lodash-es/cloneDeep";
import type { ISbNode } from "@storyblok/js";

const customSchema = cloneDeep(RichTextSchema);

customSchema.marks.link = (node: ISbNode) => ({
  tag: [
    {
      ...node,
      tag: "a",
      attrs: {
        ...node.attrs,
        href: node.attrs.href // We do some sanitation here
      },
    },
  ],
});

const options: SbRichTextOptions = { schema: customSchema };

const result = renderRichText(
  {
    type: "paragraph",
    content: [
      {
        type: "paragraph",
        content: [
          {
            text: "Link with anchor",
            type: "text",
            marks: [
              {
                type: "link",
                attrs: {
                  href: "/internal/test-mike-contentpage",
                  uuid: "b0b193a0-5c6a-4022-b9f6-cdd5d6cacbbe",
                  anchor: "test-anchor",
                  target: "_self",
                  linktype: "story",
                  story: [Object],
                },
              },
            ],
          },
        ],
      },
    ],
  },
  options
);
---

Since I'm spreading the ...node.attrs in the customSchema.marks.link, the anchor property is added to the customSchema.marks.link, so I would expect it to work.
The above code gives the following result:

   Link with anchor

When I remove the customSchema.marks.link, it results in following. The anchor gets added, as expected.

   Link with anchor

Hi @mhagendoorn-9292 ,
Thank you for your question.
Based on your example code:
mySchema.marks.link = (node: ISbNode) => {
  // ...
};

This replaces the default internal links logic. Essentially, you'll need to rewrite the link logic yourself. Here’s an example of how you can do it:
mySchema.marks.link = (node: ISbNode) => {
  const attrs = { ...node.attrs };
  delete attrs.linktype;
  if (attrs.href) {
    // Do your sanitation here
    attrs.href = node.attrs.href;
  }
  // Handle email links and other possible logic
  if (attrs.anchor) {
    attrs.href = `${attrs.href}#${attrs.anchor}`;
    delete attrs.anchor;
  }
  if (attrs.custom) {
    for (const key in attrs.custom) {
      attrs[key] = attrs.custom[key];
    }
    delete attrs.custom;
  }
  return {
    tag: [
      {
        tag: "a",
        attrs: attrs,
      },
    ],
  };
};

You can also refer to the complete node's schema here: Storyblok JS Client Schema.
Let me know if you have any further questions.

Hi @mhagendoorn-9292,
Since we haven’t received a response, we’re closing this issue for now. If you have any new information, please feel free to reopen it or create a new issue.
Thanks!


feat: use input.from as change address if passed

Current dependencies on/for this PR:

main

PR #1168   👈

This comment was auto-generated by Graphite.


Command line program sc not handling spaces in fields

Place holder. Need a better way of differentiating between "keys" provided at the command line and free string arguments.
Fails on ['package', 'description']
https://github.com/siliconcompiler/siliconcompiler/blob/fec19aecb4962f439cecdf1fca70a7e89229b9ff/siliconcompiler/core.py#L404-L413

Will take a look at this, need to fix a few other things in create_cmdline() anyway:

inferring filetype of sources
making switchlist behavior consistent with docs


[API Question] How can I force load player?

So I need to access the User data for x player and I'm facing a problem where the User class cannot be found by getting it using the player's UUID. So I need a way to "force load" the player data into LuckPerms cache or whatever...
Please reply to this ASAP. Thanks ;D

Nvm, found it

loadUser method - for anyone looking at this in the future. :')


Issue when building

When the command npm run build is run and when the div

 is added, nothing seems to work correctly

Hey @Yasha-ops, you should include the .js file output to the dist folder after you ran npm run build in your HTML.

I can't either get this to work. I am no wadding:

To the generated html file in the dist folder.
Is this not the intended process?


Unexpected behavior with LRU

Not sure if I'm using the library incorrectly or there's an actual issue with the LRU implementation. Inserts/updates seem to be counted as U in LRU, but not gets:
use moka::future::Cache;
use moka::policy::EvictionPolicy;

#[tokio::main]
async fn main() {
    for _ in 0..10_000 {
        // Create a cache that holds at most 2 items.
        let cache = Cache::builder()
            .eviction_policy(EvictionPolicy::lru())
            .max_capacity(2)
            .build();

        // Insert two entries into the cache.
        cache.insert(1, "a").await;
        cache.insert(2, "b").await;

        // Access the second entry and then the first.
        print!("{:?}", cache.get(&2).await);
        print!("{:?}", cache.get(&1).await);
        // prints Some("b")Some("a")

        // UNCOMMENTING THE BELOW MAKES THE CACHE WORK AS EXPECTED
        /*
        cache.insert(2, "b").await;
        cache.insert(1, "a").await;
        */

        // Insert a third entry, which should cause the eviction of the least recently used entry (2 , 'b').
        cache.insert(3, "c").await;

        cache.run_pending_tasks().await;
        // println!("{:?}", cache);
        // prints {2: "b", 3: "c"} or {3: "c", 2: "b"}
        assert_eq!(cache.entry_count(), 2);
        assert_eq!(cache.get(&1).await, None);
        assert_eq!(cache.get(&2).await, Some("b"));
        assert_eq!(cache.get(&3).await, Some("c"));
    }
    println!("Done");
}

With an LRU cache with capacity 2, after inserting "a" and then "b" and then getting "b" and then getting "a" and then inserting "c", only "b" and "c" exist instead of "a" and "c". This happens consistently after 10k repros.
I tried sleeping for 2 minutes and adding one more run_pending_tasks().await, but still the same behavior:
use moka::future::Cache;
use moka::policy::EvictionPolicy;

#[tokio::main]
async fn main() {
    for _ in 0..1 {
        // Create a cache that holds at most 2 items.
        let cache = Cache::builder()
            .eviction_policy(EvictionPolicy::lru())
            .max_capacity(2)
            .build();

        // Insert two entries into the cache.
        cache.insert(1, "a").await;
        cache.insert(2, "b").await;

        // Access the second entry and then the first.
        print!("{:?}", cache.get(&2).await);
        println!("{:?}", cache.get(&1).await);
        // prints Some("b")Some("a")
        cache.run_pending_tasks().await;

        // UNCOMMENTING THE BELOW MAKES THE CACHE WORK AS EXPECTED
        /*
        cache.insert(2, "b").await;
        cache.insert(1, "a").await;
        */

        // Insert a third entry, which should cause the eviction of the least recently used entry (2 , 'b').
        tokio::time::sleep(tokio::time::Duration::from_secs(120)).await;
        cache.insert(3, "c").await;

        cache.run_pending_tasks().await;
        // println!("{:?}", cache);
        // prints {2: "b", 3: "c"} or {3: "c", 2: "b"} ßßß
        assert_eq!(cache.entry_count(), 2);
        assert_eq!(cache.get(&1).await, None);
        assert_eq!(cache.get(&2).await, Some("b"));
        assert_eq!(cache.get(&3).await, Some("c"));
    }
    println!("Done");
}

Output:
Some("b")Some("a")
Done

cargo 1.80.0 (376290515 2024-07-16)
moka = { version = "0.12.8", features = ["future"] }
tokio = { version = "1.37", features = ["full"] }

Hi. Thank you for reporting the issue and providing the reproducer.

You are using moka library correctly.
I can reproduce the issue using the reproducer you provided.

However,

moka is actually working as disigned.
This may rather be a problem with the documentation.
In the future, we may consider changing the behavior to match to your expectation.

In your repro, you will see the expected behavior if you call run_pending_tasks after inserting 1 and 2 into the cache.
--- src/bin/main1.rs    2024-08-04 18:49:24
+++ src/bin/main2.rs    2024-08-04 18:49:33
@@ -13,6 +13,7 @@
         // Insert two entries into the cache.
         cache.insert(1, "a").await;
         cache.insert(2, "b").await;
+        cache.run_pending_tasks().await;

         // Access the second entry and then the first.
         print!("{:?}", cache.get(&2).await);
@@ -32,8 +33,8 @@
         // println!("{:?}", cache);
         // prints {2: "b", 3: "c"} or {3: "c", 2: "b"}
         assert_eq!(cache.entry_count(), 2);
-        assert_eq!(cache.get(&1).await, None);
-        assert_eq!(cache.get(&2).await, Some("b"));
+        assert_eq!(cache.get(&1).await, Some("a"));
+        assert_eq!(cache.get(&2).await, None);
         assert_eq!(cache.get(&3).await, Some("c"));
     // }
     println!("Done");

This is because the cache holds pending tasks for reads and writes in separate queues (channels), and when these pending tasks are processed, the cache processes the reads first and then the writes.
The cache creates a node in the LRU queue for key 1 when its write task is processed, and the node is moved to the front of the queue  (the MRU position of the queue) when the read task is processed. Since, cache processes the reads first, the node for key 1 does not exist in the LRU queue. This causes the cache to ignore the read task for key 1.
When I implemented v0.1 of moka, I made the decision to have the separate queues for reads and writes to avoid writes being blocked by many reads. When the write queue is full, writes are blocked until the write queue has space. In typical use cases, a cache will receive more reads than writes, so I thought having one queue for reads and writes would be a bottleneck. I knew that this design would cause the issue you reported. But I thought it was a reasonable trade-off as this behavior would not have visible impact to overall hit rate of the cache. This is because we will never be able to predict which of keys 1 or 2 is read before another or more often in real application. So we cannot say keeping key 1 is better than keeping key 2.
But, I understand that this behavior is confusing. We could change the cache to process reads and writes in the order they were performed. For example, We could add the timestamp of the read or write to the read and write recordings, and process the recordings in the order of the timestamp. This will make the cache behave as you expect. I will evaluate this and maybe other options, and consider one for a future release.
Just FYI, we used to have a brief documentation about the internals of the cache:
https://docs.rs/moka/0.11.3/moka/index.html#implementation-details
I had to remove it when we released v0.12.0 because it was outdated; the cache no longer has background threads. It mentions the separate queues for reads and writes, and what happens when one of the queues is full. But it does not mention the behavior you reported.
I am hoping I can find a time to update the documentation.


Remove the hello text in the canvas

I suspect the text was part of the prototype which didn't get the chance to get removed.

This has been resolved already.


CMakeLists uses CXX_STANDARD witch is only available from 3.1

The actual CMakeLists uses CXX_STANDARD witch is only available from 3.1.
Using the cmake_minimum_required(VERSION [...] [FATAL_ERROR]) allows to add the policies automatically. It's running smoothly on 3.17.2 so the max version set to this version would be fine.

Hi!
This PR seems to do more than it's supposed to - changing the option name and inverting it's behavior is a breaking change in terms of integration - it might have been a mistake to make it that way initially (when the option was introduced), but I'm hesitant to change things without good reason...
I'm also not familiar with that syntax for cmake_minimum_required - does it actually set a maximum version in addition to a minimum? Won't that bring maintenance burden as time goes by? What about using the latest unofficial CMake or minor version bumps & patches?
Also about the removal of set(CMAKE_CXX_STANDARD 11) - it has history - there have been a few commits that shuffle things around regarding how the CXX standard is set and I'd be happy not to touch things without good reason. Why was it removed? Did it actually break a usecase? Can you prove that no other usecase has been broken? The CI seems to pass: https://travis-ci.org/github/onqtam/doctest/builds/690111601 (not sure how/when it got disintegrated with github PRs and no longer shows up in here... anyway), but in the past there were usecases which were not covered by the CI setup of doctest.


DBuzz posts rendering issue

On Ecency mobile, some DBuzz posts are rendering with the image IPFS markdown text as the title of the post.
For example https://ecency.com/hive-193084/@luueetang/ilgehnemnyhicj7pja1jye

@hiveuprss thanks for report, that's because dbuzz app sets title of post as such. Should report to dbuzz developers so they set title to something else or set first word from content rather than link of image.

Ahh good point. You’re right it must be fixed in DBuzz side.

Reported in DBuzz discord

Great, 👍  Thank you, hope they will fix it. This was reported few times.


Proposal: remove Invert Y Axis from the default hotkeys

Have you checked the GP2040-CE documentation HERE to confirm this feature doesn't already exist?
N/A
Which problem is this feature request solving?
People seem to be more confused by accidentally hitting the invert y-axis shortcut than are happy it exists by default.
Describe the solution you would like to see
Put something else (or nothing, that's fine too) in that hotkey slot going forward.
Can you submit a pull request?
Yes but lol time. This might be a good first issue after there is consensus.
Are you planning on working on this feature yourself?
Would love to, but it's way down on my personal priority list.

I'm all for removing it as a default shortcut.

I intended to make a PR for this but ended up just yoloing it to main.

Forgot to close this - the change has been made.


Update scala-library to 2.13.2

Updates org.scala-lang:scala-library from 2.11.12 to 2.13.2.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

labels: library-update, semver-minor

Invalid. Leaving this open anyway so that scalasteward doesn't try again and again and again.


Message handling

Can't send message to service worker from window and can't handle message in window from service worker. Is there any options to handle it?
I use handler in service worker:
self.addEventListener('message', (event) => {   debugger; });
And post message using:
navigator.serviceWorker.controller.postMessage("ololo");
And nothing.

Works fine for me.
Remember that you can only start sending messages to your ServiceWorker after it's been installed, which would typically be on the first pageload after your serviceWorker.register call.  Unless you respond to the install event with skipWaiting.
Hope this helps


Zod generator produced unnecessary consts for min and max values

What are the steps to reproduce this issue?
Zod 6.13.1
Create a zod schema. In the OAS have a number property in a schema that specifies a minimum or maximum. Generate a zod schema client.
What happens?
A const representing the value of the min or max arguments is exported and re-exported multiple times. The same variable name string can be re-generated in the same file multiple times because they are deterministic, and not guaranteed to be unique.
export const postFooServiceHeader = zod.object({
  "x-operation": zod.string().uuid()
})

export const postFooServicePurchasedAreaMin = 0;

export const postFooServiceBody = zod.object({
  "purchasedArea": zod.number().min(postFooServicePurchasedAreaMin),"cYear": zod.string(),"active": zod.boolean(),"enrollmentId": zod.string().uuid().optional(),"endDate": zod.string().datetime(),"startDate": zod.string().datetime(),"cOrgId": zod.string()
})

export const postFooServicePurchasedAreaMin = 0;export const postFooServiceTotalPriceMin = 0;

export const postFooServiceResponse = zod.object({
  "purchasedArea": zod.number().min(postFooServicePurchasedAreaMin),"active": zod.boolean(),"creatorGId": zod.string().uuid().optional(),"enrollmentId": zod.string().uuid(),"totalPrice": zod.number().min(postFooServiceTotalPriceMin),"endDate": zod.string().datetime(),"startDate": zod.string().datetime(),"connexOrgId": zod.string().optional()
})

The typescript error looks something like
Cannot redeclare block-scoped variable 'postFooServicePurchasedAreaMin'.ts(2451) const postFooServicePurchasedAreaMin: 0
What were you expecting to happen?
Just put scalar values directly in the function ... I don't think the consts are improving things.
Any other comments?
I think I can submit a PR to fix this... but I'm not sure what to do about regex ... a scalar value of a number doesn't really need to be optimized, but re-creating the regex multiple times might be a real performance impact?
See https://github.com/anymaniax/orval/blob/master/packages/zod/src/index.ts#L188
What versions are you using?
Operating System: MacOS
Package Version: 6.13.1

Hello @sirtimbly, the constants are done on purpose this case can be fixed by passing an additional key to the argument name of each execution of the function generateZodValidationSchemaDefinition. It's not perfect because we will probably have duplicate constants. It can be improved by generating each schema independently and not referring only to the operation.

Maybe we can 'uniq' the whole list of consts before output?

it's also a solution but it will not solve all the problems I think at the moment doing both is the better solution. Do you want me to do it or you update your pull request?

Feel free to update it, I'm not sure I see all the constraints like you do.

Just pushed a fix

Confirmed-  the const names are unique now.


Build react native static app?

Hey guys, is it possible to do Exporting Storybook as a Static App for react native so that I can run my mobile storybook without running the storybook server?
My goal
I'm building a storybook for my react native component library and my goal is to publish it to Expo so that my teammates can check out the components simply by opening the storybook app with Expo without running the storybook server locally.
I've tried exp publish with storybook server running but the app crashed when opened in Expo client app.

Looks similar to #3224


Add Traditional Chinese Translation

Hi, I'm sorry. You commit doesn't seem right?
Could you get the latest version of English file and do it from there keeping lines and comments?

@qooob I noticed that these two have the same number
settings_hotkey_custom_8=自定義鏈接 9
settings_hotkey_custom_9=自定義鏈接 9

Yes, not good.
@miyorineko The language file and translation is done must stay intact in terms of indent and line-spaces. Could you please do it using the latest English-version file?

Okay, thanks for correcting, I'll redo it later.

I found the CAT soft had auto "corrected" some keywords for me. I fixed some problems. Sorry for inconvience caused.

@miyorineko Thanks! It looks good!
Chinese is so much shorter than English. Wow. Even greater abstraction, I suppose.
I would like to add your name to the list of translators. Should I keep miyorineko or there is better name?

Translate this please:
theme_xhred_filemanager_link_to_clipboard=Symbolic link's name %value has been copied to clipboard.


Raylib-J does not render to the window in any examples using GL33

When running either of the written examples (WindowText.java, BasicShapes.java) Raylib-J will successfully clear the window with the desired color, but will not render any text or shapes.

After playing around with the settings I discovered this issue only applies to OpenGL 33. OpenGL 11 renders shapes to the window fine.

GenDrawQuad() renders to the window. So it looks like the issue is somewhere within DrawRenderBatch()

With commit f7a5a2b there's been a good chuck of progress made in squashing this.
First, a lot of troubleshooting with RenderDoc and a good chuck of test code (removed from file for commit) I discovered the shader property locs[] was not being initialized correctly leading to no data going to the proper destination.
While all the data is in place as far as I can see (vertexPosition, vertexTexCoord, and vertexColor) and the Vertex Shader is outputting as expected we're still not rendering anything.
This is the last thing I want to get squared away before trying to put out an alpha build for testing.

So, the next issue I've identified is that gl_Position is passing the values of vertexPosition which are not in NDC format which is causing the mesh to be placed incorrectly. See the following images I took from RenderDoc to see what I'm talking about:
Raylib-J:

Raylib:

(also there's an issue where DrawRectanglePro() is passing as if the x and y coordinates are 0, but that's unrelated to the current problem I believe)

This'll probably be my final update for a while as I'm being deployed. It looks like the root issue of all of this (including the issue of incorrect x, y coordinates for the rectangle being drawn in my program) is the projection and modelview matrices are not being populated with the correct values.

Quick update while I have the time. Projection and modelview matrices are populating correct values after fixing an issue with assigning matrix values during the initialization. Unfortunately, I don't have access to all my tools on my laptop (or internet for that matter), so work is slow but progress is being made!

Major update: I have items rendering, however I have a couple hacks in place to get things rendering properly for now, but I'm working on correcting the need for those.
I will try to push my updates later tonight


Better error message if config failed to parse

Component
Forge
Describe the feature you would like
currently, the parsing error in the config is rather verbose, ideally, it should highlight the very value that's erroneous.
Additional context
Ref #275

I assume this about foundry.toml, if not please ignore.
It would also be good if pointing FOUNDRY_CONFIG to a non-existent or invalid file printed an error.
I made the mistake of exporting FOUNDRY_CONFIG=foo instead of FOUNDRY_PROFILE=foo and then spent half an hour trying to figure out why my config file wasn't being read.

oh, thanks for this, will add a check and warning if the path does not exist!


fix extra eip creation logic

📲 What
Fix to avoid creation of 3 EIPs (per AZ for NAT) if we are creating just 1 NAT Gateway.
🤔 Why
We dont want to create unnecessary resources in our environments.
🛠 How
Adding a check while creating the aws_eip resource.
👀 Evidence

🕵 How to test
Notes on how a reviewer can test the changes, e.g. how to run the tests.
✅ Acceptance criteria Checklist

[ ] Code peer reviewed?
[ ] Documentation has been updated to reflect the changes?
[ ] Passing all automated tests, including a successful deployment?
[ ] Passing any exploratory testing?
[ ] Rebased/merged with latest changes from development and re-tested?
[ ] Meeting the Coding Standards?

Hey, aren't all the IPs used even in the single mode?

Hey, aren't all the IPs used even in the single mode?

not really, 2 are just created and never used. Only one of them is used by the NAT gateway
`resource "aws_nat_gateway" "public" {
count = var.vpc_nat_gateway_per_az ? length(data.aws_availability_zones.available.names) : 1
allocation_id = aws_eip.nat[count.index].id
subnet_id     = aws_subnet.public[count.index].id
tags = merge(var.tags, {
"Name" = "${var.vpc_name}-public-nat-${data.aws_availability_zones.available.names[count.index]}"
})`

Hey, aren't all the IPs used even in the single mode?

not really, 2 are just created and never used. Only one of them is used by the NAT gateway
resource "aws_nat_gateway" "public" {
  count = var.vpc_nat_gateway_per_az ? length(data.aws_availability_zones.available.names) : 1

  allocation_id = aws_eip.nat[count.index].id
  subnet_id     = aws_subnet.public[count.index].id

  tags = merge(var.tags, {
    "Name" = "${var.vpc_name}-public-nat-${data.aws_availability_zones.available.names[count.index]}"
  })

Fair enough, in that case LGTM.


Missing previews

Due to changes in the Mapillary API, preview images are no longer being displayed in the popups of our showcases. This is an issue that we will fully address for future Streetwise campaigns, in the meantime I'm looking into a workaround using our locally cached images.
See https://blog.mapillary.com/update/2021/06/23/getting-started-with-the-new-mapillary-api-v4.html

For now I have replaced the image thumb with a preview link. Due to restrictions with the popup, the frame/embed is not working. We would need to set up a proxy to query and provide the images with the new API.


Any chance to support Tab Bar Icon for Android

Dear team, the native Tab really looks good on iOS.
But on Android, the Tab without Icons really look poor and it is on the top of the UI rather than at the bottom.
I have tried to implement a topcoat Tab Bar at the bottom as the same as your Native Tab with Icons on IOS, but it doesn't work.
See if there is any change you can implement the ICON for Tab on Android.

Sorry for reopening. But this year at the documentation it shows examples to use icons for tabs in android, and still I'm having issues. Could you confirm if it's finally possible as per today? Thank you!

Icon's are possible, see http://docs.appgyver.com/supersonic/guides/ui/styling-native-components/tab-bar/

As per the documentation I know they should be, but they don't show
following the examples (svg) or show badly deformed (png) in android, there
are many others reporting the same issue. Is there any special point to
take into account and maybe not detailed at the docs?
María Antignolo
ADN Comunicació SL
Indústria 127, 3a planta
08025 Barcelona
Tel.: 93 450 72 41
2015-05-25 10:15 GMT+02:00 Harri Sarsa<EMAIL_ADDRESS>
Icon's are possible, see
http://docs.appgyver.com/supersonic/guides/ui/styling-native-components/tab-bar/
—
Reply to this email directly or view it on GitHub
https://github.com/AppGyver/steroids/issues/63#issuecomment-105162175.


Can we use hydux with react native?

First of thanks for wonderful framework and bringing Elm/ Elmish to TypeScript.
I am big fan of Elm and Elmish architecture. Even gave couple of talks on it. I was curious that is it possible to use hydux with React Native ?
Or it would be over kill. We already have Fabulous (Elmish + Xamarin Forms + F#. ). So, I was thinking in same line. (Fable + Elmish + React Native is also possible as per last update ).

I was curious that is it possible to use hydux with React Native
Yes. Hydux is just like Elm/Elmish in typescript as you say, so it can integrated with any vdom framework/library.  The only reason that we don't have something like hydux-react-native is that I don't have time to implement it (and there is no React Native projects on my hand). Also, the community of hydux is too small, I'm not even sure whether someone is still using it. 😅

@zaaack thanks for answering.

Also, the community of hydux is too small, I'm not even sure whether someone is still using it.

I know there are too many frameworks. But you still going to support this or planning to move away? If second option then any suggestion for other framework? I like to stick with Elmish style of architecture. Because Redux + etc etc is too hard to implement and explain as well.

@kunjee17 I like Elm/Elmish architecture, too. But the react community also has big changes, like react-hooks, it might break the old Redux style, also I'm not sure it's impact to the Elm architecture implementation on TS + React. I don't think I'll move away until find a better replacement in TS + React, but I haven't using hydux for a while, because the project that I'm working on recently in my company only uses react, doesn't even need a state management library.

@zaaack please don't mind me asking. What you are using right now? Because sometime I think that if share state / passing data is a problem then we can easily get away with it, by using RxJs / Observable. Make model observable and event should change that. Or some other component can change that. It will raise a question about discipline but still.

@kunjee17 Currently we use nothing, the project we are working on is a hybrid app, web pages in our app are small and most states are just UI logic, we can't and don't need(most time, if happens we share state on the server side) to share state between pages. RxJs / Observable is great, but I think they are a little heavy for most cases (in my practices). The hardest thing might be to choose the best approach for a certain case, we need to "predict" the future complexity of a project and avoid excessive or insufficient.

Thanks @zaaack for answers. I am closing this issue for now. Again thanks for your great work.


Add location of ca cert to documentation

This doc currently leads users to another page which has not any more information about how to locate the ca cert.
If you look at the "advanced troubleshooting with the bosh cli" it starts much the same, with sshing onto the opsman, but it actually
tells you were to locate the certificate. If I followed these directions, I would have to a) follow link, b) follow second link, c) Realize I cannot curl endpoint for certificate until I have a bearer token for opsman. d) have to look up more documentation on how to get a bearer token, and re look up various credentials.
If you are already on the opsman there is no reason for this.
Possibly the page that it is linked to should include this information as well.

Thank you @Benjamintf1!


Import statements in finals

hi just checking do we need to write import statements in our answers for the final?

I don't think so. Just the answer is fine.

hi I think we need to if we need to write out the whole class but if its a single method/code snippets theres no need

Yea, same. I think you just need to write the answer!

I dont think we need to write the import statement since we are not required to compile

Based on past year walk through videos, we dont need to import.


Set the modification date to the current day when saving

Perhaps slightly unrelated here, but isn't the default value in the getModificationDate function overly verbose?
Rather than https://github.com/mozilla/pdf.js/blob/e51e9d1f33bd6e404bfa795799f1cc035537091e/src/shared/util.js#L835 wouldn't just
function getModificationDate(date = new Date()) {

suffice according to the "No parameters" case in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#Syntax

Fixed, thx

/botio unittest

Thank you for fixing this!


Browser —— bottomVisible  error

there is a error in the method of bottomVisible.
it should be document.body.clientHeight, not document.documentElement.clientHeight
const bottomVisible = () => {
    return (document.documentElement.clientHeight + window.scrollY) >= (document.documentElement.scrollHeight || document.body.clientHeight)}
```

I think I tested that and it worked, but you might be onto something. Let me get back to you!

After retesting, this works as expected and it seems like documentElement is more reliable than body on certain older browsers.


Feedback

I have .NET 4.7.2 installed. Howewer, VS still says there is no namespace like System.Web.ClientServices.Providers

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

ID: 221496a6-b61f-967d-9765-b2fb47204aa7
Version Independent ID: b3e1fb61-c336-a64f-2ea8-33bd1840eb7c
Content: How to: Implement User Login with Client Application Services
Content Source: docs/framework/common-client-technologies/how-to-implement-user-login-with-client-application-services.md
Product: dotnet-framework
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Have you referenced the assembly needed in your project like System.Web.Extensions.dll?

Well, no. Then probably that will be the problem, thanks

Closing this issue then.


Add Navid in participants list

This looks quite nice, but I thought we agreed this would be a table

I approve these changes.


[Slot work] Complete filter date

Complete filter date and brand
issues #4 #12

[Pull request] come from slot work - filter options

[Pull request] come from slot work - filter options


Bump package and API version for 0.7.0

TODO:

[x] Once Swagger finalized, update Swagger generated files (in this PR).

There may be following minor PRs touching same files.

Updating docs is out of scope for this PR.

static_analysis job (including make swagger-check) passed.


Allow ansistrano to work with .ssh config files

I have an ssh alias for one of our servers and ansistrano didn't play nicely with that because it always tried to add [myusername]@alias to the ssh rsync command.

Hi @andreiashu thanks for submitting this patch
I was a bit confused by the docs at http://docs.ansible.com/ansible/synchronize_module.html saying the default is True while all other parameters talk about yes/no but I checked the code at https://github.com/ansible/ansible-modules-core/blob/devel/files/synchronize.py and this parameters looks like any other boolean field
:+1: by me, no BC breaks as I like them

Thanks for the merge @ricardclau