WIP: Chiron 7 & .NET Core

This is a rather large, breaking rewrite of Chiron 7. The API has been altered and the code optimized.
This is nearly ready to go. It just needs a bit of API cleanup. API documentation should follow shortly after.
What has changed?

serialize and deserialize now refer to the combination of encode >> format / parse >> decode, while encode and decode take the place of the existing serialize and deserialize.

Encode and decode operations have moved to submodules Json.Encode and Json.Decode, respectively.

Operations which work on inference have moved to Chiron.Inference. Opening that module will give access to those values.

All core encode/decode operations are now exposed and easily accessible, including encoders/decoders which require configuration.

It is a common practice to include a module alias to make it easier to access the encode/decode functions:
module E = Chiron.Json.Encode
module D = Chiron.Json.Decode
module EI = Chiron.Inference.Json.Encode
module DI = Chiron.Inference.Json.Decode

This makes it easier to invoke functions such as E.listWith E.int

Chiron's result now has cases JPass and JFail

Errors are handled as a tree structure. This allows for efficient handling of both short-circuit scenarios and full-error reporting scenarios, as the tree structure allows for efficient concatenation of two existing error trees.

Chiron uses a set of pre-defined failures to better relay the causes of failures

Errors can now be tagged so that errors which are deep in a structure can be reported and identified in the source more efficiently.

JSON Objects are now dealt with specially, in order to optimize the two cases in which they are generally used: encoding and decoding.

During encoding, objects are treated as simple append logs, allowing for O(1) addition of properties to the object. These logs do not do deduplication automatically, so that must be done if there is a possibility that multiple properties with the same name may be written to the same object. (This was considered an unlikely case). This also allows preserving of ordering in which values are added to an object to determine ordering when serialized. Lookups on a write object incur a penalty, being O(n).
During decoding, objects are read into a Map, allowing for O(log n) lookup of values in the object. Additions to a read object incur a penalty, being O(n log n).

JSON Arrays are now read in correctly. In Chiron 6, arrays were reversed compared to their appearance in the serialized form.

Introduces the concept of reading/writing a mixin, which is a function that can read elements from/add elements to a JSON object. Also provides a function to allow converting such an object reader/writer to a Json reader/writer where the object is not serialized as a mixin.

Specific functional API changes:

Json.readWith -> D.required
Json.readWithOrDefault when default was None -> D.optional
Json.readWithOrDefault decoder key def -> D.optional decoder key >=> D.withDefault def (with operators) or D.optional decoder key |> Decoder.compose (D.withDefault def)
Json.writeWith -> E.required
Json.writeWithUnlessDefault when default was None -> E.optional
Json.writeWithUnlessDefault -> E.ifNotEqual
Json.read -> DI.required
Json.readOrDefault when default was None -> DI.optional
Json.readOrDefault decoder key def -> DI.optional decoder key >=> D.withDefault def (with operators) or DI.optional decoder key |> Decoder.compose (D.withDefault def)
Json.write -> EI.required
Json.writeUnlessDefault when default was None -> EI.optional
Json.writeUnlessDefault -> EI.ifNotEqual

Encoding is now a simple chain of function calls rather than wrapped in a computation expression

Decoding objects can be done with a new computation expression: jsonReader or by using the provided operators.

Includes an example of a JSON Schema serializer/deserializer, tested against the Swagger Open API 2.0 JSON Schema spec.

Many of the serializers/deserializers have been altered to ensure that they create as few allocations inline as possible, generally by pushing such allocations to module initialization as opposed to occurring at runtime.

Use of struct Result
The use of a new struct Result type was considered. What I found was that operations using a struct Result incurred a performance penalty. While they were nearly allocation free, I found that they could increase the execution time by 100%, resulting in execution times worse than before starting the optimization work. Finding this penalty unacceptable, I chose to use a reference-type Result for Chiron.
Benchmarks
Benchmarks were run on my local machine.

BenchmarkDotNet=v<IP_ADDRESS>, OS=Microsoft Windows 6.1.7601
Processor=Intel(R) Core(TM) i7-4800MQ CPU 2.70GHz, ProcessorCount=8
Frequency=2630683 Hz, Resolution=380.1294 ns, Timer=TSC
dotnet cli version=1.0.1
  [Host]    : .NET Core 4.6.25009.03, 64bit RyuJIT
  MediumRun : .NET Core 4.6.25009.03, 64bit RyuJIT

Job=MediumRun  LaunchCount=2  TargetCount=15
WarmupCount=10

When parsing:

Method
Name
Mean
StdDev
Scaled
Scaled-StdDev
Gen 0
Gen 1
Gen 2
Allocated

Chiron_Old
error
8.1883 us
0.0412 us
1.00
0.00
2.9989
-
-
10.57 kB

Chiron_New
error
2.6634 us
0.0088 us
0.33
0.00
0.2899
-
-
1.2 kB

Chiron_Old
fparsec
33.5850 us
0.4901 us
1.00
0.00
7.5765
-
-
28.15 kB

Chiron_New
fparsec
15.8960 us
0.0748 us
0.47
0.01
1.2044
-
-
6.19 kB

Chiron_Old
prettyuser
80.4490 us
1.1692 us
1.00
0.00
17.8385
-
-
64.96 kB

Chiron_New
prettyuser
39.0248 us
0.1181 us
0.49
0.01
3.8818
-
-
16.59 kB

Chiron_Old
social
199,318.9076 us
822.8354 us
1.00
0.00
30300.0000
2133.3333
212.5000
183.99 MB

Chiron_New
social
107,816.0160 us
1,767.2977 us
0.54
0.01
5025.0000
1204.1667
-
30.07 MB

Chiron_Old
user
78.1747 us
0.3920 us
1.00
0.00
17.8385
-
-
64.96 kB

Chiron_New
user
39.0666 us
0.1309 us
0.50
0.00
3.8493
-
-
16.59 kB

When formatting:

Method
Name
Mean
StdDev
Scaled
Scaled-StdDev
Gen 0
Gen 1
Allocated

Chiron_New
error
723.8419 ns
4.5279 ns
0.62
0.00
0.2764
-
949 B

Chiron_Old
error
1,174.1918 ns
4.2226 ns
1.00
0.00
0.5435
-
1.86 kB

Chiron_New
fparsec
3,519.4741 ns
21.3731 ns
0.56
0.00
0.5147
-
2.23 kB

Chiron_Old
fparsec
6,327.1602 ns
34.3687 ns
1.00
0.00
2.1891
-
8.1 kB

Chiron_New
prettyuser
7,513.2868 ns
85.5356 ns
0.53
0.01
0.9603
-
4.24 kB

Chiron_Old
prettyuser
14,257.2669 ns
60.9807 ns
1.00
0.00
4.1951
-
15.7 kB

Chiron_New
social
17,340,841.3744 ns
453,392.4016 ns
0.62
0.02
383.3333
-
9.6 MB

Chiron_Old
social
28,075,461.0672 ns
162,895.2767 ns
1.00
0.00
4245.8333
479.1667
33.53 MB

Chiron_New
user
7,464.4183 ns
32.8148 ns
0.53
0.00
0.9928
-
4.24 kB

Chiron_Old
user
14,202.8109 ns
47.7378 ns
1.00
0.00
4.2277
-
15.7 kB

When encoding:

Method
Mean
StdDev
Scaled
Scaled-StdDev
Gen 0
Allocated

Inline_Explicit
120.0114 ns
2.4677 ns
0.06
0.00
0.0876
295 B

InModule_Explicit
119.0491 ns
0.7453 ns
0.06
0.00
0.0877
295 B

Inline_Inferred
114.5410 ns
0.6669 ns
0.06
0.00
0.0798
271 B

InModule_Inferred
112.0574 ns
0.8763 ns
0.05
0.00
0.0801
271 B

Version6_ComputationExpression
2,051.8482 ns
23.7067 ns
1.00
0.00
0.8143
2.86 kB

Version6_Operators
2,102.9870 ns
8.4327 ns
1.03
0.01
0.9384
3.25 kB

And when decoding:

Method
Mean
StdDev
Scaled
Scaled-StdDev
Gen 0
Allocated

Inline_Explicit_ComputationExpression
425.6357 ns
16.5782 ns
0.45
0.02
0.1993
702 B

InModule_Explicit_ComputationExpression
397.6754 ns
3.0964 ns
0.42
0.01
0.1759
630 B

Inline_Inferred_ComputationExpression
1,138.4921 ns
6.4098 ns
1.21
0.02
0.2106
822 B

InModule_Inferred_ComputationExpression
1,115.1637 ns
8.1718 ns
1.18
0.02
0.1897
750 B

Inline_Explicit_Operators
356.4605 ns
3.0266 ns
0.38
0.01
0.1757
590 B

InModule_Explicit_Operators
328.4038 ns
1.0029 ns
0.35
0.00
0.1291
447 B

Inline_Inferred_Operators
1,094.8538 ns
5.3998 ns
1.16
0.01
0.1849
734 B

InModule_Inferred_Operators
1,038.3364 ns
7.5264 ns
1.10
0.01
0.1076
495 B

Version6_ComputationExpression
942.9645 ns
10.9486 ns
1.00
0.00
0.9374
3.1 kB

Version6_Operators
950.2550 ns
5.0865 ns
1.01
0.01
0.9811
3.24 kB

I have also tested the new version by implementing a JSON schema parser, and then verifying the amount of time required for each stage: parse, decode, encode, format, parse and decode, encode and format, and a full round-trip. The sample target used was the Swagger 2.0 JSON schema, measuring in at about 39 kiB.

Method
Mean
StdDev
Gen 0
Gen 1
Allocated

Parse
1,117.3922 us
6.4157 us
28.9063
-
397.4 kB

Decode
1,999.4045 us
14.0837 us
223.9583
20.8333
1.09 MB

ParseAndDecode
3,232.3001 us
49.3304 us
103.1250
-
1.48 MB

Format
216.1864 us
0.8882 us
26.2370
-
115.24 kB

Encode
379.0652 us
1.5211 us
89.7135
14.5182
360.3 kB

EncodeAndFormat
567.4594 us
3.1673 us
127.2135
-
463.12 kB

RoundTrip
3,908.8632 us
78.9472 us
228.1250
-
1.95 MB

An alpha with these changes has been posted to NuGet as "7.0.0-alpha-170410"

I realize that this is an alpha release, but was wondering if you could help me w/ an issue when I attempt to use this:
Binding session to 'c:\Users\dannygeorge\code\fsharp\extendedevents\ExtendedEventsLib\../build\FParsec.dll'...
System.TypeInitializationException: The type initializer for '<StartupCode$Chiron>.$Chiron' threw an exception. ---> System.IO.FileLoadException: Could not loa
d file or assembly 'FParsec, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=40ccfc0a09edbb5d' or one of its dependencies. A strongly-named assembly is requir
ed. (Exception from HRESULT: 0x80131044) ---> System.IO.FileLoadException: A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
   --- End of inner exception stack trace ---
   at <StartupCode$Chiron>.$Chiron..cctor()
   --- End of inner exception stack trace ---
   at Chiron.JsonObjectModule.get_empty()
   at FSI_0002.encoder(XEvent x) in c:\Users\dannygeorge\code\fsharp\extendedevents\ExtendedEventsLib\Script2.fsx:line 98
   at <StartupCode$FSI_0002>.$FSI_0002.main@() in c:\Users\dannygeorge\code\fsharp\extendedevents\ExtendedEventsLib\Script2.fsx:line 112

