AWS::S3::Errors::AccessDenied

I am having terrible trouble attempting to upload files to a brand new and empty S3 bucket. The command I'm running is:
deb-s3 upload --bucket my-private-bucket screen.deb --access-key-id=FOO --secret-access-key=BAR+BAZ --endpoint s3-eu-west-1.amazonaws.com
The stack trace is:
> Examining package file screen.deb
> Uploading packages and new manifests to S3
   -- Transferring pool/s/sc/screen.deb
/usr/local/lib/ruby/gems/2.4.0/gems/aws-sdk-v1-1.66.0/lib/aws/core/client.rb:375:in `return_or_raise': Access Denied (AWS::S3::Errors::AccessDenied)
	from /usr/local/lib/ruby/gems/2.4.0/gems/aws-sdk-v1-1.66.0/lib/aws/core/client.rb:476:in `client_request'
	from (eval):3:in `put_object'
	from /usr/local/lib/ruby/gems/2.4.0/gems/aws-sdk-v1-1.66.0/lib/aws/s3/s3_object.rb:1765:in `write_with_put_object'
	from /usr/local/lib/ruby/gems/2.4.0/gems/aws-sdk-v1-1.66.0/lib/aws/s3/s3_object.rb:611:in `write'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/utils.rb:88:in `s3_store'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/manifest.rb:97:in `block in write_to_s3'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/manifest.rb:95:in `each'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/manifest.rb:95:in `write_to_s3'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/cli.rb:236:in `block in upload'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/cli.rb:234:in `each_value'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/lib/deb/s3/cli.rb:234:in `upload'
	from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
	from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
	from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
	from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
	from /usr/local/lib/ruby/gems/2.4.0/gems/deb-s3-0.8.0/bin/deb-s3:8:in `<top (required)>'
	from /usr/local/bin/deb-s3:22:in `load'
	from /usr/local/bin/deb-s3:22:in `<main>'

My IAM policy is
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "XXXXXXXXXX",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetAccelerateConfiguration",
                "s3:GetBucketAcl",
                "s3:GetBucketCORS",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketNotification",
                "s3:GetBucketPolicy",
                "s3:GetBucketRequestPayment",
                "s3:GetBucketTagging",
                "s3:GetBucketVersioning",
                "s3:GetBucketWebsite",
                "s3:GetLifecycleConfiguration",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectTagging",
                "s3:GetObjectTorrent",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectVersionTorrent",
                "s3:GetReplicationConfiguration",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListBucketVersions",
                "s3:ListMultipartUploadParts",
                "s3:PutAccelerateConfiguration",
                "s3:PutBucketAcl",
                "s3:PutBucketCORS",
                "s3:PutBucketLogging",
                "s3:PutBucketNotification",
                "s3:PutBucketPolicy",
                "s3:PutBucketRequestPayment",
                "s3:PutBucketTagging",
                "s3:PutBucketVersioning",
                "s3:PutBucketWebsite",
                "s3:PutLifecycleConfiguration",
                "s3:PutReplicationConfiguration",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectTagging",
                "s3:PutObjectVersionAcl",
                "s3:PutObjectVersionTagging",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-private-bucket"
            ]
        }
    ]
}

I don't think it's a bucket issue, as I granted the Everyone user the ability to List, Upload / Delete, View Permissions and Edit Permissions.
My list of installed gems:
*** LOCAL GEMS ***

aws-sdk (1.66.0)
aws-sdk-v1 (1.66.0)
bigdecimal (default: 1.3.0)
deb-s3 (0.8.0)
did_you_mean (1.1.0)
io-console (default: 0.4.6)
json (default: 2.0.2, 1.8.6)
mini_portile2 (2.1.0)
minitest (5.10.1)
net-telnet (0.1.1)
nokogiri (<IP_ADDRESS>)
openssl (default: 2.0.2)
power_assert (0.4.1)
psych (default: 2.2.2)
rake (12.0.0)
rdoc (default: 5.0.0)
test-unit (3.2.3)
thor (0.19.4)
xmlrpc (0.2.1)

I've tried altering the IAM permissions, ending up with the rather generous permissions above, to no avail.

This looks to be permissions based. I used my own, Admin, IAM details and was able to upload fine - so what are the required policies needed to make this work?

+1 - hitting the same problem with an IAM user that has the following policy and works with aws s3 to put/sync files (using the admin user works fine)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::xxx/*",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::xxx/*",
            ]
        }
    ]
}

Actually, following on from the previous poster, the following IAM policy worked,
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKETNAME",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectAcl",
                "s3:GetObjectTagging",
                "s3:GetObjectTorrent",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectVersionTorrent",
                "s3:PutObjectAcl",
                "s3:PutObjectTagging",
                "s3:PutObjectVersionAcl",
                "s3:PutObjectVersionTagging",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKETNAME/*"
            ]
        }
    ]
}

Thanks @mands ! That policy did the trick

Also check the date and time of your system. I was using a VM with a local date/time in the past (based on suspend/resume) and that manifest itself in a Forbidden error. ntpdate is your friend.

Just hit this error and spent like 2 hours to figure out what's going on. The reason was that Amazon added new security feature enabled by default:
Block new public ACLs and uploading public objects

Disabling this made upload successful.


IsUserCryptoAvailable check slows down Lambda cold start and takes large part of the initialization of Config and ServiceClients

Describe the bug
I'm using the AWS SDK to build a lambda function on .NET 7 in AOT mode. I noticed that during Dependency Injection the creation of AmazonLambdaConfig and AmazonLambdaClient objects was taking the majority of the time of the whole startup. I enabled the SDK logs (AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;) and I noticed the following messages (emphasis on the second line):
2023-02-08T12:45:05.362Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	dbug	Start DI injection
2023-02-08T12:45:05.484Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	UserCrypto 1|2023-02-08T12:45:05.483Z|INFO|UserCrypto is not supported.  This may be due to use of a non-Windows operating system or Windows Nano Server, or the current user account may not have its profile loaded. Unable to load shared library 'Crypt32.dll' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
Crypt32.dll.so: cannot open shared object file: No such file or directory
libCrypt32.dll.so: cannot open shared object file: No such file or directory
Crypt32.dll: cannot open shared object file: No such file or directory
libCrypt32.dll: cannot open shared object file: No such file or directory
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariablesAWSCredentials 2|2023-02-08T12:45:05.503Z|INFO|Credentials found using environment variables.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableAWSRegion 3|2023-02-08T12:45:05.504Z|INFO|Region found using environment variable.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 4|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_ENABLE_ENDPOINT_DISCOVERY was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 5|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_MAX_ATTEMPTS was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 6|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_RETRY_MODE was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 7|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_EC2_METADATA_SERVICE_ENDPOINT was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 8|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 9|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_USE_DUALSTACK_ENDPOINT was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	EnvironmentVariableInternalConfiguration 10|2023-02-08T12:45:05.504Z|INFO|The environment variable AWS_USE_FIPS_ENDPOINT was not set with a value.
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	ProfileInternalConfiguration 11|2023-02-08T12:45:05.504Z|INFO|Unable to find a profile named 'default' in store Amazon.Runtime.CredentialManagement.CredentialProfileStoreChain
2023-02-08T12:45:05.504Z	d3d66c80-d0f0-4a14-9ccc-4fd03e6567c8	info	DefaultConfigurationProvider 12|2023-02-08T12:45:05.504Z|INFO|Resolved DefaultConfigurationMode for RegionEndpoint [eu-west-1] to [Legacy].

That UserCrypto message is generated at IsUserCryptAvailable.
That method is called whenever downstream it needs to try to get profile information if possible in CredentialProfileStoreChain. The get profile method is called indirectly whenever it needs to find credentials or profile configuration such as this or even this.
I want to note that all of this is not specific to the AmazonLambdaClient so I suppose it would affect all AWSSDK service clients.
Normally creating the Config and the Client without doing anything spacial takes between 150 and 200ms. If I call UserCrypto.IsUserCryptoAvailable in my code it takes around ~140 ms. If I create Config and Client after that it takes a few tens of milliseconds to do the initialisation. Therefore I can conclude that the single call to UserCrypto is taking the majority of the time even considering all the time to obtain credentials following the chain of folders, envvars,...
The test was done on .NET 7 and AOT. I can only assume it would take much more on earlier versions and/or non-AOT mode. The lambda was set with 256MB.
Expected Behavior
The AWS SDK notices it is running on a non-Windows enviroment and just return false to "UserCrypto.IsUserCryptAvailable" doesn't even try to call UserCrypto API and fail when the dll are not there.
Current Behavior
"UserCrypto.IsUserCryptAvailable" calls "Decrypt" that calls "CryptProtectData" that is a Windows only API but it tries anyway for the presence of the Crypt32.dll.so file and then fails.
Reproduction Steps
AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
var clientConfig = new AmazonLambdaConfig();
var client = new AmazonLambdaClient(clientConfig);
Possible Solution
Checks for current operating system in "UserCrypto.IsUserCryptAvailable". Return false if not Windows.
Additional Information/Context
The only workaround ATM to avoid any possible call to IsUserCryptoAvailable is to set a lot of stuff ahead of time before creating the ClientConfig and the ServiceConfig:
// Avoid checking the profile for CSM
Environment.SetEnvironmentVariable("AWS_CSM_ENABLED", "false");

// Avoid checking the profile first for credentials
var access_key = Environment.GetEnvironmentVariable("AWS_ACCESS_KEY_ID");
var secret_key = Environment.GetEnvironmentVariable("AWS_SECRET_ACCESS_KEY");
var session_token = Environment.GetEnvironmentVariable("AWS_SESSION_TOKEN");

var credentials = new SessionAWSCredentials(access_key, secret_key, session_token);

// Avoid checking the profile for region
var region = RegionEndpoint.GetBySystemName(Environment.GetEnvironmentVariable("AWS_REGION"));

var clientConfig = new AmazonLambdaConfig
{
    DefaultConfigurationMode = DefaultConfigurationMode.InRegion, // skips certain profile checks
    RegionEndpoint = region,
    DisableLogging= false,

    // The following are the default values, also set to avoid fallback searches into the profile
    RetryMode = RequestRetryMode.Standard, // copied from InRegion
    MaxErrorRetry = 2,
    UseDualstackEndpoint = false,
    UseFIPSEndpoint = false,
    EndpointDiscoveryEnabled = false,
};
var client = new AmazonLambdaClient(credentials, clientConfig);

AWS .NET SDK and/or Package version used
AWSSDK.Lambda <IP_ADDRESS>
Targeted .NET Platform
.NET 7 (AOT)
Operating System and version
Lambda (Amazon Linux 2)

@unchartedxx Good morning. I understand that the call to UserCrypto.IsUserCryptAvailable might be calling few milliseconds of delay (140ms), could you please share the statistics when disabling use of UserCrypto as assumed in the code? Is it substantially less than 200ms. Kindly note that there is an existing issue https://github.com/aws/aws-sdk-net/issues/1931 to address it on non-Windows environment, but there is no specific timeline yet to address it.
Thanks,
Ashish

@ashishdhingra thanks for the quick answer. I did some more tests hoping that it would clarify your doubts.
I redid the test using the official AWS .NET lambda blueprints from here. I only added code to measure  the impact of the UserCrypto.IsUserCryptAvailable by calling it before the client initialization.
I tested with .NET 6 using the runtime provided by the lambda service and also using the custom runtime using .NET 7 in AOT mode. The Lambda function was assigned with 256MB. Each situation was tested three times, each time forcing a cold start. All times in milliseconds.
.NET 6 Only Client Initialization

Client Init

322

358

341

.NET 6 Calling UserCrypto.IsUserCryptAvailable and then Client Initialization

IsUserCryptAvailable
Client Init
Total

80
279
359

80
279
359

98
243
341

.NET 7 AOT Only Client Initialization

Client Init

180

181

219

.NET 7 AOT Calling UserCrypto.IsUserCryptAvailable and then Client Initialization

IsUserCryptAvailable
Client Init
Total

160
20
180

158
22
180

159
20
179

It is possible to see that if the UserCrypto.IsUserCryptAvailable was a no-op it would exactly remove a chunk from the whole time dedicated to the initialization, otherwise the total time would not the same as the client init wihout "prewarming" the crypto. In case of .NET 6 it could save about 25% of the whole time, while on .NET 7 it is about 88%, so the large majority.
Here the whole code I used for reference:
public static string FunctionHandler(string input, ILambdaContext context)
{
    AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
    Stopwatch timer = new();
    timer.Start();

    if (Environment.GetEnvironmentVariable("USERCRYPTO_WARMUP") != null)
    {
        var value = UserCrypto.IsUserCryptAvailable;
        Console.WriteLine($"IsUserCryptAvailable took {timer.ElapsedMilliseconds} to get {value}");
        timer.Restart();
    }

    var client = new AmazonLambdaClient();

    Console.WriteLine($"AmazonLambdaClient took {timer.ElapsedMilliseconds} to get {client}");

    return input.ToUpper();
}

We just released an update (included in Core 3.7.303.23) where the SDK won't attempt to load Crypt32.dll when not running. It does require targeting .NET 8 (or greater), but should help with the latency you were seeing.


Ctrl+W closes 2 tabs

Operation System: Ubuntu 16.04
Beaker version: Source-latest (8da88a5d80943bb51f408e9cd257d51732dd8716)

Ctrl+W closes 2 tabs.
The extra tab closed is the next one, I think.
Rarely doesn't happen, but most of the time it does.

Hi.. I'm "just" a user out here, but I thought of a question that might help developers understand what's happening. Are the tabs related to each other at all (other than that they're possibly physically side by side) on your screen?
What I mean is... were the tabs originally opened somewhat at the same time, maybe by right clicking then opening tabs down a row of links from one same page?
Or does the behavior seem pretty much random to you?
An example is that I go down a line of links with Gmail in HTML "All Mail" view while on dialup. I can tell that my browsers often consider those newly opened tabs as parent-child/family related because the browser will flip back to what might be considered the next best thing to a parent tab sometimes when I use CTRL+W here. The browser will definitely be somehow methodically working its way down the line of related child tabs even though I otherwise access those tabs to read in extremely random order.
No, I can't say for sure that what I'm seeing on a non-Beaker is about that Preferences choice we have for falling back to last, most recently opened tab when we do CTRL+W. Also just found another Preferences choice that could affect something like this (via Firefox Quantum):

Ctrl+Tab cycles through tabs in recently used order

That means the browser has a serious consciousness about tracking/documenting that part of our browsing activity. Not hard to imagine that it could be part of a glitch at any point.
Goodness, I hope that somehow makes the same sense here that it does in my head :laughing:

Thanks for reporting. I'll see if I can reproduce.

@Butterfly Many thanks for trying to help!
I did check the code and I didn't see any relation between them except being side by side. I also did test and by re-arranging tabs; and the extra tab that got closed was the one currently beside it.
Better luck next time :-)

Fixed on master. Thanks for reporting!

Checked. Thanks for fixing!


Extend MatMulAddPattern

Codecov Report
Attention: Patch coverage is 98.14815% with 1 line in your changes missing coverage. Please review.

Project coverage is 73.77%. Comparing base (b3a570a) to head (fe637ea).

Files with missing lines
Patch %
Lines

...rimental_experiment/xoptim/patterns/onnx_matmul.py
98.14%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #285      +/-   ##
==========================================
+ Coverage   73.73%   73.77%   +0.04%
==========================================
  Files         164      164
  Lines       26137    26184      +47
==========================================
+ Hits        19271    19317      +46
- Misses       6866     6867       +1

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


Nagging tip of the day cannot be disabled

I confirm (by marking "x" in the [ ] below: [x]):

[x] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/.
[ ] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[ ] I have read contributing guidelines.

Summary
Since the latest update, every morning after resuming my computer the MM client "greets" me with a tip of the day message that cannot be disabled.
No checkbox or similar ion the message nor anything in settings.
Environment

Operating System: Linux, Debian/unstable
Mattermost Desktop App version: 4.7.2
Mattermost Server version: 6.0.2

Steps to reproduce
Expected behavior
TotD has a checkbox to disable it permamently or at the very least a setting somewhere
Observed behavior
No way to get rid of that thing for good.

Possible fixes

@2019-05-10 Do you see the same issue with Mattermost Desktop App version v5.0.2?

@2019-05-10 Can you post a screenshot of what you're seeing? This isn't something that we've programmed into the Desktop App.

Ahh, that's a prompt made as part of the webapp, moving to server repo where we keep those issues.


Change label "Dialog" to "Dialog name" in Replace this dialog node

There's an inconsistency between this and the same field in Begin a new dialog(where it says "Dialog name"). Let's change this label to Dialog name so that they match.

The SDK Schema has the dialog title as "Dialog name" for both Replace and Begin Dialog. We should update the App Schema for Replace Dialog to reflect the title in the SDK Schema.
Begin Dialog
SDK Schema
https://github.com/microsoft/BotFramework-Composer/blob/028775b3c5fcf8345c52203bd11269bfed558378/BotProject/CSharp/Schemas/sdk.schema#L813
App Schema
https://github.com/microsoft/BotFramework-Composer/blob/028775b3c5fcf8345c52203bd11269bfed558378/Composer/packages/lib/shared/src/appschema.ts#L249
Replace Dialog
SDK Schema
https://github.com/microsoft/BotFramework-Composer/blob/028775b3c5fcf8345c52203bd11269bfed558378/BotProject/CSharp/Schemas/sdk.schema#L6218
App Schema
https://github.com/microsoft/BotFramework-Composer/blob/028775b3c5fcf8345c52203bd11269bfed558378/Composer/packages/lib/shared/src/appschema.ts#L2735

addressed via https://github.com/microsoft/BotFramework-Composer/pull/1966


Fixed Trigger's e2e concurrency test

Changes

🧹 Added prefetch count to Trigger's concurrent dispatch e2e test

/kind cleanup

/retest

/retest

/retest


[WIP] Clean up instance instantiation

@bweick
Deposit without extra instantiation: 89556 gas
Deposit with instantiation each time: 89568 gas


[TECHDEBT] [P2P] integration with persistence for addressBook management - (Issue #271)

Description
This PR is a stepping stone for the removal of the ValidatorMap.
Specifically it allows us to use per-Height addressBook and lays the ground for churn management.
Right before a new height is reached, the addressBook is propagated via a message on the Bus so that other interested modules can handle it. This part is out-of-scope for this PR and will be covered later on in a specific issue, unless differently agreed during code-review.
Also, this PR tends to the TODO:
https://github.com/pokt-network/pocket/blob/444c4242f8d165ba7702f160f6e94cd416fd0b8f/p2p/raintree/network.go#L29
Issue
Fixes #271
Type of change
Please mark the relevant option(s):

[x] New feature, functionality or library
[ ] Bug fix
[x] Code health or cleanup
[ ] Major breaking change
[ ] Documentation
[ ] Other

List of changes

Consensus

The Pacemaker now emits BeforeHeightChangedEvent events when the height is about to change.
The Pacemaker now emits HeightChangedEvent events when the height changes.

P2P

Raintree mempool cannot grow unbounded anymore. It's now bounded by a constant limit and when new nonces are inserted the oldest ones are removed. (#278)
Reacting to the BeforeHeightChanged event to broadcast the addressBook to the other modules via the bus.
Raintree is now capable of fetching the address book for a previous height and to instantiate an ephemeral peersManager with it.

Testing

[x] make develop_test
[x] LocalNet w/ all of the steps outlined in the README

Required Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have tested my changes using the available tooling
[x] I have updated the corresponding CHANGELOG

If Applicable Checklist

[ ] I have updated the corresponding README(s); local and/or global
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
[ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

Overall, given the comments, do you see a need for the broadcast events introduced here?

After having digested your comments and thought about it I think we should:

Propagate the changes to the world state in terms of validators at height.

I envisage something like: repeated Actor added_actors  and repeated Actor removed_actors in the HeightChangedEvent

This way P2P will react to changes and won't pull the validators set from persistence. Technically it won't rely on persistence directly anymore but on these messages received via the bus and handled in handleMessage. In terms of modularity and testability it should be an improvement.
If this sounds like premature optimization and/or overcomplicating things, say no more. I can remove the events part and leave the peerManagers as is (with my changes to getAddrBookLenght).

On the latter, I have one observation:
Currently, we would never find ourselves in a situation where getAddrBookLength is called for a height that's lower than current because we only call this method in getTargetsAtLevel and we pass the CurrentHeight from ConsensusModule as an argument:

Should we consider some tests to verify the use case: "we are propagating a message for a previous height"?

@deblasis Regarding the events, what are your thoughts on:

Exposing a function called GetAddrBook to the p2p module

Where would this function be called currently? I would say that if it's not relevant to the scope of this issue we shouldn't do it here. Sounds like scope creep a little bit. No?

Exposing an event called AddrBookChanged

Similar comment to the one above. These are things that will be part of broader issues where we are not simply tending for tech debt but we are literally implementing features. For example, I envisage some form of observability of the p2p addressbook as long as we develop the raintree peer discovery and churn because in that case the testing harness itself could be listening to these events and make assertions based on them and/or the order in which these events happen.

@Olshansk, thanks to your feedback as always, PTAL and let me know your thoughts.
I didn't update the changelogs because I have refactored things quite a bit and I would like to hear from you first.

@deblasis Sorry for hom many back & forths this one is taking, but it's looking better with every iteration, and thank you for bearing!

@deblasis Sorry for hom many back & forths this one is taking, but it's looking better with every iteration, and thank you for bearing!

It's all good @Olshansk ! It's all part of the process. I should be the one apologizing if you think about it.
I'll address your comments and re-request review later today. 🙏

I have removed the events, addressed comments and it's ready for another pass. Fewer things to look at I guess. We are getting there.
When you are happy I'll update the CHANGELOGs

@Olshansk CHANGELOGs updated


vertical scaling problem

Bug Report (?)
I have a vertical scaling problem since lthe last upgrade (a5, am5-rc.1, covalent-nightly@2585177a329be60b681c2458ebefb73f7526ff4). this is only my latest trial, it started with te standard upgrade (a5, am5-rc0, covalent-rc.0)
the vertical screen layout just became very different when covalent layout is involved. (the login page, which does not use covalent layout is not affected). on all screens, which showed up as a single plane filling out the display, now, I've got a slider, and the footer went below the display area.
I'm really a beginner at frontend prgramming, so try to use the advised patterns (actually, copy them mostly) so, the app screens are all really simple:
td-layout
  td-navigation-drawer
  router-outlet
  td-footer

all the routed components have a td-layout-nav frame, either with a managed-list, or a card-over, or a simple div content.
it may well be a fault on my part, I just don't have any clue, what could be wrong.
uploaded a shot of the current login page (with no vertical scaling problem), and of a cardover page (before, and after upgrade).

closing this, after reviewing the td-layout-nav wrapper, i've realized what was wrong on my part. sorry for the noise.


Pagination Example

Question: is there any way to paginate through firebase list using this library?

At the moment there isn't, but this does seem like a very good use case.
Do you have any thoughts on what this might look like from an API point of view?
I will have a think, and put together a plan, but welcome your suggestions...

I will look into it and attempt to come up with something.
Did a bit of a research and firebase queries are very limiting in what can be done.
https://github.com/deltaepsilon/firebase-paginator/blob/master/firebase-paginator.js
^ Above would probably be the most comprehensive library that somewhat solved this issue.

I used hooks to filter data from firestore, should I raise a PR for that?

@kriss1897 Yes, please do - I'd be interested to see how you've approached it...

@chrisbianca. Okay. Give me a few days.. I'll work on it this weekend.

Anyone ever get a pagination example working?
@kriss1897

i wrote a custom hook to do "Load More" type of pagination. i'm sure it can use some tweaking from more clever folks here, but it works fine for my purposes for now.
import { useState, useEffect, useCallback } from 'react'
import { useCollectionOnce } from 'react-firebase-hooks/firestore'

const useFirestoreLoadMore = queryFn => {
  const [query, setQuery] = useState(null)
  const [last, setLast] = useState(null)
  const [data, setData] = useState([])

  const [qData, loading, error] = useCollectionOnce(query)

  useEffect(() => {
    setData([])
    setQuery(queryFn())
  }, [queryFn])

  useEffect(() => {
    if (qData && qData.query.isEqual(query)) {
      setLast(qData.docs[qData.docs.length - 1])
      setData([...data, ...qData.docs])
    }
  }, [qData])

  const more = useCallback(() => {
    setQuery(queryFn().startAfter(last))
  }, [queryFn, setQuery, last])

  return [[data, loading, error], more]
}

export default useFirestoreLoadMore

you would use it like this:
const MyComponent = () => {
  const queryFn = React.useCallback(() => {
    let q = firebase
      .firestore()
      .collection('things')
      .orderBy('date', 'desc')
      .limit(15)

    if (maybeYouWantToChangeSomething) {
      q = q.where('something', 'array-contains', maybeYouWantToChangeSomething)
    }

    return q
  }, [maybeYouWantToChangeSomething])

  const [[things, loading, error], more] = useFirestoreLoadMore(queryFn)

  return (
    <div>
      {things.map(thing => <Thing key={thing.id} data={thing} />)}
      <button onClick={() => more()}>Load More</button>
    </div>
  )
}

i hope this is useful to someone.
now for Previous/Next pagination i've run into some roadblocks:

i tried tracking first and last snapshot, hoping to use query.startAfter(last) for "Next" and query.endBefore(first) for "Previous" but endBefore doesn't work the way you think combined with limit(). seems you have to track all first snapshots for every page and use something like query.startAfter(firstOfPreviousPage) for "Previous"
i can't think of a way to know there is no more "Previous" pages other than tracking a separate page state (i.e. disable "Previous" if page === 0).
not sure how to know we've reached the last page, it seems you need to try to load the next page, and if no results (or less than your limit) then that's the last page. seems like a lot of logic and i feel there might be a simpler way

would love to know how you guys are approaching it.

Can confirm that @RobertSasak's package works well. Thanks!

I created an example of hook with react.js for pagination
https://gist.github.com/robsonkades/0f256ab05944699b831031c7e6a8aa84

I found this one https://github.com/kodai3/react-firebase-pagination-hooks

I created a very simple hook for using simple "load more" paginated collection data. It's not true pagination in the sense that the number of reads increases everytime you call loadMore (but so does some of the other solutions posted here as far as I can see - if you wish to avoid that, I guess you have to provide the StartAfter to the query). Mabye it's helpfull for some (it's in typescript):
import { firestore } from 'firebase'
import { useState } from 'react'
import { useCollectionData } from 'react-firebase-hooks/firestore'

/**
 * Works like useCollectionData, but this hook also gives a loadMore callback for loading more data.
 * @param resultsPerPage: number of results per page.
 * @param query: (optional) firebase.firestore.Query for the data you would like to load (without limit).
 * @param options: (optional) Object with the following parameter:
 *    - `idField`: (optional) name of the field that should be populated with the firebase.firestore.QuerySnapshot.id property.
 *    - `snapshotListenOptions`: (optional) firebase.firestore.SnapshotListenOptions to customise how the query is loaded
 * @return `[values, loading, error, loadMore, hasMore]`
 *    - `values`: an array of T, or undefined if no query is supplied
 *    - `loading`: a `boolean` to indicate if the data is still being loaded
 *    - `error`: Any `Error` returned by Firebase when trying to load the data, or `undefined` if there is no error
 *    - `loadMore`: callback for loading more data
 *    - `hasMore`: `boolean` determining whether there is more data to load
 */
const usePaginatedCollectionData = <T>(
  resultsPerPage: number,
  query?: firestore.Query,
  options?: {
    idField?: string | undefined
    snapshotListenOptions?: firestore.SnapshotListenOptions | undefined
  }
): [T[] | undefined, boolean, Error | undefined, () => void, boolean] => {
  const [limit, setLimit] = useState(resultsPerPage)
  const [values, loading, error] = useCollectionData<T>(
    query?.limit(limit),
    options
  )
  const loadMore = () => setLimit((values?.length ?? 0) + resultsPerPage)
  const hasMore = (values?.length ?? 0) == limit
  return [values, loading, error, loadMore, hasMore]
}

export default usePaginatedCollectionData

any update from react-hooks contribute?

any update from react-hooks contribute?

i'm looking for that too

Any updates on this feature?

I will start to contribute here with the pagination @chrisbianca. Anyone here knows if already have some progress about that?
I have a lot of experience with firebase realtime database, with complex queries, compound indexes, "rules and typescript synchronization" and pagination. I think that pagination will have similar Params Interface between realtime database and firestore. So, I can start by doing pagination.
@chrisbianca Do you want to help me with prioritization here (rtdb or firestore or to launch both together)?
PS: I want to share my personal progress through this library to reward the open-source community, especially that. I've created an Issue with my idea explained #219

Hello !!!!!!!   :). i made my proper hook
Componente
const queryFn = useCallback(() => {
const q = query(
collection(fireStore, "admin_news"),
limit(4),
orderBy("categoryValue")
);
return q;
}, []);
const { more, isLoading, data } = usePaginateQuery(queryFn);

Create  hook
import { useState, useEffect, useCallback, useRef, useMemo } from "react";
import { DocumentData, Query } from "firebase/firestore";
import { startAfter, query, getDocs } from "firebase/firestore";
const usePaginateQuery = (queryFn: () => Query) => {
const [data, setData] = useState([]);
const isMountedRef = useRef(false);
const lastItemRef = useRef(null);
const [isLoading, setisLoading] = useState();
const [errorMsg, setErrorMsg] = useState();
const resetStates = () => {
setData(null);
setData([]);
setisLoading(false);
};
useEffect(() => {
if (isMountedRef.current === true) return;
async function fetchQuery() {
  try {
    isMountedRef.current = true;
    setisLoading(true);
    const q = query(queryFn());
    const querySnapshot = await getDocs(q);
    setData([...querySnapshot.docs]);
    lastItemRef.current = querySnapshot.docs[querySnapshot.docs.length - 1];
    setisLoading(false);
  } catch (error) {
    resetStates();
    setErrorMsg(error.code);
  }
}
fetchQuery();

}, [queryFn]);
const more = useCallback(async () => {
try {
setisLoading(true);
const next = query(queryFn(), startAfter(lastItemRef.current));
const querySnapshot = await getDocs(next);
setData([...data, ...querySnapshot.docs]);
lastItemRef.current = querySnapshot.docs[querySnapshot.docs.length - 1];
setisLoading(false);
} catch (error) {
resetStates();
setErrorMsg(error.code);
}
}, [data, queryFn]);
return useMemo(
() => ({
more,
isLoading,
data,
errorMsg,
}),
[more, isLoading, data, errorMsg]
);
};
export default usePaginateQuery;

Any updates on this? The given examples are great, but lack onSnapshot behaviour.
I'm trying to create a chat with that, so definitely need pagination, but also the onSnapshot behavior to live stream new messages, any ideas?

import { useState, useRef, useEffect, useCallback } from "react";
import { collection, query, orderBy, startAfter, limit, getCountFromServer, DocumentSnapshot, QueryConstraint } from "firebase/firestore";
import { useCollectionData } from "react-firebase-hooks/firestore";
import { db } from "@/library/firebase/client";
import { DB_COLLECTIONS } from "@/library/constants";
import { createFirestoreDataConverter } from "@/library/firebase/helpers";
import { InvoiceTypes } from "@/library/@types/invoice";

const invoiceConverter = createFirestoreDataConverter<InvoiceTypes>();
const invoicesRef = collection(db, DB_COLLECTIONS.INVOICES);
const PAGE_SIZE = 6;

const useFetchInvoices = (cursor: DocumentSnapshot | undefined, per_page: number) => {
  const constraints: QueryConstraint[] = [orderBy("created_at", "desc"), limit(per_page)];
  if (cursor) constraints.push(startAfter(cursor));
  const invoicesQuery = query(invoicesRef, ...constraints).withConverter(invoiceConverter);
  return useCollectionData(invoicesQuery, { snapshotListenOptions: { includeMetadataChanges: true } });
};

type UsePaginatedInvoicesReturnType = {
  meta: {
    total: number;
    total_pages: number;
    current_page: number;
    per_page: number;
  };
  invoices: InvoiceTypes[];
  loading: boolean;
  onPageChanged: (nextPage: number) => void;
  canGoBack: boolean;
  canGoNext: boolean;
};
/**
 * Custom hook to manage paginated invoices.
 *
 * This hook provides functionality to fetch and manage paginated invoices,
 * including metadata such as total count, total pages, current page, and
 * items per page. It also handles pagination state and provides methods
 * to navigate between pages.
 *
 * @returns {UsePaginatedInvoicesReturnType} An object containing:
 * - `meta`: Metadata about the pagination state, including total count, total pages, current page, and items per page.
 * - `invoices`: The current list of invoices for the current page.
 * - `loading`: A boolean indicating whether the invoices are currently being loaded.
 * - `onPageChanged`: A callback function to change the current page.
 * - `canGoBack`: A boolean indicating whether the user can navigate to the previous page.
 * - `canGoNext`: A boolean indicating whether the user can navigate to the next page.
 */
const usePaginatedInvoices = (): UsePaginatedInvoicesReturnType => {
  const [meta, setMeta] = useState({ total: 0, total_pages: 0, current_page: 1, per_page: PAGE_SIZE });
  const cursors = useRef<Map<number, DocumentSnapshot>>(new Map());
  const [invoices = [], loading, _error, snapshot] = useFetchInvoices(cursors.current.get(meta.current_page), meta.per_page);

  useEffect(() => {
    getCountFromServer(query(invoicesRef)).then((result) => {
      const count = result.data().count;
      setMeta((meta) => ({ ...meta, total: count, total_pages: Math.ceil(count / meta.per_page) }));
    });
  }, []);

  const onPageChanged = useCallback((nextPage: number) => {
    setMeta((meta) => {
      cursors.current.set(meta.current_page + 1, snapshot?.docs[snapshot.docs.length - 1] ?? ({} as DocumentSnapshot));
      return { ...meta, current_page: nextPage };
    });
  }, [snapshot]);

  const canGoBack = meta.current_page > 1;
  const canGoNext = meta.current_page < meta.total_pages;

  return { meta, invoices, loading, onPageChanged, canGoBack, canGoNext };
};

export { usePaginatedInvoices };

Well done, please add ts after ticks to highlight your code.
```ts
// here comes code
```

https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting

Done

Well done, please add ts after ticks to highlight your code.
```ts
// here comes code
```

https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting

Cool. I forgot to mention tsx option for files that also contain HTML.

Done> Cool. I forgot to mention tsx option for files that also contain HTML.

Done

Cool. I forgot to mention tsx option for files that also contain HTML.


"postinstall" script not necessary anymore

The current postinstall script builds the client-side app.
Heroku now automatically runs the build script from package.json after installing the dependencies.

Thanks


Fix property registrations

What does the pull request do?

What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues

You can test this PR using the following package version. 0.10.999-cibuild0020496-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You could try to create an analyzer to highlight similar cases faster and avoid them in the future.

You can test this PR using the following package version. 0.10.999-cibuild0020504-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


[TOPI] Enhance topi.nn.matmul

This PR enhances topi.nn.matmul to support batch matmuls (i.e. inputs with dims larger than 2).
This is useful in certain cases where we need to generate a batch matmul kernel.

We have a separate topi.nn.batch_matmul, I doubt if it's necessary to add it to matmul

I agree, in this case, moving to use batch_matmul might be easier

I see. That makes sense

I see. That makes sense

I agree, in this case, moving to use batch_matmul might be easier

What I need is a matmul where the shape of A is [b, m, k] and B is [n, k], and A or/and B could be transposed. But batch_matmul only supports 3-dim A and B.
And I guess having a matmul operator supporting all input dimensions may be helpful. As described in data apis, the additional dimensions will be broadcasted.

OK, in this case i think we can allow the extended version, provided that it does not break original usage and we have testcases to cover the extended usecase in form of TIR

@tvm-bot rerun


any logged in user can manage projects

once logged in, accessing /project/ permits to delete, edit or create a new project.
This feature should be limited to admin users only.

This permission doesn't satisfy this ?

Good point, I didn't notice that one! 🏅
We do get a 403 Forbidden when accessing as non admin.


Fix Elm highlighting

Elm grammar repository contains several YAML files with a source.elm scope (Preferences/Metadata.YAML-tmLanguage and Syntaxes/Elm.YAML-tmLanguage).
We need to restrict the path to the Syntaxes directory to make sure we select the appropriate YAML file.
I'm not sure how we could test this for subsequent pull requests...
Fixes #3204.
/cc @arfon

:zap:


AsmJs Templatized jit broken without -simdjs

When running templatized jit without -simdjs we incorrectly calculate the stack size required.
int32 stackSize = asmInfo->GetTotalSizeinBytes(); returns 0 in FunctionEntry::ApplyTemplate.
Since we don't ship templatized jit it's not urgent, but we should fix this.

Low impact - we don't ship this.


Use CollectionOptions.MapReplacements for map editing

What does this PR do?
Removes deprecated usage of CollectionSpec.RewriteMaps and uses CollectionOptions.MapReplacements instead.
MapReplacements  returns a cloned reference to the *ebpf.Map upon collection load. This allows us to get rid of the external/editing flags and tracking, because there is no danger of destructive operations upon Close. Pinned maps managed by the manager are detected and handled by the array field already being populated.
I split out the loading functions for maps/perfmap/ringbuffer to get rid of the mutex copy.
Motivation
Remove deprecated usage of CollectionSpec.RewriteMaps.
Additional Notes
This has a couple of API changes, so requires a version bump.
Describe how to test your changes
map_rewrite_vs_map_router example was tested and is still working.

@Gui774ume can you take a look at this one ? I'm fairly sure we discussed this at one point and I think I remember a reason where this could interact badly with the probe copying we use in TC code.. (maybe I'm wrong)

fwiw, I ran this through the agent CI and it passed.


Last line of command is overwritten in mulit-iline when cursor is not in last line

I noticed, that the last line of a multi-line do { ... } command is overwritten by the output:
Take this example:
do {
echo '########'
echo 'this is'
echo multi-line }

If you position the cursor in the last line echo multi-line } and hit enter, the output is printed to the next line, as it should.
If you however place the cursor in any of the other lines (e.g. echo 'this is') then the first line of the output overwrites the last line of the command:
do {
::: echo '########'
::: echo 'this is'
######## multi-line }
this is
multi-line

Notice the line ######## multi-line } where ######## overwrote the ::: echo of the command.
I tested this using the following builds:

cargo run --features extra --release
cargo run --features extra
cargo run
cargo run --release

i thought this was more of a reedline issue so i transfered it here. let me know if i'm mistaken.

Well, I guess it is but I don't know :sweat_smile:
Thanks!

Can reproduce with reedline standalone.

I ran into this today in e-q. notice how the command should wrap around but the output is stomping on it.

Thank you @sholderbach , I updated dependencies of engine-q locally so reedline is the latest version and it's now working :smiley_cat:


Update gen-typescript-declarations and generate constructor types

This makes TypeScript projects using the constructors compile properly.
Reference Issue
Fixes #5189

Travis appears to be absolutely busted. It has failed on 1. installing NPM dependencies 2. an earlier cancelled job that broke a subsequent build 3. launching Chrome with Selenium.
None of these issues are related to this PR, so I am going ahead and merge this.


Features/off import

Pretty niche right now but it gets support for polygonal meshes in - which is going to be a base to build more mesh editing features on. off is a great format because it's a) simple and b) supports more than just tri and quad faces which are ideal for subdivision modelling as well as procedural generation.
Sample files here: https://people.sc.fsu.edu/~jburkardt/data/off/off.html
or have some polyhedral fun by generating them with antiprism: https://www.antiprism.com/

I've made progress and this is possibly turning into a broader "procedural model" feature. I'll close this until it's a bit more fleshed out.


Update Posts “accessible-web-application-for-students-with-disabilities”

Automatically generated by Netlify CMS

👷 Deploy Preview for benevolent-muffin-215770 processing.

Name
Link

🔨 Latest commit
287ad80b2324ed50fbffaa8932dc84d22285974b

🔍 Latest deploy log
https://app.netlify.com/sites/benevolent-muffin-215770/deploys/62844f8da36a9b000aaecd6f


🌱 Optimize Seed Module

Seed Module Optimization

Generate a script to populate the database with seed data

[ ] Store the data in JSON
[ ] Generate cypher commands to create and relate the JSON data as a string
[ ] Run the raw query using the generated string
[ ] Verify the output

Seed script generation is currently out of scope


study/visualize.py sould be moved to vis and updated to use plot style

Should also adhere to plotting.md so that we can remove the warning from the test.

Related #3257.

This will be done as part of #3642


itk: 5.0.0 -> 5.0.1

Motivation for this change
Updating to 5.0.1, hopefully fixes a number of builds.
Also moving the source to github.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @viric

@GrahamcOfBorg build simpleitk ants elastix EZminc python27Packages.pyezminc

@GrahamcOfBorg build simpleitk

@GrahamcOfBorg build simpleitk

@GrahamcOfBorg build ants

@GrahamcOfBorg build elastix

@GrahamcOfBorg build ezminc

@GrahamcOfBorg build simpleitk
https://hydra.nixos.org/build/98720007

@GrahamcOfBorg build simpleitk

@GrahamcOfBorg build simpleitk

The build is too long for ofborg, but I success for me locally. Anyone willing to run nix-review on it, please.

~/nixpkgs> nix-review pr 66567
...
https://github.com/NixOS/nixpkgs/pull/66567
2 package are marked as broken and were skipped:
c3d seg3d

5 package failed to build:
ants elastix ezminc python27Packages.pyezminc simpleitk

1 package were build:
itk

:man_shrugging:

Odd.
@GrahamcOfBorg build simpleitk

@GrahamcOfBorg build simpleitk

Fails on macos 10.13:
builder for '/nix/store/l9g39yk5rmqmpvwrp3pcc0342s8av45g-simpleitk-1.2.2.drv' failed with exit code 2; last 10 log lines:
  [ 97%] Swig source to generate TCL wrapping
  Scanning dependencies of target SimpleITKTclsh
  [ 97%] Building CXX object Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/SimpleITKTCL_wrap.cxx.o
  /tmp/nix-build-simpleitk-1.2.2.drv-0/source/build/Wrapping/Tcl/SimpleITKTCL_wrap.cxx:166:10: fatal error: 'tcl.h' file not found
  #include <tcl.h>
           ^~~~~~~
  1 error generated.
  make[2]: *** [Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/build.make:407: Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/SimpleITKTCL_wrap.cxx.o] Error 1
  make[1]: *** [CMakeFiles/Makefile2:2554: Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/all] Error 2
  make: *** [Makefile:152: all] Error 2

Fails on macos 10.13:
That's odd. It builds fine under GrahamcOfBorg. Do you mind trying again please?

ping @bcdarwin do you mind taking a look at ants elastix ezminc python27Packages.pyezminc simpleitk?

@risicle do you mind testing again on darwin?

@aanderse can you please try again? I get
2 package are marked as broken and were skipped:
c3d seg3d

4 package failed to build:
ants elastix ezminc python27Packages.pyezminc

2 package were build:
itk simpleitk

@risicle do you mind testing again on darwin?

I currently am, but it takes a while...

@mmahut yes, identical results now:
https://github.com/NixOS/nixpkgs/pull/66567
2 package are marked as broken and were skipped:
c3d seg3d

4 package failed to build:
ants elastix ezminc python27Packages.pyezminc

2 package were build:
itk simpleitk

@aanderse do you mind sharing your log? I did the nix-review of this on two separate machines and simpleitk did build for me.

Getting closer on macos now we're including tcl and tk:
  [ 97%] Built target SimpleITKLuaModule_LUA
  [ 97%] Swig source to generate TCL wrapping
  Scanning dependencies of target SimpleITKTclsh
  [ 97%] Building CXX object Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/SimpleITKTCL_wrap.cxx.o
  [ 97%] Linking CXX executable bin/SimpleITKTclsh
  ld: framework not found tcl
  clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
  make[2]: *** [Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/build.make:555: Wrapping/Tcl/bin/SimpleITKTclsh] Error 1
  make[1]: *** [CMakeFiles/Makefile2:2554: Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/all] Error 2
  make: *** [Makefile:152: all] Error 2

I'm trying a rebuild right now with darwin.apple_sdk.frameworks.Tcl included...

Getting closer...
Scanning dependencies of target SimpleITKTclsh
[ 97%] Building CXX object Wrapping/Tcl/CMakeFiles/SimpleITKTclsh.dir/SimpleITKTCL_wrap.cxx.o
[ 97%] Linking CXX executable bin/SimpleITKTclsh
Undefined symbols for architecture x86_64:
  "_Tcl_MainEx", referenced from:
      _main in SimpleITKTCL_wrap.cxx.o
ld: symbol(s) not found for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

Hmm, yes, same error as before. If it builds on hydra, I guess that might be enough - but I suspect there's some impurity at play here.

@risicle how do you build it? using nix-review?

both nix-review and nix-build - same results.

Odd, I'm going to merge it, as it passes fine on darwin. I have mailed the maintainer for other packages as well, we will mark them as broken if no reply.


Bump version: 0.1.4 -> 0.2.0

Bumped to 0.2.0 instead of 0.1.5 because the scoped-pool feature was
removed, which could break code.

0.2.0 has been published
cc @reem

Thanks!


[KYUUBI #4546][FOLLOWUP] only exclude metrics dir in root directory of repo

Why are the changes needed?
Follow-Up of patch: https://github.com/apache/kyuubi/pull/4547
The modification introduced by https://github.com/apache/kyuubi/pull/4547 will result in all folder whose name is metrics being ignored.
# for example, a normal metrics package  for spark-engine will be ignored
externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/spark/kyuubi/metrics/

This patch changes the rule in .gitignore to only exclude metrics directory created by JSON reporter in root directory of REPO which is usually working directory of debug process.
Close https://github.com/apache/kyuubi/issues/4546
Simple test

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

cc @zwangsheng @pan3793

Has anyone tested this scenario?
https://github.com/apache/kyuubi/issues/4546#issuecomment-1905252699


[PORT] Support luis customized endpoint

Port this change from botbuilder-dotnet/master branch:
https://github.com/microsoft/botbuilder-dotnet/pull/4011

User would like to publish the luis to mooncake.
eg. chinaeast2 region is targeting https://chinaeast2.api.cognitive.azure.cn instead of https://${region}.api.cognitive.microsoft.com.
https://github.com/microsoft/BotFramework-Composer/issues/2986
Changed projects

Microsoft.Bot.Builder.AI.LUIS

Closing.  The Python LuisApplication already supports passing in the endpoint.  It does so slightly different as in dotnet, as it will accept the hostname portion (it always prefixes with "https").


Consistent with the backup output for intercept

What problem does this PR solve?

Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

/cc @D3Hunter PTAL


Notes

Use cf.assert for assertions?
Actually use the memref dialect.
Compile with -glldb.
Custom hlir.func, hlir.call (always indirect) and hlir.ret ops. Any zero-sized parameters or values are dropped at the language level (make sure we don’t waste argument registers).

This is no longer relevant or has all already been done


[Azure][Track 2 SDK] Migrate Azure Blob Storage Binding

Migrate Azure Blob Storage Binding to SDK github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

Latest status on this:
Not currently possible due to

[ ] https://github.com/Azure/azure-sdk-for-go/issues/17152
[ ] https://github.com/Azure/azure-sdk-for-go/issues/17061
[ ] https://github.com/Azure/azure-sdk-for-go/issues/16679

Current blocker: https://github.com/Azure/azure-sdk-for-go/issues/17850


Dragging vector points with Path tool should use absolute positions

Right now we move a delta. This means when we drop frames (like when the developer console is open, or #1284), it don't move by the expected amounts. It also means we accumulate floating point error and other nastiness.
We should store the mouse drag start position, and the positions of all the points. Then take the new absolute mouse position each frame, recalculate the offsets, and move the points to those locations.
A goal should be that, when the viewport is zoomed to 100% scale, if the user drags a point that has a clean integer position (no numbers after the decimal), dragging that point should make it end up at another position that's also a clean integer position.

Hello, I'm new and would like to contribute, but I'm still unclear on how to approach this one even though it seems simple.
Is it not enough to just convert  input.mouse.position into an absolute value when assigning the snapped_position?
https://github.com/GraphiteEditor/Graphite/blob/b9027883a8535abcaf15c51ce3491b8d36734cbb/editor/src/messages/tool/tool_messages/path_tool.rs#L397C6-L397C109

@TrueDoctor could you help answer this? I'm unfamiliar with how it's actually implemented. Thanks.

I actually don't think this is a good first issue because this requires pretty complex design work and is part of the document graph migration, I'll most likely start working on this soon (I expect 500-1000 loc of changes)

This is not an issue any more because we now rely on the input to the shape node rather than the previous node graph evaluation.


datatables search items not highlighted when data loaded by ajax.reload()

When datatables data is loaded with table.ajax.reload(),
search for items are not highlighted.
See fiddles below.

http://live.datatables.net/lovukesu/3/edit
Example with no highlight - table.ajax.reload(null, false);:
"ajax": {
"contentType": 'application/json; charset=utf-8',
"dataSrc": "",
"url": ""
},
var URL = "//jsonplaceholder.typicode.com/users";
table.ajax.url(URL);
table.ajax.reload(null, false);

http://live.datatables.net/lovukesu/1/edit
Example with highlight:
"ajax": {
"contentType": 'application/json; charset=utf-8',
"dataSrc": "",
"url": "//jsonplaceholder.typicode.com/users"
},

jquery v1.11.3
jquery.mark  v7.0.0
datatables.mark v 1.0.1
datatables v1.10.12

Hi @dave-k ,
Thanks for submitting!
This seems to be an issue with how you initialize DataTables. Normally, when you've initialized a DataTables instance correctly, an event init.dt.dth will be fired through the document. This is necessary for datatables.mark.js in order to work. As this event isn't fired in your first example, it won't highlight terms.
To fix this issue, you might re-read the documentation of DataTables. This seems to work: http://live.datatables.net/lovukesu/4/edit

The initialisation mostly looks okay - although a little unusual in two places:

No URL given in the initialisation for an Ajax data sourced table (presumably that's just for this test case)
If you call ajax.reload() immediately after the table's initialisation (but before the data has been loaded - like in the given example) Mark.js isn't highlight the row. I'm not sure if that is because an event isn't triggered by DataTables or something else. However, I would very much suggest that with an async table like this, the init.dt event is used like @julmot suggests, or use initComplete: http://live.datatables.net/lovukesu/5/edit .

In that example I've also added a button so you can trigger reloading of the table's data at any time and that appears to work okay.
There is a bug somewhere here, but it is being triggered by a use case that I would recommend avoiding away.

@DataTables

I'm not sure if that is because an event isn't triggered by DataTables or something else

The event $(document).on("init.dt.dth", fn); isn't fired in his first example.

There is a bug somewhere here

From my point of view this bug is on the DataTables side – as I expect the event to get fired. Can you confirm this?

Its not being triggered in the first example because an ajax.reload() is being triggered before the table's data has been loaded. That means that the first Ajax request DataTables sends out is being cancelled and "lost". That one happens to have the init complete callback on it, which thus never happens.
So yes, this is a bug in DataTables, which I've now taken a note of. However, as noted above, I would very much recommend not uses DataTables' API in this way. Wait for the initialisation to complete before then doing something with it.


Add a "Glossary of abbreviations" page to the dev guide

This PR adds a "Glossary of abbreviations" page to the "Getting started" section of the developer's guide. To create this glossary, I've skimmed the pages of the developer's guide and the names of public PyAnsys repositories. The intent is to grow this glossary page with abbreviations used in all PyAnsys libraries and then add a reference to this page in the guide in each PyAnsys library.
NOTE: In skimming the developer's guide, I did notice a lot of content that should be modified. I hope to do this in a future PR soon.

Feel free to merge whenever you want 😄


Geoid clarification in the notebooks

As most users will approach the software using the notebooks, it should here be specified which geoid is being used for the geoid correction (so that all users do not have to check which one is used in the bedmachine dataset). openjournals/joss-reviews#7149

Action We have clarified in the notebooks and supplementary datasets page that the EIGEN-C64 geoid is the one used by the (current) BedMachine datasets.
Hopefully the readthedocs website will update to reflect these updates in the next few hours.

thanks!


Face Alignment code is giving me weird result.

I am using the alignment code and although it fixes the rotation but there is lots of extra black padding on the image. Is this the expected outcome of the alignment operation?

yes，I have the same result before, I'll check it later this week~

@MirrorYuChen I did come with some solution. The aligner uses these values for 112x112 face size:
		{ 30.2946f + 8.0f, 51.6963f }, // left eye
		{ 65.5318f + 8.0f, 51.5014f }, // right eye
		{ 48.0252f + 8.0f, 71.7366f }, // nose tip
		{ 33.5493f + 8.0f, 92.3655f }, // left mouth corner
		{ 62.7299f + 8.0f, 92.2041f }  // right mouth corner

But as I am using MTCNN to detect the face box and keypoints, I looked at the face rect shape and size and then referenced below data
http://www.beginnersschool.com/2015/08/21/facial-proportions-and-sculpting-a-face/
and calculated to come up with new values that works with MTCNN better.
		{ 35.41f, 47.15f}, // left eye
		{ 78.23f, 47.15f}, // right eye
		{ 56.41f, 69.16f}, // nose tip
		{ 39.11f, 88.81f }, // left mouth corner
		{ 72.47f, 88.81f}  // right mouth corner

With these values the aligner works better and it does not distorts human face shape and size and aspect ratio etc.
But now I think all other models, e.g. arcface, mobilefacenet  etc., universally uses the above alignment values. And in next step, if one needs to use the above aligned face data with different models "effectively", one would need to retrain the models again. Not sure what would be drop in accuracy of models, if it is directly used with new aligned face data.

Not quick right! I think it should be aligned from source image, not the face, you can refer to my ncnn_example(!https://github.com/MirrorYuChen/ncnn_example) project. Than i need to change the interface of landmarker detecter.

I'll check this week,.

fixed, you can check the new code.

You didn't change much in the Aligner rather you tweaked the keypoint's position and adjusted it with the face's location. Am I right? Can you check what is aligned face output for profile face pics?

In fact， there's no error in aligner methold itself. I have changed nothing in face aligner. but the usage of the process. The bad result come from the error usage.

You can check the result of the new code.

what's reason? I think it's not a difficult problem, you can figure out according to the code. enjoy!


add convert_placeholders_to_constants to tensorflow

Add convert_placeholders_to_constants which permanently injects a constant to fill in the value of a Placeholder.
Repost from SO. /CC @mrry

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Update resources.md

Thank you for your contribution but as a rule of thumb I'd like to avoid linking to third party websites offering services or platforms that I have not used nor cannot endorse.


Usage from code behind

How do we return partial from the page model?

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

ID: d670c64c-4030-312c-4355-ee518a23a56a
Version Independent ID: c20d4db8-d403-9218-c39d-47e56c34e767
Content: Partial Views in ASP.NET Core
Content Source: aspnetcore/mvc/views/partial.md
Service: unspecified
Product: asp.net-core
GitHub Login: @ardalis
Microsoft Alias: riande

@iforlife  partials are not returned from action methods, they're invoked in views. If you want to see Razor Pages (RP) using a partial create a new RP web app with individual user accounts and look at the layout file. Bonus points if you use 2.1.

@iforlife  until we have time to update this document to include the new Tag Helper partial and feature Razor Pages, you might want to post that question on Stack Overflow. If you do, be sure to post the link here. Have you tried to partial tag helper?

Have you tried to partial tag helper?
What do you mean?

If you want to see Razor Pages (RP) using a partial create a new RP web app with individual user accounts and look at the layout file. Bonus points if you use 2.1.  My image above highlights two partial tag helpers.

@iforlife A link to the docs: Partial Tag Helper


The exact "+" sign would be decoded as a space

Hi all.
I got into this issue while submitting #3489 which involves the + sign. Idk why but the flutter team did use an exact + sign in the releases. And when I changed the checkver in order to support the + sign and tried to autoupdate it, then I got a stubborn error.
After some debugging... It turns out that the [System.Web.HttpUtility]::UrlDecode method in lib/autoupdate.ps1 line 175 unexpectedly ( yet reasonable ) decoded the + of the $basename variable to an empty space. Hence the jsonpath<EMAIL_ADDRESS>=~ /.*$basename/)].sha256 failed
Now that the cause of this issue is clear, may I ask if we could just replace all the + in the $basename part of the URL with a %2B before decoding it or provide a better approach to cope with similar situations?

Are there some more special characters that may lead people into this trap?
Will the replacing + with %2B harm the other logics?
Is there a possibility that some apps do use + to represent a space?

Any ideas?

See https://github.com/lukesampson/scoop/pull/3721


Created NetworkPeering resources have default atlasCidrBlock values even when a different value is set

What happened?
I've been having an issue with the atlasCidrBlock in a managed mongodbatlas.NetworkPeering resource using the Node version of pulumi-mongodbatlas. The option seems to have no effect and the created resource seems always to have the default value of <IP_ADDRESS>/21
Steps to reproduce
export const atlasPeer = new mongodbatlas.NetworkPeering('atlas-peer', {
  providerName: "AWS",
  awsAccountId: AWS_ACCOUNT_ID,
  vpcId: VPC_ID,
  projectId: ATLAS_PROJECT_ID,
  containerId: mongoCluster.containerId,
  accepterRegionName: AWS_REGION,
  routeTableCidrBlock: '<IP_ADDRESS>/16',
  atlasCidrBlock: '<IP_ADDRESS>/21',
});

Expected Behavior
For the created resource to have an atlasCidrBlock of <IP_ADDRESS>/21
Actual Behavior
The created resource has the default value of <IP_ADDRESS>/21
Of note, the stack output retains the desired value of <IP_ADDRESS>/21, even across pulumi refresh operations.
Versions used
CLI
Version      3.34.1
Go Version   go1.17.11
Go Compiler  gc
Plugins
NAME          VERSION
aws           4.38.1
docker        3.2.0
mongodbatlas  3.3.0
mysql         3.1.0
nodejs        unknown
random        4.8.0
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @wbk
I am sorry that this isn't more clear from our docs but it seems that the upstream provider stopped using atlasCidrBlock - there are no sets of examples now that use it. From our docs, I can see that the example to create network peering with AWS will need the use of a network_container as follows:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as mongodbatlas from "@pulumi/mongodbatlas";

// Container example provided but not always required,
// see network_container documentation for details.
const testNetworkContainer = new mongodbatlas.NetworkContainer("testNetworkContainer", {
    projectId: local.project_id,
    atlasCidrBlock: "<IP_ADDRESS>/21",
    providerName: "AWS",
    regionName: "US_EAST_1",
});
// Create the peering connection request
const testNetworkPeering = new mongodbatlas.NetworkPeering("testNetworkPeering", {
    accepterRegionName: "us-east-1",
    projectId: local.project_id,
    containerId: "507f1f77bcf86cd799439011",
    providerName: "AWS",
    routeTableCidrBlock: "<IP_ADDRESS>/24",
    vpcId: "vpc-abc123abc123",
    awsAccountId: "abc123abc123",
});
// the following assumes an AWS provider is configured
// Accept the peering connection request
const peer = new aws.ec2.VpcPeeringConnectionAccepter("peer", {
    vpcPeeringConnectionId: testNetworkPeering.connectionId,
    autoAccept: true,
});

I hope this helps - I will raise it with the upstream provider that this parameter should be removed now that it is *never* referenced in their code

Paul


Updating NeuVector Community Operator

Thanks submitting your Operator. Please check below list before you create your Pull Request.

Flat operator directory structure is obsolete from 23-rd of October 2019, only nested directory structure will be accepted.

New Submissions

[y ] Has you operator nested directory structure?
[ y] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?
[y ] Are you familiar with our contribution guidelines?
[x] Have you packaged and deployed your Operator for Operator Framework?

[y ] Is your submission signed?

Updates to existing Operators

[n ] Is your new CSV pointing to the previous version with the replaces property?
[y] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[y ] Have you tested an update to your Operator when deployed via OLM?
[y ] Is your submission signed?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Submit operators to both upstream-community-operators and community-operators at once
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[y ] Description about the managed Application and where to find more information
[y ] Features and capabilities of your Operator and how to use it
[y ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file a PR against this repo and explain your need
2 For more information see here

Hi May I know if anything pending from our side for merging Neuvector Community Operator.  Thanks.

Hi @selvamt94, sorry for a delay. It doesn't notify me if you push, I'm notified about new posts only.


WEBUMENIA-679 schedule sitemap creation

@igor-kamil are you OK with daily at midnight?

@phivk sure!

Sorry closed just by mistake.

@phivk please update also CHANGELOG before merge


For prototype pages, no content is included in index

I think what I'm seeing here is for any Prototype pages, the content attribute in the generated Json index is blank, implying document.content is blank for these pages when the index is generated
        {
          "id": "my-article",
          "title": "Title",
          "collection": {
            "label": "notes",
            "name": "Posts"
          },
          "categories": "notes",
          "tags": "",
          "url": "/my-article/",
          "content": ""
        },

Cool, I think I'll tighten that up then and document that we'll only be indexing individual resources going forward.


(CONT-930) - Roll out gh-changelog

This PR:

Replaces pdk release prep with gh-changelog
Generates release notes using gh-changelog get which can then be viewed on github

It's worth mentioning that for the time being there is no autoversioning, so modules will need to have a manual version value passed to the workflow run. (similar to the process already used for tooling)

example of module_release_prep working here

I wonder if it's time to standardise workflow naming across modules now?
For example:
auto_release => release_prep

I wonder if it's time to standardise workflow naming across modules now?
For example:
auto_release => release_prep

It would make more sense @chelnak, auto_release also didn't seem like the best name I thought 💯

module_release seen working:

Yay! 🎉


"Enable All Extensions" Require confirmation

I have, more than once, accidentally clicked the "Enable All Extensions" option, leading to an action that I could not reverse.
I would like to ask for a confirm dialog, for such an action that may have unwanted and hard-to-correct consequences.

/duplicate
https://github.com/microsoft/vscode/issues/108541

/duplicate
https://github.com/microsoft/vscode/issues/108541


Updating build.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

requirements: run: Jinja2<3.0,>=2.10.1 must contain a space between the name and the pin, i.e. Jinja2 <3.0,>=2.10.1

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Cow: Watch webodoctor.in

Cow requests the watch of the watch_keyword webodoctor\.in. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

webodoctor\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Mast in Charcoal HQ


Hash documentation update concerning scroll management.

Doc notes around scroll position management not being currently handled by react-router.
Closes #2605

Can you write that as:
Note: React Router currently does not manage scroll position, and will not scroll to the element corresponding to the hash. Scroll position management utilities are available in the scroll-behavior library.

@taion Now I understand your comment in the issue about scroll-behavior.  Will do.

Cool - can you squash the commits?

@taion Sure thing... done

Thanks!


Latest WinGet 1.6

Testing adding App Installer to community repository.
This should work for winget upgrade winget and winget upgrade --all
No dependencies are included since WinGet already has the dependencies if it's installed.
There is NO intention to support preview versions of WinGet.
This should work for winget upgrade winget and winget upgrade --all
Downgrading via this manifest is not supported.

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

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

Microsoft Reviewers: Open in CodeFlow

This looks like it could break winget upgrade --all if this package isn't the last one to be updated.


TSVGIconImage: Tip ImageIndex on object inspector

Hello,
on ImageIndex on object inspector give the possibility to see the preview of imageList in an ImageComboBox
best regards

Added now, please give me a feed-back...

Thanks, it work fine


eat too much cpu on 3.0.5

Parse blew markdown, 3.0.5 use 0m20.459s, and 3.0.4 use 0m2.981s
[@addyosmani](https://github.com/addyosmani),
[@borismus](https://github.com/borismus),
[@carsonmcdonald](https://github.com/carsonmcdonald),
[@chriseppstein](https://github.com/chriseppstein),
[@danwrong](https://github.com/danwrong),
[@davidmaxwaterman](https://github.com/davidmaxwaterman),
[@desandro](https://github.com/desandro),
[@hemanth](https://github.com/hemanth),
[@isaacs](https://github.com/isaacs),
[@josh](https://github.com/josh),
[@jrburke](https://github.com/jrburke),
[@marcelombc](https://github.com/marcelombc),
[@marcooliveira](https://github.com/marcooliveira),
[@mklabs](https://github.com/mklabs),
[@MrDHat](https://github.com/MrDHat),
[@necolas](https://github.com/necolas),
[@paulirish](https://github.com/paulirish),
[@richo](https://github.com/richo),
[@rvagg](https://github.com/rvagg),
[@sindresorhus](https://github.com/sindresorhus),
[@SlexAxton](https://github.com/SlexAxton),
[@sstephenson](https://github.com/sstephenson),
[@svnlto](https://github.com/svnlto),
[@tomdale](https://github.com/tomdale),
[@uzquiano](https://github.com/uzquiano),

repeat codes:
var MarkdownIt = require('markdown-it');

    var md = new MarkdownIt({
      html: true,
      linkify: true,
    });
    var readme = fs.readFileSync(path.join(fixtures, 'eat-cpu.md'), 'utf8');
    md.render(readme);

/cc @puzrin this is rush!

Problem is in this line change https://github.com/markdown-it/markdown-it/commit/8ca0b5b52b666847c972bf17cbd1df1710fd6689#diff-f4f9b75e4799aa5566d488b8f480de40L37
Change looks correct, but i don't see any broken tests on revert. Also, we should what happens with recursion on real references, because list can be long.
/cc @rlidwka , take a look please. I don't see check for ]:

https://github.com/markdown-it/markdown-it/blob/master/lib/parser_block.js#L18
[reference] seems to be a mistake. After playing with official dingus & digging spec, i didn't found a way to do such interrupt. This rule cause heavy recursion, trashing everything.
@fengmk2 if you can't wait at all - remove nested array from that line. Will publish fix a bit later, when @rlidwka appears online.

Fixed in refs branch.
It was an optimization attempt gone south. If we have a long list of references (like https://github.com/markdown-it/markdown-it/commit/533b5c89f40b7d8fa4ce6edc8e0a7550f25de90b), this parser would call getLines for each reference until the end of the paragraph. So first call would be getLines(1, 50), second call would be getLines(2, 50), etc. So I thought, it would be nice to optimize it a bit. It didn't go so well.
Anyway, the immediate solution would be to remove references from there.
And we have a benchmark that performs 3x times slower than CommonMark (in theory, their parser is linear on that input, and ours isn't), but it might be left for future discussions.

I use 3.0.4 right now.

Fixed in published 3.0.6

cool! Thanks @puzrin @rlidwka


enhancement: non-color coded clues about the meaning of various counters

Currently, the various counters associated to each card in play (number of duplicates, modified strength, etc.) are distinguishable only based on the color of the counter box (red, green, blue, etc.).
That's suboptimal in terms of accessibility (e.g., various forms of color blindness), but also makes it harder for throneteki newcomers to figure out what's going on.
It would be nice to have additional, non-color-coded clues about the meaning of the various counters. A simply possibility would be a hover tooltip on the counter boxes.
Alternatively, one might add a color-legend somewhere, but that will have at least two drawbacks: a) won't help with accessibility, b) it will consume screen estate.
With many thanks for Throneteki, it's an awesome project!

I haven't forgotten about this, I'm just not overly sure how to do it, quite yet


New image processing data sets

SUN database -  Images covering a large variety of environmental scenes and places.
10k US Adult Faces Database -  Natural face photographs
International Affective Picture System - Color photographs
Affective Image Classification - Abstract paintings and artistic photographies
Massive Visual Memory Stimuli - Objects and scenes

Thanks for your prompt efforts! Updated


Improved buffer / filler handling

At the moment, buffer is treated as a special addition to mixes, not as a component.
I think it would make more sense to have a buffer / fill action, which would fill any remaining quantity with the component in that action.  An experiment could have a default fill action to add to mixes.
This would allow handling of situations where the filling component changes: for example, if someone is storing their DNA in water without buffer, and then adds buffer at some point in mixing, then wants to preserve that buffer in later stages, even if potentially adding in some other things that are in water without buffer.

for example, if someone is storing their DNA in water without buffer, and then adds buffer at some point in mixing

The way I handle this currently is to set buffer_name to "water", and then my 10x buffer is just another component.


Pycharm Connect Remote Server | Maylon Xu

https://country-if.github.io/posts/Pycharm_Remote_Server/
Pycharm Connect Remote Server

cnm

Brother is good！


Overhaul documentation and add contributing guide

This makes major updates to our documentation to add more information for contributors, and to make it easier to parse.

Adds a GitHub action that is dedicated to publishing to PyPI rather than being nested in tests.yml
Documents how to make a release
Adds a dedicated contributing and usage guide: closes #85
Adds a changelog
Makes a few other quality of life improvements here and there

I'll get the tests passing, but wanted to get this up to confirm that @blink1073 and @minrk think this would be a useful addition to help others get started!

Interesting we haven't been building PRs even though it is checked on. I just cycled the check and also reopened this PR, let's see if that worked.
Will respond to comments tomorrow!

OK I made a few updates to the instructions here to make it easier to follow, thanks for the comments everybody!
I think this is good to go unless others would like to see more changes

Sorry that pre commit keeps breaking - the install fails on my machine right now because of a word glibc error

OK got the tests passing :-)  I think this one is good to go from my end

Just realized we never actually merged this. @minrk in the future you should feel free to just merge rather than only hitting "approve"! :-)


Can't generate a node with child nodes of same name

Hi,
The library is great and very easy to use. I have a question: we need to generate a xml with a files node that contains a list of 'file' child nodes like the following:
<files>
<file>file1.txt</file>
<file>fle2.txt</file>
<file>file3.txt</file>
</files>
Since we can't duplicate keys in an array, how can I create the "files" node?
Your help would be greatly appreciated!

Hi, and thanks for the input.
So what we would like to do is
['files' => [
    'file' => 'file1.txt',
    'file' => 'file2.txt',
    'file' => 'file3.txt'
    ]
]

...but a PHP array can't do that.
I don't have an answer handy. Maybe we could look at the Symfony JSON response to see if this kind of thing has been handled. I'm open to suggestions.

Hi Michal,
Thank you very much for your quick response! I will take a look. Please share with me if you come up with a solution.
Just let you know that other than that, your library works very well and we really appreciate that.
From: Michal Carson <notifications<EMAIL_ADDRESS>Reply-To: michalcarson/SymfonyXmlResponse <reply<EMAIL_ADDRESS>Date: Wednesday, December 9, 2015 at 10:20 AM
To: michalcarson/SymfonyXmlResponse <SymfonyXmlResponse<EMAIL_ADDRESS>Cc: Tao Wang <Tao.Wang<EMAIL_ADDRESS>Subject: Re: [SymfonyXmlResponse] Can't generate a node with child nodes of same name (#1)
Hi, and thanks for the input.
So what we would like to do is
['files' => [
'file' => 'file1.txt',
'file' => 'file2.txt',
'file' => 'file3.txt'
]
]
...but a PHP array can't do that.
I don't have an answer handy. Maybe we could look at the Symfony JSON response to see if this kind of thing has been handled. I'm open to suggestions.

Reply to this email directly or view it on GitHubhttps://github.com/michalcarson/SymfonyXmlResponse/issues/1#issuecomment-163287525.

JsonResponse doesn't handle this because you can't have multiple "nodes" with the same name.
Is there anything in symfony/serializer that would help? It looks like we could change this to accept an object and a normalizer for the object in the constructor, and then rely on that to actually generate the XML.

And another thought - if we had a response class that accepted any Symfony\Component\Serializer\Encoder\EncoderInterface, wouldn't that work for XML, JSON, or any other serializable format? But like the project page says, I'm surprised I'm not finding something for this already.

I think I have a solution. Let me know if this works for you.
First, I have tagged the current master with 1.0.0 so there is a real release and these new changes don't mess that up.
Then I have given the main XmlResponse class the ability to accept decorators that will run against the content before it is sent. I have created an XmlRepeater class as a decorator.
You can create as many XmlRepeater instances as you need and add them to the response. Each of them takes a placeholder, an element name and an array of data. The class will turn the array into XML, wrap it in an element with the given name and insert it into the XmlResponse result in place of the placeholder.
See the examples/repeater.php for a full code but here's the short version:
$data = ['files' => '@placeholder@'];
$files = [
    ['name' => 'file1.txt'],
    ['name' => 'file2.txt']
];
$repeater = new XmlRepeater('@placeholder@', 'file', $files);
$xr = new XmlResponse($data);
$xr->addDecorator($repeater);
$xr->send();

We tried to use XmlResponse for creating XML. Since We have switched to use DOMDocument instead, we may not have time to try your code, but your solution looks good to me.
Thanks!
From: Michal Carson <notifications<EMAIL_ADDRESS>Reply-To: michalcarson/SymfonyXmlResponse <reply<EMAIL_ADDRESS>Date: Saturday, December 12, 2015 at 11:46 PM
To: michalcarson/SymfonyXmlResponse <SymfonyXmlResponse<EMAIL_ADDRESS>Cc: Tao Wang <Tao.Wang<EMAIL_ADDRESS>Subject: Re: [SymfonyXmlResponse] Can't generate a node with child nodes of same name (#1)
I think I have a solution. Let me know if this works for you.
First, I have tagged the current master with 1.0.0 so there is a real release and these new changes don't mess that up.
Then I have given the main XmlResponse class the ability to accept decorators that will run against the content before it is sent. I have created an XmlRepeater class as a decorator.
You can create as many XmlRepeater instances as you need and add them to the response. Each of them takes a placeholder, an element name and an array of data. The class will turn the array into XML, wrap it in an element with the given name and insert it into the XmlResponse result in place of the placeholder.
See the examples/repeater.php for a full code but here's the short version:
$data = ['files' => '@placeholder@'];
$files = [
['name' => 'file1.txt'],
['name' => 'file2.txt']
];
$repeater = new XmlRepeater('@placeholder@', 'file', $files);
$xr = new XmlResponse($data);
$xr->addDecorator($repeater);
$xr->send();

Reply to this email directly or view it on GitHubhttps://github.com/michalcarson/SymfonyXmlResponse/issues/1#issuecomment-164223222.

No problem. It was an interesting "code kata" for me.


Fix: Rename the First Document Name in Grid View (Medium) Cause Anoth…

…er Files to shift

Resolved / Related Issues
Items resolved / related issues by this PR.

Closes #issue...
Related https://github.com/files-community/Files/issues/5667

Details of Changes
Add details of changes here.
Visibility=Collapse won't reserve the space of the control which causes that issue. So set Opacity rather than Visibility property.
Validation
How did you test these changes?

[x] Built and ran the app

Screenshots (optional)
Add screenshots here.

Same fix is already included in #5674 ;)

@xwnb thank you for opening this pull request, I'm going to close this since it's already included in #5674.

Thanks. As a newcomer, a question, how do I get involved in the issue fix? :smirk:


Method should return Model A but returns Model B - error if query uses "withTrashed"

Larastan Version: 0.6.13
--level used: 6

Description
If we use the static method "withTrashed" of the SoftDeletes trait in a Eloquent query, Phpstan throws an error because according to Phpstan the returning model class doesn't match the return type.

Method App\Users\Customers\Repositories\EloquentCustomerRepository::findByRecommendationCode()
should return App\Users\Customers\Customer
but returns App\Portfolio\Portfolio

Both model classes are using the SoftDeletes trait.
If we use "::query()" instead, the error doesn't get thrown.
Laravel code where the issue was found
    use SoftDeletes;

    public function findByRecommendationCode(string $code): Customer
    {
        return Customer::withTrashed()->where('recommendation_code', $code)->firstOrFail();
    }

Thank you.
Could you tell us your Larastan version and level?

Sorry forgot that. I updated my initial comment.

Hi,
Can you share the whole file where the error comes from? I don't know why would it think the return type is Portfolio

Can't reproduce this issue with the code you've provided.


#135 test commit with no issue number

Pull request questions
Which issue does this address
Issue number: #nnn
Why was change needed
???
What does change improve
???

Closing as issue numbers in titles do not have an effect on linking.


Support multiple tags being passed with img build

Support multi-tagging with img build per #150

Sample of passing multiple tags to img build:
$ $GOPATH/bin/img build -t tag-test1 -t tag-test2:v1 -t tag-test-3 .
Building docker.io/library/tag-test1:latest
Setting up the rootfs... this may take a bit.
[+] Building 0.1s (3/3) FINISHED
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 31B                                                                                0.0s
 => exporting to image                                                                                0.0s
 => => exporting layers                                                                                0.0s
 => => exporting manifest sha256:a4041598cb334293bc21d9c8fd43154ad63e8326260012356b10b6920804f703                                                        0.0s
 => => exporting config sha256:2012639ed7fac4c4052fd1e8d934521418f0f31b7a4f931910678e6c0a3a354d                                                          0.0s
 => => naming to docker.io/library/tag-test1:latest                                                                                0.0s
 => => naming to docker.io/library/tag-test2:v1                                                                                0.0s
 => => naming to docker.io/library/tag-test-3:latest                                                                                0.0s
Successfully built docker.io/library/tag-test1:latest

$ img ls
NAME					SIZE	CREATED AT	UPDATED AT	DIGEST
docker.io/library/tag-test-3:latest	677B	10 minutes ago	10 minutes ago	sha256:a4041598cb334293bc21d9c8fd43154ad63e8326260012356b10b6920804f703
docker.io/library/tag-test1:latest	677B	10 minutes ago	10 minutes ago	sha256:a4041598cb334293bc21d9c8fd43154ad63e8326260012356b10b6920804f703
docker.io/library/tag-test2:v1		677B	10 minutes ago	10 minutes ago	sha256:a4041598cb334293bc21d9c8fd43154ad63e8326260012356b10b6920804f703

I just had the two printf statements show the first tag from the list, but can change it to be whatever you think is best.  Buildkit already has a line for each tag in the output though.

oh this is awesome thanks!