Upgrade to 2.17 fails because of django-auditlog new column

(Tried getting to slack, but the links were all dead.)
Short version -
The lastest version of django-auditlog adds a new column to the logentry.
https://github.com/jazzband/django-auditlog/blob/master/auditlog/migrations/0011_logentry_serialized_data.py
        migrations.AddField(
            model_name="logentry",
            name="serialized_data",
            field=models.JSONField(null=True),
        ),

Which runs
ALTER TABLE auditlog_logentryADD COLUMNserialized_data JSON NULL
On databases with significant logs, this takes a long long time, and a ton of space. In our case, our 400 gig db with 200 gig free run this migration for about 3 hours, ate the 200 gig free, then died and rolled back.
At this point, I think the only path to upgrading is to remove all the audit logs, or a ton of old ones at leats, and try again.
DB is MySQL 5.7.38.
I know in MSSQL, adding a null column without a default would take a second and not really have tried changing every row. Maybe there is some MySQL setting we have messed up (I expect not.)

Is this issue still open? Then, please try again in the slack channel. (OWASP Slack --> DefectDojo)
You can close this @mtesauro


Style Select!

The basics are finally done!

Wooh! Thanks Nikhil! I'm gonna take a closer look at your code tomorrow morning and let you know if there's any changes I think you should make. From my cursory glance though it looks good :)

Btw I know you're planning to (maybe already doing) to embed C# as a scripting language.
Maybe I can try to also add Java as one. I know they are similar, but most of the viewers of your channel are java programmers.
(If you dont want it just say no. I have no problems with that). It will only mostly be on my fork of this project

Btw I know you're planning to (maybe already doing) to embed C# as a scripting language
Maybe I can try to also add Java as one. I know they are similar, but most of the viewers of your channel are java programmers.
(If you dont want it just say no. I have no problems with that). It will only mostly be on my fork of this project


Automated cherry pick of #9564: Hotfix/baremetal pxe net alloc

Cherry pick of #9564 on release/3.5.
#9564: Hotfix/baremetal pxe net alloc

Codecov Report

Merging #9566 (1103680) into release/3.5 (6a15e02) will increase coverage by 0.94%.
The diff coverage is 0.12%.

@@              Coverage Diff               @@
##           release/3.5   #9566      +/-   ##
==============================================
+ Coverage         5.98%   6.93%   +0.94%
==============================================
  Files              796     333     -463
  Lines           125693   42876   -82817
==============================================
- Hits              7522    2972    -4550
+ Misses          117504   39645   -77859
+ Partials           667     259     -408

Flag
Coverage Δ