The versions that paket is using are: Chiron 7.0.0-alpha-170410 and FParsec 1.0.3-alpha-170404

I'm reading through the tests now trying to grasp how to actually use the thing now.  Any chance you've got something written about it?

This looks quite promising, but is there any plan to move forward ? Or is it currently blocked by some issue ?

Main thing is to get FParsec onto a stable release. Once that is done, I will push the new Chiron as a stable release. If you have any suggestions for changes or improvements to the API, please let me know.

I'm working on a converting the freya example to dotnet core as a learning exercise. So I am using the alpha version of Chiron and am using Aether (v8.2). It seems that the operators API clash: Chiron and Aether.
The example code has this:
let todo_ id =
      todos_
  >-> Map.value_ id

which is fine for pre-netCore. however, for netCore workaround:
let todo_ id =
       todos_
  >--> Map.value_ id

which the operator >--> is marked as obsolete. I'm not sure how common it is to use both Aether and Chiron because I'm just starting, but if it is quite common, this clash might be a little annoying and if Aether drops that operator, projects would break upon upgrade. I just thought I'd point it out since it was something I noticed.

Hi all,
I currently use Chiron, dotnet core alpha version, in one of our projects.
I encounter what it seems to me to be a bug. I have the following JSON with two optional fields like this:

{"id":"0e3563cb-FFFB-488f-8b99-ea06cd17ef98",
"companyName": "AGILITIC SAS",
"civility":"mr",
"lastname":"JALOWOI",
"firstname":"Sylvain",
"phone":"02334345654",
"mobile_phone":"",
<EMAIL_ADDRESS>"notes":"",
"billing_address":{	"address":"6 rue des peupliers",
"city":"Dives-sur-mer",
"zipcode":"14160"},
"intervention_address": {	"address":"6 rue des peupliers",
"city":"Dives-sur-mer",
"zipcode":"14160"}}

Actually, one field is missing, "owner", the second optional field was "CompanyName".
On the backend server side  (Suave), I have the following code to interpret the JSON:
`   type CommonClientInformationForm =
{
id          : ClientId
civility    : string
lastname    : string
firstname   : string
phone       : string
mobilePhone : string
email       : string
notes       : string
billingAddr      : Address
interventionAddr : Address
}
type CreateClientForm =
    | RegularClientForm of bool * CommonClientInformationForm
    | CompanyClientForm of string * CommonClientInformationForm
    | InvalidClientForm

    static member FromJson (_ : CreateClientForm) = jsonDecoder {
                let! cid = DI.required "id"
                let! e   = DI.required "email"
                let! f   = DI.required "firstname"
                let! l   = DI.required "lastname"
                let! c   = DI.required "civility"
                let! pn  = DI.required "phone"
                let! mpn = DI.required "mobile_phone"
                let! n   = DI.required "notes"
                let! baddr = DI.required "billing_address"
                let! iaddr = DI.required "intervention_address"

                let! cname = DI.optional "companyName"
                let! owner = DI.optional "owner"

                let commonInfo = {  id          = cid
                                    civility    = c
                                    lastname    = l
                                    firstname   = f
                                    phone       = pn
                                    mobilePhone = mpn
                                    email       = e
                                    notes       = n
                                    billingAddr      = baddr
                                    interventionAddr = iaddr
                                }

                let res = match cname with
                            | None ->
                                   match owner with
                                        | None -> InvalidClientForm
                                        | Some o ->  RegularClientForm(o, commonInfo)
                            | Some compName -> CompanyClientForm(compName, commonInfo)
                return res
    }`

At runtime, if there is one missing of the two optional fields, the program stops with a StackOverflow exception. If I remove the code dealing with the two optional fields, the code runs correctly.
The behavior I expect when a field is missing in a JSON and the D.optional "key" function returns None, not an exception. Am I wrong ?
Thanks for the code, the new version is very nice to use

StackOverflow is a very particular exception. Do you have a stack trace? Generally a stack overflow indicates some recursion or deep call stack, so knowing what that call stack was would be helpful in understanding the issue you are observing.
Better yet, if you can create a PR against the chiron-7 branch with an added test that fails, I can work to make that test pass.

Hi Marcus,
thanks for you answer. I cannot reproduce the StackTrace, i think it is a problem into my code. Sorry for the disturbing. However i encounter a problem with using of Optional.
Actually, i have a Json like this :
{   "action": {     "interventionCreated": {       "clientId": "340078fc-e585-402d-b2e1-96df3b2a2f03",       "interventionStatus": {         "value": "toschedule"       },       "userId": "0e45fedd-2aaf-41c4-b7ea-3554ecebf145",       "interventionDeadline": null,       "interventionType": {         "value": "maintenance"       },       "interventionId": "ba56b826-2e7e-49f6-aea4-24019bd5f8f0",       "interventionDescr": " "     }   },   "version": "1.0" }
A field called interventionDeadline has a Null value. So i suppose i need to use DI.optional "interventionDeadline" for getting the field and i will get a None value.
Instead of None value, i get the error message:

