ResponderMiddleware Error: requestId: no request id

I'm getting an error message when calling my services. Postman delivers a 404 status after that. Calling my service directly via postman is successful.
[41mfail: Ocelot.Responder.Middleware.ResponderMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: 1 pipeline errors found in ResponderMiddleware. Setting error response status code Ocelot.Responder.Middleware.ResponderMiddleware:Error: requestId: no request id, previousRequestId: no previous request id, message: 1 pipeline errors found in ResponderMiddleware. Setting error response status code fail: Ocelot.Responder.Middleware.ResponderMiddleware[0]

@NicoKno can you paste your configuration.json here?
Also would it be possible to paste the full log from beginning to end?

This is the configuration I use. I obfuscated the hostname which is a service name of a docker-compose-file.
{   "ReRoutes": [     {       "DownstreamPathTemplate": "/api/v1/{everything}",       "DownstreamScheme": "https",       "DownstreamHostAndPorts": [         {           "Host": "<docker-service-name>",           "Port": 5000         }       ],       "UpstreamPathTemplate": "/api/v1/{everything}",       "UpstreamHttpMethod": [ "Put", "Get", "Post" ]     },     {       "DownstreamPathTemplate": "/connect/token",       "DownstreamScheme": "https",       "DownstreamHostAndPorts": [         {           "Host": "<other-docker-service-name>",           "Port": 5001         }       ],       "UpstreamPathTemplate": "/connect/token",       "UpstreamHttpMetahod": [ "Post" ]     }   ],   "GlobalConfiguration": {     "RequestIdKey": "OcRequestId"   } }
And this is the output generated when I call the service:
Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/System.Numerics.Vectors.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Loaded '/usr/share/dotnet/store/x64/netcoreapp2.0/system.runtime.compilerservices.unsafe/4.4.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 PUT https://localhost:8080/api/v1/modules/Test application/json 52 info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] Request starting HTTP/1.1 PUT https://localhost:8080/api/v1/modules/Test application/json 52 info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test Request starting HTTP/1.1 PUT https://localhost:8080/api/v1/modules/Test application/json 52 trce: Ocelot.Logging.OcelotDiagnosticListener[0] requestId: no request id, previousRequestId: no previous request id, message: MiddlewareStarting: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; /api/v1/modules/Test, trce: Ocelot.Logging.OcelotDiagnosticListener[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: MiddlewareStarting: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; /api/v1/modules/Test, Ocelot.Logging.OcelotDiagnosticListener:Trace: requestId: no request id, previousRequestId: no previous request id, message: MiddlewareStarting: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; /api/v1/modules/Test, Ocelot.Errors.Middleware.ExceptionHandlerMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline started, dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline started, dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline started, dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: upstream url path is /api/v1/modules/Test, Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: upstream url path is /api/v1/modules/Test, dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: upstream url path is /api/v1/modules/Test, Loaded '/usr/share/dotnet/store/x64/netcoreapp2.0/microsoft.aspnetcore.http.extensions/2.0.1/lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. dbug: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate, Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate, dbug: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate, Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/System.Security.Principal.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. trce: Ocelot.Authentication.Middleware.AuthenticationMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: No authentication needed for /api/v1/modules/Test, Ocelot.Authentication.Middleware.AuthenticationMiddleware:Trace: requestId: no request id, previousRequestId: no previous request id, message: No authentication needed for /api/v1/modules/Test, trce: Ocelot.Authentication.Middleware.AuthenticationMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: No authentication needed for /api/v1/modules/Test, dbug: Ocelot.Authorisation.Middleware.AuthorisationMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: /api/v1/{everything} route does not require user to be authorised, Ocelot.Authorisation.Middleware.AuthorisationMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: /api/v1/{everything} route does not require user to be authorised, dbug: Ocelot.Authorisation.Middleware.AuthorisationMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: /api/v1/{everything} route does not require user to be authorised, dbug: Ocelot.DownstreamUrlCreator.Middleware.DownstreamUrlCreatorMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: downstream url is https://<docker-service-name>:5000/api/v1/modules/Test, Ocelot.DownstreamUrlCreator.Middleware.DownstreamUrlCreatorMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: downstream url is https://<docker-service-name>:5000/api/v1/modules/Test, dbug: Ocelot.DownstreamUrlCreator.Middleware.DownstreamUrlCreatorMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: downstream url is https://<docker-service-name>:5000/api/v1/modules/Test, dbug: Ocelot.Requester.Middleware.HttpRequesterMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: IHttpRequester returned an error, setting pipeline error, Ocelot.Requester.Middleware.HttpRequesterMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: IHttpRequester returned an error, setting pipeline error, dbug: Ocelot.Requester.Middleware.HttpRequesterMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: IHttpRequester returned an error, setting pipeline error, fail: Ocelot.Responder.Middleware.ResponderMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: 1 pipeline errors found in ResponderMiddleware. Setting error response status code Ocelot.Responder.Middleware.ResponderMiddleware:Error: requestId: no request id, previousRequestId: no previous request id, message: 1 pipeline errors found in ResponderMiddleware. Setting error response status code fail: Ocelot.Responder.Middleware.ResponderMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: 1 pipeline errors found in ResponderMiddleware. Setting error response status code The thread 111 has exited with code 0 (0x0). The thread 0x6f has exited with code 0 (0x0). dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0] requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline finished, Ocelot.Errors.Middleware.ExceptionHandlerMiddleware:Debug: requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline finished, dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: ocelot pipeline finished, trce: Ocelot.Logging.OcelotDiagnosticListener[0] requestId: no request id, previousRequestId: no previous request id, message: MiddlewareFinished: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; 200, Ocelot.Logging.OcelotDiagnosticListener:Trace: requestId: no request id, previousRequestId: no previous request id, message: MiddlewareFinished: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; 200, trce: Ocelot.Logging.OcelotDiagnosticListener[0] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test requestId: no request id, previousRequestId: no previous request id, message: MiddlewareFinished: Microsoft.AspNetCore.Builder.UseExtensions+<>c__DisplayClass0_1; 200, Loaded '/usr/share/dotnet/store/x64/netcoreapp2.0/microsoft.aspnetcore.webutilities/2.0.1/lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] Request finished in 407.9077ms 404 Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request finished in 407.9077ms 404 info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test => RequestId:0HLC9FDIE2EJR:00000001 RequestPath:/api/v1/modules/Test Request finished in 407.9077ms 404

@NicoKno thanks for the extra information! Is  obfuscated or is that what you are actually setting in the DownstreamHostAndPorts.Host? If it is I'm not sure how that would work. It needs to be a valid hostname such as localhost, test.com I don't think  is :o

Just as I said in my last post, the hostnames are obfuscated for the sake of posting here. Normally those are service names from my docker-compose.yml where the gateway service and the services I try to call are started from.

@NicoKno the error you are getting suggests that when the HttpClient calls your downstream service it is getting an exception (the logging here is absolutely useless, I will improve it). I will wait to find out about ""!

@NicoKno OK thanks sorry I missed that! Can Ocelot network to the downstream services and is your https certificate valid?

Ocelot is in the same docker-network just as my services. My https certificate is a self-signed one which I created and passed to each one of the services.

@NicoKno I will add some extra logging so we can work this out! I’m sorry the logging is rubbish! Will try and do it tonight so you can pull a new package ASAP!

@NicoKno please can you install this package
Install-Package Ocelot -Version 5.1.0-unstable0004
Then try your request again and hopefully we should see the error. If you paste the whole it here I should be able to help more!

@TomPallister Thanks for the quick improvement.
This is the concrete error I get now:
Ocelot.Responder.Middleware.ResponderMiddleware:Error: requestId: no request id, previousRequestId: no previous request id, message: Error making http request, exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't connect to server    at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)    at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference1 easyWrapper, CURLcode messageResult)
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult()    at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext() --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at Ocelot.Requester.HttpClientHttpRequester.<GetResponse>d__4.MoveNext() fail: Ocelot.Responder.Middleware.ResponderMiddleware[0] => RequestId:0HLCAAM8E6N6S:00000001 RequestPath:/connect/token => RequestId:0HLCAAM8E6N6S:00000001 RequestPath:/connect/token requestId: no request id, previousRequestId: no previous request id, message: Error making http request, exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't connect to server at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
It seems like my Gateway with Ocelot can't connect to the other service somehow. I also tried to switch from the docker service name to "localhost" in the configuration.json. But with the same error as outcome. Luckily I now can track the issue down further, but I seems as if it is not an Ocelot issue, but on with my docker environment. If there are any ideas anyway, they would be most welcome.

@NicoKno I'm not sure to be honest :( debugging docker networking can be a pain.
This might help https://deis.com/blog/2016/connecting-docker-containers-1/ or this https://stackoverflow.com/questions/41093812/how-to-get-docker-containers-to-talk-to-each-other-while-running-on-my-local-hos
I will close the issue now because I don't think this is Ocelot specific. But feel free to reopen it if you find that it is!! Or any other issue!

Just for the sakes of completeness. I got it working. It was a combination of https and docker networking. I used the externally mapped port of my docker-service, which is not necessary if the gateway runs in the same docker-network, you just use the port which is exposed internally by the specific docker-container.
The other thing was, that I tried to forward the incoming https requests as https to docker-containers having no open https-ports in the internal network.
This maybe of some help for someone.

I have similar issue and i have tried solution @NicoKno above but had no luck and getting same error as mentioned at beginning .
My configuration file:
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "authoradmin.command.api",
"Port": 80
}
],
"UpstreamPathTemplate": "/api/ad/{everything}",
"UpstreamHttpMethod": [ "POST", "PUT", "GET" ]
}
],
"GlobalConfiguration": {
"RequestIdKey": null,
"AdministrationPath": null
}
}
my Docker file is follows:
	authoradmin.command.api:
			image: ${DOCKER_REGISTRY-}authoradmincommandapi
			build:
  			context: .
  			dockerfile: CommandStack/AuthorAdmin.Command.API/Dockerfile
			depends_on:
  				- rabbitmq
			links:
  				- rabbitmq