aFlag
6.93% <0.12%> (+0.94%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/cloudcommon/db/jointbase.go
0.00% <ø> (ø)

pkg/cloudcommon/db/quotas/errors.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/quotas/handler.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/quotas/register.go
11.11% <0.00%> (-2.41%)
:arrow_down:

pkg/cloudcommon/db/quotas/usageworker.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/sharablebase.go
6.01% <0.00%> (-0.06%)
:arrow_down:

pkg/cloudprovider/instance.go
0.00% <ø> (ø)

pkg/cloudprovider/objectstore.go
2.06% <0.00%> (-0.51%)
:arrow_down:

pkg/cloudprovider/route_table.go
0.00% <0.00%> (ø)

pkg/cloudprovider/securitygroup.go
0.00% <0.00%> (ø)

... and 462 more

Continue to review full report at Codecov.

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

/lgtm

/approve


Add Transport Fever 1 & 2

This PR adds:

Transport Fever
Transport Fever 2

Both playable on GeForce Now.

Thank you!


feat: Overhaul Hot Reloads

Overview
Nothing is worse than a hot reload that doesn't hot reload. As a user, I then no longer know if the update didn't work or my code is wrong. Before this change, we had two classes of issues where reload would fail: issues with detecting file changes and issues actually reloading.
This change really buttons up a lot of the issues with hot reloading to make it significantly more reliable. In addition, it maintains all of the current behavior around --watch, serve flags, and config through query params.
Features

WebP's are now sent over a websocket directly to the browser

Before, we simply forced the page to refresh when there was a change, which was significantly slower then just updating the WebP on the page.

Prettier web view

This change adds a preview mask to get the pixels, a Favicon, and a title to the page.

If the connection to the server dies, the page clears.

There are no more guessing games if we're actually connected and receiving updates.

Windows with refresh that lose a connection try to get it back over an exponential backoff

That way, an old browser tab will fix itself when the server comes back online

File watching now happens reliably and exactly once for a save through VIM or VSCode

We now watch the directory and only act on the events for the file we care about. Editors do weird stuff here that make it complicated to watch just one file. For example, VIM writes to a swap file and recreates the original file on save - which means we can't watch just that file.

The server dies if there are issues with the file watcher

This makes it really clear as a user that things are no longer reloading and you have to start up the server again, especially given the browser page dies as well when the connection is lost.

Mutexs were replaced with channels

This makes everything a lot snappier. Go routines should work together by communicating and not by sharing.

Changes

Added new server packages.

This commit open sources a few modules that were internal to Tidbyt and refactors existing server code into a loader and watcher module. Some big changes in the refactor include directory watching inside of watcher to ensure we get every update and removing sync.Mutex in favor of channels.

Refactored server to use new packages.

This commit refactors the server code to use our new packages.

Future Work

Config through query parameters is set via the last time the page was refreshed and not per page. This means setting config in one window will cause an incorrect update in another window.

I started making a change to do this as part of this one, but I realized it's going to be a decently large change and a few hours of effort to really get right. We need to map config -> fanout so that a config update pushes updates to all windows with that config. It also means if the file is changed, we need a map of config -> update channels and render the app multiple times to ensure everything is updated.

LoadApplet makes me feel bad 😄 . It shouldn't work that way and needs to be cleaned up.

Preview
https://user-images.githubusercontent.com/3886576/147284146-b2263f17-3881-46e6-82ce-bd13258c4704.mov

Looks like i'll need to update to go1.16 to get file embedding to work.

Double checked, this also works with a remote host in VSCode with port forwarding 🤓


fix(#234): Empty Configuration

Fix the problem with empty configuration.
Closes: #234

PR-Codex overview
Detailed summary

Added java.util.Objects import in ValidateMojo.java
Added license header in verify.groovy and pom.xml
Added dependencies and plugin configuration in pom.xml

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@rultor merge

@rultor merge

@volodya-lombrozo OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@volodya-lombrozo Done! FYI, the full log is here (took me 3min)


Fix arch installation command

Summary
The linked package is on AUR, typically installed with yay. "pacman install" is not a valid command.

Related issues

Changes these areas

[ ] Bugfixes
[ ] Feature behavior
[ ] Command line interface
[ ] Configuration options
[ ] Internal architecture
[ ] Snapshot data layout on disk

thanks!


[CWOD-Vampire] Visual Upgrade (Migration to CSS Grid)

Changes / Comments
This is a visual update for a VtM Revised sheet.
CSS Grids were placed for many grid-like elements that previously were structured with simple columns and the like (this lead to character sheet reacting very unpleasantly to width change). Now it is structured better.
Visual style of some elements (mainly inputs and textfields) was changed into a more clean and readable state.
Also, all styles were moved from HTML file into CSS one.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[/] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[/] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Display the Git-Repository size instead of total file size (or both?)

Is your feature request related to a problem? Please describe.
It would be nice to know the total size of a Git repository before starting to clone. However, currently, the extension only displays the total size as considered by all files currently in the selected branch (afaik). This means that it is useful for knowing the approximate size of Download code as zip, but not for the git repo itself.
Describe the solution you'd like
I'd want to see the entire size instead.
Describe alternatives you've considered
Looking at the API manually is not nice.
Additional context
Current calculation: https://github.com/AminoffZ/github-repo-size/blob/main/src/scripts/internal/dom-manipulation.ts#L154-L156
Implementation idea: https://stackoverflow.com/questions/8646517/how-can-i-see-the-size-of-a-github-repository-before-cloning-it
=> using the GitHub API, get infos about the entire repository

Thank you for your report, this will indeed be a more accurate size for the repos, i'll be working on it once i get some free time but if you're interested in this you can solve this issue and PR CONTRIBUTING.md

This might still be possible by getting all branches and performing calls for them individually, the size key from the response used in the Stackoverflow example seems to not return the size as requested in this issue.
fetch("https://api.github.com/repos/AminoffZ/github-repo-size").then(res => res.json()).then(data => console.log(data));

{
"id": 694772534,
"node_id": "R_kgDOKWljNg",
"name": "github-repo-size",
"full_name": "AminoffZ/github-repo-size",
"private": false,
"owner": {
"login": "AminoffZ",
"id": 55880031,
"node_id": "MDQ6VXNlcjU1ODgwMDMx",
"avatar_url": "https://avatars.githubusercontent.com/u/55880031?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/AminoffZ",
"html_url": "https://github.com/AminoffZ",
"followers_url": "https://api.github.com/users/AminoffZ/followers",
"following_url": "https://api.github.com/users/AminoffZ/following{/other_user}",
"gists_url": "https://api.github.com/users/AminoffZ/gists{/gist_id}",
"starred_url": "https://api.github.com/users/AminoffZ/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/AminoffZ/subscriptions",
"organizations_url": "https://api.github.com/users/AminoffZ/orgs",
"repos_url": "https://api.github.com/users/AminoffZ/repos",
"events_url": "https://api.github.com/users/AminoffZ/events{/privacy}",
"received_events_url": "https://api.github.com/users/AminoffZ/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/AminoffZ/github-repo-size",
"description": "A browser extension for showing the size of repos.",
"fork": false,
"url": "https://api.github.com/repos/AminoffZ/github-repo-size",
"forks_url": "https://api.github.com/repos/AminoffZ/github-repo-size/forks",
"keys_url": "https://api.github.com/repos/AminoffZ/github-repo-size/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/AminoffZ/github-repo-size/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/AminoffZ/github-repo-size/teams",
"hooks_url": "https://api.github.com/repos/AminoffZ/github-repo-size/hooks",
"issue_events_url": "https://api.github.com/repos/AminoffZ/github-repo-size/issues/events{/number}",
"events_url": "https://api.github.com/repos/AminoffZ/github-repo-size/events",
"assignees_url": "https://api.github.com/repos/AminoffZ/github-repo-size/assignees{/user}",
"branches_url": "https://api.github.com/repos/AminoffZ/github-repo-size/branches{/branch}",
"tags_url": "https://api.github.com/repos/AminoffZ/github-repo-size/tags",
"blobs_url": "https://api.github.com/repos/AminoffZ/github-repo-size/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/AminoffZ/github-repo-size/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/AminoffZ/github-repo-size/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/AminoffZ/github-repo-size/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/AminoffZ/github-repo-size/statuses/{sha}",
"languages_url": "https://api.github.com/repos/AminoffZ/github-repo-size/languages",
"stargazers_url": "https://api.github.com/repos/AminoffZ/github-repo-size/stargazers",
"contributors_url": "https://api.github.com/repos/AminoffZ/github-repo-size/contributors",
"subscribers_url": "https://api.github.com/repos/AminoffZ/github-repo-size/subscribers",
"subscription_url": "https://api.github.com/repos/AminoffZ/github-repo-size/subscription",
"commits_url": "https://api.github.com/repos/AminoffZ/github-repo-size/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/AminoffZ/github-repo-size/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/AminoffZ/github-repo-size/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/AminoffZ/github-repo-size/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/AminoffZ/github-repo-size/contents/{+path}",
"compare_url": "https://api.github.com/repos/AminoffZ/github-repo-size/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/AminoffZ/github-repo-size/merges",
"archive_url": "https://api.github.com/repos/AminoffZ/github-repo-size/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/AminoffZ/github-repo-size/downloads",
"issues_url": "https://api.github.com/repos/AminoffZ/github-repo-size/issues{/number}",
"pulls_url": "https://api.github.com/repos/AminoffZ/github-repo-size/pulls{/number}",
"milestones_url": "https://api.github.com/repos/AminoffZ/github-repo-size/milestones{/number}",
"notifications_url": "https://api.github.com/repos/AminoffZ/github-repo-size/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/AminoffZ/github-repo-size/labels{/name}",
"releases_url": "https://api.github.com/repos/AminoffZ/github-repo-size/releases{/id}",
"deployments_url": "https://api.github.com/repos/AminoffZ/github-repo-size/deployments",
"created_at": "2023-09-21T16:57:08Z",
"updated_at": "2024-03-15T11:37:26Z",
"pushed_at": "2024-03-16T17:02:42Z",
"git_url": "git://github.com/AminoffZ/github-repo-size.git",
"ssh_url": "git@github.com:AminoffZ/github-repo-size.git",
"clone_url": "https://github.com/AminoffZ/github-repo-size.git",
"svn_url": "https://github.com/AminoffZ/github-repo-size",
"homepage": "https://chrome.google.com/webstore/detail/github-repo-size/jpdmfnflpdgefbfkafcikmhipofhanfl",
"size": 1190,
"stargazers_count": 14,
"watchers_count": 14,
"language": "TypeScript",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"has_discussions": true,
"forks_count": 2,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 4,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"astro",
"bun",
"chrome-extensions",
"extension",
"github",
"github-api",
"looking-for-contributors",
"oauth",
"svelte",
"tailwindcss",
"typescript"
],
"visibility": "public",
"forks": 2,
"open_issues": 4,
"watchers": 14,
"default_branch": "main",
"temp_clone_token": null,
"template_repository": {
"id": 694662153,
"node_id": "R_kgDOKWe0CQ",
"name": "bun-browser-extension-builder",
"full_name": "AminoffZ/bun-browser-extension-builder",
"private": false,
"owner": {
"login": "AminoffZ",
"id": 55880031,
"node_id": "MDQ6VXNlcjU1ODgwMDMx",
"avatar_url": "https://avatars.githubusercontent.com/u/55880031?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/AminoffZ",
"html_url": "https://github.com/AminoffZ",
"followers_url": "https://api.github.com/users/AminoffZ/followers",
"following_url": "https://api.github.com/users/AminoffZ/following{/other_user}",
"gists_url": "https://api.github.com/users/AminoffZ/gists{/gist_id}",
"starred_url": "https://api.github.com/users/AminoffZ/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/AminoffZ/subscriptions",
"organizations_url": "https://api.github.com/users/AminoffZ/orgs",
"repos_url": "https://api.github.com/users/AminoffZ/repos",
"events_url": "https://api.github.com/users/AminoffZ/events{/privacy}",
"received_events_url": "https://api.github.com/users/AminoffZ/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/AminoffZ/bun-browser-extension-builder",
"description": "A tool for quickstarting your browser extension development. Powered by Bun!",
"fork": false,
"url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder",
"forks_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/forks",
"keys_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/teams",
"hooks_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/hooks",
"issue_events_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/issues/events{/number}",
"events_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/events",
"assignees_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/assignees{/user}",
"branches_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/branches{/branch}",
"tags_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/tags",
"blobs_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/statuses/{sha}",
"languages_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/languages",
"stargazers_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/stargazers",
"contributors_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/contributors",
"subscribers_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/subscribers",
"subscription_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/subscription",
"commits_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/contents/{+path}",
"compare_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/merges",
"archive_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/downloads",
"issues_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/issues{/number}",
"pulls_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/pulls{/number}",
"milestones_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/milestones{/number}",
"notifications_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/labels{/name}",
"releases_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/releases{/id}",
"deployments_url": "https://api.github.com/repos/AminoffZ/bun-browser-extension-builder/deployments",
"created_at": "2023-09-21T12:51:50Z",
"updated_at": "2024-01-27T06:34:31Z",
"pushed_at": "2023-09-22T09:10:12Z",
"git_url": "git://github.com/AminoffZ/bun-browser-extension-builder.git",
"ssh_url": "git@github.com:AminoffZ/bun-browser-extension-builder.git",
"clone_url": "https://github.com/AminoffZ/bun-browser-extension-builder.git",
"svn_url": "https://github.com/AminoffZ/bun-browser-extension-builder",
"homepage": "",
"size": 68,
"stargazers_count": 4,
"watchers_count": 4,
"language": "TypeScript",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 1,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": true,
"web_commit_signoff_required": false,
"topics": [
"browser-extensions",
"bun",
"template",
"typescript"
],
"visibility": "public",
"forks": 1,
"open_issues": 0,
"watchers": 4,
"default_branch": "main",
"temp_clone_token": null
},
"network_count": 2,
"subscribers_count": 1
}

To be honest I don't necessarily see that the suggestion provides more value to the user than the current implementation. Not to be argumentative but how often do you add every remote branch to your local environment when cloning a project? It would certainly be an interesting feature, but I don't think it should replace what we have atm. I may change my mind and am curious to hear suggestions.

As far as I know, all branches are automatically downloaded when doing a git clone (except when doing a shallow clone). Displaying the total size of the entire repo here can be helpful for users to know how much the download size will be, before entering that command.

TIL, alright we should look into implementing this. Thank you for the quick response ❤

Related issue: harshjv/github-repo-size#9 (comment)


Missing documentation

It would be cool to have a brief overview in the README file about the following things:

How does the tool even work in the first place, i.e. what does it do, and what is it build on?
Should I use the CLI, or a programmatic API?
What does the tool assert about my library (folder structure)?
What is the API?
How to use the CLI?

Some of these things are pretty obvious to answer by reading the source code for a few minutes. However, as time goes by and deno2node gets more complex, these things will become less and less clear for new users.

Should I use the CLI, or a programmatic API?

Whichever better fits the task at hand.

What is the API?

How to use the CLI?

https://github.com/wojpawlik/deno2node#usage-from-nodejs

How does the tool even work in the first place, i.e. what does it do

https://github.com/wojpawlik/deno2node/blob/d224750108fcdc70d666b3cc3f9e95e6310a4a47/src/deno2node.ts#L45-L65

what is it build on?

https://github.com/wojpawlik/deno2node/blob/d224750108fcdc70d666b3cc3f9e95e6310a4a47/package.json#L46 https://github.com/wojpawlik/deno2node/blob/d224750108fcdc70d666b3cc3f9e95e6310a4a47/src/deps.deno.ts#L4

What does the tool assert about my library (folder structure)?

deno2node needs tsconfig.json,
deno2node needs an output directory for emitting, just like tsc,
Platform-specific code needs to live in separate files next to each other (deps.deno.ts, deps.node.ts).

I wanted to write more about the API, but frankly I'm not sure how to best use it. I believe I addressed everything else.


Fixed invalid parameter syntax of example command

Using \" in the parameter json of the deployment command gave me a parsing error in the Cloud Shell.

@halllo : Thanks for your contribution! The author, @rwike77, has been notified to review your proposed change.

Merging this PR. @halllo, Thank you so much for your contribution!


How to download multiple files to a file url using Amplify & Swift?

Is your feature request related to a problem? Please describe.
Hello, the current example in the iOS swift Library only shows how to download 1 file at a time.  I'd like to know how to download multiple files inside of an S3 bucket folder at a time.
Describe the solution you'd like
The example files are helpful, but since documentation & help is limited on how to use Amplify & Swift it would really be helpful if there was an example posted in the Library with example code on how to download multiple files to a local url.
For example.
I'd like to download everything inside of an s3 folder named Terry/jokes/ to a local url on my device.
The directory contains the following.
Terry/jokes/
Terry/jokes/joke1.jpg
Terry/jokes/jokes1.mp4
Terry/jokes/jokes2.mp4
etc..
// Say "JokesFolder" is the file url I would like to download to on my device
let downloadToFileName = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent(username)

let jokesFolder = downloadToFileName.appendingPathComponent("jokes")

Describe alternatives you've considered
I've tried the following code below, and it does give me a success message, but the files are no where to be found on the device.
I'm suspecting that part of the issue is that the download url path doesn't have a name to match each file downloaded.  I'm not sure how to overcome this, this is a bit over my head and where an example would be helpful.
`//MARK:- download S3 Username Folder
//Inside my download  action I have
let username = "Terry"
let name = self.username + "/jokes"
self.downloadRepligram(from: name)
//-------
 func downloadRepligram(from prefix: String) {

    //IF folder does not exist on device then create one
    let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
    let documentsDirectory = paths[0]
    let docURL = URL(string: documentsDirectory)!
    let dataPath = docURL.appendingPathComponent(username)
    let jokesPath = dataPath.appendingPathComponent("jokes")
    print("jokes path is ", jokesPath)
    if !FileManager.default.fileExists(atPath: jokesPath.absoluteString) {
        do {
            try FileManager.default.createDirectory(atPath: jokesPath.absoluteString, withIntermediateDirectories: true, attributes: nil)
        } catch {
            print(error.localizedDescription);
        }
    }

     let options = StorageListRequest.Options(path: prefix.isEmpty ? nil : prefix)
     Amplify.Storage.list(options: options) { result in
         guard case .success(let storageResults) = result else {
             print("Failed to list: \(result)")
             return
         }

         let allObjects = storageResults.items.map { $0.key }
         let prefixObjects = allObjects.filter { $0.starts(with: prefix) }

         guard !prefixObjects.isEmpty else {
             print("Nothing to download")
             return
         }

         DispatchQueue.concurrentPerform(iterations: prefixObjects.count) { iter in
             let key = prefixObjects[iter]
             Amplify.Storage.downloadFile(key: key, local: jokesPath) { result in
                 switch result {
                 case .failure(let error):
                     print("Error downloading \(key): \(error.localizedDescription)")
                 case .success(let successValue):
                     print("Downloaded \(key): \(successValue): to \(jokesPath)")
                 }
             }
         }
     }
 }`

Is the feature request related to any of the existing Amplify categories?
Storage
Additional context
The code I am using is something I modified from Palpatims example on how to delete multiple files from an s3 bucket.

@TerremceK
All network activity with Amplify Storage runs on top of AWSS3 and Transfer Utility. The URLSession is created with a background configuration. (see source) In order to ensure all network activities are handled you must handle the UIAppDelegate function for background events. See the link below for more details.

Downloading Files in the Background

Included below is an example of it implemented with AppDelegate.
import UIKit
import AWSS3

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        print(#function)
        return true
    }

    func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) {
        print(#function)
        AWSS3TransferUtility.interceptApplication(application, handleEventsForBackgroundURLSession: identifier, completionHandler: completionHandler)
    }
}

For a modern iOS app you may need to use @UIApplicationDelegateAdaptor shown below to get your AppDelegate functions to called.
import SwiftUI

@main
struct MultipartUploadApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            JokesView()
        }
    }
}

