JWT implementation backend

JWT

implement jwt in:

[x] signup controller
[x] login controller
[x] logout controller
[x] profile controller
[x] resfresh-token controller

[x] add protect middleware for authentication management

needs to be tested more from frontend


Allow csv file uploads

The purpose of this PR is to close https://github.com/aqualinkorg/aqualink-app/issues/683.
We introduce the following new metrics (a migration for this is coming):
PRESSURE = 'pressure',
PRECIPITATION = 'precipitation',
RH = 'rh',
WIND_GUST_SPEED = 'wind_gust_speed',

We use the same parsing function for csv files from node-xlsx, as we did for xlsx files. The only difference is on the timestamp generation, since meteorological data files have a different column format: Date Time GMT +XX:XX
We also introduce a stronger mimetype typing, Mimetype, so that we only accept specific file types.
In addition, we tweak the header row finding util function, refactored some already existing utils and created some others.
TODOs

[x] Add metrics enum update migration
[x] Frontend work to allow csv files selection
[ ] Investigate on using regexps to recognize sheet columns

@tleraj  we should also introduce a new type of temperature: AIR_TEMPERATURE
Indeed, met temp data should not be mixed up with water temp data

Currently, there is a bug when uploading meteorological data, like the ones in the metlog240921_021021.csv. With https://github.com/aqualinkorg/aqualink-app/pull/685/commits/1fec824df9db332fc0c85642325b0c2a6ef6c348, we do not look for exact matches with the metricsMapping dict, but we use a csvHeader.toLowerCase().startsWith(metricKey.toLowerCase()) logic, so the following renameKeys util in https://github.com/aqualinkorg/aqualink-app/blob/1fec824df9db332fc0c85642325b0c2a6ef6c348/packages/api/src/utils/uploads/upload-sheet-data.ts#L116-L125
does not rename the keys properly.

@tleraj maybe move the renaming at the very beginning and with the new mapping logic. So that after you can simply use the final metrics names to do all the other checks. What do you think?


Cannot generate plugin

Attempting to follow the steps in the manual using currently downloadable version of eclipse (Eclipse IDE for C/C++ Developers Version: Neon.3 Release (4.6.3) Build id: 20170314-1500) I get missing dependency errors :
Processing inclusion from feature org.eclipse.pde.container.feature: Bundle osets-eclipse-plugin_1.0.1 failed to resolve.:
Missing required plug-in org.eclipse.draw2d_3.10.100.
Missing required plug-in org.eclipse.gef_3.11.0.

Had not installed GEF. Resolved.


Don't display server ouput msg after execute plpgsql blocks

Description
Example:

DBeaver Version
<IP_ADDRESS>311191730
Operating System
Windows 7
Database and driver
Postgres Pro 15.4
Steps to reproduce
No response
Additional context
No response

I can't reproduce the issue.
Are all turned on here?

Yes

This effect appeared after the update <IP_ADDRESS>311191730

log.ZIP

Thanks

For me, Output is not filling after the last update.

I need to get output from the script for an important update, but I can't get it. Are there any plans for an update?

You can rollback to the previous version while it's not fixed. We're working on it.

How can I rollback? Will the registered databases remain when I download the old version as setup again?

Yes, you can just download an older version and install. Your configuration won't be lost.
https://dbeaver.io/files/

One more information. In postgres, when you add pg_sleep for about second, after raise info, output dispays messages.
It looks like there is lack of sync with server messages.
do
$$
begin
raise info 'test1';
perform pg_sleep(0.5);
raise info 'test2';
end;
$$
Result is:
test1

Make test latest Early Acces version, bug fixed. Thanks.


Move config to turbo.json

Describe the feature you'd like to request
Move turbo configuration into its own file turbo.json
Describe the solution you'd like

Move config
Add script to codemod
Release a minor

Describe alternatives you've considered

turbo.yaml
Use HCLv2

Continues #183

Hi, .json fields validation is often uneasy, would it be possible to support a .js as well. Maybe even using comments for type hints (I've seen some libs do that though I can't find any example back)?

I'm all for this feature as package.json gets bloated quite fast.
I also struggle with using npm and lerna with turbo. As turbo requires 'workspaces' field in package.json, but when I put it there my npm install will start installing also dependencies for packages, which I don't want - I want to use lerna bootstrap for that.
So for my usecase it would be beneficial to have possibility to define workspaces outside of package.json.

would appreciate this getting implemented
atm i can't use turborepo due to using a package.yaml instead of package.json with pnpm

would appreciate this getting implemented atm i can't use turborepo due to using a package.yaml instead of package.json with pnpm

You can safely write json in yaml, since yaml is a superset of json.


Building failed

Building failed with error:
controller/controller.go:131:4: undefined: batch_v1
It seems batch_v1 from import is missed.

@ngtuna @udrwt The remainder of the issue being tracked here is now being worked as part of #80. Would it be better to close this as the original issue has been resolved and track the remaining issue in the new issue to keep things clean?

@udrwt Going to go ahead and close this since the remaining issues are being tracked and are better documented in #80 . Please feel free to reopen if you have any issue.


MSBuild task

With regard to #34 it would be nice to have an MSBuild task that can be invoked on-demand within a client project

A msbuild task to invoke snowflaqe? Not sure how that would look like 🤔 can you tell me more?

This is an excellent tutorial https://natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/
Then you will include it like this
<Target Name="GenerateGraphQLClient" AfterTarget="BeforeRebuild" />

Or without trigger and then execute via https://marketplace.visualstudio.com/items?itemName=saaseev.MsBuildTaskExplorer
<Target Name="GenerateGraphQLClient" />

Actually, I expected that it will appear in

like this https://devblogs.microsoft.com/aspnet/task-runners-in-visual-studio-2015/
But that extension was not updated 🙁

Thanks for the references, I will have to think about. Generally speaking, this option is easily enabled without MSbuild automation but simply as part of a build script
dotnet snowflaqe --generate && dotnet build

I recommend users to generate the client project by hand rather than being hidden away in msbuild (and having to publish a separate package for it too)

Considering the usage of this generator I assume that in my client project there will be a folder out of version control with generated code.
Each developer and CI pipeline will generate code from scratch on their device.

Each developer and CI pipeline will generate code from scratch on their device.

Actually, in my projects I commit the generated code to the source control and don't require other developers to regenerate the client unless they are actively working on it and are changing the queries. That is the easiest way to use the project without extra config
Although you can still do it via a simple command line dotnet snowflaqe --generate before any other build script, I think requiring the CI pipelines to generate the client can be problematic sometimes and here is why: regenerating the client requires a live connection to the GraphQL endpoint to which you are connecting. If you are connecting to your local server that exposes an endpoint at http://localhost:5000/api/graphql then the CI will fail because you will need a running backend in order to build a project. The solution to this is to use an offline schema* but it still requires committing the schema to the source code.

*an offline schema is a path to a JSON file that contains the output of the introspection query which allows for code generation and query type-checking without

I commit schema into repository.
let private processRequests (serviceProvider : IServiceProvider) (server : HttpListener) = async {

    while server.IsListening do
    try
        let scopeServiceProvider = serviceProvider.GetScoped ()

        // Will wait here until we hear from a connection
        let ctx = server.GetContext ()
        let request = ctx.Request
        let response = ctx.Response
        try
            let httpContext = scopeServiceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext :?> DefaultHttpContext
            let headers = request.Headers
            for i = 0 to headers.Count - 1 do
                let key = headers.Keys.[i]
                let value = headers.[i]
                httpContext.Request.Headers.[key] <- StringValues (value)
            httpContext.User <- ClaimsPrincipal(new ClaimsIdentity(null, "Basic"))

            let requestStream = request.InputStream
            let! responseData = Frebo.Biblioteko.GraphQL.GraphQL.handleRequest scopeServiceProvider requestStream
            let log = scopeServiceProvider.GetRequiredService<ILoggerFactory>().CreateLogger(moduleType)
            let body = GraphQLFunction.GetBody log responseData
            let str = JsonSerializer.Serialize(body, Json.serializerOptions)

            do! JsonSerializer.SerializeAsync(response.OutputStream, body, Json.serializerOptions)
            do! response.OutputStream.FlushAsync ()
        finally
            response.ContentType <- "application/json"
            response.Close ()
    with
    | e ->
        let loggingfactory = serviceProvider.GetRequiredService<ILoggerFactory>()
        let logger = loggingfactory.CreateLogger(moduleType)
        logger.LogError (e.Message)
}

let private startServer (serviceProvider : IServiceProvider) (serverUrl : string) =
    let server = new HttpListener()
    server.Prefixes.Add(serverUrl)
    server.Start()

    Async.Start <| processRequests serviceProvider server

    let stopServer() = server.Stop()
    stopServer

let start (serviceProvider : IServiceProvider) port =
    let serverUrl = $"http://localhost:%i{port}/"
    let stopHost = startServer serviceProvider serverUrl
    struct (serverUrl, stopHost)

module Frebo.Biblioteko.Tests.GraphQL

open System
open System.Net
open FSharpx
open FSharp.Data.GraphQL

type BibliotekoClient = GraphQLProvider<"../Biblioteko.Mobile/introspection.json", explicitOptionalParameters = true>

let createContext endpointUrl accessToken =
    let authorizationHeaderName = Enum.GetName(typeof<HttpRequestHeader>, HttpRequestHeader.Authorization)
    let headers = seq { yield (authorizationHeaderName, "Bearer " + accessToken) }

    let context = BibliotekoClient.GetContext(serverUrl = endpointUrl, httpHeaders = headers)
    context

