FloatingPanelIntrinsicLayout and table view

Is it possible to use FloatingPanelIntrinsicLayout with a UITableView? I would like the height of the panel to adjust to the height of the content in the tableview in the .half position, but don't understand how to setup the bottom constraint for the tableview to achieve this.

Is it mean that you would like to always fit a height of UITableView to the visible height of a panel in the .full and .half positions?

Exactly, the tableview I want to display has a static number of rows, and the height of the table view is just a couple of hundred pixels, with some minor variants. I could hardcode the height of the .half position, which is what I'm doing now, but it would be nice if the height of the .half position would adapt to the actual height of the content in the table view.

@SCENEE any progress on this?

This feature will be supported in v2.0.

@scenee Hello! Any news about this feature? Is it available in new versions of the library? If yes, is there any documentation how to achieve that? Thanks.

UITableView has no intrinsic size so FloatingPanelIntrinsicLayout can be used for it. But now you are able to use FloatingPanelAdaptiveLayoutAnchor for this use case, which is introduced on 2.1.0.  'Show Adaptive Panel' in the Samples app is an example for the new layout anchor. Thanks.


when storing job with replace check update count returned

This is to detect non-durable job suddenly disappearing when concurrently completing. On MariaDB/MySQL the fall-through code path select-update-insert can be taken due to consistent nonblocking read and multi-version concurrency control.
This PR...
Fixes issue #1085
Changes
The code change checks the update count returned when storing a job.

Checklist

[x] tested locally
[x] updated the docs (not applicable, bug fix only)
[x] added appropriate test (not applicable, storeJob method covered in tests already)
[x] signed-off on the DCO referenced in the CONTRIBUTING link below via git commit -s on my commits, and submit this code under terms of the Apache 2.0 license and assign copyright to the Quartz project owners

In submitting this contribution, I agree to the terms of contributing as referred to here:
https://github.com/quartz-scheduler/contributing/blob/main/CONTRIBUTING.md

This reopens https://github.com/quartz-scheduler/quartz/pull/1086 acknowledging the change of ownership. Best regards.

Thank you.


Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED <IP_ADDRESS>:5858).

Yes, this again.
Extension version: I have installed 0.10.2 three times but it still says it's 0.8.1  (see issue #602 )
VS Code: Version 1.21.1
AF Tools: 2.0.1-beta.38
Runtime Environment:
OS Name:     Mac OS X
OS Version:  10.13
OS Platform: Darwin
RID:         osx.10.13-x64
Base Path:   /usr/local/share/dotnet/sdk/2.1.300/
.NET Core SDKs installed:
2.1.101 [/usr/local/share/dotnet/sdk]
2.1.300-rc1-008673 [/usr/local/share/dotnet/sdk]
2.1.300 [/usr/local/share/dotnet/sdk]
Node version v8.11.0
Here is my launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to JavaScript Functions",
      "type": "node",
      "request": "attach",
      "port": 5858,
      "protocol": "inspector",
      "preLaunchTask": "runFunctionsHost"
    }
  ]
}

I have been trying to fix this for many hours. I've read the other (closed) issues about this. tried some of the hacks except for reverting to .25.
I think this may be notable. When running in debug mode, after the endpoints are displayed, this message comes up:
[9/14/18 12:56:18 PM] Worker e6213e9f-5bd6-498c-9674-d0d98aad7858 connecting on <IP_ADDRESS>:61134 []
While the project I'm working on has Cosmos DB and Twilio extensions, I've tried plain vanilla projects and getting the same problem. I opened up an earlier V2 project that I was debugging back in May and it is now reporting the same problem.
What else can I share with  you to help?

Can you also copy your tasks.json? That's the part that changed a few months ago due to breaking changes in the cli. There's more information here about how you can manually update your project if necessary: https://github.com/Microsoft/vscode-azurefunctions/blob/master/docs/debugConfig.md
The full output from the 'func host start' task might also be helpful

Here 'tis:
(also I tried adding in the options explicitly for the port as per one of the earlier issues. I see also your July suggestion to add "NODE_OPTIONS": "--inspect=5858" (bug in .30 and .31) directly to app settings so I'm going to go try that right now. Thanks!
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Functions Host",
      "identifier": "runFunctionsHost",
      "type": "shell",
      "command": "func host start",
      "isBackground": true,
      "presentation": {
        "reveal": "always"
      },
        "problemMatcher": [
        {
          "owner": "azureFunctions",
          "pattern": [
            {
              "regexp": "\\b\\B",
              "file": 1,
              "location": 2,
              "message": 3
            }
          ],
          "background": {
            "activeOnStart": true,
            "beginsPattern": "^.*Stopping host.*",
            "endsPattern": "^.*Job host started.*"
          }
        }
      ]
    }
  ]
}

FFS (and LOL)...adding that to local settings did the trick! I thought I'd tried everything and seen every one of the related issues on GitHub. Seriously...  about 5 hours of trying and I missed that one! Anyway....maybe there should be a warning like I've seen other times,  to add this to local.settings on debug or func start. Do you know where I mean? It comes right before the logo is displayed in the terminal. Or better yet, have the project creator add that to the local.settings.json it creates??

I actually tried that last night based on a May thread about .26...but now I'll go try it again and report back.

what the ... ????? now it works. So maybe one of the other changes I made in betwee affected this.
So bottom line, nobody should have to spend 5 hours struggling with this. Me neither but that's my own fault. How will that be easier in the future. I spent a lot of time in the docs, even did some getting started warlk throughs to see if something in my own app was the problem, also spent a lot of time in github. So even if it was someplace that should have been obvious, I still missed it and I'm not being lazy about it. Is there  a way to make it easier to discover? Also, FWIW, the note that did come up before the logo , I missed the firwt 15 times or so. It did not occur to me to scroll up that far.

ps. sorry I missed the whole thing about the prompt... why am ai not getting it? That is certainly a very good solution to the above...
Also I stopped the debugger. F5 again and now no debugging again. Something is awry.

consistently works with the hack in launch but not with the options in local.settings.

can you also double check my detailed list of versions of everything in case SOMETHING is bungling my system up with this? Thanks

All versions look good except an old version of VS Code. Commented on this thread: https://github.com/Microsoft/vscode-azurefunctions/issues/602

uninstalling some other extensios to see if that helps but not... weird. I am plagued! LOL

finally! I trashed .21, installed latest vscode (.27), extensions updated (I now have 0.10.2) and I got the debug prompt!!

and yet... yikes!
I'm going to stop for now and use the hack tomorrow in my session so I can move on...

PS THANK YOU FOR BEING SO AMAZINGLY RESPONSIVE!!!


Case insensitive GroupBy()

Is it possible adding IEqualityComparer to GroupBy()?

Technically this is possible, however, what problem will this solve? Can you provide an example / unit test?

var distinctedRaw = itemsToGroup                 .AsQueryable()                 .GroupBy($"new({string.Join(",", keys)})", "it")                 .Select("it.First()")                 .ToDynamicList<T>();
I use GroupBy() to group same values by dynamic keys and get unique values to remove duplicates.
But if I don't apply UpperCase(), "STRing"and "strING" for GroupBy are not the same and when I go to save data on database, the latter (obviously) crashes

If you execute this query on a database (sql), then this does work fine.
In LinqPad:
var city = x.AsQueryable().Where(t => t.Text == "NewYork");
city.Dump();

var distinctedRaw = x
  .AsQueryable().Where(t => t.Text == "NewYork")
  .GroupBy($"new({string.Join(",", keys)})", "it")
  .Select("it.FirstOrDefault()");
  distinctedRaw.Dump();

The problem is that i'm not querying db, i'm manipulating local array

I see.
It's possible to fix this, however it requires a lot of code changes in the GroupBy methods.

... and a lot of time I suppose. This issue is not urgent, at the moment I lowercasing all. It's a bad workaround, I know, but otherwise I wouldn't know how to do it

Hello @kKen94 ,
The v1.1.2 has been released.
The GroupBy now supports the IEqualityComparer overload.
Best Regards,
Jon

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


Indent using spaces, copied JSON should be identical to text displayed in UI

Description
This PR makes the following changes:

edit the json viewer to pad each level indentation using spaces instead of css "padding" property on List Item elements
remove space in front of each entry delimiter (comma). Currently this is done visually by giving it a negative margin, but we need to this space to be removed entirely so that copy + paste is consistent
remove additional spacing between summary message
manually selecting and copy+pasting the json should produce the same formatting and content as seen in the UI
set fa expanding and closing icons in the template file instead of passing in an html string

Note: Inline arrays is no longer supported... the closing bracket will always display on the next line:
"emptyArray": [
]

instead of
"emptyArray: []

Changes
Copied text before:
"stringArrayKey": [
"one" ,
"two" ,
"three" ,
"stringValue1" ,
"stringValue2" ,
"stringValue3"] ,

Copied text after:
  "stringArrayKey": [
    "one",
    "two",
    "three",
    "stringValue1",
    "stringValue2",
    "stringValue3"
  ],

Summary message before:

Summary message after:

@bantic - I'm taking over wendys prs to get this query builder across the finish line. Can I get a quick look at this?

@bantic - I'm taking over wendys prs to get this query builder across the finish line. Can I get a quick look at this?

@coltonevansid I'll take a look today.

@coltonevansid I'll take a look today.

superseded by #5

superseded by #5


Source derivation support

Based on the source derivation extension at https://github.com/dthaler/gedcom-citations/pull/1

GEDCOM Steering Commitee Discussion 11/30/2023:
Suggest adding a Note in both places to cross reference the other example, or a technical FAQ in next minor.


fix: crash when trying to resolve methods from abstract class with interface and with method referencing self

I have encountered the issue when working with brick/math, namely BigNumber::of().

Thanks @simPod!


AttributeError: 'NoneType' object has no attribute 'clone'

AttributeError: 'NoneType' object has no attribute 'clone'
When running the code provided in the readme.md file, I am getting the above given error.

Hi, can you confirm the transformers version?


Question or feature request: Why we can't use service name instead of GUID?

The action requests "The entity GUID to apply the deployment marker" for each deploy event. It means  I have to collect a list of GUIDs for all services across all environments and use them in my workflow.
But we already have a 'service name' in both NewRelic and GH workflow. So why don't use it instead of GUID for calling this action?

@vitalykarasik have got any anwer?
have the same question, +1

@vitalykarasik have you got any answer? have the same question, +1

@oleksandr-kinship unfortunately, no.
I'm just adding GUID for each service into its CI/CD workflow - hardcoded :-(

@vitalykarasik have you got any answer? have the same question, +1