Also, from the code you shared I can see URL and path being used with FileManager. This API from Apple can be a bit tricky in Swift. I've provided some code you can try which has broken out each task into private functions and passes back a list of the file URLs if all downloads are successful. See the attached code with the original and revised code.

Jokes.zip

@TerremceK  Please try out this code with your app and let us know how it works for you.

You can also find docs on background transfers on our docs site.

@brennanMKE Thanks for your responses! 😀 I'll read up and experiment with your suggestions when I can and let you know how it goes.

@brennanMKE  Forgive me for sounding like a noob but how do I properly call the function you wrote? I.E I'm trying the following when the download button is tapped.
@IBAction func downloadRepligramTapped(_ sender: Any) {
    self.downloadAllJokes(username: username, completionHandler: (Result<[URL], Failure>) -> Void)
}

Which gives me the error

Cannot convert value of type '((Result<[URL], CallScreenVC.Failure>) -> Void).Type' to expected argument type '(Result<[URL], CallScreenVC.Failure>) -> Void'

@TerremceK This code is based on what you provided so you could hook it into how you had it running before. Depending on how you set up your AWS resources you may need to provide a prefix based on access levels.

Working with access levels in your app code

You can find the policy set in your IAM service or with S3.

Thanks @brennanMKE I was able to achieve multiple downloads based off of the example code you provided with a few tweaks and refresher on completion handlers.  Super appreciate your help, I don't think I would have figured that out on my own.  Thank you!


Steps to build the elasticsearch VM disk image

In VirtualBox (using 6.1.10)
a. create a new Ubuntu machine
b. make sure it has an optical drive
c. create a new host-only VB adapter and add it to the list of network interfaces in the guest

Download the Ubuntu 20.04 Server image from here and load it into the virtual optical drive

Install Ubuntu, creating a user called ubuntu with a password of password

Enable ssh from host
a. boot machine and execute ip address to find the host-only adapter id (e.g. enp0s8)
b. edit /etc/netplan/00-installer-config.yml to add:

    ...
    ethernets:
        ...
        <adapter-name>:
            addresses:
                - <IP_ADDRESS>/24

c. execute netplan apply
d. Then ssh<EMAIL_ADDRESS>
Install Elasticsearch

curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-amd64.deb -O
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-amd64.deb.sha512 -O
sha512sum -c elasticsearch-7.7.0-amd64.deb.sha512
sudo dpkg -i elasticsearch-7.7.0-amd64.deb

Configure Elasticsearch
Add the following to /etc/elasticsearch/elasticsearch.yml:

network.host: <IP_ADDRESS>
discovery.type: single-node
http.cors.enabled: true
http.cors.allow-origin: "*"

Enable Elasticsearch on boot

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Configure Elasticsearch authorization

a. Add the following to /etc/elasticsearch/elasticsearch.yml:
xpack.security.enabled: true

xpack.security.authc:
  anonymous:
    username: anonymous_user
    roles: readonly

b. Add the following to /etc/elasticsearch/roles.yml:
readonly:
   indices:
    - names: [ '*' ]
      privileges: [ 'read' ]

c. Restart the instance
sudo systemctl restart elasticsearch

Enable HTTPS
a. Do this:

