Document what's new in ASP.NET Core for .NET 9 Preview 7

Description
Update the "What's new in ASP.NET Core 9.0" for .NET 9 Preview 7
.NET 9 preview releases
Page URL
https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-9.0
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/release-notes/aspnetcore-9.0.md
Document ID
4e75ad25-2c3f-b28e-6a91-ac79a9c683b6
Article author
@Rick-Anderson

Associated WorkItem - 291114

SignalR supports trimming and native AOT
Continuing the native AOT journey we started in .NET 8, we have enabled trimming and native AOT support for both SignalR client and server scenarios. You can now take advantage of the performance benefits of using native AOT in applications that use SignalR for real-time web communications.
Getting started
Using the dotnet new webapiaot template, and replacing Program.cs with the following SignalR code:
using Microsoft.AspNetCore.SignalR;
using System.Text.Json.Serialization;

var builder = WebApplication.CreateSlimBuilder(args);

builder.Services.AddSignalR();
builder.Services.Configure<JsonHubProtocolOptions>(o =>
{
    o.PayloadSerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default);
});

var app = builder.Build();

app.MapHub<ChatHub>("/chatHub");
app.MapGet("/", () => Results.Content("""
<!DOCTYPE html>

    <title>SignalR Chat</title>

    <input id="userInput" placeholder="Enter your name" />
    <input id="messageInput" placeholder="Type a message" />
    <button onclick="sendMessage()">Send</button>

""", "text/html"));

app.Run();

[JsonSerializable(typeof(string))]
internal partial class AppJsonSerializerContext : JsonSerializerContext { }

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

Produces a native Windows executable of 10.7 MB and a Linux executable of TODO MB.
Limitations

Only the JSON protocol is currently supported

As shown above, apps need to use the System.Text.Json Source Generator. This follows the same approach as Minimal APIs.

On SignalR server, Hub method parameters of type IAsyncEnumerable<T> and ChannelReader<T> where T is a ValueType (i.e. struct) are not supported

Will get runtime exceptions at startup during development time and in published app
See https://github.com/dotnet/aspnetcore/issues/56179 for more information.

Client proxy generation is not supported in PublishAot - will get warnings at build-time

Works with PublishTrimmed with no warnings

Custom awaitables on the server are not supported in trimming or AOT

There is a feature switch (Microsoft.AspNetCore.SignalR.Hub.IsCustomAwaitableSupported AppContext switch and SignalRCustomAwaitableSupport MSBuild property) that is disabled by default in trimmed and AOT'd apps

@halter73 the only customer-facing change worth mentioning is the new analyzer that you've done (AllowAnonymous / Authorize). Can you please drop a note as a comment here with the details about it? Thanks!

The AllowAnonymous / Authorize changes were covered in preview 6. https://github.com/dotnet/AspNetCore.Docs/issues/32960#issuecomment-2214749440

OpenIdConnectHandler adds support for Pushed Authorization Requests (PAR)
@josephdecock from @DuendeSoftware added Pushed Authorization Requests (PAR) to ASP.NET Core's OpenIdConnectHandler. Joe described the background and motivation for enabling PAR in his API proposal as follows:

Pushed Authorization Requests (PAR) is a relatively new OAuth standard that improves the security of OAuth and OIDC flows by moving authorization parameters from the front channel to the back channel (that is, from redirect URLs in the browser to direct machine to machine http calls on the back end).
This prevents an attacker in the browser from

seeing authorization parameters (which could leak PII) and from
tampering with those parameters (e.g., the attacker could change the scope of access being requested).

Pushing the authorization parameters also keeps request URLs short. Authorize parameters might get very long when using more complex OAuth and OIDC features such as Rich Authorization Requests, and URLs that are long cause issues in many browsers and networking infrastructure.
The use of PAR is encouraged by the FAPI working group within the OpenID Foundation. For example, the FAPI2.0 Security Profile requires the use of PAR. This security profile is used by many of the groups working on open banking (primarily in Europe), in health care, and in other industries with high security requirements.
PAR is supported by a number of identity providers, including

Duende IdentityServer
Curity
Keycloak
Authlete

For preview7, we have decided to enable PAR by default if the identity provider's discovery document (usually found at .well-known/openid-configuration) advertises support for PAR, since it should provide enhanced security for providers that support it. If this causes problems, you can disable PAR via OpenIdConnectOptions.PushedAuthorizationBehavior as follows:
builder.Services
    .AddAuthentication(options =>
    {
        options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
    })
    .AddCookie()
    .AddOpenIdConnect(oidcOptions =>
    {
        // Other provider-specific configuration goes here.

        // The default value is PushedAuthorizationBehavior.UseIfAvailable.
        oidcOptions.PushedAuthorizationBehavior = PushedAuthorizationBehavior.Disable;
    });

If you want to ensure that authentication only succeeds if PAR is used, you can use PushedAuthorizationBehavior.Require instead. This change also introduces a new OnPushAuthorization event to OpenIdConnectEvents which can be used customize the pushed authorization request or handle it manually. Please refer to the API proposal for more details.

@josephdecock @brockallen @JeremyLikness @blowdart @jennyf19 @janmarques @brentschmaltz Let me know if you think there's any improvements we should make to the above for the preview7 announcement.

Support calling ProducesProblem and ProducesValidationProblem on route groups
The ProducesProblem and ProducesValidationProblem extension methods have been updated to support application on route groups, as in the sample below. These methods can be used to indicate that all endpoints in a route group can return ProblemDetails or ValidationProblemDetails responses for the purposes of OpenAPI metadata.
var app = WebApplication.Create();

var todos = app.MapGroup("/todos")
	.ProducesProblem();

todos.MapGet("/", () => new Todo(1, "Create sample app", false));
todos.MapPost("/", (Todo todo) => Results.Ok(todo));

app.Run();

record Todo(int Id, string Title, boolean IsCompleted);

Microsoft.AspNetCore.OpenApi is trim and native AoT-compatible
The new built-in OpenAPI support in ASP.NET Core is trim and native AoT-compatible for use in applications that are published with AoT enabled.
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddOpenApi();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
}

app.UseHttpsRedirection();

var summaries = new[]
{
    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

app.MapGet("/weatherforecast", () =>
{
    var forecast =  Enumerable.Range(1, 5).Select(index =>
        new WeatherForecast
        (
            DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
            Random.Shared.Next(-20, 55),
            summaries[Random.Shared.Next(summaries.Length)]
        ))
        .ToArray();
    return forecast;
})
.WithName("GetWeatherForecast");

app.Run();

record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
    public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}

When the application above is published, no warnings are produced.
$ dotnet publish /p:PublishAot=true
Restore complete (0.4s)
You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy
  publish-aot-test succeeded (12.6s) → bin/Release/net9.0/osx-arm64/publish/

Build succeeded in 13.2s

Note: that as of 9.0-preview7, an explicit reference to v1.6.16 of Microsoft.OpenApi is required in the target project to fully support native AoT.
<ItemGroup>
+    <PackageReference Include="Microsoft.OpenApi" Version="1.6.16" />
</ItemGroup>

Improvements to transformer registration APIs in Microsoft.AspNetCore.OpenApi
OpenAPI transformers support modifying the OpenAPI document, operations within the document, or schemas associated with types in the API. In this preview, the APIs for registering transformers on an OpenAPI document to provide a variety of options for registering transformers.
Previously, the following APIs where available for registering transformers:
OpenApiOptions UseTransformer(Func<OpenApiDocument, OpenApiDocumentTransformerContext, CancellationToken> transformer)
OpenApiOptions UseTransformer(IOpenApiDocumentTransformer transformer)
OpenApiOptions UseTransformer<IOpenApiDocumentTransformer>()
OpenApiOptions UseSchemaTransformer(Func<OpenApiSchema, OpenApiSchemaTransformerContext, CancellationToken>)
OpenApiOptions UseOperationTransformer(Func<OpenApiOperation, OpenApiOperationTransformerContext, CancellationToken>)

The new API set is as follows:
OpenApiOptions AddDocumentTransformer(Func<OpenApiDocument, OpenApiDocumentTransformerContext, CancellationToken> transformer)
OpenApiOptions AddDocumentTransformer(IOpenApiDocumentTransformer transformer)
OpenApiOptions AddDocumentTransformer<IOpenApiDocumentTransformer>()

OpenApiOptions AddSchemaTransformer(Func<OpenApiSchema, OpenApiSchemaTransformerContext, CancellationToken> transformer)
OpenApiOptions AddSchemaTransformer(IOpenApiSchemaTransformer transformer)
OpenApiOptions AddSchemaTransformer<IOpenApiSchemaTransformer>()

OpenApiOptions AddOperationTransformer(Func<OpenApiOperation, OpenApiOperationTransformerContext, CancellationToken> transformer)
OpenApiOptions AddOperationTransformer(IOpenApiOperationTransformer transformer)
OpenApiOptions AddOperationTransformer<IOpenApiOperationTransformer>()

Thanks to GitHub user "martincostello" for contributing this API improvement to the package!

Data Protection adds support for deleting keys
Historically, it has been intentionally impossible to delete data protection keys because doing so makes it impossible to decrypt any data protected with them (i.e. causing data loss).  Fortunately, keys are quite small, so the impact of accumulating many of them is minor.  However, in order to support very long running services, we've added the ability to explicitly delete (typically, very old) keys, accepting the risk of data loss in exchange for storage savings.  Our guidance remains that data protection keys should not be deleted.

Customize Kestrel named pipe endpoints
Kestrel's named pipe support has been improved with advanced customization options. The new CreateNamedPipeServerStream method on the named pipe options allows pipes to be customized per-endpoint.
An example of where this is useful is a Kestrel app that requires two pipe endpoints but with different security. The CreateNamedPipeServerStream option can be used to create pipes with different security, depending on the pipe name.
var builder = WebApplication.CreateBuilder();
builder.WebHost.UseNamedPipes(options =>
{
    options.CreateNamedPipeServerStream = (context) =>
    {
        // Your logic to customize pipes.
        return CreatePipe(context.NamedPipeEndpoint.PipeName);
    };
});

