[FEAT]: Product Listing API Endpoint

Description
Implement an API endpoint to list products with filtering and pagination.
Acceptance Criteria

[ ] Endpoint: The endpoint should be accessible at /api/v1/products

[ ] HTTP Method: The endpoint should accept HTTP GET requests

[ ] Authentication

The endpoint should be secured to ensure that only authenticated users can access product listings.
Proper authentication mechanisms should be implemented.
Requests to the endpoint must include a valid authentication token in the Authorization header.
Example:Authorization: Bearer <token>

Query Parameters:

The endpoint should accept the following query parameters for filtering and pagination:

search (string, optional): Search term to filter products by name, description, category, or tags.
category (string, optional): Filter products by category.
page (integer, optional): Page number for pagination.
limit (integer, optional): Number of results per page.

Example Request:
GET /api/v1/products?search=keyword&category=electronics&page=1&limit=10

Response:

Success (200 OK):

The response should include an array of products matching the search and pagination criteria.

Each product object should include:

id: The ID of the product.
name: The name of the product.
description: The description of the product.
category: The category of the product.
price: The price of the product.
tags: An array of tags associated with the product.

Example:
{
  "products": [
    {
      "id": 1,
      "name": "Product Name",
      "description": "Product Description",
      "category": "Electronics",
      "price": 19.99,
      "tags": ["tag1", "tag2"]
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 10
}

Error:

401 Unauthorized: If the request does not include a valid authentication token, the response should include:{
  "status_code": 401,
  "message": "Authentication required",
  "error": "Unauthorized"
}

500 Internal Server Error: If an unexpected error occurs on the server side, the response should include:{
  "status_code": 500,
  "error": "Internal Server Error",
  "message": "An unexpected error occurred. Please try again later."
}

Purpose
Provides a backend service to list products based on various criteria, enhancing product discovery and search capabilities for users.
Requirements

Develop server-side logic to handle product listing based on search and pagination.
Implement filtering and sorting based on product attributes.
Secure the endpoint with proper authentication mechanisms.
Ensure compliance with security standards for data handling.

Expected Outcome

The API endpoint allows authenticated users to retrieve products based on search, category, and pagination.
The response includes a list of products that match the specified criteria.

Testing

Write unit tests for backend filtering and pagination logic.
Write integration tests for end-to-end product listing scenarios.
Test various scenarios, including different combinations of search parameters and pagination.

Example Request
GET /api/v1/products?search=keyword&category=electronics&page=1&limit=10
Authorization: Bearer <token>

Example Response

Success (200 OK):

{
  "products": [
    {
      "id": 1,
      "name": "Product Name",
      "description": "Product Description",
      "category": "Electronics",
      "price": 19.99,
      "tags": ["tag1", "tag2"]
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 10
}

Error (401 Unauthorized):

{
  "status_code": 401,
  "message": "Authentication required",
  "error": "Unauthorized"
}

Error (500 Internal Server Error):

{
  "status_code": 500,
  "error": "Internal Server Error",
  "message": "An unexpected error occurred. Please try again later."
}

updated my endpoint

Confirm that this is not a duplicate

Yes it's not a duplicate

It's a duplicate, check the list product issue

@EAZYLINK and @sethdanny, it is a duplicate.


Mysterious type inference changes break safe stack apps

A recent change in type inference (probably related to SRTPs) breaks all safe stack apps that use task {}
Original report: https://github.com/SAFE-Stack/SAFE-BookStore/issues/283
Repro steps
I tried to create a repro here see #4285 but that did not work. But repro is working on bookstore https://github.com/SAFE-Stack/SAFE-BookStore/pull/293
Expected behavior
No further type hints needed
Actual behavior
We need a lot of new type annotations to make it compile
Known workarounds
Adding type hints

I wasn't aware of such a bug. Sounds worse I hope we know soon what the cause is.

@forki To repro I should use forki-patch-3?

yes. sorry I don't have better repro yet.

I'll take a look

@forki Is this the same issue as https://github.com/giraffe-fsharp/Giraffe/issues/222#event-1466357588?

no that one was different and is solved by opening correct namespace. forki-patch-3 already has all namespaces correctly opened and would work against .net cli 2.1.3 - only the update to 2.1.300-preview1-008009 makes it break.
you should be able to repro by running "build.cmd run" on that branch

@forki I've confirmed that https://github.com/Microsoft/visualfsharp/issues/4343 is indeed the cause of this change in behaviour.
This is difficult, as that PR was itself a reversion of a change which @gusty reports as causing a regression.  We thought that the change was innocuous but it seems the kind of inline/SRTP/object-programming code in TaskBuilder.fs has picked up a dependency on the interim behaviour.
By far the best interim solution would be to simplify TaskBuilder.fs so it doesn't depend on this kind of subtlety and works with or without the change in https://github.com/Microsoft/visualfsharp/issues/4343

I think if this really caused a regression then trying the code in F# previous to 4.1 should also fail.
Is there a minimal repro snippet?

I think @rspeele and @gerardtoconnor are the experts when it comes to the task { } - I'm not sure if / how to rewrite it.

I agree with @dsyme  in that it might be worth fixing the taskbuilder code instead.
I can give it a try, if you send me a repro.

@gusty repro is described above. that's all I have

@gusty I'll work on a minimal repro, we'll need it to pin down behaviour either way.
Status:

PR #4173 definitely caused a change in behaviour - I've tried the before-and-after.

Questions:

Are we 100% sure that #4173 was a clean revert of #1650?
Also, you mention #3366  in the description of #4173.  Is the idea that #4173 reverts both #1650 and #3366?

I think if this really caused a regression then trying the code in F# previous to 4.1 should also fail.

We can try to verify this.  It's plausible as the TaskBuilder.fs code is using SRTP very extensively in a way I wasn't seeing prior to 4.1

Are we 100% sure that #4173 was a clean revert of #1650?

I can double check it, but I remember I did it very carefully.

Also, you mention #3366 in the description of #4173. Is the idea that #4173 reverts both #1650 and #3366?

Yes, it reverts also #3366 which was a case not handled in #1650 so now it's not needed.

We can try to verify this. It's plausible as the TaskBuilder.fs code is using SRTP very extensively in a way I wasn't seeing prior to 4.1

Another possibility is to fix the root cause of the issue with the taskbuilder code. I mean #1650 is wrong, now I'm sure about it, because the reasoning behind it was wrong, but that doesn't mean that it could have accidentally workaround an existing bug (there are many), if that's the case, we should attack that specific bug instead. So the main question here is, regardless of the status of the F# compiler, is the taskbuilder code correct? Should it compile? (I'm having a look at it right now)

@gusty Yes. However in terms of public releases it may make sense to undo #4173 (i.e. reapply #1650 and #3366) until we've done a full investigation and we have full agreement about root cause, impact of changes etc.  #1650 and #3366 are already out in the wild in F# 4.1 and .NET SDK 4.1.  Perhaps #1650 is "wrong", but we need to more deeply understand why and what impact undoing will have.
BTW the repro is simple, just compile this against the latest TaskBuilder.fs, e.g. I used https://github.com/rspeele/TaskBuilder.fs/blob/8aec0ecc259bb936dc0b882730592d3649641c5b/TaskBuilder.fs, e.g. F# 4.1 latest:
fsc.exe TaskBuilder.fs Repro.fs

versus master:
C:\github\dsyme\visualfsharp\Debug\net40\bin\fsc.exe TaskBuilder.fs Repro.fs

Code for Repro.fs:
open System.Threading.Tasks
open FSharp.Control.Tasks.ContextInsensitive

type Client() =
    member x.SomeMethod (s:string) = 1

let getBooksTable () = task {
    let! client = Unchecked.defaultof<Task<Client>>
    let table = client.SomeMethod "book"
    return table }

Note that Bind fails to propagate return type in type inference.

#dsyme I agree that we should consider unreverting as a quick fix.
I tried the repro and it fails in F# 4.0
> ;;

      let table = client.SomeMethod "book"
  ----------------^^^^^^^^^^^^^^^^^

C:\Users\gus.leon\AppData\Local\Temp\stdin(32,17): error FS0072: Lookup on object of indeterminate type based on information prior to this program point. A type annotation may be needed prior to this program point to constrain the type of the object. This may allow the lookup to be resolved.
>

I'll keep looking ...

Hey guys, im no expert but can try assist. When its said to 'fix' the TaskBuilder, To be able to accept plain Tasks, Tasks<'T> and task-like arguments (via awaiter), needs to be SRTP, as overloading for each breaks type inference. Is it the inlining of the bindings that's issue? The CE already creates a lot of nesting via combine/delay so inlining is needed for perf. I saw in error logs that specific overload of getAwaiter could not be resolved  (both plain & generic loaded) but sounds like further constraints won't fix this.

@gerardtoconnor No, you'll need to keep inlining, but notice that the taskbuilder fails in F# lower than 4.1 (see the repro above).
So I'll try to make it work, my experience working with SRTPs tells me that subtle changes in the source code of the builder/inline functions have big impacts on the client code.

Thanks @gusty. The one hack to note is that to pass output type through from method overload to inline SRTP fun, static generic param binder method used, this might be place to start.

Yes, I used that technique all the time. Agree, that's a good starting point.

Some info from my end:
Why it's overcomplicated
The purpose of the inline/SRTP skulduggery in TaskBuilder.fs is to support arbitrary awaitables, with something close to the C# rules about what can be awaited. As far as I know, simplifying it would require changing user code to manually convert those awaitables to a common type before Binding them. I'm happy to code it however I need to as long as it's still possible to:

Write a Bind that works for any awaitable (including the non-generic Task)
Write a Bind for the special case of Task<T>, so it doesn't get confused and try to bind as a Task
Have the context-insensitive builder automatically call ConfigureAwait(false) on any awaitable that supports that method, but cleanly fall back to binding without that on awaitables that don't support that method

The third point I could be flexible on. It probably wouldn't be too bad if the automatic ConfigureAwait only worked for a small number of hardcoded types.
Extension methods
The extension methods at the end of TaskBuilder.fs are a tricky part of the code. To the best of my memory these rely on two behaviors, which I observed by experiment rather than reading in the compiler code, but it sounds like these might've come from #1650 .

Methods on the type are preferred over extension methods. The Task<T> binds are true instance methods of the builders, whereas the generic awaitable binds using SRTPs are extension methods. When binding Task<T> the compiler finds a perfect overload right there on the builder and doesn't seem to bother trying the generic SRTP extension bind and complaining that it's not sure which to use.

Extension methods seem to be tried most-recently-opened first. So when using the context-insensitive builder, there are the same extensions as for the context-sensitive one, but then also an auto-opened module HigherPriorityBinds containing extensions for awaitables that support a ConfigureAwait method. For types like System.Threading.Task that support ConfigureAwait the compiler uses this method, and doesn't complain that the generic Bind for all awaitables could've worked too.

@rspeele Thanks for all that info. What you describe I think is in the F# spec and a behavior I have long time observed, so I don't think there something specific to #1650 , it seems to be a type inference issue in presence of static constraints with overloads. Believe me it's not the first time I see this. I was about to report a trickier one today.

@gusty @gerardtoconnor @rspeele For now there's no need to jump to modify TaskBuilder.fs.  Current POR is to turn the handle on reverting #4173 before next non-preview release.
Separately we'll now start to look closely at the new behaviour w.r.t. overloads (and extension method overloads) that has been enabled by #1650 - it's definitely the case that new behaviour has been enabled by that which we haven't fully put under test.
TaskBuilder.fs acts as an interesting test case for reasonable (though complicated) uses of SRTP that have high practical value, and will use it to assess any future modifications.
@gusty Assuming the revert of #4173 goes through I'd like to get more test cases from you for behaviour you deem to be wrong.  We also have #4063 and #3967 to consider.  Whatever we do here we have to be really careful going forward.
thanks all

Closing #4173 has been applied and a build for insertion is being spun up. It remains to be seen if this can make the cut for 15.6 RTW or a servicing fix for 15.6 (it's coming in hot).

@dsyme You seem to be absolutely correct in that TaskBuilder took a dependency on my PR.
To my surprise, what I'm finding out is that it's a "strong dependency".
At the moment I didn't manage to solve the issue in the TaskBuilder code, but here's a 25 lines repro:
open System
open System.Threading.Tasks

type Step<'a,'b> =
    | Return of 'a
    | Await of 'b * (Step<'a,'b>)

type TaskBuilder() =
    member inline __.Bind(task  : _ Task , continuation )  = continuation(task.GetAwaiter().GetResult())

module M =
    type TaskBuilder with
        member inline __.Bind(taskLike, continuation )  =
                    let awt = (^abl : (member GetAwaiter : unit -> _) taskLike)
                    Await (awt, continuation (^awt : (member GetResult : unit -> _) awt))

open M

type Client() =
    member x.SomeMethod (s:string) = 1

let getBooksTable () =
    TaskBuilder().Bind(Unchecked.defaultof<Task<Client>> , fun client ->
        let table = client.SomeMethod "book"
        Return table)

As I said before, this doesn't compile in F# 4.0, although type inference in intellisense seems to be smart enough to figure out the type of client.
The type cycle in the DU Step seems to play a key role in this issue.
Still I'm sure I can re-write the task builder using the approach I use in FSharpPlus and it will probably work just fine. But what I'm sure at this point is that the code is TaskBuilder makes sense, I mean it has to compile the way it is right now.
Moving forward, looks like we'll have to unrevert #1650 (I saw you already did it) as there is definitely some interesting stuff there, but we need to fix it in such a way that we don't get the regressions I'm finding from time to time.
I can definitely start to report many small repro similar to this one where type inference seems to be stuck half-way with no apparent reason and that might lead us to improve significantly the type inference.
Particularly I have ton of cases in FSharpPlus when combining computation expressions where if I specify all the types it doesn't compile, which is clearly an F# bug, since more should be better or at least not worst. My workaround at the moment is to use a wildcard _ in as type parameter.
Since this issue is already closed, should we create a separate issue?

We may want to have a sit-down about SRTP inference for F# moving forward, since it's clearly such a touchy part of the compiler. Since we're now in the unfortunate state of things taking a dependency on behavior which may (or may not) have been questionable, we may just have to freeze the behavior here and just allow things to stabilize.

@gusty  Thanks for the analysis - I also came to the conclusion that a simple fix in TypeBuilder.fs wasn't practical

I can definitely start to report many small repro similar to this one where type inference seems to be stuck half-way with no apparent reason and that might lead us to improve significantly the type inference.

@gusty I'm actually more interested in positive test cases - things that compile today using SRTP that are "extreme" but "good".  Those matter more in terms of evolving the feature.  It is an area where I am willing to have some very exotic code break but I want all common, reasonable, mainline uses of SRTP characterised by corresponding tests.
This applies particularly in good uses feature interactions.  SRTP for basic operator-like uses is fine but the corner cases are coming when it is combined with

type-directed name resolution
method overloading
implicit operators (e.g. #4063)
etc.  There are cases in the wild were people are relying on these combinations.

@cartermp  I do want to make progress and fix the more egregious flaws, but to do it intentionally where we know exactly the corner cases we are fixing.

I can confirm now, that writing the TaskBuilder with the overload patterns I use in FSharpPlus, solves this issue.
Actually it looks a bit more readable to me and also works in F# 4.0 and lower.
@rspeele I can do a PR to the original project, so you can have a look at the code and test it.

FYI here's the PR with the fix https://github.com/rspeele/TaskBuilder.fs/pull/14/commits/9db31f6aeee0430e4077d45535305ef69b16385a

@gusty are they working with both versions of the compiler?

@forki Yes, this code works universally in all versions of F# with or without #1650 and it uses sort of a pattern I was using since 2010 so we can say it's bulletproof overloading code ;)

Awesome. Thanks so much for making SAFE safe again.
Am 19.02.2018 11:24 schrieb "Gustavo Leon"<EMAIL_ADDRESS>@forki https://github.com/forki Yes, this code works universally in all
versions of F# with or without #1650
https://github.com/Microsoft/visualfsharp/pull/1650 and it uses sort of a
pattern I was using since 2010 so we can say it's bulletproof overloading
code ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/visualfsharp/issues/4343#issuecomment-366646993,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADgNGt3lCKckCm7l4UpYiDu2WWO-UNsks5tWUvZgaJpZM4SDURr
.

Glad to help.
Just to be clear, I still think that the F# compiler should be able to compile the repro with the original code, but not at the cost of #1650 which introduced more problems than solutions.
Independent of that discussion and current status of the compiler, I suggest that taskbuilder is updated with this pattern, which seems to be more robust and easier to read, since you have all overloads in one place and the priority is explicit whereas in the original code you have to open, close modules, extensions and add comments like "see further below more overloads for ..." and so on.

sigh taskbuilder broke. https://github.com/rspeele/TaskBuilder.fs/issues/15

@dsyme Now that TaskBuilder.fs is fixed, can we consider re-re-reverting #1650 and avoid another accidentally introduced dependency?

@gusty We'll just have to keep things stable for a while, and can't add/remove #1650 again.
You can, however, add both before and after versions of TaskBuidler.fs as test cases to this repo please? Then we pin down behaviour both positive and negative, and make sure any changes we make going forward have known effect.

But precisely in order to keep things stable I strongly recommend not to include #1650, the sooner we remove it, the better.
It will not only produce breaking changes, it will also break the compiler, see below a quick example I found today, but there are more. I encountered this error at least twice a month.

Remember the headaches caused until it was patched with #3366 , otherwise read again the conversations there, then think about it, considering that there are still more scenarios today where that internal error breaks. We would need more patches like #4173
Also keep in mind that the only known regression is in TaskBuilder, which is already fixed and in anycase that specific problematic version of TaskBuilder doesn't work in most F# versions (many companies still uses F# 4.0) and also it has other incompatibility problems, as the one reported by @forki
Worst case, if you still insist to keep #1650 , I can try to find the time to investigate why the old TaskBuider didn't compile and try to solve that specific problem in the constraint solver.

But precisely in order to keep things stable I strongly recommend not to include #1650, the sooner we remove it, the better.

I'm not sure I understand. #1650 has been in for 18 months now and is now the "stable" state.   I can see we need to remove the internal error showing above, but we need to do it in a way that doesn't change what does and doesn't compile.
Anyway, please add a specific new issue for the current problems (e.g. the internal error), thanks :)

OK, just wanted to make sure you understand what's the current status, which is not "great" from my viewpoint.
I will create a separate issue, and add tests and repros.
I have a question for you, a very important question indeed: Do you think my reasoning behind #1650, (regarding stop exploring solutions in case of failure to resolve overload) was correct, incorrect, something in-between?

@gusty I keep staring at that PR thinking "why did this make such a big difference". And in particular why this line should make such a difference
I think you should add a new issue that shows the very simplest scenario where commenting/uncommenting that line makes a major difference, and lets reason through it from there.  And I assume that when that line is commented out, then #1650 is a noop?

There is also this change and I'd like to know if/when that makes a difference.

And I assume that when that line is commented out, then #1650 is a noop?

Yes.

There is also this change and I'd like to know if/when that makes a difference.

It's hard to remember my reasoning at that time, but I think I had studied a case where that short-circuit lead to a failure to resolve an overload, and in that particular scenario by observing the fact that there was an Unresolved-Overload and signaling it, lead to explore and select the good one.
Looks like we'll have to revisit it, I will try to find the example I was analyzing, I think I know which one is, then figure out a better fix which solves the current problems (like the one in the taskbuilder) without causing regressions, and ideally solving more problems like that (there are many cases where I hit the error message saying that the default 'obj' was inferred and no overloads match that type).


🐛 Bulkrax: Unable attach files via ZIP

Summary
FileSetAttachedEventJob and ValkyrieIngestJob jobs are failing, which may be why the files aren't properly attaching.
FileSetAttachedEventJob fails with ActiveFedora::ObjectNotFoundError: Couldn't find ActiveFedora::Base with 'id'=1620db86-f4c6-4811-90bc-6d186810b735
ValkyrieIngestJob fails with NoMethodError: undefined method "internal_resource" for nil:NilClass
The work gets created, but the file attachments look like:

When you click to download one of the attached files, you get this error:

SAMPLE ZIP:
adventist-import-w-files.zip
Acceptance Criteria

[ ] A user should be able to attach files to works via zip csv bulkrax imports

Testing Instructions
TBD
Notes

This works when tested on branch slugs-listener-for-solr-delete.
related to #722


jsperf.com SSL Error

The website seems to be unable to render right now, reporting an SSL protocol error across all major browsers (Chrome, Firefox, Safari and Edge).
Not sure if this is related to #289 or a side effect of the recent changes? Wanted to drop you all a note just in case. Thanks for the hard work!

Thanks for the help!
We’re working on getting jsPerf back up, using @zeit/now for the Node.js hosting and DigitalOcean for the MySQL database. Until then the site is down and TLS errors can be expected.


Frontend appears to be sending multiple search queries for each keystroke in the search bar

For example, if you type "g", it sends two queries searching for parts with "g".

The print is because of the console.debug() in search.js
function search (graphUri, criteria, offset, limit, user, explorer = false)
This prints 3 times for each keyword searched from the SBH1. I also tested from SBH2, and it's the same: print 3 times. The printout doesn't mean it sends 3 requests to the server; a future test is needed.

The call trace shows the path of function calls leading to the search function being invoked three times:
Primary Function Call:
search is called in /home/sophia/git_repo/synbiohub/lib/search.js at line 54, which is the main function of interest.
Trigger from module.exports:
module.exports in /home/sophia/git_repo/synbiohub/lib/views/search.js at line 136 calls search.
Express Router:
The call passes through Express layers (Layer.handle, next, Route.dispatch) in express/lib/router, indicating that the function is invoked through an HTTP request handler.
Middleware:
requirePublicLogin in /home/sophia/git_repo/synbiohub/lib/app.js at line 524, another middleware function, calls search.
This indicates that search is invoked as part of an Express route and might be triggered by multiple incoming HTTP requests or routing configurations. Check the routing logic and middleware chain to identify why it's called multiple times.


Small refactor BsThreadPool.

Apparently my branch name is wrong. Misread the diff when I created the branch. Oh well.

Thank you, merged. Made changes regarding value-passing and an const auto& iterator, let me know if you disagree about those.


run /configure.sh

Create Databases and configure Grafana

Please accept this pull request! It would have saved me hours :-). Looks like the previous commit accidentally removed the execution of configure.sh and this adds it back. Definitely needed.
Thanks!

tbh, I blindly merged trusting what you said guys!


Create README.md

https://github.com/user-attachments/assets/91c7c6c9-3b10-4c80-afc7-dfaafb283e80

good


delete project fails during tests

This issue shows up for the SendNewProject test
server logs:
      => TraceId:be66dfd1be55d694a2810bb68a93e69a => ConnectionId:0HMVT8UTGD489 => RequestPath:/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 RequestId:0HMVT8UTGD489:00000001
      Executed action LexBoxApi.Controllers.ProjectController.DeleteProject (LexBoxApi) in 149.3174ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      => TraceId:be66dfd1be55d694a2810bb68a93e69a => ConnectionId:0HMVT8UTGD489 => RequestPath:/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 RequestId:0HMVT8UTGD489:00000001
      Executed endpoint 'LexBoxApi.Controllers.ProjectController.DeleteProject (LexBoxApi)'
info: Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware[2]
      => TraceId:be66dfd1be55d694a2810bb68a93e69a => ConnectionId:0HMVT8UTGD489 => RequestPath:/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 RequestId:0HMVT8UTGD489:00000001
      Response:
      StatusCode: 200
      lexbox-version: v2023-12-15-fc398df8
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
      => TraceId:be66dfd1be55d694a2810bb68a93e69a => ConnectionId:0HMVT8UTGD489 => RequestPath:/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 RequestId:0HMVT8UTGD489:00000001
      An unhandled exception has occurred while executing the request.
      System.IO.IOException: Directory not empty : '/hg-repos/kevin-test-01/.hg/store/data'
         at System.IO.FileSystem.RemoveDirectoryRecursive(String fullPath)
         at LexBoxApi.Services.HgService.<>c__DisplayClass8_0.<DeleteRepo>b__0() in /LexBoxApi/Services/HgService.cs:line 77
         at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
      --- End of stack trace from previous location ---
         at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
         at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
      --- End of stack trace from previous location ---
         at LexBoxApi.Services.HgService.DeleteRepo(String code) in /LexBoxApi/Services/HgService.cs:line 77
         at LexBoxApi.Controllers.ProjectController.DeleteProject(Guid id) in /LexBoxApi/Controllers/ProjectController.cs:line 119
         at lambda_method1360(Closure, Object)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)
         at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
         at LexSyncReverseProxy.ProxyKernel.<>c.<<UseResumableStatusHack>b__4_0>d.MoveNext() in /SyncReverseProxy/ProxyKernel.cs:line 143
      --- End of stack trace from previous location ---
         at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
         at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
         at Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware.InvokeInternal(HttpContext context, HttpLoggingOptions options, HttpLoggingAttribute loggingAttribute, HttpLoggingFields loggingFields)
         at Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware.InvokeInternal(HttpContext context, HttpLoggingOptions options, HttpLoggingAttribute loggingAttribute, HttpLoggingFields loggingFields)
         at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      => TraceId:be66dfd1be55d694a2810bb68a93e69a => ConnectionId:0HMVT8UTGD489 => RequestPath:/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 RequestId:0HMVT8UTGD489:00000001
      Request finished HTTP/1.1 DELETE https://staging.languagedepot.org/api/project/project/9b48e54b-0b3e-49ac-b333-ac021ef79bb9 - 500 - application/problem+json;+charset=utf-8 154.4664ms

It seems to be the case that traces don't get exported when this happens. The trace (be66dfd1be55d694a2810bb68a93e69a) doesn't exist. I spent about an hour Yesterday trying to figure out why the DELETE trace wasn't in Honeycomb. I should have just looked in the server logs.
It's quite disappointing that an exception like this hasn't been making it into Honeycomb 😢. We need to fix that.

I just reproduced the 524 locally and it's as if the troublesome request never even makes it to our api. At least there are no logs.
There's a good one and then a huge gap and then the delete:
2023-12-15T14:52:11+01:00 info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2023-12-15T14:52:11+01:00       => TraceId:43ed1b84a230cec868ce1dd116e32a83 => ConnectionId:0HMVTEB32G08D => RequestPath:/send-new-project-test-6076e761db994b48a4a92341b5b85607 RequestId:0HMVTEB32G08D:00000005
2023-12-15T14:52:11+01:00       Request finished HTTP/1.1 GET https://hg-staging.languageforge.org/send-new-project-test-6076e761db994b48a4a92341b5b85607?cmd=listkeys - 200 0 application/mercurial-0.1 881.8059ms
2023-12-15T14:56:37+01:00 info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2023-12-15T14:56:37+01:00       => TraceId:44b48a8ef4c5d0d1e6568ced8f2d08ee => ConnectionId:0HMVTEB32G08E => RequestPath:/api/project/project/6076e761-db99-4b48-a4a9-2341b5b85607 RequestId:0HMVTEB32G08E:00000001
2023-12-15T14:56:37+01:00       Request starting HTTP/1.1 DELETE http://staging.languagedepot.org/api/project/project/6076e761-db99-4b48-a4a9-2341b5b85607 - - -

So, is it getting stuck at ingress? Should ingress be buffering differently?

I like the idea of doing the delete out of band, I also think that my change to let us run the tests in parallel will mean that if one run fails to delete it won't make others fail.


[SPARK-14163][CORE] SumEvaluator and countApprox cannot reliably handle RDDs of size 1

What changes were proposed in this pull request?
This special cases 0 and 1 counts to avoid passing 0 degrees of freedom.
How was this patch tested?
Tests run successfully. New test added.
Note:
This recreates #11982 which was closed to due to non-updated diff. @rxin @srowen Commented there.
This also adds tests, reworks the code to perform the special casing (based on @srowen's comments), and adds equality machinery for BoundedDouble, as well as changing how it is transformed to string.

Can one of the admins verify this patch?

Jenkins retest this please

Test build #54677 has started for PR 12016 at commit 93bcd99.

Test build #54677 has finished for PR 12016 at commit 93bcd99.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Jenkins retest this please

Test build #54729 has started for PR 12016 at commit 5db9678.

Test build #54729 has finished for PR 12016 at commit 5db9678.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Jenkins retest this please

Jenkins retest this please

Test build #54777 has started for PR 12016 at commit 5e3c477.

Test build #54777 has finished for PR 12016 at commit 5e3c477.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

The only failure has been failing since this: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/54771/.
I can pull from master and try again.

It's unrelated, I've seen it in other tests.

Jenkins retest this please

Test build #54782 has started for PR 12016 at commit 5e3c477.

Test build #54782 has finished for PR 12016 at commit 5e3c477.

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

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

Merged build finished. Test PASSed.

Looks good, thank you. Let's give it one more spin

Jenkins retest this please

Test build #54788 has started for PR 12016 at commit 4040e0e.

Test build #54788 has finished for PR 12016 at commit 4040e0e.

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

Merged build finished. Test PASSed.

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

Merged to master, thanks


Install Fails - ValueError: The 'credsniper' package was not installed in a way that PackageLoader understands.

Module to deploy (ex: gmail)? gmail
Final redirect URL: www.<domain>.com
Enable SSL? [Y/n] n
Enable two-factor phishing? [Y/n] Y
Enter hostname for certificates (ex: app.example.com): <domain>
Port to listen on (default: 80/443)? 80

[*] Preparing environment...
[*] SSL Enabled: n
[*] Hostname: <domain>
[*] Two-factor: Y
[*] Loading Module: gmail
[*] Port: 80
[*] Destination URL: <domain>
[*] Starting credsniper w/ flags:  --twofactor --verbose
[*] Adding Let's Encypt repository...
sudo: add-apt-repository: command not found
[*] Updating Apt...
[*] Installing pre-reqs...
[*] Creating & activating virtual environment...
[*] Enabling port binding for Python...
[*] Installing required Python modules...
[*] Creating & installing SSL certificates...
 Your certificate and chain have been saved at:
   /etc/letsencrypt/live/<domain>/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/<domain>/privkey.pem
   Your certificate will expire on 2022-09-27. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

[*] ###################################################
[*] Successfully installed everything!
[*] To run manually just:
[*]     ~/CredSniper$ source bin/activate
[*]     (CredSniper) ~/CredSniper$ python credsniper.py
[*] ###################################################
[*] Launching CredSniper...
Traceback (most recent call last):
  File "/home/<user>/CredSniper/credsniper.py", line 118, in <module>
    cs = CredSniper()
  File "/home/<user>/CredSniper/credsniper.py", line 25, in __init__
    self.prepare_module()
  File "/home/<user>/CredSniper/credsniper.py", line 35, in prepare_module
    loader=PackageLoader('credsniper', package),
  File "/home/<user>/CredSniper/lib/python3.9/site-packages/jinja2/loaders.py", line 291, in __init__
    import_module(package_name)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/<user>/CredSniper/credsniper.py", line 118, in <module>
    cs = CredSniper()
  File "/home/<user>/CredSniper/credsniper.py", line 26, in __init__
    self.prepare_api()
  File "/home/<user>/CredSniper/credsniper.py", line 54, in prepare_api
    loader=PackageLoader('credsniper', package),
  File "/home/<user>/CredSniper/lib/python3.9/site-packages/jinja2/loaders.py", line 323, in __init__
    raise ValueError(
ValueError: The 'credsniper' package was not installed in a way that PackageLoader understands.

I am experiencing this same error.

Same error for me.


Table Item Layout

We should prevent the name of the collateral to line-wrap. Either it needs to be shortened with an ellipsis (Flocki Master T...) or the column made wider. As a side effect, the additional line also messes with the alignment of the button, which is not vertically centered any more. This should automatically be good again if we restrict the name to one line.

Really fair point. I didnt like the line-wrap. Will adjust it.

done


Audio gets cut off

Tried to run it myself with my rotary phone and grandstream 801 but audio gets cut off when picking off the phone and also generated audio is downloaded, put on queue but not played.
API keys etc are set just fine.
 Does it play to some extent?
Based on the logs everything looks fine. I leave here my HT801 config for comparison. I think most if them should have the default values, perhaps the jitter buffer size is higher, but I'm not 100% sure because I bought it a long time ago.
Let me know if this helps, if not we can dig deeper.

Both the software and the hardware version actually:

Yet it doesn't really explain the issue.
What I'd suggest is to enable the debug on HT801 and look at what's happening there. I made video on how to do that:
https://www.loom.com/share/a480ec34037944649282994a1a42cf4a?sid=ce15ddba-bb28-4d7d-abea-d701c5e14cba

Can you test if the latest version works better?
See https://github.com/tcz/rotary-gpt/issues/2#issuecomment-1762329789

Hi @tcz. I have the same problem.
Audio typically gets cut of at "Hello". I have the same issue with new patch with shared sockets unfortunately.
I'll post the HT801 (newer hardware and software versions) logs, maybe you can spot something that's off regarding RTP negotiation?
Super thanks!

Yeah logs might help although they didn't really reveal much for the share socket issue.

Sometime's I've been able to hear the full greeting message, but very rarely. Could there be something else than RTP negotiation or socket issues?
ht801.log
2023-10-22 17:07:08 MainThread [DEBUG]: Registered function weather__get_weather_today
2023-10-22 17:07:08 MainThread [DEBUG]: Registered function accent__change_accent
2023-10-22 17:07:08 SIP server [INFO]: SIP server started on <IP_ADDRESS>:5060
2023-10-22 17:07:11 SIP server [INFO]: Incoming SIP request b'INVITE'
2023-10-22 17:07:11 SIP server [DEBUG]: b'INVITE sip:<IP_ADDRESS>:5060 SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1676250581;rport\r\nFrom: "Mattias" sip:IPCall@<IP_ADDRESS>:5060;tag=1370303268\r\nTo: sip:<IP_ADDRESS>:5060\r\nCall-ID<EMAIL_ADDRESS>150 INVITE\r\nContact: sip:IPCall@<IP_ADDRESS>:5060\r\nMax-Forwards: 70\r\nUser-Agent: Grandstream HT801 <IP_ADDRESS>\r\nSupported: replaces, path, timer, eventlist\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE\r\nContent-Type: application/sdp\r\nAccept: application/sdp, application/dtmf-relay\r\nContent-Length: 482\r\n\r\nv=0\r\no=IPCall 8000 8000 IN IP4 <IP_ADDRESS>\r\ns=SIP Call\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 5004 RTP/AVP 0 8 4 18 2 97 123 9 101\r\na=sendrecv\r\na=rtpmap:0 PCMU/8000\r\na=ptime:50\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:4 G723/8000\r\na=rtpmap:18 G729/8000\r\na=fmtp:18 annexb=no\r\na=rtpmap:2 G726-32/8000\r\na=rtpmap:97 iLBC/8000\r\na=fmtp:97 mode=20\r\na=rtpmap:123 opus/48000/2\r\na=fmtp:123 maxplaybackrate=16000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101 0-16,32-36,54\r\n'
2023-10-22 17:07:11 SIP server [INFO]: SIP response sent 200
2023-10-22 17:07:11 SIP server [DEBUG]: b'SIP/2.0 200 OK\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1676250581;rport\r\nTo: sip:<IP_ADDRESS>:5060\r\nFrom: "Mattias" sip:IPCall@<IP_ADDRESS>:5060;tag=1370303268\r\nContact: sip:<IP_ADDRESS>:5060\r\nCall-ID<EMAIL_ADDRESS>150 INVITE\r\nContent-type: application/sdp\r\nContent-Length: 151\r\n\r\nv=0\no=RotaryGPT 1 1 IN IP4 <IP_ADDRESS>\ns=SIP Call\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 5004 RTP/AVP 0\r\na=sendrecv\r\na=rtpmap:0 PCMU/8000\r\na=ptime:20\r\n'
2023-10-22 17:07:11 SIP server [DEBUG]: Calling incoming call callbacks with client RTP address <IP_ADDRESS>:5004
2023-10-22 17:07:11 RTP receiver [INFO]: RTP receiver started on <IP_ADDRESS>:5004
2023-10-22 17:07:11 RTP sender [INFO]: RTP sender started with peer <IP_ADDRESS>:5004
2023-10-22 17:07:11 Conversation [INFO]: Conversation started
2023-10-22 17:07:11 Conversation [DEBUG]: Sending greeting
2023-10-22 17:07:11 SIP server [DEBUG]: Finished incoming call callbacks
2023-10-22 17:07:11 SIP server [INFO]: Incoming SIP request b'ACK'
2023-10-22 17:07:11 SIP server [DEBUG]: b'ACK sip:<IP_ADDRESS>:5060 SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1083392993;rport\r\nFrom: "Mattias" sip:IPCall@<IP_ADDRESS>:5060;tag=1370303268\r\nTo: sip:<IP_ADDRESS>:5060\r\nCall-ID<EMAIL_ADDRESS>150 ACK\r\nContact: sip:<IP_ADDRESS>:5060\r\nMax-Forwards: 70\r\nSupported: replaces, path, timer, eventlist\r\nUser-Agent: Grandstream HT801 <IP_ADDRESS>\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:11 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:16 Conversation [DEBUG]: Sending greeting
2023-10-22 17:07:17 Conversation [DEBUG]: Starting Whisper request
2023-10-22 17:07:17 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:17 Conversation [DEBUG]: Receiving audio
2023-10-22 17:07:19 Conversation [DEBUG]: Silence detected
2023-10-22 17:07:19 Conversation [DEBUG]: Sending Whisper request
2023-10-22 17:07:19 Conversation [DEBUG]: Whisper returned
2023-10-22 17:07:19 Conversation [INFO]: User message: Hello, what is your name?
2023-10-22 17:07:19 Conversation [DEBUG]: Sending GPT request
2023-10-22 17:07:21 Conversation [INFO]: Agent message: My name is Phone Agent. How can I assist you today?
2023-10-22 17:07:21 Conversation [DEBUG]: Sending Polly request
b'HTTP/1.1 200 OK\r\nx-amzn-RequestId: d605cec1-6b32-4855-8c8e-8fdfd297bc26\r\nx-amzn-RequestCharacters: 51\r\nContent-Type: audio/pcm\r\nTransfer-Encoding: chunked\r\nDate: Sun, 22 Oct 2023 15:07:20 GMT\r\nConnection: close'
2023-10-22 17:07:21 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:21 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:21 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly fully returned, waiting for audio out queue to be consumed
2023-10-22 17:07:25 Conversation [DEBUG]: Audio out queue empty
2023-10-22 17:07:25 Conversation [DEBUG]: Starting Whisper request
2023-10-22 17:07:25 Conversation [DEBUG]: Receiving audio
2023-10-22 17:07:31 Conversation [DEBUG]: Silence detected
2023-10-22 17:07:31 Conversation [DEBUG]: Sending Whisper request
2023-10-22 17:07:31 SIP server [INFO]: Incoming SIP request b'BYE'
2023-10-22 17:07:31 SIP server [DEBUG]: b'BYE sip:<IP_ADDRESS>:5060 SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1294677366;rport\r\nFrom: "Mattias" sip:IPCall@<IP_ADDRESS>:5060;tag=1370303268\r\nTo: sip:<IP_ADDRESS>:5060\r\nCall-ID<EMAIL_ADDRESS>151 BYE\r\nContact: sip:<IP_ADDRESS>:5060\r\nMax-Forwards: 70\r\nSupported: replaces, path, timer, eventlist\r\nUser-Agent: Grandstream HT801 <IP_ADDRESS>\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:31 SIP server [INFO]: SIP response sent 200
2023-10-22 17:07:31 SIP server [DEBUG]: b'SIP/2.0 200 OK\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1294677366;rport\r\nTo: sip:<IP_ADDRESS>:5060\r\nFrom: "Mattias" sip:IPCall@<IP_ADDRESS>:5060;tag=1370303268\r\nContact: sip:<IP_ADDRESS>:5060\r\nCall-ID<EMAIL_ADDRESS>151 BYE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:31 SIP server [DEBUG]: Calling call ended callbacks
2023-10-22 17:07:31 RTP sender [INFO]: RTP sender stopped
Exception in thread RTP receiver:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 24, in start
self._receive_audio()
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 34, in _receive_audio
chunk, address = self.shared_socket.recvfrom(160 + 12)  # 20ms is 160 8bit samples plus header
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 125, in recvfrom
return self.socket.recvfrom(size)
OSError: [Errno 9] Bad file descriptor
2023-10-22 17:07:31 Conversation [DEBUG]: Whisper returned
2023-10-22 17:07:31 Conversation [INFO]: Conversation ended
2023-10-22 17:07:31 SIP server [DEBUG]: Finished call ended callbacks

Yup, you can clearly see that exception. Not sure what's causing it, the
socket is perhaps closed already for some reason when it's being read.
Unfortunately I can't debug this remotely.
On Sun, 22 Oct 2023 at 17:09, Mattias Lundström @.***>
wrote:

Sometime's I've been able to hear the full greeting message, but very
rarely. Could there be something else than RTP negotiation or socket issues?
ht801.log https://github.com/tcz/rotary-gpt/files/13063737/ht801.log
2023-10-22 17:07:08 MainThread [DEBUG]: Registered function
weather__get_weather_today
2023-10-22 17:07:08 MainThread [DEBUG]: Registered function
accent__change_accent
2023-10-22 17:07:08 SIP server [INFO]: SIP server started on <IP_ADDRESS>:5060
2023-10-22 17:07:11 SIP server [INFO]: Incoming SIP request b'INVITE'
2023-10-22 17:07:11 SIP server [DEBUG]: b'INVITE sip:<IP_ADDRESS>:5060
SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1676250581;rport\r\nFrom:
"Mattias" @.:5060;tag=1370303268\r\nTo: sip:
<IP_ADDRESS>:5060\r\nCall-ID: @.\r\nCSeq:
150 INVITE\r\nContact: @.:5060\r\nMax-Forwards:
70\r\nUser-Agent: Grandstream HT801 <IP_ADDRESS>\r\nSupported: replaces, path,
timer, eventlist\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE,
NOTIFY, INFO, REFER, UPDATE\r\nContent-Type: application/sdp\r\nAccept:
application/sdp, application/dtmf-relay\r\nContent-Length:
482\r\n\r\nv=0\r\no=IPCall 8000 8000 IN IP4 <IP_ADDRESS>\r\ns=SIP
Call\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 5004 RTP/AVP 0 8 4 18 2
97 123 9 101\r\na=sendrecv\r\na=rtpmap:0
PCMU/8000\r\na=ptime:50\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:4
G723/8000\r\na=rtpmap:18 G729/8000\r\na=fmtp:18 annexb=no\r\na=rtpmap:2
G726-32/8000\r\na=rtpmap:97 iLBC/8000\r\na=fmtp:97 mode=20\r\na=rtpmap:123
opus/48000/2\r\na=fmtp:123 maxplaybackrate=16000\r\na=rtpmap:9
G722/8000\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101
0-16,32-36,54\r\n'
2023-10-22 17:07:11 SIP server [INFO]: SIP response sent 200
2023-10-22 17:07:11 SIP server [DEBUG]: b'SIP/2.0 200 OK\r\nVia:
SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1676250581;rport\r\nTo: sip:
<IP_ADDRESS>:5060\r\nFrom: "Mattias" @.:5060;tag=1370303268\r\nContact:
sip:<IP_ADDRESS>:5060\r\nCall-ID: @.\r\nCSeq:
150 INVITE\r\nContent-type: application/sdp\r\nContent-Length:
151\r\n\r\nv=0\no=RotaryGPT 1 1 IN IP4 <IP_ADDRESS>\ns=SIP Call\nc=IN IP4
<IP_ADDRESS>\r\nt=0 0\r\nm=audio 5004 RTP/AVP 0\r\na=sendrecv\r\na=rtpmap:0
PCMU/8000\r\na=ptime:20\r\n'
2023-10-22 17:07:11 SIP server [DEBUG]: Calling incoming call callbacks
with client RTP address <IP_ADDRESS>:5004
2023-10-22 17:07:11 RTP receiver [INFO]: RTP receiver started on
<IP_ADDRESS>:5004
2023-10-22 17:07:11 RTP sender [INFO]: RTP sender started with peer
<IP_ADDRESS>:5004
2023-10-22 17:07:11 Conversation [INFO]: Conversation started
2023-10-22 17:07:11 Conversation [DEBUG]: Sending greeting
2023-10-22 17:07:11 SIP server [DEBUG]: Finished incoming call callbacks
2023-10-22 17:07:11 SIP server [INFO]: Incoming SIP request b'ACK'
2023-10-22 17:07:11 SIP server [DEBUG]: b'ACK sip:<IP_ADDRESS>:5060
SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1083392993;rport\r\nFrom:
"Mattias" @.:5060;tag=1370303268\r\nTo: sip:
<IP_ADDRESS>:5060\r\nCall-ID: @.\r\nCSeq:
150 ACK\r\nContact: sip:<IP_ADDRESS>:5060\r\nMax-Forwards:
70\r\nSupported: replaces, path, timer, eventlist\r\nUser-Agent:
Grandstream HT801 <IP_ADDRESS>\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE,
SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:11 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:16 Conversation [DEBUG]: Sending greeting
2023-10-22 17:07:17 Conversation [DEBUG]: Starting Whisper request
2023-10-22 17:07:17 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:17 Conversation [DEBUG]: Receiving audio
2023-10-22 17:07:19 Conversation [DEBUG]: Silence detected
2023-10-22 17:07:19 Conversation [DEBUG]: Sending Whisper request
2023-10-22 17:07:19 Conversation [DEBUG]: Whisper returned
2023-10-22 17:07:19 Conversation [INFO]: User message: Hello, what is your
name?
2023-10-22 17:07:19 Conversation [DEBUG]: Sending GPT request
2023-10-22 17:07:21 Conversation [INFO]: Agent message: My name is Phone
Agent. How can I assist you today?
2023-10-22 17:07:21 Conversation [DEBUG]: Sending Polly request
b'HTTP/1.1 200 OK\r\nx-amzn-RequestId:
d605cec1-6b32-4855-8c8e-8fdfd297bc26\r\nx-amzn-RequestCharacters:
51\r\nContent-Type: audio/pcm\r\nTransfer-Encoding: chunked\r\nDate: Sun,
22 Oct 2023 15:07:20 GMT\r\nConnection: close'
2023-10-22 17:07:21 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:21 RTP sender [DEBUG]: New talkspurt, marker bit set
2023-10-22 17:07:21 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly chunk arrived, sending to
RTP
2023-10-22 17:07:22 Conversation [DEBUG]: Polly fully returned, waiting
for audio out queue to be consumed
2023-10-22 17:07:25 Conversation [DEBUG]: Audio out queue empty
2023-10-22 17:07:25 Conversation [DEBUG]: Starting Whisper request
2023-10-22 17:07:25 Conversation [DEBUG]: Receiving audio
2023-10-22 17:07:31 Conversation [DEBUG]: Silence detected
2023-10-22 17:07:31 Conversation [DEBUG]: Sending Whisper request
2023-10-22 17:07:31 SIP server [INFO]: Incoming SIP request b'BYE'
2023-10-22 17:07:31 SIP server [DEBUG]: b'BYE sip:<IP_ADDRESS>:5060
SIP/2.0\r\nVia: SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1294677366;rport\r\nFrom:
"Mattias" @.:5060;tag=1370303268\r\nTo: sip:
<IP_ADDRESS>:5060\r\nCall-ID: @.\r\nCSeq:
151 BYE\r\nContact: sip:<IP_ADDRESS>:5060\r\nMax-Forwards:
70\r\nSupported: replaces, path, timer, eventlist\r\nUser-Agent:
Grandstream HT801 <IP_ADDRESS>\r\nAllow: INVITE, ACK, OPTIONS, CANCEL, BYE,
SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:31 SIP server [INFO]: SIP response sent 200
2023-10-22 17:07:31 SIP server [DEBUG]: b'SIP/2.0 200 OK\r\nVia:
SIP/2.0/UDP <IP_ADDRESS>:5060;branch=z9hG4bK1294677366;rport\r\nTo: sip:
<IP_ADDRESS>:5060\r\nFrom: "Mattias" @.:5060;tag=1370303268\r\nContact:
sip:<IP_ADDRESS>:5060\r\nCall-ID: @.***\r\nCSeq:
151 BYE\r\nContent-Length: 0\r\n\r\n'
2023-10-22 17:07:31 SIP server [DEBUG]: Calling call ended callbacks
2023-10-22 17:07:31 RTP sender [INFO]: RTP sender stopped
Exception in thread RTP receiver:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 24, in start
self._receive_audio()
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 34, in _receive_audio
chunk, address = self.shared_socket.recvfrom(160 + 12) # 20ms is 160 8bit
samples plus header
File "/home/pi/git/rotary-gpt/rotarygpt/rtp.py", line 125, in recvfrom
return self.socket.recvfrom(size)
OSError: [Errno 9] Bad file descriptor
2023-10-22 17:07:31 Conversation [DEBUG]: Whisper returned
2023-10-22 17:07:31 Conversation [INFO]: Conversation ended
2023-10-22 17:07:31 SIP server [DEBUG]: Finished call ended callbacks
—
Reply to this email directly, view it on GitHub
https://github.com/tcz/rotary-gpt/issues/1#issuecomment-1774119366, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABHCCAGPJH7E4BD6BR4CZ3YAUZKBAVCNFSM6AAAAAA3UTJQQCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZUGEYTSMZWGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks for your reply.
Posted the HT801 logs above.
Hmm. I don't think the exception above "OSError: [Errno 9] Bad file descriptor" is the issue, at least it was not the exception that I was trying to highlight. Think that part is just race conditions when BYE since there's no mutex on shared socket?


Remove $table from Ban model

this PR , removes $table property from Ban model , as by default laravel convention will use "snake case", plural name of the class as the table name

@mahmoudadev thank you for the contribution!
In CyberCog we decided to specify table names explicitly because of the 2 reasons:

sometimes there are changes in pluralizer which we won't to affect on our table names;
most of our packages has prefix in table names which allow us to group migrations logically.

Yes, 2nd point isn't applied to this case, but thats only for now, maybe in the future we will make this package more complex.

Closing this for now. If I'm missing something why this should be merged - feel free to continue the conversation, we are open to the dialogue!


Pylance warning about reset_expiration expire_after parameter

hi,
i'm using this simple code in my application:
if isinstance(_resp, CachedResponse):
    _resp.reset_expiration(expire_after=0)

pylance reports this:
Argument of type "Literal[0]" cannot be assigned to parameter "expire_after" of type "Module("requests_cache.models.response.ExpirationTime")" in function "reset_expiration"
  Type "Literal[0]" cannot be assigned to type "Module("requests_cache.models.response.ExpirationTime")"Pylance[reportGeneralTypeIssues](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportGeneralTypeIssues)

is this expected?

I'm able to reproduce this with VSCode and Pylance v2022.12.20. There aren't any Literal types defined in requests-cache, and it's bizarre that Pylance is calling 0 a Literal[0] instead of an int.
The type for that expire_after argument is defined like this:
ExpirationTime = Union[None, int, float, str, datetime, timedelta]

Type checks pass with mypy, and I'm leaning toward saying this is a false positive with Pylance.

After a bit of fiddling around, I was able to get Pylance to correctly recognize the ExpirationTime type. Until that change is released, you will need to add a # type: ignore there.
Thanks for reporting that, and let me know if you see any other type warnings with requests-cache.


Add --copy-pages option to copy pages.jsonl/extraPages.jsonl directly to WACZ

Fixes #42
Also bumps version to 0.5.0

Hm, I do wonder if we should switch the logic, and make this be the default, while previous behavior should be something like --validate-page-records? Since we are still parsing and validating each line, but not attempting to validate with each WARC record

Hm, I do wonder if we should switch the logic, and make this be the default, while previous behavior should be something like --validate-page-records? Since we are still parsing and validating each line, but not attempting to validate with each WARC record

I think it might be safer from a breaking changes perspective to keep it as-is? I see your point though, if you have a strong preference can make the change.

Hm, I do wonder if we should switch the logic, and make this be the default, while previous behavior should be something like --validate-page-records? Since we are still parsing and validating each line, but not attempting to validate with each WARC record

I think it might be safer from a breaking changes perspective to keep it as-is? I see your point though, if you have a strong preference can make the change.

Nope, no strong preference, can keep as is!


Private / Multi-cluster support

We need to be able to use our Platform to provision workloads for certain accounts on Private Clusters.
Goal:
Platform Accounts designated Private Cluster will have the option to create Uffizzi Environments on their own cluster.
These customers would have visibility to these clusters and how they are configured.
Implementation:
Uffizzi_app needs to be able to send workloads to multiple clusters - to private clusters specified by certain accounts
This is a platform feature - prefer it NOT be available open source but it's okay if it is - I don't want to delay if keeping it out of open source would take longer

Because we plan to sell a self-hosted version to Enterprises we need a single instance of our controller to be able to provision workloads across multiple clusters.  For example the Enterprise Customer installs Uffizzi via Helm only one time and then could provision workloads across multiple clusters.
Of note, if we are deploying to virtual clusters within a single physical cluster we may already have most of the logic we need to support this.


Support generated module files

The resolver is planning to support goog.module via ngageoint/opensphere-build-resolver#52. The indexer needs to pick up the resulting files and use them in place of the original source files in the file list for the debug loader.

Supported with #13.


Set correct issue titles

Earlier in #160 this was fixed for the notification screen, the current PR sets the correct titles for all other (events and issue list component).

@andrewda thank you, I agree, it's better, fixed :+1:


Atbash Cipher

Before jumping into Pr first comment for assign.
Problem statement : The Atbash cipher is an encryption method in which each letter of a word is replaced with its "mirror" letter in the alphabet: A <=> Z; B <=> Y; C <=> X; etc.
Create a function that takes a string and applies the Atbash cipher to it.
Probelm Link : https://edabit.com/challenge/977xgdi57bp23ibz5
Choose one Cateorgy - Hard
question category : cryptography, formatting, strings

Before submitting a PR please Check some details.

[ ] fileName formet should be in camelcase
example- returnTheNextNumber.py
[ ]  Choose label for Problem , example- "good first issue", "easy"
[ ]  In file there should be problem statement and link to problem

/* Problem-Task : This program will add two numbers
 * Problem Link : https://edabit.com/challenge/SFzHtm63XT6EYNHWY
*/
int main() {
    int bla;
    return 0;
}

This repository is vaild for HacktoberFest2020
Read before making PR - How to contribute on Github
Good Luck,

Please assign me.

Could you assign me? @aayushi-droid


⚖ Register Validator: Enigma

Network Choice
drunemeton-1
Who are you?
Enigma is a professional Proof of Stake validator and IBC relayer operator which help in securing more than 35 blockchains.
https://enigma-validator.com/
Delegator address
okp418j08f030z4jym2ftjwcly2neh9cdhqx3nfnpv5
gentx
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Enigma","identity":"6223697ACA24A4FF","website":"https://enigma-validator.com/","security_contact":"contact@enigma-validator.com","details":"Highly secure professional validator across 35+ chains - offering a full refund for any downtime slashing - Reach out to us at contact@enigma-validator.com"},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"","validator_address":"okp4valoper18j08f030z4jym2ftjwcly2neh9cdhqx3xwrgj4","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Fzqmu3xHqiZ1K5e7pS3IWTtBYe28K3FvPHtxLWZAH/Q="},"value":{"denom":"uknow","amount":"10000000000"}}],"memo":"38bb95398dbcd4e2442fafbfd0355e44783a4bf4@<IP_ADDRESS>:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A3KbR3TSalXfhMiHa6LlInkxVQLuZLF8f78JpoZMCaJe"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["+U1IW23v9CYx5g/SqJDvjAwTPJKHlg2eZQGYWXQ4GnhhedeOtBZGAKOtU7QDFPQ/CS9foMkBQ0PvORbXtCsc1w=="]}

😉 Here is the corresponding PR: https://github.com/okp4/networks/pull/697


Implement a generic API endpoint for enumeration of status codes

Adds a generic API endpoint for enumeration of status codes, which will allow external applications (e.g. the mobile app) to access available status codes, as well as translated labels
Implemented for:

[x] Purchase Order
[x] Sales Order
[x] Return Order
[x] Return Order Line Item
[x] Stock Item
[x] Stock History
[x] Build Order

e.g.

and translated

Nice! This will tye nicely into #3501


[Feature] Add support for saving chart screenshot

Description
I'm curious if it is possible to add support for saving screenshot of the chart to a local disk. The use case here is that I'm running some calculations of the study which I plot as line chart below the main chart. The screenshot feature will really ease saving multiple charts programmatically. The lightweight-charts does this provide this API through takeScreenshot.
Thanks
Code example
No response
Method of implementation
No response

I see its already present! Closing the issue


Set response headers

From my understanding, you cannot set the headers of your response request. (or I couldn't find it in the docs at least?)
Any plans/solutions for this problem?
(ps, thanks for this library, its amazing ♥)

That is correct.
IIRC "Dunder" on discord was looking into adding support for this, you might want to ping there in case there's any update.


Save all before running any query

Is your feature request related to a problem? Please describe.
Recently there has been a lot of crashes on Linux Mint, e.g. #25134, which causes loss of scripts.  Please automatically save all script files before running any query or after some time after last save to prevent data loss.
Describe the solution you'd like
Save all script files.
Describe alternatives you've considered
I manually save my files as often as possible... brings back memories of old DOS days...
Additional context
See #25134

Hello @nyurik
One of these settings may be helpful for you.

@LonwoLonwo thanks!!! i wasn't aware of this.  Do you think it might make sense to enable them by default? Other common editors (like IntelliJ's) do that out of the box...

Related ticket with implementation: https://github.com/dbeaver/dbeaver/issues/9608

The knee jerk reaction to the QUESTION "Do you think it might make sense to enable them by default?" to just enable it without warning to people using the product is ridiculous.  The proper reaction should have been to THINK about the question posed and realize that, while there are some use cases where having the option enabled is a good idea, there are others where enabling it by default would be (and has been) disastrous.  Please put more thought into future product changes...

This change is a horrible horrible decision just for the convenience of the entitled few who cbf to turn the setting on themselves!


Port TiGL Viewer to Qt5

TiGL Viewer compiles only under Qt 4. It would be nice, if we could also use Qt 5 additionally.
TiGL Viewer still needs to compile under Qt 4 still many older linux distros don't ship Qt 5.

Build fails on windows.

The qt5 discovery could be better. Currently, qt5widgets has to be specified. Qt5Core and Qt5Gui is found automatically. However, Qt5Script has to be manually specified.
It would be cool to set a qt path and cmake automatically finds all required qt modules.


Handle all incoming Inspector messages on main thread, downgrade some errors to logs

Summary:
Changelog: [Internal]

Updates InspectorPackagerConnection.java, DevServerHelper.java and DevSupportManagerBase.java to perform all connection management and message dispatching for the inspector socket on the main thread. This is in support of a new CDP implementation in React Native that will strictly assume it's called on the main thread (thus avoiding the need for explicit locking in many places).
Downgrades JSON parsing errors and duplicate connection errors from exceptions to logs, matching the iOS implementation.

Reviewed By: javache
Differential Revision: D51346658

Originally commited with 16ad818d21773cdf25156642fae83592352ae534


Bundled wasm-opt fails

wasm-pack 0.9.1 fails to run wasm-opt when building https://github.com/lukaslueg/macro_railroad_wasm
[wasm-validator error in module] unexpected true: Exported global cannot be mutable, on
global$0
Fatal: error in validating input
Error: failed to execute `wasm-opt`: exited with exit code: 1

wasm-pack was able to run wasm-opt before, I guess the problem was introduced with recent updates of Rust, although I didn't run a regression.
To reproduce, clone the repo and run wasm-pack build --target web
wasm-pack version: 0.9.1
rustc version: 1.46

I'm closing this here, as after some more testing I suspect something fishy in rustc itself, which used to not get picked up by the wasm-opt verifier.

Turns out the behavior was introduced with wasm-bindgen >= 0.26.26, which generates the aforementioned mutable global, which causes wasm-opt to puke. According to this comment, mutable globals are now stable and the bundled wasm-opt 90 (and 96) is not up to par.
I reopen this again, as wasm-opt will need to get updated or everybody using wasm-opt as part of wasm-pack who runs into this behavior will have their build broken.

This is a duplicate of this bug

aaaaannd it's closed again :-) Thanks for the heads-up


Roll engine f804c293f3ba..9aa7c9a48e93 (1 commits)

https://github.com/flutter/engine/compare/f804c293f3ba...9aa7c9a48e93
git log f804c293f3baaec9ccec1e251293f6a3509223b8..9aa7c9a48e9342a450c3078e15c8d7923a338ede --no-merges --oneline
9aa7c9a48 Export extern constants in embedder.h (flutter/engine#8550)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (jsimmons@google.com), and stop
the roller if necessary.

Auto-roller completed checks. About to merge.


docs: add newly added data type into README.md

As we now support more unsigned integers type, I think it is necessary for us to let everyone know this delightful news by updating the README.md.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.0007%) to 98.795%

Files with Coverage Reduction
New Missed Lines
%

core/src/executor/sort.rs
4
96.75%

Totals

Change from base Build<PHONE_NUMBER>:
-0.0007%

Covered Lines:
41892

Relevant Lines:
42403

💛  - Coveralls


fix(deployment-script): standardised deployment script

Introduction :pencil2:
Standardise deployment script
Resolution :heavy_check_mark:

Updated QA MSSQL DB connection environment variable names for consistency.
Converted a vars to secrets environment variable.

Miscellaneous :heavy_plus_sign:

Documentation update
Updated .env.sample

Have you updated all the new variables within github for the changes to the SQL_DB_HOST_QA from _TEST? Wondering if that's why there are all the failures!


Modify Datalad-registry client to adopt to API V2

Modify the Datalad-registry client to adopt API V2 of Datalad-registry.
This PR closes https://github.com/datalad/datalad-registry/issues/164

looks LGTM. Wasn't sure if addition/use of yarl is really needed, but oh well -- why not, seems handy ;)  Let's try as deployed.


WebGL

Can we write WebGL apps with Nectar? I guess it needs JS glue with WebAssembly. Any plans?

We'll be able to write WebGL apps with Nectar,
I'm reorganizing the project

This would be amazing!
Do you or will you be supporting other Browser APIs as well?

Yes sure,
The aim is to globally support JS/ES, but I need help ( :

I'm not sure I'm low-level enough to be able help and I certainly don't have the time right now but in about 3 months I should have a lot more time so may be able to lend a hand depending on what you need.


Alias mistake in output

Output generated as ec_deployment.alias is the entire set of attributes not only the alias.
Readiness Checklist

[x ] I am running the latest version
[ x] I checked the documentation and found no answer
[ x] I checked to make sure that this issue has not already been filed
[ x] I am reporting the issue to the correct repository (for multi-repository projects)

Expected Behavior

ec_deployment.alias should return only the alias
Current Behavior

it returns every attribute of ec_deployment
## Terraform definition

terraform {
required_version = ">= 0.15"
required_providers {
ec = {
source  = "elastic/ec"
version = "~> 0.7.0"
}
}
}
Steps to Reproduce

1.https://registry.terraform.io/providers/elastic/ec/latest/docs/data-sources/deployment
2.GCP Private Service Connect traffic filter
3. provide an output for ec_deployment.example_minimal.alias
4.
Context

Just redundant information

I'm not experiencing this on 0.9.0, here's part of my terraform output:
resource "ec_deployment" "this" {
    alias                  = "tst"
    deployment_template_id = "aws-storage-optimized-v4"
    # ...
}

Note I'm using version:
terraform {
  required_providers {
    ec = {
      source  = "elastic/ec"
      version = "0.9.0"
    }
  }
}


onLazyComponentRequest not being called?

Hi,
I've tried to put this into a Spring Boot Vaadin application.
The layout initialization works, then the updateIndicatorText() method gets called but after that nothing will happen. I'll only get loading indicator at the bottom, but the onLazyComponentRequest () doesn't get called.
Do you know what might be the problem?
Thanks & BR

Is lazylayout as content of panel or window?

Lazylayout it inside another Verticallayout (overviewlayout) which is inside a tabsheet.
Is this a problem?

Parent needs to be scrollable. VerticalLayout isn't, so it will not get scrolling events. So lazylayout should be direct child of tabsheet. Anyhow, it might be that tabsheet support has also some issues, as I think I have only tested component with window and panel.

Ah well ok I'm gonna fiddle around a bit and try to fix it thanks.

Please inform if it doesn't work as direct child of tabsheet. As then there is something to fix.

I have replaced the overviewlayout VerticalLayout with the LazyVerticalLayout, so its parent now should be the tabsheet, but it still won't work :/

Actually 0.1.3 should work fine inside TabSheet. So...
Is the height of tabsheet defined and height of lazylayout undefined?

Can you email screenshot of your view to me<EMAIL_ADDRESS>

Yes, the tabsheet is set to .setSizeFull(), the lazylayout has an undefined size.
I can see the scrollbar: https://www.dropbox.com/s/mavczxvkxd1jb9q/lazylayout.PNG?dl=0

Ok, and even if you scroll up and down that tabsheet content, it doesn't help?

No, it just wont fire the event. I'm not sure if it's because it's inside a more complex ui layout maybe?

Maybe, if you run you app with ?debug, do you get any client side errors or warnings?

I think that the problem might be that the widget just isn't properly integrated into my project, but I'm not sure where I could have made error since the demo project is configured differently.
I tried to set up a simple Spring Boot Project with vaadin and put in the Tab demo from the demo project. It results in the same problem, so I guess the client part of the widget isn't properly loading because it's not firing the event when scrolling.
If would be nice if you could have a look at it if you have the time:
https://www.dropbox.com/s/ligzvmk87rssqlx/lazyload.zip?dl=0
I guess I'm missing some annotation or configuration file, but I'm not sure what to look for.

Unless I missed something, your application does not compile custom widgetset. As my add-on extends client side, you need to build custom widgetset to have those parts included. If vaadin's default widgetset is used, then LazyVerticalLayout will behave as VerticalLayout (as it extends VerticalLayout, but will not explode if client side is missing the extension part).
Please check the demo project of LazyLayout:
https://github.com/alump/LazyLayouts/tree/master/lazylayouts-demo
Steps:

define custom widgetset file in style of: https://github.com/alump/LazyLayouts/blob/master/lazylayouts-demo/src/main/resources/org/vaadin/alump/lazylayouts/demo/DemoWidgetSet.gwt.xml

annotate servlet with widgetset name, or define widgetset in web.xml file. Example of annotated servlet class (inside UI class):
https://github.com/alump/LazyLayouts/blob/master/lazylayouts-demo/src/main/java/org/vaadin/alump/lazylayouts/demo/DemoUI.java

make sure your pom.xml has vaadin plugin with compile-widgetset step, example of pom.xml (rows 199-235):
https://github.com/alump/LazyLayouts/blob/master/lazylayouts-demo/pom.xml

Thank you very much, I just solved the problem. It was partly a layer 8 problem, because I was compiling the widgets, but I didn't put the declaration in the proper widgetset file...
It works now, thank you very much for your time and help again ;-)

Good, closing the issue.

Well, I dont wanna look as a person who didnt put any effort to understand the problem, but I just ran into the same problem. I m using Spring Boot as well, added all the details as you mentioned before(however Push annotation gives me an exception and http response 500... I did found a solution though
here
but didn`t get the list moving) and I keep having the the circle moving but nothing else...
Also my Idea cannot resolve com.vaadin.DefaultWidgetSet at CustomWidget.gwt.xml
So seriously @stozk how you managed this?
@alump if you could look the project I appreciate it much .
Thank you

Dunno, I just put        in my CustomWidget.gwt.xml and it works.

Idea cannot resolve com.vaadin.DefaultWidgetSet

Maybe your project does not have vaadin-client as dependency? Maybe it has vaadin-client-compiled that isn't suitable, if you want to compile your own version.

I thought if I add vaadin-bom it imports all of the dependencies in it. but apparently it is not.
Well, now when I added client-compiler dependency, I am getting
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory 	at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:77) 	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612) 	at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395) 	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871) 	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext$JettyEmbeddedServletHandler.deferredInitialize(JettyEmbeddedWebAppContext.java:46) 	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize(JettyEmbeddedWebAppContext.java:36) 	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.handleDeferredInitialize(JettyEmbeddedServletContainer.java:163) 	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:110) 	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:288) 	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:140) 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) 	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:117) 	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:689) 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:969) 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:958) 	at de.test.vaadin.demo.LazyloadApplication.main(LazyloadApplication.java:10) 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.lang.reflect.Method.invoke(Method.java:498) 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory
I got rid of it by adding
<dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>             <exclusions>                 <exclusion>                     <groupId>org.springframework.boot</groupId>                     <artifactId>spring-boot-starter-jetty</artifactId>                 </exclusion>             </exclusions>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-tomcat</artifactId>         </dependency>         <dependency>             <groupId>org.apache.tomcat.embed</groupId>             <artifactId>tomcat-embed-jasper</artifactId>         </dependency>
and yet the circle only moving ....
and all this stuff I ve done to uploaded by @stozk project...
Guess I`m doing something wrong...

Do you have this under build/plugins in your pom.xml
<plugin>
				<groupId>com.vaadin</groupId>
				<artifactId>vaadin-maven-plugin</artifactId>
				<version>${vaadin.plugin.version}</version>

				<configuration>
					<extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
					<!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This
						way compatible with Vaadin eclipse plugin. -->
					<webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets
					</webappDirectory>
					<hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets
					</hostedWebapp>
					<!-- Most Vaadin apps don't need this stuff, guide that to target -->
					<persistentunitcachedir>${project.build.directory}</persistentunitcachedir>
					<deploy>${project.build.directory}/gwt-deploy</deploy>
					<!-- Compile report is not typically needed either, saves hundreds of
						mb disk -->
					<compileReport>false</compileReport>
					<noServer>true</noServer>
					<!-- Remove draftCompile when project is ready -->
					<draftCompile>false</draftCompile>

					<style>OBF</style>
					<strict>true</strict>
					<runTarget>http://localhost:8080/</runTarget>
				</configuration>

				<executions>
					<execution>
						<goals>
							<goal>clean</goal>
							<goal>resources</goal>
							<goal>update-theme</goal>
							<goal>update-widgetset</goal>
							<goal>compile-theme</goal>
							<goal>compile</goal>
							<goal>compile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

and this under pluginManagement/plugins:
<plugin>
                   <groupId>org.eclipse.m2e</groupId>
                   <artifactId>lifecycle-mapping</artifactId>
                   <version>1.0.0</version>
                   <configuration>
                       <lifecycleMappingMetadata>
                           <pluginExecutions>
                               <pluginExecution>
                                   <pluginExecutionFilter>
                                       <groupId>com.vaadin</groupId>
                                       <artifactId>
                                           vaadin-maven-plugin
                                       </artifactId>
                                       <versionRange>
                                           [7.2.4,)
                                       </versionRange>
                                       <goals>
                                           <goal>clean</goal>
   										<goal>resources</goal>
   										<goal>update-theme</goal>
   										<goal>update-widgetset</goal>
   										<goal>compile-theme</goal>
   										<goal>compile</goal>
                                       </goals>
                                   </pluginExecutionFilter>
                                   <action>
                                       <ignore></ignore>
                                   </action>
                               </pluginExecution>
                           </pluginExecutions>
                       </lifecycleMappingMetadata>
                   </configuration>
               </plugin>

yep, I m a little confused now about which plugin I should launch. Did you use spring boot included Tomcat server? Cause if I use vaadin plugin it says there is no server... However if I just launch it thru main, the circle keeps moving but nothing else

Yes, I just use spring boot with the embedded tomcat. You can try to generate a project template for spring boot starter + vaadin with https://start.spring.io/ , maybe you have just a missing dependency or some error in yours.

dont know, Im using your project https://github.com/gregmazur/lazyload


Documentation

#119

@Apurv428 there are 85 file changes with no instructions on how to test your PR. Additionally i see there are lots of original files deleted. Could you please fix your PR?

A screenshot with your POC will be helpful for me too!
Apologies, I missed a step. I will fix it and create PR along with the deployed documentation link so that you can have a look at it.


Feature request: support return_mems in ContinuousTransformerWrapper

It would be great if ContinuousTransformerWrapper supported return_mems in the forward pass.
Thank you for the awesome repo!
Remarkably, it all works with torch.onnx.export()!

@pfeatherstone oh sure! threw it in there quickly before starting my main work
how are you using it? 🧐

it is actually interesting how many people have told me they are using the continuous wrapper, although there's so little research on that

@hugofloresgarcia congrats on the paper!

@pfeatherstone oh sure! threw it in there quickly before starting my main work
how are you using it? monocle_face

Oh it's just my inputs are in normalized floating point format already, not tokenized.

@lucidrains How do you train a non-autoregressive continuous transformer with mem and return_mem.
I can see in the code you have XLAutoregressiveWrapper but that's only for auto-regressive transformers, i.e. where the targets are simply the inputs left-shifted. I can also see NonAutoregressiveWrapper. I can't quite tell if that's appropriate for training recurrent transformers. Thank you in advance.

@pfeatherstone ohh, this repository is not well suited for custom recurrent
are you trying to do something like RMT, but non-autoregressive?

Yes it's similar. To be honest I thought this repo would have done the job. Maybe I need to read up on this more to properly determine which architecture suits me best. To me the mechanism provided in this repo (return_mem and mems=), RMT and memformer all look like they are doing roughly the same thing...
Basically I want to output mem outputs from running segment (t) and feed them along with segment (t+1) to the next path, exactly like how return_mem works here. Difficulty is how do you train. Do you need to train with segments or not?
My architecture is using CTC loss.

Basically i want a kind of stream-aware transformer with causal attention, non-autoregressive, trained with CTC loss, with an effective response that is infinite, a bit like how infinite impulse response (IIR) filters work. In transformer world, if you constantly feed mems from previous iterations, it should be able to "remember" information from the infinite past.

@pfeatherstone yea, i'm a big fan of the RMT architecture too

let me think, yea, i think x-transformers is close, since it has the ability to prepend embeddings (like PaLI)
i can take a look at this later this week

So I can see three candidate:

https://github.com/lucidrains/x-transformers#transformer-xl-recurrence
https://github.com/lucidrains/recurrent-memory-transformer-pytorch
https://github.com/lucidrains/memformer
I'm new to recurrent transformers. I'm pretty familiar with "normal" transformers (GPT like for example), where you basically feed your entire input (text, image, or whatever). But though recurrence seems easy to design in the forward pass, I can't quite see how you train effectively (backward pass). do you need to ramdonly partition your input into segments during training and pretend you are "streaming" or is there a more elegant, less faffy, way of training

@pfeatherstone i think your best bet is to modify the RMT architecture
i also included the memory-replay-backprop technique from memformer, so the network can learn to formulate its memories better

@lucidrains There is also this paper https://arxiv.org/pdf/2109.00301.pdf, which proposes infinity-former
It's a bit daunting how many ways there is to cache and reuse hidden states over time. There must be a canonical way of doing this stuff....

We just need IIR filters in neural networks...


Fix Splunk tagging

:rocket: deployment of gp-lookup succeeded (http://gp-lookup-pr-44.dev.beta.nhschoices.net)

@adamgraves-choices I think this PR needs to be include the changes from #43 to get the logging bit


Adding new NRT Rule for 2FA disable inn github

Adding new NRT Rule for 2FA disable inn github

@aprakash13 - Could you please have a look here.

@aprakash13 - Request your help for approval & merge.

@aprakash13 : Please Review and provide your approval.

@aprakash13 - Thank you for the approval & merge.


Brixton.Sr1 - Unable to send heartbeat error on startup

When I startup my Eureka server node I get exceptions at startup.
I have turned on Jersey logging to give an idea of the data in transit.
error.txt
The JSON returned seems to be a server error rather than the expected instance JSON.
{"timestamp":1481713238850,"status":500,"error":"Internal Server Error","exception":"java.lang.NullPointerException","message":"No message available","path":"/eureka/apps/FOO.COM.SERVICE.EUREKA/foo.com:com.foo.service.eureka:8761"}
After this error happens, It doesnt happen again and I can access the URL fine:
http://foo.com:8761/eureka/apps/FOO.COM.SERVICE.EUREKA/foo.com:com.foo.service.eureka:8761?status=UP&lastDirtyTimestamp=1481713210390
and I can see a valid JSON response.
So it looks like the heart beat is possibly attempting to happen before the server has fully initialised? (Just my thought)
My POM looks like - pom.txt

Note I have had to force spring-cloud-starter-eureka-server to 1.1.4.RELEASE as we don't have 1.1.2.RELEASE in our internal repo yet (but it was working last week fine)

My configuration looks like:
@Configuration
@EnableProperties
@EnableAutoConfiguration
@EnableEurekaServer
public class ApplicationConfig {
    @Bean
    public DiscoveryClient.DiscoveryClientOptionalArgs discoveryClientOptionalArgs() {
        DiscoveryClient.DiscoveryClientOptionalArgs args = new DiscoveryClient.DiscoveryClientOptionalArgs();
        List<ClientFilter> filters = new ArrayList<>();
        filters.add(new HTTPBasicAuthFilter("eureka", "default"));
        filters.add(new LoggingFilter());
        args.setAdditionalFilters(filters);

        return args;
    }
}

My YML looks like the following - note we provide -Dserver.name to the process as a VM argument which corresponds to the DNS name of the service, not the server name - we dont want anything to do with the server name within the application.
spring:
application:
name: com.foo.service.eureka
server:
port: ${eureka.server.port:8761}
security:
basic:
enabled: true
user:
name: ${eureka.username:eureka}
password: ${eureka.password:default}
eureka:
instance:
hostname: ${server.name:localhost}
metadataMap:
hostname: ${server.name:localhost}
client:
registerWithEureka: true
fetchRegistry: false
serviceUrl:
defaultZone: ${eureka.defaultZone}

Can you please try with the latest Brixton.SR7 or Camden.SR3?

Not possible Spencer, our internal Governance process to get new applications / components onboarded is lengthy. SR1 is all we have at present, I understand that is a limitation.

The eureka library has changed since Brixton.SR1. It's at 1.4.12 in SR7. If you can create a sample that recreates the problem using the latest brixton, go ahead and reopen this.