open System.IO
open System.Text.Json

let normalizeJsonDocument options (document : JsonDocument) =
    use buffer = new MemoryStream ()
    use writer = new Utf8JsonWriter (buffer, options)
    document.WriteTo (writer)
    do writer.Flush ()
    buffer.Seek (0L, SeekOrigin.Begin) |> ignore
    JsonDocument.Parse (buffer)

let asyncJsonParseAndNormalize options stream = async {
    let! ct = Async.CancellationToken
    let! document = JsonDocument.ParseAsync (stream, cancellationToken = ct)
    return normalizeJsonDocument options document
}

let equals (document1 : JsonDocument) (document2 : JsonDocument) =
    let schema1 = document1.RootElement.GetProperty("data").GetProperty("__schema")
    let schema2 = document2.RootElement.GetProperty("data").GetProperty("__schema")
    schema1.GetRawText () = schema2.GetRawText ()

let private asyncGetIntrospectionStream (port : int) = async {
    let serverUrl = $"http://localhost:%i{port}/"
    let client = new HttpClient();
    let! ct = Async.CancellationToken
    let! response = client.PostAsync (serverUrl, null, ct)
    return response.Content
}

let asyncGetIntrospection serviceProvider = async {
    let port = getNewPort()
    let stopHost = startWith serviceProvider port
    let! stream = asyncGetIntrospectionStream port
    stopHost ()
    return stream
}

open System.Text.Json

#nowarn "0025"
let asyncUpdateIntrospection serviceProvider = async {
    use! response = asyncGetIntrospection serviceProvider
    let! sourceStream = response.ReadAsStreamAsync ()
    use destinationStream = new FileStream (Startup.introspectionFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
    let! ct = Async.CancellationToken
    let destinationIntrospectionTask = async {
        try return! JsonDocument.ParseAsync (destinationStream, cancellationToken = ct)
        with _ -> return null
    }
    let options = JsonWriterOptions (Indented = true)
    let sourceIntrospectionTask = GraphQL.asyncJsonParseAndNormalize options sourceStream
    let! [|destinationIntrospectionDocument;sourceIntrospectionDocument|] = Async.Parallel <| seq { destinationIntrospectionTask; sourceIntrospectionTask }
    if (isNull destinationIntrospectionDocument)
    || (not <| GraphQL.equals destinationIntrospectionDocument sourceIntrospectionDocument) then
        destinationStream.Seek (0L, SeekOrigin.Begin) |> ignore
        destinationStream.SetLength sourceStream.Length
        use writer = new Utf8JsonWriter (destinationStream, JsonWriterOptions (Indented = true))
        sourceIntrospectionDocument.WriteTo writer
}

[<NUnit.Framework.Parallelizable (NUnit.Framework.ParallelScope.Children)>]
module Frebo.Biblioteko.Tests.Schema

open NUnit.Framework
open Swensen.Unquote

open System
open System.Collections.Generic
open System.IO
open System.Text
open System.Text.Json
open System.Threading.Tasks
open FSharp.Data.GraphQL.Execution
open FsToolkit.ErrorHandling

open Frebo.Biblioteko.Common
open Frebo.Biblioteko.GraphQL

let rec private moduleType = getModuleType <@ moduleType @>

[<OneTimeSetUp>]
let ``Update GraphQL Introspection file`` () = Async.AsTask <| async {
    let serviceProvider = Startup.buildHost().Services
    do! TestContext.asyncUpdateIntrospection serviceProvider
}

#nowarn "0025"
let private asyncTestIntrospectionResponse serviceProvider stream = async {

    let! response = GraphQL.handleRequest serviceProvider stream
    let data, errors =
        match response.Content with
        | GQLResponseContent.Direct (data, errors) -> data, errors
        | GQLResponseContent.Deferred (data, errors, _) -> data, errors

    test <@ errors |> List.isEmpty @>
    test <@ (data.["data"] :?> IDictionary<string,obj>).ContainsKey "__schema" @>
}
#warn "0025"

[<Test>]
let ``Empty body GraphQL request returns schema`` () = Async.AsTask <| async {
    let serviceProvider = Startup.buildHost().Services
    use stream = new MemoryStream ()
    do! asyncTestIntrospectionResponse serviceProvider stream
}

[<Test>]
let ``Empty JSON object GraphQL request returns schema`` () = Async.AsTask <| async {
    let serviceProvider = Startup.buildHost().Services
    use stream = new MemoryStream (Encoding.UTF8.GetBytes("{}"))
    do! asyncTestIntrospectionResponse serviceProvider stream
}

type JsonAssert =

    static member AreEqual (expected : JsonElement, actual : JsonElement) =
        Assert.AreEqual (expected.GetRawText (), actual.GetRawText ())

[<Test>]
let ``introspection-json must correspond to the latests schema`` () = Async.AsTask <| async {

    let serviceProvider = Startup.buildHost().Services

    let! response = TestContext.asyncGetIntrospection serviceProvider
    let! serverIntrospectionStream = response.ReadAsStreamAsync()
    let clientIntrospectionStream = File.OpenRead (Startup.introspectionFilePath)

    let options = JsonWriterOptions (Indented = false)
    let serverIntrospectionTask = GraphQL.asyncJsonParseAndNormalize options serverIntrospectionStream
    let clientIntrospectionTask = GraphQL.asyncJsonParseAndNormalize options clientIntrospectionStream
    let! [|serverIntrospectionDocument;clientIntrospectionDocument|] = Async.Parallel <| seq { serverIntrospectionTask; clientIntrospectionTask }

    let serverIntrospection = serverIntrospectionDocument.RootElement
    let clientIntrospection = clientIntrospectionDocument.RootElement
    let serverSchema = serverIntrospection.GetProperty("data").GetProperty("__schema")
    let clientSchema = clientIntrospection.GetProperty("data").GetProperty("__schema")

    JsonAssert.AreEqual (serverSchema.GetProperty ("queryType")       , clientSchema.GetProperty ("queryType"))
    JsonAssert.AreEqual (serverSchema.GetProperty ("mutationType")    , clientSchema.GetProperty ("mutationType"))
    JsonAssert.AreEqual (serverSchema.GetProperty ("subscriptionType"), clientSchema.GetProperty ("subscriptionType"))

    let serverTypes = serverSchema.GetProperty("types")
    let clientTypes = clientSchema.GetProperty("types")

    let clientTypesMap = Dictionary<string, JsonElement>(clientTypes.GetArrayLength())
    for clientType in clientTypes.EnumerateArray () do
        clientTypesMap.Add(clientType.GetProperty("name").GetString(), clientType)

    let differentServerTypes = ResizeArray ()
    let differentClientTypes = ResizeArray ()

    for serverType in serverTypes.EnumerateArray () do
        let typeName = serverType.GetProperty("name").ToString ()
        match clientTypesMap.TryGetValue(typeName) with
        | true, clientType ->
            if serverType.GetRawText () <> clientType.GetRawText () then
                differentServerTypes.Add (serverType)
                differentClientTypes.Add (clientType)
        | false, _ -> Assert.Fail("Type '{0}' not found in client's introspection.json", typeName)

    CollectionAssert.AreEqual (differentServerTypes, differentClientTypes)
}

Interesting approach. I see you are updating the offline introspection schema in your tests and that the tests are failing when there are new types in the server schema but not in the client schema? A lot of the times server schema changes are just compatible with the current client schema and the client doesn't need to update. for example a new field added to a type, a new type, a new mutation are all backward-compatible changes.
if you are going to update the schema, why don't you check for changes, just nuke and rebuild always for latest schema changes (this could be included as part of a precommit hook)
That said, I think we are drifting off-topic. However you design your software, that is up to you. I am trying to deliver a simple solution here which means avoiding such rabbit holes in favor of generating and committing the generated artifacts. You can still automate it as part of a build script in your CI

Good sample https://github.com/Arshia001/FSharp.GrpcCodeGenerator/tree/main/Grpc-FSharp.Tools


The ground seems to have disappeared in the 3D view

Linux/Fedora 26
godot 4664d03a0e39be6dc8f5ba8154e1d6b776fa2293
Intel/Mesa 17.1.7
Issue description:
Opened the 3D editor, did not see the 3D grid
Steps to reproduce:
Open the 3D editor

i cant reproduce, if anyone can let me know

I can't reproduce this anymore either... I guess this got fixed somehow.


Failed to display the certificate issue in application creation workflow feature

when enabling the application creation workflow feature, if we do not import the certificate of the API Manager into the enterprise integrator, No error log/warn will be displayed in the terminal,

Hi Thidasala,
We have added this step to the documentation.
[1] - https://apim.docs.wso2.com/en/latest/Learn/ConsumeAPI/ManageApplication/AdvancedTopics/adding-an-application-creation-workflow/#configuring-wso2-api-manager


ERROR:Fail to create a client session: client() got an unexpected keyword argument 'access_key_id'

Describe the bug
I follow the README on this commit 00a6a20 to deploy a stack to sync data from AWS China to AWS Global. Then, when CloudWatch triggers that event, ECS Job Sender Task failed and told me
ERROR:Fail to create a client session: client() got an unexpected keyword argument 'access_key_id'

To Reproduce
First, prepare a parameter in SSM Parameter Store:
{
  "access_key_id": "<Your Access Key ID>",
  "secret_access_key": "<Your Access Key Secret>"
}

Then, click Launch Stack button here in AWS Standard Partition to create a new stack, with a bucket in AWS China as the source.
Expected behavior
Error should not be raised.
Screenshots

Please complete the following information about the solution:

[x] Version: [00a6a20]
[x] Region: [us-west-2]
[x] Was the solution modified from the version published on this repository? No
[ ] If the answer to the previous question was yes, are the changes available on GitHub?
[ ] Have you checked your service quotas for the sevices this solution uses?
[x] Were there any errors in the CloudWatch Logs? Yes. Pasted in Screenshots.

Additional context
It has been fixed after I added a prefix aws_ in the Parameter Store credential
{
  "aws_access_key_id": "<Your Access Key ID>",
  "aws_secret_access_key": "<Your Access Key Secret>"
}

Hi @lc6chang ,
I am not able to reproduce this issue. The ssm parameter format with "access_key_id" is correct, and I don't see other customers having the same issue.
aws_access_key_id/aws_secret_access_key is the standard options for AWS S3 SDK, the reason why we remove aws_ is that we supports many other cloud services as well, they might support S3 SDK as well, but to avoid confusion,  we just use general "access_key_id" and "secret_access_key"
If you added the prefix, it still works here, because from the backend,  we were doing the same in the code, we also renamed the keys with prefix aws_
You can maybe retry the deployment again if needed. Thanks for using this solution.

@daixba very very interesting. I've also looked into your code, exactly you renamed the keys with prefix aws_. And I tested again just now, the error disappeared😂. Anyway it works well right now haha. Thanks again, your project helps me too much! 🚀


Fix materials

I added the missing materials

Hello @HoangGiang93 ,
Thanks for the PR. We have merged it at our end. Tomorrow you will see the changes in the upstream. Thank you.
Best Regards,
PAL Robotics Team.


[Flyout/Tooltip] Incorrect brushes

Describe the bug
Some flyouts / tooltips and other controls do not use the correct brushes as defined in the Windows Visual Library
To Reproduce
..
Expected behavior
Use the correct brushes as defined by WinUI
Screenshots
No response
OS version
Windows 11
.NET version
NET 7
WPF-UI NuGet version
Preview-3
Additional context
No response

Resolved


line break in plain text messages

Hello, when I read e-mail, that is in plain text it's presented in  tag. Words are broken in any place, between any letters.
I used inspector and I see:
.messageView .b-content .messageItem .bodyText .b-text-part.plain pre {
    margin: 0;
    padding: 0;
    background: #fff;
    border: none;
    font-family: Monaco,Menlo,Consolas,'Courier New',monospace;
    display: block;
    word-break: break-word;
}

As you can see, word-break: break-word; is invalid. I suggest word-break: normal; what makes e-mails great :)