Unhandled Exception: System.Exception: Impossible de deserialiser un événement: Found 9 errors:
(Choice #1): Failed to find expected property: email
(Choice #2): Failed to find expected property: login
(Choice #3): Failed to find expected property: userAdded
(Choice #4): Failed to find expected property: regularClient
(Choice #5): Failed to find expected property: companyClient
(Choice #6).interventionCreated.interventionDeadline: Expected to find a string, but instead found null
(Choice #7): Failed to find expected property: appointmentAdded
(Choice #8): Failed to find expected property: appointmentCancelled
(Choice #9): Failed to find expected property: appointmentCompleted
du stream: account:041c49f0-eb59-4982-a602-0046d72a6564 - Numéro d'event: 4

How can i read a field like "interventionDeadline" with Chiron 7 that is supposed to be a String field with eventually a Null value ?
Thanks for your time,
Sylvain
PS: I am in vacation, it is not easy for me to do a PullRequest.

For that line, you can use D.required (D.option D.string) "interventionDeadline". That will require that "interventionDeadline" exists and is either null or a string. If you want "interventionDeadline" to be optional and also handle null, then use `D.optional (D.option D.string) "interventionDeadline".
Part of the API change was to ensure that all three of the optional cases were covered (accept missing, accept null, accept null or missing).

Thanks for your answer, it resolve my problems and it is more clear for me.
Best regards
Sylvain

Hello,
I have the same problem, but when I use the syntax:
D.optional (D.option D.string) "value"
I get the following error:
error FS0001: This expression was expected to have type "Decoder<Json,'a>"
but here has type "JsonResult"
I have the same error using the other proposed syntax:
D.required (D.option D.string) "value"
In this context, D = Chiron.Serialization.Json.Decode
Do you confirm that this is the correct syntax?
Best regards.
Julien.

Decoding objects can be done with a new computation expression: jsonReader or by using the provided operators.

Is there any example about decoding with operators?

@lanarchyste Having a fuller example, including the type you are attempting to deserialize would help me to see if there is anything off in the syntax. I went looking for a test that uses D.optional (D.option _) and didn't see one, so I will get one added to ensure it is working properly.
@Risord, Take a look at the tests in the PR here: https://github.com/neoeinstein/chiron/blob/chiron-7/tests/Chiron.Tests/Chiron.Tests.fs#L38.

@lanarchyste Well, after just having responded to Risord, that same section of code gives the answer. It's not D.optional (D.option _), it's D.optional (D.optionWith _). I'll correct my earlier comments.

Hello, I am attempting to update and I am having more success than my last attempt a few months ago.  I have the following type
type CommentDatabaseModel =
  {
    commentId : string
    userId : string
    message : string
  }

and CommentMultiTreeDatabaseModel =
  CommentDatabaseModelNode of CommentDatabaseModel * CommentMultiTreeDatabaseModel list

and the following decoders
let commentDatabaseModelDecode =
  let inner =
    (fun
      commentId
      userId
      message ->
      { commentId = commentId
        userId = userId
        message = message
      })
    <!> required "commentId"
    <*> required "userId"
    <*> required "message"
  Json.Decode.jsonObject >=> inner

let rec commentMultiTreeDatabaseModelDecode =
  let inner =
    (fun
      commentDatabaseModel
      forest ->
        CommentDatabaseModelNode (commentDatabaseModel, forest)
    )
    <!> D.required commentDatabaseModelDecode "commentDatabaseModel"
    <*> D.required (D.listWith (lazy commentMultiTreeDatabaseModelDecode).Value) "forest"
  Json.Decode.jsonObject >=> inner

I am attempting to copy Elm decoder
commentTreeDecoder : Decoder (Tree CommentModel)
commentTreeDecoder =
    decode MultiwayTree.Tree
        |> required "commentModel" commentModelDecoder
        |> required "forest" (list (lazy (\_ -> commentTreeDecoder)))

What am I missing?  Any help or advice with be much appreciated.  Thank you

I found a bug. Chiron seems to encode decimals with ',' instead of '.'
Chiron.Inference.Json.encode 1.5
|> Chiron.Formatting.Json.format // returns "1,5" expected: "1.5"

Windows 10 with culture fi-FI

I think I cannot create pull request for this because development doesn't exists in any traditional github branch(?). Anyway you should be able to reproduce issue by setting:
CultureInfo.CurrentCulture <- new CultureInfo("fi-FI")
I am currently watching newest commit of this pull request (0b1a12c) and I suggest that all primitive .ToString([potential-format]) calls should be changed to:
.ToString([potential-format], CultureInfo.InvariantCulture)
(Chiron.fs: 996 - 1046)
Culture effects to parsing too so CultureInfo.InvariantCulture must be passed to .Parse functions too.
(Chiron.fs: 1527 - 1572)
For now workaround is to change current culture at program start:
CultureInfo.CurrentCulture <- CultureInfo.InvariantCulture

@Risord Thanks for the report. I'll make sure to explicitly set the invariant culture in each of these spots. The PR is coming from my own fork of the repo at the moment, so that's likely what is making it difficult to see where to make a PR.

@neoeinstein  https://www.nuget.org/packages/Chiron/  seems no new version has been released ?

Hello,
I'm working with the library to deserialize json but I have an issue.
Considering the following types:
type Info =
  { title           : string
    description     : string option
    termsOfService  : string option
    contact         : Contact option
    license         : License option
    version         : string }

and Contact =
  { name  : string option
    url   : string option
    email : string option }

and License =
  { name  : string
    url   : string option }

If I create FromJson methods using the builder jsonDecoder it compile and the type of the methods is ````'a -> Decoder<Json, '>```.
But if I use the operators to define FromJson methods it doesn't compile and I get the following error:
'Type mismatch. Expecting a
'Decoder<Json,Contact>'
but given a
'Decoder<JsonObject,Contact>'
The type 'Json' does not match the type 'JsonObject''
What's the difference between Json and JsonObject ? I don't get why when using operators signature of FromJson is 'a -> Decoder<JsonObject, 'a> and when I use the builder it's ````'a -> Decoder<Json, '>```.
Did I miss something?
Thanks
open Chiron
open Chiron.Inference

type Contact with
  static member FromJson (_ : Contact) =
    jsonDecoder {
      let! name = Json.Decode.optional "name"
      let! url = Json.Decode.optional "url"
      let! email = Json.Decode.optional "email"

      return  { name  = name
                url   = url
                email = email }
    }

type License with
  static member FromJson (_ : License) =
    jsonDecoder {
      let! name = Json.Decode.required "name"
      let! url = Json.Decode.optional "url"

      return { name  = name
               url   = url }
    }

type Info with
  static member FromJson (_ : Info) =
    jsonDecoder {
      let! title = Json.Decode.required "title"
      let! desc = Json.Decode.optional "description"
      let! tos = Json.Decode.optional "termsOfService"
      let! contact = Json.Decode.optional "contact"
      let! license = Json.Decode.optional "license"
      let! version = Json.Decode.required "version"

      return { title           = title
               description     = desc
               termsOfService  = tos
               contact         = contact
               license         = license
               version         = version }
    }

type Contact with
  static member FromJson (_ : Contact) =
        fun name url email ->
          { name  = name
            url   = url
            email = email }
    <!> Json.Decode.optional "name"
    <*> Json.Decode.optional "url"
    <*> Json.Decode.optional "email"

type License with
  static member FromJson (_ : License) =
        fun name url ->
          { name  = name
            url   = url }
    <!> Json.Decode.required "name"
    <*> Json.Decode.optional "url"

type Info with
  static member FromJson (_ : Info) =
        fun title desc tos contact license version ->
          { title           = title
            description     = desc
            termsOfService  = tos
            contact         = contact
            license         = license
            version         = version }
    <!> Json.Decode.required "title"
    <*> Json.Decode.optional "description"
    <*> Json.Decode.optional "termsOfService"
    <*> Json.Decode.optional "contact"
    <*> Json.Decode.optional "license"
    <*> Json.Decode.required "version"

@neoeinstein I've made a little script to try out the new beta.
#r "./packages/json/FParsec/lib/net40-client/FParsec.dll"
#r "./packages/json/FParsec/lib/net40-client/FParsecCS.dll"
#r "./packages/json/Chiron/lib/net45/Chiron.dll"

open Chiron

module E = Json.Encode

type Person = {
    Name:string
    Age:int
    City:string
}

type Person with
  static member ToJson (x:Person) (jObj) =
    jObj
    |> E.required E.string "name" x.Name
    |> E.required E.int "age" x.Age
    |> E.required E.string "city" x.City

{ Name = "Barry"; Age = 22; City = "New York"}
|> E.jsonObjectWith Person.ToJson
|> Json.formatWith JsonFormattingOptions.Pretty

Is this the correct approach to serialize?

I've heard that people are using chiron 7 in production. Perhaps it's time to merge this pull request? Ir there anything left on it?

My congratulations to Dave (@ninjarobot). I've given you publish rights to the NuGet feed as well as admin collaborator rights on this repository. I'm happy to help out from time to time, but I think that Chiron 7 is in a pretty good state. Dave, feel free to pull it out of alpha and release it to the world as stable.

I hope we see additional improvement in this library! Good luck on maintaining it @ninjarobot ! 😀

I am just moving to the latest available version and I have some questions about performance or rather about the terminology used in the description above.
What are the differences between
Inline_Explicit_ComputationExpression and Inline_Inferred_ComputationExpression
or Inline_Inferred_ComputationExpression and Inline_Inferred_Operators  .
Are there any code examples for this available?
My biggest isse with Chiron is indeed performance atm. I have large object graphs that I need to deserialize (and many of those in one go) and it is not uncommon for a end user initiated action to take 5-10 seconds or even 20s. which is much to much. So I need to get the most out of Chiron. Thx

Would it be possible to have an upgrade path from 6 -> 7 that doesn't break the user's code and let one easy into 7 gently?


chore: use tagName instead of releaseTag in link to release in slack notification

Summary
Fix link to release in slack notification as in
https://github.com/algolia/shipjs/pull/609

@jeetiss Hey, nice catch!
Thanks for the PR.
For more context, I've copied and overrode some config to send release message to Slack.
There has been a change in Ship.js, so this PR updates the change here.


Windows support

When I run analysis on Windows 10
go build main.go

# github.com/ossf/package-analysis/internal/packetcapture
..\..\internal\packetcapture\packetcapture.go:21:26: undefined: pcapgo.EthernetHandle
..\..\internal\packetcapture\packetcapture.go:60:24: undefined: pcapgo.NewEthernetHandle
# github.com/ossf/package-analysis/internal/sandbox
..\..\internal\sandbox\sandbox.go:443:19: undefined: syscall.Umask
..\..\internal\sandbox\sandbox.go:444:10: undefined: syscall.Umask

I don't think we can run on windows.


Feature to log SMP Run Data to text File from SMPQ

The 2nd item in the Log Options menu: "Log SMP Data - New File" could be misunderstood.  It isn't clear from the text that you can use this option to run the model and append the results into an existing file.  I would suggest these changes:

"New File" -> "Custom File"
Also, the "_" on the Log Options Menu items (indicating Alt+ shortcut) should be changed to not be all on the "L".  I'd suggest Default, Custom, and None, respectively.


Verify that system CUDA version matches cudatoolkit version

The build_feedstock script should check that the version of CUDA installed matches the version that is provided by the cudatoolkit version. If it doesn't match, an error should be thrown and the build should fail.
It should also check that CUDA_HOME is set. If it isn't set, it can be set with a default value.
It should also check that CUDA_HOME matches the nvcc that is in the system PATH.

Nothing much on my plate at the moment while waiting on some older PRs to be reviewed -- I'll self-assign and take look at this one.

This one got set aside 3 months ago.  Re-engaged; Killed earlier outdated PR and started fresh.

The earlier attempt to do this item remains available, in the PR mentioned above.  But I never finished it off and I think it's best that I put it back into the backlog pool (either for someone else to pick up, or to dispose if no longer desired.)

No intent to address


Use different method to open OmniFocus URL?

I experienced the problem in #5 and #6 in Firefox 85 and did some investigating.
I found that changing the location in the background page context doesn't seem to do anything. I experimented a bit and this PR seems to do the desired thing: opening the OmniFocus quick entry form (provided OF has been accepted as the default handler for such URLs) without actually navigating the original tab.
I think this approach might do to get this extension working in recent Firefox releases. If so, it would fix #5 and fix #6.
(I did some digging through Firefox bugs and wasn't able to figure out what seems to have changed in Firefox 84—sorry about that.)

Thanks for your work ! I hope this gets integrated upstream soon...

Sorry for the wait, this seems to work perfectly, thanks.


podman play kube not utilizing existing or locally built images

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
podman play kube does not seem to be utilizing local images. I am going back to a bug I found in a project of mine so this deployment has worked in previous versions of podman.
Steps to reproduce the issue:

podman play k8s-localtest-deployment.yaml

Describe the results you received:
It failed to get the image needed to deploy the pod.
Describe the results you expected:
As far as I understand k8s and podman's play kube, it should first check to see if a container image is present before attempting to pull one remotely (this behavior can be modified with imagePullPolicy). It doesn't appear to detect and/or utilize the local images I have built and fails pulling from public registries as the image doesn't exist there.
It keeps trying to pull nginx too which is confusing as it is already as present as witnessed in the output I post below.
Additional Things I've tried:

Change image in yml from mswebapps:latest to localhost/mswebapps:latest. Result: Fails to pull images from localhost on 443. It seems to be expecting my localhost to be operating a registry.
Attempt to tag localhost/mswebapps:latest as mswebapps:latest. Result: Podman seems to always prepend localhost/

The image was built with buildah
A stripped snippet from the k8s pod yaml
containers:
  - name: nginx
    image: nginx:latest
  - name: mswebapps
    image: mswebapps:latest
  - name: mslegacyapi
    image: mslegacy:latest
  - name: msmanagementapi
    image: msmanagement:latest

snippet from podman images
localhost/mswebapps          latest   40fa3d9d6ebe   37 minutes ago   1.19 GB
localhost/msmanagement       latest   1451cf1f64fc   37 minutes ago   1.15 GB
localhost/mslegacy           latest   fab0ce3ac08d   38 minutes ago   1.17 GB

podman play kube
Trying to pull docker.io/library/mswebapps:latest...
  denied: requested access to the resource is denied
Trying to pull registry.fedoraproject.org/mswebapps:latest...
  manifest unknown: manifest unknown
Trying to pull registry.access.redhat.com/mswebapps:latest...
  name unknown: Repo not found
Trying to pull registry.centos.org/mswebapps:latest...
  manifest unknown: manifest unknown
Trying to pull quay.io/mswebapps:latest...
  error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>404 Not Found</title>\n
Not Found
\n
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
\n"
Error: unable to pull mswebapps:latest: 5 errors occurred:
	* Error initializing source docker://mswebapps:latest: Error reading manifest latest in docker.io/library/mswebapps: errors:
denied: requested access to the resource is denied
unauthorized: authentication required

	* Error initializing source docker://registry.fedoraproject.org/mswebapps:latest: Error reading manifest latest in registry.fedoraproject.org/mswebapps: manifest unknown: manifest unknown
	* Error initializing source docker://registry.access.redhat.com/mswebapps:latest: Error reading manifest latest in registry.access.redhat.com/mswebapps: name unknown: Repo not found
	* Error initializing source docker://registry.centos.org/mswebapps:latest: Error reading manifest latest in registry.centos.org/mswebapps: manifest unknown: manifest unknown
	* Error initializing source docker://quay.io/mswebapps:latest: Error reading manifest latest in quay.io/mswebapps: error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>404 Not Found</title>\n
Not Found
\n
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
\n"

Output of podman version:
Version:            1.8.0
RemoteAPI Version:  1
Go Version:         go1.13.6
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  git commit: ""
  go version: go1.13.6
  podman version: 1.8.0
host:
  BuildahVersion: 1.13.1
  CgroupVersion: v2
  Conmon:
    package: conmon-2.0.10-2.fc31.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.10, commit: 6b526d9888abb86b9e7de7dfdeec0da98ad32ee0'
  Distribution:
    distribution: fedora
    version: "31"
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  MemFree:<PHONE_NUMBER>0
  MemTotal:<PHONE_NUMBER>8
  OCIRuntime:
    name: crun
    package: crun-0.12.1-1.fc31.x86_64
    path: /usr/bin/crun
    version: |-
      crun version 0.12.1
      commit: df5f2b2369b3d9f36d175e1183b26e5cee55dd0a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  SwapFree:<PHONE_NUMBER>2
  SwapTotal:<PHONE_NUMBER>2
  arch: amd64
  cpus: 8
  eventlogger: journald
  hostname: DFP-Xavier-Loose
  kernel: 5.4.17-200.fc31.x86_64
  os: linux
  rootless: true
  slirp4netns:
    Executable: /usr/bin/slirp4netns
    Package: slirp4netns-0.4.0-20.1.dev.gitbbd6f25.fc31.x86_64
    Version: |-
      slirp4netns version 0.4.0-beta.3+dev
      commit: bbd6f25c70d5db2a1cd3bfb0416a8db99a75ed7e
  uptime: 8m 17.44s
registries:
  search:
  - docker.io
  - registry.fedoraproject.org
  - registry.access.redhat.com
  - registry.centos.org
  - quay.io
store:
  ConfigFile: /home/xav/.config/containers/storage.conf
  ContainerStore:
    number: 7
  GraphDriverName: overlay
  GraphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: fuse-overlayfs-0.7.5-2.fc31.x86_64
      Version: |-
        fusermount3 version: 3.6.2
        fuse-overlayfs: version 0.7.5
        FUSE library version 3.6.2
        using FUSE kernel interface version 7.29
  GraphRoot: /home/xav/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: btrfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 16
  RunRoot: /run/user/1000
  VolumePath: /home/xav/.local/share/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):
podman-1.8.0-2.fc31.x86_64

Additional environment details (AWS, VirtualBox, physical, etc.):
physical

After looking through the source I learned it had to do with my configuration via the following comment in libpod/pods.go:
// In kube, if the image is tagged with latest, it should always pull

This was a misunderstanding by myself of how kube works. Removing the latest tag in my pod yaml fixed the issue.


Missing testing in documentations

Theres no example for how to do feature testing like laravel in documentation such as asserting database content, etc..
Thanks, nice project!

Thanks for your issue, I'll make an example.

@hwbrzzl thank you.. i saw a glimpse of e2e testing example on https://www.goravel.dev/the-basics/routing.html#testing-routing , but i think that example is a bit misleading becauses you need to boot the app first right?

Yes, actually, the mock is to do this work and can do it better. facades.* are interface, the mock will implement the interface and we will set facades.*=mock, it's similar to container/dependency injection. The mock has many useful functions that can help us build the unit tests.

For Mock Detail

i think maybe thats y its slow at the build time because of facades.* global variables, maybe just resolve the instance as function when we need/use it?

Yes, If you didn't use some facades, you can remove them in config/app.go::providers, then you'll build faster, and the volume will be smaller.

I added an example here.

@hwbrzzl hi tq for the updates, but i cant find endpoint testing with db assertion
quick example in laravel:
$r = $this->post('/users', ['name' => 'test']);
$r->assertOk();

$this->assertDatabaseHas('users', ['name' => 'test']);

Yes, it's better, we have a plan to implement this, but we haven't. Welcome to PR!

We will solve this issue on https://github.com/goravel/goravel/issues/73.


Value slider rendering issue (Memory cache, maybe others as well)

Original ticket:
https://sourceforge.net/p/djv/bugs/108/

I made some changes to how the sliders are displayed, and changed the "toggle" buttons to "check-box" buttons, so that there is more of a visual distinction between the two. Hopefully this and some other style tweaks make the popup widgets more clear.


Validate private repository only after secret is fetched

Fixes
https://issues.redhat.com/browse/HAC-1612

Description
CDQ for private repository failed when next is clicked quickly because the secret was not yet fetched in the previous page.
Solved by disabling next button until secret is fetched in case of private repos.

Type of change

[ ] Feature
[x] Bugfix
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Screen shots / Gifs for design review
https://user-images.githubusercontent.com/20013884/175344862-72eebc55-e504-4158-bbe7-924e95192ea5.mp4

How to test or reproduce?

Enter a private repo in source input page
Click next/press enter as soon as url is validated

Browser conformance:

[ ] Chrome
[x] Firefox
[ ] Safari
[ ] Edge

/cc @rohitkrai03 @sahil143


Buttons dark theme

The buttons were adapted for dark mode

I think this is not the correct way to adaption to dark mode.
When the user downloads the code for any button, they will also get this dark mode script tag which is unnecessary for them.
The solution to this issue is to add a background color for the body tag in each button's style.css files.
@rbeaujon

I was thinking change the style.css for work with the same BG in both
mode.... but I was thinning this way was better but I see I was wrong. I'll
change them just now
On Thu, Oct 27, 2022 at 9:59 PM OM GAWANDE @.***> wrote:

I think this is not the correct way to adaption to dark mode.
When the user downloads the code for any button, they will also get this
dark mode script tag which is unnecessary for them.
The solution to this issue is to add a background color for the body tag
in each button's style.css files.
@rbeaujon https://github.com/rbeaujon
—
Reply to this email directly, view it on GitHub
https://github.com/Spyware007/Animating-Buttons/pull/210#issuecomment-1293941535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKIKHQOV46TO56TRASOK6Q3WFLGJZANCNFSM6AAAAAARQLK66Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

I pushed the changes, please let me know about this approach. Thank you
On Thu, Oct 27, 2022 at 10:06 PM Ricardo Beaujon @.***>
wrote:

I was thinking change the style.css for work with the same BG in both
mode.... but I was thinning this way was better but I see I was wrong. I'll
change them just now
On Thu, Oct 27, 2022 at 9:59 PM OM GAWANDE @.***>
wrote:

I think this is not the correct way to adaption to dark mode.
When the user downloads the code for any button, they will also get this
dark mode script tag which is unnecessary for them.
The solution to this issue is to add a background color for the body tag
in each button's style.css files.
@rbeaujon https://github.com/rbeaujon
—
Reply to this email directly, view it on GitHub
https://github.com/Spyware007/Animating-Buttons/pull/210#issuecomment-1293941535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKIKHQOV46TO56TRASOK6Q3WFLGJZANCNFSM6AAAAAARQLK66Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Spyware007 Seems fine in my opinion, Changing the color to something that visible in both dark mode and light mode is a good work around in dealing with this issue, Great work by the way @rbeaujon


SyntaxError: invalid syntax - Error when running deploy-to-lambda.py

Evening guys,
Getting the error shown below when running "python deploy-to-lambda.py"
C:\Users\smcal\Desktop\kodi-alexa-master>python deploy-to-lambda.py
  File "deploy-to-lambda.py", line 34
    print subprocess.Popen("lambda-deploy deploy", shell=True, stdout=subprocess.PIPE).stdout.read()
                   ^
SyntaxError: invalid syntax

EDIT: Resolved my initial error, now getting the above
Can you shed any light on it/Point me in the right direction?
Thanks

Check your Python version, it doesn't work on Python 3.
See #51

Running Version 2.7 from what I can tell

:\users\smcal\appdata\local\programs\python\python35-32

Oh!, It would seem I have 2 versions installed. oops

Ok that worked, Although I'm now back to my original error which is the following.
C:\Users\smcal\Desktop\kodi-alexa-master>python deploy-to-lambda.py 2016-11-22 17:49:45:INFO:botocore.vendored.requests.packages.urllib3.connectionpool: Starting new HTTP connection (1): <IP_ADDRESS> Traceback (most recent call last):   File "c:\python27\lib\runpy.py", line 162, in _run_module_as_main     "__main__", fname, loader, pkg_name)   File "c:\python27\lib\runpy.py", line 72, in _run_code     exec code in run_globals   File "C:\Python27\Scripts\lambda-deploy.exe\__main__.py", line 9, in <module>   File "c:\python27\lib\site-packages\lambda_deploy\lambda_deploy.py", line 360, in main     name=options.name   File "c:\python27\lib\site-packages\lambda_deploy\lambda_deploy.py", line 75, in __init__     self.client = boto3.client('lambda')   File "c:\python27\lib\site-packages\boto3\__init__.py", line 83, in client     return _get_default_session().client(*args, **kwargs)   File "c:\python27\lib\site-packages\boto3\session.py", line 263, in client     aws_session_token=aws_session_token, config=config)   File "c:\python27\lib\site-packages\botocore\session.py", line 824, in create_client     client_config=config, api_version=api_version)   File "c:\python27\lib\site-packages\botocore\client.py", line 69, in create_client     verify, credentials, scoped_config, client_config, endpoint_bridge)   File "c:\python27\lib\site-packages\botocore\client.py", line 222, in _get_client_args     verify, credentials, scoped_config, client_config, endpoint_bridge)   File "c:\python27\lib\site-packages\botocore\args.py", line 44, in get_client_args     endpoint_url, is_secure, scoped_config)   File "c:\python27\lib\site-packages\botocore\args.py", line 101, in compute_client_args     service_name, region_name, endpoint_url, is_secure)   File "c:\python27\lib\site-packages\botocore\client.py", line 295, in resolve     service_name, region_name)   File "c:\python27\lib\site-packages\botocore\regions.py", line 122, in construct_endpoint     partition, service_name, region_name)   File "c:\python27\lib\site-packages\botocore\regions.py", line 135, in _endpoint_for_partition     raise NoRegionError() botocore.exceptions.NoRegionError: You must specify a region.
Screenshot of the error
Screenshot of my .env file - Wondering if I've named it properly? the original file is called .env.lambda, Although in the guide it says to copy this file so I'm assuming you give it a new name? in this case, alexa-kodi.env.
I'm pretty new to all this, So any help you can provide would be amazing.

