Decontam R package functionality added

This pull request contains the addition of actions that encompass the functionality of the decontam R package.
The additional actions are;

decontam-identify runs the main decontam algorithm and returns a metadata object of the standard output from the decontam R package.
decontam-score-viz allows the user to visualize read/ASV loss at a contaminant threshold set by the user based on the decontam scores generated in decontam-identify
decontam-remove allows the user to remove all contaminant identified ASVs determined by the threshold set by the user.

Appropriate tests and semantic types were added to support the actions mentioned above.

I believe that this pull request is ready for code review. Let me know if there is anything more I need to do to facilitate the next steps! @nbokulich @benjjneb

@ebolyen  No worries, I appreciate you taking the time to go through everything! Since all of the user api changes were relatively small fixes I added all of them into one pull request which I pushed to github and it has passed all of the checks. For the implementation comments/fixes I will respond to each comment independently, as they seem to be a bit larger. Also thanks for including the github recommendations at the beginning of the comments! I will make sure to follow them in future qiime pull requests.

@ebolyen with the last push https://github.com/qiime2/q2-quality-control/pull/74/commits/59c3688574842586becb375abf4588bbaafce80c all of the requested changes should be in. I also added an expanded error catching module on the python side, to catch user input errors in regard to the column names inputs of decontam-identify Let me know what you think!

Hey @ebolyen no worries! I will try and get all the requested changes in by the end of the weekend!

@ebolyen in the latest pull request I added functionality to check that there are at least 5 controls for the prevalence method (recommended amount for decontam). However, I am getting an error in the build on github where it says it cannot verify the certificate. Do you have any insight? Is this an error on my end?

I am not sure what happened but I guess that it fixed itself (after a reboot on my end) just for clarities sake the push that contains the updated error catching for the number of Control samples can be found here c11ff0259441ba2bd505f9c3305e0ba9254f6f7c Let me know what you think! @ebolyen

Looks like you (and everyone) ran into this: https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/

The updates look nice, I like the error message. Only trouble is I seem to still be having the original issue instead of your new error raising as expect.
It looks like I was wrong about what the source of the issue was for the NaN generation.
Here's what I see with the following prints added (for debugging):
diff --git a/q2_quality_control/decontam.py b/q2_quality_control/decontam.py
index 36cf614..46d8ee8 100644
--- a/q2_quality_control/decontam.py
+++ b/q2_quality_control/decontam.py
@@ -62,6 +62,8 @@ def _check_column_inputs_helper(table, metadata,
                 metadata[prev_control_column] == prev_control_indicator]
             prev_sample_names = prev_controls.index.values
             indic = 0
+            print(prev_sample_names)
+            print(table.index[table.index.isin(prev_sample_names)])
             for name in prev_sample_names:
                 if name in table.index.values:
                     indic = indic + 1
