Hosting failed to start

 Microsoft.Extensions.Hosting.Internal.Host[11]
      Hosting failed to start
      System.Net.Http.HttpRequestException: An error occurred while sending the request.
       ---> System.IO.IOException: An HTTP/2 connection could not be established because the server did not complete the HTTP/2 handshake.
       ---> System.ObjectDisposedException: Cannot access a disposed object.
      Object name: 'System.Net.Security.SslStream'.
         at System.Net.Security.SslStream.<ThrowIfExceptional>g__ThrowExceptional|126_0(ExceptionDispatchInfo e)
         at System.Net.Security.SslStream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
         at System.Net.Http.Http2Connection.SetupAsync(CancellationToken cancellationToken)
         --- End of inner exception stack trace ---
         at System.Net.Http.Http2Connection.SetupAsync(CancellationToken cancellationToken)
         at System.Net.Http.HttpConnectionPool.ConstructHttp2ConnectionAsync(Stream stream, HttpRequestMessage request, IPEndPoint remoteEndPoint, CancellationToken cancellationToken)
         --- End of inner exception stack trace ---
         at System.Net.Http.HttpConnectionPool.ConstructHttp2ConnectionAsync(Stream stream, HttpRequestMessage request, IPEndPoint remoteEndPoint, CancellationToken cancellationToken)
         at System.Net.Http.HttpConnectionPool.AddHttp2ConnectionAsync(QueueItem queueItem)
         at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
         at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter`1.WaitForConnectionWithTelemetryAsync(HttpRequestMessage request, HttpConnectionPool pool, Boolean async, CancellationToken requestCancellationToken)
         at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
         at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
         at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
         at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
         at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.CreateClusterCustomObjectWithHttpMessagesAsync(Object body, String group, String version, String plural, String dryRun, String fieldManager, Nullable`1 pretty, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
         at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass10_0`1.<<CreateAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 51
      --- End of stack trace from previous location ---
         at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
         at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 205
         at Aspire.Hosting.Dcp.ApplicationExecutor.CreateResourcesAsync[RT](CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 617
         at Aspire.Hosting.Dcp.ApplicationExecutor.CreateServicesAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 109
         at Aspire.Hosting.Dcp.ApplicationExecutor.RunApplicationAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 73
         at Aspire.Hosting.Dcp.DcpHostService.StartAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/DcpHostService.cs:line 78
         at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
         at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
Could not stop project 'apiservice': k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'NotFound', response body {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"executables.usvc-dev.developer.microsoft.com \"apiservice\" not found","reason":"NotFound","details":{"name":"apiservice","group":"usvc-dev.developer.microsoft.com","kind":"executables"},"code":404}

   at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
   at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.DeleteClusterCustomObjectWithHttpMessagesAsync(String group, String version, String plural, String name, V1DeleteOptions body, Nullable`1 gracePeriodSeconds, Nullable`1 orphanDependents, String propagationPolicy, String dryRun, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
   at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass12_0`1.<<DeleteAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 109