You need to name it .env

Ahhh so like ".env.kodialexa" ?

although does the fact im doing this in windows make any difference?

No, Windows is fine. Filename needs to be .env.

ok cool, So i get the following trying to name the file ".env"
http://imgur.com/a/oLyQU

Is that in Explorer or Notepad++?

good catch, was in explorer. oops ha

That worked m0ngr31, Thanks.
Hopefully last question,
c:\Users\smcal\Desktop\kodi-alexa-master>python deploy-to-lambda.py 2016-11-22 19:24:02:INFO:botocore.credentials: Found credentials in environment variables. 2016-11-22 19:24:02:INFO:lambda_deploy: Packaging lambda kodi-alexa 2016-11-22 19:24:02:WARNING:lambda_deploy: A .env file exists in your Lambda directory - be careful that it does not contain any secrets you don't want uploaded to AWS! 2016-11-22 19:24:02:WARNING:lambda_deploy: Skipping inclusion of of .env file - use LAMBDA_ENV_VARS instead (see documentation for more information) Traceback (most recent call last):   File "c:\python27\lib\runpy.py", line 162, in _run_module_as_main     "__main__", fname, loader, pkg_name)   File "c:\python27\lib\runpy.py", line 72, in _run_code     exec code in run_globals   File "C:\Python27\Scripts\lambda-deploy.exe\__main__.py", line 9, in <module>   File "c:\python27\lib\site-packages\lambda_deploy\lambda_deploy.py", line 376, in main     method()   File "c:\python27\lib\site-packages\lambda_deploy\lambda_deploy.py", line 215, in deploy     Publish=True   File "c:\python27\lib\site-packages\botocore\client.py", line 251, in _api_call     return self._make_api_call(operation_name, kwargs)   File "c:\python27\lib\site-packages\botocore\client.py", line 537, in _make_api_call     raise ClientError(parsed_response, operation_name) botocore.exceptions.ClientError: An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda. Collecting requests (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 1))   Using cached requests-2.12.1-py2.py3-none-any.whl Collecting gunicorn (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 2))   Using cached gunicorn-19.6.0-py2.py3-none-any.whl Collecting yaep (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 3))   Using cached yaep-0.0.6-py2-none-any.whl Collecting pycountry (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 4)) Collecting pytz (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 5))   Using cached pytz-2016.7-py2.py3-none-any.whl Collecting fuzzywuzzy (from -r c:\Users\smcal\Desktop\kodi-alexa-master\kodi-alexa\requirements.txt (line 6))   Using cached fuzzywuzzy-0.14.0-py2.py3-none-any.whl Installing collected packages: requests, gunicorn, yaep, pycountry, pytz, fuzzywuzzy Successfully installed fuzzywuzzy-0.14.0 gunicorn-19.6.0 pycountry-16.11.8 pytz-2016.7 requests-2.12.1 yaep-0.0.6 Starting new HTTPS connection (1): lambda.eu-west-1.amazonaws.com Adding new kodi-alexa lambda
Completes with a few errors. . Seems to skip my .env file
and
botocore.exceptions.ClientError: An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda.
Suggestions?