@@ -100,6 +102,7 @@ def _check_column_inputs(table, metadata, method, freq_concentration_column,

 def _decontam_identify_helper(track_fp, method):
     df = pd.read_csv(track_fp, sep='\t', index_col=0)
+    print(df)
     df.index.name = '#OTU ID'
     df = df.drop(df.columns[(len(df.columns)-1)], axis=1)
     if method == 'combined':
@@ -119,6 +122,9 @@ def decontam_identify(table: pd.DataFrame,
     metadata = metadata.to_dataframe()
     _check_column_inputs(table, metadata, method, freq_concentration_column,
                          prev_control_column, prev_control_indicator)
+
+    if len(table.index & metadata.index) > len(table.index):
+        raise Exception  # just in case?
     with tempfile.TemporaryDirectory() as temp_dir_name:
         track_fp = os.path.join(temp_dir_name, 'track.tsv')
         ASV_dest = os.path.join(temp_dir_name, 'temp_ASV_table.csv')

print(prev_sample_names)
['NTC' 'RB-05122022' 'RB-razor-blade' 'RB-wipe-tweezer-spatula'
 '515rcbc316-NTC' '515rcbc328-NTC' 'RB-10-11-22' 'RB-10-11-22-2'
 'RB-10-4-22' 'RB-8-11-22' 'RB-8-17-22' 'RB-8-25-22' 'RB-8-31-22'
 'RB-9-1-22' 'RB-9-13-22' 'RB-9-14-22-1' 'RB-9-14-22-2' 'RB-9-14-22-3'
 'RB-9-22-22' 'RB-9-27-22' 'RB-9-28-22' 'RB-9-29-22' 'RB-9-8-22-1'
 'RB-9-8-22-2' 'RB-Bucket11-12' 'RB5-12-22-1']

print(table.index[table.index.isin(prev_sample_names)])
Index(['515rcbc316-NTC', '515rcbc328-NTC', 'RB-10-11-22', 'RB-10-11-22-2',
       'RB-10-4-22', 'RB-8-11-22', 'RB-8-17-22', 'RB-8-25-22', 'RB-8-31-22',
       'RB-9-1-22', 'RB-9-13-22', 'RB-9-14-22-1', 'RB-9-14-22-2',
       'RB-9-14-22-3', 'RB-9-22-22', 'RB-9-27-22', 'RB-9-28-22', 'RB-9-29-22',
       'RB-9-8-22-1', 'RB-9-8-22-2', 'RB-Bucket11-12', 'RB-razor-blade',
       'RB-wipe-tweezer-spatula', 'RB5-12-22-1'],
      dtype='object')

print(df)
                                          freq  prev  p.freq  p.prev   p  contaminant
0001d123420b59585627edf5a1292ae8  6.206727e-05    11     NaN     NaN NaN        False
000a61b8f927a303e169679c636d8f6c  2.452755e-07     1     NaN     NaN NaN        False
000ada501122ff6c83799b3565d1d9e7  3.335465e-05    16     NaN     NaN NaN        False
000b37e67b2e6ff90ef6e3949a402e70  4.938187e-07     1     NaN     NaN NaN        False
000b3d48bd30cf60377e986d8d727c5f  1.249071e-07     1     NaN     NaN NaN        False
...                                        ...   ...     ...     ...  ..          ...
fffa52555f0d542613a26955a558d76d  2.361501e-06     3     NaN     NaN NaN        False
fffc93d87d232a0aaf7e18cac36a4a9d  1.927931e-05     1     NaN     NaN NaN        False
fffd6dfc320a35b21b00062ca137ca69  1.030059e-06     1     NaN     NaN NaN        False
fffda7901ae243fa9f9ca3348aad4545  3.835434e-07     1     NaN     NaN NaN        False
fffe4b14eb1d37084d271a953b00ceba  9.021392e-07     2     NaN     NaN NaN        False

[26935 rows x 6 columns]

I should be able to send you this data out-of-band if you wanted. In the meanwhile, I need to find another dataset with controls.

Looks like you (and everyone) ran into this: https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/

Ooop yeah that looks like that will do it

The updates look nice, I like the error message. Only trouble is I seem to still be having the original issue instead of your new error raising as expect.
It looks like I was wrong about what the source of the issue was for the NaN generation.
Here's what I see with the following prints added (for debugging):
diff --git a/q2_quality_control/decontam.py b/q2_quality_control/decontam.py
index 36cf614..46d8ee8 100644
--- a/q2_quality_control/decontam.py
+++ b/q2_quality_control/decontam.py
@@ -62,6 +62,8 @@ def _check_column_inputs_helper(table, metadata,
                 metadata[prev_control_column] == prev_control_indicator]
             prev_sample_names = prev_controls.index.values
             indic = 0
+            print(prev_sample_names)
+            print(table.index[table.index.isin(prev_sample_names)])
             for name in prev_sample_names:
                 if name in table.index.values:
                     indic = indic + 1
@@ -100,6 +102,7 @@ def _check_column_inputs(table, metadata, method, freq_concentration_column,

 def _decontam_identify_helper(track_fp, method):
     df = pd.read_csv(track_fp, sep='\t', index_col=0)
+    print(df)
     df.index.name = '#OTU ID'
     df = df.drop(df.columns[(len(df.columns)-1)], axis=1)
     if method == 'combined':
@@ -119,6 +122,9 @@ def decontam_identify(table: pd.DataFrame,
     metadata = metadata.to_dataframe()
     _check_column_inputs(table, metadata, method, freq_concentration_column,
                          prev_control_column, prev_control_indicator)
+
+    if len(table.index & metadata.index) > len(table.index):
+        raise Exception  # just in case?
     with tempfile.TemporaryDirectory() as temp_dir_name:
         track_fp = os.path.join(temp_dir_name, 'track.tsv')
         ASV_dest = os.path.join(temp_dir_name, 'temp_ASV_table.csv')

print(prev_sample_names)
['NTC' 'RB-05122022' 'RB-razor-blade' 'RB-wipe-tweezer-spatula'
 '515rcbc316-NTC' '515rcbc328-NTC' 'RB-10-11-22' 'RB-10-11-22-2'
 'RB-10-4-22' 'RB-8-11-22' 'RB-8-17-22' 'RB-8-25-22' 'RB-8-31-22'
 'RB-9-1-22' 'RB-9-13-22' 'RB-9-14-22-1' 'RB-9-14-22-2' 'RB-9-14-22-3'
 'RB-9-22-22' 'RB-9-27-22' 'RB-9-28-22' 'RB-9-29-22' 'RB-9-8-22-1'
 'RB-9-8-22-2' 'RB-Bucket11-12' 'RB5-12-22-1']

print(table.index[table.index.isin(prev_sample_names)])
Index(['515rcbc316-NTC', '515rcbc328-NTC', 'RB-10-11-22', 'RB-10-11-22-2',
       'RB-10-4-22', 'RB-8-11-22', 'RB-8-17-22', 'RB-8-25-22', 'RB-8-31-22',
       'RB-9-1-22', 'RB-9-13-22', 'RB-9-14-22-1', 'RB-9-14-22-2',
       'RB-9-14-22-3', 'RB-9-22-22', 'RB-9-27-22', 'RB-9-28-22', 'RB-9-29-22',
       'RB-9-8-22-1', 'RB-9-8-22-2', 'RB-Bucket11-12', 'RB-razor-blade',
       'RB-wipe-tweezer-spatula', 'RB5-12-22-1'],
      dtype='object')

print(df)
                                          freq  prev  p.freq  p.prev   p  contaminant
0001d123420b59585627edf5a1292ae8  6.206727e-05    11     NaN     NaN NaN        False
000a61b8f927a303e169679c636d8f6c  2.452755e-07     1     NaN     NaN NaN        False
000ada501122ff6c83799b3565d1d9e7  3.335465e-05    16     NaN     NaN NaN        False
000b37e67b2e6ff90ef6e3949a402e70  4.938187e-07     1     NaN     NaN NaN        False
000b3d48bd30cf60377e986d8d727c5f  1.249071e-07     1     NaN     NaN NaN        False
...                                        ...   ...     ...     ...  ..          ...
fffa52555f0d542613a26955a558d76d  2.361501e-06     3     NaN     NaN NaN        False
fffc93d87d232a0aaf7e18cac36a4a9d  1.927931e-05     1     NaN     NaN NaN        False
fffd6dfc320a35b21b00062ca137ca69  1.030059e-06     1     NaN     NaN NaN        False
fffda7901ae243fa9f9ca3348aad4545  3.835434e-07     1     NaN     NaN NaN        False
fffe4b14eb1d37084d271a953b00ceba  9.021392e-07     2     NaN     NaN NaN        False

[26935 rows x 6 columns]

I should be able to send you this data out-of-band if you wanted. In the meanwhile, I need to find another dataset with controls.

hmmmm yeah that is interesting, and yes if you wouldn't mind sending it to me that would be awesome! how would you like to do that?

@ebolyen I think that I misunderstood what you were saying earlier, but the most recent push should have all of the necessary fixes which can be found here: ed85a52aee17b6dffebf650aa9bcff5c6609b8d4
-all unnecessary columns in the output are now dropped from decontam identify

NAs are coerced to 0 only before plotting in decontam score-viz and an error is thrown if all p scores are 0's

Let me know what you think!
Note: The change in the code will leave in those values which had NA in the p column after decontam-remove is used. Do you think I should leave it this way or automatically remove them when decontam-remove is run?

@jordenrabasco Before going further here I think we should talk about the NA handling. In general, coercing NAs to zeros is probably not desirable: 0 indicates an extremely high confidence that the feature is a contaminant, whereas NA indicates no confidence in making any assignment.

@ebolyen I conferred with @benjjneb and made the appropriate changes to keep the integrity of the data in regard to the NAs. Decontam-identify will report NAs  and decontam-remove will keep  NA ASVs  in the final output. In decontam-score-viz the  NAs  are not plotted, and an error is thrown when all p scores are  NAs , this is all included in the latest pull found here 56e798d18757e21895dc71a2749f121d9ac5ffbc. Could you also send me the dataset you are using to have decontam returns all  NAs? I would like to replicate the error locally and make sure that it isn't an implementation issue that is producing this result. Thanks!

I don't quite have time to do this at the moment, but we should add some tests where the ID ordering doesn't match between the table and metadata, and also one where the metadata is a superset of the table (which is almost expected most of the time).

Everything looks great! I appreciate you doing all that are there any other changes you need me to make? I totally agree in regards to the addition of tests, is this something that needs to be added before the merge or could it be done after the release next week?

Thought about it over the evening, and I think we should add some tests (I'm not overly confident in my R index permutation). If you have time, that would be amazing, otherwise I can get to it maybe tomorrow morning.
The goal would be two-fold, show that the metadata in a different order than the table still produces the same output as the non-permuted test, and also have some extra IDs in the metadata.

Okay that all sounds good to me. I will try to start on making the tests tonight, but if not tomorrow definitely morning.

@ebolyen the most recent push acd18ca38701f8a33d8c59b1a93dfeeb4bdc20be should have all of the required tests that you mentioned previously. I just had to alter one line in run_decontam.R, but other than that everything ran smoothly! Do you think we should add tests to cover the case where the ASV table has more samples than the metadata file?

Thanks @jordenrabasco, yeah we probably should, and our approach in that situation is to error with a message indicating that there was no metadata for these ids (with a printout of the missing IDs).
In our experience that situation is usually unintentional, and the user has gone off in the wrong direction, so erroring is the best bet.

@ebolyen no problem! I added a catch on the python side of things in the latest push dfd2ca65b2d8a7284e069700c63f65154e5efe9b where if there is a sample without metadata it raises an error and prints out those sample names without associated metadata (I didn't write a full on test as we have not in the past for similar cases). Let me know what you think!

Thanks @jordenrabasco! Just wanted to update that we're pushing the release back a hair (for unreleated and time consuming reasons). I'll give this a fresh look in the morning :)


Overflow Test

@radencode - I didn't want to clutter up the electron repo more.
I uploaded a new test version, I have tested it and fixes both issues. Would you confirm?
Download: R.zip

@thesbros No worries
Yes it does, thank you. I've been fighting this for a while. Good job. ;)
What were you able to fix it?

@radencode This is how I fixed it: https://github.com/thesbros/electron/commit/f0ea66582ac4ebeae240660a4c60ce63f2464d18
I'm going to submit a PR tomorrow once I fix the DPI > 100% issues with it.

@thesbros Thank you, sounds great.
On Tue, Feb 28, 2017 at 8:38 PM Oden<EMAIL_ADDRESS>wrote:

@radencode https://github.com/radencode This is how I fixed it: f0ea665
https://github.com/thesbros/electron/commit/f0ea66582ac4ebeae240660a4c60ce63f2464d18
I'm going to submit a PR tomorrow once I fix the DPI > 100% issues with it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/thesbros/electron/issues/1#issuecomment-283242840,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYHUoCTnbrGL4I_8eiV8hNAbbC7PPss3ks5rhPY3gaJpZM4MPIXw
.

@thesbros I just updated my application repo with your electron build and it works just fine and both issues are completely fixed on 100%, 125% and 200% DPI.
I'm not sure there is any DPI issue, are you getting an issue with it?

@radencode Yes - when I increase my DPI the window gets cut off like before, you need to sign out and back in for the DPI to correctly apply. Did you do that and it still works?

@thesbros Huh that's weird?!
Yes I did sign out and tested it. In fact I have a 4K laptop which is 300% by default and it works fine.

@radencode
Perhaps it's not as noticeable in your application? I made a page with a 1px red border around it, and with higher DPI you can't see them.
100% DPI (zoom in to see borders)
175% DPI

@thesbros yes that very well could be how it is. I'm going to test it tonight and let you know.

@thesbros I just tested it on my laptop which has 300% dpi and yes it does have ~2px of overlap.

Yes I've submitted PR8808.
I fixed some of the DPI issues in that PR - but the cut off seems to be a separate issue. On high DPI, the edges of frameless windows will be cut off a by a pixel or two, even unmaximized. This doesn't happen on Electron 1.4.x - only 1.5 and higher.

@thesbros Yeah that makes sense, well 1 or 2px is not a big issue vs how it was before so thank you very much for the fix.

@thesbros have you fixed the DPI issue yet?

@radencode Yes, I have in this PR. Just the issue is that overriding the event to fix the DPI issue, causes rounded edges when the window is not maximized. That is the only issue right now.

I tried to re-compile electron-edge but their instructions are very confusing and I am getting no where.

@radencode Sorry, I'm not familiar with electron-edge. Perhaps replacing the node 7 dll with a node 6 dll from an older version of electron would work?

@thesbros Yeah I tried that to see but it gave me and error. Alright I thought I should ask you just in case. Thank you.

@thesbros Hey man when you built that fix for the oversized window you built with node v6.5.0, how did you do that. Because when I build it right now it comes out v7.4.0 and I need v6.5.0. Can you help please? And thank you for all of your help.

@thesbros I fixed that issue but now my issue is that when I run electron-packager the border issue comes back. Do you know if electron-packager can use the node_module/electron to build the app?

Seems not. There is an old issue about it (#187) - The only option is to use electron-builder which is generally more configurable.

Seems not. There is an old issue about it (187) - The only option is to use electron-builder which is generally more configurable.

@thesbros I was looking into that as well. I will give it a go, thank you.


New default profraw file name in Rust 1.65

Hi @taiki-e!
I just wanted to give you a heads up that we are changing the default profraw file name in Rust 1.65 (https://github.com/rust-lang/rust/pull/100384). Looking over your crate, I don't believe this will affect you since you explicitly set LLVM_PROFILE_FILE but wanted to let you know anyway.

Thanks for the heads up!
As you mentioned, we set LLVM_PROFILE_FILE so it would not be affected.
https://github.com/taiki-e/cargo-llvm-cov/blob/f7870c5df548613f62de4aa472db552a669ed09b/src/main.rs#L230
However, https://github.com/rust-lang/rust/pull/100384 may help avoid the problem of profiles being ignored when LLVM_PROFILE_FILE is removed.
https://github.com/taiki-e/cargo-llvm-cov/blob/863a8a053c3ded2863b032fbe024c7a74bfa68d0/tests/fixtures/crates/bin_crate/tests/test.rs#L17-L24

Closing -- We are not affected by this issue.


##[error]The signing api didn't complete in time (317 seconds), failed to sign SBOM.

Build
https://dev.azure.com/dnceng/internal/_build/results?buildId=2368869
Error:
##[error]The signing api didn't complete in time (317 seconds), failed to sign SBOM.

Build leg reported
No response
Pull Request
No response
Known issue core information
Fill out the known issue JSON section by following the step by step documentation on how to create a known issue
 {
    "ErrorMessage" : "",
    "BuildRetry": false,
    "ErrorPattern": "The signing api didn't complete in time .*, failed to sign SBOM",
    "ExcludeConsoleLog": false
 }

@dotnet/dnceng

Release Note Category

[ ] Feature changes/additions
[ ] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description
Additional information about the issue reported
No response

Known issue validation
Build: :mag_right: https://dev.azure.com/dnceng/internal/_build/results?buildId=2368869
Error message validated: The signing api didn't complete in time .*, failed to sign SBOM
Result validation: :x: Known issue did not match with the provided build.
Validation performed at: 2/2/2024 11:13:50 PM UTC

Report
Summary

24-Hour Hit Count
7-Day Hit Count
1-Month Count

0
0
0

closing as this was not a leg that caused the pipeline to fail.


Unable to Validate the Cipher using Kesterl in Azure

Hi,
We are Developing  WEB API project using AspnetCore 3.0 and hosted on the Azure Cloud.
We are trying to validate the week ciphers using kestrel option. But Kestrel not validate the Cipher during API Calls. Below is our kestrel configuration in Program.cs file. Please guide us to achieve our requirements.
 webBuilder.UseKestrel(serverOptions =>
                    {
                        Log.Debug("Current Process :" + Process.GetCurrentProcess().ProcessName);

                        serverOptions.ListenAnyIP(443, listenOptions =>
                        {

                            Log.Debug(listenOptions.IPEndPoint.Port.ToString());
                            Log.Debug(listenOptions.IPEndPoint.Address.ToString());

                            Log.Debug("Listen Options");
                            //listenOptions.UseHttps("testCert.pfx", "testPassword");
                            listenOptions.UseHttps("public_privatekey5.pfx", "BENCHMARK");

                            Log.Debug("I am here");
                            listenOptions.Use((context, next) =>
                            {
                                Log.Debug("I am here-1");
                                var tlsFeature = context.Features.Get<ITlsHandshakeFeature>();
                                //Log.Debug("tlsFeature :" + tlsFeature.ToString());
                                if (tlsFeature != null)
                                {
                                    Log.Debug("tls alg:" + tlsFeature.CipherAlgorithm);
                                }
                                else
                                {
                                    Log.Debug("tls is null");

                                }
                                if (tlsFeature.CipherAlgorithm == CipherAlgorithmType.Aes256 || tlsFeature.CipherAlgorithm == CipherAlgorithmType.Aes128)
                                {
                                    throw new NotSupportedException(
                                        $"Prohibited cipher: {tlsFeature.CipherAlgorithm}");
                                }

                                return next();

                            });
                        });

                    });

Hi,
I checked the Listening IP and port by using the below code .
var serverAddressesFeature =
app.ServerFeatures.Get();
serverAddressesFeature.Addresses
it shows http://<IP_ADDRESS>:15535.
How can we change the listening IP and port in Kesterl?

http://<IP_ADDRESS>:15535 looks like you're hosting behind IIS using the OutOfProcess reverse proxy (ANCM). That terminates HTTPS so you won't see any TLS information in Kestrel. You'd have to move to IIS InProcess to get that kind of information, I think it's exposed as server variables there.

As you instructed, We have changed the options to InProcess but now i'm getting below error.
InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
Please find the attached screen shot for more details about the error.

Please find my code below.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
                 //    webBuilder.UseUrls("http://localhost:35703");
                webBuilder.UseIISIntegration();
                webBuilder.UseIIS();
                webBuilder.UseKestrel();
                webBuilder.ConfigureKestrel((context, serverOptions) =>
                {
                    serverOptions.ListenAnyIP(0, conf =>
                    {
                        conf.KestrelServerOptions.AddServerHeader = false;
                        conf.UseTlsFilter();
                    });
                });
                webBuilder.UseStartup<Startup>();
            });

ConfigureWebHostDefaults already includes UseIISIntegration, UseIIS, and UseKestrel.
Try this:
  public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                     //    webBuilder.UseUrls("http://localhost:35703");
                    webBuilder.ConfigureKestrel((context, serverOptions) =>
                    {
                        serverOptions.ListenAnyIP(0, conf =>
                        {
                            conf.KestrelServerOptions.AddServerHeader = false;
                            conf.UseTlsFilter();
                        });
                    });
                    webBuilder.UseStartup<Startup>();
                });

I tried your code but it haven't call UseTlsFilter() middleware when I call the endpoints. I wanted to validate the cipher while client calling the endpoints.
UseTlsFilter code:
public static class TlsFilterConnectionMiddlewareExtensions
{
public static IConnectionBuilder UseTlsFilter(
this IConnectionBuilder builder)
{
return builder.Use((connection, next) =>
{
var tlsFeature = connection.Features.Get();
Log.Debug("Tls Validation Entered");
if (tlsFeature.CipherAlgorithm == CipherAlgorithmType.Null)
{
throw new NotSupportedException("Prohibited cipher: " +
tlsFeature.CipherAlgorithm);
}
            return next();
        });
    }

You'd have to move to IIS InProcess to get that kind of information, I think it's exposed as server variables there.

https://docs.microsoft.com/en-us/iis/web-dev-reference/server-variables
And some 3.0 examples in here:
https://github.com/aspnet/AspNetCore/pull/11007/files

Yes, As you said, I Changed the HostingModel as InProcess and ran the code but it will not trigger the UseTlsFilter() middleware. when I ran the endpoints

Kestrel APIs don't apply to InProcess, you need a request middleware that looks for that information in server variables instead.
app.Use((httpContext, next) =>
{
    var serverVar = httpContext.GetServerVariable("CRYPT_PROTOCOL");
});

Hi,
thanks for the code, it is working in IIS but We are getting blank value once we hosted the application into Azure Web app.
It is a major obstacle to move the project to Live.
Please kindly help us on this issue.

Those variables were added in a fairly recent version of Windows, but I don't know which specific version, or if Azure Web apps are running that version.
@shirhatti or @blowdart might know.

Thanks Chris Ross,
I think Azure Web app using windows 10 OS.
Hi @shirhatti  or @blowdart,
Can you please assist on this?

is there any other way can we achieve this in AspNetCore in the azure environment(like using kestrel server etc..)?
I think there is an issue in ASPNetCore to handle the cipher validation in azure.
Please consider this as high priority and provide some solution for this validation in AspNetCore.

is there any other way can we achieve this in AspNetCore in the azure environment(like using kestrel server etc..)?
I think there is an issue in ASPNetCore to handle the cipher validation in azure.
Please consider this as high priority and provide some solution for this validation in AspNetCore.

Related: https://github.com/aspnet/AspNetCore/issues/3819

Please consider this as high priority and provide some solution for this validation in AspNetCore.

If this is urgent then please contact Microsoft Support.

We'll put this on the backlog to consider adding direct support for querying this value, we don't have plans to do it in the upcoming 3.1 release at this time. If you are having difficulty accessing the server variable in Azure App Service, please contact Azure Support.

I found that App Service runs an old version of Windows that does not support this feature. There won't be any way to get that information in your app.

Hi Criss Ross  and Team,
Thanks for your valuable assistance and effort.
We are already discussing with the azure team for this cipher validation and they are guiding us to achieve this within azure environment. Our team is working on that as well.
I hope this issue will be resolved soon.


Is it possible Kint to be made Turbolinks friendly?

https://github.com/turbolinks/turbolinks
Turbolinks JavaScript makes page loading extremely fast, this usage scenario is really wothwhile to be kept in mind. But currently some Kint's Javascript crash when I use Turbolinks and unfortunately I had to turn Kint off. Is is possible Kint to be adapted to work under Turbolinks too?

I've never used it so I don't know what's going wrong. Do you have an error in the console? Can you set up a demo page where it crashes?

I develop an application starter with CodeIgniter 4 that uses Kint. https://github.com/ivantcholakov/starter-public-edition-5
Enabling the debugging bar: platform/applications/front/Config/Boot/development.php :
defined('CI_DEBUG') || define('CI_DEBUG', true);    // This turns Kint on.

And here is what I see:

With
defined('CI_DEBUG') || define('CI_DEBUG', false);

I turn the debugging bar off to deal with this error.
Turbolinks has for exmple its own event system, because it works with AJAX calls (except for the first loaded pages). Events like 'turbolinks:load', 'turbolinks:render'. I guess if Turbolinks presense is detected and some Javascripts get slightly adapted there is a chance for success. But I can't do this alone.
Turbolinks is worthwhile, it makes pages very fast! Actually, it almost makes JavaScript frameworks useless.
I will make very soon another alpha release and I will notify you, so you can have a tagged code to see the problem.

"Maximum call stack size exceeded" with a call stack that seems to be going through new newXHR over and over looks like an issue in turbolinks, rather than in kint.
The only other potential culprit would have to be the initialization code run on load event. Normally that should only happen once, and I have no idea what turbolinks is doing with it, though according to their documentation it should work just fine.
I'll wait for you to have some demo code for me to look at

https://github.com/ivantcholakov/starter-public-edition-5/releases/tag/v5.0.0-alpha.7
Installation:

Apache 2.4, PHP >= 7.2.5.
The downloaded site might be placed within a subdirectory (no virtual host is needed, the system will autodetect its URL, but run it on localhost domain or <IP_ADDRESS>, otherwise a trusted domain name should be set in platform/common/Config/App.php).
Edit within platform/applications/front/Config/Boot/development.php :

defined('CI_DEBUG') || define('CI_DEBUG', true);

Swithch to 'development' environment. Within the directory platform/applications/front/ create a file named .env (starts with a dot) with the following content:

#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------

CI_ENVIRONMENT = development

And then the debugging bar (or a small icon, bottom-right) would be visible. Click on some pages and the JavaScript crash would be seen.
I will try to examine what can be done, but I am not confident about the result. I am getting familiar with this technology these days.

I will try to debug alone, if I find something useful I'll let you know. I don't know whether the debug bar is part of your project or not, excuse me if I addressed the issue to a wrong place.

I don't know whether the debug bar is part of your project or not

It's not, kint just provides the dumper. Debug bars tend to provide more integrated information in a framework.
Try disabling your debug and putting this in a page:
\Kint::$enabled_mode = true;
\Kint::dump('test');

If kint shows up on the page and nothing explodes then it's the debug bar that's broken.
I can't get your repo working here, so I can't debug any further.
 So, the problem is not here. Thank you for your kindness.

Somehow I've made a patch, the debugging bar refreshes its data only when the page is refreshed, but at least this is something. Thank you once again. :)


false positive from manifest_whitespace_opening_brace_before

linter insists on adding empty space in a list of parameters, when one of them is an empty hash.
For example
$foo = lookup('foo::bar',Hash,'first',{})
ERROR: there should be a single space before an opening brace on line 1 (check: manifest_whitespace_opening_brace_before)

This sounds more like we need an extra check that adds spaces after a comma (,)
In my opinion, the correct result should be:
$foo = lookup('foo::bar', Hash, 'first', {})

(See #17)

I get the same error even if there is a single space before the opening brace, e.g. for the first two lines of the following I get the error for each:
46  $slave_ifnames = $bonds.reduce( {}) |$l, $i| {
47    $l + split($i['attached_devices'], /,/).reduce( {}) |$sl, $d| { $sl + { $d => $i['identifier'] } }
48  }

result in:
manifests/network.pp - ERROR: there should be a single space before an opening brace on line 46 (check: manifest_whitespace_opening_brace_before)
manifests/network.pp - ERROR: there should be a single space before an opening brace on line 47 (check: manifest_whitespace_opening_brace_before)

But there is actually a single space before each opening brace {.

@gvde it seems the error message is wrong; if I remove the space, the linter (v0.2.9) is happy:
        $slave_ifnames = $bonds.reduce({}) |$l, $i| {
          $l + split($i['attached_devices'], /,/).reduce({}) |$sl, $d| { $sl + { $d => $i['identifier'] } }
        }

I'll look into fixing the error message.

@jovandeginste I agree. It looks much better without the space. However, then the validate using pdk 2.5 fails with the same error:
pdk (ERROR): puppet-lint: there should be a single space before an opening brace (manifests/network.pp:46:34)
pdk (ERROR): puppet-lint: there should be a single space before an opening brace (manifests/network.pp:47:52)

which is why I put those space in there to begin with. pdk 2.5.0 uses puppet-lint-manifest_whitespace-check-0.1.17, so I guess I'll have to ignore that error with pdk until they update to a newer version of puppet-lint-manifest_whitespace-check...

That was indeed a bug in the linter at that point, which was reported and fixed since...

pdk 2.6.0 is out now. It comes with 0.2.9 and doesn't complain about those spaces anymore...

Thank you for the feedback; I will now close the issue.

I have updated to 0.2.9 and the problem is still there
$ gem list|grep white
puppet-lint-manifest_whitespace-check (0.2.9)

$ cat foo.pp
$foo = lookup('foo::bar',Hash,'first',{})

$ puppet-lint foo.pp
ERROR: there should be a single space before an opening brace on line 1 (check: manifest_whitespace_opening_brace_before)

Oh, I might have, but why ? Parameters are separated by , without space, what is so special about the last one?

Part of my remark was that I believe they all should have a space after each , (so that might be an improvement to my linter).
What's special about the last one, is that it is the only one which has braces ({). That is the main token I was linting until now. Quotes (') might be another good one to start linting...


Add Dependency Depth Option

It may be cool to add an option where you can determine the depth of the tree. Currently the tool only goes one layer deep (getting all packages for the virtual env you specify and what packages they require: 2-levels deep). What this doesn't allow for is going even further (3+ levels deep) to see what packages of packages of packages require.

Although this would be a cool feature for sure, it won't work with the current method of retrieving package details as we need to pass in a path of the package and in a virtual environment, there are no local copies of the dependencies of dependencies. I may revisit this in the future but for now will close this.


Unable to npm pack scoped package

Type of Issue
[x] Bug Report
[ ] Feature Request

Description
Running ng-packagr then npm pack in dist folder fails if the package.json name is scoped:
"name": "@foo/bar"

The npm pack generates this error message:
404 Not Found: @foo/bar@latest
Tried npm pack @foo/bar but same result.
How To Reproduce
See descriptions
Expected Behaviour
Running npm pack works with scoped package name.
Version Information
 "ng-packagr": "^1.5.0-rc.1",

Can you please provide a repro?

Indeed that is the issue as seen here. Rolling back to npm 5.3 should fix the problem.

Please see npm's project page / documentation / issue tracker as  the error you describe is from npm pack

Thanks for investigating this and for the workaround!


Generator: Remove unnecessary statement prepares from Config/Devices

As per the discussion in the previous PR, this is a minimal PR that does the following:

Updates go-dqlite so that we can error out when queries have a large number of parameters.
Moves QueryScan over to the query package, decoupling it from ClusterTx so that we can use it with the generator.
Change code generation for Config and Devices to drop the unnecessary prepare(tx, code) called before executing the query, in favour of using QueryScan.

I moved QueryScan over right now so that the change introduced later with its rowFunc callback also applying to SelectObjects.
I'll add another PR for cleaning up the panics in the cluster package.

@masnax or maybe query.ExecScan() what do you think?


Support different image formats

I have made a video in a portrait format and would like to display the thumbnail in the same format. Something like an URL parameter for cropping the preview image would be a great addition!

@LinqLover Can you please post an easy to replicate scenario? i.e. sample video, actual & expected output.

Sorry, probably "format" was the wrong terminus. I was referring to the aspect ratio of images. Take an arbitrary portrait mode from YouTube and the thumbnail will still have a landscape ratio - it would be nice if you could use a URL like https://yt-embed.herokuapp.com/embed?v=3BYNj6Yvl8I&w=1080&h=1920, or just &res=portrait, or something similar. Just an idea :)

I added a change in https://github.com/0xbsec/yt-embed/commit/351066318b421d4e4f7f68707e59bcb24dc76217 so that you'll be able to specify which image format you need:
https://yt-embed.herokuapp.com/embed?v=DrI2lUXL1no&img=0
List of formats: https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api
Please let me know if this solve you issue.

Thank you, so there is no possibility to retrieve a portrait-mode thumbnail?


Fix actions fetching logic and loading state, prevent duplicate toasts

Fix the bug where action steps would not expand sometimes. This was because when a fetch was running and the user clicked "expand" it would not propagate the expansion request to the backend, leaving the UI state invalid. Fixed this by adding a force flag.
When a fetch failed, it would just throw the error and the browser would dump it into the console, invisible to the user. Show a toast in such a case.
Add a dedicated loading state to steps to ensure they can not get stuck in that state when cursor remains at null, for example when a fetch error happened.

Also, because in the actions view, fetches can fail repeatedly because of the refreshing, I saw the need to introduce a deduplication for toasts, so if an attempt is made to raise a toast with the same message and level, it will suppress opening them.

Could we split these as two PRs for easier review?

Can't easily split this because if I remove only the toast changes, there would be the problem of repeated error toasts every second because of that refresh mechanism. The only thing that could be done is to have a reduced backport that only fixes issue 1 with the force flag.

BTW one reason we need the toast deduplication: Go to admin dashboard and disconnect your network:

maybe there should be some tests to cover some functions (even without e2e test, we could mock and test some code blocks)

Quite hard I assume unless Vue works in a unit test, but I would doubt that. Maybe with some Vue-specific testing framework, but I have no experience with those.

preventDuplicates should not default to true, it is a breaking behavior.

It helps with other cases like systems stats flooding the page with error toasts when going offline.

it should hide the existing toast, but not skip the new toast.

This is actually a nice idea, I will try to implement.

it shouldn't be backported since the change is not covered by tests, and it doesn't fix blocker problems for end users.

It's quite annoying when you click an action step and nothing happens though.

Will also fix the boolean trap with loadData :)

maybe there should be some tests to cover some functions (even without e2e test, we could mock and test some code blocks)

Quite hard I assume unless Vue works in happy-dom, but I would doubt that. Maybe with some Vue-specific testing framework, but I have no experience with those.

Maybe something like "Improve <SvgIcon> to make it output svg node and optimize performance (#23570)"

Right, this createApp + mount pattern I had a helper function in another PR, so likely tests could use it in place of this h function.
BTW, I think I will extract the toast changes to another PR. I have a few improvements in mind.

force=true will reset other this.loading=true

A ideal implementation would detect a request with same args and any subsequent calls with those args would yield a promise that resolves with the response of the first invocation, but I feel that should be done in the request function, not here and it's likely not an issue for this case anyways.

maybe there should be some tests to cover some functions (even without e2e test, we could mock and test some code blocks)

Quite hard I assume unless Vue works in happy-dom, but I would doubt that. Maybe with some Vue-specific testing framework, but I have no experience with those.

Maybe something like "Improve <SvgIcon> to make it output svg node and optimize performance (#23570)"

Meaningfully unit-testing components like RepoActionView requires a fetch mock like https://github.com/mswjs/msw which is a interesting topic but honestly too much work for this. I tested the functionality again locally and it works as expected. I'm willing to take this "risk" with this PR and backport it as well.

it should hide the existing toast, but not skip the new toast.

Thought again about this and I think it's not ideal to have a toast constantly re-show. We should implement a counter like we have on the global error handler (data-global-error-msg-count) to indicate a toast was triggered more than once. I will take a look at this for 1.23 in another PR.

preventDuplicates should not default to true, it is a breaking behavior.

Ended up following your suggestion and defaulting to false, so it requires opt-in at the caller and I did so on all known callers that do fetch in a loop. Maybe later we could make it default for all error level toasts.

Thought again about this and I think it's not ideal to have a toast constantly re-show. It's bad UX as user can not easily select text in the toast.

I will try to propose a solution to see whether it is better. There are some details in my mind.

->  Make toast support preventDuplicates #31501

I'll merge this now for the bugfix part. We can iterate on the toast in https://github.com/go-gitea/gitea/pull/31501.

I have objection for backporting, unless TOC agrees to backport.

And one more thing, could you revert the toast related code?

I can remove the toast code in favor of https://github.com/go-gitea/gitea/pull/31501 if you port all my changes from here (htmx and actions view preventDuplicates) into it.
I don't really care about the backport so much as I'm not using Actions, but other users might and I think it's a important bugfix for them.

I don't really care about the backport so much as I'm not using Actions, but other users might and I think it's a important bugfix for them.

The problem is that the code really changed a lot and I am not sure there would be regressions, for example:

the loadData state management becomes more and more complex and fragile, at first glance I can't tell whether it is complete but I guess there could be some edge cases, for example: force=true will reset other this.loading=true

I think as a bug fix it is really good to end users and the work is awesome, while I also think we should make 1.22 branch as stable as possible to avoid introducing new regressions (especially for a large PR like this)
So, maybe if this change is stable enough in 1.23, then we could backport it to the next 1.22 release (eg 1.22.2 or 1.22.3)

I can remove the toast code in favor of #31501 if you port all my changes from here (htmx and actions view preventDuplicates) into it.

I think #31501 could satisfy your requirement, it uses preventDuplicates=true and provides necessary visual feedback, so the htmx and actions view should work well without any change.

Ah, I see you went with the "default enabled" variant, so yes in this case we don't need to special-case these callers. I will remove all toast-related code from this commit.

OK, I am sure the state management is not right now.
I think the reason is still related to the "force" behavior: to produce, make the backend sleep 500-1500ms to respond to make the edge cases could easily be triggered, then toggle the steps multiple times, then since you use force to reset the loading, then there are multiple request in flight, then they get duplicate results.

Sorry, meant to reply. I will rework this later.

FYI https://codeberg.org/forgejo/forgejo/pulls/6122 is related and deals with the same bug of the job step sometimes not expanding.

FYI https://codeberg.org/forgejo/forgejo/pulls/6122 is related and deals with the same bug of the job step sometimes not expanding.

Just take a quick look, I do not think it is right, it seems to be a hacky patch.

I will try to work on it in the following few days, to see whether we could properly fix it in 1.23

I will try to work on it in the following few days, to see whether we could properly fix it in 1.23

Thanks, I haven't gotten around to this. I hope you can reproduce the issue.

Done, see this:  Refactor RepoActionView.vue #32713

Replaced by #32713 ?

Yes, that includes the most important fix. As for the other 2 topics, I think we can do them another time.


Translator demo

@lazeratops I pushed a bunch of changes that hopefully addresses almost all of what you've asked here. :) Thanks for such a thorough review!


Is RVC multilingual?

After looking at the architecture I think RVC isn't multilingual, it uses VCTK dataset which is only English and Hubert base which is also language dependent and trained in English. I think the RMVPE model is not language dependent so that does not matter.
There are a few videos where they say that they converted one persons voice to other persons where they both spoke Hindi, so all this information is contradicting any help would be great.

If you have a Hindi dataset, you can fine-tune pretrained model so it will learn Hindi. There could be an English bias, but it depends on how much data you have and also how you train it.

The HuBert model is trained on English,the RVC model is trained on English and I don't know about language dependency of RMVPE but as far as I know it's trained on chinese songs. So do I fine tune all models?

I regularly train on Japanese only datasets and English works great.

@dillfrescott Suppose you train an embedder on Japanese words how will it be compatible with English?

Its learning the sound of the voice, not the words, so it doesnt matter what language they are speaking in the dataset

How accurate would it be to say that it's learning the sound of voice independent of language/words. Are there any model/architecture decisions which point to this?


Nuxt Error: Cannot read properties of undefined (reading '_c')

Actual behavior
It would seem as though something broke in the last update I made. My apologies.
I keep getting this error in a Nuxt 3 project
Cannot read properties of undefined (reading '_c')

Expected behavior
For the Transition components to work as usual.
Steps to reproduce

Create a Nuxt 3 project
Install the package
Use one of the components

Environment

Operating System: Darwin
Node Version:     v20.14.0
Nuxt Version:     3.13.2
CLI Version:      3.15.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      default

Additional context
This is an image of the structure created with the new version. It looks correct.

When I build locally and test locally I now get this error

Even after I downgrade to the version that @morev/utils was before which was 3.7, I still experience this error.
Any help would be great with this. Just point me to what you think may be the fix and I can implement it.
Possible solution
I am thinking it has something to do with how another package is transpiled(or not)

Good day @BayBreezy
Thanks for noticing - as said, I'm working on other things in a different environment right now and was too lazy to check the actual functionality since the diff looked safe.
There's nothing wrong with your code - it's my mistake.
I decided to fix an old issue at the same time (#265) and inadvertently broke a script that, after installation, detects the Vue version and sets Vue2/Vue3 version of components as the main one (they use different builders).
This is fixed in 3.0.5 (I checked on different environment) :)

Oh. Ok. Thanks.  I was a bit worried there 😆


Adobe Acrobat always open bookmarks and does not remember last position

When I open PDF documents generated with asciidoctor-pdf in Adobe Acrobat Reader it always opens bookmarks panel and shows the first page of the document. Adobe Acrobat does not remember my current position in document, the next time I open the same document. It works for other PDF documents that I have, but not for the PDF documents generated with asciidoctor-pdf.

This is due to the PageMode set here:
https://github.com/asciidoctor/asciidoctor-pdf/blob/master/lib/asciidoctor-pdf/converter.rb#L2833
You can comment out that line to use the default PageMode, which is UseNone or specify your preference, using the values indicated in Adobe's Acrobat documentation:

The PageMode key specifies how the document is to be displayed when opened. It can take
the following values:
● UseNone — Open the document, displaying neither bookmarks nor thumbnail images.
● UseOutlines — Open the document and display bookmarks.
● UseThumbs — Open the document and display thumbnail images.
● FullScreen — Open the document in full screen mode.
If PageMode is not specified, the value defaults to UseNone.

I do not believe this is currently configurable in asccidoctor-pdf.

I'd be open to making this a configuration option, much like pdf-page-size and pdf-page-margin (see https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc#theme-related-document-attributes). Feel free to submit a PR.

We have since introduced the pdf-page-mode attribute and theme key. However, the only value it accepts right now is fullscreen. I suppose we could build on that.

and shows the first page of the document.

According to the spec, the page mode does not control which page is opened by default. That's your reader doing that, I believe. My reader remembers the last location.

We'll recognize the following values:

outline
none
thumbs
fullscreen
fullscreen outline
fullscreen none
fullscreen thumbs

In the case of fullscreen, the second value is the mode after you drop out of fullscreen.

If PageMode is not specified, the value defaults to UseNone.

If the page mode is not specified, we default to /UseOutlines (since it's the more logical behavior).


ROX-18276: Drop unneeded labels from telemeter metric

Description
A detailed explanation of the changes in your PR.
Feel free to remove this section if it is overkill for your PR, and the title of your PR is sufficiently descriptive.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
TODO(replace-me)
Use this space to explain how you tested your PR, or, if you didn't test it, why
you did not do so. Valid reasons include, for example, "CI is sufficient",
"No testable changes". Feel free to attach JSON snippets, curl commands,
screenshots.
In addition to reviewing your code, reviewers must also review your testing
instructions and make sure they are sufficient.

Current dependencies on/for this PR:

master

PR #7165

PR #7166

PR #7167

PR #7168

PR #7181   👈

This comment was auto-generated by Graphite.

Current dependencies on/for this PR:

master

PR #7165

PR #7166

PR #7167

PR #7168

PR #7181   👈

This comment was auto-generated by Graphite.

/retest

Separated info metric into three separate gauges based on the discussion in https://issues.redhat.com/browse/MON-3302.

/retest


StorageLoader: write JSON path for com.mailgun/message_complained/jsonschema/1-0-0

https://github.com/snowplow/iglu-central/tree/master/jsonpaths/com.mailgun


xmark does not close reconnect modal + styling

https://github.com/user-attachments/assets/fecbcf31-d7cf-4196-a1f9-efb1d33dc5b9
x mark does not close modal, clicking outside does.
cc @hassnian

annnd one small thing, on all modals there should be our drop shadow, sorry that i did not added it in the figma

👋


[Rearch] Use memcached for sending messages to workers

Use memcached and a timestamp as a mechanism for telling workers to synchronize their config and role without going through a Drb connection.
When the worker monitor detects that they have changes it stores the timestamp in memcached in the key that corresponds to the thing that changes. The workers check memcachd each time they heartbeat and if the timestamp is greater than the timestamp of the last sync it will fabricate the message that corresponds to the thing that changed and process it.

@jrafanie @Fryguy This is ready to go

YOLO MERGING.  I believe @NickLaMuro told me he was good with the changes yesterday... If not, we can fix in a followup PR.  :shipit:

@jrafanie I am mostly good with the changes, but I did want to have @gtanzillo address the test using allow_any_instance_of and RuboCop error (which I figured could have been changed to fetch_messages instead).

Left comments for future fixup in a later PR.


Improve npm docs

Make the npm script command more general and be more opinionated on package manager.

I think standardising on yarn is probably the right thing, but you're certainly right in that that wasn't the right place for the idea. We should probably only mention one or the other, given the idea here is to reduce analysis paralysis.

I think yarn vs npm is a whole conversation (yarn released a v2 that I remember having some concerns about, but haven't checked recently)

I think yarn vs npm is a whole conversation

Exactly. Probably for an ADR rather than here.


_examples: improve documentation (fix #238)

Codecov Report

Merging #293 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #293   +/-   ##
=======================================
  Coverage   77.03%   77.03%
=======================================
  Files         116      116
  Lines        7902     7902
=======================================
  Hits         6087     6087
  Misses       1161     1161
  Partials      654      654

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 0e9dea1...305f280. Read the comment docs.


linux_64_python3.11.____cpython build failed

Comment:
@conda-forge/typst-py The build for linux_64_python3.11.____cpython failed; I think it just needs to be re-triggered. Thanks!

CI ist running. Let's wait for the result before closing this issue.

Looks like all the builds failed now. Might need rust pinned to an older version?
Don't have much time to investigate right now. Maybe @pavelzw can pick up from here or I'll come back to it later.

Lets See what happens with #16


[TT Presentation] Replace side nav arrow with chevron

To decrease transitional volatility between design > language >product
https://github.ibm.com/Design/w3-design-site/issues/85
To improve consistency we should use the chevron up and down icons in our left nav. The language site uses the 16x16px grey-40 #A4A4A4 chevron.

This icon?

Yep, that's the one. It's another small tweak that could align us a little closer to language.


Allow PartsRepresentable to throw errors

This is a breaking change. Using Result with an associated type allows for the preservation of error type information, but if this is not desirable, we can switch to a plain throws function with non-generic Error instead. Passing in Never allows for the same functionality as the previous PartsRepresentable; the types are isomorphic.

What's an API example that will break and need to be changed?

See this file: https://github.com/google/generative-ai-swift/pull/88/files#diff-a61268065794a7fb215fc6d6e84f0127f200a881647fe588e9b06477683d4a9b
I left this PR as a draft because I think we should do some more formal API proposal before baking it in. We can discuss in standup tomorrow.


Can't monitoring multiple times without disconnect

Prerequisites

[x] I am running the latest version
[x] I checked the documentation and found no answer
[x] I checked to make sure that this issue has not already been filed

Expected Behavior
When I call the remove() function on the monitor characteristic Subscription, it should stop monitoring without returning an error.
Current Behavior
I start monitoring my characteristic and assign the Subscription received. Everything is fine.
Then I call the remove() function on the Subscription when I want to stop monitoring the characteristic.

At this time, I receive a BleError : Operation was cancelled in the subscription error callback.
I don't understand why I receive an error if I remove() the subscription. It's not an error.

After that, I need to monitor my characteristic again, so I start monitoring again. And at this time, I have a Characteristic X notify change failed for device ? and service Y.
But it was working well the first time I called the monitor function... I don't understand why I receive this error.
I noticed that if I disconnect from the device, and reconnect agin I can monitor without issues.

See examples below.
Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. Both JS and platform logs can be enabled via setLogLevel function call.

Library version: 2.0.0

  function startMonitoring() {
    console.log('LIB : Start fifo characteristic monitoring...');
    this._monitorSubscription = this._fifoCharacteristic.monitor(
      (error, char) => {
        if (error) {
          console.log(error);
        }
        if (!char || !char.value) {
          console.log(char.value);
        }
      },
    );
  }

  function stopMonitoring() {
    this._monitorSubscription.remove();
  }

Again, you did not conform to the issue template. I have checked this scenario and it works correctly for me:
2020-06-29 14:59:32.173 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: true
2020-06-29 14:59:32.178 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(92869694)
2020-06-29 14:59:32.181 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(92869694)
2020-06-29 14:59:32.290 1345-1358/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:32.293 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(92869694) in 114 ms
2020-06-29 14:59:34.336 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 0
2020-06-29 14:59:34.392 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 1
2020-06-29 14:59:34.471 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: false
2020-06-29 14:59:34.472 1345-1484/com.reactnativebleplxplayground I/ReactNativeJS: 'monitor error', '{"message":"Operation was cancelled","errorCode":2,"attErrorCode":null,"iosErrorCode":null,"androidErrorCode":null,"reason":null,"name":"BleError","line":26115,"column":28,"sourceURL":"http://localhost:8081/index.bundle?platform=android&dev=true&minify=false"}'
2020-06-29 14:59:34.475 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(121702638)
2020-06-29 14:59:34.476 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(121702638)
2020-06-29 14:59:34.582 1345-1358/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:34.585 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(121702638) in 109 ms
2020-06-29 14:59:43.101 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 0
2020-06-29 14:59:43.225 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 1
2020-06-29 14:59:43.268 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: true
2020-06-29 14:59:43.276 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(153297124)
2020-06-29 14:59:43.277 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(153297124)
2020-06-29 14:59:43.358 1345-1399/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:43.360 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(153297124) in 83 ms
2020-06-29 14:59:48.460 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 0
2020-06-29 14:59:48.617 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 1
2020-06-29 14:59:48.633 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: false
2020-06-29 14:59:48.637 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(16943892)
2020-06-29 14:59:48.640 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(16943892)
2020-06-29 14:59:48.693 1345-1484/com.reactnativebleplxplayground I/ReactNativeJS: 'monitor error', '{"message":"Operation was cancelled","errorCode":2,"attErrorCode":null,"iosErrorCode":null,"androidErrorCode":null,"reason":null,"name":"BleError","line":26115,"column":28,"sourceURL":"http://localhost:8081/index.bundle?platform=android&dev=true&minify=false"}'
2020-06-29 14:59:48.769 1345-1358/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:48.771 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(16943892) in 131 ms
2020-06-29 14:59:50.898 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 0
2020-06-29 14:59:51.011 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 1
2020-06-29 14:59:51.071 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: true
2020-06-29 14:59:51.079 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(220331194)
2020-06-29 14:59:51.080 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(220331194)
2020-06-29 14:59:51.158 1345-1358/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:51.160 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(220331194) in 80 ms
2020-06-29 14:59:52.854 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 0
2020-06-29 14:59:52.956 1345-1345/com.reactnativebleplxplayground D/ViewRootImpl@2291129[MainActivity]: ViewPostImeInputStage processPointer 1
2020-06-29 14:59:53.029 1345-1485/com.reactnativebleplxplayground D/BluetoothGatt: setCharacteristicNotification() - uuid: 00000002-0000-1000-8000-00805f9b34fb enable: false
2020-06-29 14:59:53.029 1345-1484/com.reactnativebleplxplayground I/ReactNativeJS: 'monitor error', '{"message":"Operation was cancelled","errorCode":2,"attErrorCode":null,"iosErrorCode":null,"androidErrorCode":null,"reason":null,"name":"BleError","line":26115,"column":28,"sourceURL":"http://localhost:8081/index.bundle?platform=android&dev=true&minify=false"}'
2020-06-29 14:59:53.032 1345-1485/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: QUEUED   DescriptorWriteOperation(122882154)
2020-06-29 14:59:53.034 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: STARTED  DescriptorWriteOperation(122882154)
2020-06-29 14:59:53.107 1345-1357/com.reactnativebleplxplayground D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
2020-06-29 14:59:53.110 1345-5620/com.reactnativebleplxplayground D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(122882154) in 76 ms

I have checked on iOS and it also seems to work just fine:
2020-06-29 17:16:45.791 [info][tid:com.facebook.react.JavaScript] connected
[RxBLEKit|DEBG|15:16:49.366]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: true,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:16:49.434]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: true,
error: nil)
[RxBLEKit|DEBG|15:16:52.982]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: false,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:16:53.064]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: false,
error: nil)
[RxBLEKit|DEBG|15:18:06.855]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: true,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:18:06.925]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: true,
error: nil)
[RxBLEKit|DEBG|15:18:10.274]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: false,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:18:10.345]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: false,
error: nil)
[RxBLEKit|DEBG|15:18:13.509]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: true,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:18:13.586]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: true,
error: nil)
[RxBLEKit|DEBG|15:18:14.402]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) setNotifyValue(
enabled: false,
for: Characteristic(uuid: 0002, id:<PHONE_NUMBER>4))
[RxBLEKit|DEBG|15:18:14.455]: Peripheral(uuid: D735B5D2-E6B4-DF67-5AA3-5F0D5DBEE6BB, name: Optional("Test")) didUpdateNotificationStateFor(
for:Characteristic(uuid: 0002, id:<PHONE_NUMBER>4), isNotifying: false,
error: nil)