Words are broken in any place, between any letters.

I do not see this behavior.
Could you please give me 2 screenshots with different values (word-break).

Hello,
I checked it again. I think that the problem is with fallback word-break value in browser
In firefox dev edition:

In chromium:

Again, right now there is in app.min.css in line 6: word-wrap:break-word, that is not valid.
Before change:

After change:

Ok, now I see the problem.
"break-word" is valid value for "word-wrap", not for "word-break"
Thanks!

Problem is they keep changing the specs. Now, word-wrap has been renamed to overflow-wrap. It still works, tho, probably for backward compatibility.
https://stackoverflow.com/a/40442295


Remove 'archive' directory

This code is not required and should be removed from the master branch.

@jianghaolu @lmazuel Where did we arrive on this? Can we do this?

https://github.com/Azure/azure-sdk-for-java/pull/2950


Figure out the type of integers we want to use

Right now we're using uint64, but those need to be cast to int to apply arithmetic.
Perhaps we should just type int everywhere.
We also could use https://golang.org/pkg/math/big/ as well, in order to prepare LCM-based normalization.
Perhaps we'll use a branch for the math/big, or another package, in order to keep the simple int API for people who do not need normalization.

Note: math/big is not a huge dependency, and we'd be doing only about 3 × grades × proposals arithmetic operations in the big space.   I'll run some benchmarks, but I think we'll go for math/big internally, and make input adapters for convenience.


Cookbook is not working properly at all

Some of the recipes that you've been using inside your cookbook are not used in that way anymore. For instance, database::mysql doesn't exist anymore.
If I try adding your cookbook in a run-list that I've created to install zabbix. It doesn't work.
Database and MySql cookbook don't run in that way anymore. Database doesn't have a mysql recipe, e.g.

Let's see #206 .


postgres: create metadata based on SQL query

Description:
Create metadata similar to MySQL based on SQL query sent by Postgres client. The metadata may be used by other filters like RBAC.
Risk Level:
Low.
Testing:
Added unit tests.
Docs Changes:
Yes - updated Postgres section.
Release Notes:
No. There is already release note about new Postgres filter.
Fixes #11065

/lgtm api

@cpakulski this PR introduce two new counters queries_parsed and queries_parse_error but we already have statements_* counters, so IMHO it should be renamed to statements_parsed and statements_parse_error.

@fabriziomello Thanks for pointing this out. Yes, your naming has better consistency and I will rename it.

@cpakulski the new logic to support PARSE message is working fine. But unfortunately the current parser is so limited that we can't parse simple SQL statements using bind parameters, e.g.:
sql-parser/example on  master
➜ ./example "INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES ($1, $2, $3, $4, CURRENT_TIMESTAMP);"
Given string is not a valid SQL query.
syntax error, unexpected DELTA, expecting IDENTIFIER (L0:44)

sql-parser/example on  master
➜ ./example "INSERT INTO pgbench_history(tid, bid, aid, delta, mtime) VALUES ('', '', '', '', '');"
Given string is not a valid SQL query.
syntax error, unexpected DELTA, expecting IDENTIFIER (L0:43)

sql-parser/example on  master
➜ ./example "UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2;"
Given string is not a valid SQL query.
syntax error, unexpected WHERE (L0:51)

Even removing the bind parameters for INSERT it wasn't able to parse it... so weird!!

➜ ./example "INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES ($1, $2, $3, $4, CURRENT_TIMESTAMP);"

The parser does not like delta keyword.
We have to put a note that sql parsing is best effort right now.

@cpakulski maybe we should reconsider enable_parsing to be false by default due to the poor quality of the current SQL parser. Below I'll show you some concrete information about why we should reconsider it:
Did some tests using the pgbench tool to simulate a workload and used the three available modes of protocol: simple, extended and prepared.

simple protocol:
...
postgres.egress_postgres.statements: 257447
...
postgres.egress_postgres.statements_parse_error: 110334
postgres.egress_postgres.statements_parsed: 147113
...

extended protocol:
postgres.egress_postgres.statements: 135549
...
postgres.egress_postgres.statements_parse_error: 135548
postgres.egress_postgres.statements_parsed: 1

prepared protocol:
postgres.egress_postgres.statements: 146742
...
postgres.egress_postgres.statements_parse_error: 70
postgres.egress_postgres.statements_parsed: 1

And running PostgreSQL regression tests trough Envoy we get ~70% of queries not parsed (all regression runs in Simple mode)
postgres.egress_postgres.statements_parse_error: 25852
postgres.egress_postgres.statements_parsed: 11377

Another evidence of the low effectiveness of this feature due the parser limitation is demonstrated on the table below. I collected information about a lot of Postgres connectors implementations in several programming languages and the majority of the cases the default mode is Extended:

Language
Driver
Type
Notes

C/C++
libpq
native
Simple and Extended

Java
JDBC
native
(Extended and Simple) - see preferQueryMode in https://github.com/pgjdbc/pgjdbc/blob/master/docs/documentation/head/connect.md

Python
psycopg2
libpq
(Simple) - https://github.com/psycopg/psycopg2/blob/master/psycopg/pqpath.c#L829

NodeJS
node-postgres
native
(Extended) - need to confirm and test more: https://github.com/brianc/node-postgres

PHP
pdo-pgsql
libpq
(Extended and Simple) - see PDO_PGSQL_ATTR_DISABLE_PREPARES and PDO_ATTR_EMULATE_PREPARES in https://github.com/php/php-src/blob/master/ext/pdo_pgsql/pgsql_driver.c#L245

Golang
pq
native
(Extended and Simple) - https://github.com/lib/pq/blob/master/conn.go#L823

Golang
pqx
native
(Extended and Simple) - https://github.com/jackc/pgconn/blob/master/pgconn.go#L829 https://github.com/jackc/pgconn/blob/master/pgconn.go#L875 https://github.com/jackc/pgconn/blob/master/pgconn.go#L909

Ruby
ruby-pg
libpq
(Extended and Simple) - https://github.com/ged/ruby-pg/blob/master/ext/pg_connection.c#L953 https://github.com/ged/ruby-pg/blob/master/ext/pg_connection.c#L1239

Rust
rust-postgres
native
(Extended and Simple) - https://github.com/sfackler/rust-postgres/blob/master/tokio-postgres/src/simple_query.rs#L17 https://github.com/sfackler/rust-postgres/blob/master/tokio-postgres/src/query.rs#L16


Unicode formatting broken for timezone change confirmation.

When changing my timezone to Europe/Prague, the confirmation message is broken:

Hmm, yeah, looks like double-HTML-escaping.


HTTP Proxy: Ignore empty entry in no_proxy list

Fix #26858

Done! Added some testing while I was at it.

Thanks for reviewing!


Switch to string directive

Switch to using the 'lang sweet.js' instead of #lang "sweet.js" directive.

Logging added.


Adding Salvador Catholic University