It's not skipping your .env file, it's just a message saying that it's not going to upload it to aws. The issue now seems to be that you need Lambda permissions on your role and user on AWS.

Oh ok, I think i may have resolved it.
Entirely new to Lambda and Echo, Throwing myself in at the deep end.
thanks for your help


just: 1.16.0 -> 1.17.0

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@fabianhjr there have been 5 releases since 1.17.0... If we want to backport, maybe do a manual backport to get us all the way to 1.22.0?

Ah yeah, it probably will be quicker, will do that tomorrow then :3


GH-31868: [C++] Support concatenating extension arrays

(still needs a test in C++ and more elaborate tests (eg extension types with nested data))

Closes: #31868

is there anything blocking this PR ?

Nothing! Just me finding the time to update this, doing that now.

@felipecrv thanks for the review!


Update data-import-processing-core version to 4.3.1.

This resolves the original problem described in TAMULib/fw-registry#397.
Upon upgrading to Poppy, the mapping functionality provided by external FOLIO modules does not work because the SET_CONTRIBUTOR_TYPE_ID_BY_CODE_OR_NAME and TRIM_PUNCTUATION are out of date or missing.
The author. is from the 100.e from the MARC record should now be converted.
The normalization functions will strip out the punctuation, like the period ., and then map the name author into a matching UUID.
The error 22 Unprocessable Entity: "{"errors":[{"message":"must match \"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$\"","type":"1","code":"javax.validation.constraints.Pattern.message","parameters":[{"key":"contributors[0].contributorTypeId","value":"author."}]}]} (which does not come from mod-camunda, but instead some other module via OKAPI) no longer happens.
see: https://github.com/folio-org/data-import-processing-core/blob/42b8d49510f64694a5094a2e353af45b258ee1cf/src/main/java/org/folio/processing/mapping/defaultmapper/processor/functions/NormalizationFunction.java#L330
see: https://github.com/folio-org/data-import-processing-core/blob/42b8d49510f64694a5094a2e353af45b258ee1cf/src/main/java/org/folio/processing/mapping/defaultmapper/processor/functions/NormalizationFunction.java#L108

Have you double checked MappingUtility to make sure it is up to date with the data-import-processing-core dependency?

That seems out of scope.
This is a critical hotfix.


maintainVisibleContentPosition is not available on android

FlatList automatically scrolls after change data and adds new data in the front or middle of the data list.
it is working on ios if i add maintainVisibleContentPosition
<FlatList
  ref={(ref) => { this.chatFlatList = ref; }}
  style={styles.flatList}
  data={this.state.items}
  renderItem={this._renderItem}
  maintainVisibleContentPosition={{
     minIndexForVisible: 0,
  }}
/>

but this prop is not available on android but i want this prop in android
React Native version:
 React Native Environment Info:
    System:
      OS: macOS 10.14.6
      CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
      Memory: 38.35 MB / 16.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 12.15.0 - /usr/local/bin/node
      Yarn: 1.21.1 - /usr/local/bin/yarn
      npm: 6.13.4 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
      Android SDK:
        API Levels: 28, 29
        Build Tools: 28.0.3, 29.0.1, 29.0.2
        System Images: android-26 | Google Play Intel x86 Atom, android-27 | Google APIs Intel x86 Atom
    IDEs:
      Android Studio: 3.5 AI-191.8<IP_ADDRESS>91312
      Xcode: 10.3/10G8 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.6 => 16.8.6
      react-native: 0.59.8 => 0.59.8
    npmGlobalPackages:
      rename-horizon: 1.1.0
      react-native-cli: 2.0.1

Describe what you expected to happen:
It shouldn't scroll to new position when I add new items to list, and should keep latest position where user was like maintainVisibleContentPosition on ios
Example code:
<FlatList
  ref={(ref) => { this.chatFlatList = ref; }}
  style={styles.flatList}
  data={this.state.items}
  renderItem={this._renderItem}
  maintainVisibleContentPosition={{
     minIndexForVisible: 0,
  }}
/>

Steps To Reproduce
prepend item to list to reproduce the issue on android
Snack, code example, screenshot, or link to a repository:
here is my snack repro code. you can check it on android:
https://snack.expo.io/@nomi9995/flatlisttest

can you help me @shergin @mdvacca @davidaurelio to resolve this?
thanks

@nomi9995 sorry, I am no longer involved into RN.

@davidaurelio can you suggest any other facebook developer?

The team has changed quite a lot since I left FB. I don’t really know who the right person would be.

@chrisglein I try to make code natively. Is there dev docs because here everything is coming from com.faceboo

@nomi9995 Hi! Have you tried to make this work on android?

@sh-helen No, I didn't try I was busy on another project.

I opened a PR to address this #29466. Feel free to comment or review.

by @stackia solution, which was inherit in flat-list-mvcp
@vishalnarkhede both having issue when we try to prepend many item in the array
https://github.com/GetStream/flat-list-mvcp/issues/20

Hey everyone, I am a developer at Steuerbot and me and our frontend team are struggling with this issue for a long time, because our app needs to hold the position even if new elements were added at the top of the chat list.
For that reason we hoped an official android support for the maintainVisibleContentPosition property would be developed, but this never happened 😕
So we tried many different other approaches: Clientside-only hacks, patching RN-Core and other things. Finally we came up with a solution, which fixes the issue on our side 🚀
What did we do? We are providing our own version of the Android RN ScrollView implementation (overriding functions from the RN class). This way we can correct the scroll position based on information the JS side provides us (this works also during a "fling animation" by restarting the fling with corrected position!).
I sharing the link to our developed RN module with you; maybe this will work for your project too 😃
https://github.com/steuerbot/react-native-bidirectional-flatlist
Just give it a try. You can use it as a FlatList-Replacement. We are looking forward to your feedback!

Thanks to some help from @janicduplessis and a few other people, there's now a PR up to implement maintainVisibleContentPosition natively in the Android ScrollView: https://github.com/facebook/react-native/pull/35049

This is now available in 0.72


Add option to increase width of outline preview window

Is your feature request related to a problem? Please describe.
This doesn't look nice.
I would like to center this to my window with paddings on each corner so it looks good and i can see exactly what code I have in that function without navigating to it.
Or, at least give me an option to modify it because right now, it triggers my OCD.

Describe the solution you'd like
An option to increase the width of the floating window when previewing inside outline.
Describe alternatives you've considered
N/A
Additional context
N/A

sry that's a bug . relative win is wrong so the width not big enough.


feat: Tutorial Module 3: Try with your data!

Yesterday after eScience team meeting, it was brought up that we currently do not have any guidelines for participants that wants to bring their own data. This involves how much data can they bring and play with locally or in codespaces.

I wonder if this can be a fill in the blanks notebook with the following sections:

Import all the relevant packages
-- langchain, qdrant, our own ssec_tutorials module, etc.
Load OLMo
Data Setup
-- use code from Appendix notebooks to index your data using qdrant or upload your files to Codespace in resources/data folder
QnA Pipeline with RAG
-- either using qdrant or using the uploaded files to get relevant context


Revert "Make CodeObject.source_path an Option", just add a parameter to import_codeobj

Reverts RustPython/RustPython#1037. See https://github.com/RustPython/RustPython/pull/1037#issuecomment-504101074

Wait nevermind, I have a better idea of how to implement this.

Nevermind that actually

@palaviv I decided to go with just a parameter to import_codeobj because CodeObjects come from a lot of different sources than just script files or frozen modules (e.g. functions) and in those contexts it doesn't make sense to put the metadata in the CodeObject itself.

Look great :+1:


Fix brittle test in DistributionMailer#partner_mailer spec

Summary
I noticed that this spec fails sometimes:
  1) DistributionMailer#partner_mailer renders the body with organizations email text
     Failure/Error: <%= @default_email_text %>

     ActionView::Template::Error:
       undefined method `render' for nil:NilClass
     # ./app/views/distribution_mailer/partner_mailer.html.erb:362:in `_app_views_distribution_mailer_partner_mailer_html_erb___1443997226220791355_159780'
     # ./app/mailers/distribution_mailer.rb:18:in `partner_mailer'
     # ./spec/mailers/distribution_mailer_spec.rb:13:in `block (3 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # NoMethodError:
     #   undefined method `render' for nil:NilClass
     #   ./app/views/distribution_mailer/partner_mailer.html.erb:362:in `_app_views_distribution_mailer_partner_mailer_html_erb___1443997226220791355_159780'

Let's figure out why this happening and make this test less brittle.
Things to Consider
N/A
Criteria for Completion

This should be a bulleted list of items that, if satisfied, would result in an acceptably complete Pull Request. Be as specific as you need to be. For example:

[ ] We should know why the test fails sometimes or why it is brittle
[ ] The modified test should not fail randomly

Found a CI run where it happened https://github.com/rubyforgood/diaper/runs/1666880680?check_suite_focus=true

Found a CI run where it happened https://github.com/rubyforgood/diaper/runs/1666880680?check_suite_focus=true

Can reproduce this with rspec --seed 42491 "spec/system/sign_in_system_spec.rb" "spec/system/item_system_spec.rb" "spec/controllers/donations_controller_spec.rb" "spec/models/storage_location_spec.rb" "spec/system/diaper_drive_participant_system_spec.rb" "spec/models/account_request_spec.rb" "spec/helpers/application_helper_spec.rb" "spec/mailers/account_request_mailer_spec.rb" "spec/system/log_in_system_spec.rb" "spec/models/inventory_item_spec.rb" "spec/models/manufacturer_spec.rb" "spec/models/donation_site_spec.rb" "spec/system/admin/feedback_system_spec.rb" "spec/system/layout_system_spec.rb" "spec/requests/users_requests_spec.rb" "spec/requests/vendors_requests_spec.rb" "spec/system/vendor_system_spec.rb" "spec/mailers/distribution_mailer_spec.rb" "spec/models/diaper_drive_participant_spec.rb" "spec/models/vendor_spec.rb" "spec/services/allocate_kit_inventory_service_spec.rb" "spec/models/feedback_message_spec.rb" "spec/services/inventory_check_service_spec.rb"

Can reproduce this with rspec --seed 42491 "spec/system/sign_in_system_spec.rb" "spec/system/item_system_spec.rb" "spec/controllers/donations_controller_spec.rb" "spec/models/storage_location_spec.rb" "spec/system/diaper_drive_participant_system_spec.rb" "spec/models/account_request_spec.rb" "spec/helpers/application_helper_spec.rb" "spec/mailers/account_request_mailer_spec.rb" "spec/system/log_in_system_spec.rb" "spec/models/inventory_item_spec.rb" "spec/models/manufacturer_spec.rb" "spec/models/donation_site_spec.rb" "spec/system/admin/feedback_system_spec.rb" "spec/system/layout_system_spec.rb" "spec/requests/users_requests_spec.rb" "spec/requests/vendors_requests_spec.rb" "spec/system/vendor_system_spec.rb" "spec/mailers/distribution_mailer_spec.rb" "spec/models/diaper_drive_participant_spec.rb" "spec/models/vendor_spec.rb" "spec/services/allocate_kit_inventory_service_spec.rb" "spec/models/feedback_message_spec.rb" "spec/services/inventory_check_service_spec.rb"

