Need help getting AzureKeyVaultProvider to work with MSI

I've spent about 8 hours reading docs and trying to read encrypted data!
Please see https://stackoverflow.com/q/65245840/2896495.

I don't think this library claims to support .net 5 yet.

@alvipeo As @ErikEJ mentioned we are yet to claim full support for .NET 5. Have you tested your code with netcoareapp 3.1?

Hi @alvipeo ,
I find that you have created the same issue in multiple places. Please see my reply here:
https://github.com/MicrosoftDocs/sql-docs/issues/5799#issuecomment-743659934
And have you tested it with netcoreapp 3.1? Does it work with your application?
Thanks,

I'm downgrading to 3.1 tomorrow. Let's see if it works.

@alvipeo
I've tested the same with .NET 5.0 and do not see any issues.
Please find working example here: sqlclient-akv-example

@cheenamalhotra Thank you! I will try it very soon!

ok, the problem is still there. Your code uses Service Principal, not the MSI.
I have the following code to register encryption key store provider:
                SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider = new(AzureActiveDirectoryAuthenticationCallback);

                // Register AKV provider
                SqlConnection.RegisterColumnEncryptionKeyStoreProviders(
                    new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>(1, StringComparer.OrdinalIgnoreCase)
                    {
                        {SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, sqlColumnEncryptionAzureKeyVaultProvider}
                    });

and here's the AzureActiveDirectoryAuthenticationCallback:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");
        }

The connection string has Authentication=Active Directory MSI in place.
With all of this I get the error:

No UserAssigned Managed Identity found for specified ClientId/ResourceId/PrincipalId

ok, the problem is still there. Your code uses Service Principal, not the MSI.
I have the following code to register encryption key store provider:
                SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider = new(AzureActiveDirectoryAuthenticationCallback);

                // Register AKV provider
                SqlConnection.RegisterColumnEncryptionKeyStoreProviders(
                    new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>(1, StringComparer.OrdinalIgnoreCase)
                    {
                        {SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, sqlColumnEncryptionAzureKeyVaultProvider}
                    });

and here's the AzureActiveDirectoryAuthenticationCallback:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");
        }

The connection string has Authentication=Active Directory MSI in place.
With all of this I get the error:

No UserAssigned Managed Identity found for specified ClientId/ResourceId/PrincipalId

ok, putting Authentication=Active Directory MSI was a mistake. It's used when it's user-defined identity.
Without this all queries to db work except when encrypted fields are used.
With encrypted fields I get:

Failed to decrypt a column encryption key using key store provider: 'AZURE_KEY_VAULT'. Verify the properties of the column encryption key and its column master key in your database. The last 10 bytes of the encrypted column encryption key are: '....'

ok, putting Authentication=Active Directory MSI was a mistake. It's used when it's user-defined identity.
Without this all queries to db work except when encrypted fields are used.
With encrypted fields I get:

Failed to decrypt a column encryption key using key store provider: 'AZURE_KEY_VAULT'. Verify the properties of the column encryption key and its column master key in your database. The last 10 bytes of the encrypted column encryption key are: '....'

Using Authentication=Active Directory Managed Identity; in connection string brings the error:

No UserAssigned Managed Identity found for specified ClientId/ResourceId/PrincipalId.

What else should I try? I'm running out of ideas :(

Using Authentication=Active Directory Managed Identity; in connection string brings the error:

No UserAssigned Managed Identity found for specified ClientId/ResourceId/PrincipalId.

What else should I try? I'm running out of ideas :(

If I use the following code:
sqlConn.AccessToken = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");

with Authentication=Active Directory MSI in the connection string, I get:

Failed to load Campaigns Cannot set the AccessToken property if 'Authentication' has been specified in the connection string.

The only other idea I have is to use Service Principal which is my only hope but this makes MSI useless.

If I use the following code:
sqlConn.AccessToken = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");

with Authentication=Active Directory MSI in the connection string, I get:

Failed to load Campaigns Cannot set the AccessToken property if 'Authentication' has been specified in the connection string.

The only other idea I have is to use Service Principal which is my only hope but this makes MSI useless.

Hi @alvipeo
The connection string property: "Authentication=Active Directory MSI" or "Authentication=Active Directory Managed Identity" are same (synonyms) and they apply to SqlConnection instance to connect to SQL Server.
Could you please try with v2.1.1 as a recent patch was released to fix empty User Id being passed that led to those errors.

Hi @alvipeo
The connection string property: "Authentication=Active Directory MSI" or "Authentication=Active Directory Managed Identity" are same (synonyms) and they apply to SqlConnection instance to connect to SQL Server.
Could you please try with v2.1.1 as a recent patch was released to fix empty User Id being passed that led to those errors.

I updated to 2.1.1 and removed this line:
sqlConn.AccessToken = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");

Now the error related to MSI auth with sql azure is gone but the problem with encrypted data access is still there.

I updated to 2.1.1 and removed this line:
sqlConn.AccessToken = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");

Now the error related to MSI auth with sql azure is gone but the problem with encrypted data access is still there.

Did you enable encryption by setting Column Encrypted Setting=Enabled property in connection string?
You'll find that in in-line comments in samples and documentation.

Did you enable encryption by setting Column Encrypted Setting=Enabled property in connection string?
You'll find that in in-line comments in samples and documentation.

Yes, I did.
One thing I noticed that my App Service is Linux and I don't see .NET Core 5.0 setting in the configuration. But the app works, all other pages that do not require encrypted data work.

Yes, I did.
One thing I noticed that my App Service is Linux and I don't see .NET Core 5.0 setting in the configuration. But the app works, all other pages that do not require encrypted data work.

Here it is:
Server=tcp:myserver.database.windows.net,1433;Database=mydb;Authentication=Active Directory Managed Identity;Column Encryption Setting=Enabled;

Here it is:
Server=tcp:myserver.database.windows.net,1433;Database=mydb;Authentication=Active Directory Managed Identity;Column Encryption Setting=Enabled;

I see your resource ID might be wrong to authenticate to Azure Key Vault:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");
        }

Please change your callback to under and try again:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://vault.azure.net/");
        }

Link to Microsoft Docs for Resource IDs
You must note that this callback only applies to Azure Key Vault authentication which is separate from Azure Database authentication that's handled by SqlConnection class.

I see your resource ID might be wrong to authenticate to Azure Key Vault:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");
        }

Please change your callback to under and try again:
        private static async Task<string> AzureActiveDirectoryAuthenticationCallback(string authority, string resource, string scope)
        {
            return await new AzureServiceTokenProvider().GetAccessTokenAsync("https://vault.azure.net/");
        }

Link to Microsoft Docs for Resource IDs
You must note that this callback only applies to Azure Key Vault authentication which is separate from Azure Database authentication that's handled by SqlConnection class.

I just tried - same error:

Failed to decrypt a column encryption key using key store provider: 'AZURE_KEY_VAULT'. Verify the properties of the column encryption key and its column master key in your database. The last 10 bytes of the encrypted column encryption key are: '....'

I just tried - same error:

Failed to decrypt a column encryption key using key store provider: 'AZURE_KEY_VAULT'. Verify the properties of the column encryption key and its column master key in your database. The last 10 bytes of the encrypted column encryption key are: '....'

Can you confirm SSMS works for you using the same Key Vault URL and encrypting/decrypting same data to validate Keys have required permissions? Connect with SSMS - Azure Key Vault
If not, please verify all permissions are granted as mentioned above on same documentation.
@Xtrimmer do you have additional thoughts about when AKV Provider would fail with above error?

Can you confirm SSMS works for you using the same Key Vault URL and encrypting/decrypting same data to validate Keys have required permissions? Connect with SSMS - Azure Key Vault
If not, please verify all permissions are granted as mentioned above on same documentation.
@Xtrimmer do you have additional thoughts about when AKV Provider would fail with above error?

Yes, SSMS works without any problem.
I'll try to use Service Principal. That's the only idea I have.

Yes, SSMS works without any problem.
I'll try to use Service Principal. That's the only idea I have.

Hi @alvipeo
SSMS doesn't use Managed Identity to authenticate, you're probably using your own credentials to login to Key Vault, which have access.
Please follow steps as shown here to provide access to App Service/VM where "Identity" is enabled and add a role assignment to be able to access Key Vault: Assign Role
Azure Key Vaults access policy should be set so that your Environment can access the vault's secrets (in this case, the Always Encrypted keys). The create, get, list, sign, verify, wrapKey, and unwrapKey permissions are required for creating a new column master key and for setting up encryption with SQL Server.

ok, trying to fix this again. No luck so far. All required permissions are granted for AppService.
I've done this before and had no problems. But this was about a year ago, so something has changed.
Let me work on this today and see if I can fix this.

ok, trying to fix this again. No luck so far. All required permissions are granted for AppService.
I've done this before and had no problems. But this was about a year ago, so something has changed.
Let me work on this today and see if I can fix this.

btw, my key vault uses Vault access police, so those RBAC assignments are not relevant.

btw, my key vault uses Vault access police, so those RBAC assignments are not relevant.