School official website: https://www.ucsal.br/
Course website: http://noosfero.ucsal.br/graduacao/cursos/graduacao-tecnologica/analise-e-desenvolvimento-de-sistemas?view=true
Proof of e-mail domain:
Ps.: The picture was taken after successfully submiting your account info on https://portal.ucsal.br/ (which is our 'Student's Portal') and clicking on the 'E-MAIL INSTITUCIONAL' (institutional e-mail) option on the far right of the image.
Pps.: The reason I cropped my e-mail was so people didn't spam it. I can give a uncropped version if necessary.

@MukizCL Pull request merged. Thank you!


Website should rebuild whenever a new release is published

Pelican Service:

[X] Webstote

Is your feature request related to a problem? Please describe.
If there is a new release on the pelican platform GitHub repo, the 'Releases' page doesn't get updated. It only gets updated if a PR is merged into main on the website repo. This means if there isn't a new update to the website, the 'Releases' page could potentially get quite far behind.
Describe the solution you'd like
Whenever a Release (not a pre-release) is made, the website rebuilds OR we have a standing job to rebuild the website once a every 24 hours.

https://github.com/PelicanPlatform/PelicanPlatform.github.io/commit/f24241a1c1302d284b00941658fe74e7729e1edd


Add UI scaling support

Oh yeah, I should fix the ubuntu and mac builds

Although I notice the size hints only work in the baseview example. The windows doesn't resize as a plugin in Bitwig.

I don't have a Mac to test it on, and for some reason the data I put into WindowState<H> on Windows is getting corrupted for some reason. Do you have any clues?
Please let me know how you feel about this PR. Do you think baseview should handle the logic of logical and physical sizes and coordinates, or should the user be the one to handle it? If not, I can change it.

macOS is going to be really interesting. We may in the future have to redo the scaling policies, but, hey, we'll cross that bridge when we come to it.

I'm just trying to get it to build for now.

Yeah absolutely. The thing on Mac is that all of the sizes and coordinates are already in logical units at the window system level, and the physical pixels come into play at a different layer. We'll just have to address the sizing policy slightly differently.

Some notes from Discord:

so, i'm going to merge this, but i have some reservations about the amount of combinations that are possible here
and i would like you to follow up on this PR by writing some documentation about what each of the scaling policies do at window open when combined with both logical and physical sizes
because to be frank i'm struggling to figure out all of the possible outputs
and relatedly i'm struggling to figure out how i would want to construct window open options
like if i pass in the physical size of the window, does that imply WindowScalePolicy::NoScaling?
should that turn off backing-store scaling on mac?

Going to merge, but want to get this sorted out ASAP. There's no real sense in having a comprehensive API if people

Aren't going to use much of the scope of it
Struggle to accomplish the simple/common case with it.


Add good snow image

There is only a not so good snow image right now.

Agreed

For the weather thumbnail

Added snowbanner1 and snowbanner2. Which one do you like better?

I like snowbanner1. It looks really nice. I was talking about the image for forecast.php, if you change the region to somewhere cold. I forget that there was two things about snow.

Ok I will photoshop an image of St. Anne to make it look like its snowing

Thanks

This ok? It looks kinda goofy 💀

It looks ok. Here is how it looms in the app:

The only issue is the snow does not really pop, but it is good enough.

I'll try to make the snow pop out more. One sec....

I think that looks better. What do you think?

Yeah it looks better

Great. Did you upload the image of should I?

Should we add the loader or nah? It says on the homepage that there wouldn't be a loader, but I don't know what else to put in place for the video while it is loading

Uh I'll upload it

I have been planing to remove the text about the loader as there already is a loader in the search.

Oh ok

Uh there's this weird thing with the loader where it only blocks the video


Role RBAC tree and feature fixes

Make Role RBAC tree editor work:

Fix feature fixtures for middleware, network and containers.
Simplify interface of rbac_expand_features and rbac_compact_features.
Extract recurse_sections_and_features from rbac_role_get_form_vars to add support for multi-level sections.

@h-kataria : can you take a look, please?
I am trying to write some specs for these changes.

Fix verified in UI. Looks good.

Now that #8291 is merged, closed/reopened to restart Travis

Testarted travis, all is green now.

@martinpovolny looks like Travis did not  finish running.

Travis was green from last night until pushed the specs in #8312. Strange.

@martinpovolny @h-kataria @dclarizio is this for darga or not?

@chessbyte added yes, not a blocker, but really needed for setting RBAC features in roles


Logs of all the levels are written into STDERR stream

Description:
Currently, logs of all the levels are written into standard error stream. The correct behavior is only the ERROR level logs, i.e log:printError() should be written into STDERR. Logs of other levels (WARN, INFO, DEBUG, TRACE) should be written into STDOUT stream.
Steps to reproduce:
Run the following sample and observe the console output.
import ballerina/log;

public function main() {
    error e = error("error occurred");
    log:printDebug("debug log");
    log:printError("error log");
    log:printError("error log with cause", e);
    log:printInfo("info log");
    log:printTrace("trace log");
    log:printWarn("warn log");
}

We are going with stderr publishing for swan lake. We are planning to publish log events to a topic, which anyone can subscribe to and execute any custom logics. but this will support after SL

We decided to make the output stream of log messages configurable through the Config.toml file. The following is a sample configuration.
[ballerina.log]
outputPaths = ["stdout", "./foo/bar.log"]

Users can define a console output stream (stdout or stderr) or a file path. The logs will get appended to the file in the given path (This could also be achieved using the setOutputFile function as discussed in [1]).
[1] https://github.com/ballerina-platform/ballerina-standard-library/issues/1395

Created a spec issue: https://github.com/ballerina-platform/ballerina-spec/issues/934


Add Editor page and Dashboard page feature into Researchify website

Description

Refactored layout routes for sidebar and header.
Adding a Editor.js page accessible through Dashboard to modify client webpage (functional for client home page only).
Dashboard page now has option to "build a website" and prompt GitHub pages token. Users are able to select desired website template when initially "building a website".
Fixed bug where users are able to scroll horizontally in Researchify dashboard.

Type of change

[X] Bug fix
[X] New feature
[X] Refactoring
[ ] Documentation

Problem

App.js has too many imports for sidebar and header layouts. Need to keep a standard layout for future implementation of new header and footer.
Editor page for user to customize their website pages.
Dashboard page for user to build an initial website.
See description above.

Solution description

Changed the Routes in App.js into nested routes for better visibility and modification.
See: [https://github.com/Researchify/Researchify/pull/102]
Build Editor component and creating a simple Home page editor
Create a simple prompt for user to enter GitHub token and selecting a template for their website
Added new lines in Layout.css to modify html, and body tags.

Tests
All unit tests pass? Yes
Builds successfully? Yes
Attach screenshot of the expected result (e.g. UI of the website/ postman api call result/ database changes)

Provide steps in detail for reviewers to reproduce the expected result of the code changes.
Relevant document/ link (if any)
Any related documents could help reviewers to review this PR
Risk
Identity the risk level (low, medium, high) and indicate which component(s) will be affected if bugs exist.
High risk, please pull this branch into your branch first to see if code breaks

Frame1 Icons should be resized as it looks stretched, and have the card container placed at the center of the screen as well
Frame 3 icons need to be replaced with words to follow consistency and they are not very informative.
So far so good, Although maybe you might have to move the personal access token to when the user registers as Akash mentioned during the last lab.

Frame1 Icons should be resized as it looks stretched, and have the card container placed at the center of the screen as well
Frame 3 icons need to be replaced with words to follow consistency and they are not very informative.
So far so good, Although maybe you might have to move the personal access token to when the user registers as Akash mentioned during the last lab.

@cyr17 Right the functionality of passing personal access token is not being implemented in this PR, will do another PR for it/patching this PR if manage to finish earlier. Not quite sure what the frame1/frame3 icons are referring to, would be great if you can do in-code comment :)


How do I configure global options for all subcommands?

