installing for macOS from messengerfordesktop.com comes with bloatware

Operating system: macOS
Messenger for Desktop version: 2.0.9-stable

This is just plain ridiculous... What installer is being used?

On the main github page:
Bring messenger.com to your OS X, Windows or Linux desktop. https://messengerfordesktop.org
Looking at gitter:
@Sytten
Also the real domain is messengerfordesktop.org now
The com is trash
The com stays since we don't own it anymore

You grabbed from the wrong website, which is understandable since it's the top result in google. There's nothing the developers can do because they don't own the domain.


update

One day I will understand how to merge things in forks without conflicts. One day.

Let's come back here later. 👀

AltLayer Airdrop Season One Announcement

Exciting news! AltLayer token (ALT) is set to launch on Binance on January 25, 2024. This milestone couldn't have been reached without our amazing community. Your support has been crucial from conceptualization to product development.
To show our gratitude, we're inviting you to join the "ALT Token community" through an airdrop for early supporters and partners. Below is a summary:

Total Allocated ALT Tokens: 300,000,000 (3% of total supply)
Distribution Categories:

NFT Holders
Altitude Campaign Participants
EigenLayer Restakers
EigenLayer Ecosystem Partners
Celestia Stakers and others

For detailed criteria and information, check the full announcement here.
Claim opens from January 25 to February 25, 2024. Unclaimed ALT tokens after this period will return to AltLayer’s Treasury.
Thank you for being part of AltLayer's success! More to come in Season One, stay tuned.
Note: Certain regions are restricted from the airdrop. Please review the disclaimer before participating.
Winners: @casch-at, @armahmoodian, @kennylbj, @lalitkapoor, @hahadaxia, @fredericof89, @kjbstar, @minhhn2910, @westonli, @Jaha96, @elmaedesistemas, @magshaban, @cenaav, @lxianwei003, @ichu468, @erdiucar, @linhndd, @orilee, @labelexe, @PotamusPrime9

Stop spamming me with crypto scam
On January 28, 2024 1:38:21 PM UTC, 1250285 @.***> wrote:

AltLayer Airdrop Season One Announcement

Exciting news! AltLayer token (ALT) is set to launch on Binance on January 25, 2024. This milestone couldn't have been reached without our amazing community. Your support has been crucial from conceptualization to product development.
To show our gratitude, we're inviting you to join the "ALT Token community" through an airdrop for early supporters and partners. Below is a summary:

Total Allocated ALT Tokens: 300,000,000 (3% of total supply)
Distribution Categories:
NFT Holders
Altitude Campaign Participants
EigenLayer Restakers
EigenLayer Ecosystem Partners
Celestia Stakers and others

For detailed criteria and information, check the full announcement here.
Claim opens from January 25 to February 25, 2024. Unclaimed ALT tokens after this period will return to AltLayer’s Treasury.
Thank you for being part of AltLayer's success! More to come in Season One, stay tuned.
Note: Certain regions are restricted from the airdrop. Please review the disclaimer before participating.
Winners: @casch-at, @armahmoodian, @kennylbj, @lalitkapoor, @hahadaxia, @fredericof89, @kjbstar, @minhhn2910, @westonli, @Jaha96, @elmaedesistemas, @magshaban, @cenaav, @lxianwei003, @ichu468, @erdiucar, @linhndd, @orilee, @labelexe, @PotamusPrime9

--
Christian Schwarzgruber, B.Sc.
T: +43 681 81 30 23 42
E: @.***


Upgrade to v0.8.1

Checklist

[ ] Update changelog in CHANGELOG.md.
[x] Make sure values.yaml and values.schema.json are valid.
[x] Fix label renaming
[x] Fix servicemonitor integration
[x] Add our setup back again (CNP & VPA...)
[x] Check docker image availability
[x] Compared upstream values.yaml and backported our changes

Kube-linter
I wasn't sure why this check was never triggered. But it first nagged about missing resources (we set them with vpa) and then it was complaining about 39 (imho minor) issues mostly/all from upstream. I disabled kube-linter via .kube-linter.yaml.
Git Subtree
I couldn't make sense of it. It didn't respect historic commits to main and therefore the PR delete/modified our changes. I'd to backport them in the end (could be my inability).
Helm Schema
helm schema-gen plugin is deprecated and no longer actively maintained. I used an online tool for generation, as schema-gen was not running on my arm.
ServiceMonitor
They deprecated the old style and added a new file containing the ServiceMonitors. I added it, but didn't test.
Helm Functions
They renamed a lot of labels/selector stuff functions. I hope i caught it all.
👀 Please take extra caution this time. I had to do a lot of manual changes. 👀

Approved, but please check the comments above, especially the registry -> repository one.


Wallpaper setting stop working in MacOS Sonoma

The wal -i "wallpaper.png" stopped setting the wallpaper on MacOS Sonoma

https://github.com/dylanaraps/pywal/blob/master/pywal/wallpaper.py#L133
This was done by modifying the ~/Library/Application Support/Dock/desktoppicture.db, but it seems that MacOS Somona no longer relies on this file.

Are there any alternative solutions to it?

AppleScript
tell application "System Events"
  tell every desktop
    set picture to POSIX file "/path/to/wallpaper.jpeg"
  end tell
end tell

But this solution seems to change the wallpaper only in the current space 😿 .

Sorry about that.  Apple changed how wallpapers works with Sonoma and I hadn't updated to it yet to see what they did.
Unfortunately this repo is no longer receiving updates and I do not believe anyone can claim it.  If you need Sonoma support, you can try my fork located here. https://github.com/robwaz/pywal
If you do use this fork and run into an issue, please file it against my fork.  These changes are "best effort" based on how things seem to work.  I have no issue on my Mac though. :)

AppleScript
tell application "System Events"
  tell every desktop
    set picture to POSIX file "/path/to/wallpaper.jpeg"
  end tell
end tell

But this solution seems to change the wallpaper only in the current space 😿 .

@mamantoha try something like https://gist.github.com/yuhonas/2c329f010665885e91ff9ae39a6e8042 whichi does prompt for the wallpaper to set although it could be hard coded (obviously)


[HOLD for payment 2023-02-13] Bank account information is editable after reaching Personal information step

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

On iOS or android, navigate to Settings > Workspace > Add bank account
Complete the steps until you reach the Personal information step
Tap < to navigate back to Company information
Verify that Company name and Tax ID can be edited
Tap < and then Continue with setup
Verify that Routing number and Account number can be edited

Expected Result:
Company name, Tax ID, Routing number and Account number should not be editable once the user reaches the Personal information step
Actual Result:
Company name, Tax ID, Routing number and Account number are editable once the user reaches the Personal information step
Workaround:
N/A
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f0615bf33b37eff9
Upwork Job ID:<PHONE_NUMBER>879507456
Last Price Increase: 2023-01-31

PR up https://github.com/Expensify/App/pull/14611

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.65-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/14611

If no regressions arise, payment will be issued on 2023-02-13. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@aimane-chnaif / @luacmartins] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@aimane-chnaif / @luacmartins] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@aimane-chnaif / @luacmartins] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@aimane-chnaif] Propose regression test steps to ensure the same bug will not reach production again.
[ ] [@michaelhaxhiu] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@aimane-chnaif would you mind filling the BZ checklist above?

@michaelhaxhiu as for the regression test steps, we can use the test steps in the OP.

@michaelhaxhiu could you please help with paying @aimane-chnaif for the PR review?

Still waiting for payment

Sorry for the delay here, got swamped with todos the past 2 weeks. Just coming up for air 🏊

If no regressions arise, payment will be issued on 2023-02-13. 🎊

This is internal and @aimane-chnaif was the C+ for review. Should be flat payment of $1000 for that.

[@michaelhaxhiu] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Next steps:

Requesting the buddy check on new QA steps in slack here

Then I'll cc @Expensify/applauseleads in the draft GH and assign applausebot

Close this GH

Just missing the regression tests and we should be good to close this

Just waiting for regression tests. @michaelhaxhiu I think we should be good to add the tests you posted in Slack.

Ah sorry, just got sidetracked with ECX + internal GHs. Getting to this now 😓

Updated checklist above ✅
Closing.


Wrong config.keywords description

Issue
config.keywords says to separate keywords with a comma but that's not the right way.
Context
To showcase I will use a list of tags with Bulma CSS framework and a pug template.
pug snippet:
        div(class="tags")
          each tag in config.keywords
            span(class="tag")
              = tag

Case 1
_config.yml
keywords: documentation, markdown, custom, staticgen

Case 2
_config.yml
keywords:
  - documentation
  - markdown
  - custom
  - staticgen

or
keywords: [documentation, markdown, custom, staticgen]

Solution
In fact a valid YAML array of string is expect and not a string with keywords separated by commas.
PR
I'll do a PR very soon.

the "config.keywords" is mainly for open_graph helper which supports both string and array type.
if the config is a string, it will convert to an array, but it doesn't modify the original config.
I suggest your pug template to support both string and array types.

@curbengh But when using a string containing words separated by commas which is automatically  converted to an array, as you can see in Case 1 each char is split instead of each word. So you mean I have to detect in my template if an array or a string is provided and parse it accordingly like open_graph ?

So you mean I have to detect in my template if an array or a string is provided and parse it accordingly like open_graph

It depends whether you intend to publish your theme. If it's intended for the public, then your users most probably would specify keywords as a comma-separated string.
I do agree keywords shouldn't support comma-separated string in the first place, I guess it supports string because the resulting keywords meta tag is indeed a comma-separated string.
However, since keywords meta tag has been dropped in https://github.com/hexojs/hexo/pull/3805, it's no longer useful to specify keywords as a comma-separated string. I'll bring this up in hexo.