sudo su
/usr/share/elasticsearch/bin/elasticsearch-certutil ca
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
mkdir /etc/elasticsearch/certs
mv /usr/share/elasticsearch/*.p12 /etc/elasticsearch/certs/
chown root:elasticsearch /etc/elasticsearch/certs/*
chmod 660 /etc/elasticsearch/certs/*

b. Add this to /etc/elasticsearch/elasticsearch.yml:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.client_authentication: optional
xpack.security.http.ssl.verification_mode: certificate

c. Restart the instance
sudo systemctl restart elasticsearch

Enable dhcp4 for the network adaptor because the adapter is assigned a v6 address by default and Digital Ocean apparently doesn't support v6 address for custom images.

This needs to happen at boot time on the Droplet itself, so I created the following script + systemd service to do it.

Create /usr/local/bin/enable-dhcp4 with the following content:

#!/usr/bin/python3

import os
import subprocess
import time
import yaml

CONFIG_PATH = '/etc/netplan/50-cloud-init.yaml'

def main():
    # Read / update the config object.
    any_changes = False
    with open(CONFIG_PATH, 'rb') as fh:
        config = yaml.load(fh, Loader=yaml.CLoader)
        for opts in config['network']['ethernets'].values():
            if opts.get('dhcp4') != True:
                opts['dhcp4'] = True
                any_changes = True

    # Save any changes.
    if any_changes:
        # Rename/backup the existing config file.
        os.rename(
            CONFIG_PATH,
            '{}.{}'.format(CONFIG_PATH, str(int(time.time())))
        )

        with open(CONFIG_PATH, 'wb') as fh:
            fh.write(bytes(yaml.dump(config), encoding='utf-8'))
        # Apply the new configuration.
        subprocess.call(['netplan', 'apply'])

if __name__ == '__main__':
    main()

Create /etc/systemd/system/enable-dhcp4.service with the following content:

[Unit]
After=cloud-final.service

[Service]
ExecStart=/usr/local/bin/enable-dhcp4

[Install]
WantedBy=default.target

Set permissions

chmod 744 /usr/local/bin/enable-dhcp4
chmod 644 /etc/systemd/system/enable-dhcp4.service

Enable the service

systemctl daemon-reload
systemctl enable enable-dhcp4.service

The network configuration should now automatically have dhcp4 enable on boot.

Install the Let's Encrypt certbot

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install certbot

Configure cloud-init to work with Digital Ocean Droplet (how-to)

cd /etc/cloud/cloud.cfg.d
sudo rm 50-curtin-networking.cfg
sudo dpkg-reconfigure cloud-init
# "NoCloud" is highlighted; press SPACE to deselect then ENTER
cd /etc/netplan
sudo rm 00-installer-config.yaml
# DO how-to says to delete "50-cloud-init.yaml" but it wasn't present
sudo rm /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
sudo cloud-init clean

Upload image to Digital Ocean

In Virtualbox, do Export to OCI
Rename exported *.ova file to *.ova.tar
tar xf *.ova.tar
Upload the disk image to Digital Ocean. Maybe could do this directly, but since we'll want this image to be publicly accessible, I went with the hosted S3 bucket route:
a. Upload the disk image to hosting-enabled S3 bucket:

aws --profile=website_admin s3 cp --acl public-read collectionbuilder_elasticsearch-disk001.vmdk s3://collectionbuilder-sa-demo/

b. Use DO Images -> Custom Images -> Import via URL
User Actions After Spinning Up on Digital Ocean

Setup all the reserved user passwords
To automatically generate passwords:

sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

Alternatively, to set each manually:
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

Change root (maybe?) and ubuntu user passwords

sudo passwd root
sudo passwd ubuntu

Need to do this part still: https://www.digitalocean.com/community/tutorials/how-to-create-a-digitalocean-droplet-from-an-ubuntu-iso-format-image#step-3-—-reconfiguring-cloud-init

Moved this to a gist for change tracking: https://gist.github.com/derekenos/108baefe525322e7a7977294e40a1d18

This effort now has its own repo: https://github.com/CollectionBuilder/collectionbuilder-sa_elasticsearch-image


:github_url: as a theme option

I am trying to reproduce locally the output I get in RTD (see readthedocs-docker-images#47). According to the README here, it seems that I need to manually add :github_url: to each page in order to have 'Edit on GitHub' instead of 'View page source'. I would expect this option to be available as a theme option, so that the same sources produce the same result in RTD and locally.

You can reproduce this locally by changing your conf.py:
html_context = {
  'display_github': True,
  'github_user': 'username',
  'github_repo': 'reponame',
  'github_version': 'master'
}

Related to #156.

Thanks a lot. That's exactly what I needed. However, I had to slightly modify it:
'display_github': True,
'github_user': 'username',
'github_repo': 'reponame',
'github_version': 'branch/doc/'

Note the subdir after the branch/version, and the trailing slash.
I close this, because the question is solved. But you might want to reopen it to keep track of the pending documentation.

This is a duplicate of #465

You don't need to have a slash in github_version, see example here:
https://github.com/readthedocs/sphinx_rtd_theme/issues/231#issuecomment-126447493
I'll add a comment on #465.


[BUG] Test run on Ubuntu, Python 3.8 is failing

e.g. see https://github.com/brainglobe/brainreg-segment/actions/runs/4503089676/jobs/7938963086?pr=81
It seems to be crashing silently on the tests/tests/test_integration/test_gui/test_gui.py::test_regions test.

Bizarrely, the tests pass when they are run in verbose mode! The output of the previously crashing test is
tests/tests/test_integration/test_gui/test_gui.py::test_regions Loading brainreg directory
Adding a new region
Running region analysis
Calculating region volume distribution
Saving summary volumes to: /tmp/pytest-of-runner/pytest-0/test_regions0/brainreg_output/manual_segmentation/standard_space/regions
Saving
Saving regions to: /tmp/pytest-of-runner/pytest-0/test_regions0/brainreg_output/manual_segmentation/standard_space/regions
Exporting
Saving tracks to: /tmp/pytest-of-runner/pytest-0/test_regions0/brainreg_output/manual_segmentation/standard_space/tracks
Finished!
Exporting regions to: /tmp/pytest-of-runner/pytest-0/test_regions0/brainreg_output/manual_segmentation/standard_space/regions
Summarising regions
Finished!

😢 turns out this was already fixed in https://github.com/brainglobe/brainreg-segment/pull/76, and I stupidly forgot.


Operator Empty throws "notice"

In code:
if !empty definition["limit"] {
....

In PHP:
Notice: Undefined index: limit in test2.php on line 26

'empty' does not work as in php, maybe you want to use 'isset'?

@andresgutierrez
Only such a solution?
if isset definition["limit"] && !empty definition["limit"] {
.... expr if the key exists and is not empty ....
}

I think this sould be documented here: https://docs.zephir-lang.com/0.12/en/operators#empty
Because there is absolutely nothing in the "empty" documentation that suggest this different behaviour.


Allowed to type in future date

Datepicker crated as follows:
        var today;
        today = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate());

        $('#start-date').datepicker({
            uiLibrary: 'bootstrap4',
            maxDate: today
        });

It will prevent to enter future date using UI but when I will type in something like 05/55/2021 (do not hit Enter) and then click back date input field it will reset that date to something like 06/24/2021 (future date) and user can proceed with that data.

It will require some function like
        function isFuture(element){
            $(element).focusout(function(){
                if(new Date($(element).val()) > today){
                    alert("You are not allowed to select future date");
                    $(element).val('');
                }
            });
        }

Good example is jQuery.datepicker() which will default that date to maxDate.


Rfree should be Rfree, not Rport

The current implementation of models with risky assets includes the following behavior in get_Rfree:
https://github.com/econ-ark/HARK/blob/a462169fef6c047a070239da749a4f449ecf6c89/HARK/ConsumptionSaving/ConsRiskyAssetModel.py#L270-L275
I get that the purpose of this is to recycle the transition code of models without a risky asset, sneaking in an Rfree that is not actually the risk-free rate but the return implied by the optimal portfolio instead. However I do not think it is a good thing that a future user that is implementing a model and wants to get the risk-free rate and naively calls get_Rfree gets something back that is not Rfree and is forced to go hunting for the super() that causes that; that happened to me just now.
Maybe the right thing to do is to have an Rport that is set to Rfree in models without risky assets. Not the other way around.

Totally agree that this is a problem.

Yes, Rport degenerating to Rfree much better than Rfree being stochastic.

Reviewing this again: I would have thought that our defaults would be for a zero percent portfolio allocation to the risky asset, and maybe zero variance for the risky shocks.  So am surprised that @Mv77 found that when he didn't touch anything the Rport he got was actually stochastic.

Strongly agree. Or we need a better variable name for "realized rate of
return on assets" in the simulation code other than Rport, and the method
is called get_Rbettername()
On Mon, Aug 1, 2022 at 10:21 AM Mateo Velásquez-Giraldo <
@.***> wrote:

The current implementation of models with risky assets includes the
following behavior in get_Rfree:
https://github.com/econ-ark/HARK/blob/a462169fef6c047a070239da749a4f449ecf6c89/HARK/ConsumptionSaving/ConsRiskyAssetModel.py#L270-L275
I get that the purpose of this is to recycle the transition code of models
without a risky asset, sneaking in an Rfree that is not actually the
risk-free rate but the return implied by the optimal portfolio instead.
However I do not think it is a good thing that a future user that is
implementing a model and wants to get the risk-free rate and naively calls
get_Rfree gets something back that is not Rfree and is forced to go
hunting for the super() that causes that; that happened to me just now.
Maybe the right thing to do is to have an Rport that is set to Rfree in
models without risky assets. Not the other way around.
—
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/1158, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKRAFOSZZXLKB3HEABOSATVW7MORANCNFSM55HX3UZQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Integrate PlayerInventory

Integrates PlayerInventory and Inventory, making them much more similar than they are now by moving a lot of existing logic to AbstractInventory.
[this is a portion of my old inventory PR]
Primary changes:

Inventory events (and all other relevant places that were using it) now use @NotNull AbstractInventory instead of @Nullable Inventory (which used null to indicate the player inventory)
PlayerInventoryItemChangeEvent no longer exists; use InventoryItemChangeEvent
AbstractInventory now implements Viewable. This means PlayerInventory supports (and has to deal with) multiple potential viewers, too.
PlayerInventory can no longer guarantee that it knows the held item because each viewer may hold a different item.

Note:
PlayerInventory#UNSAFE_itemInsert is pretty ugly (for example it must iterate through its viewers two separate times). Having PlayerInventory store the held slot instead of the player would simplify it a bit, but I don't really like the sound of that.

(marking as a draft because it definitely needs discussion + I am still not super happy with some of the implementation)

Would it make sense to rename AbstractInventory -> Inventory and Inventory -> ContainerInventory (or something like that)?
Now that AbstractInventory is much less abstract and in fact contains most of the logic


'sign' command fails to close created signature file if compression fails

If this code in cmd/sign: https://github.com/itchio/butler/blob/71361b9d8247268628c5123179f0b1208bd7c666/cmd/sign/sign.go#L67-L70 errors, an error is returned without closing the above signatureWriter. This also applies down the line should pwr.ComputeSignatureToWriter fail, although I am reasonably confident it can't.

I'm generally in favor of Close() hygiene, but let's review what would actually happen here:

The file at *args.signature would contain a wharf signature header
Not calling Close() might leave some data unflushed, if the program exits before the *os.File instance is garbage-collected

My thinking here is that if pwr.CompressWire or pwr.ComputeSignatureToWriter fail, the resulting file is unusable anyway, so does it really matter if we flush everything we had so far or not?
Or is your worry that opening a file for writing on some versions of Windows locks it and you wouldn't be able to open it right after?
The reason sigWire.Close() in this particular file is near the end is precisely because the signature files are compressed: Close() here doesn't just free resources, it flushes the compressor (which might be several megabytes of data, depending on the output format).

Perhaps a good fix would be to make WriteContext.Close() not close the underlying writer, and
just defer signatureWriter.Close() right after it's created instead.
This way the OS resource is always freed, and we only flush the compressor if we ran through the whole process successfully.
I've been feeling bad about this pattern anyway:
// Close closes the underlying writer if it implements io.Closer
func (w *WriteContext) Close() error {
	if c, ok := w.writer.(io.Closer); ok {
		err := c.Close()
		if err != nil {
			return errors.Wrap(err, 1)
		}
	}

	return nil
}

My primary worry is the Windows thing, yes, if the file never gets closed, nothing else attempting to interact with it would be able to. Not that there's necessarily anything meaningful in the file to interact with, I suppose.

I just checked: calling *os.File.Close() twice just returns os.ErrClosed, so it's fine to do it unconditionally in a defer without checking the return value.


CommandBar in NavigationView Header show incorrect font size in secondary command

Describe the bug
When I add a CommandBar in NavigationView Header, the secondary command font size is too large.
Steps to reproduce the bug
Steps to reproduce the behavior:

Create a blank UWP app.
Add NavigationView control to MainPage
Add in NavigationView HeaderTemplate a CommandBar with some SecondaryCommands.
Run app and open secondary commands in CommandBar.

Expected behavior
Secondary commands have normal font size.
Screenshots

Version Info
UWP Blank App with Microsoft.UI.Xaml version 2.0.181018004 nuget package, in Windows 10 October Update.
NuGet package version:
Microsoft.UI.Xaml version 2.0.181018004 nuget package

Windows 10 version
Saw the problem?

October 2018 Update (17763)
Yes

April 2018 Update (17134)
No

Device form factor
Saw the problem?

Desktop
Yes

Additional context
This issue was detected by @TheJoeFin in Windows Template Studio.
X-ref: https://github.com/Microsoft/WindowsTemplateStudio/issues/2921
Repro App:
CommandBarExample.zip

This is somewhat expected. The header uses a larger font than the default and most of our controls don't explicitly set a FontSize and just inherit it down the tree. If you want to try to use a CommandBar here and have it be the default size then you'll need to set FontSize to 14 to go back to the default.

@jevansaks Thanks for looking into this. We adapt our templates.


Update inline with latest GeneratedSchemas

...which has switched to returning a String for the path, as the path doesn't change on Windows.

coverage: 93.64%. remained the same
when pulling 93725bf1961024bb7a21823b43da846c004e906e on windows_path
into c57e4ebeb740c017fd11291f2eee8e947cd659fc on main.


support for SSL-/-TLS certificates

Just out of curiosity, why doesn't there seem to be support for SSL-/TLS-certificates?
I have yet to find even óne docker container for ADS-B where the webinterface to display the flights can be used with those.
Consider this a request to implement support for usage of certificates.

@bartgrefte - The typical and appropriate method to achieve TLS for docker containers is to use a webserver as reverse proxy such as nginx/traefik/caddy and proxy the connection to the container. You can do this within the same docker network and only expose the webserver container.
As these are established and tested webservers they are usually better performing and more secure at implementing TLS.

@needs-coffee I am aware of that, unfortunately, I have yet to find a pre-made reverse proxy container (like Nginx Proxy Manager) that supports adding pre-existing certificates through command line.
Right now I've set up an Apache webserver and manually configured that to function as a reverse proxy, where I can use my own pre-existing certificates. Not quite user-friendly, fortunately I have worked with Apache config-files before, so it is doable.

I use nginx but i dont use nginx proxy manager - i just edit the config files directly, more portable.
If you use docker compose you can add this
services:
  reverse_proxy:
    container_name: reverse_proxy
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./config/default.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/nginx/certs
    networks:
      - adsb
    depends_on:
      - readsb

and in the docker-compose directory - ./config/default.conf
server {
    listen       80 default_server;
    listen  [::]:80 default_server;
    return 302 https://$host$request_uri;
}

upstream readsbcontainer {
    server readsb:8080;
}

server {
    listen 443              ssl http2 default_server;
    listen [::]:443         ssl http2 default_server;
    # omit server_name for catch all default server, if redirecting multiple subdomains specify server name
    # server_name           example.lan example.local;

    ssl_certificate         /etc/nginx/certs/mycertchain.pem;
    ssl_certificate_key     /etc/nginx/certs/mycert.key;
    ssl_trusted_certificate /etc/nginx/certs/myrootcert.pem;

    ssl_protocols           TLSv1.2 TLSv1.3;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        proxy_set_header        Host $host;
        add_header              X-Served-By $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_set_header        X-Forwarded-Scheme $scheme;
        proxy_read_timeout      90;
        proxy_http_version      1.1;
        proxy_pass              http://readsbcontainer/;
        proxy_redirect          http://readsbcontainer https://$host;
        }

}```

Certs are added in a certs in the docker-compose folder  with your chain, key and root ca
I use nginx on the host not in a container though so i can proxy non docker connections
I would imagine traefik would be easier as it is 'docker native'

Please see: https://github.com/sdr-enthusiasts/docker-reversewebproxy


Self host?

Hi,
Firstly, thank you for this amazing work - appreciate it.
Is it possible for me to host a version of this myself, on my own domain?
Many thanks.

Short answer, no
Longer answer, yes but it would require a near rewrite as you can no longer deploy v2 skills.
Also what benefit is there in recreating it? It makes no sense to have multiple versions of the same skill in the Alexa catalog, you could run it permanently in testing mode so only you could see it but then you have all the expense of hosting it. I really don't see a compelling argument for it which is why delberatly there are no set up instructions

Also what benefit is there in recreating it?

What about security? I'm new to Alexa developing so I'm not sure how is the command flow but I guess that since you are running the backend, you have the ability to (theoretically) remote control all the devices of all your users?
I understand that turning on/off lights or even curtains are not a huge risk, but remotely triggering door locks is another story... This is why I would love to self hosting it too...
Also, thank you very much for your hard work... it is really amazing!

Yes, in theory I could turn your devices on/off but I have no incentive to do so and you gave up on the security side of things the moment you plugged the Alexa device in.


README.md: Set an unique system-id to identify an ovs

commit fc7aeaf1437bdefacec112dbd4164eba9052c0b3
Author: zhou Huijing<EMAIL_ADDRESS>Date:   Mon Nov 28 03:40:56 2016 +0000
README.md: Set an unique system-id to identify an ovs

Signed-off-by: zhou Huijing<EMAIL_ADDRESS>
diff --git a/README.md b/README.md
index 94b7a14..59af8d3 100644
--- a/README.md
+++ b/README.md
@@ -107,11 +107,14 @@ kernel version of 3.18 for geneve.  There is no stt support in upstream Linux.
You can verify whether you have the support in your kernel by doing a lsmod |  grep $ENCAP_TYPE.)
+$SYSTEM_ID is a unique identifier to identify each Open vSwitch in an OVN
+deployment.If you start Open vSwitch manually, you should set one.
ovs-vsctl set Open_vSwitch . external_ids:ovn-remote="tcp:$CENTRAL_IP:6642" \
  external_ids:ovn-nb="tcp:$CENTRAL_IP:6641" \
  external_ids:ovn-encap-ip=$LOCAL_IP \
-  external_ids:ovn-encap-type="$ENCAP_TYPE"
+  external_ids:ovn-encap-type="$ENCAP_TYPE" \
+  external_ids:system-id=$SYSTEM_ID

And finally, start the ovn-controller.  (You need to run the below command on

commit fc7aeaf1437bdefacec112dbd4164eba9052c0b3
Author: zhou Huijing<EMAIL_ADDRESS>


updated cpack.d substate

Original pull request by Giampiero Gabbiani (Bitbucket: ggabbiani, GitHub: ggabbiani).

Original comment by Volker Enderlein (Bitbucket: VolkerEnderlein, GitHub: VolkerEnderlein).

@ggabbiani Can you have a look into this pull request ? The source branch is deleted and the changes are already applied to simage. So I think it can be safely declined. Cheers, Volker


Android: Support 64 bit exports

Since google is forcing publishers to support 64-bit by August 2019. I was wondering if there is any plan to support it in Godot Engine anytime soon ?
I hope that feature will be back-ported to Godot Engine 2.1.

It was not added since #9838? also target now is Oreo on 3 (changes on scons may be needed on 2.1).

It's already supported on master, but it could be backported to 2.1.


Service DNS is DOWN (<IP_ADDRESS>)

Service DNS is DOWN (<IP_ADDRESS>)
<IP_ADDRESS>
Alert Details: Port is not listening.

via Uptime Robot - All Monitors https://bit.ly/2Wd5rQ4
July 29, 2020 at 11:29AM

Fixed


BaseVector::hashValueAt is not consistent with BaseVector::equalValueAt for NaNs

Bug description
Given two equal values we expect hashes of these values to be the same. The opposite is not true (hash collisions).
However, given two different representations of NaN (for example, std::nan("1") and std::nan("2")) BaseVector::equalValueAt returns true, while BaseVector::hashValueAt returns 2 different hashes.
A simple repro:
TEST_F(AggregationTest, xxx) {
  auto v = makeFlatVector<double>({std::nan("1"), std::nan("2")});

  auto h1 = v->hashValueAt(0);
  auto h2 = v->hashValueAt(1);

  EXPECT_EQ(h1, h2);
  EXPECT_TRUE(v->equalValueAt(v.get(), 0, 1));

...
Expected equality of these values:
  h1
    Which is:<PHONE_NUMBER>8970240804
  h2
    Which is:<PHONE_NUMBER>385630149

Similarly, when aggregating with grouping keys that contain different NaNs, Velox puts each NaN into separate group.
  auto data = makeRowVector({v});

  auto plan =
      PlanBuilder().values({data}).singleAggregation({"c0"}, {}).planNode();

  auto r = AssertQueryBuilder(plan).copyResults(pool());
  LOG(ERROR) << r->toString();
  LOG(ERROR) << r->toString(0, 10);

...
[ROW ROW<c0:DOUBLE>: 2 elements, no nulls]
0: {NaN}
1: {NaN}

This behavior seems to be due to usage of folly::hasher<float> and folly::hasher<double>. In Folly, it makes sense that hash of different NaNs is different because C++ implement IEEE 754 standard where NaN is never equal to NaN.
However, SQL implementations do not follow IEEE 754 standard and expect all NaNs to be equal. This behavior is followed in BaseVector::compare and equalValueAt, but in hash computation.
  FOLLY_ALWAYS_INLINE static int comparePrimitiveAsc(
      const T& left,
      const T& right) {
    if constexpr (std::is_floating_point<T>::value) {
      bool isLeftNan = std::isnan(left);
      bool isRightNan = std::isnan(right);
      if (isLeftNan) {
        return isRightNan ? 0 : 1;
      }
      if (isRightNan) {
        return -1;
      }
    }
    return left < right ? -1 : left == right ? 0 : 1;
  }

Hash computation needs to be fixed in multiple places.

BaseVector::hashValueAt
VectorHasher::hashValues
RowContainer::hashTyped
any other place that uses folly::hasher

CC: @rschlussel @kagamiori @kgpai @rui-mo
This issue was discovered during code review: https://github.com/facebookincubator/velox/pull/9272#issuecomment-2031169744
System information
n/a
Relevant logs
No response

Having branching every time when we do comparison/hashing is expensive.  The most efficient way should be we normalize NaNs to the same value beforehand.

Hash computation needs to be fixed in multiple places.

BaseVector::hashValueAt
VectorHasher::hashValues
RowContainer::hashTyped
any other place that uses folly::hasher

Spark performs NaN normalization on keys of aggregation, join and window operations. I wonder if there are the other scenarios in Velox that requires such normalization?
Thanks.

@zhli1142015 Any code that relies on BaseVector::hashValueAt is at risk for handling NaN values incorrecty.

Thanks. I check Spark in function also produces wrong result for NaN values.

For Presto, NaNs should be treated the same.  We haven't decided on +/-0.  Having them be treated as different is easiest from a code perspective because it aligns with built in java implementations for compare/hashcode/equals. But if it's preferred we could use our own implementations with extra logic for handling +/-0

Thanks. Get it, so the difference is only related to +/-0.0.

@rschlussel We will need to either normalize NaNs or use custom comparator anyway, I think a better way is to also normalize -0.0 to 0.0 or handle them in custom comparator as well

normalizing seems tricky (would need to normalize after every operation on a double), but we can do a custom comparator.


Testing for parser

Is your feature request related to a problem? Please describe.
Testing framework for the parser
Describe the solution you'd like
Checking that it works with a wide variety of inputs (correct/incorrect)

#33


Fix uv_os_tmpdir when env variable is 260 chars

When TMP environment variable is 261 chars (including the trailing slash) or 260 chars without the trailing slash, uv_os_tmpdir throws an UV_EIO error which it shouldn't, since the total input string size allowable for this function is PATH_MAX+1 (including the trailing slash).
Please see the  Julia code in https://github.com/libuv/libuv/issues/2336 which demonstrates the problem.
In any case, there is also no harm in setting the buffer larger.

Good to merge?

I'd like some collaborators more familiar with Windows to sign off on this. It seems like an odd edge case that I can't really test out for myself.

Exactly, the MSDN documentation is wrong and has different behavior as demonstrated in my test scripts, which show that it can actually report back a buffer length of 262 and not 261 as stated in the docs, when the TMP environment variable is 261 chars long (including the trailing backslash).

@musm, can you create a test for this? Otherwise this LGTM.

@bzoz I'm not sure how to test thing. Would anyone else be able to create a test case based on the linked issue?
I confirmed that building this branch and the corresponding  julia code is fixed.
Here's how the test should look like.

Set the environment variable TMP to a string on length 261: e.g. "C:\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"  (must have the C:\ prefix and  trailing backslash)
Ensure this function does not throw  UV_EIO
Assert the length returned in equal to the length of the TMP var.

Test added.  They pass on this branch but on throw the branch libuv:v1.x throw an assertion.

closes https://github.com/libuv/libuv/issues/2336

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/1446/

Thanks, has CI passed? I can't seem to understand the linked CI page.

3 test have failed on win 2008r2:
05:50:23  not ok 100 - fs_symlink
05:50:23  # exit code 3
05:50:23  # Output from process `fs_symlink`:
05:50:23  # Assertion failed in test-fs.c on line 1944: stricmp(req.ptr, test_file_abs_buf) == 0
05:50:23  not ok 101 - fs_symlink_dir
05:50:23  # exit code 3
05:50:23  # Output from process `fs_symlink_dir`:
05:50:23  # r == 0
05:50:23  # Assertion failed in test-fs.c on line 2106: strlen(req.ptr) == test_dir_abs_size - 5
05:50:23  not ok 102 - fs_symlink_junction
05:50:23  # exit code 3
05:50:23  # Output from process `fs_symlink_junction`:
05:50:23  # r == 0
05:50:23  # Assertion failed in test-fs.c on line 2106: strlen(req.ptr) == test_dir_abs_size - 5

Those look unrelated though, I'll land this PR later today or tomorrow morning.

@bzoz those failures are https://github.com/libuv/libuv/issues/2303, so almost certainly unrelated.

Great, thanks all. Glad to have my first PR to libuv land!

Landed in https://github.com/libuv/libuv/commit/a5d374377822ddaa1961bddcef4bd53189c83d88. Great job @musm!


[$500] mWeb - New user doesn't get Concierge chat after authentication through the magic code link

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

Version Number: v1.4.24-4
Reproducible in staging?: y
Reproducible in production?: y
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
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to staging.new.expensify
Create a new account
Copy the magic link and change it to staging
Open a new tab and navigate to the staging magic link
Verify the abracadabra page is displayed
Navigate back to the original tab

Expected Result:
The Concierge conversation should be displayed immediately after signing up.
Actual Result:
New user doesn't get Concierge conversation after authentication through the magic code link.
Workaround:
Unknown
Platforms:

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

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/8f3090b9-713b-4838-8a78-b591341a702b
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013a7b98b78fcaf70a
Upwork Job ID:<PHONE_NUMBER>159492608
Last Price Increase: 2024-01-18

This has the same issue I explained here.
I think it should be fixed on the BE by always including the Concierge chat in the report list on #focus mode.

@bernhardoj Per default new users have Concierge chat pinned. This seems to be related to the abracadabra flow
Using the magic code

Using the magician

Still looking for proposals

Still looking for proposals

Still looking for proposals

Still looking for proposals

Still looking for proposals...

Not overdue. Looking for proposals

@kbecciv can you recreate this and provide a new video?
This is quite old and may not even be an issue anymore.

@s77rt are you able to recreate this?

@abekkala Just retested. Working fine!
https://github.com/Expensify/App/assets/16493223/b8b97ed6-6c22-47e2-ab60-82c6469a9b0a


The default export of tree-shaking is invalid

Describe the bug
There's a very simple example where only the parse method from query-string is used in main.js, yet the resulting build includes the entire query-string.

Reproduction
https://stackblitz.com/edit/vitejs-vite-zo5azj?file=package.json,main.js,dist%2Fassets%2Findex-PXLM-HwC.js&terminal=dev
Steps to reproduce
npm run build
System Info
-

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Webpack is able to tree-shake this.


Support for React 18

What type of issue is this?
Question
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Target SharePoint environment
SharePoint Online
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[ ] 💥 Microsoft Edge
[ ] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[X] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details
Not Applicable.
Issue description
Just wondering if there's any ETA and/or any plans to support React v18? I believe that it's been about 2.5 years since it was released. I saw some questions and discussion regarding support in 2022 and it looks like there was a jump to React 17.
However, I've found the lack of support for React 18 to be a barrier in porting several of my commonly used components into an spfx solution I was working on. Thanks for your time!

Piling on... if we're in the upgrade business, let's jump to React 19 which goes GA on September 23, 2024

Vesa's team don't care.
https://github.com/SharePoint/sp-dev-docs/issues/8715
https://github.com/SharePoint/sp-dev-docs/issues/9263
https://github.com/SharePoint/sp-dev-docs/issues/9463

SPFx long term support would greatly benefit from updating to react 18/19. Many npm packages are moving on from supporting 17. For example Vercel's AI SDK and Framer Motion are 18+.
A refactor of the generator to functional components would also be appreciated.

React 17 has been released without introducing new features, focusing instead on providing an easier upgrade path for future versions.
from React v17.0 release announcement

No New Features

The React 17 release is unusual because it doesn’t add any new developer-facing features. Instead, this release is primarily focused on making it easier to upgrade React itself.
In particular, React 17 is a “stepping stone” release that makes it safer to embed a tree managed by one version of React inside a tree managed by a different version of React.
It also makes it easier to embed React into apps built with other technologies.

Based on my tests, there’s nothing stopping us from using React 18 (I haven’t tried React 19 yet). To test React 18, I had to tweak the build chain to avoid marking React as external. I can share details if anyone is interested.
Since we’re using isolated React instances in each web part, we can technically use any version of React. Even though the SP UI is built on React 17, our components should still work with different React versions.
The real issue is Microsoft’s decision to not update the toolchain, which prevents us from using modern, high-quality libraries to build better products for our customers. As a result, we often have to reinvent the wheel and rebuild things manually due to stack-level dependencies.
Here’s a growing list of libraries I can’t use in SPFx because they require React 18 or TypeScript 5 (yes, @andrewconnell explains it’s possible, but only up to TypeScript 5.3, while the latest version is 5.8):

@tanstack/react-query (the previous major version works)

@tanstack/forms

@xstate/react

zustand v5

valtio

@mantine/core

...

Recently, Microsoft released a survey about updating the toolchain, and I have high hopes that this will lead to progress.

@stevebeauge said:

React 17 has been released without introducing new features, focusing instead on providing an easier upgrade path for future versions.
from React v17.0 release announcement

React v17 has been out since October 2020... SPFx already supports React v17.
React v19 was just released last week (DEC-5) and it DOES introduce a LOT of new stuff.
https://react.dev/blog/2024/12/05/react-19

What I meant is that moving from react 17 to 18 shouldn't be an issue.
Probably same for react 19


Drop dev-oriented files from release tarball

End users don't need our CI's config, nor our .gitattributes file, nor the Docker images we use for development and testing. Also saves us a few kilobytes (after compression).
Will merge in three days unless someone—anyone—stops me for a review.

Coverage decreased (-0.06%) to 40.168% when pulling e23b85691f0b52462f69d0923cfe23e52b54e487 on feature/smaller-release-tarballs into 9fec511ee16cb96a9b5082bd12153e89be5173d1 on master.


schema: update from updated esc command

esc has been updated to close file handler which wasn't https://github.com/mjibson/esc/pull/27
/cc @jonboulle
Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>

LGTM

lgtm


Can't installl in laravel 7.13.0

https://github.com/Crinsane/LaravelShoppingcart/wiki/Maintained-Forks


Add tests for contract

create readme.md
configure circleci test environment

ready for TDD~!!

clean up architecture

Airbloc Token -> ABL
Airbloc Genesis Token -> ABLG

token is mintable and burnable now

Seems good, but we need to set some conventions.


Improved the test_radio_spi to turn on EN pin

Added more docs for test_pin

This is based on work done on the bench today, testing boards


fixing a bug where exceptions would not be thrown because of async co…

Hey,
Using the library I noticed that exceptions are not thrown to the upper stack because the await operator was not used with HandleError and the Task chaining wasn't done properly.
Hopefully that fixes it.

Great! you are right we should await this and thanks to C#6 we can await in catch lol. Just merged!


Bump CHaP after reset

Index state 2022-10-15T00:00:00Z does not exist in CHaP anymore.

Thanks yes, we do need this.


round mode HalfUp

I'm trying to implement this behavior with Dashu:
https://www.w3.org/TR/xpath-functions-31/#func-round

If two such values are equally near (for example, if the fractional
part in $arg is exactly .5), the function returns the one that is
closest to positive infinity."

While dashu implements a rounding mode HalfAway, I think this requires HalfUp. Alternatively I take the absolute value, use HalfAway, and then reapply the sign, but that seems cumbersome.

I don't plan to add that rounding mode to Dashu now, because this rounding mode is rather rarely used. You can implement the rounding mode in your application, because the requirement for the rounding mode is just to implement the Round trait.
Please refer to https://github.com/cmpute/dashu/blob/4329c5cc67fa9798924888bb5cdd495dba96e566/float/src/round.rs#L288-L321 for an implementation example.

Thanks for the tip! Given that the rounding mode is rarely used, I now wonder how this spec ended up with it - seems a strange one to pick.

I have the same question... It's so counter-intuitive


Test data

It really confusing me that:
what‘s the difference between the datasets you mentioned in the results of baseline?

The zero-shot results of baseline on the sampled data
The zero-shot results of baseline on the test data
the dataset provided on the test server (DriveLM-nuScenes version-1.1 val)

Could you give detailed information between these datasets?
Thanks!

It's illustrative in our description for each result

Thanks


[feat] Push Notifications

Describe the problem
Several platforms supported by Tauri - macOS, iOS, and Android, to name a few - have some kind of built-in push notifications system. For Apple systems, of course there is APNS, and for Android and Firebase-enabled apps, there is FCM.
Tauri isn't yet able to support these APIs, as far as I can tell. On Apple platforms, the developer must register a method with the AppDelegate and call a method on NSApplication, which isn't easy to do from Rust. iOS uses a similar flow, but with UIApplication instead.
Push Notifications are likely to be a common need for Tauri developers, especially on mobile platforms.
Describe the solution you'd like
I think Tauri should add calls to the UIApplication and/or NSApplication to register for push notification support on behalf of the developer; or, Tauri should make available such calls so the developer can implement support themselves.
Alternatives considered

I looked for plugins and found none
I looked for easy Rust bindings to register for APNS, and found none because these APIs use {NS,UI}Application
I looked into alternative push systems (3rd-party), but these aren't integrated well with underlying operating systems like Android and iOS, as compared to native push infrastructure

Additional context
General support
In most cases, "registering" for these push systems consists of a few relatively simple steps:

"Registering" or "requesting" a token from the application, using system APIs, potentially within the app entrypoint
"Receiving" the token via some callback or delegate mechanism (the token is typically just some raw bytes or a string)
Making the received token available to the developer

Usually the developer will want to send this token to a server
Callbacks or even just a method to retrieve the latest push token (if any) would work fine for callers, probably

Apple Platforms
macOS
It looks like tao already sets up an AppDelegate, where we would need to call registerForRemoteNotifications, and then receive the token at the delegate method application(_:didRegisterForRemoteNotificationsWithDeviceToken:).
iOS
Nearly identical to macOS, but with UIApplication.registerForRemoteNotifications() and the equivalent delegate method.
Android
Firebase uses a Service on Android to implement messaging within an app. This service is declared in the AndroidManifest.xml and then implemented within app code; the service:

Requests a token
Receives the token/receives updated tokens
Receives pushed messages directed to the app

This would be implemented in Kotlin as part of an Android mobile plugin for Tauri. Luckily there are no changes anticipated for tao or tauri itself; Android push can happen through the plugin alone.
Windows
Windows apparently has Windows Notifications System (WNS), which is accessible via the windows crate. So far it appears to function similar to Android, in that a library can obtain a push channel without special code in the app entrypoint.
Linux
I'm not aware of native push infrastructure for Linux. Other SDKs can be used on Linux which do not require instrumentation in the app entrypoint.

Someone published this undocumented plugin, but no idea if it works or what, haven’t tried it and don’t know anything about how mobile platforms work really.
https://github.com/guillemcordoba/tauri-plugin-fcm-push-notifications
Hoping that this feature gets added - seems like table stakes for Tauri to be usable for serious mobile apps!

Not sure the current status of this but @gordongrech claims to have made FCM work on Android and iOS, so sounds like it’s feasible with the plugin system.
https://github.com/tauri-apps/tauri/discussions/8423

I have managed to get FCM working on Android, attempted IOS but didn't get far for now due to time constraints
This person has worked on a FCM plugin before and it seems to be further along on IOS. Haven't tested it myself but it could be useful:
https://github.com/guillemcordoba/tauri-plugin-fcm-push-notifications

@osdiab / @eatenpancreas
The blocker right now is iOS, which is structured differently in Tauri's internals than macOS (Mac is much more straightforward to implement). It may indeed be possible to implement some platforms with only a plugin, but Mac and iOS probably need this deeper integration for the reasons outlined in the PR (FCM does not use the same APIs as you guys probably know).
I've raised the iOS questions on Tauri's contributor Discord, but so far haven't found any expertise. I think what I will do is split off the iOS changes et. al so they can be worked on in a separate PR.
This would mean that macOS and Android, at least, can be delivered here, and then iOS and potentially WNS can follow shortly thereafter, after some advice from whoever wrote the iOS code.

Also, I'd be happy to collaborate with anyone who is interested. My main hopes right now are to get this PR tree to stable, and to make this entire changeset less invasive by eliminating any changes that can be dropped.


Expose image credit information in the Catalogue API

Required for https://github.com/wellcometrust/wellcomecollection.org/issues/1707

One thing to note on this. When we did the corporate photography, we worked out a list of "Wellcome-ish" credits that all got transformed to "Wellcome".
We'll need to do something similar here, transforming all "Wellcome-ish" credit lines to "Wellcome Collection".

@jtweed Credit is for attribution, yes?
Is / could this be different from copyright?
cc @silveroliver

Copyright as displayed doesn't have to be a legal entity, so we're fine to use credit lines for this if that's what they are. Most will be some form of Wellcome though.
Copyright is also separate from Creator, which we may have separate at some point where it makes sense.
So, my proposal: let's add a copyright property on Location that sits alongside 'licence'. It should be the credit line on the image. If that's not there, it should be taken from the contributor.


Address Bugs & BDI Bugs

Warning
Info
Issues
Fixes #1509
Fixes #1448
Fixes #1797
Fixes #1630

@njjc ready for review.  build in progress.  sorry that it includes multiple unrelated fixes.


fix(model-datastructure): avoid stack overflows in IBulkQuery.Value.onReceive

The handlers passed to onReceive are now always executed in IBulkQuery.executeQuery.
Previously, the handler could be executed immediately if the value was loaded from the cache.
This resulted in stack overflow if the handlers passed onReceive called onReceive recursively on values that were immediately loaded from the cache.
To be verified by reviewers

[ ] Relevant public API members have been documented
[ ] Documentation related to this PR is complete

[ ] Boundary conditions are documented
[ ] Exceptions are documented
[ ] Nullability is documented if used

[ ] Touched existing code has been extended with documentation if missing
[ ] Code is readable
[ ] New features and fixed bugs are covered by tests

Might be resolved by #956 .
If not we have the issue MODELIX-1013 for it, that can be worked on after #956 is finished.


Ensure multiple instances of IntegrationFlow bean do not create conflict

Hi,
I cannot start Spring Boot application using Spring Cloud Stream 2.1.0.RC4  if there is more then one IntegrationFlow beans and my application has a bean that extends org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.
The same code works with Spring Cloud Stream 2.0.0.RELEASE
for example:
    @Bean
    public IntegrationFlow myIntegrationFlow1() {
        return IntegrationFlows.from(...)
				....
                                .get();
    }

    @Bean
    public IntegrationFlow myIntegrationFlow2() {
        return IntegrationFlows.from(...)
				....
                               .get();
    }

The application start fails with:
Field integrationFlow in org.springframework.cloud.stream.binder.AbstractMessageChannelBinder required a single bean, but 2 were found:...
I replaced the IntegrationFlow with  route and subFlowMappings, but what I achived is the number of integrationFlow beans increased (because I replaced the two IntegrationFlows with one IntegrationFlow and 3 subFlowMappings) and I get the same error:
Field integrationFlow in org.springframework.cloud.stream.binder.AbstractMessageChannelBinder required a single bean, but 4 were found:...
    @Bean
    public IntegrationFlow myMainIntegrationFlow(X) {
        return IntegrationFlows.from(...)
            .route("...", spec -> spec
                .subFlowMapping("...", integrationFlowDefinition -> {...}))
                .subFlowMapping("...", integrationFlowDefinition-> {...}))
                .subFlowMapping("...", integrationFlowDefinition-> {...}))
				....
                .get();
    }

if I add @Primary annotation to my integrationflow the app could start and it solves the problem.
    @Primary
    @Bean
    public IntegrationFlow myMainIntegrationFlow(X) {
        return IntegrationFlows.from(...)
            .route("...", spec -> spec
                .subFlowMapping("...", b -> {...}))
                .subFlowMapping("...", b -> {...}))
				....
                .get();
    }

This issue was probably introduced here: https://github.com/spring-cloud/spring-cloud-stream/issues/1553
Should this field be a list here?
https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinder.java#L124
and here maybe just check if integrationFlow list is empty:
https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinder.java#L823

I know this is closed, but here is a use-case.
I'm using cloud stream to receive messages and send responses from/to RabbitMQ.
My processing is such that my handler will do some processing and then use a messaging gateway to access a flow for sending a request over tcp/ip to another service, read the response and return some data.
This data is then further processed and finally returned back to the response queue.
I know all this can probably be wrapped in a single end-to-end integration flow, but I'm still learning Spring integration and this is the simplest for me at the moment.


How to generate files lower2original ？

Could you tell me how to generate lower2original.pkl？
Thank you！

Hi, I think you can refer to https://github.com/morningmoni/TaxoRL/issues/5. Thanks.


FGO-NA Script doesn't click the "Start" button at the begining of the quest

The script work perfectly when it was in the battle and quest selection, however when the script enter the team overview, just one click away from entering the battle quest, it doesnt click the "Start" button so that the game could enter the battle phase. Any tips on how to fix this problem?

Do you update your EN_***.lua?
Without IsContinuing == 0 variable inside it, it will not work.
Anyway I did a little tweak and now it should work with or without
IsContinuing == 0.
Kizuro<EMAIL_ADDRESS>於 2019年8月15日 週四 下午9:44寫道：

The script work perfectly when it was in the battle and quest selection,
however when the script enter the team overview, just one click away from
entering the battle quest, it doesnt click the "Start" button so that the
game could enter the battle phase. Any tips on how to fix this problem?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/29988122/Fate-Grand-Order_Lua/issues/210?email_source=notifications&email_token=ABJYTFPM6CQX7PIS2H4U2FTQEVMTVA5CNFSM4IL6LCZ2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HFN4IOA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABJYTFLT346NWZQDRNPHJDDQEVMTVANCNFSM4IL6LCZQ
.

I just follow the instruction as it was written. Pretty new to this kind of thing, so it was trial and error to me.
Should I just add those variable at the end of FGO_EN_REGULAR.lua file?

You compare this file
https://github.com/29988122/Fate-Grand-Order_Lua/blob/master/FGO_EN_REGULAR.lua
to your local file, and check if anything's missing on your side
Just copy paste them xD

There doesnt seem to be anything missing. Let me check for a while

still doesnt start. Here's my file
FGO_EN_REGULAR.txt

I have the same issue with the newest version as well. It would just stall on clicking start battle after selecting a support. I switched back to an older version of FGO Lua from back in May and that one worked for me under the same conditions.
I am using the latest version of Nox and latest version of Ankulua Trial.

Looks like instead of clicking the "Start Quest" button, the bot simply click the left side of it. Which mean it the problem came from the image.

--Only for JP currently. Searches for the Continue option after select Free Quests
if GameRegion == "JP" and game.CONTINUE_REGION:exists(GeneralImagePath .. "confirm.png") then
	IsContinuing = 1 -- Needed to show we don't need to enter the "StartQuest" function

From what I see the IsContinuing  only work for JP, when will it able to do so on NA?

I'm having this same issue. It seems that the bot attempts to click "start quest" faster than the game can register that "start quest" has even loaded on screen. Replicating this bug can be pretty inconsistent since sometimes the quest starts no issue, could vary depending on the speed of the device the script is run on. Previous versions had a small delay before attempting to start the quest, so I'm assuming that bringing the delay back will fix everything.
I'm using the latest version of Nox and latest version of AnkuluaPro2.

Adding the delay to regular.lua in line 203 worked for me.
Can you replace the regular.lua file with this one and see if it works?
https://github.com/forgehe/Fate-Grand-Order_Lua/blob/master/regular.lua
Or just make this change manually on line 200
--Friend selection.
	local hasSelectedSupport = support.selectSupport(Support_SelectionMode)
	if hasSelectedSupport == true then
		if IsContinuing == 0 then
			StartQuest()
		elseif IsContinuing == nil then
			StartQuest()
		end
	end

with
--Friend selection.
	local hasSelectedSupport = support.selectSupport(Support_SelectionMode)
	if hasSelectedSupport == true then
		if IsContinuing == 0 then
			wait(2.5)
			StartQuest()
		elseif IsContinuing == nil then
			wait(2.5)
			StartQuest()
		end
	end

Adding the delay to regular.lua in line 203 worked for me.
Can you replace the regular.lua file with this one and see if it works?
https://github.com/forgehe/Fate-Grand-Order_Lua/blob/master/regular.lua
Or just make this change manually on line 200
--Friend selection.
	local hasSelectedSupport = support.selectSupport(Support_SelectionMode)
	if hasSelectedSupport == true then
		if IsContinuing == 0 then
			StartQuest()
		elseif IsContinuing == nil then
			StartQuest()
		end
	end

with
--Friend selection.
	local hasSelectedSupport = support.selectSupport(Support_SelectionMode)
	if hasSelectedSupport == true then
		if IsContinuing == 0 then
			wait(2.5)
			StartQuest()
		elseif IsContinuing == nil then
			wait(2.5)
			StartQuest()
		end
	end

This worked perfectly. Everything is now running as it should.

I still dunno why this matters, but I added this fix to the repo anyway.
Thank you all for finding this out!

I must've forgotten to add a delay in that location. The issue was that the loading the team overview screen took longer on their devices than was expected by the script so it clicked the location prematurely.


[BUG] Rich not playing nice when called from Reticulate

[x] I've checked docs and closed issues for possible solutions.
[x] I can't find my issue in the FAQ.

Hi!
When called from the "Call-python-from-R" package Reticulate, Rich progress bars display incorrectly:

I've opened a bug report at Reticulate, with  full description and minimum code example: https://github.com/rstudio/reticulate/issues/1632
I realise this is likely some Reticulate wizardry (they remap stdout to R's console) that might be an issue, hence the bug report there, but I figured the kind developers will know much, much more about what to expect from a console, and how to get compatibility :)
Thanks a lot for any help!

I have found the root cause: Rstudio Console does not support cursor motion ANSI control sequences. I have opened a feature request upstream in https://github.com/rstudio/rstudio/issues/14942 , as well as a bug report for an associated issue https://github.com/rstudio/rstudio/issues/14941 .

I don't think there is much that can be don't if Reticulate doesn't support escape sequences. They clearly support the escape sequences for color, so fingers crossed they will support more...

They support a subset, e.g. backspace. What they don't support is other movement :/


Slow Rendering in my system

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS:  macOS

scrcpy version: scrcpy 1.18

installation method: brew

device model: Samsung M51

Android version: [e.g. 10]

Describe the bug
A clear and concise description of what the bug is.
Everything is fine with Scrcpy. My issue just the Real time rendering with my system is very slow not able to see live Mirroring. there may be 2-3 second gap with Frame

What is the output in the console?
Does reducing the definition help (scrcpy -m800)?
If you record (scrcpy --record file.mp4), is the recorded file ok?

Reducing doesn't help
But Recorded video in playing normal (without lag)


Pass params to forecast cli

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Before submitting (must do checklist)

[x] Did you read the contribution guide?
[x] Did you update the docs? We use Numpy format for all the methods and classes.
[x] Did you write any new necessary tests?
[x] Did you update the CHANGELOG?

Type of Change

[ ] Examples / docs / tutorials / contributors update
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Improvement (non-breaking change which improves an existing feature)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Proposed Changes

Related Issue

Closing issues
#670

Codecov Report

Merging #671 (a325477) into master (d0ed655) will decrease coverage by 31.49%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           master     #671       +/-   ##
===========================================
- Coverage   83.80%   52.31%   -31.50%
===========================================
  Files         119      119
  Lines        6392     6400        +8
===========================================
- Hits         5357     3348     -2009
- Misses       1035     3052     +2017

Impacted Files
Coverage Δ

etna/commands/forecast_command.py
0.00% <0.00%> (-92.00%)
:arrow_down:

etna/commands/__init__.py
0.00% <0.00%> (-100.00%)
:arrow_down:

etna/commands/backtest_command.py
0.00% <0.00%> (-96.43%)
:arrow_down:

etna/commands/__main__.py
0.00% <0.00%> (-87.50%)
:arrow_down:

etna/commands/resolvers.py
0.00% <0.00%> (-80.00%)
:arrow_down:

etna/analysis/outliers/density_outliers.py
22.44% <0.00%> (-75.52%)
:arrow_down:

etna/datasets/datasets_generation.py
27.02% <0.00%> (-72.98%)
:arrow_down:

etna/transforms/timestamp/time_flags.py
27.02% <0.00%> (-72.98%)
:arrow_down:

etna/transforms/timestamp/fourier.py
28.57% <0.00%> (-71.43%)
:arrow_down:

... and 69 more

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Specifying different config constants from different tasks

I'd like to set two dif tasks such that triggering each one compiles my project with its own config constants.  For example, two dif builds -- one with logging, the other without.   Right now it only looks like i can go in to asconfig.json and change them manually before running each task.    Is there a way to do this "automatically" ?
My apologies if this is documented somewhere!

Using the extends field, you can use one asconfig.json file as a template and change only the options that you need. Here's an example:
https://gist.github.com/joshtynjala/2ef852272dc25c73502ce408a96ec3de
In your case, you might have asconfig.json and asconfig.logging.json or something like that. VSCode will detect asconfig.logging.json and provide a separate set of tasks.

Ok this is amazing - ty Josh!  It's exactly what I needed and opens doors I didnt realize needed opening.  cheers!


Error setting up entry "Homematic-CCU2" for hahm after upgrading HA to Core 2023.5.3

I agree to the following

[X] I have read the documentation
[X] I am aware of the latest release notes
[X] The Backend (CCU/Homegear/...) is working as expected and connected devices are controllable by its own UI.
[X] I am running the latest version of the custom_component (and Home Assistant)

The problem
After installing HA core from 2023.4.6 to 2023.5.0 and now (2nd try) 2023.5.3 hahm is not starting the connection to my CCU2 with the error message "Error setting up entry Homematic-CCU2 for hahm".
What version of HomematicIP (local) has the issue?
1.36.0
What was the last working version of HomematicIP (local)?
1.36.0
What type of installation are you running?
Home Assistant OS
What type of installation are you running for your homematic backend?
CCU2
Which version of your homematic backend are you running?
2.61.7
What hardware are you running for your system?
Pi4
Which config details do you use

[X] Username and password
[ ] TLS
[ ] callback data (see)

Which interfaces do you use?

[X] Homematic IP
[X] Homematic (Bidcos-RF)
[ ] Groups (Heating-Group)
[ ] BidCos-Wired (HM-Wired)

Diagnostics information
home-assistant_hahm_2023-05-16T19-22-59.784Z.log
Anything in the logs that might be useful for us?
Error setting up entry Homematic-CCU2 for hahm
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/hahm/__init__.py", line 26, in async_setup_entry
    hass.config_entries.async_setup_platforms(config_entry, HAHM_PLATFORMS)
AttributeError: 'ConfigEntries' object has no attribute 'async_setup_platforms'

Additional information
No response

That why the issue is pinned.


cURL error while downloading

Hi, there is an error with cURL while downloading this anime (Isekai Maou to Shoukan Shoujo no Dorei Majutsu Ω)

Hey @InternetPotential29, I tried the same command, it works for me.
The error message in the screenshot looks like curl doesn't have the permission to write output on your file system. Please try to run curl -sSL 'https://www.github.com' -o github.html inside the same script directory, to see if curl can create github.html with content.

No, I can still download other anime without an error.
Here is the log file with -t option on debug.
https://pastebin.com/Z1VVAYcf
I have tried without the -t command and it works. I don't know why but on others I can do 100 threads.

Hi @InternetPotential29 , thanks for the logs. The reported issue doesn't appear to be in the script itself. I guess it may be something wrong with curl when handling Ω symbol in the directory name. But I'm not able to find the exact issue in curl project, and I don't think I can fix that either. You could try to update curl to the latest version, if it helps. Otherwise, I'd suggest using normal download mode for this special case.
Let's close this issue for now since I don't think I can do any thing to fix it. If you have the same issue on other anime title, let me know, I may take another look.