I've seen similar issues around, but I'm looking to make it easier to have some global options that call for some setup.  The obvious use case here is logging. This issue isn't about how to specify global options (e.g. an option that works for all subcommands), but rather how to run some setup based on a parent option for all subcommands.
Say I have a command, main, with some subcommands foo and bar. If you just run main, it prints help. main supports -v[vvvv], which changes the log level for all subcommands, e.g. main -vv foo.
Where is the right place to put this logging setup to get this functionality?  I'd rather not have to modify every subcommand to explicitly call the parent (or grandparent, etc.) command to get the log level or call setup. I could put it in main's call() method, and use setExecutionStrategy(new RunAll()). This is the most intuitive -- each parent command can do some setup for all of its subcommands, letting you build a hierarchy and logically group common functionality. However, then I'm not sure how to invoke help if you call a parent command without a subcommand.
(In comparison to python's click, you define groups, which are commands that support subcommands. If you execute a group's subcommand, the group method is invoked, allowing you to call some global setup. However if you try to execute a group directly [main], it just prints help. This is also configurable, so that a group can be executed directly: https://click.palletsprojects.com/en/7.x/commands/#group-invocation-without-command)

I figured out one solution:
@CommandLine.Spec
CommandLine.Model.CommandSpec spec;

public Integer call() {
  CommandLine commandLine = spec.commandLine();
  if (!commandLine.getParseResult().hasSubcommand()) {
    commandLine.usage(System.err);
    return 1;
  }
  ... do setup here ...
}

I've refactored this into a Mixin. Now every 'group' command will first call that mixin method to print help if invoked without any subcommand, and otherwise do whatever setup it needs. I think there's room for improvement here in terms of how these 'group' commands are handled and such, but at least there's a workaround through less-documented APIs.

That is certainly one solution. Another one I could think of is to have the log level option implemented as a setter method on the parent command:
class MainCommand {

    @Option(names = "-v")
    public void setVerbosity(boolean[] newVerbosity) {
        // update global log level
    }
}

Does that solution work when they don't specify '-v'? does setVerbosity() get called in that case?

No, you’re right, it may not be that useful; apart from your observation, the method will get called multiple times if -v is specified multiple times on the command line, and that makes it less convenient to use for initialization.
The more I look at it, the more I like your solution.

Is this the issues that we discussed forever and ever on #649?

There's two separate issues.
#649, from what I can tell, is asking for 'main foo --debug', without having to define --debug for foo. (Maybe I'm misreading it?) This feature would be nice to have, so it doesn't matter where a user puts the --debug flag.
This issue is different - can we make it easier to configure things from options specified in the parent command? Considering that the 'runLast()' execution strategy is the default, the only hook we have is if you make the parent option a setter method, but that has the drawbacks mentioned above (only invoked if the option is specified, repeated invocations). That means every subcommand has the do the work of checking the parent command's options and doing setup.
#649 is definitely relevant. If it was implemented such that parent options could also be specified in subcommands, we could do 'main foo -vv'. But as I see it, the '-vv' option is still specified for the parent command, and we'd still have this issue for how to actually configure things (e.g. logging) using that option.

The elegance of the runAll() approach is that the command that defines the option is the one that does the work of reading that option, rather than every subcommand doing it via @ParentCommand. But then I had the question of how to change the behavior of the parent command if it's called directly (print help) vs called with a subcommand (do common setup). That's solvable with the ParseResult, but it'd still be nice to make this setup easier or at least documented.

(whoops, commenting with different accounts, sorry 😁)

This issue is different - can we make it easier to configure things from options specified in the parent command?

Ah, so I would consider it the same issue, it's just that you need only half of what I need. Let me restate the use case:
There needs to be a way to configure cross-cutting concerns (such as log level, log filename and other log configuration, debug mode, and locale/language) in a common way across commands. This consists of two parts:

The ability to define such parameters related to these concerns across multiple commands without repeating definitions.
The ability to consolidate implementation of these concerns across multiple command without repeating code.

If I understand you correctly, this ticket #895 is only about the second aspect, while my request #649 was about both aspects. (It's been a while, so I'd have to reread my ticket #649 completely, but this is close enough for now.)
Both aspects are important to me, but frankly I'll take what I can get. Even if I had to redefine the commands, if there was some way that the logic would automatically be called to implement them it would really help.
For example, the following is actual code from my Guise Mummy static site generator:
@Command(description = "Mummifies a site by generating a static version.", subcommands = {HelpCommand.class})
public void mummify(
  @Parameters(paramLabel = "<project>", description = "The base directory of the project to mummify.%nDefaults to the working directory, currently @|bold<EMAIL_ADDRESS>defaultValue = "${sys:user.dir}", arity = "0..1") @Nullable Path argProjectDirectory,
  @Option(names = "--site-source-dir", description = "The source root directory of the site to mummify.%nDefaults to @|bold src/site/|@ relative to the project base directory.") @Nullable Path argSiteSourceDirectory,
  @Option(names = "--site-target-dir", description = "The target root directory into which the site will be generated; will be created if needed.%nDefaults to @|bold target/site/|@ relative to the project base directory.") @Nullable Path argSiteTargetDirectory,
  @Option(names = "--site-description-target-dir", description = "The target root directory into which the site description will be generated; will be created if needed.%nDefaults to @|bold target/site-description/|@ relative to the project base directory.") @Nullable Path argSiteDescriptionTargetDirectory,
  @Option(names = {"--debug", "-d"}, description = "Turns on debug level logging.") final boolean debug) throws IOException {

  setDebug(debug); //TODO inherit from base class; see https://github.com/remkop/picocli/issues/649

(Yes, I even have the TODO in the code.)
While it would be nice not to redefine the --debug flag here, it would sure be helpful at least not to need to add the boilerplate of setDebug(debug) somehow.
Is that close to what you want? If not I'll be quiet here and stick to discussing this in #649.

Yeah, that's about right - I missed that point number 2. Since you need to define --debug for each subcommand, you need to reimplement it everywhere. But this issue is that, even if you don't redefine --debug everywhere, every subcommand needs to implement it's handling.

@li-wjohnson @garretwilson
picocli 4.2.0 has just been released.
It adds support for @ParentCommand-annotated fields in mixins. This allows creating mixins with @Option-annotated methods that delegate to the parent command. I added an example showing how to share options between commands and subcommands to the user manual.
I would like to also add an example for your use case: configuring logging.
I have a draft example in the wiki, that uses a custom execution strategy which first configures logging, and then runs the CommandLine.RunLast execution strategy.
(The advantage of this solution over using RunAll and configuring logging in the run method of the top-level command is that this will not execute intermediate commands in applications with deeper command hierarchies that have more than 2 levels.)
If you have any ideas on improving this before I add it to the manual, feedback would be very welcome!

@remkop , thanks for the notification, and I apologize that it will be a while before I am able to look at this in depth. But just glancing at the example, it seems pretty verbose (not pun intended with the example), and it doesn't seem to match up with the needs I mentioned. And this chaining up the command hierarchy seems convoluted.
Maybe you're down in the details so much you're missing the bigger picture. Please read about cross-cutting concerns. Then think about this very reasonable use case:

Every CLI extends from some BaseCli class.
The BaseCli class configures cross-cutting concerns, such as logging, user locale, etc.
The actual MyCli app doesn't know or care and should even have to think about what the base class did to set up cross-cutting concerns.
The MyCli app simply adds command methods as needed. They all get the cross-cutting concern parameters. Automatically. (You could add a feature that allows a command to remove or replace a cross-cutting concern parameter.)

Done. End of story. It's simple. And it's not a far-fetched use case. I would say it is a use case that applies to 80% of CLI applications or more! (Most CLIs don't elegantly set up cross-cutting concerns because it's so difficult.)
I fear that your example has forgotten much of the things we discussed in #649. To make this simpler, here, just look at a real, live, application, released just a few weeks ago:
https://github.com/globalmentor/guise/blob/master/cli/src/main/java/io/guise/cli/GuiseCli.java
See all the nasty:
setDebug(debug); //TODO inherit from base class; see https://github.com/remkop/picocli/issues/649

That application extends the base application here:
https://github.com/globalmentor/globalmentor-application/blob/master/src/main/java/com/globalmentor/application/BaseCliApplication.java
If your new approach solves this, then wonderful, and sorry for being slow to understand. But just looking at it, it still seems complicated (and the "will not execute intermediate commands in applications with deeper command hierarchies that have more than 2 levels" comment above makes me fear the main point of cross-cutting concerns). Unfortunately it will several weeks before I can try this out and comment further. But thanks for letting me know the news.

@garretwilson Thanks for the feedback.
The "will not execute intermediate commands in applications with deeper command hierarchies that have more than 2 levels" comment was specifically about how the  draft example in the wiki uses a custom execution strategy (in the main method) which first configures logging, and then runs the RunLast execution strategy. I believe this custom strategy is better than using the RunAll execution strategy to configure logging because with the RunAll strategy you may end up executing more commands than desired if you have more than 2 levels. I mention this because the RunAll strategy is what @li-wjohnson and I came up with originally for this ticket.
With regards to GuiseCli, the calls to setDebug from the command methods could be avoided by replacing the @Option(names = {"--debug", "-d"}) boolean debug options with a Mixin that delegates to the parent. This reduces the duplication to a single @Mixin SomeClass someParam method parameter. I understand this is more verbose than you requested/proposed, but I am very uncomfortable with the 4th point in your use case description:

The MyCli app simply adds command methods as needed. They all get the cross-cutting concern parameters. Automatically. (You could add a feature that allows a command to remove or replace a cross-cutting concern parameter, I suppose.)

I understand the theory of cross-cutting concerns, but I also like code that one can understand what it does by looking at it. Command methods that automatically (without asking for it) get extra options and parameters lack that property. This means maintainers must understand the whole system in order to reason about how part of the system works. Each part may have some aspect/cross-cutting concern automatically applied to it that changes its behaviour, but maintainers cannot tell just by looking at that part. I am not convinced that the more concise code is a good trade-off for the potentially surprising behaviour.
The Mixin solution is an explicit opt-in mechanism for sharing options and functionality. Commands that don't want a cross-cutting concern can opt out by not having the mixin - so no need for another mechanism to remove cross-cutting concerns. The fact that it is explicit (and not automatic) means that it is easier to read the code and reason about what it does. Having to code an extra Mixin class to delegate to the parent is a reasonable trade-off in my opinion.

@remkop as always thanks for reading my thoughts and for the reply.

I understand the theory of cross-cutting concerns, but I also like code that one can understand what it does by looking at it. …  Each part may have some aspect/cross-cutting concern automatically applied to it that changes its behaviour, but maintainers cannot tell just by looking at that part. I am not convinced that the more concise code is a good trade-off for the potentially surprising behaviour.

We should distinguish between "cross-cutting concerns", which is merely away to characterize certain functionality to better understand it; and "aspect-oriented programming", which is a common way people propose to implement cross-cutting concerns. I share your worries in principle about code that does surprising things, and for this reason I currently don't advocate aspect-oriented programming, where new code springs up "between the lines" as it were, out of the blue. In fact I'm even very leery of dependency injection; I think it is very useful but also prone to over-use. I'm not proposing aspect-oriented programming or even DI (which you already implement).

Command methods that automatically (without asking for it) get extra options and parameters lack that property. This means maintainers must understand the whole system in order to reason about how part of the system works.

If we take what you're saying at face value, then you are basically saying that we should prohibit normal object inheritance and polymorphism!! Because after all, if I if I extend BaseWidget, then suddenly I get a munge() method without doing anything! Suddenly BaseWidget does all sorts of initialization without my asking it to! And suddenly I must "understand the whole system in order to reason about how part of the system works"!
But of course I don't have to understand "the whole system". I only have to understand how BaseWidget works to know what initialization it does, and what default functionality it brings. That's why I made the decision to extend BaseWidget to begin with! And to understand BaseWidget I merely read its API documentation.
I'm not proposing some spooky "action at a distance", to use quantum theory as a metaphor, where some functionality mysteriously appears in some remote part of my program.  I'm just wanting normal OO inheritance to work!

The Mixin solution is an explicit opt-in mechanism for sharing options and functionality. … Having to code an extra Mixin class to delegate to the parent is a reasonable trade-off in my opinion.

I think the mixin approach is a wonderful improvement, allowing anyone to mix-and-match functionality explicitly, anywhere a developer wants, event without extending some base class. That's great! 👍 Thank you for that feature.
But in the case where someone would like to consolidate several mixins in a base class (this is OOP 101), so that developers can extend the subclass (because they want to, having read the API documentation—not because they were surprised by some mystery), then I don't see how it would hurt to allow mixins to be declared at the parent class level. Or do you not like abstract classes and interface default methods, either?

We seem to be on the same page about avoiding code that does surprising things, that’s good.

If we take what you're saying at face value, then you are basically saying that we should prohibit normal object inheritance and polymorphism!! (...) I'm just wanting normal OO inheritance to work!

Normal OO inheritance is fine, because if I declare a class A extends Base then A explicitly asks for Base’s functionality. There’s nothing surprising, that’s how class inheritance works.
The relationship that picocli commands have to subcommands is very different from inheritance:

a parent command declares its subcommands, not the other way around. Subcommands don’t ask to have some specific parent command.
the only semantic of the “parent command-subcommand” relationship is “subcommand may follow parent command”.  There’s no expectation of having shared options or shared other attributes.

Because of this difference, I think it would be confusing if subcommands would inherit options from the parent command.
It is certainly possible to consolidate several mixins in a base class so that developers can extend it in their subclass. If we’re extending classes we’re back in normal OO territory. No surprises here.
However, if I understood correctly, your request was to let a @Command-annotated method inherit options/parameters from its parent command. I think that’s too confusing so I propose to use mixins instead.

I added an updated example in picocli-examples, demonstrating how to configure logging from a global --verbose option.
@li-wjohnson, please take a look: instead of using the RunAll execution strategy, this example shows how a method reference (LoggerMixin::executionStrategy in the example) can be set as the execution strategy. From this method you can do your configuration logic before calling RunLast. For example:
class MyApp {
  public static void main(String... args) {
    MyApp app = new MyApp();
    new CommandLine(app).setExecutionStrategy(app::executionStrategy).execute(args);
  }

  private int executionStrategy(ParseResult parseResult) {
    configureLogging();
    return new CommandLine.RunLast().execute(parseResult);
  }

  private void configureLogging() { ... } // set log level from verbosity here
}

@garretwilson As commented on https://github.com/remkop/picocli/issues/649, I am coming around to the idea of providing a convenience API for global options with something like @Option(global = true). One drawback of that API is that there is no way for a subcommand to "opt out". That is fine, as long as there is an alternative. The example shows that alternative. (You may not be interested in this, so feel free to ignore the below.)
The example shows the @Mixin approach for providing global options; this requires each command to explicitly "opt in" with the @Mixin syntax, so gives applications more fine-grained control over which commands take the option.
This example is less verbose than my previous attempt and no longer uses @ParentCommand to chain up the command hierarchy. It relies on a new feature to be introduced in picocli 4.3, that allows a mixin class to declare a CommandSpec field like this:
private @Spec(Spec.Target.MIXEE) CommandSpec spec;

The MIXEE target indicates that the CommandSpec to inject is not the spec of the enclosing class, but the spec of the command where the @Mixin is used. This allows the mixin to climb the command hierarchy and store the "verbosity" value in a single place. The log level is then configured from that single value.

@li-wjohnson I updated the user manual: https://picocli.info/#_initialization_before_execution
I believe that addresses the topic of this ticket.
Feel free to open another one or comment here if there is still work remaining or anything else.


Service host is not available for container with HOST networking

For docker container with HOST networking, this is how docker inspect looks like
"Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "52ca975025b511bfc42caf02c4777bdb9ac2570c95c429339364d80d388a2eea",
                    "EndpointID": "0c56d7ee3d9df21d762b0c99ef79b1252476e0cd2cf62a1af0ea588829f1a87e",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": ""
                }
            }

Current implementation parses the networks and uses empty string from gateway as hostname. However I think that in that case it should use localhost instead.

And what's the value of NetworkSettings.Gateway (the Gateway is on the same level as Networks) ? If it's present and it's localhost then I would prefer that value because it would handle case of remove Docker daemon.

NetworkSettings.Gateway is also empty string


Closed channel - funds appear to be in limbo

Background
I have 4 channels that i closed Sunday - 4 days ago and they still show closing. How long should it take to receive the funds when closing a channel?
Windows 10
Version of lnd 0.9.2-beta
{
"total_limbo_balance": "1448573",
"pending_open_channels": [
],
"pending_closing_channels": [
],
"pending_force_closing_channels": [
],
"waiting_close_channels": [
{
"channel": {
"remote_node_pub": "0217890e3aad8d35bc054f43acc00084b25229ecff0ab68debd82883ad65ee8266",
"channel_point": "eb96d24ea2fd944de5fa4d9ba03d0454e228e5a033a8589acf53fcf8bc07f30d:1",
"capacity": "70294",
"local_balance": "69804",
"remote_balance": "0",
"local_chan_reserve_sat": "702",
"remote_chan_reserve_sat": "702"
},
"limbo_balance": "69804"
},
{
"channel": {
"remote_node_pub": "03634bda49c9c42afd876d8288802942c49e58fbec3844ff54b46143bfcb6cdfaf",
"channel_point": "757476f8f817d3ed5156ae4716cea22e819a5b35baa2cf978c12ec693a158149:1",
"capacity": "219596",
"local_balance": "219106",
"remote_balance": "0",
"local_chan_reserve_sat": "2195",
"remote_chan_reserve_sat": "2195"
},
"limbo_balance": "219106"
},
{
"channel": {
"remote_node_pub": "03abf6f44c355dec0d5aa155bdbdd6e0c8fefe318eff402de65c6eb2e1be55dc3e",
"channel_point": "331307cc2128d76ed913e36dea52370f535ba5f7262e978e4cd4b54640a6f211:1",
"capacity": "880000",
"local_balance": "879454",
"remote_balance": "0",
"local_chan_reserve_sat": "8800",
"remote_chan_reserve_sat": "8800"
},
"limbo_balance": "879454"
},
{
"channel": {
"remote_node_pub": "03bb88ccc444534da7b5b64b4f7b15e1eccb18e102db0e400d4b9cfe93763aa26d",
"channel_point": "e683cb8995cbeb3d27d3066a37558d466fdd9f028489c88560787e7f2ffbd39a:1",
"capacity": "280699",
"local_balance": "280209",
"remote_balance": "0",
"local_chan_reserve_sat": "2806",
"remote_chan_reserve_sat": "2806"
},
"limbo_balance": "280209"
}

it tells me no open channels to close when I try to close them. I tried to force lose them as well with no luck. any other options?

Did you try them one by one?
For example: lncli closechannel --funding_txid eb96d24ea2fd944de5fa4d9ba03d0454e228e5a033a8589acf53fcf8bc07f30d --output_index 1 --force ?
The closeallchannels might not work in that case.
Also, have you tried a restart of the node? How many other (open) channels do you have?

Finally got them to close. Thank you for the help.


Added NPM installation instructions

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

Not really sure this is needed; there are various package managers that could be used.

NPM is the default package manager. If you are biased that yarn is more popular, it's OK.


fix(deps): update module github.com/hashicorp/terraform-plugin-framework-validators to v0.13.0

This PR contains the following updates:

Package
Type
Update
Change

github.com/hashicorp/terraform-plugin-framework-validators
require
minor
v0.12.0 -> v0.13.0

Release Notes

hashicorp/terraform-plugin-framework-validators (github.com/hashicorp/terraform-plugin-framework-validators)
v0.13.0
Compare Source
NOTES:

all: This Go module has been updated to Go 1.21 per the Go support policy. It is recommended to review the Go 1.21 release notes before upgrading. Any consumers building on earlier Go versions may experience errors (#198)

FEATURES:

int32validator: New package which contains int32 type specific validators (#222)
float32validator: New package which contains float32 type specific validators (#222)

ENHANCEMENTS:

listvalidator: Added ValueInt32sAre and ValueFloat32sAre validators (#222)
mapvalidator: Added ValueInt32sAre and ValueFloat32sAre validators (#222)
setvalidator: Added ValueInt32sAre and ValueFloat32sAre validators (#222)

BUG FIXES:

Add the attribute from the request to the at-least-one validator's error message (#199)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

ℹ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

1 additional dependency was updated

Details:

Package
Change

github.com/hashicorp/terraform-plugin-framework
v1.9.0 -> v1.10.0


Add windows support to rust bindings

Closing this for now. The code has drastically changed since then. Let's open a new PR if we need this again.


Pumpkin Pie can't be cutted

Describe the bug: When you try to place the pumpkin pie on a cutting board it places the block above the cutting board instead of placing the item on the cutting board.
To Reproduce: Just try to put the pumpkin pie on the cutting board
Expected behavior: Place the item in the cutting board to get slices
Screenshots:

Versions: Delightful 1.19.2-3.2.2, Farmer's Delight 1.19-1.2.0, and Forge 43.2.4.

Fixed in v3.2.3


TypeError: Cannot read property 'ToastContainer' of undefined(…)

More details?

export default {
  ToastContainer,
  ToastMessage,
  ToastMessageList,
};

another error message while compiling project is
ERROR in ./~/react-toastr/lib/ToastMessage/jQueryMixin.js
Module not found: Error: Cannot resolve module 'jquery' in \node_modules\react-toastr\lib\ToastMessage
@ ./~/react-toastr/lib/ToastMessage/jQueryMixin.js 9:14-31

@luqin this is exported as ES2015 module. It make no sense to export default with an object. https://github.com/tomchentw/react-toastr/blob/97e046bcf73694ecdd170c229a08700e1e9a3840/lib/index.js

@iamyardem @luqin sorry guys, I think I accidentally introduce new commits in a patch bump. See CHANGELOG.md for v2.2.1 here. I'll unpublished it from npm now.

v2.2.2 published. Sorry again for any inconvenience.

thanks for fast reply! appreciate it :)


Don't unnecessarily invoke type loader when printing schema

Summary
Before https://github.com/webonyx/graphql-php/pull/1303 , the type loader was not invoked when printing the schema and not mutation or subscription is defined.
This brings back the previous behaviour in this regard.
I'm not sure what is really wanted here, it was discovered as feedback in the preparation for graphql-laravel for the graphql-php v15 upgrade in https://github.com/rebing/graphql-laravel/pull/953#issuecomment-1449855145 and we added a test case which did not trigger the typeloader in v14 ( https://github.com/rebing/graphql-laravel/pull/995 , though at that point it wasn't yet clear what's going on).
It's not a big issue, but I figured I open the PR as discussion, if we really need to invoke the type loader if we already see that there's not such top level type defined.
The test is just quickly put together: if you change back to the code in master, the test throws an exception.
Let me know what you think, cheers.

The type loader should not throw when a type is not found. Such behaviour would be problematic because types can be requested by the client, e.g. in a fragment spread.


[swift-4.0-branch][stdlib] Implement comparison and equality for empty tuples

Explanation: Implement comparison and equality for empty tuples
Scope of Issue: Purely additive change
Risk: Minimal
Reviewed By: Ben Cohen
Testing: Automated test suite
Directions for QA: N/A
Radar: rdar://problem/33277760

Resolves: SR-4172

@swift-ci Please test

@swift-ci Please Test Source Compatibility

/cc @anayini


Link format fix

Fixing link format so that it is Markdown, not Asciidoc.

/approve
/lgtm
/thanks


Various fixes

Various small fixes, mostly related to PhpDoc and types.
I've made them in separate commits for easier review.

I don't think the Scrutinizer error relates to this PR...

This was merged with Commit c35f7d8
Thanks!


packed_or_broadcasted: gpu::mlir_op: Shapes are not packed nor broadcasted

Torch benchmarks fail.
Affected models:
TIMM: xcit_large_24_p8_224
HF: MobileBertForQuestionAnswering, MobileBertForMaskedLM

Issue is with find_reduce_reduce matcher. Sometimes it gives the mentioned error, sometime it's a seg fault. Investigating what is the cause of the issue.

Does #3039 fix this issue?

#3039 does get around the packed_or_broadcasted error. Now has a seg. fault in gpu::compile_ops

#3070 fixes the seg fault


PyData Amsterdam 2018

Fixes #507

Could you try to review it using PyVideo Lektor (https://github.com/Daniel-at-github/pyvideo_lektor)?

Thanks for trying @redapple !
The main advantages, for me, are:

Editing restructured text and seen the results immediately after save.
General editing.
Previous/Next video shortcuts.


GitHub Actions: Parallelized builds

This introduces a build matrix to the GitHub Actions configuration that enables each architecture/target to build at the same time. This takes the total time to clear the checks from 2 hours to 1 hour.
Since the job strategy has fail-fast: false, it will still build other architectures if there is only a problem with one.

Thx that looks great ! I only have one concern vs previous sequential, is it sure the "host" part is fullly terminated before either of android / wasm / else are started ?
It could have side effect on wasm Panda3D build ( makepanda.py uses host python, only android targets are cmake based atm ). Also later i could need interrogate (host Panda3D) to generate some ffi bindings but not only for Panda3D.

By the looks of it, the host panda is generated if it isn't already there. - see https://github.com/judge2020/pydk/runs/805047977?check_suite_focus=true#step:4:421.
As for eg. Interrogate: If you needed to do things that only depended on Panda, you could do something similar to the proposed job with if statements for run commands to put commands in the "hostonly" build:
    - name:  PyDK Build target (hostonly)
      if: matrix.target == 'hostonly'
      run: |
        # run-interrogate or something
        bash pydk-all.sh

maybe "hostonly" should be run first alone ( prepare step ) and all ( 5 jobs actually ) android / wasm / else just started in parallel.
wasm build time is expected to as short as android or faster soon : Indeed actually Panda3D host is built twice but that's only because android and webgl-port are actually separate branches, android is master and the wasm port is not upstreamed yet https://github.com/pmp-p/panda3d/tree/mobile-sandbox + https://github.com/panda3d/panda3d/pull/919.
Long term all targets should use the same Python+Panda3D host.

now with the new order, it should be ok to build parallel android native, and later to add the same four wasm-wasi enabled build ( that would theoritically bundle the wasm libpython build and pip wasm wheels instead of python native shared objects )
In your proposal it would probably look like :
    strategy:
      fail-fast: false
      matrix:
        target: ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]
    env:
      ARCHITECTURES: ${{ matrix.target }}

Later the android wasm runtime should build from the main script without modifications of CI.
I'll try to add config.cache for each architectures+api to speed up (a lot for wasm - hope so) the slow cpython configure parts.
@judge2020 are you more interested in android/wasm  and cpython/panda3d ?
i'm reachable here https://gitter.im/panda3d/panda3d or on freenode irc

it seems complicated to send the wasm artefacts to the android build matrix and anyway i could not get it to run faster than android builds despite config.cache so they would have to busy wait ...
But your proposal is valid for pure native android targets so i'll keep PR open and try to make wasm fully conditionnal.


[🐛 BUG]: grpc client is closed to early after graceful shutdown

No duplicates 🥲.

[X] I have searched for a similar issue in our bug tracker and didn't find any solutions.

What happened?
RR closes to early grpc connection so some running process are not able to complete correctly.
Version (rr --version)
2024.1.5
How to reproduce the issue?
(with temporal)

start activity which takes some time (for instance - makes a HTTP request)
send sigterm signal before end of the activity

In such scenario activity finishes but is not able to send result to temporal with grpc client.
Relevant log output
2024-08-12T06:59:36+02:00	{"level":"info","ts":1723438776025103636,"logger":"temporal","msg":"Task processing failed with error","Namespace":"orders-service","TaskQueue":"default","WorkerID":"default:159998ee-1ff5-4ab9-bfc6-ad74e2924210","WorkerType":"ActivityWorker","Error":"grpc: the client connection is closing"}
2024-08-12T06:59:36+02:00	{"message":"API Request finished"}
2024-08-12T06:59:35+02:00	{"level":"info","ts":1723438775062632589,"logger":"server","msg":"destroy signal received","timeout":60}
2024-08-12T06:59:35+02:00	{"level":"info","ts":1723438775062567608,"logger":"server","msg":"destroy signal received","timeout":60}
2024-08-12T06:59:35+02:00	{"level":"info","ts":1723438775062591477,"logger":"server","msg":"destroy signal received","timeout":30}
2024-08-12T06:59:35+02:00	{"level":"info","ts":1723438775062558877,"logger":"temporal","msg":"Stopped Worker","Namespace":"orders-service","TaskQueue":"default","WorkerID":"default:159998ee-1ff5-4ab9-bfc6-ad74e2924210"}
2024-08-12T06:59:35+02:00	stop signal received, grace timeout is: 30 seconds
2024-08-12T06:59:34+02:00	{"message":"API Request started"}

Example how to reproduce: https://github.com/pfy-oleksii-storozhylov/samples-php/pull/1/files

@rustatian:

Server plugin -> update Stop mechanism, remove central pool stop mechanism.
Update all plugins using pool to directly manage their pools of workers.
Temporal stop order (?): stop T workers -> stop PHP workers -> close T client connection.


Example tag for maps

Describe the bug
I have this code sample:
type User struct {
	ID   int    `json:"id" example:"1"`
	Name string `json:"name" example:"UserA"`
}

// Response :
type Response struct {
	Users        map[string]User   `json:"users"`
	Relationship map[string]string `json:"relationship"`
}

I need to add an example tag (example:"") for two fields Users and Relationship in the Response struct, like I did with the fields ID and Name in the User struct but I have the next problems:

In first place swag doesn't recognizes the map[string]User even I have the example:"" tags in the model where the map is pointing.
Finally, how can I add the example:"" tag to a  map[string]string

Expected behavior
To expect to add the example:"" tag in my struct definition and get this json by using the swag init command:
{
  "users": {
    "userA": {
      "id": 1,
      "name": "UserA",
    },
    "userB": {
      "id": 2,
      "name": "UserB",
    },
  },
  "elationship": {
    "userA": "userB"
  }
}

Swag version
1.6.1
Go version
1.11.0
Desktop:

OS: Ubuntu 18.04.3 LTS
Browser: Firefox
Version: 68.0.2

Hi,
Can anyone share here a example tag for this part of struct
	Users        map[string]User   json:"users"


A few enhancements on 5-to-6-operators

Reading the page about the 5-to-6 operators I made a few corrections that hopefully make the page more clear.

Please note that I've added also 41a0f94 as a possible substitution of the TODO in the type system for the class concept.
If this is not fine, we can split it into two separate pull requests.

I think that's fine, it could probably do with a link to the https://docs.perl6.org/language/classtut or something but we can fix that later :)

All done! Thanks!


Add support for showOtherMonths in blankDays

Similar to jQuery Datepicker's "Dates in other months" demo, please add a "showOtherMonths" options to view the day of the previous and next month on the blank cells of the calendar.
Possibly able to have events on click on those days.
Thanks a lot!

I would agree that this would be a nice feature to add. If you have a preferred direction I may find the time to submit a PR for this.

I'd also appreciate this functionality

This was also requested in #317, which was closed after the author forked this repo and added the functionality to her fork


Review of hygiene tests - bad characters check

https://github.com/edmcouncil/fibo/blob/master/etc/testing/hygiene/testHygiene0114.sparql reports triples' objects that contain "special characters". The latter are currently defined by this regex: [ÁáÇçÉéÍíÕõÖöäÄèÈμΜσΣa-zA-Z\\;'?@$%#&:/"<*>,._+÷=)(\[\]{}0-9\n\t -].
This check may return a number of false positives, i.e., it may report cases where all chars are FIBO compliant, e.g., it will report "ó" in "jurisdiction of the Suprema Corte de Justicia de la Nación".
We may extend the current regex to include the valid chars - the problem here is how to avoid an ad hoc update. To do this we should probably first determine the list of languages in FIBO scope and then include all diacritic chars for these languages in the regex.
Alternatively we may remove the check altogether or downgrade it to a "warning" check.

@mereolog - ultimately we will be including jurisdictions for every country in the world.  I can go back and review those that include diacritics, and see if they should be in language tagged strings, but I'm not sure that makes sense.  When you talk about a place or jurisdiction, it should be possible to include the local name for that place in a string that includes English definitions, as long as the character is proper unicode.  But we should disallow it in class/property/individual names (fine in labels and other annotations as long as tools can process it)


CI environment refinements

Description
Don't install nvidia driver
Don't install gtest
set -x and -e  so scripts fail when command fail.
Checklist
Essentials

[ ] Passed code style checking (make lint)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
[ ] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

@marcoabreu

@marcoabreu merge?

Thanks


feat(can): Add option to inject can messages

Now it is possible to inject can frames via the
fakes and also disable resetting of fake function
call counters.

lgtm


Skip tests related to ParallelTestsPkgTests

We are seeing CI failures of the form:
error: compiled module was created by an older version of the compiler;
rebuild 'XCTest' and try again:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/XCTest.swiftmodule/x86_64-apple-macos.swiftmodule

Let's skip these tests while we are investigating.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

The only thing I might add would be a bug number or comment tracking the fix, but otherwise it looks good.

I didn't want to put a radar reference into OSS, but looks like we have been doing that in the past as well.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

I didn't want to put a radar reference into OSS, but looks like we have been doing that in the past as well.

Yes, Radar numbers are fine, and in fact there is a Radar URL field in JIRA.  Alternatively, and perhaps better, this could be a JIRA reference (which would involve creating a JIRA to track the issue).

Don't think a JIRA brings additional value here since this is something we have to investigate ourselves and the full contents of the radar is already the commit msg / PR description. So I just referenced the radar.

@swift-ci please smoke test


[Bug] make run error

Search before asking

[X] I had searched in the issues and found no similar issues.

Environment
Linux (self-host)
CPU Architecture
amd64
Versions
laf:1.0
linux:Ubuntu
What happened
I set up sealos cluster that was initialed by start_vm.sh,I cd to the /controllers/database,and run the make run ,then error appear
How to reproduce
.
Debug logs
alice@alice-B365-M-AORUS-ELITE:~/Desktop/demos/laf/controllers/database$ make run
/home/alice/Desktop/demos/laf/controllers/database/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/home/alice/Desktop/demos/laf/controllers/database/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
go vet ./...
go run ./main.go
1.6676308733679698e+09	ERROR	Failed to get API Group-Resources	{"error": "Get "https://<IP_ADDRESS>:6443/api?timeout=32s\": context deadline exceeded - error from a previous attempt: EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/home/alice/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/home/alice/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/manager/manager.go:322
main.main
/home/alice/Desktop/demos/laf/controllers/database/main.go:68
runtime.main
/usr/local/go/src/runtime/proc.go:250
1.6676308733682706e+09	ERROR	setup	unable to start manager	{"error": "Get "https://<IP_ADDRESS>:6443/api?timeout=32s\": context deadline exceeded - error from a previous attempt: EOF"}
main.main
/home/alice/Desktop/demos/laf/controllers/database/main.go:88
runtime.main
/usr/local/go/src/runtime/proc.go:250
exit status 1
make: *** [Makefile:73: run] Error 1
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

According to the log information you provided, it should be that your kubernetes api server is inaccessible? Please check whether the cluster is available:

1.6676308733679698e+09 ERROR Failed to get API Group-Resources {"error": "Get "[https://<IP_ADDRESS>:6443/api?timeout=32s](https://<IP_ADDRESS>:6443/api?timeout=32s\)": context deadline exceeded - error from a previous attempt: EOF"}


Efficiency benchmarks and kernel question: Triton vs CUDA

Hi Tri and Albert,
This is fantastic work! I really enjoyed reading your new paper. Quick question on the efficiency benchmark below:

For you comparison, I think that Mamba scan is using the CUDA kernel and Mamba-2 is using the Triton kernel in ssd_chunk_scan.py. Can you confirm?
Thanks!

that's right!


adding shortest path traceback for point patterns

addressing #115

Pull Request Test Coverage Report for Build 735

47 of 47 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 95.946%

Totals

Change from base Build 725:
0.06%

Covered Lines:
1349

Relevant Lines:
1406

💛  - Coveralls


Add/Remove are not symmetrical operations

As a new user to ellipsis, I expected add/remove to have symmetrical operations as they are direct antonyms of one another.  That is to say, I had expected:
>>> ellipsis new dotfiles
>>> ellipsis add dotfiles ~/.bashrc
ellipsis added .bashrc to dotfiles repo
>>> ellipsis remove dotfiles ~/.bashrc
ellipsis removed .bashrc from dotfiles repo and restored .bashrc to original location.

I personally think add/remove should perform symmetrical operations - either adding/removing packages or adding/removing files.  That may not be a realistic suggestion, depending on the maturity and direction of this project.  As an alternative, I suggest that ellipsis remove should ask for confirmation before deleting a package with active links in it.

Hi Jordan,
Thank you for your interest in the project!
This is indeed something that could be improved. I would like it more if add/remove handles files, and install/uninstall handels packages. This would make it more consistent with the commands used by most package managers out there.
Butt as you mention it would be quite a large change (although uninstall can already be used for removing packages).
Definitely not something we can change over a short period of time or in a minor version update..
I don't like the idea of asking user input, as this makes automation a lot harder.
What's your opinion @zeekay?

I agree add/remove should be symmetrical. It would be pretty nice to be able to add/remove files from a given package. We should definitely improve things here.
Not opposed to interactive input as long as we just check for a controlling terminal and it's optional.

Very cool.  I can't contribute yet (my current job has me legally bound by a copyright assignment), but I can May 1st.  Let me know if you're interested.

That would be awesome!

@assumptionsoup Still up for tackling this one? You can chat with us on our Gitter: https://gitter.im/ellipsis/ellipsis.

Implementation almost ready!
It will be split in 2 PR's. One that adds the new implementation for ellipsis remove (waiting on #63 to avoid conflicts). And one that I'm still working on to make the uninstall command a little safer when uncommitted changes or untracked files are present.


Escaped unicode characters are decoded wrongly

When having an escaped unicode character ("\\u0041"), Recaf decodes the unicode character ("\A"), resulting in a lexical error.
To reproduce:

compile following code
open with recaf

class Example {
    String example = "\\u0041";
}

Thanks. Think it is fixed in above PR.
Image:

I actually think this is something that should be reported and addressed upstream in CFR. That would be a proper solution rather than us patching the output.

This is now fixed in both 2X and 3X


How to use cloud config to refresh @FeignClient url properties

i have a feignclient like this:
@FeignClient(value = "chnbiot", url = "${ch.cloud.api-host}", path = "${ch.cloud.api-path}", fallbackFactory = DeviceApiHystrix.class) public interface DeviceApi { ommited  }
so i have a yml config like this
ch:   cloud:     api-host: test.com
when i  change ch.cloud.api-host=abc.com
and  post refresh-url http://localhost:8888/actuator/bus-refresh
ch.cloud.api-host is changed in env
but feign still visit the url test.com

Duplicates https://github.com/spring-cloud/spring-cloud-config/issues/848