@oleksandr-kinship unfortunately, no. I'm just adding GUID for each service into its CI/CD workflow - hardcoded :-(

That upset to have to use antipatterns.
Thanks. for quick answer!

Hello @vitalykarasik,
bit think about how it could be integrated without minimal hardcode for big amount of applications, so I think I have found the most straightforward solution - write reusable action that will call NR api to get guid first, then use this output in deployment marker arguments.
As base for get_uid can be used this action, just use another cli call
newrelic apm application search \
            --name ${NEW_RELIC_APM_NAME}

then this possible to grep/jq guid from response.


Add cmake-c-launcher and cmake-cxx-launcher flag to build-script

cherry-pick to swift-5.1-branch

@jfbastien If this is a pure cherry-pick, I am cool with this if the tests pass.

(i.e. LGTM... but plz run the tests)

@swift-ci test


Saving issue on IE11

To be confirmed, but a user seems to have blank data-url saved for all the sprites that were saved using IE11. The /framesheet and /preview links are correctly generated so IE11 is really just failing to generate the base64 for a layer.
Steps to reproduce the bug

use IE11
open piskel
save a sprite to a .piskel file
try to reopen the sprite
-> Sprite is blank

(report was about sprites saved in a piskelapp gallery, but I'd be surprised if it had anything to do with it)
Environment details

operating system: Windows
browser: IE11

Can't reproduce with a few example sprites on IE11 so far ...

Closing as I can't reproduce and didn't get enough feedback to understand why this would fail.


Can't Start the Extension due to ENOENT

Describe the bug
When I open VSCode, it says

There was an error during Vitest startup. Check the output for more details.

Please let me know if there are better ways to debug or collect more details.
Reproduction
This seems to be related to the environment, specifically the oh-my-zsh framework.
This is on:
MacOS: 15.1.1
VSCode: 1.95.3
Vitest extension: 1.8.1
Vitest: 2.1.5
Output
[INFO 2:33:12 PM] [API] Running Vitest v2.1.5 (xxx/vitest.config.ts) with Node.js@: node () {
	for func in _omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack
	do
		if (( $+functions[$func] ))
		then
			unfunction $func
		fi
	done
	[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
	_omz_nvm_setup_completion
	_omz_nvm_setup_autoload
	if [[ "$0" != _omz_nvm_load ]]
	then
		"$0" "$@"
	fi
}
[Error 2:33:12 PM] [API] [Error Error] spawn node () {
	for func in _omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack
	do
		if (( $+functions[$func] ))
		then
			unfunction $func
		fi
	done
	[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
	_omz_nvm_setup_completion
	_omz_nvm_setup_autoload
	if [[ "$0" != _omz_nvm_load ]]
	then
		"$0" "$@"
	fi
} ENOENT
Error: spawn node () {
	for func in _omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack
	do
		if (( $+functions[$func] ))
		then
			unfunction $func
		fi
	done
	[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
	_omz_nvm_setup_completion
	_omz_nvm_setup_autoload
	if [[ "$0" != _omz_nvm_load ]]
	then
		"$0" "$@"
	fi
} ENOENT
	at ChildProcess._handle.onexit (node:internal/child_process:286:19)
	at onErrorNT (node:internal/child_process:484:16)
	at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
[Error 2:33:12 PM] [Error Error] spawn node () {
	for func in _omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack
	do
		if (( $+functions[$func] ))
		then
			unfunction $func
		fi
	done
	[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
	_omz_nvm_setup_completion
	_omz_nvm_setup_autoload
	if [[ "$0" != _omz_nvm_load ]]
	then
		"$0" "$@"
	fi
} ENOENT
Error: spawn node () {
	for func in _omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack
	do
		if (( $+functions[$func] ))
		then
			unfunction $func
		fi
	done
	[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
	_omz_nvm_setup_completion
	_omz_nvm_setup_autoload
	if [[ "$0" != _omz_nvm_load ]]
	then
		"$0" "$@"
	fi
} ENOENT
	at ChildProcess._handle.onexit (node:internal/child_process:286:19)
	at onErrorNT (node:internal/child_process:484:16)
	at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

Version
1.8.1
Validations

[X] Check that you are using the latest version of the extension
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[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.

Still not sure about the root cause, but was able to get it work by setting vitest.shellType to terminal according to https://github.com/vitest-dev/vscode/issues/510#issuecomment-2438035393

This is likely due to the lazy loading mode in the Oh My Zsh nvm plugin, please see https://github.com/microsoft/playwright/issues/33996#issuecomment-2542290911


If I don't have own Anthropic API key waitlist yet, does it possible to use cookie for now?

i won't provide my apikey to public right now. cookies are not available.


Simplify lakeformation shares - single shared_db and single resource link table

Feature or Bugfix

Feature

Detail
Implements design specified in #746. Multiple share requests share a single shared Glue database instead of a shared database per share request.  Same for resource link tables, multiple shares in the same target account get permissions to the same resource link table.
In addition, this PR includes:

Unified LakeFormation processor for same account and cross account shares (remove duplicated code)
Code clean-up of Lake Formation manager and client: remove duplicates, added more error handling
Ensure "no-failures" if a resource already exists or is already deleted or if a permission is already granted or revoked
Redesigned tests and increased coverage

Upgrade LakeFormation version
LakeFormation v3 (docs) simplifies cross-account sharing requests. We want to see if there are advantages of implementing the capability of LakeFormation to define the external IAM role directly, instead of using first an AWS account and then the role. In addition, v4 introduces LF hybrid mode. We are not using it at the moment, but it can be a great addition in future features. Because we already distinguish between "old" and "new" shares, it is relatively easy to upgrade to a new LF version without affecting "old" shares.
Does it make sense to upgrade the sharing mechanism?

Is it possible technically for all principals? --> No, which is a blocker
Could not grant principal arn:aws:quicksight:us-east-1:11111111111:group/default/dataall permissions ['DESCRIBE', 'SELECT'] to {'Table': {'DatabaseName': 'dataall_imported_c3_tvnews81', 'Name': 'children_books_raw', 'CatalogId': '2222222222222'}}  due to: An error occurred (InvalidInputException) when calling the GrantPermissions operation: Cross account requests are only allowed for AWS Accounts, Organizations, IAM Principals and All IAMPrincipals

What actions are simplified? In this commit  we can see how the final implementation would look like.

How does the migration look like?

Upgrade LF version: It is possible to change the LF cross account settings programmatically using put_data_lake_settings API. We already use this API in a custom resource of the environment stack. We could introduce the LF version as part of that call and make sure that it is executed on update (not only on create).
Modify code in sharing task: for old_shares use the AWS account and for new shares use the IAM roles as principals of the grant. for old_shares execute additional grant for principals in target, for new shares skip. See commit .
Backwards compatibility for shares done with V2:

At the moment the code is meant to work for versions >= v2. v4 is very recent and most AWS accounts use v3
Grant: If a RAM request is v2 and the LF version is upgraded to v3, new tables added to the RAM invitation can use v3 underlying code (I tested one table shared with old v2 procedure and added one table to the request with new code changes and it succeeds. In source the principals are the target IAM roles not the target account)
Revoke: not tested

Conclusion

We cannot implement LF v3 direct sharing with principals because it does not support Quicksight groups.
I think that setting the LF version in the environment stack is a good idea regardless of it being explicitly used It gives us control to set the latest version in the accounts we use. This is a feature that should be part of a separate PR.
v2 RAM invitations still work with v3 direct-IAM role code. Therefore we could keep using v2 shares without the need to inspect shares and upgrade them. This means that the upgrade is pretty seamless, and we can take it at a later time when the Quicksight blocker is resolved.

Issues resolved:

[X] Issue: deletion of new "shared" database does not happen when other old shares are still present in environment account.
[X] ~[Pre-existing issue]:  In cross-account shares revoke ALL does not revoke permissions to QS group (by-design)~
[X]  [Pre-existing issue]: in same account requesters have access to original table. It is needed! If we remove access to the original table the resource link access to data does not work.
[X] ~Issue: when revoking, permissions to the shared db are not revoked for principal~
[X] ~Issue: shared db is not deleted when all shares are revoked~
[X] ~Issue: duplication of LF permissions. Pivot role and QS group were granted permissions on the original db and on the shared db with every new share~
[ ]  [Pre-existing issue]: orphan LF resources on failed shares. If a share fails it can be deleted from data.all UI but there are resources that are created in LF that require manual clean-up (ugly operation assuming pivot role)
[X]  ~Changes in UI: data consumption details~

Next steps and remarks

Because there are shared resources between shares, it is possible that parallel shares on the same tables have conflicts: e.g. 2 shares trying to create a resource link simultaneously. I have tried testing with shares approved in a matter of seconds and did not run into issues (at the end a look-up is way faster than updating a policy). But we should keep an eye on this.
Upgrade Lake Formation version. Not possible at this moment, because it would not work for Quicksight groups. To be re-evaluated in the future.
I think the orphan LF resources on failed shares can be done in a separate PR to limit the scope of this PR.
I tried to revoke the requester access to the original table in same account sharing, but it is not possible. For the requester to be able to access the underlying data of the resource link, it needs to have access to the table.
The issue "deletion of new "shared" database does not happen when other old shares are still present in environment account." has not a big impact, but I implemented a solution nevertheless.

Relates

#746

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.

Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)?

Is the input sanitized?
What precautions are you taking before deserializing the data you consume?
Is injection prevented by parametrizing queries?
Have you ensured no eval or similar functions are used?

Does this PR introduce any functionality or component that requires authorization?

How have you ensured it respects the existing AuthN/AuthZ mechanisms?
Are you logging failed auth attempts?

Are you using or adding any cryptographic features?

Do you use a standard proven implementations?
Are the used keys controlled by the customer? Where are they stored?

Are you introducing any new policies/roles/users?

Have you used the least-privilege principle? How?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Testing in AWS

[x] CICD pipeline completes successfully

Same Account

[ ] New sharing

process share1 with 1 table - table queried using Athena
process share2 for 2 tables - tables queried using Athena, only one additional tables, no additional databases created. And no duplication of permissions (e.g. permissions to pivot role in shared-db)
process share3 for the same 2 tables (with consumption role that is a service role)
Revoke share3 items - removes ALL permissions to principal 3 but tables and permissions for shares 1 and 2 still work. Permissions to pivot role to shared and original db remain
Revoke share2 items - removes permissions to principal 2, deletes one of the resource link tables, permissions and share 1 still work. Permissions to pivot role to shared and original db remain
Revoke share1 items- cleans-up; deletes permissions from source and deletes shared db and resource link table

[ ] Backwards compatibility. Create 2 shares with old version of the code. Share1 with one table, share2 with 2 tables. Upgrade the code.

Add table to share1 - new resource link to the "shared-uri1" database. No "shared" database created. Both tables queriable in Athena.
Create brand new share (share3) on the same dataset - creates "shared" database and resource link for table. share 1 and share 2 unaffected. No new RAMs
Revoke one table from share2 - deletes resource link from "shared-uri2" database. share 2 for the remaining table still has permissions and can be queried in Athena. share1 and share3 unaffected.
Revoke all items from share2 - deletes "shared-uri2" database. share1 and share3 unaffected
Revoke all items from share3 - deletes "shared" database. share1 unaffected
Re-create share2 - creates "shared" database and resource links in this database

Cross Account

[ ] New sharing

process share1 with 1 table - table queried using Athena. RAM invitation with database and table in the share
process share2 for 2 tables - tables queried using Athena, only one additional tables, no additional databases created. And no duplication of permissions (e.g. permissions to pivot role in shared-db). Single RAM invitation for both shares containing 2 tables.
Revoke share2 items - removes permissions to principal 2, deletes one of the resource link tables, permissions and share 1 still work. Permissions to pivot role to shared and original db remain. In RAM invitation the non-shared table is "Disassociated". The rest of the items still shared.
Revoke share1 items- cleans-up; deletes permissions from source and deletes shared db and resource link table

[ ] Backwards compatibility. Create 2 shares with old version of the code. Share1 with one table, share2 with 2 tables. Upgrade the code.

Add table to share1 - new resource link to the "shared-uri1" database. No "shared" database created. Both tables queriable in Athena. UI shows correct database name.
Create brand new share (share3) on the same dataset - creates "shared" database and resource link for table. share 1 and share 2 unaffected. No new RAMs
Revoke one table from share2 - deletes resource link from "shared-uri2" database. share 2 for the remaining table still has permissions and can be queried in Athena. share1 and share3 unaffected.
Revoke all items from share2 - deletes "shared-uri2" database. share1 and share3 unaffected
Revoke all items from share3 - deletes "shared" database. share1 unaffected
Revoke one item from share1 - deletes permissions for that item, also QS permissions

Overall - this PR looks great! Found 1 possible error on handling QS Permissions but I think there is a straight forward fix, outcomes of my testing are below:
Cross Account
Backwards compatibility

[X] Create Share share1 with one table shared. Upgrade the code
[X] UI shows correct shared_db name
[X] Add table to share1 - new resource link to the "shared-uri1" database. No "shared" database created. Both tables queriable in Athena
[X] Create brand new share (share2) on the same dataset - creates "shared" database and resource link for table. share 1 unaffected
[X] Revoke one table from share1 - deletes resource link from "shared-uri1" database. share1 for the remaining table still has permissions and can be queried in Athena. share2 unaffected
[X] Revoke all items from share2 - deletes "shared" database. share1 unaffected
[X] Re-create share2 and Revoke all items from share1 - deletes "shared-uri1" database. share1 unaffected

New Sharing

[X] process share1 with 1 tables - table queried using Athena. RAM invitation with database and table in the share
[X] process share2 for 2 tables - tables queried using Athena, only one additional tables, no additional databases created. And no duplication of permissions (e.g. permissions to pivot role in shared-db). Single RAM invitation for both shares containing 2 tables
[X] Create QS Dashboard from table shared in share1
[ ] Revoke share2 items - removes permissions to principal 2, deletes one of the resource link tables, permissions and share 1 still work. Permissions to pivot role & QS service role to shared and original db and remain. In RAM invitation the non-shared table is "Disassociated". The rest of the items still shared and QS Dashboard still accessible
—> ERROR: QS Permissions are removed at this step and QS Dashboard gets Insufficient LF Permission Error (no longer accessible)
[X] Revoke share1 items- cleans-up; deletes permissions from source and deletes shared db and resource link table

Reviewed changes and looks good! Testing once more now for table share(s) approve/reject


WIP: [Release] Verify release-10.0.1-rc0

PR to verify Release Candidate

@github-actions crossbow submit  --group verify-rc-source --param release=10.0.1 --param rc=0

Revision: a6eabc2b890030578131aecc5e85900597d694a4
Submitted crossbow builds: ursacomputing/crossbow @ release-10.0.1-rc0-0

Task
Status

almalinux-8-amd64

almalinux-8-arm64

almalinux-9-amd64

almalinux-9-arm64

amazon-linux-2-amd64

amazon-linux-2-arm64

centos-7-amd64

centos-8-stream-amd64

centos-8-stream-arm64

centos-9-stream-amd64

centos-9-stream-arm64

conan-maximum

conan-minimum

debian-bookworm-amd64

debian-bookworm-arm64

debian-bullseye-amd64

debian-bullseye-arm64

java-jars

nuget

python-sdist

r-binary-packages

test-ubuntu-default-docs

ubuntu-bionic-amd64

ubuntu-bionic-arm64

ubuntu-focal-amd64

ubuntu-focal-arm64

ubuntu-jammy-amd64

ubuntu-jammy-arm64

wheel-macos-big-sur-cp310-arm64

wheel-macos-big-sur-cp311-arm64

wheel-macos-big-sur-cp38-arm64

wheel-macos-big-sur-cp39-arm64

wheel-macos-mojave-cp310-amd64

wheel-macos-mojave-cp311-amd64

wheel-macos-mojave-cp37-amd64

wheel-macos-mojave-cp38-amd64

wheel-macos-mojave-cp39-amd64

wheel-manylinux2014-cp310-amd64

wheel-manylinux2014-cp310-arm64

wheel-manylinux2014-cp311-amd64

wheel-manylinux2014-cp311-arm64

wheel-manylinux2014-cp37-amd64

wheel-manylinux2014-cp37-arm64

wheel-manylinux2014-cp38-amd64

wheel-manylinux2014-cp38-arm64

wheel-manylinux2014-cp39-amd64

wheel-manylinux2014-cp39-arm64

wheel-windows-cp310-amd64

wheel-windows-cp311-amd64

wheel-windows-cp37-amd64

wheel-windows-cp38-amd64

wheel-windows-cp39-amd64

@nealrichardson @paleolimbot @thisisnic r-binary-packages failed. Could you confirm this?
Attaching package: ‘arrow’

The following object is masked from ‘package:utils’:

    timestamp

Error in parquet___arrow___ArrowReaderProperties__Make(isTRUE(use_threads)) :
  Cannot call parquet___arrow___ArrowReaderProperties__Make(). See https://arrow.apache.org/docs/r/articles/install.html for help installing Arrow C++ libraries.
Calls: read_parquet ... <Anonymous> -> parquet___arrow___ArrowReaderProperties__Make
Execution halted

Note that the same error is happen on master too: https://github.com/ursacomputing/crossbow/actions/runs/3468776645/jobs/5795178913

Weird, that error is triggered when the C++ library hasn't been built with enough functionality to support the R package, so I'd expect it to be something odd happening with the CI rather than a code change. I've re-triggered the job to make sure it's not some transient issue.

Hmm, failed again almost immediately: https://github.com/ursacomputing/crossbow/actions/runs/3475288883/jobs/5817793906
I'm not sure what's going on there.

@thisisnic seems to be an issue with the rocker image overriding the repo settings and forcefull installing the packages via apt and thus installing r-cran-arrow instead of the local package: https://github.com/ursacomputing/crossbow/actions/runs/3475288883/jobs/5817793906#step:13:321
We might need/want to replace that image to stop that. Should not matter for this release though :+1:

We might need/want to replace that image to stop that. Should not matter for this release though +1

If the test is failed, R binaries aren't uploaded: https://github.com/ursacomputing/crossbow/actions/runs/3475288883/jobs/5809989647
Is it OK for R? If it's OK, I'll continue with the failure.

seems to be an issue with the rocker image overriding the repo settings and forcefull installing the packages via apt and thus installing r-cran-arrow instead of the local package: ursacomputing/crossbow/actions/runs/3475288883/jobs/5817793906#step:13:321

This seems to be due to rocker/r-buntu:22.04 configuring bspm.
bspm replaces the behavior of the install.packages function and sets apt to install the R packages.
I recommend that you simply stop using this image.
@eddelbuettel Did you push the image to DockerHub without updating the Dockerfile on GitHub?
It seems that bspm is indeed installed on rocker/r-ubuntu@sha256:68f72a15f0e972556fb3dfd80b6394c34315722cb9b3e7a3a917a869152f7c40 even though the Dockerfile shows that bspm is not installed.

@eitsupi If so then only by accident.  But I did 'batch' update a few (layered) containers following the R 4.2.2 release and may inadvertendly (by doing this manually) crossed 'tags' and Dockerfiles.  Building and pushing a new image '22.04' (also as 'jammy') now.   And yes, you are correct: bspm should not be in this base layer but one above.

@eitsupi Thanks for the information!
Do you know Docker images that can be replaced with https://github.com/apache/arrow/blob/master/dev/tasks/r/github.packages.yml#L247-L250 ?

Do you know Docker images that can be replaced with master/dev/tasks/r/github.packages.yml#L247-L250 ?

I think rocker/r-ubuntu:22.04 can be replaced by rstudio/r-base:jammy.
As @eddelbuettel says, this change in behavior seems to have been an accident, so I think it can be left as is.
(However, I think the build system needs to be reviewed, as it is not good for this type of accident to happen.)
As for rocker/r-ver, it also should be possible to replace it with the image provided by rstudio (Posit).
https://github.com/rstudio/r-docker
However, the update mechanism of rocker/r-ver that I maintain has been fully automated on GitHub for over a year now, so I don't think an accident like this will happen.
https://github.com/rocker-org/rocker-versioned2

@kou "It's complicated."  @eitsupi and I are both behind Rocker, and these choices present two different and not exactly interchangeable options with different settings.  No in two characters: "no".  In more words: "it depends, they both have their (different) use cases".  I do all my CI with r-ubuntu / r-bspm / r2u as I want current toolchains and current CRAN easily.  YMMV.

in behavior seems to have been an accident,

And if so, has been fixed.  Did you try the container I uploaded ~20 mins ago?

And if so, has been fixed. Did you try the container I uploaded ~20 mins ago?

I'll re-run the job

@eddelbuettel

And if so, has been fixed. Did you try the container I uploaded ~20 mins ago?

I pulled from DockerHub, but the digest does not seem to have changed.

It seems that bspm is indeed installed on rocker/r-ubuntu@sha256:68f72a15f0e972556fb3dfd80b6394c34315722cb9b3e7a3a917a869152f7c40 even though the Dockerfile shows that bspm is not installed.

Indeed: https://github.com/ursacomputing/crossbow/actions/runs/3468776645/jobs/5828306179#step:13:321

My bad, in the rush I did
 2157  docker build --no-cache -t rocker/r-ubuntu:jammy .
 2158  #docker build --no-cache -t rocker/r-ubuntu:jammy .
 2159  docker push rocker/r-ubuntu:jammy
 2160  docker push rocker/r-ubuntu:22.04

which replaced one but not both of these.  I skipped the build step for 22,04
Will ship and update 22.04 tag in a minute or two -- now building.

Rebuilt and repushed.  I used --no-cache on both hence different sha1 (which confused me for a second so I did a rebuild or two).  They should both work are identical, based on the same Dockerfile.
edd@rob:~/git/rocker-ubuntu-lts/jammy(master)$ docker images |head -3
REPOSITORY                           TAG             IMAGE ID       CREATED          SIZE
rocker/r-ubuntu                      jammy           7214e2c7ed54   7 minutes ago    743MB
rocker/r-ubuntu                      22.04           091427e0bcf7   11 minutes ago   743MB
edd@rob:~/git/rocker-ubuntu-lts/jammy(master)$

@eitsupi Sorry! I misunderstood.
@eddelbuettel Thanks! It worked: https://github.com/ursacomputing/crossbow/actions/runs/3468776645/jobs/5828688028

@github-actions crossbow submit  --group verify-rc-binaries --group verify-rc-wheels --param release=10.0.1 --param rc=0


Updates hooks-state.md

fix asynchronous state update based on doc

@SinaKhorami in this case, this does not make much sense, since props is not used, right?

@SinaKhorami in this case, this does not make much sense, since props is not used, right?

Aw yes you are right. i didn't realize it in that time.


Promote https

PR Summary

http is bad so I made it better
PR Checklist

[X] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[X] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@RDIL Thanks for your contribution!


Is there any way to limit the input method as English US Keyboard in desktop app?

I am developing a app using WinUI3, and I would met some issue when I use other input method in some webview2 page, which lead to crash. Is there any way to limit the input method as English US Keyboard and could not switch in the run time of this app? Thank you for your help.

I don't think so, I think the keyboard is abstracted away from the app which doens't have knowledge of it.  @MikeHillberg or @Austin-Lamb is that right?

I am developing a app using WinUI3, and I would met some issue when I use other input method in some webview2 page, which lead to crash. Is there any way to limit the input method as English US Keyboard and could not switch in the run time of this app? Thank you for your help.

Got to wonder why you would want to restrict the keyboard input, and what would happen if the user does not have English US as one of their keyboard layout choices.  (For example I use en-gb)

Hi @mdtauk  and @StephenLPeters  . Thank you for your answer.
I am sorry that I did not expressed clearly. This issue is that sometimes I input some content from keyboard and I sue some other input method， like this

And then it will lead to crash for some unknown reason.
I would let user use their native input method such as English US Keyboard or en-gb...
Another way is let the app just receive the english letter or number from keyboard, I don't know if I could capture user input and directly switch to the letter?

Is it the WebView2 process which crashes? If so, and issue should be logged in the WebView2Feedback repo for that. Do you have specific repro steps to hit the crash?


Adds damaged steel tiles

About the PR
Adds damaged steel tiles from SS13. This does not include actual logic for making them damaged via explosions, only the tiles themselves.
Note that this does NOT add the sprites for the destroyed plating; they need to be resprited to match with our plating tiles.
Why / Balance
Despite some of these being visually crusty, these make a huge world of difference for decoration. I knew it would probably be a long while before I bothered making these for plating so I just decided to add these anyways.
Media

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

Changelog
No CL so that people aren't confused and think that explosions will create these; someone should probably make one once
that functionality is added.

barratry maints filled with craters :trollface:


Adding a cache layer

Feature request
Does it make sense for TEI to add a cache layer for embeddings?
Not sure if TEI supports this already.
If not, I'd be curious if it makes sense to add one.
This raises some other questions: where should that live, how big should it be, etc
Motivation
Even though some models have large vocabs, I think a cache makes sense where some strings repeat often, like in code models.
Your contribution
No rust experience, but I can help with anything else

I'm not sure I understand. What do you want to cache exactly?
Since all models currently supported use bi-directional attention (non-causal if non preffer), it is not possible to cache activations.

Not sure, if this is a related question. Is there support for caching the calculated embeddings for a given query string ?
Say If we generate embeddings for a user query, can we cache it so that the embeddings need not be calculated again and can be returned from the cache if the same user query is used as a input to TEI ?

TEI does not include a cache but it would be super easy to add redic or memcache in your stack to do something like this.


Optimize lookahead point search in pure pursuit

Summary
It optimizes the search for the lookahead point by doing the following:

makes the starting index the last lookahead index + 1, because everything before the lookahead index can be discarded.
searches the path in reverse, as the first hit would be guaranteed to be the farthest lookahead point that way.

Motivation
It provides a small optimization to the pure pursuit algorithm.

Fix style checks and I'll merge it after testing. Excellent optimization though, good stuff

All the checks seem to pass now (whitespace smh)


Add support for krakjoe/parallel

Right now there is no known variants for krakjoe/parallel, is there a way to add it?

try this?
installing-extension-from-github

Not sure if a variant can be added for a PECL extension. phpbrew ext install parallel should work.

Actually works fine that way, there is only two issues:

It currently needs the shared flag
It needs the ZTS version (might be detected when compiling the extension I guess)

It currently needs the shared flag.

That's why I'd recommend installing it via phpbrew ext install. Otherwise, you'd still have to enable it after installation.

It needs the ZTS version (might be detected when compiling the extension I guess)

Yeah. If it fails, this would be the last message in the build log which is easy to spot.
I believe unless it requires some tricky discovery and/or complex configuration (like gd for instance), I'd rather have this extension to be documented in Wiki than supported as a variant. There's no point in adding every single PECL extension to variants. Later, they will require extra maintenance and create extra friction (see #950).

It currently needs the shared flag.
That's why I'd recommend installing it via phpbrew ext install

I don't understand that part, how do you tell to install it with the shared flag via ext isntall?

Later, they will require extra maintenance and create extra friction (see #950).

It might be worth trying to tackle this issue properly, as it's a problem that can affect virtually any extension...

I don't understand that part, how do you tell to install it with the shared flag via ext isntall?

If it's the same shared flag as in gd,
https://github.com/phpbrew/phpbrew/blob/34ebc30e6962b523fba627b66109fe5b552dd2f1/src/PhpBrew/VariantBuilder.php#L426
it doesn't need to be passed to ext install. It only needs to be used with compiling an extension together with the binary in order to tell the compiler to produce a separate binary (a shared extension). ext install always produces a shared binary by definition.
I don't see any mention of this flag in the parallel's documentation.
As for other arbitrary flags, they can be passed to the installer like this: phpbrew ext install parallel -- --enable-parallel-coverage --enable-parallel-dev.

It might be worth trying to tackle this issue properly, as it's a problem that can affect virtually any extension...

That's why I don't think that we should be adding all extensions to variants. Only the ones which are hard to install manually.

Ah I see. Is it mentioned anywhere in the doc how can I have missed that?

That's why I don't think that we should be adding all extensions to variants. Only the ones which are hard to install manually.

No I rather mean that variants should depend of the PHP version. Otherwise the variant may be valid for PHP 5.5 but not anymore for PHP 7.4...

Is it mentioned anywhere in the doc how can I have missed that?

Yes. See install extensions with customized options.


What's new in .NET 8 Preview 1 [WIP]

What's new in .NET 8 Preview 1
This issue is for teams to highlight work for the community that will release .NET 8 Preview 1
To add content, use a new conversation entry. The entry should include the team name and feature title as the first line shown in the template below.
Required
## Team Name: Feature title

[link to the tracking issue or epic item for the work]

Tell the story of the feature and anything the community should pay particular attention
to be successful in using the feature.

Optional
Below are three additional items to consider. These will help the .NET 8 blog team and the community throughout the release.

[ ] Link to documentation.

Where can we send people to learn more about the feature?

[ ] Link to where you'd like people to provide feedback for this feature.

Where can people best comment on the direction of this feature?

[ ] Whether you would like assistance from the .NET 8 writers to craft a story for this feature.

Please @JonDouglas or @JeremyLikness in your comment if so.

Preview 1: https://github.com/dotnet/core/issues/8133
Preview 2: https://github.com/dotnet/core/issues/8134
Preview 3: https://github.com/dotnet/core/issues/8135
Preview 4: https://github.com/dotnet/core/issues
Preview 5: https://github.com/dotnet/core/issues
Preview 6: https://github.com/dotnet/core/issues
Preview 7: https://github.com/dotnet/core/issues
RC 1: https://github.com/dotnet/core/issues
RC 2: https://github.com/dotnet/core/issues

NativeAOT support for macOS x64 and arm64. Thank Filip Navara for contributing it.

NativeAOT binary size improvements, in particular on Linux. Size of native AOT compiled HelloWorld on Linux x64 improved from xxx MB in .NET 7 to yyy MB in .NET 8 Preview 1 (fill in actual numbers based on where we land after the cutoff). cc @MichalStrehovsky

BCL: Utility methods for working with randomness
https://github.com/dotnet/runtime/issues/73864
Both System.Random and System.Security.Cryptography.RandomNumberGenerator have gained utility methods for randomly choosing items from the input set ("with replacement"), called GetItems, and for randomizing the order of a span, called Shuffle.
Shuffle is useful in reducing training bias in Machine Learning (so the first thing isn't always training, and the last thing always test):
YourType[] trainingData = LoadTrainingData();
Random.Shared.Shuffle(trainingData);

IDataView sourceData = mlContext.Data.LoadFromEnumerable(trainingData);

DataOperationsCatalog.TrainTestData split = mlContext.Data.TrainTestSplit(sourceData);
model = chain.Fit(split.TrainSet);

IDataView predictions = model.Transform(split.TestSet);
...

Shall we play a game? How about Simon?
private static ReadOnlySpan<Button> s_allButtons = new[]
{
    Button.Red,
    Button.Green,
    Button.Blue,
    Button.Yellow,
};

...

Button[] thisRound = Random.Shared.GetItems(s_allButtons, 31);
// rest of game goes here ...

CLR AppModel team: NativeAOT size improvements
https://github.com/dotnet/runtime/issues/79003
Option to publish as Native AOT was first introduced in .NET 7. In .NET 8, we're refining some of the fundamentals such as size. Publishing app with Native AOT creates a fully self-contained version of you app that doesn't need a runtime - everything is included in a single file. We worked on making this single file smaller. Linux builds are now up to 50% smaller.
Here's the sizes of a Hello World app with Native AOT that includes the entire .NET runtime:

.NET 7
.NET 8 Preview 1

Linux x64 (with -p:StripSymbols=true)
3.76 MB
1.84 MB

Windows x64
2.85 MB
1.77 MB

On Linux, we've also removed the dependency on libstdc++: simple apps will be able to run on from scratch Alpine Linux containers with no additional dependencies. We'd like to thank Adeel Mujahid (am11 on GitHub) for contributing it in https://github.com/dotnet/runtime/pull/76705.

we've also removed the dependency on libstdc++: simple apps will be able to run on from scratch Alpine Linux containers with no additional dependencies.

The removal of libstdc++ dependency is unrelated to experiments with "from scratch" Linux containers. I would avoid mentioning "from scratch" containers here. If we want to talk about "from scratch" Linux containers in preview blog posts, we need do put in place testing and documentation first.

System.Text.Json Improvements
We're continuing to improve System.Text.Json, particularly with respect to performance and reliability enhancements of the source generator when used in conjunction with ASP.NET core in NativeAOT applications. Here's a list of new features that were shipped in Preview 1:
Missing member handling https://github.com/dotnet/runtime/pull/79945
It is now possible to configure object deserialization behavior, whenever the underlying JSON payload includes properties that cannot be mapped to members of the deserialized POCO type. This can controlled by setting a JsonUnmappedMemberHandling value, either as an annotation on the POCO type itself, globally on JsonSerializerOptions or programmatically by customizing the JsonTypeInfo contract for the relevant types:
JsonSerializer.Deserialize<MyPoco>("""{"Id" : 42, "AnotherId" : -1 }""");
// JsonException : The JSON property 'AnotherId' could not be mapped to any .NET member contained in type 'MyPoco'.

[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)]
public class MyPoco
{
     public int Id { get; set; }
}

Snake Case and Kebab Case https://github.com/dotnet/runtime/pull/69613
The library now ships with naming policies for snake_case and kebab-case property name conversions. The can be used similarly to the existing camelCase naming policy:
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower };
JsonSerializer.Serialize(new { PropertyName = "value" }, options); // { "property_name" : "value" }

The following naming policies are now available:
namespace System.Text.Json;

public class JsonNamingPolicy
{
    public static JsonNamingPolicy CamelCase { get; }
    public static JsonNamingPolicy KebabCaseLower { get; }
    public static JsonNamingPolicy KebabCaseUpper { get; }
    public static JsonNamingPolicy SnakeCaseLower { get; }
    public static JsonNamingPolicy SnakeCaseUpper { get; }
}

Credit to @YohDeadfall for contributing the implementation.
Add JsonSerializer.MakeReadOnly() and IsReadOnly APIs https://github.com/dotnet/runtime/pull/74431
The JsonSerializerOptions class has always been using freezable semantics, so far however freezing could only be done imlpicitly by passing the instance to one of the JsonSerializer methods. The addition of the new APIs makes it possible for users to explicitly control when their JsonSerializerOptions instance should be frozen:
public class MySerializer
{
    private JsonSerializerOptions Options { get; }

    public MySerializer()
    {
          Options = new JsonSerializerOptions(JsonSerializerDefaults.Web) { Converters = { new MyCustomConverter() } };
          Options.MakeReadOnly(); // Make read-only before exposing the property.
    }
}

Mono: .NET Hot Reload supports adding instance fields, properties and events
https://github.com/dotnet/runtime/issues/63643
.NET on mobile and WebAssembly now supports adding instance fields, properties and events to existing classes when using Hot Reload.  This also enables other C# and Razor language features that use instance fields under the hood, such as certain types of C# lambdas and some uses of Razor's @bind directive.

WebAssembly:  experimental "Webcil" a new container format for .NET assemblies
https://github.com/dotnet/runtime/issues/80807
In some environments, firewalls and anti-virus tools prevent .NET WebAssembly applications from functioning correctly because .NET .dll files are prevented from being downloaded onto users' machines, or they're quarantined by the AV software when discovered in a browser's cache directory.
As a potential workaround, the wasm-experimental workload now supports a new .webcil file format that can be used to serve .NET assemblies.
Quick start guide:

Install the wasm-experimental workload: dotnet install wasm-experimental
Create a new app: dotnet new wasmbrowser
Add the WasmEnableWebcil property to the .csproj file:   <PropertyGroup>
      <WasmEnableWebcil>true</WasmEnableWebcil>
   </PropertyGroup>

Run the app and verify in the browsers DevTools that .webcil files are being downloaded, not .dll.

Note:  Webcil is not supported in Blazor WebAssembly apps in this preview. It will be enabled in a later preview
If you find that your AV or firewall still flags .webcil files as malicious, please file an issue

Mono: Debugging  .NET WebAssembly App supports loading symbols from symbol server as it's configured on VS settings
https://github.com/dotnet/runtime/pull/79284
When debugging .NET WebAssembly apps, the debugger will now download symbol data from symbol file locations that are configured in visual studio preferences (see screenshot, below). This will improve the debugging experience for applications that use NuGet packages.

CodeGen
Community PRs (Many thanks to JIT community contributors!)

@am11 updated the env variable lookup in clrconfig and jithost in PR#77025.
@En3Tho optimized (X & 1) != 0 to (X & 1) and (X & 1) == 0 to ((NOT X) & 1) in PR#74806, and fixed a bug related to a faulty LIR range in PR#77166.
@MichalPetryka implemented Type.IsEnum and Type.GetEnumUnderlyingType intrinsics in PR#71685, and converted MemoryMarshal.GetArrayDataReference to a JIT intrinsic in PR#79760.
@pedrobsaila made the first PR contribution in PR#62689 to emit branchless form of (x >= 0 && y >= 0) to (x | y) >= 0 and (x != 0 && y != 0) to (x | y) != 0.
@SingleAccretion made 38 PR contributions in Preview 1.

Cloud Native

PR#79709 removed helper calls for non-gc static fields, and PR#80969 optimized static fields of gc types.
PR#80831 devirtualizes isinst/castclass for monomorphic cases.

Arm64
Arm64 performance improvement work is ongoing as planned in Issue#77010.

@AndyJGraham implemented peephole optimizations related to “ldp” and “stp” in PR#77540.
@a74nh enabled If Conversion in PR#73472, PR#77728, PR#78223, and PR#77888.
@swapnilGaikwad used zero register in conditional select (csel) in PR#78330.
@SwapnilGaikwad enabled mneg in PR#79550, one of the multi-op instructions listed in Issue#68028.

AVX-512
.NET 8 will support the AVX-512 ISA extensions as planned in Issue#77034.

@DeepakRajendrakumaran added EVEX encoding support for emitOutputRRR() in  PR#75934, emitOutputRR() and emitOutputAM() in  PR#77419 and rest of emitOutput* paths in PR#78044.
JitInterface was updated to support Vector512 by @DeepakRajendrakumaran in PR#81197.

PGO
Fundamental PGO improvements are in progress as planned in Issue#74873.

PR#80481 enabled edge based profiles for all scenarios.
Building pred list moved to very early stage of JIT via multiple PRs.

PR#80625 supports maintaining pred lists during loop unrolling.
PR#80856 builds pred lists before the Exception Handling optimization phases.
PR#81288 builds pred lists before instrumentation.
PR#81246 updates fgReplaceJumpTarget to maintain pred lists.
PR#81196 builds pred lists before patchpoint expansion.
PR#81000 builds pred lists before inlining.
PR#80891 builds pred lists before object allocation phase.

Loop Optimizations

PR#75140 supports delegate GDV guards in loop cloning.
PR#80265 converted JitHashTable iteration to range-based for to improve throughput by 0.22%.

Register Allocation

@SingleAccretion enabled promotion of multi-reg Long variables on 32 bit unblocking field enregistration in PR#76263.

Struct

PR#77102 folded static readonly struct to constants for the structs with 4 fields of primitive types and reduced the number of generated instructions.
PR#77354 folded static readonly struct X =  to a const and had up to 70% execution time improvement for Guid.Empty.

General Optimizations

PR#77103 implemented a new tail merging optimization as proposed in Issue#8795.
PR#77078 forbid creation of null-check nodes on an address that is not null to avoid unnecessary null-checks early.
PR#77562 implemented additional intrinsics for newly approved APIs on Vector64/128/256/512 and Vector defined in Issue#76593.
PR#79346 enabled early liveness that is used in forward sub and last use copy elision for implicit byrefs.

.NET Libraries - System.Numerics and System.Runtime.Intrinsics
We reimplemented Vector256<T> to internally be 2x Vector128<T> ops where possible: https://github.com/dotnet/runtime/pull/76221. This allows partial acceleration of some functions when Vector128.IsHardwareAccelerated == true but Vector256.IsHardwareAccelerated == false, such as on Arm64.
Added the initial managed implementation of Vector512<T>: https://github.com/dotnet/runtime/pull/76642. Much like the previous work item, this is implemented interanlly as 2x Vector256<T> ops (and therefore indirectly as 4x Vector128 ops). This allows partial acceleration of some functions even when Vector512.IsHardwareAccelerated == false. -- NOTE: There is no direct acceleration for Vector512 yet, even when the underlying hardware supports it. Such functionality should be enabled in a future preview.
Rewrote Matrix3x2 and Matrix4x4 to better take advantage of hardware acceleration: https://github.com/dotnet/runtime/pull/80091. This resulted in up to 48x perf improvements for some benchmarks. 6-10x improvements were more common. -- NOTE: Improvements to Quaternion and Plane will be coming in Preview 2
Hardware Intrinsics are now annotated with the ConstExpected attribute: https://github.com/dotnet/runtime/pull/80192. This ensures that users are aware when the underlying hardware expects a constant and therefore when a non-constant value may unexpectedly hurt performance.
Added the Lerp API to IFloatingPointIeee754<TSelf> and therefore to float (System.Single), double (System.Double), and System.Half: https://github.com/dotnet/runtime/pull/81186. This allows efficiently and correctly performing a linear interpolation between two values.

.NET 8 container images are using Debian bookworm
Every two years, there is both a new Debian and .NET LTS released. Fortunately, the Debian release always ships first, often at the mid-point of the year, while .NET ships closer to the end. This is important because (A) Debian is the default Linux distro in our container images, and (B) we don't change the Debian version in those images for a major release once it is generally available. To ensure that we're preparing everyone for the transition to a new Debian release, we try to adopt it with Preview 1. We did that with .NET 6 Preview 1 and Debian Bullseye and we're doing it again with .NET 8 and Debian Bookworm.
If you pull one of our 8.0 images, you are using Debian Bookworm.
Note that Debian Bookworm includes OpenSSL 3. That doesn't matter for most users since .NET can use both OpenSSL 1.x and 3.x without issue.

.NET 8 container images are non-root-capable
Container base images are almost always configured to run with the root user and many users keep that configuration in production. That's not always the best approach. For the most part, people do this because they are not aware of other options or because it is a pain to configure every single application to have a different user. Compounding that, container images do not come -- for the most part -- with an user that is appropriate (other than root) for container workloads.
There is a better way. Starting with .NET 8, all container images that we publish will be non-root capable. That means you'll only need to add a one-liner at the end of your Dockerfiles or a similar instruction in your Kubernetes manifests, in order to run as non-root.
For Dockerfiles, this is the one-liner you'll be able to add:
USER app

We will publish a deeper-dive blog post on non-root-capable container images soon.

.NET 8 container tagging change
.NET 8 preview container images will be exposed with 8.0-preview not 8.0. They will transition to 8.0 with the Release Candidate releases. The goal of this approach is to more clearly describe preview releases as such. Previously, preview releases used stable tags, like 7.0 starting with Preview 1. Those tags are more convenient to use, but might be confusing to some users.
This change was made based on a community request.
For example, to pull the .NET 8 Preview SDK, the following tag will be needed:
docker run --rm -it mcr.microsoft.com/dotnet/sdk:8.0-preview

As stated, we will start publishing images with the 8.0 tag with RC1. The 8.0-preview tag will not be published with the final GA release.

dotnet publish and dotnet pack produce Release assets by default
Publish and pack verbs are intended to produce production assets, which means that they should produce Release assets. In .NET 8, they will do that by default. People have been asking for that since .NET Core 1.0. Sorry that it took so long!
This feature is controlled by the PublishRelease and PublishPack boolean properties. They default to true.
It is easiest to demonstrate the feature, with dotnet publish:
/app# dotnet new console
/app# dotnet build
  app -> /app/bin/Debug/net8.0/app.dll
/app# dotnet publish
  app -> /app/bin/Release/net8.0/app.dll
  app -> /app/bin/Release/net8.0/publish/
/app# dotnet publish -p:PublishRelease=false
  app -> /app/bin/Debug/net8.0/app.dll
  app -> /app/bin/Debug/net8.0/publish/

Note that PublishRelease and PublishPack also exist in .NET 7 in 7.0200 SDK. They are opt-in in .NET 7 and must be set to true to provide the same behavior.

NativeAOT binary size improvements, in particular on Linux. Size of native AOT compiled HelloWorld on Linux x64 improved from xxx MB in .NET 7 to yyy MB in .NET 8 Preview 1 (fill in actual numbers based on where we land after the cutoff). cc @MichalStrehovsky

We're past cutoff and close to releasing. Do you have the latest numbers for this?

CLR AppModel team: NativeAOT size improvements
dotnet/runtime#79003
Option to publish as Native AOT was first introduced in .NET 7. In .NET 8, we're refining some of the fundamentals such as size. Publishing app with Native AOT creates a fully self-contained version of you app that doesn't need a runtime - everything is included in a single file. We worked on making this single file smaller. Linux builds are now up to 50% smaller.
Here's the sizes of a Hello World app with Native AOT that includes the entire .NET runtime:
.NET 7	.NET 8 Preview 1
Linux x64 (with -p:StripSymbols=true)	3.76 MB	1.84 MB
Windows x64	2.85 MB	1.77 MB
~On Linux, we've also removed the dependency on libstdc++: simple apps will be able to run on from scratch Alpine Linux containers with no additional dependencies. We'd like to thank Adeel Mujahid (am11 on GitHub) for contributing it in dotnet/runtime#76705.~

@MichalStrehovsky thanks for providing this!

.NET 8 buildable from source on Linux via the dotnet/dotnet repository
https://github.com/dotnet/arcade/issues/9359
Starting in Preview 1 of .NET 8, the .NET product will be buildable on Linux directly from the dotnet/dotnet repository. Prior to .NET 8, building from source was possible, but required creation of a "source tarball" from the dotnet/installer commit that corresponded to a release. This is no longer necessary. The repository will have tags corresponding to each release, as well as main and release/8.0-previewN branches which continually track the state of the product.

@leecow  @JonDouglas  @lambdageek @thaystg @lewing
These three improvements listed above are for web scenarios, so I'm planning to cover them in the ASP.NET Core blog post:

Mono: .NET Hot Reload supports adding instance fields, properties and events
WebAssembly: experimental "Webcil" a new container format for .NET assemblies
Mono: Debugging .NET WebAssembly App supports loading symbols from symbol server as configured in Visual Studio

.NET 8 + Ubuntu chiseled images
We are publishing Ubuntu Chiseled images with .NET 8. We expect that Ubuntu chiseled images will be supported in production by both Canonical and Microsoft by the time .NET 8 ships. As a result, we are shipping these images starting with Preview 1.
Chiseled images have a lot of benefits:

Ultra-small images (reduced size and attack surface)
No package manager (avoids a whole class of attacks)
No shell (avoids a whole class of attacks)

You can see the pattern for producing chiseled images, with our aspnetapp sample. It only requires a one-line change.
Chiseled images are currently published to our nightly repos, for .NET 6 and .NET 7 versions.

Update Linux minimum baseline
We are updating our minimum baselines for Linux for .NET 8. There are three notable changes.

The .NET product will be built targeting Ubuntu 18.04. That's primarily important for defining the minimum glibc version for .NET 8.
For Red Hat Enterprise Linux (RHEL), we will support RHEL 8+, dropping RHEL 7.
We will only publish a support for statement RHEL, however, we intend that support to apply to other RHEL ecosystem distros.

There are no other significant changes. Also, we continue to support Linux on Arm64, Arm32, and x64 architectures.
The following demonstrates the Ubuntu 18.04 glibc version and the pattern for discovering it for other distros.
% docker run --rm ubuntu:18.04 ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Do you have a suggestion?
"Non-root" and "rootless" are the two common terms. They equally apply to the Chiseled image, for example. Whatever the term is we use for that, we should use sometime very similar for these other images, like "non-root-capable" or "rootless-capable".
I guess we could use ".NET 8 container images include a non-root user" as the title and then in the text explain that this makes them "non-root capable". Would that be better?

New Performance-Focused Types in the Core Libraries
Multiple new types have been added to the core libraries to enable developers to improve the performance of their code in common scenarios.
The new System.Collections.Frozen namespace provides FrozenDictionary<TKey, TValue> and FrozenSet<T> collections.  These types provide an immutable surface area such that, once created, no changes are permitted to the keys or values.  That in turn enables the collections to better optimize subsequent read operations (e.g. TryGetValue) based on the supplied data, choosing to take more time during construction to optimize all future accesses.  This is particularly useful for collections populated on first use and then persisted for the duration of a long-lived service, e.g.
private static readonly FrozenDictionary<string, bool> s_configurationData =
    LoadConfigurationData().ToFrozenDictionary(optimizeForReads: true);
...
if (s_configurationData.TryGetValue(out bool setting) && setting)
{
    Process();
}

Another example of a new type that helps a developer to invest a bit of time upfront in exchange for much faster execution later is the new IndexOfAnyValues<T> type.  In addition to new methods like IndexOfAnyInRange, new overloads of IndexOfAny have been added that accept an IndexOfAnyValues<T> instance, which can be created to represent a set of T values for which to search.  The creation of this instance handles deriving whatever data is necessary in order to optimize subsequent searches.  For example, if you routinely search for all ASCII letters and digits plus, you might previously have written:
private static readonly char[] s_chars = "-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray();
...
int i = str.IndexOfAny(chars);

That, however, requires either not doing any kind of vectorization to improve the efficiency of the search, or it involves taking time on each invocation of IndexOfAny to compute the necessary state to speed up the operation.  Now instead, it can be written as:
private static readonly IndexOfAnyValues<char> s_chars = IndexOfAnyValues.Create("-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz");
...
int i = str.IndexOfAny(chars);

precomputing all of that state once such that it's available for reuse on every subsequent IndexOfAny invocation.
This pattern repeats itself again with the new CompositeFormat type.  .NET has long had support for string formatting via APIs like string.Format and StringBuilder.AppendFormat, e.g.
static string GetMessage(int min, int max) =>
    string.Format(CultureInfo.InvariantCulture, "Range from {0} to {1}", min, max);

C# 6 added support for string interpolation, and then C# 10 in conjunction with .NET 6 significantly improved the efficiency of these operations, enabling the same operation to be written as:
static string GetMessage(int min, int max) =>
    string.Create(CultureInfo.InvariantCulture, $"Range from {min} to {max}");

but doing all of the work that can be precomputed (e.g. parsing the format string) at compile time rather than on each invocation of string.Format.  That, however, requires the format string to be known at compile time so it can be parsed at compile time... what if it's not known until run-time, such as if it's loaded from a resource file or some other dynamic means?  For that, .NET 8 adds the CompositeFormat type.  Just as with IndexOfAnyValues<T>, it enables taking an operation that would otherwise need to be done on each use and lifting it out to be done once.
private static readonly Compositeformat s_rangeMessage = CompositeFormat.Parse("Range from {0} to {1}");
...
static string GetMessage(int min, int max) =>
    string.Format(CultureInfo.InvariantCulture, s_rangeMessage, min, max);

These new overloads also support generic arguments, to avoid boxing overheads associated with taking everything as object.
.NET 8 Preview 1 also adds support for new performance-focused hashing algorithms, including the new XxHash3 and XxHash128 types that provide implementations of the fast XXH3 and XXH128 hash algorithms.

One small item that I forgot about until now:
NativeAOT has preview support for MacOS x64 + ARM64 in Preview 1, thanks to a lot of great external contributions from Filip Navara and am11. Filip in particular got MacOS ARM64 working.

.NET 8 container images are non-root-capable

Does remote debugging into a container image work for non-root containers?

Released: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-1/


RuntimeError: can't start new thread

Unexpected Problems / Potential Bugs

Dear ppwwyyx,
The error occured when re-train the model or using ctrl-c to interupt the training precedure. It seems the threaded were not killed using ctrl-c interuption.
========
0221 07:44:38 @parallel.py:178] [MultiProcessPrefetchData] Will fork a dataflow more than one times. This assumes the datapoints are i.i.d.
Traceback (most recent call last):
File "./src/train.py", line 71, in
df = get_dataflow_batch(args.datapath, True, args.batchsize, img_path=args.imgpath)
File "/home/test/Project/2018-05-02//src/pose_dataset.py", line 388, in get_dataflow_batch
ds = get_dataflow(path, is_train, img_path=img_path)
File "/home/test/Project/2018-05-02//src/pose_dataset.py", line 367, in get_dataflow
ds = PrefetchData(ds, 1000, multiprocessing.cpu_count() * 4)
File "/home/test/anaconda3/lib/python3.5/site-packages/tensorpack-0.8.5-py3.5.egg/tensorpack/dataflow/parallel.py", line 185, in init start_proc_mask_signal(self.procs)
File "/home/test/anaconda3/lib/python3.5/site-packages/tensorpack-0.8.5-py3.5.egg/tensorpack/utils/concurrency.py", line 212, in start_proc_mask_signal
p.start()
File "/home/test/anaconda3/lib/python3.5/multiprocessing/process.py", line 105, in start
self._popen = self._Popen(self)
File "/home/test/anaconda3/lib/python3.5/multiprocessing/context.py", line 212, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/home/test/anaconda3/lib/python3.5/multiprocessing/context.py", line 267, in _Popen
return Popen(process_obj)
File "/home/test/anaconda3/lib/python3.5/multiprocessing/popen_fork.py", line 20, in init
self._launch(process_obj)
File "/home/test/anaconda3/lib/python3.5/multiprocessing/popen_fork.py", line 67, in _launch
self.pid = os.fork()
BlockingIOError: [Errno 11] Resource temporarily unavailable Process _Worker-103:
Traceback (most recent call last):
File "/home/test/anaconda3/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/home/test/anaconda3/lib/python3.5/site-packages/tensorpack-0.8.5-py3.5.egg/tensorpack/dataflow/parallel.py", line 160, in run
self.queue.put(dp)
File "/home/test/anaconda3/lib/python3.5/multiprocessing/queues.py", line 87, in put
self._start_thread()
File "/home/test/anaconda3/lib/python3.5/multiprocessing/queues.py", line 169, in _start_thread
self._thread.start()
File "/home/test/anaconda3/lib/python3.5/threading.py", line 844, in start
_start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread

The error occured when re-train the model or using ctrl-c to interupt the training precedure
I don't understand what do you mean by the "or". What exactly did you do to see this log?

1 . What will happen if you don't press ctrl-c ?
Run normal, no error happends.

What will happen if you press ctrl-c a lot of times?
Change LearningRate or want to re-training another model, using ctrl-c to interupt previous trainning code. Can not start the training precedure again, must kill the tensorpack thread by command.

What will happen if you press ctrl-c a lot of times? --- Does this give you back to the command line or not?
And by saying "Can not start the training precedure again" what exactly did you observe? Does this give the error you've posted above or something else? Could you post the error?

press ctrl-c can quit training process as normal.
all error just as I posted before.  Using linux bash 'top', could see the training thread are not terminated, had to kill the thread by command
kill ps -ef|grep python | grep -v grep|awk '{print $2}'

OK now I understand. This is related to issue #668 and can probably be solved in the master branch if you've installed the "python-prctl" package.

cool.
Thanks for your reply!


Support for lcov .info file upload and max line coverage count

Lcov generated .info can be uploaded to coveralls with '-l' or '--lcov-file' flag. Also unfortunately coveralls.io does not accept a line coverage count higher than the value which can be stored in an 'int'. I faced this issue while trying to upload the coverage of the machine library I am working on(MLPACK) where some line was executed 678******* times. So I introduced a flag '--max-cov-count' which will limit this value and if any count overshoots beyond this limit, it is replaced with the value (GIVEN_MAX + 1) to show that it is more that the MAX value.

Thanks, @sumedhghaisas !


Add more properties for UglifyJsPlugin

Hi,
Is there any way to set up more properties for webpack.optimize.UglifyJsPlugin?
For example I want use more properties for the production bundle, like remove comments, reduce vars, etc.
Thx.

There is currently no build in support for altering the webpack config. This is something that has been discussed and will be looked closed at after v1.0.
The "easiest" way to do it right now is to checkout angular-cli and link it up to npm and your project. Then you can simply edit packages/angular-cli/models/webpack-build.*.ts

Ok, but why angular-cli for production environment don't use more properties like remove comments, or others that help to improve the production bundle?

I myself added postcss-discard-comments which saved lots of kilobytes. See #2593
There is an open issue about JS-comments not being removed in #2386. This has to be advised by the google legal team before being applied.

Just tried removing comments in the JS aswell. Made my main.bundle.js.gz go from 303kb to 298kb. Not that much of a difference.

Closing as there are other issues that cover this as @grizzm0 mentioned.


KAFKA-16394: Fix null propagation in foreign key join result

This fixes the two issues reported in KAFKA-16394, which are:

Null should not be propagated to the join result when changing a foreign key
Null should not be propagated twice in the join result when deleting a primary key

Note: This branch is based on branch KAFKA-16343. It would be rebased after merging PR #15564 .
For review, only last commit is concerned by this bug fix.

Can we update existing test to not use Map but List (as I mentioned on the duplicate ticket https://issues.apache.org/jira/browse/KAFKA-16644) which should expose the bug?
Need to think about the fix a little more (need to refresh my memory on the different "subscription types").

Can we update existing test to not use Map but List (as I mentioned on the duplicate ticket https://issues.apache.org/jira/browse/KAFKA-16644) which should expose the bug?
Need to think about the fix a little more (need to refresh my memory on the different "subscription types").

Ok, will check the integration test and update it accordingly.
For the subscription types, I've kept a summary that helped me write the unit tests and implement the fix. It can make it easier to review it first if I missed something before checking the code ;)
       // All cases of SubscriptionSendProcessor

       /*  LEFT JOIN Tests Summary

            old record  ->  new record                  result Instruction

            (pk1, null) -> (pk1, null)              -> NOTHING
            (pk1, null) -> (pk1, (null, ...))       -> PROPAGATE_IF_NO_FK_AVAILABLE
            (pk1, null) -> (pk1, (fk1, ...))        -> PROPAGATE_IF_NO_FK_AVAILABLE

            (pk1, (null, ..)) -> (pk1, null)        -> PROPAGATE_IF_NO_FK_AVAILABLE
            (pk1, (null, ..)) -> (pk1, (null, ...)) -> PROPAGATE_IF_NO_FK_AVAILABLE
            (pk1, (null, ..)) -> (pk1, (fk1, ...))  -> PROPAGATE_IF_NO_FK_AVAILABLE

            (pk1, (fk1, ..)) -> (pk1, null)         -> DELETE_AND_PROPAGATE
            (pk1, (fk1, ..)) -> (pk1, (null, ...))  -> DELETE_AND_PROPAGATE
            (pk1, (fk1, ..)) -> (pk1, (fk1, ...))   -> PROPAGATE_IF_NO_FK_AVAILABLE
            (pk1, (fk1, ..)) -> (pk1, (fk2, ...))   -> DELETE_NO_PROPAGATE + PROPAGATE_IF_NO_FK_AVAILABLE
         */

I represent each record with (pk, (fk, ...)) where pk is the key, and the value is composed of the foreign key fk and the other fields represented by the dots (which do not impact the resulting instruction type)

@mjsax Any chance to get this in release 3.9.0 ? Thanks

Thanks for the ping -- I have this PR on my mind, but just don't find time to review... The 3.9 ship did sail. I hope (but cannot promise) to get this into 4.0 release... :(
Kafka is really a busy project and we don't have enough committers to review all PRs in a timely manner unfortunately.


Scripts to visualize power spectral density (PSD) of feature

Hi, excellent work! Could you provide the script for visualizing the feature's power spectral density (PSD)? Thanks.

We have added the  script for visualizing PSD：https://github.com/Zheng-MJ/SMFANet/blob/main/plt/main_psd.py


[WIP] Support Run-From-Zip in ZipDeploy

This is still a work in progress, but it works. If you would like to try it here is a private site extension build
Kudu.zip
To use run from zip:

Set WEBSITE_USE_ZIP = 1
curl -X POST -u <user> --data-binary @<zipfile> https://{sitename}.scm.azurewebsites.net/api/zipdeploy

Remaining work:

[ ] Add unit tests
[ ] Add an e2e deployment test
[ ] Run some more manual validations
[ ] handle some error cases

Okay I updated the PR with the feedback. The file is written directly into D:\home\data\SitePackages\{timestamp}.zip
Files needed for sync triggers are extracted from the zip into D:\local\temp\{randomDir}\ and sync trigger is executed from there.
The extraction operation is very fast. On my machine it took ~90 msecs to extract 10 functions from a zip archive containing 120k files (a 160 MB zip). It also took 900 msec to load the archive from disk. On Azure Files it took 20 seconds to load the archive.
Finally siteversion.txt is updated with the deployment zip name.


Notifications automatically taskes out of fullscreen applications

Hi,
when a notification comes up, und you are fullscreen in another application, it automatically taskes out to Desktop. This is espacially annoying while playing e.g. online games :-)
Any chances you can make the Desktop Notification transparent overly on top of allready running windows or make it not tasking out?
cheers!

Is this different to the "usual" web client?

I mean in the usual web client it really depends on the browser. So if you used Chrome/ium then this is an issue of Chrome/ium, not of this app.
For any other browser, it is an issue for the browser vendor.


Is there a way to send URI through the body instead of URI ?

Hi there, I'm using this wrapper and it's being great. I'm having a problem when trying to use the addTracksToPlaylist with 100 URI, the limit set by Spotify. I got a 414 error, request URI too long. I can see that replaceTracksInPlaylist uses postData: {uris: uris} instead of params: {uris: uris } like addTracksToPlaylist. So I was wondering if addTracksToPlaylist couldn't use the body as welll instead of params.
replaceTracksInPlaylist it's working fine.
My case is that I'm reordering my playlist using replaceTracksInPlaylist to replace the first 100 and iterate over chunks of 100 more tracks to add into the playlist. But eventually got this error.
Maybe I can help making a PR for that, just asking before doing anything.
Thanks

@cassioscabral Have you tried with the latest version of the library (0.21.2). It includes a fix for this issue.

@JMPerez no, I didn't, my bad. Thanks for replying


Areas under attack plugin

This plugin highlights portals, links and fields that are currently being attacked by an opposing player. These items pulse red during the attack.
The effect is cancelled when the portal becomes neutralised, or is captured by the attacking team, or 15 minutes passes without further attack. A short video showing the effect can be seen here.
Further notes:

The plugin only uses information from the chat window to determine where attacks are taking place and makes no API calls itself.
When you first load IITC, you can 'prime' the plugin by scrolling the public chat window back to ensure you have 15 minutes of chat available for the plugin to work from. Or, you can just leave it running to see new attacks.
The plugin works with the new portal markers introduced following the recent intel changes.

I know it's been a while, but is this possible work with canvas??
This plug-in is beautiful, but SVG is too slow on mobile device.


Ability to reject quote

new status, reject creates a ticket with reject reason
closes #370

Change the "Approve Quote" button text on the project details to something like "Review Quote" ?


Issue with k8s.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

This is a Bug Report

The script for the Kubernetes repository seems to have an error in the repo URL

Problem:
I try and install the Kubernetes components for an etcd server, the install fails with:
[Errno 14] HTTPS Error 404 - Not Found
Proposed Solution:
In the script change:
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
to:
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
Page to Update:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

I got the replacement version from:
https://kubernetes.io/docs/tasks/tools/install-kubectl/

1.8

I tried "echo $basearch" and it comes back empty. I am using Centos 7.

please see this existing issue:
https://github.com/kubernetes/website/issues/20279
and the PR to merge a fix:
https://github.com/kubernetes/website/pull/20291
/close


abnormal attack

This is a problem that doesn't catch any anomalies. Within 5 years of game time, the enemy's attack has not come in the game. After I remove the thread module and enter the game, the attack will come soon

It makes the game boring


Install script does not work

When install script is executed, it tries to download a tarball which does not exist:
./install.sh v0.24.0
Installing ECM Distro Tools: v0.24.0
downloading tarball from https://github.com/rancher/ecm-distro-tools/releases/download/v0.24.0/ecm-distro-tools.linux-amd64.tar.gz
curl: (3) URL using bad/illegal format or missing URL

Release v0.24.0 had some problems that were fixed in v0.24.1

I tried with v0.25.0 and saw the same problem

Can this be closed? @manuelbuil

Can this be closed? @manuelbuil

Yes! Sorry

Awesome. Thanks!


Read and write with flowio

https://github.com/whitews/FlowIO
The python toolkit can't currently save an FCSFile resource to file (FCS format ) other than by downloading it directly from CellEngine (either through fcs_file.get_events or apiclient.download_fcs_file).  It can't serialize the resource to an FCS file after making local modifications to it, right?  Olivier is currently using the toolkit to make modifications to an FCS file and to save it back,  using FlowKit package, but it's not super efficient and drops file-internal compensation matrix

Commented on the PR before seeing the comment here. That's correct. We need to be able to modify header values and maybe have some concept of a "local file" (one that isn't uploaded yet to CellEngine). Can work on designing the interface for this soon.


specify language for code blocks

Specify the language used in all code blocks.

Deploy preview for calico ready!
Built with commit 14848199c64f9f7d86d019d2e382c2500c87f5d7
https://deploy-preview-3126--calico.netlify.com


Error: [mobx-state-tree] No matching type for union ("labels" | "hypertextlabels" | "paragraphlabels" | "rectangle" | "keypoint" | "polygo

Hi, I get the following error on my GUI from the predictions I have made. I am able to see the values but not on GUI. Thanks
Error: [mobx-state-tree] No matching type for union ("labels" | "hypertextlabels" | "paragraphlabels" | "rectangle" | "keypoint" | "polygon" | "brush" | "ellipse" | "rectanglelabels" | "keypointlabels" | "polygonlabels" | "brushlabels" | "ellipselabels" | "timeserieslabels" | "choices" | "number" | "taxonomy" | "textarea" | "rating" | "pairwise" | "videorectangle")

image task source looks like:
{
  "id": 4,
  "data": {
    "img": "/data/upload/4/3211e048-8-87062.png"
  },
  "annotations": [
    {
      "id": 7,
      "created_username": "<EMAIL_ADDRESS>1",
      "created_ago": "2 hours, 12 minutes",
      "result": [
        {
          "original_width": 860,
          "original_height": 543,
          "image_rotation": 0,
          "value": {
            "x": 5.348837209302325,
            "y": 47.14548802946593,
            "width": 0.11627906976744186,
            "keypointlabels": [
              "x"
            ]
          },
          "id": "HF-7AAS2HX",
          "from_name": "kp-1",
          "to_name": "img-1",
          "type": "keypointlabels",
          "origin": "manual"
        },
        {
          "original_width": 860,
          "original_height": 543,
          "image_rotation": 0,
          "value": {
            "x": 15.930232558139535,
            "y": 15.83793738489871,
            "width": 0.11627906976744186,
            "keypointlabels": [
              "y"
            ]
          },
          "id": "68B2RtBafD",
          "from_name": "kp-1",
          "to_name": "img-1",
          "type": "keypointlabels",
          "origin": "manual"
        }
      ],
      "was_cancelled": false,
      "ground_truth": false,
      "created_at": "2022-07-19T10:49:39.683045Z",
      "updated_at": "2022-07-19T10:49:39.683102Z",
      "lead_time": 11.075,
      "task": 4,
      "completed_by": 1,
      "parent_prediction": null,
      "parent_annotation": null
    }
  ],
  "predictions": [
    {
      "id": 1,
      "model_version": "1658229858",
      "created_ago": "1 hour, 38 minutes",
      "result": [
        {
          "from_name": "kp-1",
          "to_name": "img-1",
          "type": "KeyPointLabels",
          "value": {
            "x": 92,
            "y": 232
          }
        }
      ],
      "score": null,
      "cluster": null,
      "neighbors": null,
      "mislabeling": 0,
      "created_at": "2022-07-19T11:24:22.974382Z",
      "updated_at": "2022-07-19T11:24:22.974426Z",
      "task": 4
    },
    {
      "id": 6,
      "model_version": "1658229858",
      "created_ago": "1 hour, 38 minutes",
      "result": [
        {
          "from_name": "kp-1",
          "to_name": "img-1",
          "type": "KeyPointLabels",
          "value": {
            "x": 92,
            "y": 232
          }
        }
      ],
      "score": null,
      "cluster": null,
      "neighbors": null,
      "mislabeling": 0,
      "created_at": "2022-07-19T11:24:25.012452Z",
      "updated_at": "2022-07-19T11:24:25.012518Z",
      "task": 4
    }
  ]
}

my prediction output is as follows:
result = [{
                'from_name': from_name,
                'to_name': to_name,
                'type': "keypointlabels",
                'value': {
                    'x': [int(x[0])],
                    'y':[int(y[0])]
                     }
            }]

            # expand predictions with their scores for all tasks
            predictions.append({'result': result})

Let's try to replace
 "type": "KeyPointLabels",

=>
"type": "keypointlabels",

but it's off and the same location for every image

don't understand this. But most likely you are using wrong pixel coordinates, check x[0] and y[0], they must be between 0 and 100.

Hi makseq, you are right about the pixel coordinates. Setting them that way helped visualize them in the GUI.


added support for the pre-scm build step plugin

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Add Music Functionality

Still working on the mute feature. Not ready for merge

closes #39

ready to merge


Remove access token usage

Fixes

Fixes #182 by @dhruvkb
Description

Just a find and replace job of secrets.ACCESS_TOKEN to secrets.GITHUB_TOKEN.
Testing Instructions

Not sure how to test.
Checklist

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

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

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

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

Developer's Certificate of Origin 1.1

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

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

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

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

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

@WordPress/openverse-developers  Not sure what to do about the fact that the GITHUB_TOKEN doesn't have any write permissions on PRs from forks (at least that's how I'm understanding the docs). I believe this would break the PR auto-labeling.

Could go the route of a bot account, I created this but didn't finish setting it up: https://github.com/openverse-bot
It was during one of the outages last week.

If I understand the docs correctly, the PR autolabelling action can use GITHUB_TOKEN for read/write since the workflow is defined to run on the pull_request_target event.

@dhruvkb can you switch the three project related comments to continue to use ACCESS_TOKEN, then? Perhaps with a todo comment? I think you can commit directly to the PR in light of @sarayourfriend's afk.

I'll be monitoring some actions to see that nothing breaks.

          # TODO: Switch to GITHUB_TOKEN if the project is moved to a repo

I'm confused by this comment, how would the project be moved to a repo?

I meant the GitHub Project board.

Oh! That makes perfect sense, thank you!

I meant the GitHub Project board, which is currently at the WordPress org level and not at a repo level. We could move it within WordPress/openverse, if and when we converge to a monorepo.

It seems that all projects are on the org level. Even if you click on "New project" from the Openverse repository, you get redirected to https://github.com/orgs/WordPress/projects/xx . @dhruvkb, do you think it makes sense to remove the TODO comments about switching to GITHUB_TOKEN?


Enhance the storage with kv store, vector store, knowledge graph

Currently we only have notion to dump the data as is. We would also use kv store for deduping purpose, vector store for semantic search, and knowledge graph (e.g. semantic network) for (certain causality) reasoning.
Some candidates:

kv store: persistent redis. Addressed in https://github.com/small-thinking/taotie/issues/37
vector store: faiss.
knowledge graph: RDF or something else.

Resolved in https://github.com/small-thinking/taotie/pull/53


CuboidTag and EllipsoidTag examples

Adds examples to CuboidTag and EllipsoidTag tags and mechs
Notes:

The tag <CuboitTag.set[].at[]> and the mechanism set was ignored due to me not being really sure what they did and how to use them lol. I might do more testing later and add examples in a future PR.

Fixes pushed. Also changed a handful of EllipsoidTag examples to address reviews made for CuboidTag as well.


KAFKA-8039 - Use MockTime in fast reauth test to avoid transient failures

Test uses 100ms as connections.max.reauth.ms and checks that a second reauthentication doesn't occur within this interval. But since the interval is small, we cannot guarantee that the time between the two checks is not higher than the max interval. Change the test to use MockTime so that we can control the time.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@rondagostino Can you review please? Thank you!

@rondagostino @omkreddy Thanks for the review. Merging to trunk and 2.2.


export mutateAsync from atomsWithMutation?

Currently only mutate is exported from atomsWithMutation but there's another function called mutateAsync for async operations which provides a chance to handle rejected promise, could you please consider export that too? Thanks.
See doc here
mutateAsync: (variables: TVariables, { onSuccess, onSettled, onError }) => Promise<TData>
Similar to mutate but returns a promise which can be awaited.

Sounds great!
I think we have two options:

Add an option to atomsWithMutation so that people can choose mutate or mutateAsync
Add new atomsWithAsyncMutation

Would you like to work on it? I would really like to see collaborative development for this library.

Sure I'll have a look during the weekend! 🙌


how to add hexagon border

want to custom it but don't work. is it okay using sass?

whoo... my mistake. it worked. sorry:(