Add option to ExceptionHandlerMiddleware to choose status code based on exception
There is a new option when configuring the ExceptionHandlerMiddleware that allows application developers to choose what status code to return when an exception occurs during application request handling. This also changes the status code being set in the ProblemDetails response from the ExceptionHandlerMiddleware.
app.UseExceptionHandler(new ExceptionHandlerOptions
{
    StatusCodeSelector = ex => ex is TimeoutException
        ? StatusCodes.Status503ServiceUnavailable
        : StatusCodes.Status500InternalServerError,
});

Thanks to @latonz for contributing this new option!

Opt-out of HTTP metrics on certain endpoints and requests
.NET 9 adds the ability to opt-out of HTTP metrics and not record a value for certain endpoints and requests. It's common for apps to have endpoints that are frequently called by automated systems, such as a health checks endpoint, and recording information about those requests isn't useful.
All HTTP requests to an endpoint can be opted out by adding metadata. Either added the [DisableHttpMetrics] attribute to your Web API controller, SignalR hub or gRPC service; or call DisableHttpMetrics() when mapping endpoints in app startup:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHealthChecks();

var app = builder.Build();
app.MapHealthChecks("/healthz").DisableHttpMetrics();
app.Run();

In more advanced scenarios where a request doesn't map to an endpoint, or you want to opt-out HTTP requests dynamically, the MetricsDisabled property has been added to IHttpMetricsTagsFeature. Set it to true during a HTTP request to opt-out.
For example, this middleware disables metrics for the request if it has the x-disable-metrics header:
app.Use(async (context, next) =>
{
    if (context.Request.Headers.ContainsKey("x-disable-metrics"))
    {
        context.Features.Get<IHttpMetricsTagsFeature>()?.MetricsDisabled = true;
    }

    await next(context);
});

Improved security and performance observability with Kestrel connection metrics
We've made a significant improvement to Kestrel's connection metrics by including metadata about why a connection failed. The kestrel.connection.duration metric now includes more information in an optional error.type attribute. A set of known values are set that indicate what caused the connection to be unexpectedly closed.
Here is a small sample of error.type values:

tls-handshake-failed - The connection requires TLS, and the TLS handshake failed.
connection_reset - The connection was unexpectedly closed by the client while requests were in progress.
request_headers_timeout - Kestrel closed the connection because it didn't receive request headers in time.
max_request_body_size_exceeded - Kestrel closed the connection because uploaded data exceeded max size.

Previously, discovering Kestrel connection problems required a server to record detailed, low-level logging. The problem with logs is they're expensive to generate and store. And it can be difficult to find the right information amongst the noise. Metrics are a much cheaper alternative that can be left on with minimal impact, and be used to drive dashboards and alerts.
We expect improved connection metrics to be useful in many scenarios:

Investigating performance issues caused by short connection lifetimes.
Observing ongoing external attacks on Kestrel that impact performance and stability
Recording attempted external attacks on Kestrel that Kestrel's built in limits prevented

Learn more about ASP.NET Core metrics here.

@Rick-Anderson and @tdykstra,   It is not clear to me if it is OK now to do PR's adding the new sections (I have one ready to submit).  Assuming the process would be to do the PR, get the review and merge to main, but ensure it is not merged to live.  I don't remember us using a fork or anything last time.

Got my answer offline, will PR now, thanks!


Build fails with both nightly and stable with "cannot infer type for T"

Don't know if this repo is dead or not, but I ran into an issue while building this that was easily fixed.
While building app_dirs = "1.1",  specifically building rand v0.3.16, I get "cannot infer type for T
". This seems to be an issue with that specific version rand since when I updated app_dirs to 1.2.1, everything works. It was pretty simple to fix, so I'll just make a pull request which you can merge or reject at your leisure.

Request here

Sorry, it is kind of dead at the moment. Currently focusing on other projects, at the moment. Unsure on what I'll do with this project, eventually. In its current form, it's more of a proof of concept than a production-ready tool.

Ok! I'll close this issue then since you merged


Add feature proposal for global action policies

@ProLoser i'd be down for this approach-- would you mind putting it in the "backlog" section?  Thanks!

@ProLoser went ahead and merged manually here


Portable version 1.5.11-4 does not read settings from portable path

Behaviour
Portable version looks for settings in ~/AppData/Roaming/Cryptomator/settings.json and because there is none it loads blank configuration.
Steps to reproduce this issue

Install v1.5.11-4 over previous version 1.5.8-3
Execute portable Cryptomator.

Expected behaviour
It should loads previously configured vaults.
Actual behaviour
The list of vaults is empty.
Configuration
Portable version 1.5.11-4 64 bits
Windows 10 Pro 64 bits
Logs
cryptomator-portable.log

I also found where the problem is and fixed it (at least it's working again as expected).
in the file app/app/Cryptomator.cfg just changed
java-options=-Dcryptomator.logDir=~/AppData/Roaming/Cryptomator
java-options=-Dcryptomator.settingsPath=~/AppData/Roaming/Cryptomator/settings.json
java-options=-Dcryptomator.ipcPortPath=~/AppData/Roaming/Cryptomator/ipcPort.bin
java-options=-Dcryptomator.keychainPath=~/AppData/Roaming/Cryptomator/keychain.json

to:
java-options=-Dcryptomator.logDir==../data/log
java-options=-Dcryptomator.settingsPath=../data/settings.json
java-options=-Dcryptomator.ipcPortPath=../data/ipcPort.bin
java-options=-Dcryptomator.keychainPath=../data/keychain.json

as it was in older version

@cjom Thanks for your report, this should be fixed in latest release: https://portapps.io/app/cryptomator-portable/#download


[SPARK-33323][SQL] Add query resolved check before convert hive relation

What changes were proposed in this pull request?

Add query.resolved before  convert hive relation.
Why are the changes needed?

For better error msg.
CREATE TABLE t STORED AS PARQUET AS
SELECT * FROM (
 SELECT c3 FROM (
  SELECT c1, c2 from values(1,2) t(c1, c2)
  )
)

Before this PR, we get such error msg
org.apache.spark.sql.catalyst.analysis.UnresolvedException: Invalid call to toAttribute on unresolved object, tree: *
  at org.apache.spark.sql.catalyst.analysis.Star.toAttribute(unresolved.scala:244)
  at org.apache.spark.sql.catalyst.plans.logical.Project$$anonfun$output$1.apply(basicLogicalOperators.scala:52)
  at org.apache.spark.sql.catalyst.plans.logical.Project$$anonfun$output$1.apply(basicLogicalOperators.scala:52)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
  at scala.collection.immutable.List.foreach(List.scala:392)

Does this PR introduce any user-facing change?

Yes, error msg changed.
How was this patch tested?

Add test.

Test build #130543 has started for PR 30230 at commit 4900413.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35144/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35144/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35144/
Test FAILed.

Test build #130543 has finished for PR 30230 at commit 4900413.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/130543/
Test PASSed.

Similar with 30197, cc @maropu @cloud-fan @dongjoon-hyun

thanks, merging to master!

thanks for merging!


Duplication of "bedroom light" in text for "turn the bedroom light on"

This is on a clean install of Rhasspy in a virtual environment:
Relevant part of sentences.ini:
[ChangeLightState]
light_name = (living room lamp | garage light | <ChangeLightColor.light_name>) {name}
light_state = (on | off) {state}

turn <light_state> [the] <light_name>
turn [the] <light_name> <light_state>

[ChangeLightColor]
light_name = (bedroom light) {name}
color = (red | green | blue) {color}

set [the] <light_name> [to] <color>
make [the] <light_name> <color>

Go to Sentences tab, enter "turn the bedroom light on", click on Get Intent.
Result:
"text": "turn the bedroom light bedroom light on"
The duplication of "bedroom light" doesn't happen in "turn the living room lamp on". This has probably something to do with the fact that "bedroom light" is referred to by <ChangeLightColor.light_name> in the rule light_name in the intent SetLightState.
The same happens in Dutch.

And with "The same happens in Dutch" I mean that it also happens when I create such a sentences.ini in Dutch; the default Dutch sentences.ini doesn't use such a rule.

I've fixed this in the default English sentences.ini. My new intent recognizer (fsticuffs) actually supports nested tags (unlike the others), so this revealed a bug in the sentences.ini file -- two levels of {name} tags. Thanks for noticing this!

I still see this error happening, with OpenFST, fuzzywuzzy and Rasa:
"intent":
"entities":
0:
"end": 21
"entity": "name"
"raw_value": "slaapkamerlamp"
"start": 7
"value": "slaapkamerlamp"
1:
"end": 36
"entity": "name"
"raw_value": "slaapkamerlamp"
"start": 7
"value": "slaapkamerlamp"
2:
"end": 40
"entity": "state"
"raw_value": "aan"
"start": 37
"value": "aan"
"intent":
"confidence": 1
"name": "ChangeLightState"
"raw_text": "zet de slaapkamerlamp slaapkamerlamp aan"
"raw_tokens":
0: "zet"
1: "de"
2: "slaapkamerlamp"
3: "slaapkamerlamp"
4: "aan"
"slots":
"name": "slaapkamerlamp"
"state": "aan"
"speech_confidence": 1
"text": "zet de slaapkamerlamp slaapkamerlamp aan"
"time_sec": 0.0016121864318847656
"tokens":
0: "zet"
1: "de"
2: "slaapkamerlamp"
3: "slaapkamerlamp"
4: "aan"

Can you post your sentences.ini file? Is this only happening when you speak that sentence, or when you type "zet de slaapkamerlamp aan" as well?

This is a minimal non-working example sentences.ini for the Dutch profile:
[ChangeLightState]
light_name = (woonkamerlamp | garagelamp | <ChangeLightColor.light_name>) {name}
light_state = (aan | uit) {state}

zet [de] <light_name> <light_state>

[ChangeLightColor]
light_name = (slaapkamerlamp) {name}
color = (rood | groen | blauw) {color}

verander [de] <light_name> naar <color>
maak [de] <light_name> <color>

This works for 'zet de woonkamerlamp aan', but not for 'zet de slaapkamerlamp aan' (see the output in my previous message). This is also happening when I type the sentence in the Speech tab and click on 'Get intent'.

This is caused by having two levels of {name} tags (slaapkamerlamp already has a {name}). I need to fix this in the underlying code, but for now you can just rearrange the first light_name like this:
[ChangeLightState]
light_name = (woonkamerlamp | garagelamp) {name} |  <ChangeLightColor.light_name>

Right, that makes sense. Thanks!


Task filtering hides all available tasks when nonexisting task is called with keybinding

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

VS Code Version: 1.71.0
OS Version: Windows 10

Steps to Reproduce:

Configure keybindings with non-existant tasks, for example:

   {
      "key": "f7",
      "command": "workbench.action.tasks.runTask",
      "args": {
         "task": "unavailable test task",
      }
   },

Also configure some tasks in the workspace.
Now press F7 and the tasks are filtered with the text unavailable test task, not showing the actual available tasks.

This issue exists since filter tasks has been added.
I have shortkeys for some tasks I execute quite often, but some workspaces don't have those tasks, but have other tasks. Now, when I press F7, I need to empty all the text before I can select the desired task. Either this behaviour needs to be reverted to the pre-1.70 behaviour (possibly with an option to the user), or shortkeys per workspace needs to be implemented, but this is very annoying.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.71.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I am using version 1.71.0, but the issue was introduced in version 1.70.0

the behavior of filtering with whatever task you've provided is by design, but yes you're right that when there are no results found matching that term, the input should be cleared and show all tasks


Support clients and users fields in ACL PUT requests

This brings pedant up to date with changes to the ACLs endpoiint that are currently in flight.   When 'clients' and 'users' are included in an ACL PUT, that is combined to form the list of actors.

:+1: LGTM


[Protocol] Consolidate four protocols for the four possible PEs

Store the protocols as they will be executed during the collection phase.
This should address #38 (I leave that one open for the documentation aspect of it, to remind us of updating the SOPs)

Because of the warning against "exceeded stimulation limits" when changing the PE direction from AP/PA to LR/RL, make sure that the gradient mode of each sequence in every of the final four protocols allows us to run the same whole protocol from one session to the other.

I have created four protocols:

HCPh_PA
HCPh_AP
HCPh_LR
HCPh_RL

We will try to figure out the stimulation problem, but today we were unable to fix it.
However, there's some ray of light. JB today suggested we reduce the Phase FoV of the dwi - We then should copy the dwi on the old sequence (not to generate triggers, although I'm tempted to generate triggers and have more info to debug the triggers on calibration).
The functional should be alright.