Why did I not conform to the issue template ??

You have the same behaviour than I have. You have the BleError : Operation was cancelled too. But it is not an error. Why do we receive an error when we just remove the subscription ? It's not an error I guess.
Okay it seems to work on your side, although it is not on my side...

any updates? i'm facing the same problem

same here, I am also facing same issues on cancelling subscription of some stream.

I confirm that monitorSubscription.remove() works fine on iOS but on Android it gives an error [BleError: Operation was cancelled]

I also found this issue in version 2.0.3. It seems that this problem has not been fixed.

Still having this issue on version 3.2.0, any workarounds ?

Same issue here on android


Remove the "manually provide IDs for your headings" warning

A lot of the time, the ID should match the text. Adding one manually
in this case is a good way to later get your IDs out of sync with
the text to varying degrees.

Alternatively, how about a way to suppress the warning? Maybe
bla
 as a signal that the generated ID is the right one?
CC @richtr

Generating one manually is a good way to have links break just because you slightly reworded the heading.  The warning was put there intentionally. ^_^
(If you do change the text a lot and want to change the id to match, put the old id into an oldids attribute on the heading. That'll preserve links.)

Definitions have auto-generated IDs with no warnings, is the idea that those are less likely to change?
To illustrate what I think the problem is:

Extensions to the
{{HTMLMediaElement}} interface

Apart from being very verbose, manually maintained IDs have their own risk, as you've seen:
https://github.com/w3c/web-animations/issues/88
https://github.com/w3c/web-animations/issues/89
If you think the warning has positive value on average, how about a way to silence it?

Definitions have auto-generated IDs with no warnings, is the idea that those are less likely to change?

Precisely.  Headings change regularly, definitions change much more rarely.

Apart from being very verbose

That's entirely up to the spec author.  Nothing preventing you from generating short ids. Heck, just make them "a", "b", etc if you want.
On the other hand, it's easy for auto-genned IDs to be very verbose for headings, particularly if the heading is well-written according to the CSSWG style - "Flex Flow Direction: the flex-direction property" would gen a much longer id than the manually specified one #flex-direction-property.
It's of course up to the spec author to make sure their IDs still more-or-less match up with the heading text.  The ID and text are right next to each other, so this isn't hard.

If you think the warning has positive value on average, how about a way to silence it?

That defeats the entire point; if you silence it, you'll just regularly break links as you tweak heading text.  Put an id="a" or id="b" on it if you don't care what the ID is and just want something short that doesn't need maintenance.

That example you posted illustrates the problem adequately well. I would code it as

Extensions to the HTMLMediaElement Interface
Not only does this make the URL more compact (easier to copy/paste without wrapping errors, easier to see the whole thing in the URL bar, etc), when I later decide that the title should be “HTMLMediaLement Interface Extensions” or “Additions to the HTMLMediaElement Interface” or something else, nobody's links get broken. As Tab points out, this is much less likely to happen with terminology links, because terms don't have so many opportunities for rewording.

In the example I gave, the autogenerated ID is precisely what I want, like several other specs:
http://dev.w3.org/csswg/cssom/#extensions-to-the-document-interface
http://dev.w3.org/csswg/cssom-view/#extensions-to-the-htmlimageelement-interface
http://w3c.github.io/selection-api/#extensions-to-document-interface
http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-element-interface
http://w3c.github.io/web-animations/#extensions-to-the-document-interface
(These links end up in Blink's IDL files and I see no reason to deviate from the pattern.)
In short, I do care what the IDs are, I almost always want them to match the (usually short) text, and already understood before reading the warning that changing the text would change the autogenerated ID. I guess the style of section titles in CSS specs changes the balance of pros and cons.
Other than removing the warning, is there any change to use the autogenerated IDs without warnings that would be acceptable?

No, because they break links. Even the example you gave of manually-set IDs being problematic (in the WebAnim spec) are still good, because they're stable and links to them continue to work.  If the IDs had been auto-generated, any links would have broken as soon as the interface name changed, and most likely the editor wouldn't have realized the problem.  As it is, the mismatch was obvious (though the editor still didn't notice, or chose to keep the IDs stable), and with the use of oldids you can have both a correct ID and maintain old links.
Auto-generating IDs for headings was rejected for CommonMark for the same reason. ^_^
Just specify your ID; it's not a big deal, and it's far better for long-term usability.  (This is specifically why the CSSWG markup style puts the opening tag of a heading on a separate line from the text; so a well-written ID and heading text don't look "too long" in the source.)

One can maintain old links with oldids with or without autogenerated IDs and warnings about them.
We're not going to agree, but thanks anyway for considering this.

I hope you agree that one is much less likely to remember to add a value to oldids if the ID is being auto-generated.

Sure, that seems less likely. Maybe you should advertise oldids with "NOTE: Heading IDs were generated, please manually provide IDs or use oldids when changing the headings."


How do I disable vertical scrolling on the graph?

I wanna keep just the horizontal scrolling and disable vertical. How do I do this?
This is the default behavior

I want the graph t position itself like this.

Or even disable the vertical scroll. Please help me.

There shouldn't be any vertical scrolling, you should be able to utilise the margins to achieve what you want.

There was vertical scrolling in the container scrollview. I somehow disabled it. Please close the issue.
Thanks.


ligand_in_water/ligand_in_water.ipynb example is failing on openff-docs

The ligand_in_water/ligand_in_water.ipynb notebook has been failing on openff-docs since last month.
Here's the error:
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
force_field_opc = ForceField("openff_unconstrained-2.0.0.offxml", "opc.offxml")
pprint(force_field_opc["VirtualSites"].parameters[0].to_dict())
------------------

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
Cell In[11], line 2
      1 force_field_opc = ForceField("openff_unconstrained-2.0.0.offxml", "opc.offxml")
----> 2 pprint(force_field_opc["VirtualSites"].parameters[0].to_dict())

File ~/micromamba/envs/openff-docs-examples/lib/python3.10/site-packages/openff/toolkit/typing/engines/smirnoff/parameters.py:1614, in VirtualSiteParameterList.__getitem__(self, val)
   1613 def __getitem__(self, val):
-> 1614     raise NotImplementedError(
   1615         "VirtualSiteHandler does not support __getitem__ lookups due to the "
   1616         "number of values required to uniquely identify a specific parameter."
   1617     )

NotImplementedError: VirtualSiteHandler does not support __getitem__ lookups due to the number of values required to uniquely identify a specific parameter.

First failed build: https://github.com/openforcefield/openff-docs/actions/runs/9523828581/job/26255855720 (note that several other notebooks are failing here; the others seem to now be working)
Last successful build: https://github.com/openforcefield/openff-docs/actions/runs/9508487787/job/26209882626
See more builds here: https://github.com/openforcefield/openff-docs/actions/workflows/cookbook_preproc.yaml
Environment file: https://github.com/openforcefield/openff-docs/blob/main/devtools/conda-envs/examples_env.yml
The failure is currently being ignored, meaning that the notebook is not being rendered while it fails to build: https://github.com/openforcefield/openff-docs/blob/7fc67369329f4a25ff9ff2a355f6f8aa2e36b04d/source/ext/cookbook/globals.py#L97

Yep this is related to https://github.com/openforcefield/openff-interchange/pull/991, should be good with a new release. Thanks for the info

I think we did this in https://github.com/openforcefield/openff-docs/pull/59


Update ToC before page content

We first update TOC and then main content, so that the edit links are correctly computed.

Temporary bugfix for #8/#14 pending resolution of #15.


Storage Auto REST Issues

Service interfaces are missing the Service annotation
ServiceClient.createSerializerAdapter no longer exists and is being called
Add queueName and messageId name to API interfaces that have parameterized relative paths

DirectoryImp:
Service interfaces are missing the Service annotation
ServiceClient.createSerializerAdapter no longer exists and is being called
Add shareName and directoryName to API interfaces that have parameterized relative paths
FileImpl:
Service interfaces are missing the Service annotation
ServiceClient.createSerializerAdapter no longer exists and is being called
Add shareName, directoryName and fileName to API interfaces that have parameterized relative paths


Update data.json

Update the list of editors - add my name to it.

Hi there!
I am the Mentor of this project
Although this repo is not part of Hacktoberfest 2024, we have some great alternatives for you. Welcome to SkillShow, a repository focused on skill enhancement!
Guidelines:
Please adhere to the existing guidelines.
No additional rules, thanks!
Check it out here: SkillShow.
Note: Start by creating an issue. Once it’s assigned to you, feel free to open a pull request (PR). Directly opening a PR will lead to an invalid label.
Looking forward to your contributions!


ber_metaocaml: (re)init at 104

Motivation for this change
The old derivation was broken as the src pointed to a mutable url. It was also necessary to make some more packaging changes to get it to compile to follow with changes to the normal ocaml build process.
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Possible reviewers? @vbgl @aske @Zimmi48  ?
I am not an ocaml expert but this appears to work for me.

@vbgl as a generic point if I have some more time in the future would it be better to modify generic.nix to also allow building ber_metaocaml? There is quite a lot of duplicated logic as it is essentially an ocaml build with some additional patches.

Thanks for the sharp eye @vbgl , I removed the two redundant parts of the expression.

Thanks. Your suggestion to refactor generic.nix makes sense.


Advanced Threat Protection Settings to send email alert - Screenshot is old doc need update/

looking for an email alert for Advanced Threat Protection Settings, on heh SQL Server on the Azure portal. Portal have updated and email alert is button is Missing. I have listed old and new screenshot below.
Security alert is found on the Security Central, Steps are below

Old:

New

Please let me know if you have any question.
Hiten Bhavsar
@hitenbhavsarMSFT
Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/forums/34192--general-feedback.

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

ID: d8b43b28-f8e6-a718-7bcd-b42ee2b19416
Version Independent ID: 63f89c9e-cab7-531a-0a69-9a7e9ab0521b
Content: Configure Advanced Threat Protection - Azure SQL Database
Content Source: articles/azure-sql/database/threat-detection-configure.md
Service: sql-database
Sub-service: security
GitHub Login: @rmatchoro
Microsoft Alias: ronmat

@HitenBhavsarMSFT - Thank you for your question.
Can you please share with us the URL of the document that you are having issues with?

Here is the link of the doc, which need updated.
https://docs.microsoft.com/en-us/azure/azure-sql/database/threat-detection-configure?WT.mc_id=pid:13491:sid:32630457%2F

Hi @HitenBhavsarMSFT ,
Thank you for reporting this issue. I have staged a Pull Request today to update this article's text and screenshots to match the current portal experience. I expect that this will merge either today or within a couple of business days (if extra review is needed) and that changes should show up soon.
Thank you again for helping us make the docs better!
Kendra from the Database Docs team
#please-close


Bump Marathon to 1.9.73

High-level description
See corresponding tickets
Corresponding DC/OS tickets (required)

MARATHON-8695 Fix a regression with Marathon /v2/groups that caused dcos marathon group update cli commands to fail.

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): 3b6769765..203dd90c8

[ ] Test Results: https://jenkins.mesosphere.com/service/jenkins/view/Marathon/job/marathon-pipelines/job/master/1380/

@mesosphere-mergebot label Ready for Review


Can annotations be shown to PRs on each commit on code?

My scenario is that I have integrated a static code analysis tool that produces a json file in the format needed for this action to work.
Sample of my action:
      - name: Beautify + create annotations result
        run: |
          ruby parser.rb -f ${{env.TMPFILE}}
          ruby annotate.rb -f ${{env.OUTFILE}} -o ./annotations.json
      - name: Annotate
        uses<EMAIL_ADDRESS>        with:
          repo-token: ${{secrets.GITHUB_TOKEN}}
          input: ./annotations.json
          title: 'Findings'
          ignore-missing-file: true

The annotations are displayed perfectly on the action page such as:

But when clicking on the finding nothing gets displayed on the file anywhere I looked for (main PR page, commit page, files changed page). If a specific line has changed during the last commit it works, but on then next push if the line does not get changed  the failure message is not shown again.
First push with changed line:

Second push with unchanged line (yet still finding in the job):

Is there an option to maintain all findings even if not lines are changed on next commits such as this one according to my annotations.json file? Or even better to maintain all annotations on files changed?
Thank you!

+1 on this, any way to solve this would be really appreciated!

I think this is a limitation of the GitHub annotations feature/API.
See: https://github.com/yuzutech/annotations-action/issues/19#issuecomment-818906339
You should ask GitHub support: https://support.github.com/

Also related to https://github.com/yuzutech/annotations-action/issues/4


collect lots of crash on Android6

I collect online crash,mine app has a Crash when FlutterEngine create:
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
    r0  00000000  r1  00000ce9  r2  00000006  r3  b6fdfd9c
    r4  b6fdfda4  r5  b6fdfd54  r6  00000002  r7  0000010c
    r8  8ba7886c  r9  be823118  r10 5f99f5ec  r11 8ba7922c
    ip  00000006  sp  be8228b8  lr  b6d3b37d  pc  b6d3d76c
backtrace:
    #00 pc 0004276c  /system/lib/libc.so (tgkill+12)
    #01 pc 00040379  /system/lib/libc.so (pthread_kill+32)
    #02 pc 0001ca9b  /system/lib/libc.so (raise+10)
    #03 pc 00019d19  /system/lib/libc.so
    #04 pc 0001755c  /system/lib/libc.so (abort+4)
    #05 pc 0016a463  /data/app/com.netease.heatup-1/split_config.armeabi_v7a.apk
    #06 pc 0018ca3b  /data/app/com.netease.heatup-1/split_config.armeabi_v7a.apk
    #07 pc 0017a32f  /data/app/com.netease.heatup-1/split_config.armeabi_v7a.apk
    #08 pc 0d4338dd  /data/app/com.netease.heatup-1/oat/arm/base.odex (oatexec+82507997)
java stacktrace:
  at io.flutter.embedding.engine.FlutterJNI.nativeAttach(Native method)
  at io.flutter.embedding.engine.FlutterJNI.performNativeAttach(ProGuard:1)
  at io.flutter.embedding.engine.FlutterJNI.attachToNative(ProGuard:4)
  at io.flutter.embedding.engine.FlutterEngine.attachToJni(ProGuard:2)
  at io.flutter.embedding.engine.FlutterEngine.<init>(ProGuard:42)
  at io.flutter.embedding.engine.FlutterEngine.<init>(ProGuard:7)
  at io.flutter.embedding.engine.FlutterEngine.<init>(ProGuard:6)
  at io.flutter.embedding.engine.FlutterEngine.<init>(ProGuard:2)
  at io.flutter.embedding.engine.FlutterEngine.<init>(ProGuard:1)
  at io.flutter.embedding.engine.FlutterEngineGroup.createEngine(ProGuard:1)
  at io.flutter.embedding.engine.FlutterEngineGroup.createAndRunEngine(ProGuard:11)
  at io.flutter.embedding.engine.FlutterEngineGroup.createAndRunEngine(ProGuard:4)

My Flutter version is 2.8.1. The crash still exists after upgrading to 3.3.8，So it seems to have nothing to do with the flutter version. It seems that the local data reading failed when the engine was created....
The following are common features of these crashes:

only crash on Android 6
have same log:

11-30 09:08:36.123  3305  3305 E flutter : [ERROR:flutter/runtime/dart_vm_data.cc(18)] VM snapshot invalid and could not be inferred from settings.
11-30 09:08:36.123  3305  3305 E flutter : [ERROR:flutter/runtime/dart_vm.cc(268)] Could not set up VM data to bootstrap the VM from.
11-30 09:08:36.123  3305  3305 E flutter : [ERROR:flutter/runtime/dart_vm_lifecycle.cc(84)] Could not create Dart VM instance.
11-30 09:08:36.128  3305  3305 F flutter : [FATAL:flutter/shell/common/shell.cc(143)] Check failed: vm. Must be able to initialize the VM.

Then this is some runtime memory information:
MemTotal:        2879120 kB
  MemFree:           75668 kB
  Buffers:           20628 kB
  Cached:           853720 kB
  SwapCached:        57036 kB
  Active:           863968 kB
  Inactive:         861704 kB
  Active(anon):     428092 kB
  Inactive(anon):   431032 kB
  Active(file):     435876 kB
  Inactive(file):   430672 kB
  Unevictable:        5696 kB
  Mlocked:              88 kB
  HighTotal:       2290048 kB
  HighFree:          45192 kB
  LowTotal:         589072 kB
  LowFree:           30476 kB
  SwapTotal:       1572860 kB
  SwapFree:         572168 kB
  Dirty:               872 kB
  Writeback:           220 kB
  AnonPages:        802216 kB
  Mapped:           523516 kB
  Shmem:              2072 kB
  Slab:             102824 kB
  SReclaimable:      37480 kB
  SUnreclaim:        65344 kB
  KernelStack:       22112 kB
  PageTables:        53616 kB
  NFS_Unstable:          0 kB
  Bounce:                0 kB
  WritebackTmp:          0 kB
  CommitLimit:     3012420 kB
  Committed_AS:   71605404 kB
  VmallocTotal:     385024 kB
  VmallocUsed:      174616 kB
  VmallocChunk:      59460 kB

and my app's memory info:
 State:	R (running)
  Tgid:	3305
  Pid:	3305
  PPid:	3012
  TracerPid:	0
  Uid:	10191	10191	10191	10191
  Gid:	10191	10191	10191	10191
  FDSize:	512
  Groups:	3001 3002 3003 9997 50191
  VmPeak:	 2294576 kB
  VmSize:	 2210184 kB
  VmLck:	       0 kB
  VmPin:	       0 kB
  VmHWM:	  572764 kB
  VmRSS:	  527704 kB
  VmData:	  528056 kB
  VmStk:	    8192 kB
  VmExe:	      20 kB
  VmLib:	  403804 kB
  VmPTE:	    1426 kB
  VmSwap:	   41940 kB
  Threads:	239
  SigQ:	0/22463
  SigPnd:<PHONE_NUMBER>000000
  ShdPnd:<PHONE_NUMBER>000000
  SigBlk:	00000000fffbfeff
  SigIgn:<PHONE_NUMBER>000000
  SigCgt:<PHONE_NUMBER>0096fc
  CapInh:<PHONE_NUMBER>000000
  CapPrm:<PHONE_NUMBER>000000
  CapEff:<PHONE_NUMBER>000000
  CapBnd:<PHONE_NUMBER>000000
  Seccomp:	0
  Cpus_allowed:	ff
  Cpus_allowed_list:	0-7
  voluntary_ctxt_switches:	48553
  nonvoluntary_ctxt_switches:	23075

It seems that the virtual memory is not full。
Do you have any relevant solutions?

@shaomaicheng
Can you try this solution and see if it works in your case ?

I find this in document, I try it next version

Closing for now based on above comment. If you come across same crash again, write in comments and I'll reopen it.


Does wordsmithing in the chapter on relations

This patch does wordsmithing in the chapter on relations:

it uses "the where clause" instead of "a where clause", and
it uses "on the left-hand side" instead of "of the left-hand side".

Manually made the change to use "on the left-hand side" instead of "of the left-hand side", not copying the change to use "the where clause" instead of "a where clause"


I am adding my work

:+1: good job! I'm merging your pr, but from next time make the commit message as "myname-submission-problem"

okay sir


Add tags variable for supported resources

Just closing and re-opening to trigger travis-ci...

@lorengordon made the requested changes!


Debugging IMU/pipeline callback problem

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win 10

Platform
PC

SDK Version
2.53.1

Language
C++ (VS2022)

Segment

Issue Description
I have a problem with the pipeline callback when accelerometer stream is enabled. I am looking for any advice on how to debug this issue, as the sample code (rs-callback.cpp) works as expected when compiled as standalone executable. However the code doesn't work anymore once I use it in my application (on a specific laptop).
When accelerometer stream is enabled, the callback is not triggered anymore, unless cfg.resolve(pipe) is called after start() and then there are only a few motion frames (about 10 to 20) in the start, before any color/depth. Once the callback gets called with a color and depth frame, the callback doesn't receive further motion frames.
When accelerometer stream is not enabled, the callback gets called normally with the color/depth frameset (and it also works without calling cfg.resolve(pipe) )
I have also tested this on another PC, where the exactly same code works as expected (same camera, same SDK version, built with VS2019): both color/depth frames and motion frames are passed to the callback.
I would appriciate any suggestions on how I could debug/pinpoint the exact problem (why the code works on one PC but not on another).

The code I've used to test this
rs2::stream_profile select_profile(const std::vector<rs2::stream_profile>& profiles, int width, int fps,
	rs2_stream type = rs2_stream::RS2_STREAM_ANY) {

	for (auto& profile : profiles) {
		if ((type != rs2_stream::RS2_STREAM_ANY) && (profile.stream_type() != type)) { continue; }
		if (profile.is<rs2::video_stream_profile>()) {
			auto intrin = profile.as<rs2::video_stream_profile>().get_intrinsics();
			if (intrin.width <= width && profile.fps() <= fps) { return profile; }
		}
	}
}

// called only once
void run_realsense() {
	static rs2::pipeline pipe;
	static std::map<int, int> counters;

	rs2::context ctx;
	auto devices = ctx.query_devices();

	int  res_depth = 1024;
	int  res_colour = 1280;
	int  fps_depth = 30;
	int  fps_colour = 30;

	auto dev = devices.front();

	// configure device
	rs2::config cfg;
	auto sensors = dev.query_sensors();
	cfg.enable_device(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER));

	// find color and depth sensor and select parameters
	for (auto& sensor : sensors) {
		rs2::stream_profile profile;

		if (sensor.is<rs2::depth_sensor>()) {
			profile = select_profile(sensor.get_stream_profiles(), res_depth, fps_depth, rs2_stream::RS2_STREAM_DEPTH);
			cfg.enable_stream(RS2_STREAM_DEPTH, intrin.width, intrin.height, RS2_FORMAT_Z16, profile.fps());
		}
		else if (sensor.is<rs2::color_sensor>()) {
			profile = select_profile(sensor.get_stream_profiles(), res_colour, fps_colour);
			cfg.enable_stream(RS2_STREAM_COLOR, intrin.width, intrin.height, RS2_FORMAT_BGRA8, profile.fps());
		}
		else if (sensor.is<rs2::motion_sensor>()) {
			cfg.enable_stream(RS2_STREAM_ACCEL, RS2_FORMAT_MOTION_XYZ32F);
			cfg.enable_stream(RS2_STREAM_GYRO, RS2_FORMAT_MOTION_XYZ32F);
		}
	}

	rs2::pipeline_profile profiles = pipe.start(cfg, [](const rs2::frame& frame)
		{
			if (rs2::frameset fs = frame.as<rs2::frameset>()) {
				for (const rs2::frame& f : fs) {
					LOG(INFO) << f.get_profile().stream_name() << ": " << counters[f.get_profile().unique_id()]++;
				}
			}
			else {
				LOG(INFO) << "IMU: " << counters[frame.get_profile().unique_id()]++;
			}
		}
	);

	auto profiles = cfg.resolve(pipe); // without this, no frames are passed to callback when accel stream is enabled
}

Hi @sebasth  Please first try adding callback to the brackets of the pipeline start instruction with no space between 'callback' and 'cfg' after the comma, like in the instruction below.  Putting callback in the bracket tells the program that it is a callback-using script.
rs2::pipeline_profile profiles = pipe.start(callback,cfg, [](const rs2::frame& frame)

I managed to pinpoint the issue to a 3rd party library portaudio. Everything seems to work after downgrading portaudio to older version 19.6.0 (from 19.7.0).

It's excellent to hear that you achieved a solution.  Thanks very much for the update!