[ISSUE #216] pagination can chose pageSize

Hi, community
I have finished pagination can chose pageSize basicConfig module
see Issues ISSUE #216
please review code.

good job~


branches cleanup

remove branches apart from 8.1.0, 8.1.1, 8.2.0
only if certain very important branches are left then explain in releases.md page & keep otherwise merge to approriate branch

updated here: https://github.com/Jumpscale/jumpscale_core8/blob/master/releases.md


[Bug] RPC API returns error "missing block number value give"

🐛 Bug Report

I noticed that some of the aleo testnet bootnodes (<IP_ADDRESS>) return errors for some RPC calls (decoderawtransaction, gettransactioninfo).
Steps to Reproduce

For example block  02a02e776311768341d8794ca5d34646c44378770dffa5b6053304e29e093cbc has 2 transactions - 4e0cf21dfc3aa15fec8387e7b2a8f75b3ed8233d1957089d9f43152d6d7005ca and 4c16b17ef620e483a94cff58165bcc4c91b60368bd63c4ccd8b923df38d73f9b
Calling gettransactioninfo for 4c16b17ef620e483a94cff58165bcc4c91b60368bd63c4ccd8b923df38d73f9b works fine, but calling it for 4e0cf21dfc3aa15fec8387e7b2a8f75b3ed8233d1957089d9f43152d6d7005ca returns an error:
curl --request POST \
  --url http://<IP_ADDRESS>:3030/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id":"documentation","method": "gettransactioninfo","params": ["4e0cf21dfc3aa15fec8387e7b2a8f75b3ed8233d1957089d9f43152d6d7005ca"]}'

{"jsonrpc":"2.0","error":{"code":0,"message":"missing block number value give"},"id":"documentation"}

I looked a bit into the snarkos code and gettransactioninfo internally calls the function behind decoderawtransaction and both of those RPC calls return the same error in some cases, so the issues are probably related.
From looking at the existing issues, https://github.com/AleoHQ/snarkOS/issues/863 and https://github.com/AleoHQ/snarkOS/issues/861 are possibly causing this.
Your Environment
Whatever is running on bootnode <IP_ADDRESS>

I'ts fixed in https://github.com/AleoHQ/snarkOS/pull/875/commits/e1139d2e2ffb95c32dfb7ea541e57891bd10620e (part of the upcoming https://github.com/AleoHQ/snarkOS/pull/875).

Any idea why the full error message isn't being returned? Looking at the code the full message is
"missing block number value given block hash {}"
but I only receive
"missing block number value give"

Fixed by https://github.com/AleoHQ/snarkOS/pull/875.

@ljedrz Do you have any idea when this fix will be deployed to the testnet nodes?

The node with this IP has already been updated, and the RPC now returns a nice response, the block_number is null now.

Thanks a lot for your help!
So are those transactions with "block_number": null  canonical or are they from a fork? They are still returned by the "getblock" RPC call, so it seems that they are canonical.
I am working on the aleo block explorer and I'm trying to figure out if those transactions should be shown in the explorer or not.

The getblock RPC only returns a block number when it's a canon block, as only they have the notion of a number within the chain. This means anything returning null is a side-chain block, at least to the node's knowledge (as it's still technically possible that it is on a fork and will later revert and recognize that block as canon, at which point it would return a block number).

I meant that getblock shows block "02a02e776311768341d8794ca5d34646c44378770dffa5b6053304e29e093cbc" at height 283099 with having 2 transactions - "4e0cf21dfc3aa15fec8387e7b2a8f75b3ed8233d1957089d9f43152d6d7005ca" and "4c16b17ef620e483a94cff58165bcc4c91b60368bd63c4ccd8b923df38d73f9b". So the block itself seems to be canonical, but when I call gettransactioninfo with those 2 transactions I get inconsistent results:

"4c16b17ef620e483a94cff58165bcc4c91b60368bd63c4ccd8b923df38d73f9b" returns "block_number": 283099
"4e0cf21dfc3aa15fec8387e7b2a8f75b3ed8233d1957089d9f43152d6d7005ca" returns "block_number": null

This is issue https://github.com/AleoHQ/snarkOS/issues/863, which is already fixed. I'm preparing an option for the users to run the storage validator that can fix this.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-22-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 947

Questions ?
Please refer to the Backport tool documentation


OpenCFP Central asking for http authentication

Steps required to reproduce the problem

Create an app in opencfp central
Add the id / pass in config/production.yml
Clear cache
Try to connect

Expected Result

Redirect on OpenCFP Central, and then to the opencfp instance

Actual Result

OpenCFP central is asking for an http basic auth

@tdutrion I'm working on debugging what is going on here. Locally I have it doing the complete cycle but I am getting a different error.

Okay, so here is what I did:

Logged into OpenCFP Central
Created a new OAuth client
Made sure my local copy of OpenCFP's configuration file had the values for client ID, secret key, and redirect URL

Here is the relevant section of my configuration file, with my copy of OpenCFP running locally on my laptop.
opencfpcentral:
sso: on
clientId: 52
clientSecret:
authorizeUrl: https://www.opencfpcentral.com/oauth/authorize?
redirectUri: http://localhost:8080/sso/redirect
resourceUri: https://www.opencfpcentral.com/api/user
tokenUrl: https://www.opencfpcentral.com/oauth/token

Tried logging in via OpenCFP Central
Successfully ended up back on OpenCFP with a new account having been created

In cases where I got the HTTP Auth request, I fixed it by deleting my OAuth client and creating a new one.
I realize that this is not the best solution but until I can dig in and debug things on the OpenCFP Central side, this is a working solution.

Everything is working perfectly on my side now! Thanks so much for all the work, and having solved that in no time!


Add Config API documentation

What this PR does / why we need it
Add Config API documentation

General comment about structuring. The doc additions in this PR should not be IN README.md.
The main README should be the starting point to learn about the runtime project, especially from the standpoint of a plugin developer. I plan to expand it at some point, at which point the config should be one of the sections it references.
Much of what is added here is to address some issues in earlier implementation that is of little interest to the plugin developmers.
For now, can you do this:

factor the docs into two parts (it may make sense to have 2 mds for it), (1) one more for plugin developer (on how developer interacts with the configuration via various APIs now provided) (you can use docs/config.md for now), and (2) one more to document out design about how we tackled the config file corruption issue (this one we can put in a design doc section, say docs/design/config_ng.md. I think readme.md should link to (1), and (1) can reference (2).

@mpanchajanya
General comment about structuring. The doc additions in this PR should not be IN README.md. The main README should be the starting point to learn about the runtime project, especially from the standpoint of a plugin developer. I plan to expand it at some point, at which point the config should be one of the sections it references. Much of what is added here is to address some issues in earlier implementation that is of little interest to the plugin developmers.
For now, can you do this:

factor the docs into two parts (it may make sense to have 2 mds for it), (1) one more for plugin developer (on how developer interacts with the configuration via various APIs now provided) (you can use docs/config.md for now), and (2) one more to document out design about how we tackled the config file corruption issue (this one we can put in a design doc section, say docs/design/config_ng.md. I think readme.md should link to (1), and (1) can reference (2).

@vuil  Re structured the doc as suggested.

@vuil  Addressed the latest comments


Text in a container and the conatiner not stays over sprite,even with conatiner.depth great than sprite.depth

Version

Phaser Version: 3.18.0

Operating system: XUbuntu 18.04

Browser: Chrome 73.0.3683.103 (official) 64 bits

Description
If I put a text inside a container and set the text or the container depth in a value great than any sprite.depth, the text on the container shown at the screen stays under the sprite.

Example Test Code
-Just add a sprite
-create a container
-create a text and add it to the container
-set the positions of sprite and text to overlap
-now set the depth of the container or the text to stays over the sprite
-the text and container will appears over the sprite, but afetr some milliseconds, the text will jump to under the sprite. This happens verry quickly.

Render order of child game objects in a container are not followed up with depth property. Try these methods to reorder child game objects.

@rexrainbow thanks for the info, so, why the children of a container stays with depth equals to teh parent? Is this not to obvious to do? Or it's complexy to make that? I will use the methods of container, but it's not to "beautiful" solution.

@rexrainbow man, that methods not work here. I tried container.moveTo(child, index) and container.bringToTop() and even the sprite that is not inside container, stays over the container.
I want the container with all childs go up over the sprite, but I only can do this if I not use any container, or just the text object as not child of any container. Is this really possible?

Here is a test of using bringToTop method to change render order. You could change the top child in this test code to see the render result.

ok man, thanks for your help, but, I give up.
I will make my own way of set child by a Point.
Container is horrible way.
NOTE: yes, I used container.bringToTop(text) and nothing changed.
Thanks for your patience with me.


macOS: ensure fullscreen windows open in last used display when fullscreen cannot be restored

Testing #158388

open multiple windows and make multiple windows fullscreen on the same display and verify that only the last active window restores fullscreen while the others restore but not as fullscreen

I'm a bit hesitant on if this is a bug or not. But when testing the item quoted above I would always get the last active window to restore fullscreen on the same display and the other non-active windows would restore, but not as full screen. So all good there. The bit that I was unsure on was that the non-active windows sometimes restored on the monitor they were fullscreened on, and sometimes would restore on my secondary monitor (that they were not active on). I just tried this a few times in a row and got both behaviors. Was unclear about why it was sometimes putting things on my second monitor.

Yeah this is a great catch and a flaw with my change, however I am actually hesitant to further work on this given I actually want us to fix https://github.com/microsoft/vscode/issues/148698 and thus https://github.com/electron/electron/issues/34367.
If we can get this to work, all my workarounds can go away and you would see all windows restore to their correct displays.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Synchronize/lock multiple concurrent calls to same key in memoryCache.wrap

Use case:
The regular code from the example:
function getCachedUser(id, cb) {
    memoryCache.wrap(id, function (cacheCallback) {
        getUser(id, cacheCallback); // slowwwwww takes 1 second
    }, {ttl: ttl}, cb);
}

But what happens in my use case is that I have 10 requests to getCachedUser at the very same moment for the same id and it takes 1 second to fetch the user.
The result is that while the first call to getUser is in progress, the other calls to getCachedUser will start too, and all together will tap getUser method on the same key.
Of course that the issue is that I am planning to have millions of calls getCachedUser and the system behaves in a way that the calls to the same id are done all at once.
My workaround is to lock / synchronize all calls to the same id, and give a chance to the first one to finish, and let the others read from cache after they waited. Using https://www.npmjs.com/package/lock
And here are two options:
function getCachedUser(id, cb) {
    memoryCache.get(id, function(err, result) {
            if (err) {
                return cb(err);
            }
            if (result) {
                return cb(null, result);
            }

            // wait for the first one to finish, then go one by one to the critical session
            lock.acquire(id, function(release) {
                    release_and_cb = function(err, result) {
                        release();
                        return cb(null, result);
                    };

                    memoryCache.wrap(id, function(cacheCallback) {
                        getUser(id, cacheCallback);
                    }, {
                        ttl: ttl
                    }, release_and_cb);
                }
            });
    }
}

or simply
function getCachedUser(id, cb) {
    lock.acquire(id, function(release) {
            release_and_cb = function(err, result) {
                release();
                return cb(null, result);
            };
            memoryCache.wrap(id, function(cacheCallback) {
                getUser(id, cacheCallback);
            }, {
                ttl: ttl
            }, release_and_cb);
        }
    }
}

Does anyone doing  this?
Do you think this is a good solution? do you think that the second option has performance issue in high scale?
Do you think that this use case should / can be part of this package?

I have seen a tip here https://www.npmjs.com/package/cached#cachegetorelsekey-value-opts-cb---promisevalue that when you cache a promise, it is promised that it will execute once.
So this will work better:
memoryCache.wrap(key, function() {
    return getUserPromise(userId);
})
.then(function(user) {
    console.log('User:', user);
});

But it is said that we have to take care that once the promise rejects, we need to clear the cache and avoid caching a rejected promise.
I will be happy to get any input.

Sorry for the delayed response.  I think this use-case is covered by the callbackFiller code here: https://github.com/BryanDonovan/node-cache-manager/blob/master/lib/caching.js#L122

@nitzanav This is a pretty common use case with cache implementations for example see nginx proxy_cache_lock. I would like to see this be part of the package, @BryanDonovan can you explain a bit how callbackFiller meets this use case?

I haven't tried this particular case myself, but I was thinking the callbackFiller would queue up all requests with the same key so they don't all get sent at once.  At least that's the idea of it.

Hi all, I wrote a small test to check how cache-manager works, in this test I wrap slow method and call it 3 times per each userId
const cacheManager = require('cache-manager')

const memoryCache = cacheManager.caching({ store: 'memory', max: 100, ttl: 10/* seconds */ })
const delay = 3000

function getUserSlowRequest(userId) {
    console.log(`call getUserSlowRequest ${userId}`)

    return new Promise(res => setTimeout(() => {
        console.log(`return data getUserSlowRequest ${userId}`)

        res({ id: userId, foo: 'bar' })
    }, delay))
}

async function getCachedUser(userId) {
    return memoryCache.wrap(`user_${userId}`, async () => getUserSlowRequest(userId))
}

async function test() {
    console.log('start')
    console.log(await Promise.all([
        getCachedUser(1),
        getCachedUser(2),
        getCachedUser(3),
        getCachedUser(1),
        getCachedUser(2),
        getCachedUser(3),
        getCachedUser(1),
        getCachedUser(2),
        getCachedUser(3),
    ]))
    console.log('end')
}

test().then()

After check, I think that cache-manager works perfectly because it calls slow method just once per each userId
start
call getUserSlowRequest 1
call getUserSlowRequest 2
call getUserSlowRequest 3
return data getUserSlowRequest 1
return data getUserSlowRequest 2
return data getUserSlowRequest 3
[ { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' },
  { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' },
  { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' } ]
end

Thanks for sharing this, @alekseytupichenkov!

Duplicate of #88 (?).

This seems to work fine for single cache but fails for muli-cache.
Modifying the example from @alekseytupichenkov to use a multiCache
const cacheManager = require('cache-manager');
const { redisStore } = require('cache-manager-ioredis-yet');
const { REDIS_HOST } = process.env;

let proxyLayeredCache;
const setupCache = async () => {
  const memoryCache = await cacheManager.caching('memory', {
    max: 100,
    ttl: 10,
  });

  const store = await redisStore({
    host: REDIS_HOST,
    ttl: 999999999,
  });
  const redisCache = await cacheManager.caching(store);
  proxyLayeredCache = cacheManager.multiCaching([memoryCache, redisCache].filter(Boolean));

};

const delay = 3000;

function getUserSlowRequest(userId) {
  console.log(`call getUserSlowRequest ${userId}`);

  return new Promise(res => setTimeout(() => {
    console.log(`return data getUserSlowRequest ${userId}`);

    res({ id: userId, foo: 'bar' });
  }, delay));
}

async function getCachedUser(userId) {
  return proxyLayeredCache.wrap(`user_${userId}`, async () => getUserSlowRequest(userId));
}

async function test() {
  console.log('start');
  await setupCache();
  console.log(await Promise.all([
    getCachedUser(1),
    getCachedUser(2),
    getCachedUser(3),
    getCachedUser(1),
    getCachedUser(2),
    getCachedUser(3),
    getCachedUser(1),
    getCachedUser(2),
    getCachedUser(3),
  ]));
  console.log('end');
}

test().then();

produces this results in logs
start
call getUserSlowRequest 1
call getUserSlowRequest 2
call getUserSlowRequest 3
call getUserSlowRequest 1
call getUserSlowRequest 2
call getUserSlowRequest 3
call getUserSlowRequest 1
call getUserSlowRequest 2
call getUserSlowRequest 3
return data getUserSlowRequest 1
return data getUserSlowRequest 2
return data getUserSlowRequest 3
return data getUserSlowRequest 1
return data getUserSlowRequest 2
return data getUserSlowRequest 3
return data getUserSlowRequest 1
return data getUserSlowRequest 2
return data getUserSlowRequest 3
[
  { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' },
  { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' },
  { id: 1, foo: 'bar' },
  { id: 2, foo: 'bar' },
  { id: 3, foo: 'bar' }
]
end

Wondering if there's any built in way to handle stampede also when using multi-cache.


Bump to v5.5.4

Proposed Changes
https://github.com/zwave-js/zwavejs2mqtt/releases/tag/v5.5.4

https://github.com/zwave-js/zwavejs2mqtt/releases/tag/v5.6.0 was just tagged and has zwavejs 8.3.0 which fixes some critical S2 bugs.

looks like 5.6.0 has been removed at this time.

5.6.0 looks to be re-released and is likely much more important than 5.5.4 as it fixes S2 bugs.

5.6.0 looks to be re-released and is likely much more important than 5.5.4 as it fixes S2 bugs.
Yes S2 bugs is what I am waiting on :)

Add back 5.6.0 @frenck to signoff, and hope this helps is workload
https://github.com/zwave-js/zwavejs2mqtt/releases/tag/v5.6.0

@asucrews it appears you may have to put an appropriate label on the PR.  I believe "dependencies" is the appropriate label for this change.  If you do that, I believe it'll possible go thru the automated workflow to get tested... granted, it appears it'll still need a review with someone with write access and a new release made, but it should move it a few steps forward.

I would to add the label but i cant :( it might be because I am first-time contributor

You might want to merge the commits and force-push the branch to get a clean history. Also (extrapolating from previous PRs), it should probably be named "Upgrades ZwaveJS2Mqtt to v5.6.0".
As for the label to get the workflow to run through, maybe @iantrich, @balloob or @timmo001 would be willing to help out here (since @frenck appears to have been offline for September so far)?

As for the label to get the workflow to run through, maybe @iantrich, @balloob or @timmo001 would be willing to help out here (since @frenck appears to have been offline for September so far)?

I've been on holiday and after that ended up in a hospital for sugergy. Hence I have been offline for a bit. Currently recovering and slowly picking up stuff again.
Will try to pick this one up for tomorrow.

As for the label to get the workflow to run through, maybe @iantrich, @balloob or @timmo001 would be willing to help out here (since @frenck appears to have been offline for September so far)?

I've been on holiday and after that ended up in a hospital for surgery. Hence I have been offline for a bit. Currently recovering and slowly picking up stuff again.

I'm sorry to hear that :( I hope you'll recover quickly!


Fork a New & Maintained Project

Somebody else needs to take control of this project and/or fork and actually maintain it. There are a ton of pull requests that are completely legitimate and very useful that have not been merged. It's very frustrating.

Thanks for taking over merging those PRs. I've merged your fork. As far as changes, mostly dealing with using IE8 native ability to send messages, which seemed to fix a problem for newer browser using IE8 compatibility mode.


Manual translated Chinese being translated again as Japanese

I got a problem that AutoTranslator using GoogleTranslate to translate manual translated Chinese text to Chinese again. This double translation caused incorrect results and I don't know how to troubleshoot this problem.
I have a large translation folder in zh-CN for a Japanese game. The original translation was copied from HS2 English translation.
It is including RedirectedResources, r:, sr: etc.  e.g:
sr:"^(?<latin_i>[\u0020-\u024F｢【｣】]+)(?[^\u0000-\u024F]+)(?<latin2_i>[\u0020-\u024F｢【｣】]*)$"
It has more than 6,000 entries of text translation and more than 60,000 Japanese name translation.
I translated English to Chinese from [Japanese A]=[English A] to [Japanese A]=[Chinese A]
For example:
from
プレイヤー衣装選択=Player costume selection
to:
プレイヤー衣装選択=玩家服装
Then the game shows correct Chinese text ([Chinese A]) for a very short time then it becomes weird Chinese [Chinese B].
I checked _AutoGeneratedTranslations.txt it creates new entries like:
玩家服装=玩具屋衣服
Format is [Chinese A]=[Chinese B]
That means AutoTranslator thought [Chinese A] in my txt file are Japanese and sent them to google  to translate to Chinese again.
I have to disable online auto translation by set Endpoint= then it works fine.
I suspect it related to 'sr:' so I tried removing "sr:" with "" in the file but still cannot solve the problem.
I guess it is a bug because it should never auto translate text in txt file again.
The Version is 4.12

The source of the problem is redirected resources for sure.
The problem is that these texts are translated before they are loaded by the UI. Then when they are loaded onto the UI, the auto translation functionality kicks in and re-translates it because it thinks it is not translated.
I'm not sure what a viable solution to this is when it is very difficult to distinguish between the two languages.
There is a similar problem when a JP name is included in an otherwise english text that was loaded through redirected resources. In that case that string would be re-translated again, although in that case the input and output would likely be very similar.
Any solution would probably require fiddling a bit with the text resource redirector allowing it to block standard translation functionality in specific situations or for certain texts.

No ways to distinguish Japanese and Chinese because they share thousands of characters. Traditionally Korean and Vietnamese also share many characters, named CJKV characters.
Thank you for your detailed reply although I don’t understand the design of this plug-in.
Would it be possible to automatically add special prefix when the plug-in loading redirected resource and remove this prefix when UI calls the plugin to display?
If it is hard to be automatic, I would it be possible to add a special prefix to disable auto translation for a line or a part of phrase? Even can be a bracket to address the mixture of English and Japanese problem you mentioned. Such as:
[Japanese A]=[Japanese B] nt:{Do not Translate this}
The plug-in then should display:
[Translated B] Do not translate this
Then I can use a simple script to patch all files under Redirected Resources folder with this prefix or bracket.

@flywhc Can you try putting an extra file file under Text with [Chinese A]=[Chinese A]?
For example:
玩家服装=玩家服装

If that works a change could be made to TextResourceRedirector that might solve it (or at least help).

Hmm, @flywhc, now that you mention it yourself there may be a workaround of the sorts that you are mentioning, although I would like to solve this properly.
The default configuration of XUA comes with an option that indicates that it should ignore any texts that starts with '\u180e', a mongolian vowel separator.
If the translation (not the untranslated text!) in the redirected resources starts with this character, the plugin should ignore the text. So you could make all translated entries start with this character.
With that being said, that option, as it is implemented in the in XUA currently would not work as intended for this. But that is a bug more than anything else, something that I'd be willing to change.
Also note that unicode escaping is not currently supported in the translation file format, so you'd have to write the actual character, which is invisible, and not \u180e.
Maybe an approach like this could be integrated directly into the text resource redirector if we simply make a convention within XUA.

Maybe this could be handled completely transparently to the text resource redirector as well. The plugin could simply add the mongolian vowel separator character to all translations added to it (or whatever would be used internally). Or it could be any combination of characters really and then the plugin could identify that combination of characters and fix the text before display.

This could cause problems if there is some pre-processing of text before display though. Like OPTION, or whatever it is that is used in various games. That may be an issue, right? @GeBo1

@gravydevsupreme For entries with prefixes (all the HS2 ones should be documented) the text on the translation side is handed off (mostly) untouched, so as long as the game engine leaves it alone things like this should work:
PREFIX1:こんにちは= Hi!
// \u180e just after =

I see. All good then. I was primarily worried about messing up some "encoded text" by including a character inside a prefix rendering it unrecognizable.

Just as a follow up: I hope to try to implement a prototype for this during the weekend.

Thank you @GeBo1 and @gravydevsupreme.
I did two tests:

copy \RedirectedResources*.* to \Text (both folder has same assets folder)
It works well for a while but a double translated sentence is created in the _AutoGeneratedTranslations.
that text is stored in \Text, not  \RedirectedResources\

add 0x180E after every '=' in txt under \RedirectedResources
I saw a few double translated sentences in _AutoGeneratedTranslations too and all of them are stored in \Text, not  \RedirectedResources

It seems RedirectedResources is one of the causes of the problem.

Hi. Please try this version.
XUnity.AutoTranslator-BepIn-5x-4.13.0-beta1.zip
And report backs if it works. It should prevent double translation of redirected resources entirely. (can be controlled through new configuration option).
RedirectedResourceDetectionStrategy=AppendMongolianVowelSeparatorAndRemoveAll

Available options:

None (disable the new behaviour)
AppendMongolianVowelSeparator (append a mongolian vowel separator and don't attempt to remove it)
AppendMongolianVowelSeparatorAndRemoveAppended (append a mongolian vowel separator and remove only the last character if it is a mongolian vowel separator)
AppendMongolianVowelSeparatorAndRemoveAll (append a mongolian vowel separator and remove all occurrences)

These options are included because different games obviously handles it's text resources differently combining texts in different ways.

Thank you gravydevsupreme.
I overwrote all files in my game folder and keep the option unchanged and play the game. Then I didn't see any strings in RedirectedResource being double translated.
one string has translation under RedirectedResources but it created an Google AutoTranslate version in the AutoTranslator file
\RedirectedResources\assets\abdata\studio\info\00\animecategory_00_00\translation.txt:
主人公=主角
\Text_AutoGeneratedTranslations.txt:
主人公=英雄
Following double translated strings in _AutoGeneratedTranslations  are originally stored in other txt files under Text folder:
初始颜色=从最开始
月=月
Z轴旋转=Z车削
呵呵呵～我们真是相思相爱啊～来吧～来吧～呵呵～呵呵呵……♪\n[72A4]=呵呵呵〜对,对不起,对不起,我要来了,我要来了,我要来了

Good news is during half hour testing only above strings have problem. Majority of strings are correct.
They have no special characters from other text, such as other strings in same txt file are all working fine and they are in different scences and different txt files.

About the first issue of:
主人公 being translate differently.
I am not quite sure this is the same issue. If this was a "double translation" issue as initially described the problem would be that 主人公 would first be translated into Chinese (主角) and then 主角 would be retranslated into Chinese under the assumption it was actually Japanese, which means you should have following entries instead:
主人公=主角
主角=???
With the two translation you describe here it simply means that 主人公 will be translated differently depending on where it is loaded from, which is a valid scenario and one of the exact reasons we even have redirected resources in the first place.
I am not quite sure I am following the second issue you are mentioning. You will have to be more specific.

@gravydevsupreme Sorry I did explain clearly. It has two issues:

主人公 is not double translated. The AutoTranslator didn't take my translation in \RedirectedResources...translation.txt and called GoogleTranslate and create a new line in _AutoGeneratedTranslations.txt for it.
This word is the last line of the file \RedirectedResources...translation.txt:

....
床=地板
飲食=饮食
寝=睡觉
主人公=主角

I used hexeditor to compare them and both "主人公" have no difference and no Mongolian char added.
It is a default name in the input field that allows users to change the name of the character.
It is the only entry that has the problem so it is not a big deal. I solved it by adding extra "主人公=主角" into a txt file under \Text folder.

初始颜色 to 呵呵呵～我们真是相思相爱啊 are another set of text under \Text folder, which are double translated:
初始颜色 is in \Text\Main\Character_Maker.txt
月 is in \Text\Main\Character_Maker.txt
Z轴旋转 is in Text\Main\Character_Maker.txt
呵呵呵～我们真是相思相爱啊 is in \Text\zz_MachineTranslations\z_MachineTranslation.txt
and I found more in z_MachineTranslation.txt during repeat tests
I found more text being double translated in Character maker and the dialog after H scene. The strange is in repeating tests only these strings have the problem and they aren't special than other strings in the same txt file.
such as X轴旋转 and Y轴旋转 are very similar to Z轴旋转 (rotate by Z axis) but they don't have the problem.

I think this may be because that translation simply doesn't belong in that redirected resource translation file then. I assume it would not be used for the English translation either then.

So, to clarify further, these four last translations have nothing to do with (and are therefore not present in) redirected resource translations? But none-the-less they are being translation twice like so (example with Z轴旋转):

[original JP]=> Z轴旋转 (zh)
Z轴旋转 (zh, assumed JP) => Z车削

That should be the reason! adding an additional pairs in \Text should  be correct solution.

yes

in the file HS2\BepInEx\Translation\zh-CN\Text\Main\Character_Maker.txt
回転Z=Z轴旋转
[jp'rotate by Z axis'] = [zh'rotate by Z axis']
in the  _AutoGeneratedTranslations.txt it created a new line after running the game:
Z轴旋转=Z车削
[zh'rotate by Z axis'] = [zh'lathe by Z axis']

If it double-translates like that it is certainly a bug. I tried reproducing but I was unable to. Can you please tell me where exactly this occurs for '回転Z'?
I tried reproducing it with hair position adjustments, where this exact text is present, but it just worked.

Perhaps you can provide a translation folder with the minimal translations required to reproduce the problem and tell me where the problem occurs?

I reproduced the issue with English HS2. I am using [ScrewThisNoise][Illusion] HoneySelect 2 (ハニーセレクト2) BetterRepack R4
https://files.catbox.moe/rekm1q.zip
Extract above zip file to BepInEx\Translation\en\Text\Main
it overwrites Character_Maker.txt.
Then run the game and enter the Male Character maker. Then it generates the following lines in the _AutoGeneratedTranslations.txt:
初始颜色=From the beginning
月=Month
Z轴旋转=Z rotation

They are in form of [Chinese]=[English]
In Character_Maker.txt, they are:
初期カラー=初始颜色
月=月
回転Z=Z轴旋转

[Japanese]=[Chinese]
I don't know where They are displayed on the screen. Hair settings display correct text.
Another case is dialog after H scene and I saw incorrect text displayed on the screen. There are too many dialog texts and the result is very random (only occurred once in half-hour) so I don't know how to reproduce it.

I was able to reproduce it now.
I don't think those texts are ever displayed anywhere.
The problem originates from the translation scoping:
#set exe HoneySelect2
// Scene: CharaCustom (3)
#set level 3

in the top of the file. If you remove those those entries will no longer be added.
I am not sure why but the game seems to have text components existing outside of any scenes where those texts are displayed in. Maybe they are copied after character editor creation and kept out of the scene.
I would not be surprised if it is perhaps related to @ManlyMarco Illusion Modding API, which duplicates UI components already existing in the scene in order to allow other mods to extend on the UI. I am not sure why it would not be present in any scene, though, since as far as I am aware you can't even instantiate unity objects outside scenes.
In fact if I remove that mod the double translation no longer occurs even with translation scoping enabled. (obviously that breaks the entire game since half the plugins that exist depend on it, so don't do that).
But I think the main takeaway from this is: I don't think any of these texts are ever displayed anywhere and they may simply be an artifact of the how game engine works, how the game is implemented and how game object duplication works.

Thanks @gravydevsupreme . That solved another cause.
We have the last occasion: it randomly displays a double translated sentence after H scene in game.
this is the JP to ZH:
えーっと……そのー……今のわたし……なにも抵抗できないですよ……ほら、まともに立てないですもん……=嗯……那个……现在的我……什么也抵抗不了啊……看～根本站不起来啊……[751B]
I added a line number like "[751B]" at every end of the line of Chinese.
The game only displays "嗯..." without "[751B]" after H scene when the NPC sum up. in the _AutoGeneratedTranslations.txt it added:
嗯……那个……现在的我……什么也抵抗不了啊……看～根本站不起来啊…\n…[751B]=嗯...
I notice all of the double translated text are added with '\n'. I am not sure it is the reason.

Please indicate which translations files are involved in this so I can test and reproduce it.

~Please indicate which translations files are involved in this so I can test and reproduce it.~
Actually, nevermind. If the game adds a newlines and dots after the translation it is obvious why it happens. Not sure about what a solution would be though.

It is in \Text\zz_MachineTranslations\z_MachineTranslation.txt
Will automatically add MongolianVowel help?
Does IgnoreWhitespaceInDialogue add newlines?

You can try the following:
Change RedirectedResourceDetectionStrategy=AppendMongolianVowelSeparatorAndRemoveAll to RedirectedResourceDetectionStrategy=AppendMongolianVowelSeparator.
This will not attempt to remove the vowel separator which is used to identify the string as a redirected resource and as such when the game adds "\n..." to the string it will still think it has been redirected and ignore it.
I am not sure how the game is going to react to that, though. Maybe it will flood sentences with squares indicating missing characters in the font or maybe it will just work.
Either way the real solution is tougher because it is about finding a solution to the situation where the game adds untranslated text to an already translated text, which is also an issue in other games (I have seen it in several).

Does the plug-in compare the string to be displayed with existing translated text strings, then query googleTranslate if no entry matches?
So this is how the double translation happens: the game adds ‘\n’ (no dots) if the text is too long to fit screen but the plug-in cannot match it with any translated text, so the plug-in query googleTranslate?
If this is the case, can it do similar logic as IgnoreWhitespaceInDialogue, to remove all ‘\n’ from text and then compare it with translated strings?

I doubt the ellipsis is added because the text cannot fit on the screen. This is probably just the behaviour of the game.
Dots are not whitespace, and all whitespace is already removed from texts of this size. But this is only during translation. It is completely unrelated to the text lookup itself. The plugin does a lot of things related to whitespace to make smart lookups. It doesn't do anything about punctuation, though.
Any proper solution really involves identifying the fact that text is being appended onto a translated text. Implementing this is a performant manner is just a relatively big task. And the fact that is somehow also involved redirected resources make it quite a bit more complex.
Also: Did my suggestion not work?

Ellipsis is not added. Both Japanese and Chinese use two characters to represent one ellipse ( totally 6 dots)
The game only added newline characters in a silly way: if the text length longer than n then it inserts a newline char after the n-th character, even in the middle of jp/zh two-character ellipsis. In the real world, we never separate two 3-dots ellipses in two lines.
So I think simply remove all newline before all text comparison should solve the problem.
In most cases the game display correct. I have to find a way to make this problem always reproducible then I can validate your suggestion.
Talking about smart lookup, I got a few texts in _AutoGeneratedTranslations.txt contains whitespace \u20, while I checked the English HS2 project  uses  "　" \u3000 for the same Japanese original text.
I haven't seen this text on the screen yet so I hope the smart lookup will treat \u3000 as \u20
It is hard to validate these random appeared texts.

@gravydevsupreme your suggestion works.
I used script to replace all dialog texts to the string I mentioned which always causes double translation.
Then I can always reproduce the issue.
Then I added Mongolian vowel before every dialog text and change the setting.
Finally no auto-generated text has been added.
Thank you!
I am not unity plug-in developer but if I develop a similar app, I will use a sqllite dB to store 4 indexed fields: original text; original text without newline and whitespace (\u0020, \u00a0, \u3000); translated text; translated text without newline and whitespaces. Then match the translated text without newline and whitespaces first, skip translation if found. Then try to match original then original without whitespaces.

I have now released v. 4.13.0. I will probably look into a generic solution that allows the plugin to detect text-appends in a generic fashion in the future.

I have now released v. 4.13.0. I will probably look into a generic solution that allows the plugin to detect text-appends in a generic fashion in the future.

Does the v4.13.0 including the change? I extracted XUnity.AutoTranslator-BepIn-5x-4.13.0.zip to my game folder and the double translation is back. I have to replace plugins with the beta version you post in this thread to solve double translation in redirected resources.

It should include all changes that I have posted here, so I certainly don't understand this.
Can you try removing the RedirectedResourceDetectionStrategy line from your config (so it resets to default) and try again?

It should include all changes that I have posted here, so I certainly don't understand this.
Can you try removing the RedirectedResourceDetectionStrategy line from your config (so it resets to default) and try again?

Tested again with a clean game. It works. Thank you!


Register gh ci workflows

Why:
Closes [issue link]

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[ ] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

!workflow register

!workflow register

!workflow register

!workflow register


fix(DTFS2-7022): restrict sign in link expired path

Introduction :pencil2:
The sign-in-link-expired path in portal was not restricted based on a user having a present 2fa token. The user could not resend a sign in link, so this is not an issue. However, it should be fixed
Resolution :heavy_check_mark:
Added token restriction to endpoint

Codecov Report
Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (6da84ce) 21.88% compared to head (7bb340e) 27.22%.
Report is 167 commits behind head on main.

Files
Patch %
Lines

...1/controllers/tfm/deal/tfm-get-deals.controller.js
0.00%
3 Missing :warning:

...lers/tfm/facility/tfm-get-facilities.controller.js
0.00%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2607      +/-   ##
==========================================
+ Coverage   21.88%   27.22%   +5.34%
==========================================
  Files        1132     1290     +158
  Lines       27048    29873    +2825
  Branches     4447     4864     +417
==========================================
+ Hits         5920     8134    +2214
- Misses      18403    18914     +511
- Partials     2725     2825     +100

Flag
Coverage Δ

api-test
0.48% <ø> (ø)

ui-test
64.50% <ø> (-0.64%)
:arrow_down:

unit-test
10.28% <0.00%> (+6.50%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

New PR: https://github.com/UK-Export-Finance/dtfs2/pull/2750


Prevent first header from being lost when combining arrays

Fixes #182

Hello @ejunker,
Thanks for your contribution, would you please rebase your PR with the latest master?

Squashed commits, rebased and tests are passing.

@ejunker thank you very much!


🐛 fix issue 34 when running Pi-Hole in Docker Container

This PR will fix issue #34 😁
But… it will make one docker exec for each domain found in $all_domains 😢 which will make it run very, very long (about some domains per second - in my tests I had up to 2000 domains per day)! We are dealing with hours and not minutes anymore - but it doesn't say command not found anymore - problem/issue solved 😉
⚠ There's definitely the need to optimize this in some way… 🤔

Checks won't fail any more after PR #37 has beeen finished/done…

but it doesn't say command not found anymore - problem/issue solved wink

I'm not convinced if this is really a working solution. If it takes hours this is nothing I'd like to ship to users

Does it really work?
I did not test it, but expect it to fail also here:
https://github.com/yubiuser/pihole_adlist_tool/blob/890f454c781c32d984c73f0bd8494aa2d9be2770/pihole_adlist_tool#L1006

Does it really work?
I did not test it, but expect it to fail also here:
https://github.com/yubiuser/pihole_adlist_tool/blob/890f454c781c32d984c73f0bd8494aa2d9be2770/pihole_adlist_tool#L1006

No. I forgot this 😞 I will add an update later…

I'm not convinced if this is really a working solution. If it takes hours this is nothing I'd like to ship to users

You are right, do not merge this until we have an optimized version!
I have some ideas but have to test and check…

💡  This is working with limit of 2000 (distinct) domains, but limited due to "Argument list too long". This array should be splitted by for example 500 domains and regex-tested in packages…
         mapfile -t all_domains < <(sqlite $TEMP_DB "SELECT domain FROM all_domains")

-        for CURRENT_DOMAIN in "${all_domains[@]}"; do
                 if [ "$PIHOLE_DOCKER" = 0 ];
                     then
-                        pihole-FTL regex-test $CURRENT_DOMAIN |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read REGEX_ID; do
-                            sqlite $TEMP_DB "INSERT INTO domain_by_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
+                       for CURRENT_DOMAIN in "${all_domains[@]}"; do
+                            pihole-FTL regex-test "$CURRENT_DOMAIN" |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
+                                sqlite $TEMP_DB "INSERT INTO domain_by_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
+                            done
                         done
                     else
-                        docker exec $CONTAINER_ID pihole-FTL regex-test $CURRENT_DOMAIN |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read REGEX_ID; do
+                        ### TODO: remove limit!!!! ####### TODO ####### TODO #######
+                        docker exec "$CONTAINER_ID" bash -c \
+                          "$(for CURRENT_DOMAINS in $(sqlite $TEMP_DB 'SELECT domain FROM all_domains limit 2000'); do
+                              echo pihole-FTL regex-test "$CURRENT_DOMAINS" ; done)" \
+                                  |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
                             sqlite $TEMP_DB "INSERT INTO domain_by_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
                         done
+                        #docker exec "$CONTAINER_ID" pihole-FTL regex-test "$CURRENT_DOMAIN" |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
+                        #    sqlite $TEMP_DB "INSERT INTO domain_by_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
+                        #done
+                        ### TODO: this really needs some performance optimization to avoid 1000s of docker-execs
+                        :
                 fi
-        done

 # count for each RegEx_id how many domains are in domain_by_regex and store it in table regex_black

@@ -1014,9 +1023,17 @@ EOF
         mapfile -t all_exact_domains < <(sqlite $GRAVITY "SELECT domain FROM domainlist WHERE type in (0,1);")

         for CURRENT_DOMAIN in "${all_exact_domains[@]}"; do
-          pihole-FTL regex-test "$CURRENT_DOMAIN" |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
-              sqlite $TEMP_DB "INSERT INTO domainlist_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
-            done
+                if [ "$PIHOLE_DOCKER" = 0 ];
+                    then
+                        pihole-FTL regex-test "$CURRENT_DOMAIN" |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
+                            sqlite $TEMP_DB "INSERT INTO domainlist_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
+                        done
+                    else
+                        docker exec "$CONTAINER_ID" pihole-FTL regex-test "$CURRENT_DOMAIN" |grep -E -o "DB ID [0-9]*"|awk '{print $3}' | while read -r REGEX_ID; do
+                            sqlite $TEMP_DB "INSERT INTO domainlist_regex(domain, regex_id) VALUES ('$CURRENT_DOMAIN',$REGEX_ID);"
+                        done
+                        ### TODO: may need some performance optimization to avoid so much docker-execs
+                fi

❓ Which counts are relevant for the regex-mode?
  [i]  Since 01.02.2022	 0:58:13 522 different domains from your adlists have been blocked 15680 times in total
       (blocked directly by gravity or during deep CNAME inspection)
  [i]  Using you current adlist configuration 546 domains would have been blocked 16606 times
  [i]  Adlist coverage (sum of "hits covered" ca. 47.000)
  [i]  In total your adlists contain 189 visited (covered) unique domains - meaning those domains are contained only in a single adlist.
…
  [i]  Since 01.02.2022	 0:58:13 you have been visiting 2980 different domains.
       You have 22 blacklist RegEx configured (20 enabled)
       With your enabled blacklist RegEx you would have covered 1 different domains.
  [i]  Please note: the internal Pi-hole RegEx test used here only checks domains against enabled RegEx.
       Therefor, currently disabled RegEx will always have 0 domains covered.

Which counts are relevant for the regex-mode?

All regex (number not shown) are checked against the 2980 distinct domains

@yubiuser , I changed my commit / PR:
This PR will disable regex-analysis when Pi-hole is running in a docker container and tells user about this.
So Regex analysis is still not supported on docker, but script isn't doing anything worthless/useless stuff anymore. Do you agree?

I also added a .stickler.yml 😉

The difficulty is that we have an unknown and possibly very big list of domains that we have to pass to the docker container for regex-checking. I really have no clue how to solve this efficiently… 🤷🏻♂

I agree that we should probably disable regex-checking if Pi-hole is running on docker as long as we do not have a better solution.
Please remove the stickler stuff from this PR. I'm happy to include it, but don't mix unrelated changes in one PR

Is this PR now ready for a merge?

I guess best would be a rebase on current development. Please also target development. Do not modify .github/workflows/shellcheck.yml in this PR, draft a new one for this. One PR for one issue.

[x] rebase on current development
[x] don't modify .github/workflows/shellcheck.yml (and .stickler.yml as well)
[x] local run of GH action:

$ act
[Shellcheck Lint/Shellcheck Lint] 🚀  Start image=ghcr.io/catthehacker/ubuntu:act-latest
[Shellcheck Lint/Shellcheck Lint]   🐳  docker pull image=ghcr.io/catthehacker/ubuntu:act-latest platform= username= forcePull=false
[Shellcheck Lint/Shellcheck Lint]   🐳  docker create image=ghcr.io/catthehacker/ubuntu:act-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Shellcheck Lint/Shellcheck Lint]   🐳  docker run image=ghcr.io/catthehacker/ubuntu:act-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Shellcheck Lint/Shellcheck Lint]   🐳  docker exec cmd=[mkdir -m 0777 -p /var/run/act] user=root workdir=
[Shellcheck Lint/Shellcheck Lint]   🐳  docker cp src=/home/thomas/temp/PRs/pihole_adlist_tool/. dst=/home/thomas/temp/PRs/pihole_adlist_tool
[Shellcheck Lint/Shellcheck Lint]   🐳  docker exec cmd=[mkdir -p /home/thomas/temp/PRs/pihole_adlist_tool] user= workdir=
[Shellcheck Lint/Shellcheck Lint] ⭐  Run actions/checkout@v2
[Shellcheck Lint/Shellcheck Lint]   ✅  Success - actions/checkout@v2
[Shellcheck Lint/Shellcheck Lint] ⭐  Run Download Shellcheck
[Shellcheck Lint/Shellcheck Lint]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /home/thomas/temp/PRs/pihole_adlist_tool/workflow/1] user= workdir=
| shellcheck-stable/LICENSE.txt
| shellcheck-stable/README.txt
| shellcheck-stable/shellcheck
[Shellcheck Lint/Shellcheck Lint]   ✅  Success - Download Shellcheck
[Shellcheck Lint/Shellcheck Lint] ⭐  Run Check Shellcheck Version
[Shellcheck Lint/Shellcheck Lint]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /home/thomas/temp/PRs/pihole_adlist_tool/workflow/2] user= workdir=
| ShellCheck - shell script analysis tool
| version: 0.8.0
| license: GNU General Public License, version 3
| website: https://www.shellcheck.net
[Shellcheck Lint/Shellcheck Lint]   ✅  Success - Check Shellcheck Version
[Shellcheck Lint/Shellcheck Lint] ⭐  Run Run Shellcheck
[Shellcheck Lint/Shellcheck Lint]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /home/thomas/temp/PRs/pihole_adlist_tool/workflow/3] user= workdir=
[Shellcheck Lint/Shellcheck Lint]   ✅  Success - Run Shellcheck

[ ] testing before/after as done in PR #37
[ ] target development

Whats's about the changes in line 859 and above?

What changes do you mean? 🤷🏻♂  git diff development shows me these changes:

Is there anything "wrong" or are you missing anything? If this is the case, it might be my fault while rebasing and resolving some merge conflicts…

Something went wrong during rebase I guess. These changes were introduced in your other PR but later reverted.

I fixed the rebase now. git diff now shows only the "do not RegEx when running in docker container" parts for issue #34 - do you want another squash of all commits to a single one before merging?

I'll add a final test later (in/after the lunch-break possibly)…

I just decided that it looks Ok ;-)
But will wait for your feedback before merging to master

Short coffee-break before next meeting 😜
🦎🖥  ✔ ~/temp/PRs/pihole_adlist_tool [fix_issue_34|…2]
11:26 $ ./pihole_adlist_tool -d 2 -t 100 -r -a > new_with_r.txt
🦎🖥  ✔ ~/temp/PRs/pihole_adlist_tool [fix_issue_34|…3]
11:30 $ ./pihole_adlist_tool -d 2 -t 100 -a > new_without_r.txt
sdiff -s new_with_r.txt new_without_r.txt🦎🖥  ✔ ~/temp/PRs/pihole_adlist_tool [fix_issue_34|…4]
11:30 $ sdiff -s new_with_r.txt new_without_r.txt
  [i]  REGEX_MODE: Disabled due to running Pi-hole in Docker  |	  [i]  REGEX_MODE: Disabled
  [i]  Since 26.02.2022	11:30:20 982 different domains |	  [i]  Since 26.02.2022	11:30:45 982 different domains
  [i]  Using you current adlist configuration 998 domains|	  [i]  Using you current adlist configuration 998 domains
                                                                                Those would have been the 100 top blocked adlist do |	       Those would have been the 100 top blocked adlist do
stats.gc.fe.apple-dns.net                                2225 |	stats.gc.fe.apple-dns.net                                2223
stats.gc-apple.com.akadns.net                            727  |	stats.gc-apple.com.akadns.net                            725
63  1        407420         697              38098         11 |	63  1        407420         697              38094         11
64  1        99381          28               1533          16 |	64  1        99381          28               1531          16
🦎🖥  ✔ ~/temp/PRs/pihole_adlist_tool [fix_issue_34|…4]
11:31 $


PORT: search for libpython3.dll in msys2

Thanks.   Not very happy, but I don't see a good way around :cry:    The only slightly better way around would be to use the library as derived by CMake to create some configured janus config Prolog file and load that.   That gets really complicated ...
I see this more as an MSYS problem we must deal with.   It is not elegant to change the naming conventions ...


Add-AzureKeyVaultKey should be Add-AzKeyVaultKey

The PowerShell sample on Azure Key Vault without Role Separation (Example) mentions
$akvKey = Add-AzureKeyVaultKey -VaultName $akvName -Name $akvKeyName -Destination "Software"
while it has to be
$akvKey = Add-AzKeyVaultKey -VaultName $akvName -Name $akvKeyName -Destination "Software"

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

ID: f1572cf3-2c25-0de0-691c-10d6bf3388bc
Version Independent ID: 759b556c-4077-48b5-dc17-d5886d123a6b
Content: Provision Always Encrypted keys using PowerShell - SQL Server
Content Source: docs/relational-databases/security/encryption/configure-always-encrypted-keys-using-powershell.md
Product: sql
Technology: security
GitHub Login: @jaszymas
Microsoft Alias: jaszymas

@ydhondt -- thank you for bringing this to our attention.  I am looking into this article.

@ydhondt -- thank you for bringing this to our attention.  I am looking into this article.

@WilliamAntonRohm Created PR with changes #6078

@ikshitiz -- Kshitij, thank you for your contribution.
@jaszymas -- please review either PR above.

Addressed in https://github.com/MicrosoftDocs/sql-docs/pull/6078


Child components in the set of another straton components The second is the component rewrite Scaffold does not display

Steps to reproduce

delete scaffold
Expected results

Actual results

Code sample
Code sample
[Paste your code here]

Screenshots or Video

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[Paste your output here]
delete  Scaffold
wrong

>     return Scaffold(
      body: Center(
        child: Container(
          decoration: BoxDecoration(
              color: Colors.white, borderRadius: BorderRadius.circular(25)),
          width: 50,
          height: 50,
          child: ElevatedButton(
              onPressed: () {
                print("you jump i jump");
              },
              style: ElevatedButton.styleFrom(
                padding: EdgeInsets.zero,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(25),
                ),
              ),
              child: Center(
                  child: Text(
                '跳过$_seconds' "s",
                textAlign: TextAlign.center,
                style: const TextStyle(color: Colors.red, fontSize: 12),
              ))),
        ),
      ),
    );

>  depend
Center(
        child: Container(
          decoration: BoxDecoration(
              color: Colors.white, borderRadius: BorderRadius.circular(25)),
          width: 50,
          height: 50,
          child: ElevatedButton(
              onPressed: () {
                print("you jump i jump");
              },
              style: ElevatedButton.styleFrom(
                padding: EdgeInsets.zero,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(25),
                ),
              ),
              child: Center(
                  child: Text(
                '跳过$_seconds' "s",
                textAlign: TextAlign.center,
                style: const TextStyle(color: Colors.red, fontSize: 12),
              ))),
        ),
      );

</details>

@zhaihoy
Your issue report isn't clear as what exactly are you trying to report. Please provide complete / proper code sample along with current vs expected behavior so that we can properly address the issue.


Add Ubuntu 24 Support

Title says it all.
To do:

[x] Add Dockerfile-u24
[x] Add u24 to all files containing u22
[ ] Multi-arch updates to docker-envs/docker-compose.yml
[ ] Verify proper operation on non-x86_64 platforms

U24 builds and produces working images.  I've checked out the x86_64 image and it seems to work fine, so merged the first cut into the main branch.
@laeti-tia Please take care of the remaining two items, merge any changes into main and close this issue.


[data] catalog intermediate and final data products

We've talked about cataloging the various intermediate and final data products produced by the various scripts / notebooks in this repository. We have an intake catalog in carbonplan_forests/data and can use that for now.
The core datasets we've created to date are:

Biomass (historical and future predictions)
Fire risk (historical and future predictions)
Drought mortality (historical and future predictions)
Insect mortality (historical and future predictions)
Biophysical feedbacks

Intermediate datasets:

FIA wide (maybe this should go in carbonplan-data/processed?)
MTBS monthly rasters (maybe this should go in carbonplan-data/processed?)

I think I agree that the FIA and MTBS preprocessing probably belongs in carbonplan-data/processed, whereas carbonplan_forests/data should only catalog the core derived products we've produced as part of this analysis


Could not load in APP mode

I am using Chrome in app mode (full window) by running a page using add to desktop feature.

Then I try to run the extension using the command (alt+shift+k) or (alt+ctrl+k). But it is not working. Nothing happend. I think it is not working, because there is no extension toolbar in Chrome desktop mode.
The easiest way to solve it is by using chrome api commands, and execute it by command/
@bfred-it Can you add it please?
Thank you!

v1.2.1 fixed this
https://github.com/GhostText/GhostText/commit/16a1dade6c10168cff320e0968301febc4b42a27


N+1 Issue on people tab

The call to GetPatientsByFacility is consistently taking about 1 second to complete. This is due to a n+1 query bug where for each person there is a separate queries kicked off to capture testorder, testevent, facility, organization, and apiuser
As of 4/7 the GetPatientsByFacility query is called ~500 times a day
end-to-end transaction details

Wow, that is worse than I was expecting. No session cache, hibernate?!


Quick intro for php

A quick intro for the PHP section.

Closing to clean up the PRs, this seems quite out of date. Feel free to reopen if I'm wrong!


When accessed link redirects to app's URL, it doesn't land to app.

Configuration of Cordova App

<preference name="Hostname" value="app.example.com" />
<allow-navigation href="https://myawesomedomain.com/*" />
Android:

<preference name="Scheme" value="https" />
<allow-navigation href="https://app.example.com/*" />

iOS:

<preference name="iosScheme" value="app" />
<allow-navigation href="app://*"/>

Setup of server end point for https://myawesomedomain.com/abc

For Android devices, it sends 302 redirect to https://app.example.com
For iOS devices, it sends 302 redirect to app://app.example.com

Repro steps

There is a  link on index.html page. Pointing to https://myawesomedomain.com/abc
Android: When tap on the link, it shows error page with error "ERR_NAME_NOT_RESOLVED"
iOS: when tap on the link, it shows Failed to load webpage with error: Redirection to URL with a scheme that is not HTTP(S) error.

Versions
cordova: 10.0.0
cordova-android: 9.0.0
cordova-ios: 6.1.0
cordova-plugin-ionic-webview: 5.0.0
Devices
Android 10
iOS 14.1
Workaround

Instead of sending 302 redirect from the above https://myawesomedomain.com/abc end point, if it sends HTML content with a javascript within it to navigate to app URLs, it would work properly.

e.g sample response:
<!DOCTYPE html>

        <meta charset="UTF-8">
        <title>Title</title>

Since this problem still exists, @ChetanGoti did you find a better solution for this, or you can still recommend the above workaround?

While using this ionic-webview plugin, we were using Microsoft App Center's CodePush for pushing updates for the Cordova app. CodePush has reached EOL and is no longer supported since 1 Apr.
So we had to make a migration, and we are now directly embedding the remote URL to cordova entrypoint (since iOS supports SW via AppBound domains). So we are no longer using this plugin.
But while we were using it (pre March), we used this same approach and it served pretty well.

Related --> https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/5052 @jcesarmobile


Install nfs-common or nfs-utils package along with the kubelet

Fixes #815, fixes #816, fixes #818
The kismatic package had a dependency on nfs-utils or nfs-common packages, switching to the upstream kubernetes ones does not have this dependency and broke the NFS and Gluster tests.

Need to add these packages in a few places:

[ ] packages docs
[ ] rule_set
[ ] prepare.go

Might make sense to work against the disconnected_install branch, as that will also be impacted by this.

Yep with all those other changes I will use the disconnected_install branch

LGTM


[broker]  parameter "loadBalancerOverrideBrokerNicSpeedGbps" does not work

Describe the bug
machine：tencent Cloud Virtual Machine，CVM
os: tencent os tlinux 2.6
i wanna set loadBalancerOverrideBrokerNicSpeedGbps=9 to setting to correct the max NIC speed bandwidthout, but it does not work because org.apache.pulsar.broker.loadbalance.impl.LinuxBrokerHostUsageImpl  getNics() get two nics，one is physical Nic eth1，another one is virtual Nic veth51f9d919
To Reproduce
Steps to reproduce the behavior:

set broker parameter loadBalancerOverrideBrokerNicSpeedGbps=9
check nics path

[root@9 ~]# cd /sys/class/net
[root@9 /sys/class/net]# ls -l
total 0
lrwxrwxrwx 1 root root 0 Mar  8 21:01 cbr0 -> ../../devices/virtual/net/cbr0
lrwxrwxrwx 1 root root 0 Mar  8 21:01 dummy0 -> ../../devices/virtual/net/dummy0
lrwxrwxrwx 1 root root 0 Mar  8 20:59 eth1 -> ../../devices/pci0000:00/0000:00:05.0/virtio0/net/eth1
lrwxrwxrwx 1 root root 0 Mar  8 21:01 kube-ipvs0 -> ../../devices/virtual/net/kube-ipvs0
lrwxrwxrwx 1 root root 0 Mar  8 20:59 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Mar  8 21:03 veth51f9d919 -> ../../devices/virtual/net/veth51f9d919

Becasue org.apache.pulsar.broker.loadbalance.impl.LinuxBrokerHostUsageImpl  isPhysicalNic(Path path) path is relative path, so veth51f9d919 in !path.toString().contains("/virtual/") is true, Expected false。
In this condition, org.apache.pulsar.broker.loadbalance.impl.LinuxBrokerHostUsageImpl  getTotalNicLimitKbps() return 18874368, Expected 9437184。the setting max NIC speed bandwidthout does not work

Expected behavior
virtual nic veth51f9d919 in !path.toString().contains("/virtual/") is  false。
Screenshots
use tool arthas to watch params and returnObj

/sys/class/net relative path

Desktop (please complete the following information):

OS: tencent os tlinux 2.6

Additional context
i wanna fix this issue

PS: due to filtering virtual nics out, in k8s pods, all nics are now filtered out (since all of them are virtual, at least on our hardware) and thus network doesn't contribute at all to the broker host load.
I have personally confirmed that the eth0 nic paths still continues to show the correct rx and tx values for the broker though


Routing Tables Setup Fails

When running "onos-cli> source /config/routing_tables.txt" all commands inside the file fail with the same warning.
An example:
"route-insert device:r1 2001:1:1::1 128 00:00:00:00:00:10" created log =>
onos  | 16:46:41.439 WARN  [WriteResponseImpl] Unable to INSERT table entry on device:r1: OTHER_ERROR INVALID_ARGUMENT Cannot provide direct action for indirect table 33612857 (:3) [PiTableEntry{tableId=IngressPipeImpl.routing_v6, matchKey={hdr.ipv6.dst_addr=0x20010001000100000000000000000001/128}, tableAction=IngressPipeImpl.set_next_hop(next_hop=0x10), priority=N/A, timeout=PERMANENT}]

By my testing commenting lines 89 and 103 solved the problem by turning the access direct instead of indirect.


🍒 Cherry pick PR #4243 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/Expensify.cash/pull/4243 to staging 🍒

🚀 Deployed to staging         in version: 1.0.80-1🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production         in version: 1.0.80-2🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Teachable Machine on landing page

Currently, the Teachable Machine videos don't appear on the landing page. Is this intended?

Ordinarily the landing page is for coding challenges (and now cabana also) only, but I would also make an exception for Teachable Machine!

Ok. Do you know when you will release the third video? So that I can fix the (planned) release dates in the md files in order for them to appear in the right order on the landing page.

Maybe tomorrow or Monday? It's ready now and am always wondering what the optimal release time is! Let's say Monday?

Sounds good! If you want to publish it tomorrow you can still change the date in the md file.


[BUG] Game does not fallback to image background when video isn't present in a simfile

Please give System Info
OS: MX-19.3_x64 patito feo May 31 2020
CPU: Intel Celeron G4900
GPU: Intel UHD Graphics 610
Storage: Samsung SSD PM871b M.2 2280 128GB and Micron MTFDDAK480MBB-1AE1ZA 00AJ366 00AJ369LEN
Please give your StepMania Info
StepMania Version: OutFox Alpha 4.9.1
Theme: Soundwaves
Describe the problem
When entering a song with a background video defined but not present, the game will not fallback to the background image and will display nothing (black screen).
Describe what should happen
The game should fallback to the background image instead.
Logs and Additional context
info.txt
log.txt
The previous version of OutFox (4.9.0) did not have this behavior.

Fixed in 4.9.5, Thanks for reporting!


the behavior bit doesn't consistently agree with the abnormal state for an endpoint

this should get removed, as there is no longer a behavior portion of networkml

removed.


updated ci.yml to pass build failures

Signed-off-by: ashiscs<EMAIL_ADDRESS>

https://github.com/layer5io/meshery-octarine/pull/47/commits/13c1ae280b6e35843ffaed260744379ec312f1a9
This were the changes sir, due to extra space at two places the build was failing..

This were the changes sir done in (ci.yml), due to extra space at two places the build was failing.

Closing in response to the above.


AttributeError: module 'imgaug' has no attribute 'deepcopy'

Hi, I meet a problem when augmenting my dataset. My codes as following:
  annos = imgs_anns["shapes"]
  for anno in annos:
        polygon = []
        points = anno["points"]
        px = [point[0] for point in points]
        py = [point[1] for point in points]
        poly = [(x + 0.5, y + 0.5) for x, y in zip(px, py)]
        ia.Polygon(poly)
        polygon.append(ia)
        polygons = ia.PolygonsOnImage(polygon, shape=image.shape)
   images_aug, polygons_aug = seq(images=[image], polygons=polygons)

But the last line gives the error
Traceback (most recent call last):
  File "tools/augmentation.py", line 58, in <module>
    augment_images("../pandents(colored)/dataset/train")
  File "tools/augmentation.py", line 51, in augment_images
    images_aug, polygons_aug = seq(images=[image], polygons=polygons)
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmenters/meta.py", line 2027, in __call__
    return self.augment(*args, **kwargs)
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmenters/meta.py", line 1998, in augment
    batch_aug = self.augment_batch_(batch, hooks=hooks)
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmenters/meta.py", line 597, in augment_batch_
    batch_inaug = batch_norm.to_batch_in_augmentation()
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmentables/batches.py", line 456, in to_batch_in_augmentation
    polygons=_copy(self.polygons_unaug),
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmentables/batches.py", line 447, in _copy
    return utils.copy_augmentables(var)
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmentables/utils.py", line 19, in copy_augmentables
    result.append(augmentable.deepcopy())
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmentables/polys.py", line 2107, in deepcopy
    polygons = [poly.deepcopy() for poly in self.polygons]
  File "/home/jason/Documents/vist/deeplearning/venv/lib/python3.6/site-packages/imgaug/augmentables/polys.py", line 2107, in <listcomp>
    polygons = [poly.deepcopy() for poly in self.polygons]
AttributeError: module 'imgaug' has no attribute 'deepcopy'

What's wrong? I tried: reinstall imgaug as following, but no luck
pip3 uninstall imgaug && pip3 install git+https://github.com/aleju/imgaug.git

Sorry, I find a coding error in polygon.append(ia)


filter-option for "show recipes unlocked by certain science pack(s)"

Hi,
do you see any possibility to add a filter-option, where one can set specific science packs, to only get search results based on it?
Like the "show unresearched objects" option.
Explanation: In big mods like Py or Nullius there are different recipes for one item. I want to have the possibilty to search only for recipes which are accessibly at the current state (in YAFC it's named Milestone) . So when I can just produce Science Pack 1 and 2, I don't need recipes which will be unlocked by Science Pack 3 or higher.
For example: If you are at the beginning (only red science) of a Py-Game and you have to make bones, this option will just show you all bones-recioes which can be made with corresponding technology (in this case only red science). Regardless whether they are already researched or not.
Many thanks in advance!

I thought this was going to be a royal pain, but it was actually pretty straightforward! Implemented for the next major version.

This looks really cool, I'm curious to see how it works! I didn't think it could be so complicated - I thought it could be a simple query, but I have no idea about programming at all. Thank you very much for implementing it!

It builds off of the existing categories system, with one difference: every science pack that is related to a thing must be enabled in order for the thing to show. I also had to add some logic so that things with multiple technologies to unlock them when its lowest tier set of science packs is checked. Overall, it built on the existing system, but I did have to make a few tweaks.


Get AWS credit

The easiest way to get AWS credit is through HMC, since Mudd is part of the AWS educate program. Here are the instructions for setting that up. If that doesn't work for some reason, let me know, and I'm still trying to figure this out, but I'll probably have you file an expense report on Coconut's Open Collective page.

Thanks Evan! We have received credit through HMC.


Order of dataset changes due to glob.glob.

Describe the bug
After discussion with @lhoestq, just want to mention here that glob.glob(...) should always be used in combination with sorted(...) to make sure the list of files returned by glob.glob(...) doesn't change depending on the OS system.
There are currently multiple datasets that use glob.glob() without making use of sorted(...) even the streaming download manager (if I'm not mistaken):
https://github.com/huggingface/datasets/blob/c14bfeb4af89da14f870de5ddaa584b08aa08eeb/src/datasets/utils/streaming_download_manager.py#L483

I agree using glob.glob alone is bad practice because it's not deterministic. Using sorted is a nice solution.
Note that the xglob function you are referring to in the streaming_download_manager.py code just extends glob.glob for URLs - we don't change its behavior. That's why it has no sorted()


There is no dependency setting on package.json

There is no dependency setting on package.json.
And also there is no dependency on npm.
so I cannot install all dependencies (FULLTILT and ES6Promise) by "npm install gyronorm" command.
Can you add dependency setting?

A PR would be nice :)
FullTilt is not on NPM so I cannot add it to package.json as dependency. I suggest to use $ bower install gyronorm
In the /dist folder there are different builds. /dist/gyronorm.complete.min.js contains all the dependency libraries in one file. So if you use that one you don't need to add any other JS files to your project.
You need the dependencies added separately only if you use /dist/gyronorm.js or /dist/gyronorm.min.js
I hope this helps.
Cheers,
D.


fix(jsx): changes behavior when download attribute is set to a boolean value.

Closes: #3093
This patch changes behavior when download attribute is set to a boolean value.
before:
console.log() // =>
console.log() // =>

after:
console.log() // =>
console.log() // =>

The author should do the following, if applicable

[x] Add tests
[x] Run tests
[x] bun run format:fix && bun run lint:fix to format the code
[ ] Add TSDoc/JSDoc to document the code

Hi @oon00b Thank you for the PR! Looks good to me.
@usualoma Can you review this?

Hi, @oon00b.
Thanks, LGTM!

@usualoma Thanks!
I'll merge it now. @oon00b Thank you for your contribution!


Deprecate old PHP Versions

Since PHP 5.6 to 7.1 are at end of life and 7.2 is in security only the recipies should be deprecated just to keep the cookbook clean.

RTFM I guess. This is obsolete since the recipes will be removed entirely with the next major release


Set up github actions to validate all PRs

It looks like there is no validation happening on PRs
I would recommend adding this, and adding checks:

ensure you stay within the DL profile (it's easy to fall outside this when working with property chains and transitivity)
ensure ontology is consistent and coherent using HermiT

You may also want to consider a github action for releases, that materializes useful inferred axioms.
You can roll your own pipeline using robot to execute these, but I would recommend using ODK which will give you a Makefile with a target for tests, releases, etc as well as a docker container that can easily be deployed within github action https://github.com/INCATools/ontology-development-kit/

I have updated the actions to work for PRs. I also added a test to ensure the ontology stays within the DL profile. The other existing tests already ensure the ontology is consistent (using JFact rather than HermiT).
I have rolled my own for now but thanks for pointing me at ODK. I will try it out when I have a bit more time.


Docker image instructions do not work

The instructions about pulling the docker image does not work
Expected Behavior

docker pull phpdoc/phpdoc works
Actual Behavior

docker pull phpdoc/phpdoc does not work because there is no latest tag in docker hub.
Steps to Reproduce the Problem

Run docker pull phpdoc/phpdoc

instrumentisto/phpdoc image is much better, and has more tags available instead of alpha version.

I just fixed the docker build for our master branch. This will provide the latest version of phpdoc/phpdoc.


Misspelling on Page

Hoewever is spelled incorrectly. It should be spelled "However"

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

ID: 4a144b27-04b6-5d42-9c9f-79bb4cc6730b
Version Independent ID: 7b00f680-f3a8-3502-94b5-5ca37d36f432
Content: Monitor and optimize on-premises data gateway performance
Content Source: data-integration/gateway/service-gateway-performance.md
Product: on-premises-data-gateway
GitHub Login: @miquelladeboer
Microsoft Alias: mideboer

Hi @tbollhofer
Thanks for the feedback. The misspelling has been corrected.


[click] stopped working

How did this closed?
I was experiencing the same - using pd-else rc12 with Pd 0.55-1 @ windows 10 64bit
I blindly overwritten click* with rc11 .. then it started to work again!

it's fixed in the current master, not yet released


raw_find_by_prefix should return a stream instead of an iterator

If we want to integrate async DBs (why all the DB functions are async now) streaming data from the DB will probably also be async. Thus a stream fits better than an iterator.
https://github.com/fedimint/fedimint/blob/872b7ead0c32326c2bc56fad119aea2c09a88382/fedimint-api/src/db/mod.rs#L128
https://github.com/fedimint/fedimint/blob/872b7ead0c32326c2bc56fad119aea2c09a88382/fedimint-api/src/db/mod.rs#L60

Theoretically yes but streams are such PITA to work with (as async is half-baked), and it seems even rocksdb doesn't implement it as a stream https://docs.rs/rocksdb/latest/rocksdb/struct.DBIteratorWithThreadMode.html#impl-Iterator-for-DBIteratorWithThreadMode<'a%2C D> so :shrug: for now? :D

Oh, wait ... https://github.com/fedimint/fedimint/blob/master/fedimint-rocksdb/src/lib.rs#L185 rocksdb doesn't do anything async? Which means we are doing blocking IO in our async code all the time anyway?

It looks like Rocksdb does do some asynchronous I/O, but they only expose a synchronous API to the application
From docs:

One way to mitigate the impact of storage latency is to read asynchronously and in parallel as much as possible, in order to hide IO latency. We have implemented this in RocksDB in Iterators and MultiGet. In Iterators, we prefetch data asynchronously in the background for each file being iterated on, unlike the current implementation that does prefetching synchronously, thus blocking the iterator thread. In MultiGet, we determine the set of files that a given batch of keys overlaps, and read the necessary data blocks from those files in parallel using an asynchronous file system API. These optimizations have significantly decreased the overall latency of the RocksDB MultiGet and iteration APIs on slower storage compared to local flash.

The optimizations described here are in the internal implementation of Iterator and MultiGet in RocksDB. The user API is still synchronous, so existing code can easily benefit from it. We might consider async user APIs in the future.

@m1sterc001guy Oh dear. We should wrap everything in spawn_blocking, but I be this is going to conflict with lifetimes and such.
We might need to move the whole database handling to threadpool. Each time we create a transaction, we spawn a normal blocking thread, make a pair of channels, and put the sending and receving part into a IDatabaseTransaction. So then making actual db operation is just an rpc to a "transaction thread".

Sure, I can get started on that. I think we would only need to do this for Rocksdb, since we're planning on removing Sled and Sqlite does support an async API.

@m1sterc001guy Probably it is not a priority RN, and module isolation would be more useful, but yeah, we should do it, otherwise Fedimint is going to be potentially slowish.
It should be a implementation detail of fedimintd-rocksdb so rest of the code doesn't need to know. (:


DDS: Orca Security: integration V1.0.0

What does this PR do?
This is a initial release PR of Orca Security integration including all the required assets.
Additional Notes

This integration is based on in-built datadog integration for orca and so Crawler will not be used.
The assets are available in our sandbox and can be shared separately with the required teams.

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.
[ ] If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

Thank you @surabhipatel-crest I've created an Editorial card for someone on our team to review this further


chore: bump to 2022-10-03

Can't upgrade to Oct 4 yet because of https://github.com/leanprover/lean4/issues/1686
bors merge


Update AWSSDKUtilsTests to reflect rfc3986

Description

With this PR to update resource path canonicalization, we need to update the unit tests added prior to this. The pr I linked has the link to the RFC which specifies which special characters to encode and which not to.
Motivation and Context

Testing

Screenshots (if appropriate)
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[ ] I have read the README document
[ ] I have added tests to cover my changes
[x] All new and existing tests passed

License

[x] I confirm that this pull request can be released under the Apache 2 license

FYI @peterrsongg I have this change on my V3 -> V4 PR too: https://github.com/aws/aws-sdk-net/commit/65e39a28521a74fc6c6d282fc3898fdabe8fa061#diff-37598f78b4d40d7b8e8b09655f18f57bb63f3e3195fb421769e53300030e10a2


Support YAML output format in get commands (-o yaml)

What would you like to be added:
Support for returning YAML outputs from gwctl get analogous to how kubectl get .... -o yaml works
Why this is needed:
Needed in favor of the progress of this GEP
More details here - #2761

/area gwctl
/assign

My preferred approach to this would be to implement #2931 first in a "generic" enough way so that this issue can cleanly integrated on top of it further.

Covering this in the PR #2940 as well

This has been completed as mentioned in https://github.com/kubernetes-sigs/gateway-api/issues/2932#issuecomment-2044136736
/close