Let's reopen this issue if the exceeded stimulation limits appears again.


forest security

First, help us help you by providing the following information when opening an issue.

[x] Which version of Forseti Security you're using (look in google/cloud/security/__init__.py in your installation).
[ ] Which module(s) (inventory, scanner, enforcer, explain) you're having trouble with.
[ ] Include errors, log output, and host operating system, including installed packages.
[ ] Note how you deployed (via Deployment Manager, local system, etc.).

Secondly, if the issue is a feature request, be descriptive regarding what needs to be changed and why.
Finally, be sure to see the FAQ and Get Help for assistance.
Thanks!

#2082 Could you provide us with more information related to this issue?


Added vsplit_tab and split_tab for iTerm.

Create new session within a vertical/horizontal split of the current tab respectively. Current directory is passed along.

But being a plugin this becomes entirely optional

@cicloid That line of thinking has produced constant whining about broken OMZ code in #zsh on Freenode, which has made Zsh developers despise OMZ.
One should not experience fear of resentment for crushing someone's feelings by rejecting pull requests. Sometimes, one has got to decline pull requests.

Currently this is the only way to implement this functionality due to limitations in the iTerm Applescripting library; as such GUI scripting is the only way (that I know of) to implement this functionality. Even things like getting the current session seem to be broken by splitting a tab (it returns the original session instead of the new session).
I do not mind that it was rejected, frankly it may not be apt for incorporation into the official plugin yet because of the iTerm limitations. I simply added it to mine, and offed it to the maintainer for their consideration.

Open an issue asking for better AppleScript support. The iTerm2 author is usually responsive.

Looks like they already have the request

@sorin-ionescu Fair enough.
But as I think more deeply on your reply, maybe it could be worth seeing on splitting the plugins from the default OMZ and having some kind of platform to install easily external plugins and not packing them inside the main OMZ distribution.
#zsh blaming of the whole OMZ distro because of some bad apples it is not good, but making it more specific that is optional 3rd party code could help on this matter.
Is it worth looking into this?
On this specific plugin change, looks like a nice feature, but maybe this should be split into another plugin to be more specific for iTerm, what you think @rschmukler ?

@cicloid Definitely like the idea of splitting the plugins into some sort of separate repository with package management.
The idea of doing a seperate iTerm plugin is certainly also valid as these two additions are certainly only suited to iTerm. On the other hand it raises questions on which of the two plugins (OS X or iTerm) the tab functionality belongs? Would it also be worth making a "terminal" plugin or something with the Terminal version of the tab function?

@cicloid The problem with this pull request is not that it creates iTerm noise for Terminal users but that it will not work for many iTerm users because of GUI scripting.
The reason why the command is tab instead of tab-iterm and tab-terminal is to make it easy to open a new tab for people who switch back and forth between Terminal and iTerm. However, you can configure both Terminal and iTerm to open a new tab with the current working directory via ⌘T, which is much faster than executing tab, which has to launch AppleScript, which itself is slow.
The objective of OMZ is to provide a sane default, not to pack everything under the sun. The beauty of Git and GitHub is that we do not need plugin or theme repositories. We can pillage what we need from other people's forks. 3rd party repositories will not solve the problem of broken plugins.

@sorin-ionescu Perhaps a bit off topic, but I've been looking for the option to do that in iTerm forever and have never found it. Care to share?

I'd be willing to accept an iTerm2 plugin.

@cicloid It's behavior depends on the setting you have for the session. On my system it would open a new session with the home directory as the path. Now that I've found the setting for it, this plugin seems almost unnecessary unless someone can think of a reason that it should exist?


Various Improvements

Cert-Manager
Replaced deprecated
installCRDs: true

with the equivalent:
crds:
  enabled: true
  keep: true

Default Helm Chart Values
Cilium
Updated the deprecated load balancer annotation key:
io.cilium/lb-ipam-ips

to:
lbipam.cilium.io/ips

IP Requesting Documentation
Sysctl/Cloudflared
Cloudflared uses QUIC UDP, triggering a log warning about insufficient buffer size. Increasing the buffer to 7500000 resolves this issue, as per the recommendation:
UDP QUIC Buffer Documentation

Great fixups here, thanks!


Revising Resource Object

Relevant Discussion - https://github.com/ocsf/ocsf-schema/discussions/499
Changelog -

cloud_partition, region is moved to the cloud profile
device is removed
details is replaced by data
group_name is replaced by group (should use group.name instead)
type is removed
resource_type and resource_type_id are added
account_uid is removed (should use owner.account_uid instead)
version is added

Additionally, correcting url object, adding in specific description for resource_type.

For url.json, were we not going to extend Resource instead of Object as a away of including resource_type_id?

For url.json, were we not going to extend Resource instead of Object as a away of including resource_type_id?

I figured extension-source-change modification from object to resource can be separate PR where we can modify all such objects together. Wanted to keep this PR limited to resource object revision and related changes.


feat(config): add ZVIDAR Z-CM-V01

Add config for ZVIDAR Smart Curtain Motor (Z-CM-V01)