removing MSI and setting it up again did not help either :(

removing MSI and setting it up again did not help either :(

I create completely new App Service in another region - .NET Core 5, MSI enabled, created policy for key vault (get, list, sign, wrap, unwrap, verify) and ... same error!
Let me try now with SP... gr...!

I create completely new App Service in another region - .NET Core 5, MSI enabled, created policy for key vault (get, list, sign, wrap, unwrap, verify) and ... same error!
Let me try now with SP... gr...!

And VOILA! It perfectly works with Service Principal!
Guys, you DEFINITELY have NOT created any apps to test your code with Always Encrypted and MSI! Please do this!

And VOILA! It perfectly works with Service Principal!
Guys, you DEFINITELY have NOT created any apps to test your code with Always Encrypted and MSI! Please do this!

Hi @alvipeo
I've updated my example to also demo fetching access token from Managed Identity, and it works seamlessly.
Please find code here: https://github.com/cheenamalhotra/sqlclient-akv-example
Please follow steps from this tutorial to define "Access Policies", for both your Identity as well as Client VM/App Service/Function: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-nonaad
Output is as under:

Hi @alvipeo
I've updated my example to also demo fetching access token from Managed Identity, and it works seamlessly.
Please find code here: https://github.com/cheenamalhotra/sqlclient-akv-example
Please follow steps from this tutorial to define "Access Policies", for both your Identity as well as Client VM/App Service/Function: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-nonaad
Output is as under:

oh, that's new:
public static async Task<string> KeyVaultAuthenticationCallback(string authority, string resource, string scope)
        {
            return await Task.Run(() => new ManagedIdentityCredential().GetToken(new TokenRequestContext(new string [] {"https://vault.azure.net/.default"})).Token);
            /********************** Alternatively, to use User Assigned Managed Identity *********************/
            // var clientId = {clientId_of_UserAssigned_Identity};
            // return await Task.Run(() => new ManagedIdentityCredential(clientId).GetToken(new TokenRequestContext(new string [] {"https://vault.azure.net/.default"})).Token);
        }

This is the very first time I see TokenRequestContext ! Please update the docs for .Net 5 and KV access.
Thank you! I'll give it a go very soon!

oh, that's new:
public static async Task<string> KeyVaultAuthenticationCallback(string authority, string resource, string scope)
        {
            return await Task.Run(() => new ManagedIdentityCredential().GetToken(new TokenRequestContext(new string [] {"https://vault.azure.net/.default"})).Token);
            /********************** Alternatively, to use User Assigned Managed Identity *********************/
            // var clientId = {clientId_of_UserAssigned_Identity};
            // return await Task.Run(() => new ManagedIdentityCredential(clientId).GetToken(new TokenRequestContext(new string [] {"https://vault.azure.net/.default"})).Token);
        }

This is the very first time I see TokenRequestContext ! Please update the docs for .Net 5 and KV access.
Thank you! I'll give it a go very soon!

This is not special case for .NET 5 as same test is compatible with .NET Core 3.1 and .NET Framework 4.8.
There are a few Azure libraries available that can be used to acquire Access token, so it's just a matter of which library you want to use.
Using Azure.Identity to acquire Access Token is just another way to do it, you can the same with various other mechanisms: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token
And this callback allows not just use of Managed Identity but any Token Credential implementation that can authenticate Key Vault can be used in callback (e.g. InteractiveTokenCredential, DefaultAzureCredential are more examples of what also work here).
How customers use and implement this Key Vault Authentication Callback is a customer decision and therefore does not need specific documentation.

This is not special case for .NET 5 as same test is compatible with .NET Core 3.1 and .NET Framework 4.8.
There are a few Azure libraries available that can be used to acquire Access token, so it's just a matter of which library you want to use.
Using Azure.Identity to acquire Access Token is just another way to do it, you can the same with various other mechanisms: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token
And this callback allows not just use of Managed Identity but any Token Credential implementation that can authenticate Key Vault can be used in callback (e.g. InteractiveTokenCredential, DefaultAzureCredential are more examples of what also work here).
How customers use and implement this Key Vault Authentication Callback is a customer decision and therefore does not need specific documentation.

Closing as solution provided.

Hi, I am trying to acquire access token in my local setup using
           return await Task.Run(() => new ManagedIdentityCredential().GetToken(new TokenRequestContext(new string [] {"https://vault.azure.net/.default"})).Token);
But it is giving me the error
ManagedIdentityCredential authentication unavailable. No Managed Identity endpoint found.
From what I read, the code snippet above only works for deployed app service and not when running locally.
Can someone help me with reading encrypted Columns value via using developer context in visual studio locally ?


Fix build

Resolves
#1409
Proposed Changes
It sorts the filenames generated by glob.glob for a deterministic build—the order is platform-dependent and not guaranteed to be sorted.
Also, it attempts to correctly create namespaces and dependencies in blocks_vertical/procedures.js.
Reason for Changes
@StephenPCG's investigation determined that these issues result in failed CI builds.
Test Coverage
I haven't added test coverage, but I'm happy to do try with some help and guidance.

LGTM! Thank you!


How to get the backoff-id from LG graph ?

I want to use LM-GRAM fromhttps://github.com/k2-fsa/icefall/blob/b293db4baf1606cfe95066cf28ffde56173a7ddb/icefall/ngram_lm.py#L27
But don't know how to get backoff-id when building LG graph.
L: Subword.
G: n-Gram Model.
Build from https://github.com/k2-fsa/icefall/blob/master/egs/librispeech/ASR/local/prepare_lang_bpe.py & https://github.com/k2-fsa/icefall/blob/master/egs/librispeech/ASR/local/compile_lg.py

I assume you are rerferring to the G graph, right?
The backoff ID is the ID of #0.
If your G is a token-level G, then #0 should come from tokens.txt.
If your G is a word-level G, then #0 is from words.txt.

@csukuangfj  Thank you for supper quick reply. I used the LG gram with L build from subword and G is n-gram model. I follow with 3 step:

Get N-gram Graph with generate-lm.sh.
Get L graph with file  https://github.com/k2-fsa/icefall/blob/master/egs/librispeech/ASR/local/prepare_lang_bpe.py
Compile L and G
So in L I have a #0 is 1024 and in G I have a #0 is 5741. I confused what the right value for backoff-id for NGram(LG-graph).
Thanks

By the way, we only use the argument --backoff-id for G used in shallow fusion.
What is the use of backoff ID for an LG graph?


BZip2.Compress Never Finishes

Steps to reproduce

Load the provided file (this is the pixel data from a PNG image, original provided)
Load the byte data through a memory stream into BZip2.Compress function

Code Sample:
byte[] blob_data;
using (FileStream fs = new FileStream("../../_GameMeshTri1_color.blob", FileMode.Open))
{
    blob_data = new byte[fs.Length];
    fs.Read(blob_data, 0, (int)fs.Length);
}
Console.Write($"Input size {SizeSuffix(blob_data.Length)}");

byte[] storage_data;
using (MemoryStream sourceStream = new MemoryStream(blob_data))
using (MemoryStream compressStream = new MemoryStream())
{
    BZip2.Compress(sourceStream, compressStream, true, 4096);
    storage_data = compressStream.ToArray();
}
Console.Write($"Compressed size {SizeSuffix(storage_data.Length)}");

Repo with project: https://github.com/HaydnTrigg/SharpZipLibProblem
_GameMeshTri1_color.blob: _GameMeshTri1_color.blob
_GameMeshTri1_color.png: _GameMeshTri1_color.png
Expected behaviour
BZip2 should compress the file into the output stream "compressStream"
Actual behaviour
BZip2.Compress function never returns
The code has been tested with other generated binary data, this just suddenly caused a hang with this specific bit map data.
Version of SharpZipLib
v1.0.0-alpha2 from NuGet
Obtained from (place an x between the brackets for all that apply)

[ ] Compiled from source
branch: _______
commit: _______
[ ] Downloaded DLL from GitHub
[ ] Downloaded DLL from SourceForge
[ ] Downloaded DLL from _______
[ ] DLL included as part of
Package installed using:
[x] NuGet
[ ] MyGet
[ ] Chocolatey

You should probably not use a block size of ~400MB

BZip2.Compress(sourceStream, compressStream, true, 4096);

Giving a block size above 9 should probably throw an exception though.
With a block size of 1 it still takes ~15 min to compress your sample file, which is pretty terrible, I'd probably suggest compressing using an external process like 7z as it's way more performant:
> ptime 7z a -tbzip2  _GameMeshTri1_color.blob-7zr.bz2 _GameMeshTri1_color.blob -mx=9
7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04

Scanning the drive:
1 file, 67108900 bytes (65 MiB)

Creating archive: _GameMeshTri1_color.blob-7zr.bz2

Items to compress: 1

Files read from disk: 1
Archive size: 731848 bytes (715 KiB)
Everything is Ok

Execution time: 20.579 s

I am currently working on replacing the BZip-code (https://github.com/piksel/SharpZipLib/tree/jbzip2) and using that branch it compresses your blob in about 12s on the same machine.
It actually passes the tests, but it is not ready for production yet:

I am unable to reproduce this error with any other files, however, its just specifically that file that causes this error. It's interesting to note that in BZip2OutputStream the block size should be within 1-9 range anyway just in case an invalid input is put in.
`if (blockSize > 9) {
blockSize = 9;
}
if (blockSize < 1) {
blockSize = 1;
}`

Yes, the blockSize was just a red herring.
I just wanted a working sample to use as a comparison when debugging the code.


beast/config.hpp pass

<beast/config.hpp> needs to be at the top of every public header

This got done


feat(dbm-services): 追加部署中控tdbctl

关联研发信息
dev_branch: feat/append_deploy_tdbctl/#1721
target_branch: v1.2.0


Dependency cradle seems unused

https://github.com/casey/just/blob/4b5dd245fa040377312eb65c1312a980c0634a91/tests/lib.rs#L8
This is the only occurrence of the word "cradle" in a .rs source file. The Input trait has no other occurrence, either.

Ah, it's actually implemented in a clever way and used in e.g.
https://github.com/casey/just/blob/4b5dd245fa040377312eb65c1312a980c0634a91/tests/choose.rs#L171
Apologies.


Special Char (&) in Object name makes DocComments.xml invalid

1. Describe the bug
Having an Special Char like & in Object Name leads to an invalid DocComments.xml file and will hide inline documentation in intelisense.
2. To Reproduce
Steps to reproduce the behavior:
Create an Object with Special Char and try intelisense
codeunit 50100 "PTE A&B"
{
    /// <summary>
    /// Any Documentation
    /// </summary>
    procedure DoSomething()
    begin
    end;
}

You can also unpack the compiled app and throw the generated DocComments.xml in an validator. That will fail.
Generated DocXomments.xml:
<?xml version="1.0"?>
<doc>
    <application>
        <id>e06618b0-cd4f-4a98-a1ea-05327c708fe0</id>
        <name>TechDocTestApp</name>
        <publisher>Default publisher</publisher>
        <version><IP_ADDRESS></version>
    </application>
    <members>
        <member name="M:Codeunit::PTE A&B.DoSomething">
            <summary>
            Any Documentation
            </summary>
        </member>
    </members>
</doc>

Try validation at https://www.xmlvalidation.com/

3. Expected behavior
Special Chars should be encoded or something
4. Actual behavior
Intelisense do not show inline doc:
With Special Char:

Without Special Char:

5. Versions:

AL Language:
Visual Studio Code:
Business Central:
List of Visual Studio Code extensions that you have installed:

Final Checklist
Please remember to do the following:

[x] Search the issue repository to ensure you are reporting a new issue

[x] Reproduce the issue after disabling all extensions except the AL Language extension

[x] Simplify your code around the issue to better isolate the problem

The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 23.0.10536.0 and VS Code Extension Version 12.0.788495.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://freddysblog.com/2020/06/25/working-with-artifacts/


Setup statics file in server

In CherryPy there is a configuration for statics file such as CSS, JS and imgs.

Static files can be stored in ./static/ directory.
@smadha please edit or add static files in static directory.


fix: show progress icon

fixes: https://github.com/fabric8-launcher/launcher-frontend/issues/520

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Replace NavigatorObserver._navigator with a static expando.

This change replaces NavigatorObserver._navigator (an instance field that points from a NavigatorObserver to the NavigatorState it's observing) with an expando that maps from NavigatorObserver to NavigatorState.  There is no change to the public API, and no change to the behavior of users' production code.
The change ensures that if a customer's test replaces an instance of NavigatorObserver with a mock, but doesn't replace NavigatorState with a mock, the code in NavigatorState won't try to access the private _navigator field in NavigatorObserver.  This is important because an upcoming change to the dart language is going to cause such accesses to throw exceptions (see https://github.com/flutter/flutter/issues/109237 and https://github.com/dart-lang/language/issues/2020 for details).
Fixes https://github.com/flutter/flutter/issues/109237.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Could you add a test for this that makes sure a class implementing NavigatorObserver and noSuchMethod can be used as a Navigator.observer without problems? That way, if somebody tries to refactor this back to what it was we will have a failing test to warn them once field promotion lands.

Ok, done.  I puzzled for a while over what the test should do, and what expectations it should check.  I finally settled on replicating the actions in one of the other simple navigator tests, and testing that the sequence of invocations passed to noSuchMethod is as expected.  Let me know if this seems reasonable.


feature request: Add oil buffer to jumplist when opening a file

Did you check existing requests?

[X] I have searched the existing issues

Describe the feature
I would love to jump back to the oil buffer I was just in using <c-o>. It seems like oil buffers are added to the jumplist when oil is active, but removed once you open a file. Perhaps the last oil buffer viewed could be added when a file is opened, rather than clobbering the jumplist with a bunch of oil buffers.
Provide background
No response
Additional details
No response

Try setting cleanup_delay_ms = false in setup (see available options).
The issue is not that the buffers are not added to the jumplist, the issue is that we automatically garbage collect them once they are not visible. If you disable the cleanup, they'll stick around and be navigable via the jumplist

Hmmm... Doesn't seem to work, still cleans up after ~2 sec. My config:
  {
    'stevearc/oil.nvim',
    opts = {
      cleanup_delay_ms = false,
      win_options = {
        wrap = true
      }
    },
    -- Optional dependencies
    dependencies = { "nvim-tree/nvim-web-devicons" },
  },

Are you on the most recent version of oil.nvim? And after this 2 second period when you aren't able to jump back, what is the output of :ls! (looking to see if oil buffers are still present)

Sorry about that, updating seems to have fixed it!
On Thu, Oct 19, 2023, at 3:05 PM, Steven Arcangeli wrote:

Are you on the most recent version of oil.nvim? And after this 2 second period when you aren't able to jump back, what is the output of :ls! (looking to see if oil buffers are still present)
—
Reply to this email directly, view it on GitHub https://github.com/stevearc/oil.nvim/issues/201#issuecomment-1771554738, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADH4ETLYN3QVOQF6KNUX6R3YAF2WBAVCNFSM6AAAAAA6GSFWSGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZRGU2TINZTHA.
You are receiving this because you authored the thread.Message ID: @.***>

Hi @stevearc, thanks for this great plugin 😄
I was trying to achieve a similar behaviour as @murtaza64. More specifically I was trying to mark specific directories so I could get back to them with two key presses. Works great for monorepos and I can easily cd into any of these (had to reassign the ` keymap which now is used to jump to the mark).
The only downside for this workflow in my opinion is that it pollutes the buffer list with a new buffer for every directory I navigate to. I'm looking at a way of filtering these directly from telescope (e.g. hiding all buffers that match $oil://), but was also considering if there's a combination of options I could use from oils config to keep buffers in memory (thus allowing marks to live for as long as I need them) but not showing in a buffer list. Any ideas on how I could achieve this?

@guicostaarantes Once you set cleanup_delay_ms = false the buffers will stick around (the desired behavior). You're asking about also hiding them, which is what :help buflisted is for. By default, oil buffers set buflisted = false (controlled by this line in the config)
https://github.com/stevearc/oil.nvim/blob/05cb8257cb9257144e63f41ccfe5a41ba3d1003c/lua/oil/config.lua#L17
Whatever you're using to view/switch buffers should allow filtering out nobuflisted buffers.

Is there a way to prevent oil from being included in the jumplist?
When bufhidden = 'delete', the buflist contains invalid marks.
Steps to reproduce:

Open oil
Open a file
Press ctrl-o
You get E19: Mark has invalid line number

fyi you can set:
buf_options = {
  buflisted = false,
  bufhidden = 'wipe',
}

and the buffer will be wiped from the jumplist after the window is closed


Args with type of Set get mutated after going through produce.

🐛 Bug Report
When passed a Set as an arg to produce, immer adds some functions to it. These functions then escape the produce function.
Link to repro
https://codesandbox.io/s/immer-playground-forked-1d3gc?file=/src/index.js
To Reproduce
Run the repro
Observed behavior
I wouldn't expect produce to change an arg passed in this way.
Expected behavior
Produce should only return the new object with updated values where needed. In my example, newX should no thave additional properties/functions on it, it should continue being [].
Environment

Immer version: 9.0.3
[x] I filed this report against the latest version of Immer

Note: adding mutliple bugs that may be related, feel free to link/close as needed on your end, I just want to keep this clean

Duplicate of #816


I want to translate your article into Chinese

Hello, I am a web developer from China。
I read your article not long ago and thought it was very good. I want to translate it into Chinese and hope to get your approval。
Of course, this is just to let more people know, not for the money。
Translated articles will be posted on this website：   https://juejin.im
This is the address of the article：
https://nodesource.com/blog/Express-Koa-Hapi
https://nodesource.com/blog/next-nuxt-nest
if you agree，I hope to get a brief introduction of you to put it at the beginning of the article。

@wjj0720 Hello! Yes sure, you can translate the article with the only condition to add the link of the original article.
My Twitter: @lizparody23
My introduction:
Liz is a self-taught Software Engineer focused on JavaScript, and Developer Relations Manager at NodeSource. She organizes different community events such as JSConf Colombia, Pioneras Developers, Startup Weekend and has been a speaker at EmpireJS, MedellinJS, PionerasDev, and GDG.
She loves sharing knowledge, promoting JavaScript and Node.js ecosystem and participating in key tech events and conferences to enhance her knowledge and network.

Please let me know when the article is published :D I would love to see it in Chinese.
Best!


Customize base commands and sub commands

Summary
In order to support customizing an App's base command, the binding structure of what the App needs to return is changing (breaking change for all Apps). This also allows us to potentially support more than one base command per App if we choose to support that in the future.
The original structure was:
[
  {
    "location": "/command",
    "bindings": [
      {
        "location": "some-sub-command",
        "description": "Run the sub command",
        "icon": "Some sub command icon"
      }
    ]
  }
]

This is what App's will need to return now:
[
  {
    "location": "/command",
    "bindings": [
      {
        "location": "the-app-id", // ignored because the base command is always the app id for now
        "description": "Run the base command",
        "icon": "Some base command icon",
        "bindings": [
          {
            "location": "some-sub-command",
            "description": "Run the sub command",
            "icon": "Some sub command icon"
          }
        ]
      }
    ]
  }
]

Ticket Link
Fixes https://mattermost.atlassian.net/browse/MM-33579

Codecov Report

Merging #97 (ca60c72) into call-request (a9c4e89) will increase coverage by 5.20%.
The diff coverage is 56.75%.

@@               Coverage Diff                @@
##           call-request      #97      +/-   ##
================================================
+ Coverage         17.03%   22.24%   +5.20%
================================================
  Files                27       27
  Lines               945      962      +17
================================================
+ Hits                161      214      +53
+ Misses              778      737      -41
- Partials              6       11       +5

Impacted Files
Coverage Δ

server/api/impl/admin/install.go
0.00% <0.00%> (ø)

server/api/impl/admin/synchronize.go
10.95% <0.00%> (ø)

server/api/impl/proxy/proxy.go
6.66% <0.00%> (+6.66%)
:arrow_up:

server/http/restapi/call.go
0.00% <0.00%> (ø)

server/api/impl/proxy/bindings.go
90.90% <100.00%> (+68.46%)
:arrow_up:

Continue to review full report at Codecov.

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


[Bug]: Optimize commit time of the web-page and the database are inconsistent

What happened?
The timestamp of the database is UTC, but the timestamp on optimize dashboard is UTC+8
Affects Versions
master/0.4.x
What engines are you seeing the problem on?
AMS
How to reproduce
No response
Relevant log output
No response
Anything else
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Will the displayed commit time be automatically adjusted according to the user's time zone?

And can you sort optimization history by commit time?

That's true.
All the timestamp values are stored as long type(UTC) in AMS backend and transformed to string type using the user's local time zone in AMS Dashboard.
Has this implementation brought you any misunderstandings?

Great, I understood. And maybe we can adds the function of sorting in dashboard table.

Great, I understood. And maybe we can adds the function of sorting in dashboard table.

Looks good to me.
Many tables and lists in the AMS Dashboard should support sorting by different fields to improve the user experience.
I will open another issue to track this.


Utterence is not working for me...

Hi !
I followed all the steps, I created a new repo (it is open), I installed the utterance app, I used the configuration tool to create my piece of code, and pasted it into my blog... but I load the page and the comment box does not come... what can I do? Maybe am I doing something wrong? This is my script:

Thank you for any help.

I don't think the trailing .git is supposed to be the the repo value

I don't think the trailing .git is supposed to be the the repo value

You are completely right!
After reading your comment, I created a new repository, but this time, using the TLD .io
And guess what: now it is finally working sucessfully!!
Thank you very much for your help!!!
You helped me a lot!!!
Have a nice week!
Alexandre.

@alexandrediaries if your problem is solved, please close this issue


CheckBox: label position top/bottom (#5649)

Description

I'm missing the possibility to position the checkbox label above or below the checkbox.
I have also created an issue for this #5649
How Has This Been Tested?

I have improved the test that check if the required classes are added.
Types of changes

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

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

CSS is far from my strong point don't feel bad to criticize my styling choices

@henon , can you also review this PR?
This is how it looks like in the doc site.

Do we also want  Start/End support?
And a followup change could be supporting this for radio and switches.

Sorry, I didn't have time to look at it yet. Why did you close?

Sure, looks good, I'd say why not.

@JonBunator will you have a short glimpse at the CSS please?

Sorry, I didn't have time to look at it yet. Why did you close?
I also created an issue for this, #5649 @mikes-gh  replied there, I realized that my change to enum LabelPosition could give some trouble.

Ah I see, because LabelPosition is used for other components as well. If you close this again just leave a comment why or if there is a replacement PR just link it. Thanks

Will do, I am fast learning MudBlazor and the code behind it ;) (And working on an open source project)
If i'm happy with it I will create a new PR for this branch
There I get the same result with
<MudCheckBox Label="Monday" LabelStyle="display:flex; flex-direction:column; flex-direction: column-reverse;"/>

Sorry, I didn't have time to look at it yet. Why did you close?

I know I'm a little chaotic with this PR :S
I'm not happy about either solutions myself yet...
This should probably be done for all components that use enum LabelPosition if you agree and if you are happy with the css I will do that. Will keep this PR in draft for now.


Run image generation and upscaling in parallel

When generating large sets of images, my GPU is pegged while generating images (txt2img), but my CPU is idle. When that finishes, it starts running Real-ESRGAN and GFPGAN on all of those images, which uses close to half of my CPU time and none of my GPU for nearly as long.
This is on an M1 Max, and the optimum might be different when using CUDA, but it would be nice to have an option to run the upscaling for one image in parallel with generating the next image, rather than doing all of the generation, then all of the upscaling after that finishes.
A related issue is that, if I decide to stop the image generation early, nothing gets upscaled. This would also be fixed by my suggestion above. Even if it instead alternated, generating one image, then upscaling it, then generating the next image, and so on, ending generation early could still result in upscaled images. This would result in alternating between CPU and GPU tasks, which might if nothing else, at least have the benefit of reducing the maximum temperature (and thus fan noise level) of the computer during the whole process.

I'll note that in the web UI, the sequence is as you request - generation1, upscale1, facefix1, generation2, upscale2, facefix2, and so on.
If you cancel before an image has gone through request postprocessing, though, it is not saved. I suppose it should save it if you cancel after generation but before post?

Are you sure? I just got the webui running and tried it. I set it to generate 10 images. It did that, then began upscaling them. Maybe you're running an older version or a different branch? I just installed mine two days ago...

I suppose you are on the main branch? On development, there is a brand new UI which works as I described (that's how it should work, anyways).

Ah, cool, I'll check that out.

Yes, the development version of the webui does do the upscaling for each image, which I like a lot better. I still think it would be useful to be able to do that in parallel with generating the next image, though, since (at least on apple silicon), one uses the CPU and the other uses the GPU, so they don't step on each other much.

@Kyle0654 With the new backend, will the workers process jobs in parallel e.g. iteration 1's postprocessing can happen in parallel with interation 2's generation?

@Kyle0654 With the new backend, will the workers process jobs in parallel e.g. iteration 1's postprocessing can happen in parallel with interation 2's generation?

It could be done, but it's a challenging problem with the new node-based stuff, since I can't readily tell what resources would need to be locked to process a node, and those could change based on settings.


confirm that updating piecewise data via a cron job works

piecewise was originally designed to pull data from a specified time window. Nathan has added the function to piecewise.aggregate to truncate the database table when it is rerun, but we need to confirm that updating via cron will work properly to bring in new data.
[ ] confirm methods for updating the data selection via cron script works
[ ] draft instructions on how to update data on a regular basis for an instance of piecewise

Done.  I added the following cron job to root's crontab for a few days on our live demo server and it seems to work just fine:
21 1 * * * cd /opt/piecewise && python -m piecewise.ingest


fix(db) properly serialize maps in C* strategy

A map does not have elements, but keys and values.
This unfortunately does not come with a test, as no core entity has a
map field as of today.

And thanks @gszr for reporting this one :)


Image upload issue

Hi Jssor,
I just purchased yoursubscription in hopes of making a slideshow easily but little did I know that the biggest challenge now is getting my images up?
My images are pngs saved for web but somehow when uploaded to your database, the image doesnt show completely (cut off) .
I am sure my images are not of problem as when i download them back from your database it works fine on my desktop.

not only that, the interface seems to cache the images uploaded and when I deleted them and upload a new image of the same file name like 1.png the image appears as the old deleted image.

We keep original files on cloud system.
Uploaded files are original then.
To access file through browser, there is 1 day cache at browser side. If you update your file, please clear browser cache.


Empty project directory on init is not being enforced

Actually, it is being enforced, but the messaging needs improvement.


[Change Request] page 256 "Payment Journal" - procedure SetControlAppearanceFromBatch

Describe the request
Hello,
can you please change the procedure SetControlAppearanceFromBatch() from local to global?
procedure SetControlAppearanceFromBatch()
begin
    SetApprovalStateForBatch();
    BackgroundErrorCheck := BackgroundErrorHandlingMgt.BackgroundValidationFeatureEnabled();
    ShowAllLinesEnabled := true;
    Rec.SwitchLinesWithErrorsFilter(ShowAllLinesEnabled);
    JournalErrorsMgt.SetFullBatchCheck(true);
end;

Additional context
We want to call the function from our extension.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 14132.


Simulate Internet connectivity issues

Add the ability to simulate internet connectivity issues like low connection speed or no connection at all.
An idea that comes to mind is to use some kind of wrapper around the app that blocks/delays all HTTP requests to simulate internet connectivity issues. Is there a Flutter native way to capture and block HTTP requests in Flutter? If not, is there any native way to do it?

Hi @edgarfroes! Thanks for creating the issue.
This would indeed be a very useful feature.

@edgarfroes for now for ios simulator check out https://nshipster.com/network-link-conditioner/

And for the Android emulator, check out this question on StackOverflow . The emulator has a built-in feature of simulating different types of connection quality. It's not perfect but it's a fair workaround.


HTML is not generated when bundleAnazlyer is enabled.

Steps to Reproduce
Add bundleAnalyzer: true to static.config.js
yarn build

Expected behavior
dist should contain static routes.
Actual behavior
index.html is missing.  I think the other routes are missing as well, but I haven't checked.
Suggestion
If bundleAnalyzer is a string, webpack-bundle-analyzer should run in static mode and save it's output to that path.

Same issue here :)

Looks like react-static more bugs than i excepted and errors aren't useful and/or informative


Remove prettier config from list of packages

The link 404s and the npm package is marked as deprecated so I figured we'd just remove it from the list?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


installation problem

Warning: The Ruby Homebrew installer is now deprecated and has been rewritten in
Bash. Please migrate to the following command:
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

==> Checking for `sudo` access (which may request your password)...
Need sudo access on macOS (e.g. the user ksamigullin needs to be an Administrator)!
Installing Homebrew bundle...
bash: line 50: brew: command not found
bash: line 51: brew: command not found
bash: line 52: brew: command not found

Warning: /opt/homebrew/bin is not in your PATH.
  Instructions on how to configure your shell for Homebrew
  can be found in the 'Next steps' section below.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ksamigullin/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

Installing Homebrew bundle...
bash: line 47: brew: command not found
bash: line 48: brew: command not found
bash: line 49: brew: command not found

Last login: Tue Nov 23 10:29:59 on ttys002
/Users/.../.dotfiles/.zshrc:.:65: no such file or directory: /Users/.../.oh-my-zsh/oh-my-zsh.sh


[SEV] 50 minutes of downtime due to unidentified tampering

Got paged for this last night:

I'm guessing somebody was screwing around with the app. Apparently they managed to do enough damage that the underlying EC2 instance started failing its health checks and was replaced automatically by the autoscaling group. This is the cause for the second 32-minute outage listed above.
We definitely need to add some logs so that effective postmortems can be written, especially since the Docker logs go away when an instance is replaced. See also https://github.com/raxod502/riju/issues/81.

This was unlikely to be anything malicious, or even unreasonable. The fact that LSP was started automatically for every session, together with the fact that no total resource limit was imposed, made even a modest load knock the server down. This issue should be resolved per https://github.com/raxod502/riju/issues/92.


Components > Api resource basic > Ui label name and action data name are different

While going through the application process, found following issue,
Actual Result:
Api resource basic Ui label name and action data name are different.
Screenshot:

After Submitting Display Name Field is not clear.

After Submitting Display Name Field is not clear.

Completed-


Chat - App allows emoji link for email

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

Action Performed:

Open the app
Open any report
Send any website URL as link with emoji as its text eg: :joy:
Observe that app keeps emoji and link separate
Instead of website URL, use any email eg: :joy:
Observe that now app converts emoji into link with link as mailto of the email

Expected Result:
App should not convert emoji into link like it doesn't for normal website URL
Actual Result:
App converts emoji into link when we use email in link format
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.75-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/e9887599-26ca-4c21-a909-c3eee8c4434b
https://github.com/Expensify/App/assets/78819774/ae099abc-7bdf-4379-9a42-65f8053d3d94
https://github.com/Expensify/App/assets/78819774/ac992554-66fe-40ec-9fa0-601c45ca4ba7
https://github.com/Expensify/App/assets/78819774/d23e08dd-b5c2-4039-9074-a24384395b57
https://github.com/Expensify/App/assets/78819774/c4a32445-48e8-4d9f-918b-64dcd76336eb
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1695837410025229
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Email links with emojis work fine but website links do not
What is the root cause of that problem?
This is the parsing we are using
https://github.com/Expensify/expensify-common/blob/82c45d69668251b7abf22a2a17334f5e8823cebc/lib/ExpensiMark.js#L59-L85
This here
https://github.com/Expensify/expensify-common/blob/82c45d69668251b7abf22a2a17334f5e8823cebc/lib/ExpensiMark.js#L80
shows that for links if it matches with emoji the original match is returned which is the emoji followed by link.
In case of email there is no such comparsion so it is parsed differently.
What changes do you think we should make in order to solve the problem?
If we like the parsing of link to be followed for email we need to change the email part to
            {
                name: 'email',
                process: (textToProcess, replacement) => {
                    const regex = new RegExp(
                        `(?!\[\s*\])\[([^[\]]*)]\(${CONST.REG_EXP.MARKDOWN_EMAIL}\)`, 'gim'
                    );
                    return this.modifyTextForEmailLinks(regex, textToProcess, replacement);
                },
                replacement: (match, g1, g2) => {
                    if (g1.match(CONST.REG_EXP.EMOJIS) || !g1.trim()) {
                        return match;
                    }
                    return `<a href="mailto:${g2}">${g1.trim()}</a>`
                },
            },

What alternative solutions did you explore? (Optional)
If we want the parsing of email to be followed for link we can omit the emoji comparison in link similar to the email.

Not overdue.

Thank you for assigning this to me.
PR  ready for review.
@hoangzinh

How to do that?

Oh! Now, I see that @eh2077 added their commit hash to the package.json. Their PR was merged after my PR was merged.

Do I still need to do anything?
@hoangzinh

PR #29250  created for testing on main branch.
I don't know why you were not assigned to it.
Please review @hoangzinh
Thanks!

No PR is created here because hash of a later merged PR 585 of expensify-common was already added to package.json of Expensify/App with PR #28985 and that includes the changes made in 583 of expensify-common as well.
Videos for the PR 583 merged into expensify-common for this issue:
Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/102477862/f7f14410-7f8a-4c27-b041-69f383c136ba

Android: mWeb Chrome
https://github.com/Expensify/App/assets/102477862/87381fdb-08eb-40d4-94aa-11828f60766d

iOS: Native
https://github.com/Expensify/App/assets/102477862/dcafb683-d4b5-4dee-bf1c-75a824ef20ae

iOS: mWeb Safari
https://github.com/Expensify/App/assets/102477862/00e97c30-1097-45da-8fcf-d6ca95ec6a1f

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/102477862/ddd727be-24ff-4559-aed6-3f0495ef2aeb

MacOS: Desktop
https://github.com/Expensify/App/assets/102477862/6c088043-3be1-4e21-9393-1fd82f51b340

cc: @hoangzinh @tylerkaraszewski

@tylerkaraszewski @isabelastisser
Please refer to this comment.
PR on  expensify-common was merged within 3 days from assigning for this issue.

Can this be considered for bonus?


WriteBufferWaterMark's TOTAL_PENDING_SIZE_UPDATER leak when limit the io.netty.eventexecutor.maxPendingTasks(taskQueue) size.

Expected behavior
In production env, we meet huge small request need to writeAndFlush, in order to avoid oom, reduce large memory to old area, and limit the network flow.
I both set System.setProperty("io.netty.eventLoop.maxPendingTasks", "2048");  and
bootstrap.option(ChannelOption.WRITE_BUFFER_WATER_MARK, new WriteBufferWaterMark(8 * 1024 , 32 *  1024));
but I found that, someTime, when many request comes in a short time, channel.isWriteable()  is always false, but after that even if no request, it it still Talse.
It should be True, but actually sometime it is False and never comeback.
Actual behavior
SomeTime channel.isWriteable() is False, and even when no more WriteAndFlushTask, channel.isWriteable() is still False.
Steps to reproduce
I review the source code.
when I call  WriteAndFlush, netty will run in following steps.

new a WriteAndFlushTask, It will incrementPendingOutboundBytes.
if the task executed in eventLoop, It will decrementPendingOutboundBytes.

so, if all task are created and run, no problem happends.
but if I limit the taskQueue and when request count large than its  capacity, some WriteAndFlushTask maybe init, but rejected by eventloop.
at this time, WriteBufferWaterMark's TOTAL_PENDING_SIZE_UPDATER leak happends.
my solution
only use writeBufferWatermark and check isWriteable or only limit the taskQueue but  abandon check channel.isWriteable().
how about add a common check, if rejected Task is WriteTask / WriteAndFlushTask, will decrementPendingOutboundBytes avoid leak.
my now solution is new NioEventLoopGroup with custom RejectedExecutionHandler
Is my usage wrong, or if more grace way to handle this problem?
Netty version
4.1.29.Final
JVM version (e.g. java -version)
java8
OS version (e.g. uname -a)
linux_x86_64

@caorong good catch... let me fix it.

@caorong PTAL https://github.com/netty/netty/pull/8349

thanks to fix this!


Cleanptcloud

Adds control tasks to write and render point clouds. Not from the pointcloud branch bc it has other changes that we don't want to merge yet.

@EliasLittle @AdarshSriram requesting additional control tasks to simply watch for a keypress per today's discussion


Potential memory bug in Surface set/get pixel functions

G'day!
I noticed that the set/get pixel functions in cen::basic_surface assumes that SDL_Surface::pixels points to Uint32 data.
This may not be a safe assumption as the documentation for SDL_MapRGBA remarks:

If the pixel format bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format).

This seems to suggest that if your pixel format is smaller than 32-bit (say, RGB24), that you must memcpy only the first 3 bytes into SDL_Surface::pixels. This would also suggest that calculating the pixel index should involve the SDL_Surface::format::bytesPerPixel value.
I might be wrong about this, it came up as a concern while writing my own, similar library (using your library as a reference), but I haven't had a chance to test it myself.

Hi!
Yeah, don't use the function unless you use a 32-bit format. I'll probably just remove this function in the next major version.
Since you might be interested, there have been recent discussions to add official macros/functions to do this in SDL. See this issue, which is currently included in the SDL 2.0.20 milestone.

Removing the function is probably a fair call, accounting for different pixel sizes makes the function quite bulky and is a super inefficient way to manipulate pixels anyway. Thank you for sharing the resource, it would definitely be a useful feature to have in SDL.

The related functions have been removed on the in-progress version 7.0.0 branch, so I'm closing this issue.


Block Lighting Not Updated Outside 1 Chunk of Vanilla World Boundaries

Between -17 and 272 torches and other block light sources light the surrounding blocks correctly. Outside of these boundaries lighting is updated rarely, if at all. I could only get a torch to update lighting below y=-17 twice; torches placed in similar places did not update.

Which version of TWM was this in?

0.3.1b; the most recent version.


Added call connection Id for recording and live and unit test code.

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Communication.CallAutomation


Add StackState output

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area config

/area outputs

/area tests

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

d8a56b9 Add StackState output

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Welcome @hierynomus! It looks like this is your first PR to falcosecurity/falcosidekick 🎉

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: hierynomus
Once this PR has been reviewed and has the lgtm label, please assign cpanato for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

This PR looked very promising, why did you close it?

@Issif Thanks for the kind words. Mainly because it was not finished yet and untested. Wanted to open a PR to our local fork so that we could further collaborate internally before submitting it for final approval upstream.


voice caching issue

when rendering with the same phonemes after changing voicebank, the cache doesn't clear and the previous render is used.
this can result in multiple voices being used depending on which voicebank used which phoneme first.
os: windows 10 22H2
voicevox version: 0.19.2
cantari version: 0.0.6 - 0.0.2
https://github.com/sevenc-nanashi/Cantari/assets/35883871/3be8c86f-df2f-4f4f-a79e-d62e80fa94b1

iirc voicevox editor caches the rendering result. Maybe that's the issue?

rendered "こんばんは" with mujika (無地歌)
after switching the voicebank to teto, it still outputs mujika's rendered phonemes.
any phonemes not already rendered will be initialized by the currently selected voicebank

without restart after changing voicebank:
https://github.com/sevenc-nanashi/Cantari/assets/35883871/d32fc235-2378-4bc0-af6d-f313dca7b594
with restart:
https://github.com/sevenc-nanashi/Cantari/assets/35883871/fba70cd5-d579-438d-a8c4-367c4c41fda9


Bot fails to Close connection after failing to connect due to being banned

Hi there. First of all, thank you for creating Mumble Sharp. Without it, my application wouldn't be possible!
I have an issue that I don't know how to handle due to a lack of experience with networking.
If Bot gets banned on a Server and tries to connect to it at any point in the future, I get
$exception	{"Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host."}	System.IO.IOException MumbleConnection.cs 293
_ssl.AuthenticateAsClient(serverName); This line is where the exception is thrown.
If I try to handle this exception, I can't connect to any other server. Connection.Close fails on a new Connection attempt, due to _udp being null.
public void Close()
        {
            State = ConnectionStates.Disconnecting;
            _udp.Close(); //  _udp is null at second connection attempt
            _tcp.Close();

            State = ConnectionStates.Disconnected;
        }

What can I do in this case and is there a way to let users know that the Bot was kicked/banned?
P.S. Creating a new instance of Client on every connection attempt seems to be working, but I'm not sure if it's a viable solution?

fixed in PR #47
You will be able to catch the exception on connection, and not have a NullReferenceException upon close.

Hi @Srki94,
Can you please report if our fix did effectively solve your issue. Thanks.


Decide what metrics to capture to ASV for merlin-systems notebooks

Let's review the existing notebooks to figure out what metrics.

We decided the metrics in https://github.com/NVIDIA-Merlin/Merlin/issues/235


 What is the corresponding && operator (AND, for instance) in PowerShell?

This will work:
http://stackoverflow.com/questions/563600/can-i-get-to-work-in-powershell

Good enough. Thank you!
What do you think about contributing code to the project? Would you be interested in improving thefuck's support to PowerShell?

Yea that will be interesting. I'll take a look.

Great! This is what I've been doing regarding Fish Shell:
https://github.com/scorphus/thefuck/commit/018ea864318112789c0324a0c035f847b528245b
It's a work in progress (WIP) and there's some aspects of it I still want to change or improve. As soon as I have some free time I'll try and do so.

Fixed in previous releases.


[26.07.2024 (EOB)] Delete catenax-ng tx-traceability-foss  repos

Is your support request related to a problem? Please describe.

with the end of the consortium, we will delete the Catena-X NG GitHub organization

Describe the solution you'd like

Delete https://github.com/catenax-ng/tx-traceability-foss/

Additional context

Delete repos on 26.07.2024 (EOB)

Hi @mkanal thanks for the hint, but we do not need separate issues for the Catena-X NG deletion or read-only schedule, so will close the issue.  😉


⚠ Bofrost.at has degraded performance

In 50c7724, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1292 ms

Resolved: Bofrost.at performance has improved in d39f3d7.


Refactor input_verb_set() behaviour such that it "adds" to a verb's state rather than overwrites it

https://github.com/JujuAdams/Input/commit/9a246e39b2a040054a5d1217841acd0ec34997eb


Doesn't work on Windows 10 (1909)

Hi,
Is this expected to work on Windows and Window 10?
Running on Windows 10 Pro: 10.0.18363 (1909) the contents of the progress bars contain lots of invalid characters:

The binary was built using Visual Studio 2019 16.6.0, cmake folders build, vanilla configure with samples enabled.

Yes it is expected to work in Windows. The sample you are running, multi_block_progress_bar, has unicode characters. This requires some configuration in Windows. See here

you can add     SetConsoleOutputCP(CP_UTF8) in the ProgressBar constructor

you can add SetConsoleOutputCP(CP_UTF8) in the ProgressBar constructor

Can you show an example of this?


Error while using man_umap.py

Hey @vturrisi @DonkeyShot21
Thank you for nice work.
While running main_umap.py with pretrained model using BYOL method, it gives following error:
Command
python main_umap.py --pretrained_checkpoint_dir trained_models/old/byol/custom/ --batch_size=16 --num_workers 2 --dataset custom --train_data_path ./datasets/custom/train --val_data_path ./datasets/custom/val

Error
Traceback (most recent call last):
  File "main_umap.py", line 72, in <module>
    main()
  File "main_umap.py", line 45, in main
    .load_from_checkpoint(ckpt_path, strict=False, **method_args)
  File "/home/user1/anaconda3/lib/python3.7/site-packages/pytorch_lightning/core/saving.py", line 157, in load_from_checkpoint
    model = cls._load_model_state(checkpoint, strict=strict, **kwargs)
TypeError: _load_model_state() got multiple values for argument 'checkpoint'

Please guide.

@saifhassan please don't tag everyone when posting new issues. The main contributors are myself and @DonkeyShot21 and we always try to address issues as soon as possible. Which files do you have inside this folder? main_umap.py expects a folder in the same structure as the checkpoints that we save during training, so a checkpoint file and an args file. It looks like you have more than one checkpoint file.

@saifhassan please don't tag everyone when posting new issues. The main contributors are myself and @DonkeyShot21 and we always try to address issues as soon as possible. Which files do you have inside this folder? main_umap.py expects a folder in the same structure as the checkpoints that we save during training, so a checkpoint file and an args file. It looks like you have more than one checkpoint file.

sorry for tagging everyone, updated tagged persons. Yeah, I got it regarding umap. I will let you know if any more queries.
Thanks

@saifhassan please don't tag everyone when posting new issues. The main contributors are myself and @DonkeyShot21 and we always try to address issues as soon as possible. Which files do you have inside this folder? main_umap.py expects a folder in the same structure as the checkpoints that we save during training, so a checkpoint file and an args file. It looks like you have more than one checkpoint file.

I am running umap.sh file which contains command as follows:
python3 main_umap.py \
    --dataset custom \
    --train_data_path ./datasets/raf-db/train \
    --val_data_path ./datasets/raf-db/val \
    --batch_size 16 \
    --num_workers 10 \
    --pretrained_checkpoint_dir ./trained_models/byol/zu2661zo

and ./trained_models/byol/zu2661zo directory contains .json and .ckpt files. that's all.
Still same error.

How many files do you have in that folder?

How many files do you have in that folder?

just two files one .json and one .ckpt

only the files generated by main_pretrain.py (one ckpt and one json).

I am trying to use KNN evaluation, and the exact same error shows up. In my case, I also only have a folder containing just a checkpoint file and an args.json file.

Exactly the same issue. Tried to debug, but I am somewhat stuck why this would suddenly appear.

I'll take a look at it in the next few days. Thanks for reporting.

#344 will fix this issue.


docs: remove outdated guide

Since we're ditching the ssh-demo operator CRD, we should probably just remove the nontee guide. More info in the commit message.
Looking over the docs, I think we are maybe missing a simple walkthrough for setting up attestation including in the non-tee environment, but that's for another PR (and possibly should live on the website).

Just remembered I think this ascii demo in the readme also should be removed.
https://github.com/confidential-containers/confidential-containers/blame/main/README.md#L32

Just remembered I think this ascii demo in the readme also should be removed.

This demo is with the ssh-demo container rather than the SSH demo operator crd. There is more info in the commit message but I think we can keep this demo for now. We probably should update it at some point tho.


Add getitem method to DictWrapper

Add getitem method to allow DictWrapper to be indexed like a normal dictionary

In #75 i have rewritten this is part completely from scratch.
With added functionality for easier and more natural data access (like your intention).
Everything is nested so if you return the values you will get data types which are not so easy to handle.
For example if you are doing dict1['key1'] you want to also do key['key1']['key1_1'] which still wouldnt work and make things more confusing.
I thought my new Dotdict handles that part nicely. But we neeed people to try it out and give feedback :).
https://github.com/python-amazon-mws/python-amazon-mws/blob/7e387b076bcab489cf024624fefaa0dd3b1bcb2a/mws/utils.py#L165-L238

This is a lot cleaner than the DictWrapper for sure!


Examples update

Hi,
As discussed in issue #27 I've updated the tls_example to connect and download from the same URL, as well I've added the native-tls(tokio-tls) example, that should be using platform specific ssl libs.

Don't know why it would fail on gcc on Windows.

Great work. Thanks! At a glance, it looks like Appveyor fails for some temporary reason. Will check it later.


but i think sometime it not similar

i had to compare the url is:[http://bbs.gfan.com/forum-22-1.html,http://bbs.gfan.com/android-9172442-2-1.html] by using similarity function,i got 0.3444178082191781,but when i compare [http://bbs.gfan.com/android-9172442-2-1.html,http://bbs.gfan.com/android-9161132-1-1.html],i only get 0.358913813459268,what do you think?i think it should be similar

Hi @thouger,
Thanks for using the package.
Similarity between http://bbs.gfan.com/forum-22-1.html and http://bbs.gfan.com/android-9172442-2-1.html
You should not use structural_similarity here because the html tags in the forum can increase dramatically because users can add p, a, font tags as they need. You can use it but you should give more weight to the similarity (1 - k = 0.7) (k=0.3). My suggestion is to use k = 0.3 and set a low threshold.
In [35]: from html_similarity import similarity, style_similarity, structural_similarity

In [36]: structural_similarity(html_1, html_3)
Out[36]: 0.1694300518134715

In [37]: style_similarity(html_1, html_3)
Out[37]: 0.4748603351955307

In [55]: from html_similarity.style_similarity import get_classes

In [56]: class_html_1 = get_classes(html_1)

In [57]: len(class_html_1)
Out[57]: 146

In [58]: class_html_3 = get_classes(html_3)

In [59]: len(class_html_3)
Out[59]: 118

In [60]: len(class_html_1 & class_html_3)
Out[60]: 85

Similarity between http://bbs.gfan.com/android-9172442-2-1.html and http://bbs.gfan.com/android-9161132-1-1.html
The similarity should work for the second case:.
In [11]: from html_similarity import similarity

In [12]: html_1 = open('android-9161132-1-1.html').read()

In [13]: html_2 = open('android-9172442-2-1.html').read()

In [14]: similarity(html_1, html_2)
Out[14]: 0.6515255079848381

I got 0.65. As I see, the web page. The forum allows you to add your own content (multiple font and p elements which make the structure differ). In this case I suggest to use less weight on the structure.
Using k=0.3 I got
In [26]: similarity(html_1, html_2, 0.3)
Out[26]: 0.7067047784751134

I hope it helps. Let me know if you have any other question or doubt.

I very grateful for you answer!
I got success at part-1,but i didn't get 0.6515255079848381 at part-2,i suspectd  you source for html_1 and html_2,so i try this:
I use requests,urllib.request , phantomjs and  save save page as html by browser to get html source,but i got this
requests
similarity(h1,h2)
0.5741937488348972

urllib.request
similarity(h3.decode('utf-8'),h4.decode('utf-8'))
0.5741937488348972

phantomjs
similarity(h9,h10)
0.5900613016825356

save save page as html by browser
similarity(h5,h6)
0.5897597237261845

But i didn't get so high like you,so i want to know the method that you open url and save.I think it's a key.

I'm using python 3.6 and I use wget to download the pages. Bear in mind that the website maybe sending additional information to me because I'm located in South America. For the last part you can use the threshold of 0.55 to consider to pages similar.

@thouger, here is the html that I'm using https://www.dropbox.com/sh/6p0f4e9k9ldei6j/AABTb-ApCNfq6cdcWVHMAx2ca?dl=0

Although South America i think it's ok because  I am not hurry about this and the hope that you show me make me continue to follow.
Actually i am writing my bachelor Thesis which is 《form data extraction》.Before i see this package,i am leaning simple tree matching.When i see this package,i think:it do excellent and easy way more than stm!I think the package maybe can help me to finish my paper.So i hope i can share the idea and analysis the structure in my bachelor Thesis.I will give clear indication of you name and where the package from.
A man who show the bachelor Thesis when he graduated take me to love the data extraction at three years ago.He's in my same major but three year ahead.now when i prepare to graduate,i hope i can succeed to take more people to love this by use my parper.
i will very grateful for you if you agree.

Cool. This package uses a heuristic to measure the structural similarity. I will do some experiments on my own today and check if I find something.
Great to hear about form data extraction. That's sound really interesting. I would like to know what is the strategy your are planing to to the form data extraction.
Note: There is a package called Formsaurus which extract forms from web pages. Formsaurus classify which form is in a web page (login, signup, search, mailing list, etc)
import formsaurus
import requests
html = requests.get('http://github.com/')
formsaurus.extract_forms(html)

Formsaurus uses Logistic regression to make the classification using the following features:

POST/GET
Text of the submit button
Names of the css classes and ids.
Labels of the inputs
Present of some strings in the url.

You can read more about it in: http://formasaurus.readthedocs.io/en/latest/

I am very sorry(；´д｀)ゞ because i missing a letter of ,it forum not form.In my parper,i extract the url of next page,forum user data,forum post data,post url.
I will be very happy to share strategy with you.But i can't show you in github issues because the original parper i refer to is 88 pages.also we can use other chat tool.I am also very interested in your other repository so i will spend some time to see.
Thank for you https://github.com/TeamHG-Memex/Formasaurus,i never hear that before.I hope you do not mind my mistake about missing u.Now I am going to sleep.

Hi @thouger, sorry for the delay. I will make the experiments over the weekend. I was busy these days.
I got some ideas to solve your problem:

I would create a classifier to detect if a page if a forum or not. You can use Simple Naive Bayes classifier. The simple way is to look for keywords on the HTML: https://github.com/Sotera/webpageclassifier/blob/master/Keywords/forum.txt.
Detect the information list forum entries with https://github.com/scrapinghub/mdr or similar tool.
Detect and classify pagination links
https://github.com/TeamHG-Memex/autopager

Have fun doing you paper. I like the problem feel free to ask any question. My email is my-github-username AT gmail DOT com ;)

Thanks for you help!I thought you would never reply to me.You give too much information so that i much spend some time to analysis.

About classifier to detect forum is i have never thought of that.After i shallowly search i find naive Bayes is a amazing.It has profound significance that the world is uncertain because human boservation has limitations. Naive Bayes is to hypothesis some we can't see according to what we can see.I'm sorry my English ability is limited(；´д｀)ゞ(；´д｀)ゞ
About second point is the focus of my research but i have other discovery which is for the forum.I will share with you after i complete.
About third points i find the paper(but it wrote in chinese!) and i already write in java but I'm still curious what else can be done in autopager.

It is wonderful to meet you when i doing related research.I am fascinated  with above you gave me.The next time I will learn it.


Make a GIF for each sorting algorithm

This issue should be done after issue #20 , when all visualizations are polished.
The idea is basically record a gif for all sorting algorithms, with the same delay and size, to replace the GIFS from github wiki page

The Gifs in the [https://github.com/LucasPilla/Sorting-Algorithms-Visualizer/wiki](githubwiki page) seem good to me, why are they to be replaced?

The Gifs in the [https://github.com/LucasPilla/Sorting-Algorithms-Visualizer/wiki](githubwiki page) seem good to me, why are they to be replaced?

Hey! This looks a fairly easy task and I think I can do it. Let me know if you want me to work on it, I'll be happy to do it.

Hey! This looks a fairly easy task and I think I can do it. Let me know if you want me to work on it, I'll be happy to do it.

Sure!

Sure!

@LucasPilla I've done the changes but can't figure it how to open a pull request for the wiki. The link for my repo is HERE

@LucasPilla I've done the changes but can't figure it how to open a pull request for the wiki. The link for my repo is HERE

Unfortunately there is no way to open a pr for the wiki page!
@asinghgaba I'm so sorry, I thought i had specified the size and I forgot to insert an exemple.
I would chose a size of 200 and the gif should contain just the bars, example:

I appreciate what you did, it must have taken you some time to record those gifs. I would be so thankful if you remake it.
Anyway, i will manage some way to insert you as a contributor.

Okay no problem I’ll do that by tonight and let you know once it’s done.

UPDATE @LucasPilla the changes are done, tbh it looks much cleaner now.

@asinghgaba  Wow, it looks incredible!
Can I use your repository as a ofical way to contribute in wiki page? So if anyone wants to contribute they will commit to your repo.

Thank you @LucasPilla
Yh no problem at all.

@asinghgaba Can you open a pull request to my repo adding a folder with all gifs?

Okay, I'll do it now.


Run PR activities on push on non-default branch

Closes #234, Closes #246
Still needs:

Manual tests
A decision regarding whether we need e2e tests for that or not
Documentation (especially on how to write the part that posts the comment from the artifact. Though it will be very much like CommentPR.yml from here)

But the code is written, and we already have 100% coverage so that's a good start.

Comments addressed. For the question of the default branch, I've:

removed previous coverage data when running on a PR not targeting the default branch
but kept it in case we're running on a branch with no PR yet: we can't know.

I've also changed the Note that displays where there's no reference coverage info to use a specific message in the case it's because the PR doesn't target the default branch

What's your assessment?

I agree with you :)


Embedding quant

#169 stacked

Codecov Report
Attention: Patch coverage is 80.00000% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 73.17%. Comparing base (a01240a) to head (8745d0f).
Report is 5 commits behind head on main.

Files
Patch %
Lines

libs/infinity_emb/infinity_emb/args.py
66.66%
2 Missing :warning:

...y_emb/transformer/embedder/sentence_transformer.py
66.66%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #170      +/-   ##
==========================================
- Coverage   73.30%   73.17%   -0.13%
==========================================
  Files          32       32
  Lines        1768     1782      +14
==========================================
+ Hits         1296     1304       +8
- Misses        472      478       +6

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


This commit explicitly puts model-registry resources into the opendat…

This commit explicitly puts model-registry resources into the opendatahub namespace.

/retest build

/retest

/test build


openlane configs updates and cleanups

no_synth.cells cleanup
first go at no_synth.cells reduction
variables cleanup
core_ring support

Pulled and merged.


Added Space Carp Tooth Arrows and Sharkminnow Spears, buffs sharkminnow teeth.

About the PR

I added space carp tooth arrows, made from 1 rod, 1 cloth and one space carp tooth. They deal 35 piercing damage. Open to nerf it to 30. I also added a sharkminnow spear, made from 2 rods, 3 lv cables and one sharkminnow tooth. This weapon deals 22 piercing damage when wielded, and 25 piercing damage when thrown. It breaks in the same amount of throws as normal spears. Also, I made the sharkminnow tooth deal 15 damage in melee, as requested by Emo
Why / Balance

Seeing as salvage weapons are being nerfed, and these teeth were recently added, I figured I'd get started on unique crafting recipes for mob loot. Discussed with Emo and Flare over discord, eventually ended up with these two weapons. I doubt they will be used much on-station, although I do see a potential warops scenario where salvage goes hunting for carp teeth to make cool arrows. Off-station however, I believe they will be rather useful.
Technical details

Media

Requirements

[X] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Added sharkminnow tooth spears and carp tooth arrows. Happy salvaging!
tweak: Sharkminnow teeth now deal 15 damage instead of 10.

also, the arrow tails are purple because salvage has purple as one of their colors, I wanted to distinguish the arrows from regular arrows and brown looked ugly

these are super overtuned but i dont really see people crafting these out the gate if they arent, probably should be taken more in line with other things tho

these are super overtuned but i dont really see people crafting these out the gate if they arent, probably should be taken more in line with other things tho

Apart from the throwing the spear is the same as the plasma spear


Can't mix nargs=-1 with envvar

@click.argument(name, nargs=2, envvar=NAME)
Works as expected. If you set NAME="a b" and run your command name in the called function will be a tuple of ('a', 'b').
@click.argument(name, nargs=-1, envvar=NAME)
on the other hand doesn't work as expected. If you call it in the same exact way, name will be set to the empty tuple.

Thanks!
Looks like there may be a couple bugs around this behavior.
my test code to reproduce
@click.group()
def cli():
    pass

@cli.command(short_help='test')
@click.argument('src', nargs=-1, envvar="TEST")
def testing(src):
    click.echo("src")
    click.echo(src)
    click.echo("len %s" % len(src))
    click.echo("type %s" % type(src))
    for c,v in enumerate(src):
        click.echo('elemenet %s of src: %s ' % (c,v))
cli()

case above nargs=-1 gives an empty tuple
TEST="one two three 4" python repo.py testing
src
()
len 0
type <class 'tuple'>

if we run with nargs=2 shouldn't become a 4-tuple (the correct behavior here is a bit ambiguous)
TEST="one two three 4" python repo.py testing
src
('one', 'two', 'three', '4')
len 4
type <class 'tuple'>
elemenet 0 of src: one
elemenet 1 of src: two
elemenet 2 of src: three
elemenet 3 of src: 4

@rch-liu and I are working on this issue! While we've found a fix on the nargs=-1 problem, we are also uncertain about the correct behavior for the case where nargs != len(envvar)
An idea was to raise an error like it would have if it weren't an envvar. Alternatively, if this is indeed correct behavior, maybe we can update the docs to indicate that?

Raising an error seems correct. Click should behave the same regardless of where the value for a parameter came from.

What currently happens for nargs != len? Were env vars not working at all with nargs?

What currently happens for nargs != len? Were env vars not working at all with nargs?

It works when nargs == 1 since it just treats the entire arg as a string. But for nargs > 1, it wasn't enforced. Following fdavis's example, nargs=2 it could end up as a length 4 tuple or even a length 1 tuple. However, it does correctly raise an error when the env var isn't bound to a value.

OK, raising an error sounds fine. Make sure to describe that in the changelog.


Cannot build in create-react-app

I am having this issue: npm run build fails to minify.
https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-run-build-fails-to-minify

Just a quick update on this...
I transpiled with babel /lib/module.js and of course it built OK.
So if only you could add a transpile to ES5 in the build process... it could work OK for all create-react-app users.

Hey @hermanfenderson, we also have a ES5 build in lib/bundle.js. But I can see from the documentation that you linked, that it's probably not build as is should

Note that even if a library provides an ES Modules version, it should still precompile other ES6 features to ES5 if it intends to support older browsers.

I will look into this within the next few days.

Hey @hermanfenderson im not sure if these could be related but in #31 I'm talking about how i event cant import this in a create react app setup, can i ask if you have Ejected your create react app and is in full control over the webpack setup your self?

I'm getting the same problem with create-react-app (not ejected). Even though it's working perfectly, when i'm trying to build the project it fails, getting the same error as @hermanfenderson
Thank you in advance!

@SarantopoulosKon the lib/bundle.js file is gone, see #36 + #39
Make sure to transpile zipcelx if necessary.

Closing as this issue has no actionables.


[Suggestion] Ability to loot coupons

Hi, Archi!
Would you consider to add the capability to loot coupons as well? I understand they are not on category 6, but it might become a handy feature, IMHO.
What do you think?
Best regards,
--r6d2

What next? Steam gifts? CS:GO items?
I really don't think this is on ASF scope. Soon people would ask for looting all games and types ever created. Current LootableTypes are justified only because it's part of the same request that ASF has to do - if that wasn't the case, ASF would not have them either. Even if what you ask can be considered practical and useful, I don't really believe that it justifies another inventory request, not to mention that it's not on ASF scope at all. LootableTypes already went over the scope by introducing everything apart from trading cards and booster packs, I do not want to go above it, sorry.

Actuallly, sometimes it could be useful, because some coupons drop without badge crafting, just because you have some game, etc. But, it is really a different type, so implementing it will clutter the ASF code, and that's not desired (and we already have translations for that). And, the actual use cases are rare, and can be actually handled manually - bot's will accept your trade request, so this is not a lot of hassle, and I doubt you'll need same coupons from 100+ bots.
TL;DR: I'm agree that this feature should not be implemented.

Uh, this needs a separate API-Call? (https://steamcommunity.com/id/[bot]/inventory/json/753/3/?trading=1)

Uh, this needs a separate API-Call? (https://steamcommunity.com/id/[bot]/inventory/json/753/3/?trading=1)

No, this needs a separate request, and ASF is not an inventory management tool to execute it in the first place.

Alright. At least I never needed this feature and never got any coupons for my bots. BTW: Lately you fixed some network-issue which solved SSL-Errors (Mono) for me, just in case this wasn't intended. Thanks anyway :+1:

I do not document many things in the changelog, because otherwise my changelog would need to have 200 lines that not only nobody would read, but also nobody would write - there are commits for exact history.

Major code improvements, optimizations and bugfixes.

This usually indicates stuff being fixed, but without specifying what specifically. It's enough to say that every new ASF version fixes something, even if it's not visible right away because you specifically didn't run into that fatal condition. It's a good idea to always run latest stable, even if you believe that you do not need changes explained in the changelog - there is always lots of stuff "under the hood" that is being improved/fixed/worked on.

Okay, just wanted to let you know in case someone else reports the same problem with the latest or previous stable versions and a lot of bots (~100).


ci: revert disable running the Objective-C integration app (#24478)"

Commit Message:
Additional Description: Re-enables CI job as it should be green again as https://github.com/envoyproxy/envoy/pull/24490 was merged
Risk Level: Low
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/retest


Film data

Past film data
There's a task to take any of the old film data we have from the old site files and to add that data to the csv file of film data.
We might be able to do this e.g. from the command line by running over the old files.
Curating film data
It might be an idea to get the film data in a google sheet so that anyone can curate the data.
We would then download it when we wanted to update the site

I've done some hacky attempts at getting data out of the old site about the films - youtube links, image links, certificates, dates etc.
I did it with this Jupiter notebook: https://github.com/caprenter/shipley-film-society/blob/version2/data.ipynb
Anyway, there is no more data that we 'could' use if we wanted for the past films.
Outstanding task:
Descriptions are in the https://github.com/caprenter/shipley-film-society/blob/version2/data.txt
file.
I can't find a clever way to get these out of there and into the spreadhsheet without copy and paste.
Although maybe turning itinto a _data/ resource with the same id as the data in the sheet might work...
(so you pull both the spreadsheet and the data from a re-formatted text file.
:
description: "lorum"
maybe?

I'm closing this as we've got the data in a csv file, and we're using it in many ways!


Launch Webview multiple times will pollute the Quick Open view

VSCode Version: 1.26.1
OS Version: macOS High Seirra

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

This is caused by ea0315e54a350f0b4dcc1c2a9d3978c7451a45cc which reverted 37209a838e9f7e9abe6dc53ed73cdf1e03b72060
@bpasero What is the right fix here? Closed webviews should never be included in the recently opened list. Is there a way to remove the entry from the list when a webview editor is closed?

@mjbvz something must be different for that "Coding Cat" example compared to a markdown preview (which also uses webview). Typically an entry in the history is removed when its input gets closed and thereby disposed:
https://github.com/Microsoft/vscode/blob/d8b0484dc878825898819bbc9d55578e5d3816d5/src/vs/workbench/services/history/electron-browser/history.ts#L424
A reproducible case would be helpful.

@octref I can reproduce now.
@mjbvz the history uses the EditorInput.matches() method to compare entries. It looks like the check if very weak for webview editors and should probably take into account more state (like the resource URI).

@mjbvz yeah sounds good

As discussed, a possible solution is:

implement matches() properly by checking for the ID
serializing the ID down and restore it after restart


[Live Component][Dependent Form Fields] reference lost during submit cause unwanted insertion instead of update

Hello,
I'm using the dependent form fields in a project and I noticed I guess a bug.
In my form type, I have this code:
$builder
...
  ->addDependent('shippingAddress', 'shippingSameAsBillingAddress', function (DependentField $field, ?bool $billingSameAsShippingAddress) use ($options) {
      if (false === $billingSameAsShippingAddress) {
          $field->add(UserAddressType::class, [
              'mapped' => false,
              ...
          ]
          );
      }
  });

Notice this is an unmapped field.
During the POST_SET_DATA event, I populate the field with setData() and an entity of class UserAddress. Everything works well.
The problem comes with the submit operation. Doctrine tries to insert a new entity instead of updating the existing.
A. I checked the state of my form data, and in the form PRE_SUBMIT event, the id is still here:

Then I checked in the form SUBMIT event, and the id is lost at this point:

Thus, it tries to create a new userAdress.
B. I tried replacing the dependent field with a classic one, and it works as expected (updating the entity instead of trying to create a new one).
C. might be related to this issue as I didn't get the problem when creating a new one. Only when editing an existing.

The dependant form field is not an UX package, so i'll do what i can :) Do you think you could create a minimal reproducer that show the bug, so we can have a look ?


I cant see the pipeline detail with a status is cancelled by the id

What is version of KubeSphere DevOps has the issue?
v3.4.0
How did you install the Kubernetes? Or what is the Kubernetes distribution?
No response
What happened?
I want to enter a pipeline to see the detail with status is cancelled, but the id is gray and i cant do this by clicking on the id

Relevant log output
No response
Additional information
No response

A is able to click while B is not able to click

/kind need-to-verify

/kind need-to-verify

/close