docker override is as follows:
		authoradmin.command.gateway:
			environment:
  				- ASPNETCORE_ENVIRONMENT=Development
  				- IdentityUrl=http://identity.api
			ports:
  				- "50106:80"
			volumes:
  				- ./CommandStack/AuthorAdmin.Command.API:/app/configuration

Any help is appreciated.

@TomPallister  Can you please help me regarding the issue i have commented above.

Just for the sakes of completeness. I got it working. It was a combination of https and docker networking. I used the externally mapped port of my docker-service, which is not necessary if the gateway runs in the same docker-network, you just use the port which is exposed internally by the specific docker-container. The other thing was, that I tried to forward the incoming https requests as https to docker-containers having no open https-ports in the internal network. This maybe of some help for someone.
@TomPallister Thanks again for the effort, it really helped me along the way.

would you please explain it in details as I am also having the same issue, Please explain it in ocelot config change and docker-compose changes

@NicoKno I am having similar issue, could you please share some detailed explanation, how you had fixed that one.


docs(readme): add use_default_mappings opt for telescope picker

@Nimjii sorry we didn't catch this, feel free to make a PR in place of this one

You can just merge this one, I don't mind ^^


coverage gutter hides breakpoints

Hi,
First thanks for your great vscode extension. My only concern is that  when activated coverage gutters hides breakpoints (I am mainly using vscode for c# dev), which complicates the debug process.
Is it possible to workaround this ?

@b3b00 you can disable the gutters and add line based coverage to get around this issue. https://github.com/ryanluker/vscode-coverage-gutters#tips-and-tricks hopefully that helps!

thanks it helps.


Could this become a source generator instead of a tool?

I really the idea behind this tool, but it would be great to run this as a source generator, so that the API interfaces are updated pretty much every time you save your files.

With the current approach - no. It uses ApiExplorer, for which I basically need to build and run the project.
The problem is that it's hard to get all the endpoint information solely from source code. For example, you can add Versioning package, and it will change all your routes, even though all the controllers are the same.
It might be possible to build a source generator for 90% of cases though. E.g. based solely on controller and default attributes.


Set HSTS preload headers

See https://blog.bigbinary.com/2016/08/24/rails-5-adds-more-control-to-fine-tuning-ssl-usage.html

It appears we do set them correctly on HTTPS and they are rightfully ignored on HTTP in case an attacker has modified them. So, closing.

Reopening for preload:
config.ssl_options = { hsts: { preload: true } }

Also https://hstspreload.org/


Does aac_mf support cbr encoding?

What tool are you using to determine what the bitrate mode is? I can tell you the parameter that controls the bitrate mode in the AAC encoder MFT (CODECAPI_AVEncAACEnableVBR, which is false by default), but I cannot tell what ffmpeg is passing to the MFT.


Symbol generation alternative to Breakpad?

This is not an issue, just a question but I could not find any other place where to ask this, sorry!
I was wondering if, similar to this.project replacing the minidump handling parts of Breakpad, is there a project that can be used to generate symfiles too or is that still done using Breakpad at Mozilla?

Yes, it's at https://github.com/mozilla/dump_syms/

Thanks!


Add health registry experimental feature

resolves #99

I'm still not convinced this is worthwhile and has valid use cases

@kenfinnigan is that up to us? Shouldn't we test the features that can be included in the spec in the future nevertheless? Keep in mind that this was reported as a feature request to the spec.

It's entirely up to us at this point.
I'd suggest seeking clarification on the use case in the MP issue, as without more detail about what is trying to be achieved, it's rife for issues

@kenfinnigan can you then comment on the spec issue, please?


React Native Storybook doesn't work with current CRNA

Thanks for this awesome tool 👍 Unfortunately, we ran into some issue while upgrading our app to Expo 20. Apparently, react-inspector causes it.
TL;DR: When using React Native Storybook within a CRNA (Expo 20), React Native packager throws TransformError during bundling:
TransformError: {appPath}/node_modules/react-inspector/lib/index.js: Couldn't find preset "es2015" relative to directory "{appPath}/node_modules/react-inspector"

Versions:
"expo": "20.1.3"
"react": "16.0.0-alpha.12"
"react-dom": "16.0.0-alpha.12"
"react-native": "0.47.2"
"react-native-scripts": "1.3.1"
"@storybook/react-native": "3.2.8"

Steps to reproduce:

Create a new CRNA or clone sample repo https://github.com/inyono/crna-storybook-expo20:

create-react-native-app
getstorybook
Replace App.js with export default from './storybook';

yarn resp. npm install
Start React Native packager with yarn start resp. npm start
Open app in Expo

Error in terminal: Failed building JavaScript bundle
Error on device / simulator:

TransformError: {appPath}/node_modules/react-inspector/lib/index.js: Couldn't find preset "es2015" relative to directory "{appPath}/node_modules/react-inspector"

same issue

Fixed by: npm install --save-dev babel-preset-es2015
Then add .babelrc file to storybook folder with the es2015 in presets.

Thanks, nice workaround. I modified the .babelrc in root, didn't think about creating one in storybook directory. 😅

@inyono @inspireui it looks like both of you are using custom .babelrc files. Since those aren't managed within our codebase, unfortunately there's no way for us to help facilitate the upgrade.
We did switch our code base from es-2015 to env to support the latest and greatest in javascript language changes.
Can someone verify if this is an issue with an empty vanilla CRNA app and a blank storybook installed through the CLI?

It looks like our move from babel es-2015 to env caused some unexpected packages to break.
Does someone want to submit a PR for this? a custom .babelrc is definitely not the solution if CRNA doesn't work out of the box.

@danielduan this has been fixed upstream
I guess updating the dependency of react-inspector will close this issue?

@Ragnar-H I don't see react-inspector listed explicitly as a dependency so I'm guessing the fix would just be to delete the node_modules and reinstall?
I would consider this case closed if that's the solution.

@danielduan it's a dependency of @stirybook/ui (see lib/ui/package.json). I'll try to update it

@Hypnosphi it's also in addon-actions -  addons/actions/package.json
@danielduan you'd also need to clear the dependency from yarn.lock

Until #1888 gets released and merged, the easiest fix for current apps is following:

Remove all the @storybook/* dependencies
Run npm install or yarn install depending on which lockfile do you use. This will remove the lock for react-inspector package
Restore the dependencies and run install command again


Can I use jstree with this kind of JSON?

Just wondering if this JSON is allowed to be used in jstree? Though I tried it but it didn't really work but want a feedback from the other guys.
I'm trying to use this JSON from a separate ajax request so I can render a jstree checkbox. So basically just going to pass this JSON string in jstree.
This is what it gave me JsFiddle
{
   "type":"object",
   "properties":[
      {
         "name":"id",
         "in":"query",
         "required":false,
         "type":"string",
         "items":{
            "type":"integer",
            "format":"int32"
         },
         "collectionFormat":"multi",
         "title":"id",
         "format":"text"
      },
      {
         "name":"sku",
         "in":"query",
         "required":false,
         "type":"string",
         "items":{
            "type":"string"
         },
         "collectionFormat":"multi",
         "title":"sku",
         "format":"text"
      },
      {
         "name":"code",
         "in":"query",
         "required":false,
         "type":"string",
         "items":{
            "type":"string"
         },
         "collectionFormat":"multi",
         "title":"code",
         "format":"text"
      }
   ]
}

or with deep nested data object https://jsfiddle.net/yr0mkvmd/1/

The required JSON format is documented on the homepage of this repo and on jstree.com - the JSON above will not work. You can however use core.data as a function (also documented) and make the AJAX request yourself and map this JSON to the structure required by jstree.


aio server maximum_concurrent_rpcs ignored

What version of gRPC and what language are you using?
grpc version: "1.46.0"
Python
What operating system (Linux, Windows,...) and version?
mac OS Monterey
What runtime / compiler are you using (e.g. python version or version of gcc)
python 3.8.13
What did you do?
Please provide either 1) A unit test for reproducing the bug or 2) Specific steps for us to follow to reproduce the bug. If there’s not enough information to debug the problem, gRPC team may close the issue at their discretion. You’re welcome to re-open the issue once you have a reproduction.
In the helloworld example, I added a maximum_concurrent_rpcs=1 to the async server and added time.sleep(10) to the method, then I used 2 terminal windows to send request to the server, but both of them appeared to complete in synchronous fashion. First request completed in 10 seconds, the next one completed in 20 seconds. I tried event.wait(10), but yield same behavior.
What did you expect to see?

maximum_concurrent_rpcs should reject the second request given its limit is 1.
If multiple workers (with threadpool) are set, the requests should not be completed in sequential fashion.

What did you see instead?

both requests completed, instead of getting resource exhausted
By sending the two requests using two terminal windows, first request completed in 10 seconds, next one completed in 20 seconds.

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See TROUBLESHOOTING.md for how to diagnose problems better.
class Greeter(helloworld_pb2_grpc.GreeterServicer):

    async def SayHello(
            self, request: helloworld_pb2.HelloRequest,
            context: grpc.aio.ServicerContext) -> helloworld_pb2.HelloReply:
        time.sleep(10)
        return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)

async def serve() -> None:
    server = grpc.aio.server(
        migration_thread_pool=futures.ThreadPoolExecutor(max_workers=10),
        maximum_concurrent_rpcs=1
    )
    helloworld_pb2_grpc.add_GreeterServicer_to_server(Greeter(), server)
    listen_addr = '[::]:50051'
    server.add_insecure_port(listen_addr)
    logging.info("Starting server on %s", listen_addr)
    await server.start()
    await server.wait_for_termination()

Anything else we should know about your project / environment?

Hi, I ran into the same issue with maximum_concurrent_rpcs being ignored.
Additional observations:

It happens for both time.sleep() and await asyncio.sleep() in the client.
It happens also for python 3.10 and grpcio versions 1.59.3 and 1.60.0.

The class _ConcurrentRpcLimiter implements the behavior of waiting if more than maximum_concurrent_rpcs are already pending in https://github.com/grpc/grpc/blob/master/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi#L862 :
predicate = lambda: self._active_rpcs < self._maximum_concurrent_rpcs
await self._active_rpcs_condition.wait_for(predicate)

This differs from the non-asyncio server implementation

https://github.com/grpc/grpc/blob/master/src/python/grpcio/grpc/_server.py#L1178
https://github.com/grpc/grpc/blob/master/src/python/grpcio/grpc/_server.py#L1047
and from the documentation of the option maximum_concurrent_rpcs.

Thanks for the report!
Interestingly, we even have a test in Aio to make sure we're waiting instead of raising error.  After internal discussion, we do believe the behavior should match the docstring (and Sync stack).
I'll create a PR to change this shortly.


Unable to revalidate individual post page

https://github.com/ruchernchong/portfolio/blob/9c3f49320a6af3cc4f93dd6c88832037020cbf32/pages/api/revalidate.ts#L29
There is a problem with this on post delete as the slug becomes empty.

https://github.com/ruchernchong/portfolio/blob/9c3f49320a6af3cc4f93dd6c88832037020cbf32/pages/api/revalidate.ts#L27
This could be the potential reason for getting an empty slug as the sanity client is querying a now deleted post.


Type Variation doesn't show new type when create it in the theme

Tested versions
v4.3.stable.steam [77dcf97d8]
System information
windows 10
Issue description

When I create a new Type in the theme, it doesn't show up in the Type Variation but I can use the created type manually

Steps to reproduce
"First, create a new theme. Then, within the theme, create a new type under the types category.
Next, select the theme in the PanelContainer node.
After that, look for the newly created type variation under Type Variation.
If it cannot be found, manually entering the new variation name works to apply it."
Minimal reproduction project (MRP)
bug.zip

Seems it's populating the options list based on only the default theme and the project theme, and it was done intentionally like that (lines 452-453):
https://github.com/godotengine/godot/blob/a5830f6eb9fe25fbb7e58a723dbea8509aec8a85/scene/gui/control.cpp#L447-L473
I'm not familiar with the Theme code but I'd guess it was done like that for performance reasons, and thus might potentially need some internal rework to change/enhance that.
A simple improvement for now could be mentioning this quirk in the docs (shown as tooltip in the inspector):
https://github.com/godotengine/godot/blob/a5830f6eb9fe25fbb7e58a723dbea8509aec8a85/doc/classes/Control.xml#L1054-L1059

I'm not familiar with the Theme code but I'd guess it was done like that for performance reasons

it's done like that, because it's difficult to determine the Theme that should be used for listing variations. Any Control's ancestor might have another Theme assigned or the theme can be changed at runtime etc. The default/project themes are the only reliable option.

There is also this issue on same topic https://github.com/godotengine/godot/issues/80732


Panic run time error when encrypting with P521

I'm getting an error when encrypting with the P521 elliptic curve. The error is pasted below:
panic: runtime error: slice bounds out of range [recovered]
        panic: runtime error: slice bounds out of range

goroutine 5 [running]:
testing.tRunner.func1(0xc4200ec0f0)
        /home/adam/.gvm/gos/go1.10.3/src/testing/testing.go:742 +0x29d
panic(0x559fa0, 0x654e40)
        /home/adam/.gvm/gos/go1.10.3/src/runtime/panic.go:502 +0x229
github.com/obscuren/ecies.(*PrivateKey).GenerateShared(0xc420010780, 0xc42006fc90, 0x20, 0x20, 0x655840, 0xc420010780, 0x0, 0x0, 0xc42006fab8)
        /home/adam/go/src/github.com/obscuren/ecies/ecies.go:106 +0x292
github.com/obscuren/ecies.Encrypt(0x5a3080, 0xc420010300, 0xc42006fc90, 0xc420016418, 0x3, 0x8, 0x0, 0x0, 0x0, 0x0, ...)
        /home/adam/go/src/github.com/obscuren/ecies/ecies.go:233 +0x101
github.com/c3systems/c3/core/c3crypto.Encrypt(0xc420010840, 0xc420016418, 0x3, 0x8, 0x1, 0x1, 0x610090, 0x6100d0, 0xf)
        /home/adam/go/src/github.com/c3systems/c3/core/c3crypto/c3crypto.go:114 +0x3dd
github.com/c3systems/c3/core/c3crypto.TestEncryptAndDecrypt(0xc4200ec0f0)
        /home/adam/go/src/github.com/c3systems/c3/core/c3crypto/c3crypto_unit_test.go:127 +0x38b
testing.tRunner(0xc4200ec0f0, 0x5906a8)
        /home/adam/.gvm/gos/go1.10.3/src/testing/testing.go:777 +0xd0
created by testing.(*T).Run
        /home/adam/.gvm/gos/go1.10.3/src/testing/testing.go:824 +0x2e0
exit status 2

My code is below:
func Encrypt(pub *ecdsa.PublicKey, data []byte) ([]byte, error) {
	if pub == nil {
		return nil, ErrNilPublicKey
	}
	if data == nil {
		return nil, ErrNilData
	}

	eciesPubKey := ecies.ImportECDSAPublic(pub)
	if eciesPubKey == nil {
		return nil, ErrGeneratingECIESPublicKey
	}

	return ecies.Encrypt(rand.Reader, eciesPubKey, data, nil, nil)
}

The error is happening on L106 of ecies.go. The problem is that len(skBytes) is 66, whereas pub.params.KeyLen is 32 and therefore len(sk) is only 64. The code is trying to copy into the sk array starting at the index position -2 (len(sk)-len(skBytes) = -2).
I don't know enough about cryptography to suggest a solution, otherwise I would be happy to submit a PR. Any thoughts?
EDIT - I'm also getting the following error when using a P384 key: shared key params are too big

hi, do you have any solutions for this issue? it looks like this problem still exists


docs: Reccommend docker for installing alongside other services.

Fixes #18534.

Testing plan:
GIFs or screenshots:

@rht can you review this? Thanks

I think a simpler edit is better; we should discuss the reverse proxy options more fully on the docker-zulip page if we want to do so, rather than in this particular place linking to it.

I merged a revised version of this concept; thanks @adambirds and @rht for helping make this happen!


show table of selected data points (both axes)

Interactivity could be better, but we have a table.


Topic: the role of GitHub and Microsoft

In the pilot episode you said something along the lines of, "yes, it's on GitHub, we know who owns GitHub, ha ha ha".
I think it would be interesting to have the question about GitHub and Microsoft (GitHub is owned by Microsoft) as a topic for an episode, explaining what you meant there and why you choose to have this repository on GitHub.
Is Microsoft a great friend of FOSS, or an enemy to be avoided, or something in between?
Is it a problem for FOSS if a huge company becomes a de-facto gatekeeper deciding who can contribute?
Personally I would prefer to not have a GitHub account, because I don't like the fact that everyone is forced to a single proprietary platform in order to contribute to FOSS. FOSS should be free, that is what the F in FOSS is about. The current situation is good for Microsoft, and bad for FOSS.
Anyway, my suggestion is to have such questions as a topic for a podcast episode.

Software Freedom Conservancy have a "Give Up GitHub!" page with some more arguments about this:
https://sfconservancy.org/GiveUpGitHub/

Is there an obvious guest we should invite and take this discussion with if we would do this topic in an episode?

Is there an obvious guest we should invite and take this discussion with if we would do this topic in an episode?

You could invite someone from one of the alternatives such as CodeBerg or SourceHut, or someone from Software Freedom Conservancy who could explain their arguing behind https://sfconservancy.org/GiveUpGitHub/


Transition to sd8887-nxp

NXP has released a GPLed drier for the sd8887 chipset which is already used in balenaOS. This commit updates the balenaFin debian packages to use it.

Self-certifying as was approved by @majorz on draft state.

@balena-ci I self-certify!


Close Emoji panel by clicking elsewhere

Currently, only way to close emoji panel is to click again at the emoji button which opened up the panel.
I'd like to have the option to close it by clicking anywhere else except for the panel.

👋


How to get onPress event of multiple touchable components that are placed inside the view of custom Marker or Callout?

Question
I am trying to place 2 touchable components inside the custom view of a Marker and Callout. I am not able to get the onPress events of the 2 individual touchable components. I get the onPress of the marker and callout but I cannot get the onPress of the individual touchable component.
Is there a way I can get the onPress event of each touchable component placed inside the custom view?
I use  react-native-maps v0.24.2, react-native v0.59.9

https://github.com/react-native-community/react-native-maps/blob/master/docs/callout.md#calloutsubview--component-api
you can check it

only supported on ios

I think this is the must-have feature, that's ridiculous when you can fire only one event on Callout.


Add documentation for bootstrap commands

Path to page with content (do not include domain name):
en/os/1.22.x/concepts/bootstrap-commands/
What content is incorrect?
N/A
What should the content say or communicate?
Include the bootrstrap commands as a section or at least a reference.

Fixed in PR #485


Graceful Recovery test needs to be improved

Describe the bug
Graceful recovery test possibly have a race condition leading to unexpected failures in pipeline. The behavior is intermittent.
To Reproduce
Steps to reproduce the behavior:

Follow this guide to run functional tests locally.

Expected behavior
No intermittent failures for graceful recovery tests
Your environment

Version of the NGINX Gateway Fabric - release version 1.2
Version of Kubernetes

Client Version: version.Info{Major:"1", Minor:"26+", GitVersion:"v1.26.13-dispatcher", GitCommit:"eb237aa977a4a0cf4fcec65fc730b4d96af37ccf", GitTreeState:"clean", BuildDate:"2024-02-08T00:19:39Z", GoVersion:"go1.20.13", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"30", GitVersion:"v1.30.0", GitCommit:"7c48c2bd72b9bf5c44d21d7338cc7bea77d0ad2a", GitTreeState:"clean", BuildDate:"2024-05-13T22:02:25Z", GoVersion:"go1.22.2", Compiler:"gc", Platform:"linux/arm64"}
```
- Kubernetes platform - Kind
* Details on how you expose the NGINX Gateway Fabric Pod - Read test setup
* Logs of NGINX container: `kubectl -n nginx-gateway logs -l app=nginx-gateway -c nginx` no logs
* NGINX Configuration: `kubectl -n nginx-gateway exec <gateway-pod> -c nginx -- nginx -T` no logs

**Additional context**
Add any other context about the problem here. Any log files you want to share.

Are you able to show the error messages caused by the race condition or link to any specific pipeline runs?


Changing Options to Results

the idea has been brewing in my head for a while and it may be too opinionated, could make that into a trait in the util crate probably, not sure
but my idea is, instead of putting deserialized or cached fields in an Option which means we need to keep updated documentation on why each would be None, we could put that information in an error enum something like this:
pub type Nullable = Result<T, NullErr>;

pub enum NullErr {
    NotInGuild,
    NotSentInInteraction,
    …,
    Unknown
}

// while deserializing a message or an application command
member: member.ok_or(NullErr::NotInGuild),

// while deserializing a partial member interaction
permissions: permissions.ok_or(NullErr::NotSentInInteraction),

this is just the idea of it, idk much about serde, and the enum variants being flexible means we can use the same variant for multiple types
this doesn’t stick to the way discord sends things but i think this change is in the area thats specifically for rust
it’s more a convenience change for both maintainers (dont need to keep the documentation updated, just the mapped enum variants) and users (dont need to check the discord docs)
what do you think?

Option is already the Nullable type you're representing, if a value wasn't sent by discord it shouldn't be considered an error, it should be considered null (which is safe rust, is the point of Option)

nullable is just the bad name i put there, the point is giving information as to why it’s None

In most circumstances, None means "Discord didn't send information"/"Discord sent null"

maybe i couldn’t explain it well enough in the main post, it’s why discord didn’t send the information, like possible causes of it

The problem is that there are multiple reasons discord didn't send the data

the enum variants being flexible means we can use the same variant for multiple types

imho:
Rusts Result should be used when an actual error can occur. For example, a failed fetch request, or if there was a problem validating some information, etc.
Instead rusts Option is there to represent 2 states: It exists/It does not exist.
Taking interaction.member as the example here:
An interaction.member exists when the interaction was triggered from a guild and it does not exist when it was triggered from a DM. Therefore the purpose of Option fits better in this case.
None says that the value does not exist, and yes, it does not specify why, but most of the time you do not need to know much more.
Changing it to Err(NullErr) would basically mean that it's intended for me to match on NullErr to know what actually happened. This can get pretty inconvenient as more variants get added.
For example:
use NullErr::*;

match interaction.member {
    Ok(member) => {}
    Err(err) => match err {
            NotInGuild => {}
            NotSendInInteraction => {}
            Unknown => {}
    }
}

As you can see there, the error could be 1 of 3 different variants, but in fact only one of those would ever be valid, namely NotInGuild. So we would still need to document which of these variants could actually occur.
While I understand the motivation behind this, I don't think it is worth having a NullErr enum instead of just using Option, because it doesn`t really make the documentation problem go away and can potentially cause a worse UX.
Also, sometimes there are multiple reasons why a value is not present. As a lib, we should not make any assumptions about why it is not present in this case. For example channel.topic may not be set for multiple reasons: it's just not set, its a thread channel, it's a dm channel, it's a voice channel. Whilst technically it's possible to somehow get the "real" reason of why a value might not exist, we cannot be sure 100%. Furthermore this adds a lot of overhead to the deserialization process, which in general is not worth it.

This would place the burden on us to determine why data is missing in many different cases, when most users only care if the data exists or not. Thank you for the proposal, but we won't be implementing this change.


Unable to produce flux from flux rocks in IE crusher

JEI only lists dolomite as a recipe in the IE crusher while the BWM mill, TFC quern, and Horsepower grindstone has all the flux rocktypes showing.

When actually inserting flux rocks into the crusher, nothing happens and the rocks just sit there.

Fixed in next version


Average time calc on Linux broken

Compiled with gcc (gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0).
06-01-2019 18-05-59: Cpp Exiting with GameEnd Average step time 5457.8, total time: 1.52109e+07, game loops: 2787
06-01-2019 18-05-59: ocraft Exiting with InProgress Average step time 7056.86, total time: 1.96604e+07, game loops: 2787

Solved with #128 and #130


Fix that aliases from SHELL_PLUS_MODEL_ALIASES were not applied.

L141 removal is just a cleanup, app_aliases was not used in this scope.
Aliases were never applied because alias was always reset to model_name when they were no prefix on L176.

Coverage remained the same at 38.106% when pulling 0f5af53d48b138ea15145ae7593caf8098be8ec5 on etienned:master into 2457d2c5f3e9b3af1c1fc3836f7133c7df5920fe on django-extensions:master.

Thanks.
Could you maybe write some tests for this as well ?


Feature request: Package SideQuest as a Flatpak

Packaging SideQuest as a Flatpak (and ideally distributing it through Flathub) would be make the program more accessible to Linux users regardless of their distribution, and would greatly simplify the installation process.
I have created the following repository as a showcase of a working Flatpak of SideQuest.
https://github.com/garrhow/com.sidequestvr.SideQuest

This is great an i really appreciate the time and effort you have put in here. The problem is our capacity is limited and we don't have the resources to maintain this or other package manager submissions and we cant rely on the consistency of user contributions like this one.
Once again, thanks for your effort here.


feat(search): optionally enable regex

In the first part of my attempts to improve the global search pane, I added an option to enable or disable searching with a RegEx. A while ago, RegExs were the default but that was switched in #2826. This brings back the ability to search with a RegEx if you click the button like in VSCode. Here is a demo:
https://user-images.githubusercontent.com/4527949/120423367-4483b800-c338-11eb-886c-69799a71af7e.mov
I still need to figure out the Vim-style navigation, but the functionality is there.
Fixes #2599

Forgot to mention this will fix #2599

This is awesome @zbaylin - thanks for adding this!

I still need to figure out the Vim-style navigation, but the functionality is there.

For sure, we can think about in the scope of another PR though - I have to figure out the right gesture for this sort of navigation. Some things of the top of my head:

The ability to switch to a 'normal-mode' and use L to navigate over to those buttons
A key command, like Alt+L to switch to that button strip

A good compromise in the meantime, though, that we could add to this PR, would be to make the regexp button 'sneakable'

Just made a few minor tweaks:

Made the new button 'sneakable' so that it can be accessed via keyboard-only, while figuring out a more robust way to navigate to it
Added a tooltip
Just tweaked the msg - moved from a prescriptive EnableRegex to descriptive ToggleRegexButtonClicked (following the Elm-style model of describing what happened, and letting the model update accordingly, vs prescribing how the model should update)

Already worked great though! :sunglasses: Feel free to tweak if you aren't happy with any of the changes I made

Awesome @bryphe! I just merged your tweaks with the changes I made locally. When I was on my flight I decided to add this to the vim navigation in the updater, so now we have that + sneaking! Very excited to get this in :)

When I was on my flight I decided to add this to the vim navigation in the updater

Nice! Sorry to add a merge on your plate. Thanks for the exploring the vim navigation - I'm curious if there will be users who are confused with the extra horizontal window nav to get to the search input, but there's a few options for dealing with that (ie, we could move the button below the input text - might make sense if we have more buttons / options later).
Code change looks good, feel free to merge when you're ready 👍


Could support game image and rigion hk?

A good project, could it support game surface image url and information from rigion of hk?

I'll see what I can do. Last time I checked it wasn't possible, hopefully this time around nintendo improved their HK stores.

I think both Nintendo HK and KR have improved their site.
E.g. it seems you can get the relevant info for BOTW's KR/HK nsuid with these urls:
https://store.nintendo.com.hk/70010000009367
https://store.nintendo.co.kr/70010000009367

Hi!
At the moment, I'm not planning on adding new regions to the library.
But I'll happily accept PRs for them if you want to give it a try.
Cheers,
Fede.


for step, (x_spt, y_spt, x_qry, y_qry) in enumerate(db):

y_spt and y_qry are not the true labels of corrsponding images, are they just the indexes?

they are indices of the selected classes(n-way) for this batch, in a way they are the true labels. We cannot use true labels because they are not exact values from 0 to (n-way)-1.


Yuzu detected as Atmosphere (No data.arc found)

As mentioned in #13, due to yuzu-emu/yuzu#6472 being merged, UMM's method of detecting Yuzu no longer works and it is detected as atmosphere instead. I do not think that sd:/atmosphere/contents/01006A800016E000/romfs/ can be set as a location for romfs layeredfs due to Yuzu's different layeredfs folder layout compared to atmosphere. So fixing this would require detecting Yuzu in a different way, but since yuzu-emu/yuzu#6471, which should fix this, will presumably be merged soon, I'll just recommend using an older version of Yuzu for now.
Yuzu releases can be found here, Yuzu 666 was the release that introduced this change.

Previously mentioned PR looks to have been merged now, so I'll closing this.


Generate Communication 1.0.0 CLI extension

Resource Provider

Azure Communication Services (short name: Communication)
Description of Feature or Work Requested

Generation of CLI extension
Release 1.0.0 version for GA
Currently the service has a public preview version, 0.1.0, available:
https://github.com/Azure/azure-cli-extensions/tree/master/src/communication
Minimum API Version Required

2020-08-20
Swagger Link

https://github.com/Azure/azure-rest-api-specs/blob/master/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/CommunicationService.json
Target Date

ASAP. Let me know how we can help expedite the process

Communication

Close this issue as it's supported by https://github.com/Azure/azure-cli-extensions/pull/3216


Generated Sitemaps

Hi,
I'm looking at adding sitemap generation support to CMS and was wondering if this is something you'd be interested in getting into the main line. I'm also curious if anyone has done this before or had tentative plans to implement.
I'm not looking at fine-grained priority control or anything fancy to start, the only requirement I have is to be able to stop specific 'hidden' pages from ending up in the sitemap.  I noticed an is_shared on the pages that I can't find used for anything. Would this attribute be safe to adopt? I like the idea that 'shared' pages are ones I'm happy with everyone knowing. I'm also lazy and this means I wouldn't need to modify any tables.
I intend to add whatever is required for a sitemap config to be added to a cms_site. Likely a 'sitemap_path' that, if set, would generate a sitemap at that URL.
Thanks
~Clarke

Aye, I'll make sure to skip is_published. I'm going to need to add my own flag for is_public, since some pages I want available to people but not advertised in the sitemap.
And aye, I'm going to support extensions since I need them myself.
I'll probably send a first request of a simple implementation, second request with extension support, and the a third request
with is_public.

Closed with #137


Events page with only PUL data

We recently added a link to Bibdata from the Library Catalog home page (https://github.com/pulibrary/orangelight/pull/2767). This currently links to the Events page, which includes two kinds of records that we should not say are fully open:

ReCAP partner records
Licensed metadata we receive from vendors

We should add a page that lists only data we have the rights to make available with a CC0 license.
Related to #578: this page could probably the same as the POD data feed, since the same licensing issues impact sharing data with IvyPlus partners.

Because we have a page with a full statement on our dataset (https://catalog.princeton.edu/dataset), this page can be very simple. It only needs a heading of "PUL Open Dataset" and a list of events.

Fixed by https://github.com/pulibrary/lib_jobs/pull/490


Update 2b_ManagementInfraPS.md

Updated one small typo at line 174 "Scane for updates" to "Scan for updates"

Fixed!


fix: support nested subdirs in remote templates

Changes

:bug: explicitly set template directory file mode to 0755

For some reason when a node in the git in-memory file system is
Stat()ed, if it's a directory the mode bits are 0644 which is not
correct, and causes a failure when trying to write the templates.
This commit explicitly sets the file mode for all directories to
0755.
/kind bug

/lgtm


refactor:remove common_error::prelude

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
Remove prelude mod from common-error crate. Most re-exports in the prelude mod is seldom been used.
Remove the prelude mod and replace usages of prelude by using items explicitly.
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

Oops, sorry, could you please resolve the conflicts? @Gump9 😢

Oops, sorry, could you please resolve the conflicts? @Gump9 😢

👌,i will


Training batch size

Hi, thanks for sharing your fantastic work! As indicated in the paper, when using BLIP-2 as backbones, it requires 64 V100s to train the model with batch size 128 on 8 nodes (16 per node), while using Flamingo, it requires 8 A100, with batch size 16. I wonder if it's possible to train with a smaller batch size? Many thanks.

Yes. We also tried using batch size 1/4/8, on single debug gpu and it works fine.


Point Size properties : Compatibility Check

Hi,
My Point Size Value dosen't seems to work. I'm trying to see if my version of Unity (2019.4.8f1) allows me to execute this operation but I can't seem to find where in the script the value should be set to 0.
What the PointCloudRender scripts:

Any input on that topic would be truly appreciated.
Thanks!
Mathieu.

Which platform (Graphics API) are you using? DX11 on Windows?

Direct3D11 on Windows.

As noted on README, it doesn't work on DX11.

I'm closing this issue now. Please reopen it for further problems.


fix: Web - Members page search bar does not get focused

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/26955
PROPOSAL: https://github.com/Expensify/App/issues/26955#issuecomment-1710125240
Tests

Go to workspaces and select members
Select a few members
Verify that the search bar is focused after clicking a user on all platforms except mobile web
Click on remove button and confirm to remove the user
Verify that the search bar is focused after removing user

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Go to workspaces and select members
Select a few members
Verify that the search bar is focused after clicking a user on all platforms except mobile web
Click on remove button and confirm to remove the user
Verify that the search bar is focused after removing user

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/129500732/42ba8719-72ee-4c99-a4dd-7023d75771e6

Mobile Web - Chrome
https://github.com/Expensify/App/assets/129500732/20994d39-5791-447c-9d5a-6b8a9caaa708

Mobile Web - Safari
https://github.com/Expensify/App/assets/129500732/2072118d-92a8-43cd-8cbc-271796a2bf94

Desktop
https://github.com/Expensify/App/assets/129500732/49b542c6-0b6e-49ff-8e40-00ca606d7b60

iOS
https://github.com/Expensify/App/assets/129500732/9a5c7ec0-5188-4f68-bdd6-f86ef967b377

Android
https://github.com/Expensify/App/assets/129500732/c35c3c9f-3bf7-49b0-b05d-600c9dfa0ef5

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@dukenv0307 Why don't the test steps match the original issue which was triggered when removing members?

@dukenv0307 So you're saying you haven't fixed the issue?

@dukenv0307 I can't see any reason why we wouldn't want to refocus the input after deleting a member, just like we do after inviting a member (i.e. the second case in the linked issue that was already fixed), so that's the fix we're looking for here (you can revert your other fix if it doesn't handle this issue).

@dukenv0307 Thanks! Is there a more generic solution here that refocuses when the delete confirmation modal closes? Ideally we'd refocus when tapping Cancel too.

Having Android build issues unfortunately, so will have to finish reviewing tomorrow!

@dukenv0307 Can you remove the input focus on every selection? It feels really janky to me on native devices to have the keyboard popping up every time I tick a user. Unless we have an open issue stating it as unexpected behaviour, I don't think it's worth "fixing" here.

@dukenv0307 The branch has conflicts.

@dukenv0307 Could you also update test step 3 to include that it won't happen on mobile?

@dukenv0307 Thanks! Looks like lint is failing now :sweat_smile:

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.77-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Remove unnecessary equals/hashCode from ManyToMany test case

Since the PersonAddress is the only class that is used inside a
collection, only that class needs to implement equals and hashCode.

That's wrong. The Person and Address equals and hashCode are needed.
return Objects.equals( person, that.person ) && Objects.equals( address, that.address );

But if they are needed, I wonder why the test also runs without them. Especially since the test should demonstrate exactly that equals/hashCode are needed in this case.

The test runs even if the default equals and hashCode are used. But just because it does not fail, it does not mean you should omit those. For more details, check out this article.


Restart goleveldb takes long time to run

We have a long-lived application using goleveldb in our production environment. After several months running, the space occupied by leveldb is about 400+GB, and the MANIFEST file occupies about 20+GB. During restart this application, I notice that recovery of the MANIFEST file takes several minutes to run. In my opinion,  the MANIFEST file records the log of compaction. So should goleveldb take snapshots for the MANIFEST file periodically to reduce the restart time ?
Thanks very much!

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing.
github.com/stretchr/testify v1.7.0
I think using the original test dependency library should achieve the desired test results.

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing.
github.com/stretchr/testify v1.7.0
I think using the original test dependency library should achieve the desired test results.

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing. github.com/stretchr/testify v1.7.0 I think using the original test dependency library should achieve the desired test results.

The reason I introduce github.com/stretchr/testify is that I think testing code can be more terse  than using testing.
For example:
github.com/stretchr/testify
import "github.com/stretchr/testify/require"

require.NoError(t, err)

vs
testing
import "testing"

if err != nil {
    t.Fatalf()
}

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing. github.com/stretchr/testify v1.7.0 I think using the original test dependency library should achieve the desired test results.

The reason I introduce github.com/stretchr/testify is that I think testing code can be more terse than using testing. For example: github.com/stretchr/testify
import "github.com/stretchr/testify/require"

require.NoError(t, err)

vs
testing
import "testing"

if err != nil {
    t.Fatalf()
}

But I feel that fixing bugs and adding a new test dependency library are two different things. I think you can raise a separate PR to add a new test dependency library. I also feel that if you want to replace it with your recommended dependency library, it is best to use one standard for all testing methods. Otherwise it would be strange to have two sets of standards in one set of code.

Well，I think it's not all-or-nothing.
In lots of popular golang projects (e.g., kubenetes, etcd and gin), they use testify and testing both together.

Well，I think it's not all-or-nothing. In lots of popular golang projects (e.g., kubenetes, etcd and gin), they use testify and testing both together.

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing. github.com/stretchr/testify v1.7.0 I think using the original test dependency library should achieve the desired test results.

The reason I introduce github.com/stretchr/testify is that I think testing code can be more terse than using testing. For example: github.com/stretchr/testify
import "github.com/stretchr/testify/require"

require.NoError(t, err)

vs
testing
import "testing"

if err != nil {
    t.Fatalf()
}

But I feel that fixing bugs and adding a new test dependency library are two different things. I think you can raise a separate PR to add a new test dependency library. I also feel that if you want to replace it with your recommended dependency library, it is best to use one standard for all testing methods. Otherwise it would be strange to have two sets of standards in one set of code.

Well，I think it's not all-or-nothing.
In lots of popular golang projects (e.g., kubenetes, etcd and gin), they use testify and testing both together.

This is still an interesting question, that is how many files were deleted by leveldb during compaction. How many files were added will be recorded inside the version control, update the version status, and then if the database is closed, the database will be restored by the version information. This way there is a problem that when the database has a large amount of data and has been running for a long time, the version log file will be very large, resulting in a long time to restart the database. My idea is to add database parameters, the version file to a certain degree of size, I use the current state to generate version information, delete the original version file, effectively prevent the version file expansion.

Yes, in this PR, I add an option to limit the maximum size of the MANIFEST file.

I've read your code, and I think your logic is right. But one thing I don't understand is why you have added a new dependency library for testing. github.com/stretchr/testify v1.7.0 I think using the original test dependency library should achieve the desired test results.

The reason I introduce github.com/stretchr/testify is that I think testing code can be more terse than using testing. For example: github.com/stretchr/testify
import "github.com/stretchr/testify/require"

require.NoError(t, err)

vs
testing
import "testing"

if err != nil {
    t.Fatalf()
}

But I feel that fixing bugs and adding a new test dependency library are two different things. I think you can raise a separate PR to add a new test dependency library. I also feel that if you want to replace it with your recommended dependency library, it is best to use one standard for all testing methods. Otherwise it would be strange to have two sets of standards in one set of code.

Well，I think it's not all-or-nothing. In lots of popular golang projects (e.g., kubenetes, etcd and gin), they use testify and testing both together.

Sorry brother, this is just my personal opinion. Don't take it to heart.


Fix countAlphabets method

There is currently a method called countAlphabets that lives in /lib/countAlphabets.js.
It is incomplete and needs to be fixed!
This method count occurences of letters in string, and returns new string in format [letter1]:count
Acceptance Criteria:

Running yarn test countAlphabets results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!

@BlakeGuilloud i would like to work on dis

No worries @showmeyourhits ! I'm going to close this issue out.


Release updated conda package for 16.36.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12022872375. Examine the logs at this URL for more detail.

Hi! This is the friendly conda-forge automerge bot!
I considered the following status checks when analyzing this PR:

linter: passed
travis: passed
azure: passed

Thus the PR was passing and merged! Have a great day!


:hammer_and_wrench: [TASK] : Campaign Builder / Campaign Templates

IN SCOPE
As an admin user, I need to be able to set the proposal questions required by a category, so that I can crowdsource the types of proposals I want to see in my campaign. This should be defined via JSON (include field descriptions and data validations) in the MVP.
GIVEN an admin user in campaign editor
WHEN select existing OR upload new category template
THEN apply selected template as category question template for that event
Note: entire proposal template will be defined for each category. In future state, will have option to easily inherit questions from other categories, so it's easy to edit just the sections that differ across them.
Todo:

[x] Upload base category-question.json
[x] Setup base category milestones
[x] Base Funded Projects Agreements select

Questions NK:

Above is configuration is json, we most not turn the campaign builder in a full cms ;)
I would see a template as a fully configured Voting event that has run successfully and is closed?
We might want to start thinking about a Treasury / Brand Manager product segment, in which these things are setup.
We are reaching scope creep. MVP Y/N.

AC:

Template Selection added to Campaign Editor
Discussion with engineering team to align on remote widget approach vs alternatives, in order to serve both short and long term needs
Prototype draft completed
Review prototype with stakeholders from admin team to ensure process viability
Review prototype with engineering team to ensure feasibility
Prototype ready for user testing

OUT OF SCOPE
As an admin user, I need to be able to select templates for proposals, categories, and milestones, so that I can control the questions answered by different types of proposers.
GIVEN an admin user in campaign editor
WHEN select proposal template
THEN apply selected template as base proposal template for that event
GIVEN an admin user in campaign editor
WHEN select milestone template
THEN apply selected template as milestone question template for that event

FYI @coire1

@mike-mcnulty Do you have some guidance on what kind of 'Base Funded Projects Agreements select' we are expecting, it's like ToS agreement checkbox for PoA, SoM's?

TODO: align with @minikin on remote widget approach and reconcile requirements; likely UX = select remote widget from dropdown, preview how widget will render, and confirm (as an admin user inside campaign builder)
TODO: move funds agreement selection into #317

@nielskijf let's revisit this one


Move v4-dev to master

Let's get back to master being our default branch. This might screw a ton of things up, so holler at me if we should hold off. I'm hoping to do this alongside v4.2.

Ensure v3-dev has everything from master
Delete existing master
Switch to v4-dev, then git co -b master
Push new master branch
Delete v4-dev

And then, the docs and settings:

[ ] Make master default branch again
[ ] Update links across docs
[ ] Update links across readme

Missing step before deleting the v4-dev branch: update the target of all opened PR to target master rather than v4-dev (otherwise, all these PRs would get closed by the branch deletion)

v3 work to fix XSS stuff moved to master, so closing out.


Warnings on builds when dynamic functions are used with incremental and parallel build

Sphinx Needs creates warnings starting with second build when dynamic functions are used with incremental and parallel build.
Now that's a tough one to crack :)
How to reproduce

Create a need in rST
Create a second need and have one option copied over from the first need

Example:
.. req-sw::
   :id: NEED_01
   :status: open

.. req-sw::
   :id: NEED_02
   :status: [[copy("status", "NEED_01")]]

Create a validation for copied option

needs_warnings = {
  'req_with_no_status': "(type == 'req-sw') and \
        (status is not None and len(status) != 0) and \
        (status not in ['open','done'])"
}

Start Sphinx Build with parallel build (Make sure no warnings are present)
Start Sphinx Build a second time with parallel build (Make sure the build was incremental)
Warning raised for NEED_02

WARNING: req_with_no_status: failed
                failed needs: 1 (NEED_02)
                used filter: (type == 'req-sw') and         (status is not None and len(status) != 0) and         (status not in ['open','done'])

@danwos This one is getting more important now as the dynamic functions like tr_link from sphinx-test-reports  extension does not work as well in this scenario
With all the debugging into sphinx and sphinx-needs that we did recently, it should be able to find a solution for this now I feel.
Maybe @Rubyfi can help.


Replace class with AnyObject in all protocol definitions

What do you want to happen?
Replace class with AnyObject in all protocol definitions (class is deprecated). Happy to do it myself unless there is a reason not to make this change.
public protocol EngineDelegate: class {

into
public protocol EngineDelegate: AnyObject {

👍
This produces a deprecation warning on Xcode 13.

Using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead

It looks like this was already fixed in #894 but there hasn't been a tagged release in a very long time.


Add/extended (Sub) Section for IPNS

(Sub) Section for IPNS
Purpose
To add more content about IPNS into the curriculum. This can either be its own section or add on to the current subsection that currently exists in "Mutable Content"
Proposed Solution

[x] Graphics and a couple paragraphs about how IPNS works in more detail

[x] Graphics - fix "pinning options" image to portray a clearer & more relevant message
[x] paragraphs

[x] Short explanation of tradeoffs and common shortfalls
[x] Show/describe how publish/subcribe (pubsub) works along with it and compliments it
[x] Show/describe how IPNS works with DNS (aka DNSLink) and use ipfs.io as an example
[x] Add content about the IPNS records themselves (nonce value, expiration time, IPNS object, etc...).
[x] Short videos for how to operate IPNS from CLI

It would be cool to show what you can do with IPNS. We have already shown how to publish something with IPNS in "The IPFS API (Tutorial)". But we can show how to enable pubsub with IPNS, we can show how to publish with a generated key that is not "self" (your default key on your ipfs node), export and import keys. All of this is best operated through the CLI, in my experience, so we can also do a short video going through this process and it will be easy to follow. These videos can be similar to ones done in "IPFS Setup (Tutorial)" It can extend and compliment the content in docs.ipfs.io/ipns. It would be a big rabbit hole if we go too much into the weeds of IPNS because of a variety of edge cases that have no easy solutions/explanations. So the trick will be to hint at those issues without addressing them too explicitly. This can farm engagement for deep dives.
Where Can we find out more about this topic?
Here are some resources that explain common points regarding IPNS:

Current ipns spec https://github.com/ipfs/specs/blob/main/IPNS.md
overview of ipns https://pl-strflt.notion.site/IPNS-Overview-and-FAQ-071b9b14f12045ea842a7d51cfb47dff#0963fe6b470a4c55b1929146c360dc95
https://github.com/ipfs/specs/blob/main/naming/pubsub.md
https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#ipfs-pubsub
https://discuss.ipfs.io/t/ipns-beyond-the-basics-no-ipns-pinning-service-any-docs-on-this/13424
https://discuss.ipfs.io/t/ipns-use-cases-what-is-dragging-down-ipns/9817
https://github.com/ipfs/specs/issues/268 (Edit: adding this resource)
This issue talks a bit about IPRS (Which I still don't really know what that is), but it has good insights about issues in IPNS that are STILL relevant today. https://discuss.ipfs.io/t/confusion-about-ipns/1414

Milestones
1) Publish written learning material (2 weeks; 1 for write ups + 1 week for possible time-delayed technical reviews)
This includes material for IPNS, Pubsub+IPNS, and DNSLink. Both Deep and Shallow tracks.
2) Video guides (2 week, 1 week for research and recording + 1 week for editing and time-delayed reviews)
This includes CLI follow-alongs and, if feasible, programmable guides
3) Merge into main from gitbook
Due to curriculum website change, the final step is moving the merged content from gitbook -> mutable-content.md into main -> mutable-content.md
Acceptance Criteria
Acceptable resolution of this issue would entail written teaching material for IPNS, DNSlink, & routing options and tradeoffs.

Completed this issue with this final commit d112a2428f695e915c0969524d8c0ccd6cd366da


Cannot replicate the PoC on Windows 10

Does the tool still correctly respond to syncupdates requests initiated on Windows 10 machines?
I have tried to replicate the PoC and set up a lab domain (Hyper-V) with a single domain controller (server 2016), and a single domain-joined Win10. Wsus has been configured with setting 3 and enabled.
After successfully arp poisoning and having "arp -a" showing the MAC address of the kali where pywsus is running, it was possible for pywsus to receive update requests. Whenever 'check for updates' is clicked on Win10, pywsus received a SyncUpdates SOAP HTTP request. However, unlike the PoC, a GetExtendedUpdateInfo request is never received by pywsus.
The Win10 updates GUI shows an error (code 80240439) contacting the update server.
The win10 wsus update log shows the following: (selected extract for brevity):
2021/04/28 12:40:08.8297096 1224  7052  WebServices     Auto proxy settings for this web service call.
2021/04/28 12:40:08.8784820 1224  7052  WebServices     FAILED [80240439] Web service call
2021/04/28 12:40:08.8784833 1224  7052  WebServices     Current service auth scheme=0.
2021/04/28 12:40:08.8784839 1224  7052  WebServices     Current Proxy auth scheme=0.
2021/04/28 12:40:08.8785000 1224  7052  Misc            Got WSUS Client/Server URL: http://WIN-LUL8KLLSCLH:8530/ClientWebService/client.asmx""
2021/04/28 12:40:08.8807925 1224  7052  WebServices     Proxy Behavior set to 1 for service url http://WIN-LUL8KLLSCLH:8530/ClientWebService/client.asmx
2021/04/28 12:40:08.8807971 1224  7052  ProtocolTalker  FAILED [80240439] SyncUpdates_WithRecovery failed
2021/04/28 12:40:08.8808013 1224  7052  IdleTimer       WU operation (CAgentProtocolTalker::SyncUpdates_WithRecover, operation # 1303) stopped; does use network; is at background priority
2021/04/28 12:40:08.8808067 1224  7052  ProtocolTalker  SyncUpdates round trips: 1
2021/04/28 12:40:08.8808077 1224  7052  ProtocolTalker  FAILED [80240439] Sync of Updates
2021/04/28 12:40:08.8808160 1224  7052  ProtocolTalker  FAILED [80240439] SyncServerUpdatesInternal failed
2021/04/28 12:40:08.8845612 1224  7052  Agent           FAILED [80240439] Synchronize
The Windows 10 VM details are as follows:
Host Name:                 WIN10
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.18363 N/A Build 18363
OS Manufacturer:           Microsoft Corporation
Hotfix(s):                 10 Hotfix(s) Installed.
[01]: KB4601056
[02]: KB4513661
[03]: KB4516115
[04]: KB4517245
[05]: KB4521863
[06]: KB4577586
[07]: KB4580325
[08]: KB4589211
[09]: KB5001406
[10]: KB5001337
I am wondering if there is either a configuration setting that is required for this to be exploitable that I may have missed, or changes may have been made to the communication protocol wherein the SOAP response from pywsus is not considered valid, or security changes have been made that stop the rogue WSUS server from successfully proceeding to patch downloading.
Note I have tried this with both the Windows firewall and windows Defender disabled and enabled, with the same outcome.

Hi @yotabytes,
It really looks like #6.
Indeed Microsoft changed a little bit the behaviour of WSUS, but I think it should not block us to perform this attack with a WSUS HTTP server.
I will try with the ARP spoofing like you did.
Thank you.

Microsoft Windows 10 Enterprise 10.0.19042 N/A Build 19042 has tested and it's working.

Hotfix(s):                 8 Hotfix(s) Installed.
                           [01]: KB4601554
                           [02]: KB4562830
                           [03]: KB4570334
                           [04]: KB4577266
                           [05]: KB4577586
                           [06]: KB4580325
                           [07]: KB5001391
                           [08]: KB5003156

This commit should help debug in Wireshark. (HTTP traffic was not correctly shown.)
https://github.com/GoSecure/pywsus/commit/7372d07361e13e38a571ab642d326283cbaec7a8

@nitbx Is the tool still working for you? (PoC is not working for me; log says "found 0 updates and 0 categories", hence call for extended info + subsequent download are not executed)

Hi @fneur,
I didn’t have the chance to use it recently but in April I made the demonstration that the tool still works. I have doubts that the attack doesn’t work anymore.
I would invite you to make a new issue with your setup information like we did here.
Thank you !

@nitbx Thanks for the quick reply. See #10 !


Is it still planned to add Bulma Megamenu support?

This NavWalker is awesome. Will Mega Menu be ever supported in this?


Build Errors: arrow_objlib.dir/ipc/json-internal.cc.o

g++ (GCC) 6.3.1
rapidjson-v1.1.0
arrow-apache-arrow-0.12.1
/scratch_area/apache/arrow-apache-arrow-0.12.1/cpp/src/arrow/ipc/json-internal.cc: In member function 'typename std::enable_if<arrow::IsSignedInt::value, void>::type arrow::ipc::internal::json::ArrayWriter::WriteDataValues(const T&)':
/scratch_area/apache/arrow-apache-arrow-0.12.1/cpp/src/arrow/ipc/json-internal.cc:389:18: error: 'using RjWriter = class arrow::rapidjson::Writer<arrow::rapidjson::GenericStringBuffer<arrow::rapidjson::UTF8<> > > {aka class arrow::rapidjson::Writer<arrow::rapidjson::GenericStringBuffer<arrow::rapidjson::UTF8<> > >}' has no member named 'RawNumber'
writer_->RawNumber(null_string, sizeof(null_string));
^~~~~~~~~

Hi @giveitatry168,
You might be able to get better support on the mailing list, giving more details about your environment (which OS are you running) and how how you are setting up the build environment (what args are you passing to cmake).
As a first guess, it might be that you are picking up an older version of rapidjson on your system.

Thanks, @emkornfield !
It was build on RHEL 6 with ARROW_RAPIDJSON_URL=/scratch_area/.../cpp//thirdparty/rapidjson-v1.1.0.tar.gz. I've also verified the rapidjson package is present. Will also try the dev alias you suggested.


RSDK-5993 - fallback to non-mdns uri when auth fails

Major changes
When attempting to connect with an mDNS uri fails, we now fallthrough and attempt a standard connection.
Attempts to auth to a robot with an org level API key (or presumably any level other than the robot itself) fail when connecting with mDNS. Previously we would just fail; we've now added explicit fallback logic.

I admittedly have no idea what I read (multiple times) 😂 While I don't really understand the language or the background, it does look like it does what your description set out to do. Thought to comment even if I can't really "approve".

@purplenicole730 I'd be happy to grab a side room and chat offline for a couple minutes if you'd like me to go over/explain anything!


v1.24 blog post: Server Side Field Validation Reaches Beta

Placeholder

/area blog

/milestone 1.24

@kevindelgado should we close this PR as ServerSideFieldValidation to Beta will target v1.25
https://github.com/kubernetes/website/pull/32357#issuecomment-1089020163

yep

/milestone clear


Breaking changes to Wrapper derivation

Use IndexSlice instead of multiple Index implementations IndexSlice does not work together with Index<usize>
[x] #169
[x] #188
[x] #189
[x] #190

Closed by #158