The productType and productId were pulled from the UI (I'm not sure which of Product vs Product Code goes with which number):

Parameters were defined based on this manual:
zwave motor.pdf

What does it say here when you open the dropdown for the device?

The device id:
1114-1287-2308 (0x045a-0x0904-0x0507)

I will work on these other changes!

Left two comments in the file for anyone who might know

Awesome, thanks for the approval!


Remove python 2.7

Removes all instances of and references Python 2.7 from the codebase as well as cookiecutter.
Fixes #405 - Python 2.7 is end of life in less than 60 days.
Also adds .vscode to .gitignore, fixes broken test in win32, and resolves all flake8 linting errors

Tip: https://github.com/asottile/pyupgrade can find and autoupgrade lots of Python syntax to Python 3+:
pip install -U pyupgrade
pyupgrade `git ls-tree -r HEAD --name-only | grep ".py$"` --py3-plus

Tip: These statements all evaluate to True and can be simplified:
tests/test_bake_project.py:if sys.version_info > (3, 0):
tests/test_bake_project.py:    if sys.version_info >= (3, 5):
tests/test_bake_project.py:    elif sys.version_info >= (3, 3):
tests/test_bake_project.py:    if sys.version_info >= (3, 5):
tests/test_bake_project.py:    elif sys.version_info >= (3, 3):

Tip: These statements all evaluate to True and can be simplified:
tests/test_bake_project.py:if sys.version_info > (3, 0):
tests/test_bake_project.py:    if sys.version_info >= (3, 5):
tests/test_bake_project.py:    elif sys.version_info >= (3, 3):
tests/test_bake_project.py:    if sys.version_info >= (3, 5):
tests/test_bake_project.py:    elif sys.version_info >= (3, 3):

Updating these tests weren't a part of my contribution, I was only refactoring to fix the linting errors. While looking through the tests, I do think they could use a refresh though... perhaps it should be done as a separate effort

Tip: https://github.com/asottile/pyupgrade can find and autoupgrade lots of Python syntax to Python 3+:
pip install -U pyupgrade
pyupgrade `git ls-tree -r HEAD --name-only | grep ".py$"` --py3-plus

I don't understand the context here, can you elaborate?

Hi! I thought these could be updated as they're things that can be done to modernise and simplify the codebase for #405, but I'm happy to make another PR for them.
pyupgrade automatically removes and upgrades code that is only needed for Python 2.

Hi! I thought these could be updated as they're things that can be done to modernise and simplify the codebase for #405, but I'm happy to make another PR for them.
pyupgrade automatically removes and upgrades code that is only needed for Python 2.

Please see PR https://github.com/audreyr/cookiecutter-pypackage/pull/545.

Hi! I thought these could be updated as they're things that can be done to modernise and simplify the codebase for #405, but I'm happy to make another PR for them.
pyupgrade automatically removes and upgrades code that is only needed for Python 2.

You're right, looking at your PR I did overlook some stuff that could have been updated. Thanks for taking the effort to do that!

Looks good, could also add this Trove classifier to both setups:
Programming Language :: Python :: 3 :: Only

Good call out, I'll update the PR with this when I return from work

You're welcome! Feel free to include or copy them in here if you wish.

@ChadBailey & @hugovk
Thank you for your enthusiasm, I will merge it.


session regenerated 2 times after login

Laravel Version: 5.8
PHP Version: 7
Database Driver & Version:

Description:
I wonder if session is regenerated 2 times after login when using session guard:
1- first when login in SessionGuard.php login function
    public function login(AuthenticatableContract $user, $remember = false)
    {
        **$this->updateSession($user->getAuthIdentifier());**

        // If the user should be permanently "remembered" by the application we will
        // queue a permanent cookie that contains the encrypted copy of the user
        // identifier. We will then decrypt this later to retrieve the users.
        if ($remember) {
            $this->ensureRememberTokenIsSet($user);

            $this->queueRecallerCookie($user);
        }

        // If we have an event dispatcher instance set we will fire an event so that
        // any listeners will hook into the authentication events and run actions
        // based on the login and logout events fired from the guard instances.
        $this->fireLoginEvent($user, $remember);

        $this->setUser($user);
    }

2- second time when call     $request->session()->regenerate();  in function protected function sendLoginResponse(Request $request) inside trait AuthenticatesUsers
so what is the idea behind generating session id twice ?

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself. If you have a question on how to use functionality provided by this repo you can try one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

However, this issue will not be locked and everyone is still free to discuss solutions to your problem!
Thanks.


More info goes to empy screen

eg. https://www.artsy.net/artwork/thomas-jeppe-vista-vertical-m
Could it be because we don't have the capability to list exhibition history?

I think this is about e.g. “More Works in Show”, which works nowadays.

Deleted previous comment, this is definitely still an issue, I was totally looking in the wrong place 😒

Yeah, I've seen this recently

Could it be because we don't have the capability to list exhibition history?

Yup, that’s the issue.
Looking at the code, it seems like a very uninteresting view controller. While trying to find some examples of what it looks like when it does work I found these:

@orta I am unconvinced this needs to be a native view at all, but if that’s the preference then adding the missing field shouldn’t take much time.

Fixed by #730.


The mail flow comment midway through the page doesn't link to anywhere specific. Just goes to microsoft.com

[Enter feedback here]

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

ID: cc96d989-29fd-363e-82b6-0dc3807be297
Version Independent ID: 2a7ffa92-86b1-919d-6f97-ed0df2310bcd
Content: Find and fix issues after adding your domain or DNS records - Microsoft 365 admin
Content Source: microsoft-365/admin/get-help-with-domains/find-and-fix-issues.md
Service: o365-administration
GitHub Login: @pebaum
Microsoft Alias: pebaum

@aszalacinski Thank you for your feedback. We have got the correct link updated in the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/2454
Thanks
Sri

@msbemba  Thank you very much for the contribution and updating the documentation with PR. @aszalacinski Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Finalise format for Find Command

To finalise format for find command.

There should only be one instance of each prefix (e.g. n/)
Should return all results as long as there is a matching word inside the search term. For example, searching n/Google Limited should display all results whose company names include either Google or Limited or both.

Fix by #89.


Inversion of Array (Using Merge Sort)

Greetings sir/Mam,
I would like to contribute the code for this issue in C++/CPP.
The code is ready. I have added the code , along with proper explanation of the algorithm , test cases , time complexity and space complexity of the same, as per the guidelines.
Kindly assign it to me.
This is regarding GSSOC'21.
Regards,
Hitain Kakkar

I would like to contribute the code for this issue in C++/C/python.
Kindly assign it to me.
This is regarding GSSOC'21.


only unlink a file after checking if the file exists

Using tinkerwell I always get the following error message:
PHP Warning:  unlink(/......./storage/framework/sessions/{identifier}): No such file or directory in /....../vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php on line 286

The tinkerwell team told me this was a bug in laravel :-) - I resolved this by checking if a file exists before trying to remove it.

Would need more information on how to recreate this in Tinkerwell? The code in Laravel has been like this for years without issue?


secure_headers 4.0

I want to start working on a list of breaking changes for the new version. The idea is to make it harder to do the wrong thing.

Require script-src to be set. Missing script-srcs inherit from default-src. In general default-src lists are far too permissive for something like script-src.
Require object-src to be set. See ⬆
Default cookies to secure, httponly, samsite=lax

Not really a change per se, but we should remove SecureHeaders::Configuration#secure_cookies= as it was deprecated in 3.2.0 and replaced with SecureHeaders::Configuration#cookies=

Yeah, a search for "deprecated" turns up a few more things we can remove entirely.

Notice of intent to drop support for <= 2.1 (2.1 EOL'd on April 1, 2017)

The PR to remove < 2.1 support is up here.

Require script-src to be set. Missing script-srcs inherit from default-src. In general default-src lists are far too permissive for something like script-src.
Require object-src to be set. See ⬆

These changes are trivial validation changes that should be easy for anyone looking for an easy PR.

Default cookies to secure, httponly, samsite=lax

This should be as simple as changing these three lines ⁉

Another change I want in 4.0: a better default policy. Currently, the default policy is default-src https: which is pretty good but I'd want to at least set object-src to none, add data: to fonts and images, unsafe-inline to style-src, and a few others. E.g. https://github.com/hanami/hanami/blob/23b9562f44e1185ab561bab842af0cb8ff217671/spec/support/shared_examples/cli/generate/app.rb#L272

I've started an upgrade guide here: https://github.com/twitter/secureheaders/blob/master/upgrading-to-4-0.md

I just pushed version 4.0.0.alpha01. I'll deploy this to github.com and let it bake a while.

This happened.


Combo charts

First of all, thanks for a awesome library! I use it with your ruby gem and it's much easier then any other charting library i have ever used!
I needed a combination of line and column chart in one of my projects and found that both google and highchart include support for this, without loading any other libraries so i decided to implement support for this into chartkick, so here goes :)
The types is added as an array very similiar to how you set colors:
new Chartkick.ComboChart("chart-1", [["Work", 32],["Play", 1492]], types: ["line", "column"]);

If you think their is a better way to implement this option, will i gladly change and improve it.
Examples:
Highchart:
http://www.highcharts.com/demo/combo
Google Charts:
https://google-developers.appspot.com/chart/interactive/docs/gallery/combochart

Hey @jokklan, thanks for the PR 👍  and sorry for the long delay. I don't plan to support additional chart types at this time, but will let you know if that changes.


in the 'ngTouch' module, the a link is prevented when it has a ng-Click directive

i use the angular 1.3.0.beta.2 and corresponding angular-touch.
i add a ng-Click directive to the '', this is my code:
the js
app = angular.module('app', ['ngTouch'])

the html
some hash

when click the a tag  ,the  'hideSide'  function was runn,but the url didn't change.
if i remove the ngTouch module, it the 'hideSide' function run, and url change too.
i want to use the ngTouch module,how do i get the a link usefull with ngClick

Problem still observed with angular/angular-touch 1.2.22.

even if button.click is undefined, href load is prevented by ngTouch as reported above.

Still happens in 1.4 - I think it's the ngTouch's ngClick event.preventDefault() that is causing it.


Merge refs/heads/temp-branch-6404049828 into alpha

Merge refs/heads/temp-branch-6404049828 into alpha

This PR has not been merged into alpha. Please fix the issues and re-open the PR.


About resetRun()

Hi there,
I'm reading a list of cronjobs from the database but I'm not sure how to use resetRun():
$listCron = $db->query(bla bla bla)

while {

$scheduler->php($file)->at($schedule);
$scheduler->resetRun()->run();
}

or maybe:
while {

$scheduler->php($file)->at($schedule);
}

$scheduler->run();

Many thanks,

@peppeocchi
For clarity, I have the following wrapped in a function which is called by scheduler.php
	$scheduler = new Scheduler();

        $jobs = $db->querry;

	foreach ( $jobs as $job ) {
		$job[1] = $function;
		$job[2] = $schedule;
		$scheduler->call($function)->at($schedule)->onlyOne();;
	}

	$scheduler->run();

In this instance there is no need to use either clearJobs() or resetRun() when calling this every minute, yes?


Add more projects

Thanks for maintaining this list! This adds a bunch more awesome projects including my own and additions requested in #10 and #14.

.NET NANOFRAMEWORK
Making it easy to write C# code for embedded systems.


🔧 Update MkDocs instant previews

🔧 Update MkDocs instant previews

Superseded by https://github.com/fastapi/fastapi/pull/11984


Project hiatus

Hi Louis!
It would seem based on the commit history and domain expiration that the Mutiny testing framework became an inactive project as of one year ago. I would like to request, if you don't intend to actively develop this framework that the URL be relinquished for use.
I am working on an organization named Mutiny as well which attempts to provide students attending coding bootcamps with open-sourced supplementary material as well as a place to come together in general. We are currently using team-mutiny as our URL but we'd prefer to avoid any potential confusion and simply redirect students to mutiny.
TL;DR: we'd love to use your URL, if she'll have us back :)