--- End of stack trace from previous location ---
   at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
   at Aspire.Hosting.Dcp.ApplicationExecutor.DeleteResourcesAsync[RT](String resourceName, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 633
Could not stop project 'webfrontend': k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'NotFound', response body {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"executables.usvc-dev.developer.microsoft.com \"webfrontend\" not found","reason":"NotFound","details":{"name":"webfrontend","group":"usvc-dev.developer.microsoft.com","kind":"executables"},"code":404}

   at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
   at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.DeleteClusterCustomObjectWithHttpMessagesAsync(String group, String version, String plural, String name, V1DeleteOptions body, Nullable`1 gracePeriodSeconds, Nullable`1 orphanDependents, String propagationPolicy, String dryRun, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
   at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass12_0`1.<<DeleteAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 109
--- End of stack trace from previous location ---
   at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
   at Aspire.Hosting.Dcp.ApplicationExecutor.DeleteResourcesAsync[RT](String resourceName, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 633
Could not stop service 'apiservice': k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'NotFound', response body {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"services.usvc-dev.developer.microsoft.com \"apiservice\" not found","reason":"NotFound","details":{"name":"apiservice","group":"usvc-dev.developer.microsoft.com","kind":"services"},"code":404}

   at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
   at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.DeleteClusterCustomObjectWithHttpMessagesAsync(String group, String version, String plural, String name, V1DeleteOptions body, Nullable`1 gracePeriodSeconds, Nullable`1 orphanDependents, String propagationPolicy, String dryRun, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
   at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass12_0`1.<<DeleteAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 109
--- End of stack trace from previous location ---
   at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
   at Aspire.Hosting.Dcp.ApplicationExecutor.DeleteResourcesAsync[RT](String resourceName, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 633
Could not stop service 'webfrontend': k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'NotFound', response body {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"services.usvc-dev.developer.microsoft.com \"webfrontend\" not found","reason":"NotFound","details":{"name":"webfrontend","group":"usvc-dev.developer.microsoft.com","kind":"services"},"code":404}

   at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
   at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.DeleteClusterCustomObjectWithHttpMessagesAsync(String group, String version, String plural, String name, V1DeleteOptions body, Nullable`1 gracePeriodSeconds, Nullable`1 orphanDependents, String propagationPolicy, String dryRun, IReadOnlyDictionary`2 customHeaders, CancellationToken cancellationToken)
   at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass12_0`1.<<DeleteAsync>b__0>d.MoveNext() in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 109
--- End of stack trace from previous location ---
   at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func`2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 198
   at Aspire.Hosting.Dcp.ApplicationExecutor.DeleteResourcesAsync[RT](String resourceName, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 633

Did it happen once or does it happen often?

This is happening everytime, I am not able to run my starter project

Did it ever work or was it always like this?

This never worked, for the first time when I try to run it, I got this error

it was from here microsoft learn https://learn.microsoft.com/en-us/dotnet/aspire/get-started/build-your-first-aspire-app?tabs=visual-studio

this is the error
Microsoft.Extensions.Hosting.Internal.Host[11]
Hosting failed to start
System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.IO.IOException: An HTTP/2 connection could not be established because the server did not complete the HTTP/2 handshake.
---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Security.SslStream'.
at System.Net.Security.SslStream.g__ThrowExceptional|126_0(ExceptionDispatchInfo e)
at System.Net.Security.SslStream.WriteAsync(ReadOnlyMemory1 buffer, CancellationToken cancellationToken)          at System.Net.Http.Http2Connection.SetupAsync(CancellationToken cancellationToken)          --- End of inner exception stack trace ---          at System.Net.Http.Http2Connection.SetupAsync(CancellationToken cancellationToken)          at System.Net.Http.HttpConnectionPool.ConstructHttp2ConnectionAsync(Stream stream, HttpRequestMessage request, IPEndPoint remoteEndPoint, CancellationToken cancellationToken)          --- End of inner exception stack trace ---          at System.Net.Http.HttpConnectionPool.ConstructHttp2ConnectionAsync(Stream stream, HttpRequestMessage request, IPEndPoint remoteEndPoint, CancellationToken cancellationToken)          at System.Net.Http.HttpConnectionPool.AddHttp2ConnectionAsync(QueueItem queueItem)          at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter1.WaitForConnectionWithTelemetryAsync(HttpRequestMessage request, HttpConnectionPool pool, Boolean async, CancellationToken requestCancellationToken)          at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)          at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)          at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)          at k8s.Kubernetes.SendRequestRaw(String requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)          at k8s.AbstractKubernetes.ICustomObjectsOperations_CreateClusterCustomObjectWithHttpMessagesAsync[T](Object body, String group, String version, String plural, String dryRun, String fieldManager, Nullable1 pretty, IReadOnlyDictionary2 customHeaders, CancellationToken cancellationToken)          at k8s.AbstractKubernetes.k8s.ICustomObjectsOperations.CreateClusterCustomObjectWithHttpMessagesAsync(Object body, String group, String version, String plural, String dryRun, String fieldManager, Nullable1 pretty, IReadOnlyDictionary2 customHeaders, CancellationToken cancellationToken)          at Aspire.Hosting.Dcp.KubernetesService.<>c__DisplayClass10_01.<b__0>d.MoveNext() in //src/Aspire.Hosting/Dcp/KubernetesService.cs:line 54
--- End of stack trace from previous location ---
at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func2 operation, CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 201          at Aspire.Hosting.Dcp.KubernetesService.ExecuteWithRetry[TResult](DcpApiOperationType operationType, String resourceType, Func2 operation, CancellationToken cancellationToken) in //src/Aspire.Hosting/Dcp/KubernetesService.cs:line 208
at Aspire.Hosting.Dcp.ApplicationExecutor.StartDashboardAsDcpExecutableAsync(CancellationToken cancellationToken) in //src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 224
at Aspire.Hosting.Dcp.ApplicationExecutor.RunApplicationAsync(CancellationToken cancellationToken) in //src/Aspire.Hosting/Dcp/ApplicationExecutor.cs:line 94
at Aspire.Hosting.Dcp.DcpHostService.StartAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dcp/DcpHostService.cs:line 67
at Microsoft.Extensions.Hosting.Internal.Host.b__15_1(IHostedService service, CancellationToken token)
at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List1 exceptions, Func`3 operation)

Kubernetes isn't required to run aspire. When you run dotnet workload list from the commandline, what shows up?
cc @joperezr @David-Engel

@danegsta here is package reference

So you're using preview4 of the package and what version of the workload?

PS C:\windows\system32> dotnet workload --version
8.0.200-manifests.1ea33d2d

Run:
dotnet workload list

for this, it shows
PS C:\windows\system32> dotnet workload list
Installed Workload Id      Manifest Version                     Installation Source
aspire                     8.0.0-preview.4.24111.3/8.0.100      SDK 8.0.200-preview.23624, VS 17.9.34526.213
maui-windows               8.0.6/8.0.100                        VS 17.9.34526.213, VS 17.8.34525.116
maccatalyst                17.2.8031/8.0.100                    VS 17.9.34526.213, VS 17.8.34525.116
ios                        17.2.8031/8.0.100                    VS 17.9.34526.213, VS 17.8.34525.116
android                    34.0.80/8.0.100                      VS 17.9.34526.213, VS 17.8.34525.116
wasm-tools-net6            8.0.1/8.0.100                        VS 17.8.34525.116
wasm-tools-net7            8.0.1/8.0.100                        VS 17.8.34525.116

Here is the screenshot of error

I would remove the workload and reinstall the preview3 workload.

The problem is still persistent also in preview3

We need to figure out why it's happening for you, it's not happening for everyone that's on preview3 (I can't reproduce it). I'd suggest attempting to "start over clean", uninstall the existing bits and reinstall them to see if it works. If you have another machine, see if preview 3 works there as well.

I wish I could help further, but the logs are not aren't pointing to anything useful at the moment. The only difference I can state is that my windows machine is on a corporate laptop where some right can be limited.
Does the DCP require any special rights?
And why is it trying to use K8s?

DCP does not require any special rights to run. It is just an executable (OK, set of 3 executables) with no dependencies other than the OS.
DCP does not really use Kubernetes. It is just that DCP API endpoint uses Kubernetes API server protocol, so that is what Aspire host is using to talk to DCP.

Closing in favor of https://github.com/dotnet/aspire/issues/2422


chore: adjust labels

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


metadata

see what you think about the way I've implemented the metadata structure. two files to look at:

MetadataExtract.m opens the dataset if not already open, copies fields of interest to the result structure, the rest of the work is left for the GUI after all datasets in a batch have been exported
MetaTable.m class that implements loading, appending, query, and saving the table

two things I'm mainly concerned with:

will it be easy to add support for optical imaging data?
are matlab string arrays (new since 2016a) ok to use? compatible with julia?

i tried to read matlab string array, and it failed, the matlab string array is a matlab class, and all matlab class is saved in propertory HDF5 class type subsystem which julis don't know the format, hence not be able to read it.


Sending mail through office 365 with TLS fails.

Fails with the following error:
"/usr/lib/python2.7/smtplib.py", line 586, in login
   raise SMTPException("SMTP AUTH extension not supported by server.")
SMTPException: SMTP AUTH extension not supported by server.

The quick and dirty fix is as below:
diff --git a/src/iris/vendors/iris_smtp.py b/src/iris/vendors/iris_smtp.py
index d833b43..4685abc 100644
--- a/src/iris/vendors/iris_smtp.py
+++ b/src/iris/vendors/iris_smtp.py
@@ -127,9 +127,12 @@ class iris_smtp(object):
            conn = self.last_conn
        else:
            for mx in self.mx_sorted:

                try:
                    smtp = SMTP(timeout=self.smtp_timeout)
                    smtp.connect(mx[1], self.config.get('port', 25))
+                   smtp.ehlo()
+                   smtp.starttls()
                    if self.config.get('username', None) is not None and self.config.get('password', None) is not None:
                        smtp.login(self.config.get('username', None), self.config.get('password', None))
                    conn = smtp

I assume the best fix would be to make it a configurable and then check if tls is required before doing starttls.
Please let me know if there is a preferred style and I'll submit a PR.

Your proposed fix sounds reasonable. As long as the new option is configurable and defaults to the current behavior, this sounds good to me.


Is it possible to have two runs concurrently in one script?

Description
I want to have two runs from two projects in one script. Is this supported, or do you have any viable alternatives for this?
This is different from this commonly asked question in that I also want another run outside the loop.
What I Did
meta_run = wandb.init(project="meta")

for ... # Meta loop
    individual_run= wandb.init(project="individual")
    for ... # Training loop
        individual_run.log(...)
    individual_run.join()
    meta_run.log()

It's not currently possible.  Only one run can be tracked concurrently in a single process.  Is it possible to run the meta loop in a separate process?  Can you provide more details around your specific usecase?

I am trying to reproduce double descent. For example, In Figure 9, they plot the test loss (y-axis) with the number of hidden units (x-axis). This corresponds to the meta loop. I also want to plot the test loss with the epoch for each number of hidden units, which is the training loop.
I am not too familiar with subprocesses, so I don't know how I could run it on a separate process.

In this case you should be able to log all metrics in the same run.  If you add your hidden units to your calls to wandb.log you'll be able to choose that as an x-axis in the UI and plot your test loss against it.

@cvphelps, like this?
import random
import wandb

wandb.init(project="delete-this")

for n_units in [1, 2, 3]:
    for epoch_i in [1, 2, 3, 4, 5]:
        wandb.log({"train/loss": epoch_i * 100 - random.randint(-10, 10)})
        wandb.log({"valid/loss": epoch_i * 100 - random.randint(-20, 20)})

    wandb.log({
        "n_units": n_units,
        "test/loss": n_units * 10 - random.randint(-5, 5),
    })

This solution does not work for me since I can't plot the individual runs separately. These are the plots I get:

Is there a way to plot each individual run separately?
By the way, thank you for your swift responses! You are awesome 😄

@seungjaeryanlee if your n_units actually correspond to different models you can start 3 different runs:
import random
import wandb

for n_units in [1, 2, 3]:
    wandb.init(project="delete-this", config={"n_units": n_units}, reinit=True)
    for epoch_i in [1, 2, 3, 4, 5]:
        wandb.log({"train/loss": epoch_i * 100 - random.randint(-10, 10)}, step=epoch_i)
        wandb.log({"valid/loss": epoch_i * 100 - random.randint(-20, 20)}, step=epoch_i)
    wandb.log({
        "test/loss": n_units * 10 - random.randint(-5, 5),
    })

@seungjaeryanlee thanks for asking this question.
@vanpelt I have question around the same realm as the above,  I was wondering how would we do multiple models in one run? I'll can make sure the metric names are unique and model-specific (model name in their prefix).
Would something like work?
wandb.init(project="xxxx", ...rest of param...)
iterate {
    build models
    wandb.log({'<model_name>.<params>': <value> })
    wandb.log({'<model_name>.<metric_name>': <value>})
}
wandb.sync()

@neomatrix369 that would work, you would likely want to align the metrics on steps by passing the step keyword to your log calls.  You can also log nested dictionaries:
wandb.log({'model_1": {"loss": 1, "acc": 1}, "model_2": {"loss": 2, "acc": 2}}, step=epoch)
There's no sync method.  If you call wandb.init multiple times in the same process you may want to call wandb.join but we automatically call it when you specify reinit=True in your calls to wandb.init.

@neomatrix369 that would work, you would likely want to align the metrics on steps by passing the step keyword to your log calls. You can also log nested dictionaries:
wandb.log({'model_1": {"loss": 1, "acc": 1}, "model_2": {"loss": 2, "acc": 2}}, step=epoch)
There's no sync method. If you call wandb.init multiple times in the same process you may want to call wandb.join but we automatically call it when you specify reinit=True in your calls to wandb.init.

Thanks that helps a lot.
PS: I meant wandb.join thnx for confirming

@seungjaeryanlee if your n_units actually correspond to different models you can start 3 different runs:
import random
import wandb

for n_units in [1, 2, 3]:
    wandb.init(project="delete-this", config={"n_units": n_units}, reinit=True)
    for epoch_i in [1, 2, 3, 4, 5]:
        wandb.log({"train/loss": epoch_i * 100 - random.randint(-10, 10)}, step=epoch_i)
        wandb.log({"valid/loss": epoch_i * 100 - random.randint(-20, 20)}, step=epoch_i)
    wandb.log({
        "test/loss": n_units * 10 - random.randint(-5, 5),
    })

Is it possible to plot a line plot (test loss vs N) in this case?

You can use a bar plot to compare the different runs, or use the the line label template syntax to plot multiple runs against eachother and include n_units in the legend.  Does that make sense?

@vanpelt I understood the bar plot. Could you point me to a documentation or an example of the line label template syntax? I wasn't able to figure it out.

When editing a chart you can edit the legend section:

The expressions section has some more examples of variables.


Dependabot 20220401a

Description
First batch of dependabot updates for April 2022
Fixes # n/a
How Has This Been Tested?
Build & FVT
Any additional notes for reviewers?
A few fixes have been left to be integrated/tested individually as they have been known to cause issues in past

elastic search
jakarta annotation API
hibernate validator

Initial batch fails after the jackson fix:
[INFO] --- maven-dependency-plugin:3.3.0:analyze-only (analyze) @ open-connector-framework ---
[WARNING] Non-test scoped test only dependencies found:
[WARNING]    com.fasterxml.jackson.core:jackson-databind:jar:2.13.2:compile

Removed

jackson update
com.github.psxpaul.execfork gradle plugin update

As both cause issues & will be investigated after the main batch of dependency updates

Readded jackson update (maven)
fixed up missing update to jackson (gradle)
Excluded all test-only scope dependency checking. The latest updates resulted in many of these across components - will open an issue


Splitting with empty string as separator causes high memory usage

"test" "" split

causes high memory usage and heavy swapping, so that PC sometimes even freezes (Windows 10 x64, 8 GB RAM)
My intention was to get separate characters, but according to nim's split documentation, with empty separator nim's split returns unmodified string. Somehow split in mn does neither.

Seems like Nim problem. I have written a simple program to test my suggestion:
import
     strutils

proc main =
    var i = 0
    echo "hello".split("")    ## compiles, but assertion (sep.len > 0) error at runtime
    #but
    for e in "hello".split(""):  ## infinite loop
        i.inc
        echo i       ## to confirm that something happens
        echo e

main()


Photos upload does not work anymore

Hi,
I don't know what changed recently in the service but I can't upload to Google Photos anymore.
I've tested with two accounts, with different errors.
In this account I have removed the grant from the google/account panel then reauthorized from the app:
2016-11-02 00:07:52.052 App[76491:28391588] serviceBase:<GDataServiceGooglePhotos: 0x6480001c1a40> objectFetcher:GTMSessionUploadFetcher 0x101da62f0 (https://photos.googleapis.com/data/upload/resumable/media/create-session/feed/api/user/114209999584000922529/albumid/6346618894798241153) failedWithStatus:503 data:
In the other I get an "invalid_grant" error.
I can get the album list, but I can't create albums or upload photos.
Same thing happens with current version and previous using HTTPSessionFetcher.

You likely will want to reach out to on that server API's support area: https://developers.google.com/picasa-web/forum  (since as you mention, you code and this libraries code haven't changed, so it likely is something server side that changed)
You might also want to capture a http log to help show what you are sending and is failing.

I've tried, but my posts haven't been approved yet...
This is the log, and the response is quite eloquent... hope they haven't killed the service!
2016-11-04 10:48:14 +0000      GTMOAuth2 refresh fetch to www.googleapis.com for "***"      request/response log
elapsed: 0.406sec
request: POST https://www.googleapis.com/oauth2/v4/token
headers: 2
data: 175 bytes, application/x-www-form-urlencoded
response:  status 200
headers: 13
data: 973 bytes, application/json
2016-11-04 10:48:14 +0000      addPhotoTicket:finishedWithEntry:error:      request/response log
elapsed: 0.857sec
request: POST https://photos.googleapis.com/data/upload/resumable/media/create-session/feed/api/user/default/albumid/default
headers: 12    authorized
data: 688 bytes, application/atom+xml; charset=utf-8
response:  status 503 service unavailable  ⚑
headers: 7
data: 0 bytes, text/html

After a couple of tests, I've downgraded my copy to use HTTPFetcher again, since I need 10.7 support, and it works again.
So it is not a problem of the google service, but there should be some glitches in SessionFetcher.

Thanks for the update.  If you've got an easy repo setup, it would be great to share so we can help take a look.


Update cats-effect, cats-effect-kernel to 3.5.6

About this PR
📦 Updates

org.typelevel:cats-effect
org.typelevel:cats-effect-kernel

from 3.5.4 to 3.5.6
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.typelevel" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, commit-count:1

Superseded by #464.


Prebuilt binary not found

Hello, I am trying to use node-usb in my electron application with React. But I am facing issues.

OS : Ubuntu 16.04

node version : v9.3.0

error

> ❯  npm install usb

><EMAIL_ADDRESS>install /home/lalit/Desktop/Github/Electron/simple-electron/simple-electron-react/node_modules/usb
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(404): https://github.com/tessel/node-usb/releases/download/1.3.1/usb_bindings-v1.3.1-node-v59-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v59 ABI, glibc) (falling back to source compile with node-gyp)
make: Entering directory '/home/lalit/Desktop/Github/Electron/simple-electron/simple-electron-react/node_modules/usb/build'
  CC(target) Release/obj.target/libusb/libusb/libusb/core.o
  CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.o
  CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o
  CC(target) Release/obj.target/libusb/libusb/libusb/io.o
  CC(target) Release/obj.target/libusb/libusb/libusb/strerror.o
  CC(target) Release/obj.target/libusb/libusb/libusb/sync.o
  CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.o
  CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o
  CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_usbfs.o
  CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_udev.o
  AR(target) Release/obj.target/usb.a
  COPY Release/usb.a
  CXX(target) Release/obj.target/usb_bindings/src/node_usb.o
  CXX(target) Release/obj.target/usb_bindings/src/device.o
  CXX(target) Release/obj.target/usb_bindings/src/transfer.o
  SOLINK_MODULE(target) Release/obj.target/usb_bindings.node
  COPY Release/usb_bindings.node
  COPY /home/lalit/Desktop/Github/Electron/simple-electron/simple-electron-react/node_modules/usb/src/binding/usb_bindings.node
  TOUCH Release/obj.target/action_after_build.stamp
make: Leaving directory '/home/lalit/Desktop/Github/Electron/simple-electron/simple-electron-react/node_modules/usb/build'
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>No repository field.
npm WARN<EMAIL_ADDRESS>No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+<EMAIL_ADDRESS>updated 1 package in 61.4s

When I saw in this repo for this file which it is trying to download, I found that it doesn't exist here. Please help me. Thank you.

There are no pre-built binaries for Linux (or Electron on any platform). It looks like it successfully built from source automatically though.

Actually, I found the solution. Thanx. I am sharing the link to the solution so that someone can get help.
Use node-usb inside electron


feat(data-types): enhanced data types

:tada: This PR is included in version 2.0.0-beta.8 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add missing article translations in listing

We need this fix to translate for example the pack unit.

Thanks for your pull request.
Article translations are already loaded over the ListProductService/*Gateway and shouldn't be reloaded in the sArticles.
I tried to reproduce the behavior but the unit and the article data (pack unit included) translated completely and in the right language.
Can you write an test which reproduce the failure?

Perhaps this isn't needed anymore in 5.2. We had this issue in 5.1 and needed the translation for additional data. We'll review it without this change.

This is not needed anymore in 5.2


Update version: JanGrzegorowski.TimeSeriesAdmin version 0.1.13

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/114992&drop=dogfoodAlpha

@wingetbot run


Fix CSV download

Overview
When we swapped to using List.of() for generating the list of strings for the CSV, we missed that List.of() doesn't accept nulls and the assignee for an Action Item can be null. This just returns an empty string if there is no assignee and moves the logic for generating the CSV line per item out of the Thought and Action Item Entities.
Testing Instructions

Add a new Action Item without an Assignee
Click the download CSV button
Verify the file contains the expected information for a Thought and an Action Item

LGTM


自己部署wechaty

哪个Puppet最稳定，不容易被封号，不容易掉线？

2.如何部署一个完全自己管控的service, 防止数据传输给第三方？

wechaty-puppet-padlocal 和 wechaty-puppet-service对比呢？

Welcome to Wechaty! We're glad you're here. Here's how to help us keep things organized:

Found a bug? First, see if anyone else has reported it. If not, go ahead and tell us about it. Please include what happened, how to make it happen again, and any pictures if you have them.
Have a new idea? Great! Check if someone else has already thought of it. If not, let us know what you're thinking and why it's a good idea.
Got questions? For questions, please don't use GitHub. Instead, try talking to our Friday BOT for answers:

If you have ChatGPT Plus, use this link: https://chat.openai.com/g/g-s4mx1ODQy-friday-bot
Or join our Discord community and ask Friday BOT there: https://discord.gg/7q8NBZbQzt

Thanks for helping Wechaty! We're excited to see what you do.


Enabling discussions

At least for Q&A. I have a couple of questions, and I liked the way it worked in the simplicity repo

Done


Handle earliest begin_offset in group member/subscriber

Based on your advice here I implemented the brod_group_member behavior with a subscriber per partition. I tried to follow Brucke as suggested.
This allowed me to handle the assignments_received callback and get correct balancing between two consumers. (It also gave us a substantial increase in throughput.) Thank you very much for that recommendation!
One thing I've noticed is that I'm not handling offsets correctly. I would like to specify begin_offset as earliest when my subscriber starts consuming from a topic. But on subsequent starts, I would like it to pick up where it left off with respect to the consumer group.
So far, I can't seem to get a combination that does that using various combinations options to:

:brod.start_client
:brod.start_consumer
:brod_group_coordinator.start_link
:brod.subscribe

If it helps, I'm acknowledging offsets with:
    :ok = :brod.consume_ack(subscriber_pid, offset)
    :ok = :brod_group_coordinator.ack(group_coordinator_pid, gen_id, topic, partition, offset)

Any advice would be appreciated!

brod_consumer does not fetch any message until there is a subscriber.
And it stops fetching messages when the subscriber process is down (it monitors the subscriber pid).
So you could just use whatever :begin_offset in the third argument of:brod.subscribe/3.
In your specific case, the assignment is a brod_received_assignment record,
the begin_offset field in this record should be used in the :brod.subscribe/3 call
If the received begin_offset is :undefined, then you can use
{:begin_offset, :earliest} in the option list.

Hope it wont add confusion: :brod.start_consumer accepts {:begin_offset, ...} in the consumer config, this begin offset works like a default option, if there is no :begin_offset given in :brod.subscribe call, the one in config is used.
You could just always use a begin_offset option in :brod.subscribe call to make it less confusing.
As for acking, brod.consume_ack only tells brod_consumer to fetch more messages (when pre-fetch-count allows), it's the :brod_group_coordinator.ack call that should eventually get your offsets committed to kafka.

@zmstone Thank you! That works perfectly. I was actually ignoring the offset from brod_received_assignment and I don't know why. 😕

As for acking, brod.consume_ack only tells brod_consumer to fetch more messages (when pre-fetch-count allows), it's the :brod_group_coordinator.ack call that should eventually get your offsets committed to kafka.

👍 Understood. There's a nice comment in Brucke to that effect:
      %% tell upstream consumer to fetch more
      ok = brod:consume_ack(ConsumerPid, OffsetToAck),

Thanks again for all of your help!


Run unit tests in functions packages without suites.

Updated pom.xml to run unit tests under functions without using Suite wrapper (previously refactored packages listed individually).  For consistency, also added missing test class with 4 test cases to misc package suite which I missed when refactoring that package.
Note the package gdfo was kept as suite since a failure was reported in on-demand build 41 although not observed on local windows development environment.
Tests completed successfully here which includes latest commit.

Thank you @gweidner
For verification, I ran the test suite again with latest master rebased with these updates on a test branch here. All tests (4,332) completed successfully. For comparison, I also ran test suite with the latest master here. All tests (4,328) completed successfully.
I really like the simplified pom.xml for the maven-failsafe-plugin's includes and excludes.
LGTM.


CTRL+TAB Error

(from WordPress)
Hello James,
a big thank you for the library.
It seems I’ve found a bug.
When I press Ctrl+Tab nothing happens.
I can reproduce this error in all you demo apps.
Arno

Fixed.


add ack dependency to ensure seamless upgrade

Signed-off-by: Tommy Hughes<EMAIL_ADDRESS>

@tchughesiv do we need JIRA or we can add PR link in existing one

@redhatHameed i think we need separate one right?

Yes that will be good Thanks


Error while resizing or moving the window of the app (Windows 10)

My Setup

Operating System: Windows 10

App Version: 2.13.2

[x] I have tested with the latest version

[x] I can simulate the issue easily

Description
When you try to resize or move the window of the app (via mouse - drag and drop), a javascript error occurs:

Current Behavior
Exception occurs
Expected Behavior
The Windows should resize and move normally.

Are you using a commercial antivirus software?

I'm also having this problem in Windows 7.

I'm also having this problem in Windows 10. And antivirus software kaspersky 10

@tassoevan
we using kaspersky endpoint security 10

Is this error present in 2.13.3 too?

Not anymore at least on my machine (Windows 10 version 17134 with Kaspersky 10).

2.13.3 seems to have fixed the error for me also.

2.13.3 also fixed the error for me


Refactor metadata to be a table rather than a string

Currently the metadata is read from a file and returned as a string. Any method that then needs the metadata must create it's own table from it. Instead, in DefaultPointsRenderer, convert this string into a table of key, value pairs and store it. (Note, dont do this in the metadata viewer as converting to a table will throw out duplicate key names). The metadata table (and not string) should then be passed to methods and not the string metadata.
E.g.
local metadata = {}
metadata["AF Point"] = "C6"
metadata["Focal Length"] = "30mm"

ok 'll take it

PR #59

awesome!


Update Pages “index”

Automatically generated by Netlify CMS

👷 Deploy Preview for nervous-engelbart-a15395 processing.
🔨 Explore the source changes: bc09abed9fce0b02d8c25f6fa550410d0ddfb8e9
🔍 Inspect the deploy log: https://app.netlify.com/sites/nervous-engelbart-a15395/deploys/61aed125f9b34c0007034810


xorg-protocols: Build a bottle for Linuxbrew

From https://travis-ci.org/Linuxbrew/homebrew-xorg/builds/128445441#L954-L956
Error: 1 problem in 1 formula
linuxbrew/xorg/xorg-protocols:
  * Stable: version (latest) is set to a string without a digit

Just an audit failure. Not concerned.


If using more than one shaded netty-tcnative library in a JVM, only the first loads successfully

Now that netty can automatically detect the package prefix ( #6995 ), I attempted to shade netty into two different packages, lets call them A and B.
Package A loaded tcnative successfully (lets say it was shaded to A.repackaged.io.netty).
However, when package B attempted to load, I got an UnsatisfiedLinkError invoking aprMajorVersion() in io.netty.internal.tcnative.Library.
Digging in more, I do see the native library (from package B) being unpacked and loadLibrary being called on it (and not throwing an exception).  However, lldb reports that it is not loaded (eg it doesn't show up in image list, only the library from package A does), and further, running the JVM with -verbose:jni shows the JNI native methods for the shaded version of tcnative in package A being registered (again) instead of B. ex:
[Registering JNI native method A.repackaged.io.netty.internal.tcnative.Library.initialize0]
I've tested this on OSX, but not Linux yet.

cc @ejona86

also @carl-mastrangelo

@steveniemitz to clarify, you mean the shaded version of io.netty.internal.tcnative.Library right?  At leats on OpenJDK, most of the interesting Native library loading logic is in ClassLoader.  Have you tried stepping through it in a debugger yet?

Sorry, yeah my post was confusing there.  I do mean the shaded version of Library.
Working from memory right now, I have stepped through.  The call to (native) System.loadLibrary succeeds, and it does pass the expected correct shaded lib name.  I haven't stepped though the native code though.

Sorry to add noise to this issue, but how did you manage to shade netty with tcnative at all? I run into the problem that netty cannot load the native library (for details: )

@Xeli, you also need to rename the .so's, .jnilib, and .dll. See #6995 for some more information.

@steveniemitz so can you please clarify what exactly the issue is ?

Sorry,  I'm not sure how I could be more descriptive,  what is unclear here?

However, when package B attempted to load, I got an UnsatisfiedLinkError invoking aprMajorVersion() in io.netty.internal.tcnative.Library.

As @ejona86 said https://github.com/netty/netty/issues/7272#issuecomment-335524387 you need to rename the native libraries. This is generally not done automatically by shading plugins for maven and gradle ... you need to configure an extra step.

Yes, I realize the native libraries need to be renamed.  Both shaded jars work fine on their own.  The problem manifests only after the first shaded library has loaded and registered its JNI methods.

As far as investigation, I think we should just try the same setup as mentioned: two normally-incompatible tcnatives, with at least one shaded.
I think this is the sort of case I've been mentioning I was concerned about (offline). I've not had time to investigate, and it'll probably be time-consuming. I'm worried there won't be a solution, other than swapping to Conscrypt. Since Conscrypt (will have) a stable API, you don't shade, and so there's only one version in play.

fwiw, I was testing with (I think, this was over a month ago now)

google-cloud-trace library + tcnative 2.0.6 (shaded),
bigtable-client-core + tcnative 2.0.6 (shaded)

So the same version of the lib (also binary identical).  My naive guess is the OSX loader is detecting that a native lib is being dlopened twice and simply ignoring the second one.

Yes, I realize the native libraries need to be renamed.

@steveniemitz - my mistake ... I glanced to quickly at the issue description.

Here are some options which maybe viable:
https://stackoverflow.com/a/6540059
If the binaries are identical ... it maybe just sufficient to have the JNI_OnLoad method invoked, which will do the JNI registration under the shaded method names.
If the binaries are not identical we would want both libraries to be loaded to avoid conflicts. Have tried with different versions of tcnative @steveniemitz ?

I have not tried two different versions.  Based on my guess from above I expect it'd work though.

While others in my organization running OSX have run into this issue, I can confirm that on linux this works for me.

To expand on what Alex said, we ran into this issue in our apps that were using a mix of grpc-netty-shaded as well as another copy of shaded netty under a different package prefix (both copies are version 4.1.22.Final). This was the minimal reproducible example we came up with:
public static void main(String... args) throws Exception {
    System.out.println(io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.isAvailable());
    System.out.println(other.netty.shaded.io.netty.handler.ssl.OpenSsl.isAvailable());
}

On OSX, whichever OpenSsl class is invoked first returns true, and the second always returns false. But it's not reproducible on the flavors of Linux that we've tried. We haven't tested on Windows.

@acharis yes please... Can you also explain "this works for me" means ? Does it mean that everything "just works" as it is for you on linux ?

Yes, sorry, I was far too terse.
Running jhaber's minimal example above prints
true
true

on my linux machine.
Additionally, members of my team have gotten that example to run on OSX by running OSX's install_name_tool to change the id of the dylib for our differently shaded netty.

@acharis can you give some more details on what exactly they did with install_name_tool ?

install_name_tool -id my_id <path to dylib>

Please see https://github.com/netty/netty/pull/8207 ... I will do the same changes for tcnative as well.
Also I really think about writing a maven and gradle plugin to do all of the needed steps to shade netty / netty-tcnative so people will not need to mess with all of this. Thoughts ?

:-/. Needing to run install_name_tool means we must do the shading on OS X. That's going to be annoying. I really hope no Windows- or Linux-specific issue pops up where we must run commands on those platforms as well.

@ejona86 yeah it is a mess :( I am investigate if there is any way to just do it manually . I guess it’s a matter of rewriting the Mach-o header

@ejona86 PTAL https://github.com/netty/netty/pull/8210 :)

Last missing part https://github.com/netty/netty-tcnative/pull/382 :)


delete unnesessary constructor of vgicp

Thanks for your contribution! LGTM, and I'm merging it now.


Optional init for media icons folder

Last pull request, I swear! Not a major one but this modification will allow a developer to disable the init-media-icons-folder initContainer if it's no longer required (such as when using a persistent volume and the folder already exists). The boolean defaults to true but gives one the ability to turn it off as necessary.

Oh just one more thing can you bump the chart.yaml version as well?

Final bump of Chart version 👍


Parenthesis and Commas after entries

Not causing any issues, but I noticed that many stat entries now have a set of Parenthesis and commas after them:
( )
(, )
(, , , )
These are after the attacks, abilities and passives

Hm. I guess the migration wasn't smooth on that. You can easily fix that by updating the bestiary via the context menu, or by dragging in the creature again.
The commas are the attack/abilities/passives failing to show their traits 😅
I'll whip up a fix to make sure they migrate though. Thanks for reporting it.

I released v<IP_ADDRESS>.1. It should fix so that the traits are properly displayed. 👍


Do not ship CodeSignSummary-*.md

Download a zip build of VSCode e.g. https://az764295.vo.msecnd.net/insider/923e9ccb3fc44bfaaf4b4049015c84e42bc40f95/VSCode-win32-x64-1.25.0-insider.zip
Observe the CodeSignSummary file. We should not ship this file.

Oh that's new...


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_78hzch625f/clone/recipe/meta.yaml:17: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_78hzch625f/clone/recipe/meta.yaml:22: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_78hzch625f/clone/recipe/meta.yaml:44: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_78hzch625f/clone/recipe/meta.yaml:54: http_url: http://github.com/relekang/python-semantic-release is not https
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_e1y8f6e43p/clone/recipe/meta.yaml:17: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_e1y8f6e43p/clone/recipe/meta.yaml:22: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_e1y8f6e43p/clone/recipe/meta.yaml:44: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_e1y8f6e43p/clone/recipe/meta.yaml:54: http_url: http://github.com/relekang/python-semantic-release is not https
Errors were found


Save a copy requiring Build permissions???

At multiple places in this doc we state that you require build permissions on the dataset to make a copy of a report - I believe this is incorrect.  You can copy a report if you have read access to the report and dataset, but you cannot edit/update it.
So I can create a copy of a report into my own workspace when I have read permissions, and that report will remain connected to the original dataset and continue to work for me, however I cannot edit or change the copied report unless I have build permission on the dataset.
Can someone please confirm the permission requirements to copy a report?
Thanks!

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

ID: 83c63999-09de-cccf-ae53-ef7fcfbc1186
Version Independent ID: 39407557-14d4-f78b-bfcb-ea95cf501c47
Content: Copy reports from other apps or workspaces - Power BI
Content Source: powerbi-docs/connect-data/service-datasets-copy-reports.md
Service: powerbi
Sub-service: pbi-data-sources
GitHub Login: @paulinbar
Microsoft Alias: painbar

Thanks for your comment, @rosscouldrey. This issue has been assigned to the doc author for review.

Hi @rosscouldrey, I didn't observe the behavior you describe. The dataset and report you are making a copy of are not in your My Workspace, correct? My Workspace is only the destination for the copy, right? In my trials, copying works as described. Can you confirm that the source dataset is located in a workspace where you only have a viewer role, and that no build permissions have been granted on the dataset via some other means, such as explicit permissions?
In the meantime I am closing this issue, but feel free to reopen it if you still manage to copy the report as you described. Thanks!

Hi Paul - i think the issue still persists.  If you review the article you'll find the following statements:

To copy a report to another workspace, ..., you need build permission for the dataset
You only see the "Save a copy" option if you have Build permisssion
You only see the "Save a Copy" option if app permissions grant Build permission

I dont believe these statements are true and I've tested again this morning.  I am able to copy a report to another workspace without Build permissions... you cannot EDIT the report... but you can copy it.  I have put together a series of screenshots to demonstrate the workflow which i will send via email for your review.
I think the update here just needs to be clarity that we're talking about needing Build permissions to EDIT a report... not to COPY it.

You were correct - the user had access to the app which granted build permissions on the dataset by default...


Clarifying using await in Main

"Normally, you would prefer to await the completion of the task, as in the ProcessRepositories method, but that isn't allowed in the Main method." This isn't accurate if you are using C# 7, right? I was able to change my LangVersion property to 7.1 and the signature of the Main method to return a Task to get this to work.

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

ID: 3bfcc1a8-ddda-810c-17b0-56a506045d67
Version Independent ID: 5415878b-e60b-5433-7b4b-efc8259908f0
Content: Create a REST client using .NET Core
Content Source: docs/csharp/tutorials/console-webapiclient.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks @haydenhancock. We need to update some topics in regards to this new C# feature,

Adding the "up for grabs" label for community members to consider this.


Incoming call notification not getting on iPhone XR

Hi,
I am having issues with the incoming calls.
I am able to receive incoming call notification for the following scenario

when the app is active
when the app is in background state
when the device is locked

for device iPhone 5s, iPhone 6 working fine
but I am not able to get incoming call notification for device iPhone XR
from the above scenario
only first one: when the app is active is working fine on iPhone XR and other scenarios not
Not sure what was the issue, please suggest

Hi @aniketlokhande07
Please follow the issue template and provide important information such as Twilio Call SIDs, iOS versions.

Hi @bobiechen-twilio

Thanks for provide the Call SIDs @aniketlokhande07.
From the records, the push notifications of both calls were sent successfully. Any chance your device is in do-not-disturb mode?
Here's what I tried:

Launch the app and register
Terminate the app
Turn on "Do Not Disturb" mode and lock the device

My app didn't ring in this case, whereas when I didn't turn on DnD I was able to get the incoming call ringing when the device is locked.

Closing issue since there has not been updates for a while. @aniketlokhande07 please feel free to reach out if you need further assistance. Please provide Call SIDs if you believe you are still having trouble getting incoming call push notifications.

I am facing same issue


Text inputs don't use colour system correctly

Describe the bug
<input> and <textarea> don't correctly use Gravity's colour system. While their text color does inherit from the surroundings, we do not currently set background or border colours on them so they just use the OS/browser defaults. This means they have weak contrast in some case:
With the light colour scheme, the border is bit weak:

With the dark colour scheme, text in the input is barely readable:

Expected behavior
Border and background colours should be set using the appropriate colour purposes.
Screenshots
If applicable, add screenshots to help explain your problem.
Device / system:

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

:tada: This issue has been resolved in version 3.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update chili to latest commit

The workflow fails because of mutable_borrow_reservation_conflict warnings.
This is fixed in rust nightly, maybe we can upgrade to nightly?
Or just set rustup to nightly temporarily in my compile.sh?


Make external_hostname and tunnel_name optional

Proposed Changes

Enable usage without using external_host (for custom_config, additional_hosts, catch_all_service or nginx_proxy_manager
Make tunnel_name optional with default "homeassistant"

Related Issues
#190

I currently cannot test this properly, so please feel free to suggest any documentation changes or code fixes

Technically, the changes you made work fine. 👍🏻
I think we should adjust the documentation to facilitate the configuration of the add-on.
The documentation has to make it clear that the choice between local and remote managed tunnel must be made first.

For using the remote managed tunnel tunnel_token needs to be set
For using the local managed tunnel external_hostname and/or additional_hosts need to be set.
All other parameters can be used in addition for the local managed tunnel.

In this context (maybe as additional PR), I suggest to remove tunnel_name from the default configuration and set it to the default value "homeassistant" in case of an empty value. Thus we can set the parameter optionally.

Looks good, I would say lets merge this and add documentation in a separate PR

Looks good, I would say lets merge this and add documentation in a separate PR

sorry, I missed your comment and had another commit lined up. Can you have another quick look @elcajon?

Awesome, looks good. 👍🏻

I think we could post a new release after this PR and reference the survey again. In parallel we could already remove the warp functionality, the feedback is relatively low on this configuration option.

You guys are fast! Thank you for this change 🙏
Looks like you've already sorted the docs, but when this goes in I'll follow it with a minor docs tidy PR.


Get Column metadata of a dataset

Hey, i was wondering if there was a way of getting column's metadata of a given dataset such as:

Number of columns
Column's name
Column's description

The metadata download of a dataset doesn't provide those info atm but we can easily see them on the dataset webpage.
Thanks

hey no sorry :/

Any update regarding the extraction of meta-data containing column description of Kaggle dataset as I am also facing the same issue.
The Kaggle API provides an API to fetch the metadata about a dataset, also the docs here shows it also saves the column names and their The Kaggle API provides an API to fetch the metadata about a dataset, also the docs here shows it also saves the column names and it's metadata.
But when I use the API on my own dataset, I only get a limited set of results excluding the meta-data about the column description. My results is missing the "resources": [] tag in the json.
Any help will be highly appreciated.

This is actually very difficult, took me days to understand it and now that I have figured it out, i don't think it can be easily integrate into this Kaggle Api library as it's using different path altogether.

This is actually very difficult, took me days to understand it and now that I have figured it out, I don't think it can be easily integrate into this Kaggle Api library as it's using different API path altogether. Happy to share in case someone wants to understand, pls dm me

Can you share the code that allowed you to do this?  I need this functionality for a project I am working on.

we guess I saw this too late, its stopped working after Kaggle changed something on their side.
we have some datasets metadata extracted at public data oculus site  ( https://public.dataoculus.app/ )
we plan to onboard more from user requests, so in near future we would have lot more. wish me luck !


Dealing with your strange request response

The comments-fix is about timing when switching user and trying to load comments before user has been gotten.


Specify which source --singlematch should keep unique

When I run record-linkage with the --singlematch option then I get unique records for only one of the sources. In other words, Duke seems to do a One-to-Many match.
How do I tell Duke which of the two input files should be unique in the outputted match file?
Thanks!

I believe RecordLinkageMode finds just one match per record:
https://github.com/larsga/Duke/wiki/RecordLinkageMode. I'm also interested in getting a list of top matches from one datasource for a single record in the other source. @larsga is there any official position on this issue?


Fix: merge entity from the same type

Change Description

Merge the result from the same entity_type.

Issue reference

This PR fixes issue https://github.com/microsoft/presidio/issues/917

Checklist

[ ] I have reviewed the contribution guidelines
[x] I have signed the CLA
[x] My code includes unit tests
[x] All unit tests and lint checks pass locally
[ ] My PR contains documentation updates / additions if required

@microsoft-github-policy-service agree [company="personal"]

@microsoft-github-policy-service agree

/azp run

Thanks! Great contribution

/azp run

/azp run

/azp run


filter multiple resolutions

Currently I am using the filter like this:
full_high_videos = yt.streams.filter(res='1080p', type='video', subtype='mp4').all()

But I would like to find videos with 720p as well.
So I though that it could be possible to use the filter like this to find both 1080p and 720p videos:
hd_videos = yt.streams.filter(res=('1080p', '720p'), type='video', subtype='mp4').all()

Is there a similar way to specify two arguments for one parameter?
Or something similar which is easier than using two different variables, searching for the 1080p videos in the first one and then searching for the 720p videos in the second one?

Try this:
hd_videos = yt.streams.filter(custom_filter_functions=[lambda s: (s.resolution == '1080p') or (s.resolution == '720p')], type='video', subtype='mp4').all()

but to be honest you could just as easily do this:
hd_videos = yt.streams.filter(res='1080p', type='video', subtype='mp4').all()+yt.streams.filter(res='720p', type='video', subtype='mp4').all()


Possible fix for bundle running as daemon

Only collecting the last 100 commands in CLI. This way the bundle won't consume all memory.

Shouldn't we just disable the logging altogether in CLI?

I'd say no.. if you run in dev env you get dev env, and I'd argue if you have a logger attached you might be interested in debugging even in a CLI context then we should indeed log things to it. The main problem is that it keeps commands forever on the instance, not that it forwards them to $this->logger.

Ok, but if we opt for that we should keep in mind that you can also enable logging in prod, and that 100 is a pretty low arbitrary number. I've seen web requests hit 200+ as well.
So I'd be more in favor of a sufficiently high limit that is still reasonably friendly on memory, like 1000 or even 2500, perhaps configurable with sane high default. Low magic thresholds are dumbfounded devvers waiting to happen.

No my point was I don't see why this is keeping queries at all on the instance. Maybe it's for the datacollector in dev mode, but in prod mode having the logger enabled should not do collect queries on the instance as that is what leaks memory.

Ah k then we mean to say the same thing.
@fuzzypones do you agree and can you change the PR?

Yes i agree.
I am a bit confused as to what to be changed now.
Do we forward it to $this->logger now in DEV, set it to something like 2500?

I'm actually not even sure why we should keep RedisLogger around if we can just push right to a PSR logger...?

I can only guess since i don't have any numbers but if it is being used in environments that do not have a PSR logger (for any reason) you would have at least simple logging.
I certainly don't know how many usecases there are out there of that.
It certainly was added before any sophisticated logging interfaces were around.
Bundled with the most frameworks it certainly does not make much sense anymore imho.

Yes actually the reason it couldn't merge anymore was that I removed the Symfony 2.3 logger, after that it seems to be just a simple PSR forwarder. As PSR is a standardized interface I don't really see a reason anymore we'd need to keep the facade around other than legacy, and we're breaking that anyway in 3.0.

Ghe yes well we'll still need to change stuff, but this PR as such may not be the venue anymore indeed  😉


SDK should provide a general resource filtering by GVK

Description
Related to https://github.com/GoogleContainerTools/kpt/pull/2971#issuecomment-1098578711
SDK should provide a general solution which can be easily used to all functions to filter resources by GVK. Currently, kpt provides the selector and exclude syntax in Kptfile and as flags to filter resources before passing into each function.
Proposal

kpt shall annotate Kptfile and inline ConfigMap with an internal annotation, propose internal.config.kubernetes.io/kpt-meta, the SDK should provide functions to filter resources by annotation (and this should be called inside a function)
FunctionConfig defines a general interface to filter resources by GVK. SDK provides the actual filtering logic (maybe a default behavior under the SDK resourceList Process so it's applied to all functions automatically).  It would be like

apiVersion: config.kubernetes.io/v1
kind: Resourcelist
items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
       name: current-function-config
       annotations:
         internal.config.kubernetes.io/kpt-meta: true # marked as meta resource, exclude by default
- apiVersion: v1
  kind: ConfigMap
  metadata:
       name: other-function-config
  annotations:
       internal.config.kubernetes.io/kpt-meta: true # marked as meta resource, exclude by default
- apiVersion: kpt.dev/v1
  kind: Kptfile   # Kptfile, exclude by default
  ...
functionConfig:
  apiVersion: v1
  kind: ConfigMap
  metadata:
      name: current-function-config
      annotations:
        internal.config.kubernetes.io/exclude-meta: true
        internal.config.kubernetes.io/exclude: |     # function level exclude list.
           - kind:
           - kind:

+cc @natasha41575 @droot @bgrant0607

kpt shall annotate Kptfile and inline ConfigMap with an internal annotation, propose internal.config.kubernetes.io/kpt-meta, the SDK should provide functions to filter resources by annotation (and this should be called inside a function)

Quick clarification about this for @yuwenma and @droot, according to the kpt variant constructor pattern doc, we have changed the definition of "meta resources" to no longer include functionConfigs. So Kptfile is now the only meta resource. My understanding is that means only the Kptfile should receive this new annotation.

   internal.config.kubernetes.io/kpt-meta: true # marked as meta resource, exclude by default

Similar question here. I think we can provide something in the SDK that helps function authors exclude meta resources it they want to. But we decided to include meta resources by default, so I'm not sure if we should automatically call it in Process.

So Kptfile is now the only meta resource.

Yes, that is correct.
My opinion about this task is that SDK should provide a nice API for filtering resources that is aligned with selectors and exclusion support in kpt fn. So a nice API for filtering on GVK, labelSelector, annotationSelector etc. (indexing by filePath, or subpackages is another use-case)
Annotating meta-resources annotation seems to be a low priority to me given that there is only one meta resource currently. SDK can provide a syntax sugar around filtering by meta-resources and internally apply the kind filter for Kptfile kind without adding the annotation.


add sensitivity map, remove solution_array.sens because it lies

@whoburg this is ready for review (but kinda inconsequential)
@pk Let me know if this is useful!

retest this please

This looks awesome! See inline comment re: docs.

@whoburg, responded in a219347

This looks ready for merging once the new issue on sens is opened.

It is so.


getting-started files not accessible

Problem description
These pages are not accessible directly, as getting-started/index.md redirects to engine/getstarted/ (see #536):

getting-started/part2.md
getting-started/part3.md
getting-started/part4.md
getting-started/part5.md

Project version(s) affected
current
Suggestions for a fix
Remove these files:

getting-started/part2.md
getting-started/part3.md
getting-started/part4.md
getting-started/part5.md

note: in these markdowns we include gists using liquid template, like this:{% gist johndmulhausen/074cc7f4c26a9a8f9164b20b22602ad7 %}. We shouldn't use that and keep everything local.

Removed

@johndmulhausen thanks!

@johndmulhausen is there a PR already? The content is still here.

@aduermael Should be removed now, sorry - multitasking late last night :)


Missing License

Hi @elisescu,
Thanks for the good work!
Please add license information so we can package tty-record for Debian.

Thx for the PR, merged that in, so closing this

Hi, I packaged it for Debian and AUR.

This is great. Thanks, @fvcr ! :)


new demand

Hi:
I have a new demand.
Docker doesn't support update time, But My test envirment's application needs update time. So I run some kvm. I wish I could run only one container at KVM, through swarm scheduling filter.
Like this:
docker  -H <IP_ADDRESS>:2376 run -d -P -e constraint:machine==kvm -e constraint:containers==0  tomcat
But, Now docker info's Containers is not a Standard Constraints.
I just  use  docker  -H <IP_ADDRESS>:2376 run -d -P -e constraint:machine==kvm -e constraint:node==server-10-255-6-130.com tomcat
If I wrap docker command, I can get node of kvm node containers is 0. It's OK, But docker-compose doesn't support this.
docker  -H <IP_ADDRESS>:2376 info
Containers: 33
Images: 17
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 2
server-10-255-6-130.com: <IP_ADDRESS>:2375
└ Containers: 0
└ Reserved CPUs: 0 / 2
└ Reserved Memory: 0 B / 1.005 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.10.0-229.el7.x86_64, machine=kvm, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
server-10-255-33-102.com: <IP_ADDRESS>:2375
└ Containers: 4
└ Reserved CPUs: 0 / 25
└ Reserved Memory: 2 GiB / 132.2 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.18.24, machine=nokvm, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
CPUs: 27
Total Memory: 133.2 GiB
Name: server-10-255-33-102.com
Would you plan support docker info's Containers be a Standard Constraints, or add a dynamic label.
Thanks

Hey @woshihaoren, you can achieve that by using affinities.
Example:
docker run --label foo=bar -e affinity:foo!=bar tomcat

What that does is:

Create a tomcat container
Label that container foo=bar (with --label)
Tell Swarm to never run that container on the same machine where another container labeled foo=bar is already running (-e affinity:foo!=bar)

This will effectively guarantee that you only have one container running per machine.
Let me know if it makes sense!

Hi:
Thank for you help. It's can resolve my demand .

Awesome!
Please re-open the issue if it doesn't work out for you.


Cancel test run doesn't seem to work

Testing #21494
I changed the parameterized test to go from 1 to 10k to 1 to 1k, and then pressed the run button, expecting the test changes to be picked up. However, I noticed the parameterized test was going past 1k because I had the tests expanded while the tests were running. I tried to cancel, but pressing cancel did nothing. I notice now that pressing cancel seems to work after the parameterized test finishes running. I'm wondering if the token can be checked per iteration of a parameterized test?

Noticed the same behavior with vscode crashing after I hit Cancel Test Run in succession. I changed the parametrized test to go from 1 to 10k.

On further testing with 10k tests I have found that the cancelation token is called immediately once the stop button is clicked followed by the TestRun object getting set to testRun.end(). I am not sure entirely about the delay, since I see one too and it seems to occur following the cancelation token call. When I observe it locally my extension logs print Setting the state of test "param_folder/test_parameterized.py::test_odd_even[93]" is a no-op after the run ends. for every test that was not finished and instead canceled. This error comes from here. I do notice that it spins for as long as it takes to print these logs which then stop spinning once it has gotten to the final one log but this is likely specific for the debugging mode I was in. @connor4312 do you have any thoughts?
This is at parity with the current testing infrastructure (rewrite vs non-rewrite code) so it is less urgent to get it out for this release but would be good to get to the bottom of. Thanks!

It seems like the console logs are pretty slow, but there's also a UI stall when ending all those tests. I will have a PR for the latter, and the Python extension should avoid setting states after calling end()

@connor4312 I thought we did avoid setting states after end() was called. Was there an instance you saw this was not the case?

The console log "Setting the state of test "param_folder/test_parameterized.py::test_odd_even[93]" is a no-op after the run ends" is triggered by setting the state after end gets called. I also observed those logs when I was looking into the issue.

Needs PR so that the Python extension should avoid setting states after calling end(). Check if this is accomplished by looking for "Setting the state of test "param_folder/test_parameterized.py::test_odd_even[93]"  in console logs. This is a specific bug to the testing rewrite.

should be fixed by: https://github.com/microsoft/vscode-python/pull/21876

While verifying the issue, I accidentally pressed run all. Pressing the stop button cancelled the tests around half a minute after, but the timer continues to tick with the counter saying 0/0:

Hi Raymond- could you attach your logs and what test you tried to run? Was this unittest or pytest?

@rzhao271 or @bhavyaus are either of you able to check this again during testing week? Still trying to get logs and a bit more information on what it looks like to help narrow down the root cause.

think the edits I made should resolve this, closing so it can be verified

Reopening. It could be that the tests are cancelled but only after a long delay.

Still an issue I think :(

@pyth0nic, do you have a scenario where you are consistently see this? We are having trouble getting a good repro to test against.

I am having the same issue. If I Cancel the Test Run it takes more than 2 minutes for the timer to stop and for the Run Tests button to reappear.

closed by: https://github.com/microsoft/vscode-python/pull/23262
also by work to move to using named pipes

Verification:
follow raymond's original comment, let me know how cancelation is and if it feels reactive

It still seems to return the counter to 0/0 and keep the spinner going sometimes.

@rzhao271 thank you! Yes I think it is just the time it takes to reset all the test items.


ALL THE CHANGES AS PER REQUIRMENT

[x] Day 1
Milestone 0 - project setup (0.5h)

Set up the repository and tools.
Milestone 1 - content (1h)
Choose the topic for your website.
Choose images, text, icons, fonts (we suggest using Lato as it is a free font similar to the one used in the original design).
Milestone 2 - mobile first (5h)
Create the 2 pages for mobile.
Deploy the project.
Day 2
Milestone 3 - desktop version (5h)
Adapt the 2 pages to desktop.
Milestone 4 - interactions (1.5h)
Implement the user interactions: link, mobile menu.
Deploy the project.
Day 3
Milestone 5 - dynamic page (5h)
Implement the section "Featured speakers" with dynamic HTML.
Deploy the project and check to make sure everything works as planned.
Milestone 6 - documentation (1.5h)
Record a video describing your project.
Create a good README and pull request description.

My documentation presentation
https://www.loom.com/share/3be868caa58f4c3ba6c044d716e6cf9b

New documentation link
https://www.loom.com/share/3be868caa58f4c3ba6c044d716e6cf9b

https://www.loom.com/share/1dd6d3bc82f94ad283f46dfca5f6704a soory i did that by mistake


initialization only inits first 2 bytes

initialization uses store to load the initial value, but store only loads the first two bytes, so the rest of the struct is left uninitialized.
typedef struct {
	char a, b;
	int c;
} Ty2;

Ty2 foo = { 1, 2, 3 }; // only initializes a and b (first two bytes), c left uninitialized
Ty2 bar; bar = { 4, 5, 6 }; // assignment works though

just documenting this here in case i forget to circle back to it, ideas for deduplicating assign/store stuff greatly appreciated

same problem with arrays :(


Release v0.18 breaks codepoints

With release v0.18 the codepoints of the logos in the ttf font have changed. That means, that a person who uses a symbol with v0.17 needs to adapt after updating.

This commit https://github.com/lukas-w/font-logos/commit/f161cf60da18815780bc48dacc0810490a1a8dfd removes the file .fontcustom-manifest.json (and prevents re-adding by putting it into .gitignore, so it is not by accident?!). But that file defines which glyph gets which codepoint.
If the file is not existing the glyphs are added in alphabetical filename order.
That will shuffle the logos' codepoints whenever new logos are added.
This has happened in the past already sometimes, but the question is if this is what users of the font file would want.
If you have any document or commandline prompt or other use of the font file and update the font file the contents changes.
Suggestion: Keep codepoints of a certain logo constant and just add new logos in the end (or in vacant spots).
In  the whole history of font-logos there has been only 3 of this breaking codepoint re-enumerations:

v0.1 -> v0.2 (February 2016, v0.1 was a tagged pre-release, so this might be ok)
v0.9 -> v0.10 (Jan 2018, renaming from linux to logos, so this might be ok)
v0.17 -> v0.18 (July 2021, ... reason unknown)

Here is the full history. The last glyph is always colored blue.

v0.1
v0.5

v0.2 (shuffle behind Fedora)
v0.6

v0.3
v0.7

v0.4

v0.8
v0.11

v0.9
v0.12

v0.10 (shuffle to fill gaps? Renaming)
v0.13

v0.14
v0.16

v0.15
v0.17

v0.17
v0.18

@Finii Sorry again for taking so long to respond to this. .fontcustom-manifest.json was indeed not removed by accident. Originally this icon font was made for web use so unlike CSS classes, I haven't considered code points a documented interface, partly because as far as I know Font Custom offers no stability guarantee or ability to control the code points allocated.
I agree though that code points should be made persistent and optimally allocated in a specified range for Nerd Fonts (#33). Because of the lack of support for this in Font Custom and because it hasn't seen a commit in almost five years I'd rather look for alternatives to Font Custom. Plus it's becoming increasingly difficult to get it running on modern systems (I switched to building in Docker because of this). With a quick search I found gulp-iconfont, fantasticon and itgalaxy/webfont but I don't know what else is out there. Suggestions welcome :)

@Finii I noticed that FontCustom  is really just a thin wrapper around FontForge so I changed the build to use FontForge directly via 34043a854aeea79bc410ef1b9220b755a175e13b which allows us to set code points directly (saved as offsets in icons.tsv) instead of working around FontCustom's missing functionality for this. I used code points starting from 0xf300 to account for #33 so this breaks code point compatibility with all previous releases, but to be fair neither code points nor CSS classes were ever guaranteed to be stable as all releases so far have been pre-release (0.x.y) going by Semantic Versioning.
From now on code points will be persistent (except maybe for major version releases) and to indicate this change the new version is released as v1.0.0.
I do feel about having to close #75 now because that is an excellent PR, but I've wanted to get rid of FontCustom for a while now. Sorry about the wasted work but more importantly, thank you for the exemplary bug reports and pull request! :beers:

Thank you for fixing this issue :tada:
No need to feel bad to close #75. That was just a workaround for the assumption that you had important reasons to remove the 'config' file. And it was fun to implement. And it always looked bad (i.e. too complicated) - but I was hesitant to suggest fontforge directly, because that is a higher maintenance burden on you. I'm using ff directly for everything ;)
Thank you for the effort and the determination to understand ff scripting.
I will see that we update font-logos in Nerd Fonts asap - which might mean a while. I can generate the PR over there, but Ryan seems to be in a hiatus right now, and the PRs pile up right now. Not too happy with that situation, but what can one do.
Just one note about the codepoints. It still changes the codepoints, additionally to shifting them all up by 0x0200.
Left 0.17, right 1.0.0

The order changed 'right/upward' of 'Ubuntu invers'. Before it was 'docker', now it is 'Alma', and so on, shuffled. Maybe there was a reason, maybe not :grin:
What is missing from the repo is your f'{outputdir}/{fontname}.json' i.e. assets/font-logos.json I assume.

Just one note about the codepoints. It still changes the codepoints, additionally to shifting them all up by 0x0200.
...
The order changed 'right/higher-codepoint' of 'Ubuntu invers'. Before it was 'docker', now it is 'Alma', and so on, shuffled. Maybe there was a reason, maybe not grin

Those who can read ... :-)

All new icons not included in Nerd Fonts yet are allocated upward of 0xf300.

Sorry, please ignore that comment. That explains it.

Maybe you want to add some metadata to the font file.
Like for example the version number (at least).
Here is a code snippet to do that, too lazy for a PR:
version = "1.0.0"
font.sfntRevision = None # Auto-set (refreshed) by fontforge
font.appendSFNTName("English (US)", "Version", version)
font.version = version
font.generate(...)

But then, I also do not see where you set the copyright string :thinking:
Here you can see the various version numbers:

(My problem is also that this Javascript stuff drives me crazy ;) Installing nodejs seems to be not enough (but more dependencies are not given in the README):

Incorporated the new release into Nerd Fonts (see MR above). Thank you again!

Like for example the version number (at least).
Here is a code snippet to do that [...]

Done via c3955d374373264a35544ff3bbed42088a8e7c11, thanks. :+1:

But then, I also do not see where you set the copyright string :thinking:

I don't. I don't feel comfortable claiming copyright on something that consists entirely of other people's work :wink:

Installing nodejs seems to be not enough

Right, npm install was missing from the README. Fixed via 83c0317177c30d767c39795e7e5295508a1e9d97.

I'm too stupid...:

Ah, I'm on Ubuntu 22.04, that comes with ages old node.js 12.x ... manually upgrade to 14.20 and it works :+1:
Ok... this is the result:

You see, in your code you did not add the line
font.sfntRevision = None # Auto-set (refreshed) by fontforge

Which is needed to have that information auto-updated. You could of course also set it manually (I guess, I never did).
And the copyright seems to be autogenerated if there is not entry.
So maybe
font.copyright = None

Well, maybe this
 for iconId, icon in fontData['icons'].items():
        addIcon(iconId, icon)

+font.sfntRevision = None # Auto-set (refreshed) by fontforge
 font.appendSFNTName("English (US)", "Version", fontData['version']['string'])
+font.appendSFNTName("English (US)", "Vendor URL", "https://github.com/lukas-w/font-logos")
 font.version = fontData['version']['string']
+font.copyright = None

 font.generate(os.path.join(outputdir, fontname + '.ttf'))
 font.generate(os.path.join(outputdir, fontname + '.woff'))

That's about it.
Fonts are really badly interestingly designed and have the same information in different places. You can see all the beauty here https://fontforge.org/docs/scripting/python/fontforge.html#font (which sometimes does not help if you do not know what you're doing). The SFNTNames are a complete universe on their own with lots of additional optional fields...
I need to stop :-)


When I restart HA, I need to login again into Samsung Account

When I restart HA, I need to login again into Samsung Account.
I have the latest version installed and HA 2024.6.3

I don't have this issue every time, but occasionally yes.


Create 0000-01-02-RyanBjork1.md Add RyanBjork1's file

I've added the second slide file. As a reminder, you have: created a branch, created a file and made a commit, and opened a pull request

okay


Impossible to add headers in response

Class response looks like this:
    public class Response
    {
        public string description;

        public Schema schema;

        public IList<Header> headers;

        public object examples;
    }

When this is serialized to json it does not comply with Swagger spec 2.0.
As per swagger 2.0, https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md
Response with headers:
{
"description": "A simple string response",
"schema": {
"type": "string"
},
"headers": {
"X-Rate-Limit-Limit": {
"description": "The number of allowed requests in the current period",
"type": "integer"
},
"X-Rate-Limit-Remaining": {
"description": "The number of remaining requests in the current period",
"type": "integer"
},
"X-Rate-Limit-Reset": {
"description": "The number of seconds left in the current period",
"type": "integer"
}
}
}
Notice that headers is not an array but an object which consists of several objects.
One way of solving this is to remove headers property from this class and introduce vendorExtensions property. So I could do something like this:
    public class BaseHeaders
    {
        [JsonProperty("X-Rate-Limit-Limit")]
        public Header XRateLimitLimit { get; set; }

        [JsonProperty("X-Rate-Limit-Remaining")]
        public Header XRateLimitRemaining { get; set; }

        [JsonProperty("X-Rate-Limit-Reset")]
        public Header XRateLimitReset { get; set; }
    }

    BaseHeaders headers = new BaseHeaders();
                headers.XRateLimitLimit = new Header()
                {
                    description = "Maximum number of requests permitted per minute",
                    type = "integer"
                };

                headers.XRateLimitRemaining = new Header()
                {
                    description = "Remaining number of requests",
                    type = "integer"
                };

                headers.XRateLimitReset = new Header()
                {
                    description = "Time in epoch seconds when limit will be reset",
                    type = "integer"
                };
    response.vendorExtensions.Add("headers", headers);

Now this is really ugly solution but it would be nice if headers could be a dictionary type.

Yep this is def a bug in SB. I Think at one point, when the spec was in flux, this used to be Json array.
Will update to dictionary for next release
Thanks for pointing this out

Should be resolved in latest release - 5.2.0


Int marquee overlay hotfix

Fixes following issues|Adds following features:

Issue/Feature 1
Hotfix for prompts in interactive marquee being cut off with thinner images.

Resolves: MWPW-NUMBER
Steps to test the before vs. after and expectations:

Visit URLs below and hover over the templates to verify the prompts are not cut off

Pages to check for regression and performance:

https://int-marquee-overlay--express--adobecom.hlx.page/drafts/echen/interactive-marquee-4-square
https://int-marquee-overlay--express--adobecom.hlx.page/drafts/yge/en/creates/ai/poster

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 41.23%. Comparing base (a5d054d) to head (cb01e4c).
Report is 138 commits behind head on stage.

Additional details and impacted files
@@            Coverage Diff             @@
##            stage    #1198      +/-   ##
==========================================
+ Coverage   38.69%   41.23%   +2.54%
==========================================
  Files         116       98      -18
  Lines       25143    22984    -2159
==========================================
- Hits         9729     9478     -251
+ Misses      15414    13506    -1908

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


Issue #71 - load large lists of codes fast

I wrote some code in the 'Codes' component that first loads 35 codes (fast, and fills a vertical screen), then load all other codes (slow, like before), as suggested in the issue.

I do not experience prformance problems described in the issue #71 in v0.2.4 anymore. Du you @drageset ?
We can delay this issue to app version 2.

I do experience this issue in v0.2.4. Clicking without my fix takes aprox 1.5 seconds to expand the whole list of codes.


Bring in the JUnit Assume Feature to Three Test Cases

ISSUE TYPE

Enhancement Request

COMPONENT NAME

TEST

CLOUDSTACK VERSION

main

CONFIGURATION

N/A
OS / ENVIRONMENT

N/A
SUMMARY
I would like to propose an idea of using Assume feature offered in JUnit 4&5 for some of the test cases in CloudStack. The Assume function is to replace Assertion in precondition checking. As mentioned in the document:

Assume functions is a set of methods useful for stating assumptions about the conditions in which a test is meaningful. A failed assumption does not mean the code is broken, but that the test provides no useful information.

I notice that some test cases in CloudStack can benefit from the Assume feature. For example:

testAutoRenewalEnabledWithExceptionsOnProvisioning
testAutoRenewalEnabledWithNoExceptionsOnProvisioning
testAutoRenewalDisabled

These cases are all from CABackgroundTaskTest. They all use the assert function to check the preconditions regarding certMap.size() in the test cases.
Take the test case, testAutoRenewalDisabled, as an example. Right now this case is asserting certMap.size() == 1 before the actual testing target(task.runInContext()) is executed.

certMap.put(hostIp, expiredCertificate);
Assert.assertTrue(certMap.size() == 1);

Since the test case testAutoRenewalDisabled contains 2 assertions, it may fail due to 2 reasons:

The functions related to the certMap have bugs.(Here is the Assert.assertTrue(certMap.size() == 1))
The function task.runInContext() have bugs.(What we actually want to check with this test)

Here I suggest replacing the assertTrue function with the assumeThat function, so when the precondition fails, JUnit can skip it instead of report a failurel.  This can help us to focus on failure that is raised by the target testing function.
Proposed changes
Before
certMap.put(hostIp, expiredCertificate);
Assert.assertTrue(certMap.size() == 1);

After
certMap.put(hostIp, expiredCertificate);
Assert.assumeThat(icertMap.size() == 1, is(true));

Please let me know if you think this proposal makes sense, If so I can submit a PR accordingly, If not, comments are appreciated.

@Codegass could you propose a PR, or discuss further on dev@ mailing list https://cloudstack.apache.org/mailing-lists.html

@Codegass could you propose a PR, or discuss further on dev@ mailing list https://cloudstack.apache.org/mailing-lists.html

Thank you for the reply! I will soon propose a PR this weekend.


proposal : advanced routing with additional controller result method Next()

Hi i recently start using revel ,  and thanks to its community , it's amazing .
i have a idea to share to maybe make it better . i have some experiences in security and nodejs web development .
in expressjs ( nodejs ) , in controllers developer receive a function that named next  which can tell the router i don't handle this request and pass it to next possibly available controller .
what is use of it ?
many things but for example i have a session authentication controller
if auth()
 next()
else
  return error you are not authorized

i know it also can implemented by filters in revel but imagine multi layer authentication .
it will be hard to handle more layers with filters and will have more overhead on application.
My idea is to add a Next() function/result to Controller which provide same action in revel framework .
syntax will be like:
func (c App) Authenticate() revel.Result {
        if isAuthenticated(c){
             return c.Next()// you are good to go
        }else{
             return c.renderTemplate("notAuthorized.html")// stop here , you are not authorized yet
        }
}

router config example:
*     /admin/*     App.Authenticate
*     /admin/addPost     App.AddPost
...
...
...

it can also be useful for other kind of error handling .

Good day, @fereidani. Can this be implemented with interceptors?
func (c App) Authenticate() revel.Result {
	if c.notAuthenticated {
		return c.RenderTemplate("notAuthenticated.html") // Stop here.
	}
	return nil // You're good to go.
}

func init() {
	revel.InterceptMethod(App.Authenticate, revel.BEFORE)
}

@alkchr  , good day ,
yes , it can be but it raise human error factor in large programs with large set of controllers and routes,
for example developer accidently forgot to add this to one controller ,
and other problem remains in multilayer authentication ,
the Next() method need to be coded once for a route subpath and there is no need to more coding and direct attention to security layer in next Controller level .
it kinda give neat architecture to program and avoid repeating one action multiple times.

@fereidani It is possible to create a separate auth module once and use it for any number of Controllers. For demonstration:
// Auth is a controller that provides logics for user authentication.
type Auth struct {
	*revel.Controller
}

// Authenticate checks whether user is already authenticated.
// If not, an auth form is rendered.
func (c Auth) Authenticate() revel.Result {
	if c.notAuthenticated {
		return c.RenderTemplate("notAuthenticated.html") // Stop here.
	}
	return nil // You're good to go.
}

func init() {
	// Make sure the Authenticate action will be called before any
	// other action of Auth controller.
	revel.InterceptMethod(Auth.Authenticate, revel.BEFORE)
}

Now we can use the Auth controller as follows:
// App is a sample controller.
type App struct {
	// We replaced "*revel.Controller" by our manual "Auth" controller here.
	Auth
}

// Index either shows an auth form or prints
// "You're authenticated" message.
func (c Controller) Index() revel.Result {
	return c.RenderText("You're authenticated.")
}

We can create hierarchies with any level of nesting using this approach.
Am I missing something (I'm not familiar with expressjs's Next method)?

thank you it seems nice approach  ,
but i still think Next() provide more flexible request flow control and human error prevented solution to application ,
it can even handle static file accesses base on route ,
many other route base ideas can be implemented easily ( logging , security , complicate request flow control )
maybe i have wrong idea in revel application design , is any way in revel to intercept a route instead of controller ?
you can check expressjs documentation http://expressjs.com/4x/api.html#app.METHOD .
i'm not trying to make revel like express , i know they have very different design philosophy , but i think when some approach seems more stable , it worth to check it at least .
i don't think it's be to hard to implement , i can help , if community accept this proposal .

@fereidani My opinion is the idea you propose is interesting. There are already proposals to improve filters and replace interceptors. I think #1012 should be discussed, too as an alternative approach. Let's see what core team members think.

@alkchr thank you .

Closed - dormant issue


fix overflow sum

TITLE
Description
Description of the pull request changes and motivation.
Type of change
Please delete options that are not relevant.

[ ] New feature
[ ] Bug fix
[ ] Optimization

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

[ ] This change is an Optimization

[ ] Benchmarks added/run

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 72.83%. Comparing base (a68d555) to head (cf13b6d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #900      +/-   ##
==========================================
+ Coverage   72.82%   72.83%   +0.01%
==========================================
  Files         150      150
  Lines       34150    34158       +8
==========================================
+ Hits        24870    24880      +10
+ Misses       9280     9278       -2

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