TL;DR the flakiness of this test will be fixed when diaper is upgraded to Rails 6.1 thanks to https://github.com/rails/rails/commit/ef61c9c8a378b076d85be0c95cc83863c5a88401
Deeper investigation
The full stack trace when reproducing the bug locally with the rspec seed 42491
ActionView::Template::Error:
 undefined method `render' for nil:NilClass
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/lib/action_text/content.rb:91:in `to_rendered_html_with_layout'
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/lib/action_text/content.rb:95:in `to_s'
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/app/models/action_text/rich_text.rb:12:in `to_s'
# ./app/views/distribution_mailer/partner_mailer.html.erb:362:in `_app_views_distribution_mailer_partner_mailer_html_erb___4417363079344921767_138260'

default_email_text on organizations is implemented via ActionText, which creates an instance of ActionText::RichText (in a separate table action_text_rich_texts with a polymorphic association back to Organization). This model has a body attribute that is a serialized instance of ActionText::Content.
When rendering default_email_text in the mailer

render calls to_s on default_email_text
to_s is delegated to to_s on body
ActionText::Content#to_s calls to_rendered_html_with_layout
to_rendered_html_with_layout calls renderer.render .... For some reason renderer is intermittently nil (for example when running rspec with the reproducible set of tests + seed) , causing the test failure.

Given this finding, I searched through rails issues for a similar culprit and found https://github.com/rails/rails/issues/40757. I'm not sure if diaper's rspec is running in multiple threads, but I patched my local rails with similar changes (the changes are not exactly the same because Rails 6.1 implementation of ActionText has slightly diverged from Rails <IP_ADDRESS>) to https://github.com/rails/rails/commit/ef61c9c8a378b076d85be0c95cc83863c5a88401 (i.e. using a cattr_accessor for a default_renderer, then ||ing that with the thread specific renderer in case it wasn't initialized) and it fixed the spec. So I think once diaper is upgraded to Rails 6.1 (which includes that fix), this test will be fixed.

TL;DR the flakiness of this test will be fixed when diaper is upgraded to Rails 6.1 thanks to https://github.com/rails/rails/commit/ef61c9c8a378b076d85be0c95cc83863c5a88401
Deeper investigation
The full stack trace when reproducing the bug locally with the rspec seed 42491
ActionView::Template::Error:
 undefined method `render' for nil:NilClass
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/lib/action_text/content.rb:91:in `to_rendered_html_with_layout'
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/lib/action_text/content.rb:95:in `to_s'
# /gems/ruby-2.7.2/gems/actiontext-<IP_ADDRESS>/app/models/action_text/rich_text.rb:12:in `to_s'
# ./app/views/distribution_mailer/partner_mailer.html.erb:362:in `_app_views_distribution_mailer_partner_mailer_html_erb___4417363079344921767_138260'

default_email_text on organizations is implemented via ActionText, which creates an instance of ActionText::RichText (in a separate table action_text_rich_texts with a polymorphic association back to Organization). This model has a body attribute that is a serialized instance of ActionText::Content.
When rendering default_email_text in the mailer

render calls to_s on default_email_text
to_s is delegated to to_s on body
ActionText::Content#to_s calls to_rendered_html_with_layout
to_rendered_html_with_layout calls renderer.render .... For some reason renderer is intermittently nil (for example when running rspec with the reproducible set of tests + seed) , causing the test failure.

Given this finding, I searched through rails issues for a similar culprit and found https://github.com/rails/rails/issues/40757. I'm not sure if diaper's rspec is running in multiple threads, but I patched my local rails with similar changes (the changes are not exactly the same because Rails 6.1 implementation of ActionText has slightly diverged from Rails <IP_ADDRESS>) to https://github.com/rails/rails/commit/ef61c9c8a378b076d85be0c95cc83863c5a88401 (i.e. using a cattr_accessor for a default_renderer, then ||ing that with the thread specific renderer in case it wasn't initialized) and it fixed the spec. So I think once diaper is upgraded to Rails 6.1 (which includes that fix), this test will be fixed.

Ran into this again here https://github.com/rubyforgood/diaper/runs/2092879411?check_suite_focus=true

This should be fixed with the rails upgrade, so I'm closing this.


FIxes an issue where Duplicate profiles appearing in Starter Pack user selection

Seems to solve the issue...
https://github.com/user-attachments/assets/65812e5d-94fd-4fcb-b949-0f3d0b063425
PS: not sure if this should be handled on the clients device, but it's a quick fix.

fixed the issue I've created here
https://github.com/bluesky-social/social-app/issues/6850


Hopefully fixed issue Wind mentioned