Hi @teddy-error,
That's right -- I'm not actively developing Mutiny at the moment, so more than happy to pass on the organisation name. I'll rename the organisation that owns this project shortly, and then mutiny should be free for you to pick up.

Thank you for your kindness, @louismrose


Feature/api/valid error without source

Overview
Source fields in JSON API compliant APIs cannot be null/None. Replace with a valid return value.
Changes
Now returning {} rather than None in the case of no source field. Added an assertion to a test that generated an error like this.
Side effects
None
Fixes https://openscience.atlassian.net/browse/OSF-4653

Confirmed this work. I'll move to CR2 once tests are passing.
That said, per discussion with @brianjgeiger , I don't think the unit test should actually work at all. It seems to me that since the error is related to validation of a specific field, the source field should contain a pointer to the title.
Instead, source is empty/ none.

On second thought: moving this to in progress until we figure out what to do with the test. We don't want to create a situation where a followon bugfix removes the testcase for the situation covered here.

CR1 pass complete.


Using Server's Regex for Validation

Is it a ?

[x] Bug Report

[ ] Feature Request

[ ] Chore

Actual Behaviour
The ValidationUtils are using a regex that is different from that used by server for validation. This regex filters out most of the invalid urls/emails but they are only a subset of all possible invalid inputs.
Expected Behaviour
These should be replaced by the regex used by server for validation.
Would you like to work on the issue?
Yes

Server uses marshmallow which uses a very complex regex. I can we can skip it. Also, I am currently working on open event core java library which will have inbuilt validation through javax.validation API


Sortables draggable, but not droppable

Hey, emberizas! I have installed ember install ember-drag-drop.  I use ember-cli 2.10.0 on Ubuntu 14.04.5. The project is built, and run with an Express server (node server.js), and the file name list (allNames) comes from Nodejs reading a disk directory. Now: I have great expectations regarding this ember-drag-drop! However:
I did set up this template code in order to display a set of thumbnails as a sortableObjectList in order to make it possible to sort their order like in http://mharris717.github.io/ember-drag-drop/#/horizontal :
...
{{#sortable-objects sortableObjectList=allNames sortEndAction='sortEndAction' enableSort=true useSwap=false}}
  {{#each allNames as |file|}}
    {{#draggable-object content=this isSortable=true overrideClass='show-inline'}}

        {{file.name}}

    {{/draggable-object}}
  {{else}}
    T H I S   I S   E M P T Y
  {{/each}}
{{/sortable-objects}}
...

The introduction of the above drag-drop helpers did not change the appearance of the rendered page (that is, still looks nicely untouched). Now each img_mini block is draggable, including its img and img_name.

Did I position those handlebars as intended? The draggable blocks are not droppable, and my browser console prints TypeError: aSortable is undefined. Also, compared to the "horizontal" example, the class  sortObject is missing along js-draggableObject ... etc. However, by introducing overrideClass='sortObject show-inline' I succeded to generate the equal html, but the droppability still didn't appear ("rubber-band-return"), and the aSorttable error remained.
P.S. Think I found where the  aSortable error is generated:
   Next to line 79 in  the file
     node_modules/ember-drag-drop/addon/drag-coordinator.js
   I added a console.log line:
   ...
 79 moveObjectPositions(a, b, sortComponents) {
    console.log (sortComponents); // <<<<< inserted
      const aSortable = sortComponents.find((component) => {
        return component.get('sortableObjectList').find((sortable) => {
          return sortable === a;
   ...
   It prints sortComponents as
   Array [ Object ]

   When instead only the first element sortComponents[0] is referenced,
   ...
 79 moveObjectPositions(a, b, sortComponents) {
    console.log (sortComponents[0]); // <<<<< inserted
    etc ...

   it prints
   Object { __ember1488451093353: "ember377", __ARGS__ [id=__ember14884510933531313301298902]: Object, sortableObjectList: Array[29], sortEndAction: "sortEndAction", enableSort: true, useSwap: false, overrideClass: "show-inline", attrs: Object, parentView: Object, __HAS_BLOCK__ [id=__ember1488451093353140035755179]: true, 13 more… }

   Next after this line, the console prints
   TypeError: aSortable is undefined

   which, apparently, is generated when aSortable is referenced at line 97,
   const newList = aSortable.get('sortableObjectList').toArray();
   (in the built version, const is replaced by var, what's the reason?)

One thing I see off the top, is that content=this should say content=file

Thanks! How can such things happen? And the sortObject class is obsolete ... If no more comments I'll close this tomorrow. Thank you, proceeding!!!


fix view source button

When fetching the dashboard definition there's no 'dashboard' outer object,
pass the whole dashboard as it is.

Hey - just wanted to let you know I'm not ignoring PRs, but I'm currently overseas (for another week or so), and will review them when I'm back.

:+1: thanks for the update!


A detailed tutorial on how to create exe files?

Hello, this is the first time I write here, and desperation has led me to this, I guess...
I've been trying to build an exe for the PAL version of the game for Windows using MSYS2 for several hours. I don't have much knowledge about messing with code, but I'm watching similar tutorials and trying to learn how to use it. Obviously no luck. I have run into the impossibility of building a version of the EXE for the PAL version even though I have followed the steps, but either something is not working right for me, or I am too stupid to understand them.
I have already read that several people have asked you for an EXE for the other versions, whether PAL or JAP; and I've also seen that you intend to release them at some point or implement a single EXE for all versions of the game, which I suppose will take time. So, for the moment, perhaps a tutorial aimed at people not familiar with MSYS2 will help us create our EXE and work quietly in the meantime.
I am not proposing that this tutorial be done by you, but by anyone who has knowledge of this and wants to help, of course. Because looking for information about errors without having anything to do with what you are trying to do makes it even more confusing.
And well, it was just this, I'm sorry to be another one on the list asking about the EXE for your region. Greetings, thank you for your attention and for all your work.

I have posted instructions on how to build on my website, sorry but it's in Japanese. I hope this is helpful.
http://pdlabo.knowhow.jp/pc-port/pd-pc-port/#i-5
For the Japanese version, ROMID=jpn-final needs to be added to the make command.
Similarly, for the PAL version, add ROMID=pal-final.
make -f Makefile.port ROMID=pal-final

I have posted instructions on how to build on my website, sorry but it's in Japanese. I hope this is helpful. http://pdlabo.knowhow.jp/pc-port/pd-pc-port/#i-5
For the Japanese version, ROMID=jpn-final needs to be added to the make command. Similarly, for the PAL version, add ROMID=pal-final.
make -f Makefile.port ROMID=pal-final

Thanks a lot! It was exactly what I needed. With these instructions I have finally been able to create the executable for the European version :)
Thank you again and I hope the project continues to grow.

Automatic builds now include executables for PAL and JPN. I've also updated the build instructions a little bit to make them slightly less vague.


Cancel a job

There is any way to cancel a job after sometime?
let job = client.submitJob('test', 'a')
// I need to cancel this job after 60 seconds, how I do this?

No, there is no way to cancel in Gearman protocol.

what about CAN_DO_TIMEOUT

see http://gearman.org/protocol/
see 'timeout' parameter here: https://github.com/veny/GearmaNode#register-function

@veny maybe the gearman_server_job_cancel is an inner function? and don't expose to developers? CAN_DO_TIMEOUT is not exactly same with cancel.


Outdated image dependency

:information_source: Info

Version: 3.7.0
:speech_balloon: Description

Because msix 3.7.0 depends on image ^3.1.0 and no versions of msix match >3.7.0 <4.0.0, msix ^3.7.0 requires image ^3.1.0.
So, because [app] depends on both image ^4.0.8 and msix ^3.7.0, version solving failed.
pub get failed (1; So, because [app] depends on both image ^4.0.8 and msix ^3.7.0, version solving failed.)

:scroll: Pubspec.yaml

dependencies:
  image: ^4.0.8
dev_dependencies:
  msix: ^3.7.0

Hello
fix in version 3.8.0 CHANGELOG


Managing table columns

Maybe I'm missing something but, would it be possible to drag and drop table columns? Where the whole table is a drop zone and the header cell is the drag item? How would one go about this?

Draggable Item 1
        Draggable Item 2

Item 1
        Item 2

I'm experiencing the same issue. It seems that you can only drag and drop header cells within the header row because the table body can't be specified as the parent element. Is there a workaround for this?


[New Feature]: Hints for controlled folder access

Description of the new feature/enhancement
I had an installer crash because Windows Controlled Folder Access  blocked the installer from creating a folder in %userprofile%\Documents (even while I was running it from an Administrator terminal).
There was no useful information on the console - I just got Installer failed with exit code: 2.
Is there a way to let winget know through the manifest that the installer needs access to specific folders, so that the crash can be prevented or so?
Proposed technical implementation details (optional)
No response

@denelon I think this should be transferred to cli repo.

Done, moved to https://github.com/microsoft/winget-cli/issues/2400


Abstraction for velocity fields without extra memory allocations

Right now getting velocity is a little clunky as you have to do something like
model.momenta.ρu[i, j, k] / model.density[i, j, k]

Would be nice to have an abstraction for velocity fields like
struct LazyVelocityField
    momentum:: Field
    density :: Field
end

getindex(A::LazyVelocityField, inds...) = A.momentum[i, j, k] / A.density[i, j, k]

then we can just write model.velocities.u[i, j, k] and it'll lazily calculate the velocity.
The powerful feature (besides zero memory allocations) is that we can pass this lazy velocity field around to operators and other functions just like a regular field.
Could also use it to tracers (instead of mass-weighted tracer densities [?] if that's fields like ρθ are called) and it could replace the use of functions like U_over_ρ and C_over_ρ.

This seems great to me! Another option for the type name could be LazyPrimitiveField to align with jargon that CFDers use (they e.g. ρu and ρs "conservative variables" and u and s "primitive variables). We'll have to be a little careful about designing the type so that it does the sensible thing (whatever that it) for conservative variables stored at cell center vs. different cell faces but that seems easy enough.

Ah true so I think we can dispatch on the field location via something like
struct LazyPrimitiveField{LX, LX, LY} <: AbstractField{LX, LY, LZ}
    momentum :: Field
    density  :: Field
end

getindex(A::LazyVelocityField{Cell, Cell, Cell}, I...) = A.momentum[I...] / A.density[I...]
getindex(A::LazyVelocityField{Face, Cell, Cell}, I...) = A.momentum[I...] / ℑxᶠᵃᵃ(I..., grid, A.density)

It'd be useful to have a more general version of this for other things, too, like operations that need total density or entropies of specific species. (And it might also be nice to be able to choose between caching and non-caching versions, the former of which uses memory to store results for re-use, and the latter of which saved memory by re-calculating values every time they're needed.)


External link URLs as constants

Problem statement
External links are all over the site, and route to various government and non-government resources. We want to keep a directory of these links for easier auditing of where our site links out to. To achieve this, we want all external URLs consolidated in a single file for use in the app.
What you need to know
Links in markdown content cannot utilize imported javascript modules by default. Luckily a large portion of public site content is still written as JSX. Markdown page links could out of scope.
Origin of this ticket: https://github.com/CDCgov/prime-reportstream/pull/7796#discussion_r1060893039
Acceptance criteria

[ ] A consolidated and accessible source for all external link urls
[ ] All external links converted to use this pattern

To do

[ ] ...

Closing because we already have content/site.json for the short term, and this is something we'll most likely touch on with sitemap/SEO work anyway.


Selection does not follow expected behaviour when using custom columns and onSelectionChange

Demo here: https://codesandbox.io/s/nifty-star-b4zeg
Describe the bug
When a custom column is present, selection is enabled, and the onSelectionChange event callback contains a call to a useState setter, the selection state is not preserved.
To Reproduce

Browse to demo
Click the first checkbox
Observe console debug log shows the correct row data, but the checkbox is not checked
Click the second checkbox
Observe console debug log does not show two rows selected and the checkbox is not checked

Expected behavior
The checkbox to be checked, and for the state of selected items to be preserved between clicks.
Desktop

OS: Windows 10
Browser: Chrome
Version: 91.0.4472.114

Nice catch. Thank you so much for this!

So, after quickly looking at this, it looks like this happens because the table is rerender due to setting state on row select. I do not remember this happening, though, so this could be a bug that was recently introduced.
I'll have to dig into this more tonight.. FYI - we have multiple misc issues open right now due to unnecessary rerenders - we are in the process of rewriting using React Context - see the context branch for more.
We are not the original authors, just trying to clean things up and continue to support the original project.
What are you wanting to accomplish? Maybe we can help you come up with a band-aid for now? This is kind of a big(ish) bug imo.
@Domino987 for visibility.

As is always the way I found a workaround in the upstream repo's issues minutes after posting this bug. We're now stashing the selection state in a ref. Not a perfect solution because we're losing a state update we relied on for button enablement, but we can live with it.

This is caused because we do not mutate the data objects anymore so without the tabledata, we have no way of tracking if the new data is actually new or the previous data. Especially because you are creating a new object on every render. And this makes it difficult to persist the state.
I was thinking of a way to get around it. The best way would be to give each row an id, which we could use to reference states between rerenders without mutating the props.
@oze4 What do you think about this?

@Domino987 I like the idea! It looks like rows are currently assigned an id, no? I thought each row had an id in tableData.id ? I could be wrong.

This is just the index, so pretty much worthless unfortunately.

This is actually caused by the function. Because you are creating a new function on every render, react thinks that you are passing new columns and the table state will be reseted. Please create a stable reference to columns or the function on columns. This will fix your code.

Oops didn't mean to reopen. Misclicked on mobile.


Feature: Setup CI/CD setup github actions for tests

Run test for every pull request

Hello @idodav,
I have submitted a pull request for this issue. You can review my proposed changes there.
I would appreciate any feedback you may have.


GA support

Google Analytics code as described in https://desiredpersona.com/google-analytics-jekyll/

@jekyllbot: merge +major

(resolved merge conflict via command line)

You're welcome! Thank you too, @benbalter.


Improve Help button in Query Builder

Summary

Improve Help button in Query Builder

[x] Add About Dataspace
[x] Add Frequently Asked Question -> internal URL needs to be provided
[x] Add Open Support Tickets -> internal URL needs to be provided
[x] Fix Query Options light color

How did you test this change?

[ ] Test(s) added
[x] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

https://github.com/finos/legend-studio/assets/73408381/59df2e3c-e93e-4eb0-989a-92b5e336e980

In About DataSpace,
can we add an entry for Project
Project: artifactId:groupID:version (PROD-123)

lets make sure all links go to the studio sdlc links not the archieve ones


Combine API specs have wrong return type for sedml contents

I might be reading this incorrectly, but it seems that the manifest endpoint and sedml  specs endpoint are both returning the same content
https://combine.api.biosimulations.org/ui/#/COMBINE/src.handlers.combine.get_sedml_specs_for_combine_archive.handler

I see my misunderstanding. The return type 'combinearchive' but internally has different content. This was not clear on the generated code, but should work fine

That's correct. The two endpoints use the data structures, but use them slightly differently.
In one case, the children are instances of SedDocument. In the other case, the children are instances of CombineArchiveContentFile. CombineArchiveLocationValue illustrates how this works.
In the TypeScript code, I've differentiated between these two cases. Because ApiCurio is a bit more cumbersome, I used classes there.

One issue is that this prevents the library (generated typescript) from being able to strongly type the responses for each different endpoint. So the code ends up needing to be aware of the return type for each endpoint rather than just get the information from the endpoint. I am not sure if there is a good way to address this other than having different return types for each endpoint in the open API spec.

This could easily be handled at the typescript client level. Also, the project service you created is doing the save thing except the types are any.

The issue is with the gnerated typescript code. Since the library that interfaces with the API is using the spec, it types all the responses as the same object. It also seems that there are places where the typescript models are not equivalent to what the library has and the types cannot be interchanged.
The project service I absolutely agree needs to have the typing added, just hadn't included it yet since we are switching to storing the info in the database/api

This is fairly easy to fix by editing the YAML and then uploaded that to APICurio.

Perfect. This might also allow us to just use the libraries datamodel as the shared datamodel instead of maintaining a separate typescript version

:tada: This issue has been resolved in version 5.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Compiling an HIP kernel source is slow

Usually it takes over 10-20 seconds to finish compiling only one kernel (written in C device code), is it possible to shorten such compilation time, and any side effects?

Any suggestions? A thousand-line source kernel spends hours to finish its compilation.

It's hard to say much without an example.  Can you provide access to a minimal self-contained example (i.e. a single file that can be simply compiled with hipcc as opposed to a pointer to a repo containing hundreds of files and a full build system)?

@b-sumner Usually, a TVM engine compiling a large model can generate a thousand-line source codes containing many sub kernels. It takes 3-4 hours to compile such files, while nvcc takes only within 1 minute.

@b-sumner clang-9 from rocm is sequantially executed, while nvcc compiles source codes using multiple process.

@b-sumner I think the problem is caused by putting too many __global__ kernels within one source file. It is possible to split them into a standalone source file in which there is only one __global__ kernel defined.
However, is it really safe for hipicc compiler to parallel build different HIP source codes without any temporary-resource conflicts or problems?

@ghostplant Apologies for the lack of response. Can you please test with latest ROCm 6.1.0 (HIP 6.1)? If resolved, please close ticket. Thanks!

@ghostplant Closing ticket. Please re-open if issue still occurs with latest ROCm 6.1.1 Thanks!


GitHub Workflows security hardening

This PR adds explicit permissions section to workflows. This is a security best practice because by default workflows run with extended set of permissions (except from on: pull_request from external forks). By specifying any permission explicitly all others are set to none. By using the principle of least privilege the damage a compromised workflow can do (because of an injection or compromised third party tool or action) is restricted.
It is recommended to have most strict permissions on the top level and grant write permissions on job level case by case.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


run code on ELAIS

Ran the CDFS-trained classifier on ELAIS-S1 and attained an accuracy of 84%, which is very close to the 85% attained on CDFS. We must have made some mistake in the code the other week.
Here's an image of the predictions:

As you can see, there's a large section where Middelberg don't have labels, which drops our accuracy a little bit. You can also see that for every ATLAS object, we pick up multiple host galaxies — that's because we are only looking at each galaxy individually. Cleverly associating each ATLAS object with one host galaxy would likely dramatically improve performance.

Pushed a notebook with these results and the code to reproduce them. You will also need the Middelberg labels, which I have attached here.
middelberg_2008_atlas_classifications.txt


Renew Exchange Certificate

I followed the Wiki for creating an Exchange cert (https://github.com/Lone-Coder/letsencrypt-win-simple/wiki/Create-a-SAN-certificate-for-Microsoft-Exchange-2016,-2013-&-2010). The only problem I had was having to put a password on the cert so Exchange would import it. Now my cert is getting close to running out, and the --renew option is not working. All I get is
WARNING: Unable to renew.
I have already changed the registry setting to back date so it will run the renew. What am I missing or I am I forced to generate a new certificate each time?

Bump

Same here. A fix would be really nice! I also use the Manual Mode.
WARNING: Unable to renew

Manual mode renewals have been added in v1.9.4, please open a new issue if you run into any problems with that using the latest release.


Update distribution.yaml

This is invalid. https://github.com/ros-drivers-gbp/um7-release.git has no content. Did you run bloom-release?  It will generate the pull-request for you.
Please see the documentation of how to do a first release


[bug] Invalid icon configuration

Describe the bug
On MacOs, got some errors with different tauri.conf.jsons
Success configuration:
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/128x128.png",
      "icons/icon.ico"
    ]
  }

Error configuration:
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/icon.png",
      "icons/icon.ico"
    ]
  }

Error like:
Failed to setup app: runtime error: invalid icon: The length of the `rgba` argument (4107) isn't divisible by 4, making it impossible to interpret as 32bpp RGBA pixels.

Reproduction
No response
Expected behavior
No response
Full tauri info output
[✔] Environment
    - OS: Mac OS 10.15.7 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.75.0 (82e1608df 2023-12-21)
    ✔ cargo: 1.75.0 (1d8b05cdd 2023-11-20)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-x86_64-apple-darwin (environment override by RUSTUP_TOOLCHAIN)
    - node: 20.11.1
    - pnpm: 8.15.4
    - npm: 10.2.4

[-] Packages
    - tauri [RUST]: 2.0.0-beta.8
    - tauri-build [RUST]: 2.0.0-beta.6
    - wry [RUST]: 0.37.0
    - tao [RUST]: 0.26.1
    - tauri-cli [RUST]: 2.0.0-beta.4
    - @tauri-apps/api [NPM]: 2.0.0-beta.3
    - @tauri-apps/cli [NPM]: 2.0.0-beta.4

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: SolidJS
    - bundler: Vite

### Stack trace

_No response_

### Additional context

_No response_

how did you generate the icon?

They are default icons from cargo create-tauri-app --beta

this seems like an issue on macOS only and should only affect dev, for now, keep icon.icns in the icons array and it should work.
cc @lucasfernog


PostgreSQL not initialized correctly

Hello,
I follow the README but got some issue when trying to emulate the firmware.
My command: sudo ./run.sh -c dlink ./firmwares/DIR868L_B1_FW205WWb02.bin
Result:
[*] ./firmwares/DIR868L_B1_FW205WWb02.bin emulation start!!!
[-] extract failed

I found out the ./install.sh need to be run with sudo because my postgres server wasn't initialized correctly (no user firmadyne, no database firmware were existing).
After creating initialized the database correctly, it went further.
I'm running Ubuntu 20.04 on WSL2.

I only tested the FirmAE on Ubuntu 18.04 LTS in VMware. And in my environment, the emulation was successful.
I think that your debug message is generated while emulating with docker-helper.py. And maybe the docker container failed to connect to the hosts' PostgreSQL.
I updated the code to check the connection of the PostgreSQL (fedc1af248e6e330e78002a9085f9a1632b0e337), please check your PostgreSQL or restart the service.

I'm not using Docker...
I will try to explain in another way:
I installed following the README. At step 3, it says :
Run install.sh script.
$ ./install.sh

Which I did.
The next step is to run ./init.sh that in fact simply restart postgresql service. After this step, I tried with a SQL Database explorer tool to connect to the database but I wasn't able to. Then I saw that the default user firmadyne was not created and the user postgres (the default user) is the only one available.
To me, it means there is some issue with the command that initialize the database by creating the user and tables structures. This command can be found in install.sh:12. This command was not successfully executed.
I don't really know why, I thought it was because install.sh was not run as superuser...
But yeah at least your change will warn the user if database was not correctly initialized.

I changed the PostgreSQL start command before adding firmadyne user.
Please recheck it (e9153e41226e0cc06b6bf77efa6e171f7be657fa).
Thank you.


Mention Policy Initiatives

It would be helpful to mention the Policy Initiatives that can be used to group policy definitions.
Management Groups are mentioned, which is helpful, but Policy Initiatives are not mentioned.

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

ID: 51022609-2dee-d21c-9274-384ed82b0f4e
Version Independent ID: 832b8356-a0ed-06e2-a43a-a8eb0a5869dc
Content: Overview of Azure Policy
Content Source: articles/azure-policy/azure-policy-introduction.md
Service: azure-policy
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

@mschulz531 Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

@mschulz531 Thanks for the feedback question! You asked for policy initiatives that can be used to group Policy definitions, but there isn't a defined list of these.  You define an Initiative as a group of Policy definitions that you want to be able to assign to a scope.  This makes it easy to assign a handful of Policies to different scopes multiple times.  Does that answer your question?

Thanks for the feedback...I went back to that page and I can clearly see the mention of Initiatives, so I don't know what I was thinking...I obviously missed that when I created the feedback question.  You can close the issue and mark it down to operator error.  :)


chore: inspect integration test failure

This change is

Codecov Report

Merging #2696 (3e1a8c6) into master (07ef74c) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2696      +/-   ##
==========================================
+ Coverage   63.70%   63.73%   +0.02%
==========================================
  Files         236      236
  Lines       26626    26626
==========================================
+ Hits        16962    16969       +7
+ Misses       8150     8143       -7
  Partials     1514     1514

Impacted Files
Coverage Δ

pkg/topology/lightnode/container.go
93.33% <0.00%> (-2.67%)
:arrow_down:

pkg/topology/kademlia/kademlia.go
75.54% <0.00%> (-0.35%)
:arrow_down:

pkg/shed/schema.go
75.58% <0.00%> (ø)

pkg/localstore/mode_set.go
55.22% <0.00%> (+1.11%)
:arrow_up:

pkg/localstore/mode_put.go
60.05% <0.00%> (+1.14%)
:arrow_up:

pkg/localstore/subscription_push.go
78.94% <0.00%> (+1.75%)
:arrow_up:

pkg/localstore/subscription_pull.go
86.98% <0.00%> (+2.73%)
:arrow_up:

Continue to review full report at Codecov.

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


vega advanced cross filtering clears when clicking anywhere on the visual

When doing advanced cross filter, after activating pbiCrossFilterApply(), it seems a pbiCrossFilterClear() message activates when clicking anywhere on the visual even when pbiCrossFilterClear() is not in the specification.
This has been tested on the simple visual attached and also with the example [here] (https://github.com/deneb-viz/deneb/issues/394#issuecomment-1951467804) after removing the pbiCrossFilterClear() from the specification.
The effect is like this:
1 - make a selection that activates pbiCrossFilterApply()
2 - click anywhere on the visual, even not the chart area
3 - the chart resets and all filters are cleared - unexpected behaviour
240901_crossfilter.zip
In the attachment, test the cross filter by:
1: brush an area
2: click on the 'activate filter' text mark
3: note that the table on the right has been successfully filtered
4: click anywhere on the visual, even outside the chart area, everything clears
Alternatively, dragging the brushed area after 3 and releasing the mouse outside the visual area does not clear everything.  In fact, the 'activate filter' text mark can be clicked to filter again.  The intended behaviour is that users do not have to release the mouse outside the visual area.

Hi, and sorry for the delay. I'm currently on leave and have limited ability to respond.
From a very quick look, it's possible you may not have added the handling for the "fall-through" to the view. This is a Vega limitation (as it propagates events rather than prevents them) and is mentioned in the Advanced Cross-Filtering documentation.
Adding a mouseup listener to the view (as per the example but renaming for your mark) may help mitigate the situation. I did a quick check, and this doesn't clear the selection:
    // cross filter start ------------------------------------------
    {
      "name": "pbiCrossFilterSelection",
      "value": [],
      "on": [
        // when mark is brushed apply cross filter
        {
          "events": {
            "markname": "activate_filter",
            "type": "click",
            "filter": [
              "event.item && event.item.mark.name == 'activate_filter'"
            ],
            "consume": true,
            "force": true
          },
          "update": "main_brush ? pbiCrossFilterApply(event, \"datum['x'] >= main_brush[0] & datum['x'] <= main_brush[1]\" ) : pbiCrossFilterClear()"
        },
        /* When the view is clicked (but not our mark by name), clear the current cross-filter */
        {
          "events": {
            "source": "view",
            "type": "mouseup",
            "filter": [
              "!event.item || event.item.mark.name != 'main_brush'"
            ]
          },
          "update": "pbiCrossFilterClear()"
        }
      ]
    }

Thank you and no worries about any delays!  I've substituted the code you provided and cannot find any difference to the behaviour, so I believe I did not explain well.
The issue is it clears the filter when it shouldn't.  Here are the steps that lead to the issue:

brush a few data points
click on the text mark which triggers the cross filter, table is filtered properly
ISSUE: click anywhere on the visual and it clears the cross filter

The above step 3 should instead be like this:
3a) If click on the brushed area, do not clear the cross filter
3b) If click inside the group mark containing the brushed area, then clear the cross filter
3c) If click outside the group mark, do not clear the cross filter.  This is to enable clicking on the text mark that acts as a button to trigger the cross filter.
The use case is that users will cross filter based on a brush selection, then move the brushed area somewhere else without having to restart the brush, do another cross filter, etc... except at the moment every time a user moves the brush or clicks on anything in the visual the brushed area disappears.

https://github.com/user-attachments/assets/87cd4176-a703-48a7-968b-83a085585087


Design System > Version 8.3.3 > Component > Account > Default > The data is not appearing in the action tab after clicking on "Save"

Describe the bug
The data is not appearing in the action tab after clicking on "Save"
Steps to reproduce bug
1.Go to 'https://dev-react.raaghu.ai/?path=/story/components-account--default&args=reset:!true'
2. Navigate to 'Component > Account > Default'
3. add data
4. click on save
Actual result-
The data is not appearing in the action tab after clicking on "Save"
Screenshots

Expected result-
The data should appear in the action tab after clicking on "Save"

@trivenikulkarni  Please Recheck this issue.

Fixed on stage/ dev


[Event Request] table 5965 "Service Contract Header" OnValidate Field "Last Invoice Date"

Last Invoice Date - OnValidate()

----------------------- ADD EVENT ----------------------
OnBeforeLastInvoiceDateValidate(Rec, xRec, isHandled);
if isHandled then
exit;
[IntegrationEvent(false, false)]
local procedure OnAfterUpdateInvoicePeriodNextInvoiceDate(var Rec: Record "Service Contract Header"; var xRec: Record "Service Contract Header"; var IsHandled: Boolean)
begin
end;

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


Config file doesn't seem to load on Sway(which implements Wayland) window manager

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: 5.6.7-arch1-1(Arch Linux)
Hyper.app version: 3.0.2 (newest as of today)
Link of a Gist with the contents of your .hyper.js: https://gist.github.com/3u3i/ca21308d8cbf869bc300a29b7d2f416e
Relevant information from devtools
The issue is reproducible in vanilla Hyper.app: I think yes

Issue

Oops,forgot to write:

Windows manager: sway 1.4


Docs: move relevant features from Beta section to permanent docs

We have a bunch of features we can move from the Beta section to the permanent docs.
I think everything under https://www.netlifycms.org/docs/beta-features/ except i18n and Nested collections can be moved
It would make sense to move each feature at a time to make sure we're not cluttering the docs

Hi @erezrokah may I be assigned to this issue please?

Hi @erezokah
Is this this ooen to be worked on?

Closing in favor of #7040


#185 fixed bug Clicking on empty area redirecting to "https://creativecommons.org/

Fixes

Fixes #185  by @Akshaybagai52
Description

Fixed the bug of clicking on empty area that was leading to redirection
Technical details
Removed anchor tag from logo in the header and used onclick instead for redirection also changes the cursor type to pointer
Checklist

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

Developer Certificate of Origin

For the purposes of this DCO, "license" is equivalent to "license or public domain dedication," and "open source license" is equivalent to "open content license or public domain dedication."

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

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

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

Developer's Certificate of Origin 1.1

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

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

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

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

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

Hi @Shibbu264! I'm closing this because its for an Issue that was still in status: awaiting triage and for an Issue that is a duplicate of #70
Please see the Contribution Guidelines for more information on how Issues and PRs generally work together through the process.


Blocks Are Not Getting Indexed. [The Progress Is Stuck on 0%]

Hello @laviniat1996 thank you for your support and guidance on my previous issue . Whatever I have done till now in polygon-edge , it's been possible only because of you .
Now i am facing a new issue while trying to implement the block explorer .
I'm trying to develop a block explorer based on blockscout for my own cluster of polygon edge network. I've already done the blockscout setup and it looks like it's syncing the blocks and transactions until the genesis block. It's been 4 days but still, it has no progress, and it's stuck at 0%.
Environment

Deployment type : Manual
Elixir & Erlang/OTP versions (elixir -version): Elixir 1.13.4 & Erlang/OTP 24
Node JS version (node -v): node v18.13.0
Operating System: Ubuntu 22.04 LTS
Blockscout Version/branch/commit: BlockScout v5.0.0-beta
Archive node type && version : Nethermind

Steps to reproduce
I've followed the documentation of blockscout which is available on Polygon Edge documentation [https://wiki.polygon.technology/docs/edge/additional-features/blockscout]
This is my env_vars.env file (Here, I've replaced the Actual IP with a generalized form) :-
ETHEREUM_JSONRPC_HTTP_URL="<IP Adress>:<Port>"
ETHEREUM_JSONRPC_TRACE_URL="<IP Adress>:<Port>"
DATABASE_URL='postgresql://blockscout:PAsword@localhost:5432/blockscout'
SECRET_KEY_BASE="<Secret Key>"
ETHEREUM_JSONRPC_WS_URL="ws://localhost:8545/ws"
CHAIN_ID=<Chain_ID>
HEART_COMMAND="systemctl restart explorer"
SUBNETWORK="<Network_Name> PoA"
LOGO="/images/polygon_edge_logo.svg"
LOGO_FOOTER="/images/polygon_edge_logo.svg"
COIN="TestToken"
COIN_NAME="TestToken Coin"
INDEXER_DISABLE_BLOCK_REWARD_FETCHER="true"
INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER="true"
INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER="true"
MIX_ENV="prod"
BLOCKSCOUT_PROTOCOL="http"
PORT=4000
DISABLE_EXCHANGE_RATES="true"
POOL_SIZE=100
POOL_SIZE_API=100
ECTO_USE_SSL="false"
HEART_BEAT_TIMEOUT=60
INDEXER_MEMORY_LIMIT="10Gb"
FETCH_REWARDS_WAY="manual"
INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZE=1000

Expected behaviour
The blocks should start to appear on the log and the frontend.
Actual behaviour
It is stuck on the 0% block indexing, and I'm not getting any blocks and transactions on the screen.

I ran this command sudo su postgres for PostgresSQL, and the logs are as follows:

postgres@ravenspirit-media:/home/ubuntu$
postgres@ravenspirit-media:/home/ubuntu$ psql
could not change directory to "/home/ubuntu": Permission denied
psql (14.6 (Ubuntu 14.6-0ubuntu<IP_ADDRESS>))
Type "help" for help.

postgres=# \l
                             List of databases
    Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
------------+----------+----------+---------+-------+-----------------------
 blockscout | postgres | UTF8     | en_IN   | en_IN |
 postgres   | postgres | UTF8     | en_IN   | en_IN |
 sample     | postgres | UTF8     | en_IN   | en_IN |
 template0  | postgres | UTF8     | en_IN   | en_IN | =c/postgres          +
            |          |          |         |       | postgres=CTc/postgres
 template1  | postgres | UTF8     | en_IN   | en_IN | =c/postgres          +
            |          |          |         |       | postgres=CTc/postgres
(5 rows)

postgres=# -c blo

postgres=# -c blockscout
postgres-# -f blockscout
postgres-# \q
postgres@ravenspirit-media:/home/ubuntu$ psql
\could not change directory to "/home/ubuntu": Permission denied
psql (14.6 (Ubuntu 14.6-0ubuntu<IP_ADDRESS>))
Type "help" for help.

postgres=# \c blockscout
You are now connected to database "blockscout" as user "postgres".
blockscout=# \q
postgres@ravenspirit-media:/home/ubuntu$ exit
exit

I started the service by running the command sudo systemctl status explorer.service and the logs are as follows:
● explorer.service - BlockScout Server
     Loaded: loaded (/etc/systemd/system/explorer.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-01-20 15:38:19 IST; 2h 41min ago
   Main PID: 3215905 (beam.smp)
      Tasks: 44 (limit: 18959)
     Memory: 192.5M
        CPU: 18min 38.253s
     CGroup: /system.slice/explorer.service
             ├─3215905 /usr/lib/erlang/erts-12.2.1/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /root -- -pa /usr/local/elixir/bin/../lib/eex/ebin /usr/local/elixir/bin/../lib/elixir/ebi>
             ├─3215920 erl_child_setup 1024
             ├─3216003 inet_gethost 4
             ├─3216004 inet_gethost 4
             └─3216094 inet_gethost 4

Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.978.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown)>
Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.955.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown)>
Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.967.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown)>
Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.941.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown)>
Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.1022.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown>
Jan 20 18:18:44 ravenspirit-media mix[3215905]: 2023-01-20T18:18:44.454 application=db_connection [error] Postgrex.Protocol (#PID<0.1032.0>) disconnected: ** (Postgrex.Error) FATAL 57P01 (admin_shutdown>
Jan 20 18:19:08 ravenspirit-media systemd[1]: /etc/systemd/system/explorer.service:12: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consi>
Jan 20 18:19:08 ravenspirit-media systemd[1]: /etc/systemd/system/explorer.service:13: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consi>
Jan 20 18:19:16 ravenspirit-media systemd[1]: /etc/systemd/system/explorer.service:12: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consi>
Jan 20 18:19:16 ravenspirit-media systemd[1]: /etc/systemd/system/explorer.service:13: Standard output type syslog is obsolete, automatically updating to journal.  How can I get the blocks and transactions visible on Blockscout?

Hi @abhaypratap2000 ,
Thank you for the kind words, I am glad I could be of help.
I'm looking into this and will get back to you soon.

Hi @abhaypratap2000 , Thank you for the kind words, I am glad I could be of help. I'm looking into this and will get back to you soon.

Thankyou so much @laviniat1996 for your support actually the issue is resolve by creating new setup of blockscout from scratch  .

@abhaypratap2000 I'm really glad to hear that 🥳


Allow to specify custom template for the sitemap in _config.yml

Coverage decreased (-60.6%) to 39.394% when pulling 109c6935d9a5c6c8ca3292577fcd26f16d945458 on jimmyn:master into 2e9a6065156b53ee4c61989077c38de4be3dbbb1 on hexojs:master.

Could you please fix the test error?

@NoahDragon I've fixed tests, sorry it took so long. Had a lot of other stuff to do =)

Coverage remained the same at 100.0% when pulling 07441720b9acafab47bbb9dfed0efca7835d8914 on jimmyn:master into 2e9a6065156b53ee4c61989077c38de4be3dbbb1 on hexojs:master.

Coverage remained the same at 100.0% when pulling 07441720b9acafab47bbb9dfed0efca7835d8914 on jimmyn:master into 2e9a6065156b53ee4c61989077c38de4be3dbbb1 on hexojs:master.

LGTM. Thanks for contributing.

@NoahDragon could you update npm version please?

@jimmyn I would like to, but only @tommy351 can update the npm package.
Currently, you could using hexojs/hexo-generator-sitemap in package.json to get the latest version.


Suppressing and labels

This PR:

Add info about suppressing rules.
Set up laberel.

@apgapg, can you please review?

Readme looks good. Explains info nicely. I guess you made a spelling mistake in one of the commit 'Add labels'.

Thx, merging.


Feature Request: placeholder localization

Currently placeholder is hard coded via date format, e.g., YYYY for year, MM for month, DD for day.
 This might cause confusion for these non-technical users, it'll make more sense to make the date format to be localizable. E.g.,
_placeholderText: function(momentFormat){
  ...
  return this.localize(momentFormat);
}

cc @evanjd @joshsylvester @shao @inothings

this sounds like a logical change - but wouldn't the same affect all date-related fields that have placeholder text?

this sounds like a logical change - but wouldn't the same affect all date-related fields that have placeholder text?

@joshsylvester Yes, we should do the enhancement at https://github.com/predixdesignsystem/px-datetime-common

Released in v2.3.0, closing.


Added Github Actions

I have added GitHub actions checking during Pull Request and Push for Linting and Formatting.
Please review it.
And mention if any other actions are required for this project

Thank you for adding GitHub actions for linting and formatting checks! We're currently focused on resolving #114