(https://discordapp.com/channels/548410604679856151/718084746693050459/749631889484152862)

This will not stop the command from sending to the server as the message is sent to a server on lines [50, 56, and 61]


[Bug] Paddy issue after sketch 49 update

Bug report
Hi I have an unusual issue with the plugin after sketch new 49 update
Expected behavior:
Expected behavior should be paddings needs to apply soon after change txt content.
Actual behavior:
But after the update its wont work :|

Same here - nothing happens after text change :(

If you restart Sketch it works, but I believe it's a bug..

Hey @chanakairugal. Are you able to confirm if it works now after restarting Sketch?

Yep its work after restart Sketch mate

Hi @DWilliames,
Did you fixed that :) awesome...


OES Template Plugin

Repository URL
https://github.com/opsbox-dev/oes-template-plugin
New Repository Name
oes-template-plugin
Description
OES Template plugin is a simple implementation of the pipeline template to help user simplify job configuration.
GitHub users to have commit permission
@seanly
Jenkins project users to have release permission
seanly
Issue tracker
GitHub issues

/hosting re-check

cc @Wadeck

You're missing the plugin description file (src/main/resources/index.jelly) that is shown in the plugin manager:
e.g. https://github.com/jenkinsci/dark-theme-plugin/blob/master/src/main/resources/index.jelly
https://github.com/opsbox-dev/oes-template-plugin/tree/master/src/main/resources

thanks @timja and @Wadeck , I have added plugin description file.

Due to the feature it proposes, it will require deep audit. Tracked internally as JENSEC-1837. Due to the other security audits / corrections we are currently on, I cannot promise a very short ETA.

Hi @seanly,
Here's some feedback for you:

RCE in AttributeInjector.java#L62. We've tested it with a slightly tweaked version of jordyv/poc-snakeyaml.

A known way to remediate the problem is to use new Yaml(new SafeConstructor()) instead of no-arg constructor.

Vulnerable dependency: com.google.guava:guava (CVE-2018-10237, CVE-2020-8908).

It doesn't seem to have any impact on the plugin though. There's a single usage of guava here: AttributeInjector.java#L46, which can easily be replaced by non-guava code. So we'd recommend to do that and get rid of the dependency completely.

Please address our findings and let us know when you're done or if you have any questions.

FTR https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/#currently-recommended-versions (the hosting checker seems to be a bit too permissive there).
Also, I recommend aligning the BOM version and the core dependency.

It has been modified, commit log:  https://github.com/opsbox-dev/oes-template-plugin/commit/dc878d1a99168ab308b238475f21de66d938c12e

Hi @seanly,
Here's some feedback for you:

RCE in AttributeInjector.java#L62. We've tested it with a slightly tweaked version of jordyv/poc-snakeyaml.

A known way to remediate the problem is to use new Yaml(new SafeConstructor()) instead of no-arg constructor.

Vulnerable dependency: com.google.guava:guava (CVE-2018-10237, CVE-2020-8908).

It doesn't seem to have any impact on the plugin though. There's a single usage of guava here: AttributeInjector.java#L46, which can easily be replaced by non-guava code. So we'd recommend to do that and get rid of the dependency completely.
Please address our findings and let us know when you're done or if you have any questions.

@yaroslavafenkin FYI

Re-checked, issue is fixed. Dependencies also look good now 👍


Add documentation for Enum

What is the issue?
https://github.com/dagger/dagger/pull/7498 has been merged and released for 0.12, now we need to add some docs :D

An interesting property I ran into with the Python SDK and getting help on my functions is that the Enum description is used as the argument description if I'm not using typing.Annotated and dagger.Doc.
Piggy-backing off of the blogpost, now I don't need to write:
@dagger.function
    async def scan(self, severity: Annotated[Severity, Doc('Vulnerability severity levels')]) -> str:

That description will be automatically picked up from the Enum description, so it's enough to do:
@dagger.function
    async def scan(self, severity: Severity) -> str:

It's a cool feature that might be worth a mention!


Use the --yes flag in guides

Coverage remained the same at 96.067% when pulling 68aea7916c16d01ba53a0c2044defa466f8238ab on yes into 2e6c88d2593e06a3f263ae1fadae54dd6b46949e on master.


chore(deps): update dependency @babel/core to v7.18.5

This PR contains the following updates:

Package
Type
Update
Change

@babel/core (source)
devDependencies
patch
7.18.2 -> 7.18.5

Release Notes

babel/babel
v7.18.5
Compare Source
:bug: Bug Fix

babel-plugin-transform-new-target

#14611 fix: new.target with shadowed class name (@liuxingbaoyu)

babel-plugin-transform-modules-systemjs

#14655 Fix named destructuring exports (@underfin)

:memo: Documentation

#14332 docs: eslint-parser requireConfigFile behaviour (@JLHwung)
#14619 Move v7 prereleases changelog to a separate file (@nicolo-ribaudo)

:house: Internal

babel-traverse

#14649 Rely on the call stack to clean up cache in _guessExecutionStatusRelativeTo (@nicolo-ribaudo)

babel-core

#14641 Change limit of source map 3MB (@vasicvuk)

Other

#14627 Speedup e2e test on github (@liuxingbaoyu)
#14248 chore: automate compat-data update (@tony-go)

babel-parser

#14592 feat: Automatically generate test results that do not exist (@liuxingbaoyu)

:running_woman: Performance

babel-traverse

#14617 Fix _guessExecutionStatusRelativeToDifferentFunctions perf (@liuxingbaoyu)

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 is behind base branch, 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, click this checkbox.

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (7.18.5). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


random_mod can take a very long time

https://github.com/RustCrypto/utils/blob/710abc8c83a13def1c01958909405976f915e5a5/crypto-bigint/src/uint/rand.rs#L34-L42
If modulus is small compared to the full size ("number of limbs * size of limb") then it can take "forever".
The correct method is to mask off the top bits of the random number to match the size of modulus. This leads to a worst case of a 50% chance of failing and needing to generate another random number. The average for this worst case is needing to generate 2 random numbers.

Regarding a non-zero modulus, we recently added a NonZero wrapper (#13) which can ensure the modulus is non-zero at the type level, although switching to it would be a breaking change.
It might be good to make some breaking changes soon though and release a v0.3.

P.S. That modulo can take a very long time and literally forever if used for after multiply. While also not being time constant (leaks x from x*divisor+remainder, but in the case of random x is worthless).


Statbox regression tests

Added tests to validate functionality of the statbox widget.

/ok-to-test

@NandanAnantharamu - Please review & comment as needed.

@NandanAnantharamu - Please review & comment as needed.

Sure will do

/ci-test-limit

/ci-test-limit

/ok-to-test

Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/6529142995. Commit: ``. Cypress dashboard:  Click here! The following are new failures, please fix them before merging the PR:

cypress/e2e/Regression/ClientSide/Refactoring/Refactoring_spec.ts
cypress/e2e/Regression/ClientSide/Widgets/DocumentViewer/DocumentViewer_spec.ts
cypress/e2e/Regression/ClientSide/Widgets/RTE/RichTextEditor3_spec.ts
cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Selected_row_spec.js
cypress/e2e/Regression/ClientSide/Widgets/TableV2/TableV2_Widget_Derived_Column_Computed_value_spec.js
cypress/e2e/Regression/ClientSide/Widgets/Video/Video2_Spec.ts
cypress/e2e/Regression/ServerSide/ApiTests/API_All_Verb_spec.js
cypress/e2e/Regression/ServerSide/OnLoadTests/JSOnLoad2_Spec.ts

To know the list of identified flaky tests - Refer here

Looks like Empty toast failures. Please re-run & we can merge once all tests passed.


rustversion::before(date) matches stable version

Building the following:
#[rustversion::before(2020-01-01)]
fn main() {
    println!("Hello, world!");
}

fails as expected with recent nightlies (because of the missing main function in that case) but compiles just fine with 1.51.0.
since() is limited to nightlies. It seems before() should too.

I think this is because #[rustversion::before(...) is defined as "Negative of #[rustversion::since(...)].", and  #[rustversion::since(<some-nightly-version>)] is defined as "True on that nightly and all newer ones". That would mean that even newer stables than that nightly would not match.
If this is an intentional design decision by @dtolnay, what you want seems to be achieved by #[rustversion::all(nightly, before(2020-01-01))]


Add doc about Presto SDK for Dora

Add doc about Presto SDK for Dora

@JiamingMai Is this document related to how to use Presto access Dora LocalCache or Dora Cluster?

alluxio-bot, merge this please

@maobaolong the usage of Presto SDK with dora should be similar to before Presto + Alluxio system cache but with the following two diff:

Require dora configurations (the same configuration as launching the dora cluster)
new presto SDK supports full UFS URL and supports clientside ufs fallback


Make "search tips" link more prominent (from 1949)

Problem Description: The link for search tip is not very visible where it lives on the homepage given the light nature of the font.
Expected Behavior: Change the font weight to match the text in the Advanced Search button (1rem, weight is 400) and also add the link to the header.
UAT: Compare TST and DEV

https://lux-front-tst.collections.yale.edu/

https://lux.collections.yale.edu/

[x] Mock of Search Bar and Header

Current Design:

Approved per UAT

deployed


methods(Base.show) is broken although our Base.show is commented out

after commenting out our magic around Base.show, methods(Base.show) is still broken
methods(Base.show) works, but
using Mill
methods(Base.show)

is broken

false alarm, I didn't restart Julia after commenting it out

Caused by https://github.com/FluxML/Zygote.jl/issues/808

Solved, both packages have fixes incorporated. @Sheemon7  does it make sense to have lower bound to Flux 0.11.2 and Zygote 0.5.10?

Sure, go on 👍


Dead links

this link does not work anymore

https://unoyunodiez.com/2015/09/07/modern-mobile-web-development-breaking-the-rules-beating-delays-improving-responsiveness-and-performance-ii/  at line 313

this link is timing out at the moment

https://blog.getchop.io/designing-for-accidental-disconnects-our-first-attempt-at-an-offline-approach-2ac0bdb6d170#.i8odfrxxs at line 61

Fixed.


Fix Autoconfiguration Errors to repair Travis Build

This fixes minor errors with Spring Cloud GCP autoconfiguration to repair the travis build.

Ooh, I missed the named Jwt.

Ya tricky, Don't sweat it; there was no way to know unless the config sample test got run.


Shorter row count threshold of parallel

There is a hard-coded 1 million row counts threshold of Parallel, which is not friendly for distributed computing engines to generate data in parallel.
https://github.com/trinodb/tpcds/blob/8a02abbba864feedc2afd078c8153d66a95bb2d4/src/main/java/io/trino/tpcds/Parallel.java#L26-L36
For example, in Spark, generate tpcds.sf1.web_sales in single thread cost 23s.

WDYT to set the threshold to 1k or 10k instead of 1m?

cc @ebyhr


Getting "the trait bound proc_macro2::Span: From<proc_macro::Span> is not satisfied" error when building

Describe the bug
I have a project in which one of the dependencies is using swc and swc_commons crates, when I run cargo build --release I get the following error:
sh-4.2# cargo build --release
    Updating git repository `https://github.com/swc-project/swc`
    Updating git submodule `https://github.com/tc39/test262-parser-tests.git`
   Compiling serde_derive v1.0.132
   Compiling tracing-attributes v0.1.18
   Compiling thiserror-impl v1.0.30
   Compiling proc-macro-error v1.0.4
error[E0277]: the trait bound `proc_macro2::Span: From<proc_macro::Span>` is not satisfied
   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro-error-1.0.4/src/lib.rs:549:37
    |
549 |                 first: self.clone().into(),
    |                                     ^^^^ the trait `From<proc_macro::Span>` is not implemented for `proc_macro2::Span`
    |
    = note: required because of the requirements on the impl of `Into<proc_macro2::Span>` for `proc_macro::Span`

error[E0277]: the trait bound `proc_macro2::Span: From<proc_macro::Span>` is not satisfied
   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro-error-1.0.4/src/lib.rs:550:36
    |
550 |                 last: self.clone().into(),
    |                                    ^^^^ the trait `From<proc_macro::Span>` is not implemented for `proc_macro2::Span`
    |
    = note: required because of the requirements on the impl of `Into<proc_macro2::Span>` for `proc_macro::Span`

This is happening both on MacOS and Centos (Linux)
System info:
CentOS Linux release 7.9.2009 (Core)
cargo 1.57.0 (b2e52d7ca 2021-10-21)
rustc 1.57.0 (f1edd0429 2021-11-29)
proc-macro-error v1.0.4
My project's Cargo.toml looks like this (masked some information with *** for security/privacy reasons)
[package]

name = "***"
version = "1.0.0"
authors = ***
edition = "2021"

[lib]
crate_type = ["cdylib"]
path = "src/lib.rs"

[dependencies]
anyhow = "1.0.42"
wee_alloc = { version = "0.4.5", optional = true }
once_cell = "1.3.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
swc = { git = "https://github.com/swc-project/swc", rev = "726fc696" }
swc_common = { git = "https://github.com/swc-project/swc", rev = "726fc696" }
jni = "0.19.0"

[features]
default = ["wee_alloc"]

Previously, my project was using swc and swc_common rev = "9c620476" and it was building just fine, but bumping it to rev = "726fc696" throws the described error. I have also filed this bug with proc-macro-error in case this is an issue with the lib.
Thanks!
Input code
No response
Config
No response
Playground link
No response
Expected behavior
Cargo should build the release target just fine.
Version
726fc696
Additional context
No response

This is not an error of swc

For anyone else experiencing this, I was able to workaround the issue by doing:

rustup update
rustup default nightly
cargo build --release


Create & Edit page cancel button navigation loop

Package
filament/filament
Package Version
v3.2.34
Laravel Version
v10.10
Livewire Version
No response
PHP Version
8.3.3
Problem description
After creating record, user redirected to edit page, if user click Cancel button on edit page, it will redirect to create page, and if user click Cancel button again, it will go back to edit page and so on.
It seems to be caused by #4430, the current behavior is nice as it allows you to go back to custom page, but this seem doesn't work on this scenario. I think using JavaScript window.history.go(-1) would allow current behavior while fixing this bug, but I'm not quite sure.
Expected behavior
Current: Edit page -> Create page -> .... -> Edit page -> Create page
Expected: Edit page -> Create page -> List page
Steps to reproduce
wget https://filament-issue.unitedbycode.com/storage/filament-issue.zip
unzip filament-issue.zip
php artisan make:filament-resource -G User
php artisan serve

Open Dashboard
Go to "Users"
Click "New user" button
Fill out the form & create
Now it should be on Edit page, click "Cancel" button
Now on Create page, click "Cancel" button once more
We back on Edit page

https://github.com/filamentphp/filament/assets/77704356/580c88d0-1d09-46eb-8454-cafaaa05990e
Reproduction repository
https://github.com/Ticlext-Altihaf/filament-issues-previous-url-loop
Relevant log output
No response

Fixed by #11773.

@danharrin Hi. I have same problem. The Cancel button only scrolls to the top and changes the url. And only after a few clicks it returns to the list page
Filament v3.2.112
https://github.com/user-attachments/assets/f4f31989-e3b9-45a8-9d37-8b60d0fb3d08

Still


[release-1.9] Fix pushqueue memory leak

This is an automated cherry-pick of #35166

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test lint_istio_release-1.9

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

@istio-testing: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test lint_istio_release-1.9

unit-tests_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test unit-tests_istio_release-1.9

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

@istio-testing: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

lint_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test lint_istio_release-1.9

unit-tests_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test unit-tests_istio_release-1.9

integ-security-multicluster-tests_istio_release-1.9
90c27f7b7f42d3b404eccc5669b989ea4c8492a3
link
/test integ-security-multicluster-tests_istio_release-1.9

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

@googlebot I consent.

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster-tests_istio_release-1.9
9c54296027a9642de9651f06b3b9d3422b64a50d
link
false
/test integ-security-multicluster-tests_istio_release-1.9

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


display informational version number in header if available

Do not display the whole four deciamals of the version number, if an iformational product version is available.

The informational version will be used if the assembly provides one...


Variables added in vscode.window.createTerminal are not included in the environment if shell integration is turned on

In a sample extension, add vscode.window.createTerminal({ env: { HELLO: 'world' } }).show();
Trigger that
Run echo $HELLO and notice the environment wasn't set

This also breaks the JS Debug Terminal and the node-terminal debug type. I hit this on zshell on OSX with shell integration turned on

env is missing from the slc when shell integration is enabled

it's on the processLaunchOptions instead

Hi,
I had a similar regression on our internal extension that open a terminal with preconfigured environement


Silence git errors when getting version

Prevents the "fatal: not a git repository" message when building from a zip

me: people use repository zips?
also me: OOOH releases!
Thank you!


Unexpected value

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

Release with the issue:
Latest
Last working release (if known):
Unknown
Browser and Operating System:
RPi 4
Latest Home Assistant in Docker
Description of problem:
All cards have the following:

Javascript errors shown in the web inspector (if applicable):
none
Additional information:
Did a git-pull on all the pis for the related MQTT daemon

Thanks for reporting this.
Yes, this latest release is a work in progress as there are underlying issues with the libraries that I'm trying to track down.
If you take a look at the release notes https://github.com/ironsheep/lovelace-rpi-monitor-card/releases/tag/v1.3.0
you will see that I'm asking for anyone seeing the "{unexpected value}..." to check the browser development tools console log report back what values your cards are getting.   I appreciate all help you can provide.
I'm continuing to chase the underlying crashes until I find a fix. You may see a number of updates to this card and to the MQTT Daemon while I get this all sorted out.

I have none of those messages in my console:

Only an error which doesn't say what origin it has.

Wait, update:
 HCUTE (DBG) (Jewel) card_timestamp_value=[NaN-NaN-NaN] [rpi-monitor-card.js:218:3908](https://homassistant.local/hacsfiles/lovelace-rpi-monitor-card/rpi-monitor-card.js)

And:
Uncaught (in promise) TypeError: can't access property "data", this._$AA.nextSibling is null
    g rpi-monitor-card.js:31
    _$AI rpi-monitor-card.js:31
    p rpi-monitor-card.js:31
    $ rpi-monitor-card.js:31
    _$AI rpi-monitor-card.js:31
    k rpi-monitor-card.js:31
    _$AI rpi-monitor-card.js:31
    p rpi-monitor-card.js:31
    $ rpi-monitor-card.js:31
    _$AI rpi-monitor-card.js:31
    Do rpi-monitor-card.js:37
    update rpi-monitor-card.js:37
    performUpdate rpi-monitor-card.js:25
    scheduleUpdate rpi-monitor-card.js:25
    _$Ej rpi-monitor-card.js:25
    requestUpdate rpi-monitor-card.js:25
    set rpi-monitor-card.js:25
    value hui-masonry-view.ts:357
    value hui-masonry-view.ts:357
    performUpdate app.98f1a6e8.js:1513
    scheduleUpdate app.98f1a6e8.js:1513
    _$Ej app.98f1a6e8.js:1513
    requestUpdate app.98f1a6e8.js:1513
    set app.98f1a6e8.js:1513
    value hui-root.ts:548
    _$AE app.98f1a6e8.js:1513
    performUpdate app.98f1a6e8.js:1513
    scheduleUpdate app.98f1a6e8.js:1513
    _$Ej app.98f1a6e8.js:1513
    requestUpdate app.98f1a6e8.js:1513
    set app.98f1a6e8.js:1513
    j app.98f1a6e8.js:1513
    _$AI app.98f1a6e8.js:1513
    p app.98f1a6e8.js:1513
    $ app.98f1a6e8.js:1513
    _$AI app.98f1a6e8.js:1513
    j app.98f1a6e8.js:1513
    update app.98f1a6e8.js:1513
    performUpdate app.98f1a6e8.js:1513
    scheduleUpdate app.98f1a6e8.js:1513
    _$Ej app.98f1a6e8.js:1513
    requestUpdate app.98f1a6e8.js:1513
    set app.98f1a6e8.js:1513
    value app-drawer-layout.js:189
    value hass-loading-screen.ts:84
    performUpdate app.98f1a6e8.js:1513
    scheduleUpdate app.98f1a6e8.js:1513
    _$Ej app.98f1a6e8.js:1513
    requestUpdate app.98f1a6e8.js:1513
rpi-monitor-card.js:31:4892

Replaced the timer calculation routine with my own.  Let's see if this clears this up.

Fixes committed (failing code replaced with new mech.) Fixes appear in v1.3.2 and later.


Noob issue : OBSKorgNanokontrol2 crashing on start

This may be a total noob issue but upon starting system I get following issue
[13:42:56.203] (Status) Loading Bindings...
[13:42:56.231] (Status) Connecting to websocket...
[13:42:56.301] (Status) Setting up audio (This might take a while)...
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at nanoKontrol2OBS.Kontrol2OBS.SetupAudio()
at nanoKontrol2OBS.Kontrol2OBS.Create()
at ConsoleExecutable.Executable..ctor(String url, String password)
at ConsoleExecutable.Executable.Main(String[] args)
Can you please assist?

I already have an idea what is going on...
Would you be able to replace the .dll I attached and post the log from that as well?
nanoKontrol2OBS.zip

Looks like same issue mate.
[20:57:55.593] (Status) Loading Bindings...
[20:57:55.619] (Status) Connecting to websocket...
[20:57:55.691] (Status) Setting up audio (This might take a while)...
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at nanoKontrol2OBS.Kontrol2OBS.SetupAudio()
at nanoKontrol2OBS.Kontrol2OBS.Create()
at ConsoleExecutable.Executable..ctor(String url, String password)
at ConsoleExecutable.Executable.Main(String[] args)

Okay, that is weird. I now added a bunch of debugging Console.WriteLines...
If you want to go ahead and replace that file for me again :)
nanoKontrol2OBS.zip
There are only three arrays per-se in that method, so i am not sure anymore what is causing the issue...

Similar output mate...
[12:35:16.191] (Status) Loading Bindings...
[12:35:16.225] (Status) Connecting to websocket...
[12:35:16.323] (Status) Setting up audio (This might take a while)...
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at nanoKontrol2OBS.Kontrol2OBS.SetupAudio()
at nanoKontrol2OBS.Kontrol2OBS.Create()
at ConsoleExecutable.Executable..ctor(String url, String password)
at ConsoleExecutable.Executable.Main(String[] args)

Okay that is like literally not possible, because the first Line of that Method is:
private void SetupAudio()         {             this.LogInfo("Test starting here:");

You definitely replaced the old nanoKontrol2OBS.dll with the new one?

Let me download again and make sure

The file you have linked to is dated 10/06, can you share updated link?

nanoKontrol2OBS.zip
Well that solves the issue... Had the old repo location

much better...
[17:13:3.66] (Status) Loading Bindings...
[17:13:3.96] (Status) Connecting to websocket...
[17:13:3.170] (Status) Setting up audio (This might take a while)...
[17:13:3.173] (Info) Test starting here:
[17:13:3.179] (Info) SpecialSource-Name: Desktop Audio
[17:13:3.179] (Info) SpecialSource-Name:
[17:13:3.179] (Info) SpecialSource-Name: Yeti Mic
[17:13:3.180] (Info) SpecialSource-Name: Wireless Mic
[17:13:3.180] (Info) SpecialSource-Name:
[17:13:3.183] (Info) Connected: Wireless Mic
[17:13:3.183] (Info) Connected: Yeti Mic
[17:13:3.183] (Info) Connected: Desktop Audio
[17:13:3.210] (Info) PID Desktop Audio default
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at nanoKontrol2OBS.Kontrol2OBS.SetupAudio()
at nanoKontrol2OBS.Kontrol2OBS.Create()
at ConsoleExecutable.Executable..ctor(String url, String password)
at ConsoleExecutable.Executable.Main(String[] args)

[17:13:3.210] (Info) PID Desktop Audio default
There we go, default should be a PID of an audio device, you do not have a specific source set as desktop-audio device correct?

That fixed it.  It was set to Default in OBS, I changed it to the currently used Audio out.  I had it set to default so it would pick between VR headset output and my monitor speakers depending on what I was using.
Glad we found the problem.  Thanks for your efforts :)

Sure no problem, thanks for pointing out that this is a thing...


[Bug] The function array_intersect query result is incorrect

Search before asking

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

Version
1.2.3/1.2.4/1.2.6
What's Wrong?
use doristest;
create table array_except_table(k1 INT, k2 Array,k3 Array,k4 Array,k5 Array,k6 Array,k7 Array,k8 Array,k9 Array,k10 Array,k11 Array,k12 Array,k13 Array,k14 Array,k15 Array<varchar(128)>,k16 Array,k17 Array,k18 Array,k19 Array) duplicate key (k1) distributed by hash(k1) buckets 1 properties('replication_num' = '1');
insert into array_except_table values (1,[1,2,3], [2,4,5],[1,null,3],[1,3,5],[2200000000,-2200000000],[555,888],[1.1, 2.1, 3.44],[2.1, 3.4, 5.4],["2023-07-01","2023-07-07"],["2023-07-08","2023-07-09"],["2023-07-01 12:00:00","2023-07-07 16:00:00"],["2023-07-05 12:00:00","2023-07-08 16:00:00"],["1","2"],['hello', 'world', 'c++'],['I', 'am', 'c++'],[1.1, 2.1, 3.44],[2.1, 3.4, 5.4],[true,false]), (2,[2,3], [1,5],[null,null,2],[2,null,4],[2200000000,-2200000000],[555,888],[NULL, 2, 5],[NULL, NULL, 5.4],["2023-07-01","2023-07-07"],["2023-07-08","2023-07-09"],["2023-07-01 12:00:00","2023-07-07 16:00:00"],["2023-07-05 12:00:00","2023-07-08 16:00:00"],["1","2"],['a1', 'equals', 'b1'],['a2', 'equals', 'b2'],[NULL, 2, 5],[NULL, NULL, 5.4],[true,false]), (3,[1,1,1], [2,2,2],null,[1,2,3],[2200000000,-2200000000],[555,888],[1, NULL, 2, 5],[1, 3.1, 5.4],["2023-07-01","2023-07-07"],["2023-07-08","2023-07-09"],["2023-07-01 12:00:00","2023-07-07 16:00:00"],["2023-07-05 12:00:00","2023-07-08 16:00:00"],["1","2"],['hasnull', NULL, 'value'],['nohasnull', 'nonull', 'value'],[1, NULL, 2, 5],[1, 3.1, 5.4],[true,false]), (4,[1,1,2], [1,2,3],[1,2,2],[2,1,3],[2200000000,-2200000000],[555,888],[1.1,1.1,-2.3,-2.3],[-2.3],["2023-07-01","2023-07-07"],["2023-07-08","2023-07-09"],["2023-07-01 12:00:00","2023-07-07 16:00:00"],["2023-07-05 12:00:00","2023-07-08 16:00:00"],["1","2"],['hasnull', NULL, 'value'],['hasnull', NULL, 'value'],[128.58,3.14,128.58,3.14],[128.58,3.14],[true,false];
select k1,k15,k16,array_intersect(k15,k16) from array_except_table;

What You Expected?

How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?

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

Code of Conduct

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

We will fix the error in the documentation。


⚠ Heritage of Faith Christian Church - Gold Coast has degraded performance

In 81b14da, Heritage of Faith Christian Church - Gold Coast (https://heritageoffaith.com.au) experienced degraded performance:

HTTP code: 200
Response time: 21344 ms

Resolved: Heritage of Faith Christian Church - Gold Coast performance has improved in 426c350.


Fix spelling and apply style guidelines

Description of the change:

Fix general spelling mistakes
Fix SendGrid typos
Fix GitHub typos
Apply some style guidelines (including to the style guide itself :)

Reason for the change:
It's easier to read and looks better and is more consistent.

 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.

woah @hugovk!!! thanks for this!

can you please sign our CLA?

 CLA already signed.

@hugovk - thanks for the offer of splitting it out! we just got a little behind this week - merging this very soon!

@hugovk - did you do this all by hand, or do you have some sort of script you used?

Hello @hugovk,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX

@ksigler7 For the spelling, I used codespell to identify and help fix. I used it like:
codespell ---quiet-level 2 --interactive 3 --write-changes

Where: the 2 is to disable warnings about binary files, and 3 is to be asked for confirmation, and to choose the fix when more than one is available.
The typos and style guide were applied by hand, and using PyCharm's to search for a certain thing in all files.

@hugovk - thanks for sharing your process!!

 Codespell is useful because it searches for common misspellings in code, rather than searching for all sorts of misspellings (say, like MS Word), which for code tends to turn up lots of false positives.