Added support for generic host based IWebHostBuilder

This adds an implementation of IWebHostBuilder as a facade over the IHostBuilder.
This removes the 2 container issue by executing the Startup.ConfigureServies and Startup.ConfigureContainer inline as part of building the IHostBuilder.
The implementation is highly compatible implementation since it exposes the same IWebHostBuilder interface.
Existing extensions mostly work.
There are some caveats with this approach.

Injecting services into Startup is not extremely constrained to the
services availble on HostBuilderContext. This includes the IHostingEnvironment
and the IConfiguration.
IStartup is broken when using this pattern because it isn't composable.
The IStartupConfigureServicesFilter and IStartupConfigureContainer The before
and after filters added in 2.1 are also broken  because there's a single container (it could maybe be fixed by downcasting and doing something specific on the GenericHostBuilder instance).
Calling into IWebHostBuilder.Build will throw a NotSupportedException since
this implementation is just a facade over the IHostBuilder.

Fixes #1544
TODO: Add tests 😄

This might be the way we recommend frameworks plug into the generic host. A single top level method with a builder specific to that framework. I'm thinking that Orleans could potentially use the same approach with the SiloBuilder.
cc @ReubenBond @jdom

cc @tillig
Just an FYI that this breaks the pattern where you return an IServiceProvider from Startup.ConfigureServices. The preferred pattern will be an IServiceProviderFactory. That makes things compose since the web application configuration isn't the only thing existing. This will require a migration story when moving apps from 2.x to 3.x. Luckily, we're not breaking any of the WebHostBuilder behavior so it can be smooth 😄 .

Thanks for the heads-up. I'll make sure our corresponding docs and examples get updated!

Pinging other DI container authors (feel free to spread the word if I missed people) cc @dadhi @seesharper @ipjohnson @khellang @ENikS

@dotnetjunkie might be interested in this conversation

@davidfowl Thanks for letting us know up front about changes like this.
Correct me if I am wrong, but this is what I can gather from this

IServiceProvider  ConfigureServices will not be supported anymore.
We can now add the IServiceProviderFactory to an IHostBuilder rather that the IWebHostBuilder https://github.com/seesharper/LightInject.Microsoft.AspNetCore.Hosting/blob/master/src/LightInject.Microsoft.AspNetCore.Hosting/LightInjectWebHostBuilderExtensions.cs

The IStartupConfigureServicesFilter and IStartupConfigureContainer The before
and after filters added in 2.1 are also broken  because there's a single container (it could maybe be fixed by downcasting and doing something specific on the GenericHostBuilder instance) (@javiercn)

I think I know how we can fix this easily. We can use the new properties dictionary in IHostBuilderContext (should be an abstract class) to tag the filter instances in there and then when ConfigureServices is invoked on the host builder, we simply retrieve the filters from the hostbuildercontext and apply them.

Just an FYI that this breaks the pattern where you return an IServiceProvider from Startup.ConfigureServices. The preferred pattern will be an IServiceProviderFactory.

Currently the only way to build the Autofac container and keep a reference to it if you need to do that is to return the IServiceProvider from Startup.ConfigureServices. We've seen some interesting use cases where people want to use a single container and host multiple application types (like a self-hosted ASP.NET Core app alongside... uh... something else? Not sure what). That's led to requests for things like the ability to create a pseudo-container in a child lifetime scope.
+-------------------------------------------------------+
| root container: shared registrations                  |
| and singletons                                        |
|                                                       |
| +------------------------+ +------------------------+ |
| | child scope: root      | | child scope: root      | |
| | for ASP.NET Core self- | | for background service | |
| | hosted app             | | or something (?)       | |
| +------------------------+ +------------------------+ |
+-------------------------------------------------------+

Having the ability to return the IServiceProvider means the dev could provide a pre-created scope to the ConfigureServices method and return a custom-built IServiceProvider.
I gather that in order to do something like this in the new system folks will need a custom IServiceProviderFactory or figure out a workaround.

Is there any way we can bring back the functionality that allows us to inject an logger into the Startup? It’s very common for applications to log certain things during startup, at a time when the DI container has not been built.
I understand that with this implementation, there is only hard-coded support for IHostingEnvironment and IConfiguration but I think ILogger<T> or ILoggerFactory would be another of the few types that actually make sense to get injected there.
I’ve already looked into the HostBuilder source for this but unfortunately, logging is just set up through DI so it will be difficult to get a proper logger factory out of it. But I think logging would be a really valuable addition to those explicit types that are supported in the startup.

@poke I don't see how it's possible to bring logging back, it fundamentally depends on DI and config.  It's worth noting that logging was already broken (multiple singletons) and one of the reasons we dropped the second container.

Yeah, I understand that it’s very difficult and not possible in the current design, but I really think that it’s something that is expected to work. So if we don’t end up having a good approach for that, I am sure people will make up a way to achieve this, for example by creating a new (second) logger factory from within their startup. Just like people built the service provider within the ConfigureServices method when they needed some random service to configure stuff before it was properly communicated (and supported by utility methods) how to do that properly.

At least logging can still be injected into Configure, it's only ConfigureServices that's missing it.

Logging can't really be done because logger providers are themselves in the DI container.

So if we are logging when we ConfigureServices which takes an ILogger, then we would need to create a new (Second) logger factory (as @poke said) ?

So if we are logging when we ConfigureServices, where a method (in here) takes an ILogger, then we would need to create a new (Second) logger factory (as @poke said) ?

If you're logging today in ConfigureServices then you're in this torn state where you're using another instance of the ILoggerFactory that's configured. What that can lead to is several background threads running for each of the logger factories (for example the console logger and blob storage logger).
Sure. you can create another logger factory that is separate in there but where would you be logging to?

@tillig Yes, you'd need a custom factory to do that, but you can capture the instance by using the Configure method.

Update https://github.com/aspnet/Hosting/blob/master/samples/GenericWebHost/ and then I think you're good for

😍

So if we are logging when we ConfigureServices, where a method (in here) takes an ILogger, then we would need to create a new (Second) logger factory (as @poke said) ?

If you're logging today in ConfigureServices then you're in this torn state where you're using another instance of the ILoggerFactory that's configured. What that can lead to is several background threads running for each of the logger factories (for example the console logger and blob storage logger).

yep. but can we dispose of this factory (and therefore any bg threads) once we leave the scope? Then there could be issues of flushing, etc ?

Sure. you can create another logger factory that is separate in there but where would you be logging to?

Console / some 3rd party service
in the example above i have:
services.AddLogging(configure => configure.AddSerilog(dispose: true));
so the logging sinks are read-in/defined -prior- to the HostBuilder getting created. So logging has been added/configured for serilog ... and then I was hoping to use this seril-logger as a MEL ILogger. Happy that there's no DI in this bit .. but possible to expose/use currently existing one?

Logging can't really be done because logger providers are themselves in the DI container.

I know but I think there still has to be some way to do it. Even if you don’t necessarily need to log stuff out from the ConfigureServices method, people will still want to do it (there’s a relatively popular SO question on this that proves the desire).
And I really don’t want people to end up doing things like this:
public void ConfigureServices(IServiceCollection services)
{
    var provider = services.BuildServiceProvider();
    var logger = provider.GetService<ILogger<Startup>>();

    logger.LogInformation("Adding MVC");
    services.AddMvc();
}

But that’s totally going to happen if we don’t have an actual recommendation on what to do instead.
You mentioned on Slack that you are considering a root logger as a singleton, and I think that would be totally fine. Just allow some sane way to get a logger inside of there, so we can direct people to that solution.

That will be the way to do it regardless, it will require another container. It should not be the same service provider that you use the build up the application though. We'll discuss it more.

Yeah, but since there already is a separate service provider at web host level by default, it just works. It even uses the same configuration and setup even if it’s technically a separate instance. And that would be my expectation with 3.0 too: That there would be a default and easy way that just works, even if this means that the framework will create a separate logger for me.

"Just works" There's been numerous unsolvable bugs around the fact that we have 2 containers (sometimes 3!). Most of our workarounds have been to not log anything until after the application container is wired up. We want to be out of that world.

cc @ENikS I can't remember if I mentioned you on this.


Going to React 18 and vitejs

Thanks for filing a bug! To save time, if you're having trouble using the library, please check off the items you have tried. If you are just asking a question, skip right to the bottom.
Please verify these steps before filing an issue, and check them off as you go

[ ] The relevant native JavascriptEngineSwitcher library packages are installed (such as JavaScriptEngineSwitcher.V8.Native.win-x64)
[ ] The VC++ 2017 runtime is installed
[ ] The value of SetUseReact and SetUseBabel is correct in ReactConfig.cs or Startup.cs
[ ] I've looked at the sample projects in this repo to verify that my app is configured correctly

I'm using these library versions:

ReactJS.NET:
JavaScriptEngineSwitcher:
react and react-dom: (N/A if using bundled react, or version number)
webpack: (N/A if using bundled react)
node: (N/A if using bundled react)

Runtime environment:

OS: (Mac, Windows, Linux flavor. Include 32-bit/64-bit and version)
.NET Framework or .NET Core Version:

Steps to reproduce

How, I'm using the last version of React.net .. that is really old. 4 years.
Please could you update the react and all config for last professionnal support :

React 18 (and preparing to react 19 soon)
stop using webpack : it's too old, and monster to do someting easy
use instead : vitejs
stop prefer js at begining : starting with typescript

@evan-boissonnot IMHO do not expect any future updates for ReactJS.NET and refer to #1315. I suggest splitting your React application from .NET and then you free to go switching to vitejs, typescript and other new React versions.


Can't install pod

Hi,
When I pod install I get the message '[!] Unable to find a specification for CollapsibleTableSectionViewController'
Thanks

yep.. same issue. @jeantimex  can you please look at it ?

Sure, let me take a look, thanks for let me know!

Hi @dtran26, @mohanmoorthy, I think I may have found the root cause for you, if you are using Cocoapods 1.0.0 or above, pod repo update does not happen on pod install by default, that means you have to run pod repo update manually to update the repo source list on your machine.
After you run pod repo update, try pod search CollapsibleTableSectionViewController, you should see the latest version of the pod is 1.0.1. Then you can do pod install. Or try pod install --repo-update. (note, pod repo indexing may take a bit of time)
Below is my screenshot:

Thanks it works after updating repo source list!

Thanks @dtran26! How about you @mohanmoorthy?


Update download URL for Box Sync

Thank you for the contribution. It needed some fixes, so they were made in 8ef24c0ae79696fc078bd7eaefb3034ca3d5d947. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.


Add a "next steps" section to getting started docs

Users found this "getting started" tutorial by following the link on the Compose MPP landing page, but then didn't find any other docs.  This change helps mitigate the problem by pointing users in a helpful direction after they've gone through the first tutorial.

Specifically: https://twitter.com/linghengqian/status/1560316476346601472


Review Documentation and Tutorial

https://med-live-diagnostics.readthedocs.io/en/latest/index.html

Have you had a chance to review this one @svenbuder ?

Partially. I have reviewed the Overview + Getting Started - they both looked already good and mainly had broken link fixes. I have not given the feedback to Mike, though. Will do that later.
I have also created the content for MLD on the Hive.
Davide is currently reviewing my PR for including MLD in the Hive (should be merged today).


Create table

In this PR, I have completed the following tasks.
Created a database named vet_clinic.
Created a table named animals.
Inserted data for 4 animals.
Wrote queries according to the requirements.
Took a screenshot of the results of the queries.

INVALID ❌ ❌ ❌
Hi @Talha-Hanif5666 👋
While you made a great effort in this project, I can't go ahead and review your code.
Invalid Code Review Request ❌
You have submitted a project that doesn't have All main headers from the README template 😨, Kindly fix this and submit again once you are done 🙏
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Kindly create  a new PR that follows the Gitflow approach
Cheers and Happy coding!👏👏👏
✅ Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Remember to tag me in your question so I can receive the notification.
⚠ Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.

INVALID ❌ ❌ ❌
Hi @Talha-Hanif5666 👋
While you made a great effort in this project, I can't go ahead and review your code.
Invalid Code Review Request ❌
You have submitted a project that doesn't have All main headers from the README template 😨, Kindky add the License, 🔭 Future Features, Acknowledgments and submit again once you are done 🙏
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Kindly create  a new PR that follows the Gitflow approach
Cheers and Happy coding!👏👏👏
✅ Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Remember to tag me in your question so I can receive the notification.
⚠ Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Use oldest Channel out of the SimpleChannelPool on acquire

Motivation:
We previously used pollLast() to retrieve a Channel from the queue that backs SimpleChannelPool. This could lead to the problem that some Channels are very unfrequently used and so when these are used the connection was already be closed and so could not be reused.
Modifications:
Change pollLast() to poll() and so ensure Channels will be reused frequently.
Result:
Better Channel reuse.

I guess its a trade off ... last used connection is more likely to be health vs. round robin to keep more connections alive. Not sure if its worth making this configurable (not sure there is a "right" choice for everyone).

FYI, I was asked to make the 2 strategies available and configurable in AHC own connection pool.

Ok let me add a constructor arg to make it configurable

@slandelle @Scottmitch adjusted and so made it configurable via constructor arg.

comments addressed and cherry-picked into 4.1 (529025d9d5) and 4.0 (17e218d1bd)


Parse LiveQuery for Android

Hello,
Does anyone know when will Parse LiveQuery for Android be available?  It is one of the last items before i am done with migration.  If not soon, what are alternatives?

This is a question for the android repository https://github.com/ParsePlatform/Parse-SDK-Android

follow this issue in corresponding repository


JIT compilation faild when running tensorflow.python.keras.backend.clip

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
No
Source
binary
Tensorflow Version
2.11.0
Custom Code
Yes
OS Platform and Distribution
Ubuntu 22.04
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Probably due to empty tensor or negative argument.

Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np
from tensorflow.python.keras import backend
try:
  try:
    with tf.device('/CPU'):
      arg_0_tensor = tf.saturate_cast(tf.random.uniform([], minval=0, maxval=2, dtype=tf.int64), dtype=tf.uint64)
      arg_0 = tf.identity(arg_0_tensor)
      arg_1 = -674
      arg_2 = False
      out = backend.clip(arg_0,arg_1,arg_2,)
  except Exception as e:
    print("Error:"+str(e))
  try:
    with tf.device('/GPU:0'):
      arg_0 = tf.identity(arg_0_tensor)
      arg_0 = tf.cast(arg_0, tf.uint64)
      backend.clip(arg_0,arg_1,arg_2,)
  except Exception as e:
    print("Error:"+str(e))
except Exception as e:
  print("Error:"+str(e))

### Relevant log output

```shell
2023-01-22 05:38:22.265102: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-01-22 05:38:22.793808: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/lib/:/home/nimashiri/anaconda3/envs/cuda11.2/lib/:/home/nimashiri/anaconda3/envs/cuda11.2/lib/
2023-01-22 05:38:22.793970: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/lib/:/home/nimashiri/anaconda3/envs/cuda11.2/lib/:/home/nimashiri/anaconda3/envs/cuda11.2/lib/
2023-01-22 05:38:22.793978: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
2023-01-22 05:38:23.279089: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.283623: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.283730: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.284021: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-01-22 05:38:23.284444: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.284547: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.284639: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.645697: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.645831: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.645923: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-01-22 05:38:23.646007: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1613] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 4244 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1660 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5
Error:can't convert negative int to unsigned
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
2023-01-22 05:38:23.806315: W tensorflow/core/framework/op_kernel.cc:1818] UNKNOWN: JIT compilation failed.
Error:{{function_node __wrapped__Minimum_device_/job:localhost/replica:0/task:0/device:GPU:0}} JIT compilation failed. [Op:Minimum]

</details>

Hello @nimashiri, the issue seems to be likely similar to your previous one.
The issue in the code is that the backend.clip function is trying to run on the GPU, but the JIT compilation is failing because the system does not have a GPU or the GPU is not compatible with the version of TensorFlow you are using.
You can fix this issue by running the backend.clip function on the CPU instead of the GPU.
Here's the updated code:
import tensorflow as tf
import numpy as np
from tensorflow.python.keras import backend

try:
    arg_0_tensor = tf.saturate_cast(tf.random.uniform([], minval=0, maxval=2, dtype=tf.int64), dtype=tf.uint64)
    arg_0 = tf.identity(arg_0_tensor)
    arg_1 = -674
    arg_2 = False
    out = backend.clip(arg_0,arg_1,arg_2)
except Exception as e:
    print("Error:"+str(e))

You don't need to use the try-except block within the try-except block, and also you don't need to use tf.deviceas the clip function doesn't require GPU.
Also, the arg_2 is of type boolean, but the function expects a scalar tensor of the same dtype as arg_0, you can cast the scalar to the same dtype as arg_0 by using tf.cast.
arg_2 = tf.cast(arg_2, tf.uint64)
Finally, you can also try to upgrade Tensorflow to the latest version and check if the issue is resolved.
Please also note that, in case you're running on a machine without a GPU, you may want to install the CPU-only version of Tensorflow.

Let me knows it it works @nimashiri

Let me knows it it works @nimashiri

Hi @DURGESH716 . Appreciate for the great explanation. I am using my fuzzer to generate test cases to find bugs in Tensorflow backend.

Hi @nimashiri !
Could you follow the below steps and let us know. I am not facing any issue in Colab (ubuntu 18) with above workaround.

Download GPU driver for Ubuntu 20 as per your GPU card.
Install CudaTool Kit 11.2 through conda as instructed in pip document and set symlink.
Check whether cuda got succesfully executed and detecting GPU card  or not with below code snippet.
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
If GPU is successfully detected from step-3 , Please download above gist as .py and let us know whether above workaround is valid or not.

Note: 11.7 cudatool kit and GPU driver of Ubuntu 22 does not seem stable with nightly version.
Thank you!

Not a vuln

I've had a similar error and ended up re-installing the virtualenv using conda.
I think there was a problem with cudatoolkit and cudnn but I'm not sure


Ensemble refactor

I think I based this branch on another branch, which is why it has all of those commits that are already in main in there. I tried rebasing but it got weird very quickly :( . Anyway, the last 5 commits are the relevant ones in this case.


Boss health problem

Problem with the lack of health of the boss, elder dragon is working properly, the warden lacks hp, wither
always ends up charging at 300 hp. Also mod not working properly with bosses from other mods like TwilightForest, sometimes the hp is missing, sometimes the boss is detected as a normal mob. I tried mod on every 1.19.2 version.

have the same problem is this fixed already?

Fixed it with https://github.com/Globox1997/RpgDifficulty/commit/34de96483f904a0c61d7fdb129d990a8a59691e9


Remove useless 'void' [blocked: build failed, investigation pending]

Tests have failed: https://buildkite.com/input-output-hk/cardano-sl/builds/1312#9c1b53b1-4292-464e-887b-6b3d52d9ed07/254-961
Somebody should investigate this. Has it been noticed already? Is there an issue?

Yes: https://iohk.myjetbrains.com/youtrack/issue/CSL-2240

Let's keep this PR open for a while. I don't know which builds are stored in BK history, so I think it's safer (we don't want to lose that output).
This PR is not important and hopefully CSL-2240 will be addressed within this sprint.

cardano-sl_build_1312_cardano-x86-64-darwin.log
commit: 6ed79a372e7044eb36f417dbb6c0f002595c566a

Closed because this PR is just too old.


Skeleton authentication scheme setup for Authorize project

This sets up most of the structure for the two-phase authentication for Authorize access.
The OneLogin handler takes a fixed set of credentials but we will have a different set per client. Accordingly, we will have a OneLogin scheme for every one of our clients. (A future PR will wire this up.)
The OneLogin handler needs a 'sign in scheme' that can persist the AuthenticationTicket over multiple requests. Typically this is Cookies but here we're using FormFlow state instead. The thinking behind is that we want to support multiple concurrent sign ins for different clients and each of those needs its own state. If we used cookies it would mean a cookie-per-client, which could be a lot of cookies (and a messy Cookies page). This is the FormFlowJourneySignInHandler type and there only needs to be one of these.
The third handler type is the
MatchToTeachingRecordAuthenticationHandler. This is the scheme that actually gets called by code that wants to authenticate the user. It delegates to the appropriate OneLogin scheme to sign the user in to One Login, then redirects the user to the NINO page, which will begin the matching process. Eventually a teaching record may be found and authentication will be considered complete.

 Productionise One Login spike


Add hovers for Scala sources

Currently, hovers are not working for Scala sources because the generated SemanticDB document is missing SymbolInformation nodes. The symbol information is missing because the Metals mtags module explicitly disables symbols here
https://github.com/scalameta/metals/blob/75355b207cf89943408d0726797b8a37f3aa1278/mtags/src/main/scala-2/scala/meta/internal/pc/SemanticdbTextDocumentProvider.scala#L36
We should contribute a PR upstream to make this behavior configurable.

Pending PR https://github.com/scalameta/metals/pull/3018

Fixed in https://github.com/sourcegraph/lsif-java/pull/280


[Dropdown][Menu] CSS for dropdown menu bug

It looks like Semantic UI just changed the CSS for dropdown menu which makes the menu open to the left now, instead of default to the right.
Before:

Now (latest CSS):

the new left:0px CSS causes this problem:
.ui.menu .dropdown.item .menu {
left: 0px;
min-width: calc(100% - 1px);

Yeah same problem here and waiting for the new change

Can be reproduced on the documentation.

I'll fix this weekend

Actually this weekend.. fixing now

And a very easy fix..


Use oauth2 scopes for access control

Currently, the Keycloak plugin which uses the OpenID Connect protocol performs access control on endpoint/methods using user claims (username, group) or the clientID.
We may be able to use OAuth2 scopes for the same level of access control.
OAuth2 security scheme:
https://www.w3.org/TR/wot-thing-description/#oauth2securityscheme

Set of authorization scope identifiers provided as an array. These are provided in tokens returned by an authorization server and associated with forms in order to identify what resources a client may access and how. The values associated with a form should be chosen from those defined in an OAuth2SecurityScheme active on that form.

Example: https://www.w3.org/TR/wot-thing-description/#example-15

... OAuth2 makes use of scopes. These are identifiers that may appear in tokens and must match with corresponding identifiers in a resource to allow access to that resource (or Interaction Affordance in the case of W3C WoT). For example, in the following, the status Property can be read by Consumers using bearer tokens containing the scope limited, but the configure Action can only be invoked with a token containing the special scope. Scopes are not identical to roles, but are often associated with them; for example, perhaps only those in an administrative role are authorized to perform "special" interactions. Tokens can have more than one scope. In this example, an administrator would probably be issued tokens with both the limited and special scopes, while ordinary users would only be issued tokens with the limited scope.

{
    ...
    "securityDefinitions": {
        "oauth2_sc": {
            "scheme": "oauth2",
            ...
            "flow": "code",
            "authorization": "https://example.com/authorization",
            "token": "https://example.com/token",
            "scopes": ["limited", "special"]
        }
    },
    "security": ["oauth2_sc"],
    ...
    "properties": {
        "status": {
            ...
            "forms": [{
                "href": "https://scopes.example.com/status",
                "scopes": ["limited"]
            }]
        }
    },
    "actions": {
        "configure": {
            ...
            "forms": [{
                "href": "https://scopes.example.com/configure",
                "scopes": ["special"]
            }]
        }
    },
    ...
}

From OAuth2 specs:

The authorization and token endpoints allow the client to specify the
scope of the access request using the "scope" request parameter.  In
turn, the authorization server uses the "scope" response parameter to
inform the client of the scope of the access token issued.

Or a more understandable version:

Scope is a mechanism in OAuth 2.0 to limit an application's access to a user's account. An application can request one or more scopes, this information is then presented to the user in the consent screen, and the access token issued to the application will be limited to the scopes granted.

There are also a few examples here.


⚠ ClamAV has degraded performance

In 297b4dc, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 105 ms

Resolved: ClamAV performance has improved in c47e80a after 15 minutes.


docs: added core-team topic

Description
Added .github/settings.yml file to add the core-team topic to the repo.
Types of changes in this PR
Changes that affect the core Terraform module or submodules

[ ] Bug fix
[ ] New feature
[ ] Dependency update

Changes that don't affect the core Terraform module or submodules

[ ] Examples or tests (addition or updates of examples or tests)
[x] Documentation update
[ ] CI-related update (pipeline, etc.)
[ ] Other

Release required?
Identify the type of release. For information about the changes in a semantic versioning release, see Release versioning.

[x] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
If a release is required, replace this text with information that users need to know about the release. Write the release notes to help users understand the changes, and include information about how to update from the previous version.
Your notes help the merger write the commit message for the PR that is published in the release notes for the module.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

Use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

@kierramarie We are just starting to take ownership of this module so we can hold off on this change until we create our first PR

I have asked for this to be part of https://github.com/terraform-ibm-modules/terraform-ibm-hpcs/pull/13 so closing this PR


Pretrained weights

Hi, may I ask if you have pretrained weights for different datasets? Thanks in advance.

Hi, I shouldn't publicly share pretrained weights but feel free to reach out to me directly via email and we can take it from there :)


The Installation don't start

OS:Windows 10 1803
Problem:After the msi file runs,it starts to prompt "gathering information " and just closes without any error or log whatsoever.

OS not supported. Minimum is Win10 1809
https://microsoft.github.io/microsoft-ui-xaml/about.html#controls


configurable slf4j logger

Hi,
how can I configure the output not to show DEBUG messages? Please make the logger adaptable!
Thanks!
Cheers
Gerrit

Go here https://github.com/yasserg/crawler4j/find/master
Search for "log"
The 3 first files are logback configuration files used for our examples
projects etc.
On Tue, Feb 4, 2020 at 3:02 PM leder11011<EMAIL_ADDRESS>wrote:

Hi,
how can I configure the output not to show DEBUG messages? Please make the
logger adaptable!
Thanks!
Cheers
Gerrit
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/yasserg/crawler4j/issues/438?email_source=notifications&email_token=AANNWW3ZKL4ELPRD3WXW7JTRBFRNVA5CNFSM4KPWRFUKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IK4NSYA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANNWW67BDPUGN22MYSIC5DRBFRNVANCNFSM4KPWRFUA
.

That was a great hint: top project! Thank you all!

Hi!
I'm trying to do as instructed, but I'm not able to do so.. I downloaded the sources, included is in my project, and I was able to implement the needed classes and run the code, and it's raining loggings.
How is "logback.xml" related when it's located outside the package?


Typescript conversion

Needed to get off CoffeeScript. Also has the added benefit of providing type definitions to anyone else using TypeScript.
Also heading towards #7

/cc @fjakop in case you're interested?


Reconsider how overrides work

Problem Description
The core issue is that once a service is resolved in a container, it gets locked to the value that was provided at the time of resolution. When child containers override that value, the previously resolved service in the parent container still uses the old value, ignoring the override in the child. This results in unexpected behavior when working with container hierarchies.
Consider the following example:
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);

const child = parent.providesValue("value", 2);
expect(child.get("service")).toBe(2); // OK!

Here, the expectation is that the overridden value (2) is used by service in the child container. However, if we trigger the factory functions before providing the override, the behavior changes:
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);
parent.get("service"); // trigger container factory functions
const child = parent.providesValue("value", 2);
expect(child.get("service")).toBe(2); // FAIL! The value is 1

Once service is resolved in the parent, the child container inherits the cached version, which is locked to value: 1. This leads to confusing and inconsistent behavior, especially when working with complex container hierarchies.
However, the library already provides a solution for this issue through the Container.copy() method. This method allows you to scope specific services to the child container, ensuring that those services are re-instantiated with the new values in the child. For example:
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);
parent.get("service"); // trigger container factory functions
const child = parent.copy(["service"]).providesValue("value", 2);
expect(child.get("service")).toBe(2); // OK!

While Container.copy() allows scoping services to child containers, it relies on developers remembering to use it, which can introduce complexity and potential errors. It can feel excessive for simple value overrides, leading to unnecessary duplication of services and inefficiencies when only the value, not the service instance, needs to change.
What Other DI Libraries Do

typed-inject: Seals the service to the value that was provided at the time of its registration. This means overrides in child containers are ignored once the service is resolved.
inversify: Throws an error when trying to register the same service twice. It provides a dedicated method (rebind) to explicitly override a service.

Possible Solutions
This issue could be addressed at the API level. Below are several potential options:
1. Keep the Old Behavior
Maintain the current behavior, where services are locked to the value at the time of resolution. The downside is that this can lead to unpredictable container behavior, making it harder to track down bugs.
Pros:

No breaking changes.
Simple and consistent with the current system.

Cons:

Can result in unpredictable behavior with nested containers.
Difficult to debug and can lead to issues when overrides are expected to work.

2. Adopt Typed-Inject Behavior
Lock the service to the value that was provided at the time of its initial registration. This avoids any confusion caused by value overrides in child containers.
Pros:

Consistent behavior for services, no ambiguity about what value is being used.

Cons:

Ignores the user's intent when providing overrides in child containers.
May introduce breaking changes, as it deviates from the current behavior.
Confusion may still exist, as users might expect child containers to override dependencies.

3. Allow Explicit Control Over Reevaluation (My Preferred Solution)
Introduce overrides* methods that allow service overrides with explicit control over whether dependencies should be reevaluated. Developers would pass named constants such as "reevaluate" or "retain" to indicate whether the dependent services should be updated or left untouched.
Default Behavior: The default behavior should be to reevaluate dependencies when a value is overridden, as this aligns with the most intuitive expectation—overriding a value should update dependent services. If a developer explicitly wants to retain the old behavior, they can pass "retain" to prevent reevaluation.
Another option is to keep provides*() methods, but require developers to provide "reevaluate" | "retain" value if the service is already registered. If they try to use provides*() methods for already registered services without the scoping switch, they will get a compilation (and runtime) error.
Example:
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);

parent.get("service"); // Triggers resolution of "service" with value 1

// In the child container, override the "value" and specify to reevaluate dependencies
const child = parent.overridesValue("value", 2, "reevaluate");
//. const child = parent.providesValue("value", 2, "reevaluate"); // alternative
expect(child.get("service")).toBe(2); // Reevaluates "service" with the new value 2

In this example, "reevaluate" is passed to ensure that services depending on the overridden "value" are reevaluated.
Example with No Reevaluation:
const child = parent.overridesValue("value", 2, "retain");
expect(child.get("service")).toBe(1); // Still returns the service resolved with the original value 1

Pros:

Provides explicit control over whether to reevaluate dependent services.
Defaulting to reevaluation ensures consistency and avoids accidental use of stale values.
The API is more readable, using named constants like "reevaluate" and "retain" rather than relying on true or false.

Cons:

Adds a slight learning curve as developers need to understand when to use "reevaluate" vs "retain".
While the default behavior is intuitive, it might still introduce performance overhead in large applications where reevaluating services is costly.

4. Forbid Service Overriding Entirely
The simplest solution is to forbid service overrides entirely. This would avoid ambiguity but also limits flexibility.
Pros:

Forces clear design patterns, preventing unintended side effects.
Simplifies container management by removing the possibility of value overrides.

Cons:

Lacks flexibility. Some users may need the ability to override services in child containers.
Could break existing functionality where overrides are currently used.

5. Introduce a "Sealed" State (Statically Typed Language Inspiration)
Introduce a "sealed" state for containers. Until a container is sealed, users can provide new values and services. Once sealed, the container cannot be modified, but services can be resolved. Child containers could be created from sealed containers but would not inherit any resolved services.
const c1Unsealed = Container.providesValue("v", 1).providesFactory("f", ["v"] as const, (v) => v);
// Services cannot be resolved in unsealed containers
// c1Unsealed.get("f"); // This will fail

const c1 = c1Unsealed.seal();
// Now services can be resolved
expect(c1.get("f")).toBe(1);

const c2 = Container.fromSealed(c1).providesValue("v", 2).seal();
expect(c2.get("f")).toBe(2);

Pros:

Predictable, as services cannot be resolved until the container is sealed.
Avoids caching-related issues, as services are not locked before sealing.
Makes the container lifecycle more explicit and manageable.

Cons:

Significant API change.
Could introduce more rigidity into container usage.
Adds complexity by requiring containers to be sealed before use.

Trade-Offs Between Solutions

Solution
Pros
Cons

1. Keep Old Behavior and Use copy
No breaking changes, explicit scoping
Requires users to remember to use copy, prone to human error

2. Typed-Inject Behavior
Predictable, always tied to registration values
Ignores user intent, breaking change

3. Explicit Control Over Reevaluation
Flexible, user intent explicit, backward-compatible
API complexity, cognitive load

4. Forbid Service Overriding
Clear design patterns, simpler containers
Inflexible, users may need overrides

5. Introduce "Sealed" State
Predictable lifecycle, avoids caching issues
Significant API change, more complexity

Conclusion
By allowing explicit control over reevaluation (option 3), we strike a balance between flexibility and predictability. Users can specify their intent clearly, and it minimizes ambiguity without introducing significant breaking changes. However, for existing users, leveraging the copy method (option 1) offers an immediate, backward-compatible solution that can address the issue today.

This is such an awesome write-up!
First, I wanted to mention a requirement that may be implicit here, but may be worth making explicit:
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);

const child = parent.providesValue("value", 2);

// Containers are immutable, so even though we are invoking the "service" factory function
// *after* overriding "value", it should still use "value" from the parent container.

expect(parent.get("service")).toBe(1); // <- resolving "service" in the parent container

The value of any service's dependencies must only come from ancestor containers, never from descendent containers.
This may already be the behavior, just wanted to make sure this requirement is captured.

I like option 3 but wonder if it can be simplified + continue to use an (improved) Container.copy() to achieve the most natural behavior -- so I'll propose:
6. Always re-evaluate + explicitly freeze services that shouldn't be re-evaluated.

When a Service is provided, it will always have the "reevaluate" behavior. In other words: when a Container resolves a Service, that Service will be provided the nearest-ancestor implementation of its dependencies even if that requires re-evaluating the Service's factory function.
Authors can use Container.copy() to specify Services that are frozen and never re-evaluated. And it should probably have a better name...

This could look something like
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], (value: number) => value)
);

// We can resolve here or not, either way the following behavior will be the same.
expect(parent.get("service")).toBe(1)

const reevaluatedChild = parent.providesValue("value", 2);
expect(reevaluatedChild.get("service")).toBe(2);

// Rename "copy" to "freeze" and invert its behavior: the listed services are the only ones
// that are *not* re-scoped to the child.
const retainedChild = parent.freeze(["service"]).providesValue("value", 2);
expect(retainedChild.get("service")).toBe(1);

With re-evaluation being the default, I think Service authors will also beed the ability to specify that their Service should not be re-evaluated (e.g. if the Service is expensive to create, or is designed to be a singleton):
const parent = Container.providesValue("value", 1).provides(
  Injectable("service", ["value"], freeze((value: number) => value)) // <- Service author freezes the service
);

const child = parent.providesValue("value", 2);
expect(child.get("service")).toBe(1); // <- "service" is not re-evaluated because its author froze it.

I think this has the same pros/cons of option 3, more or less, with a couple additional pros:

Usage is simpler, for the majority of cases the default behavior is what users will want, and they don't have to understand "reevaluate" vs "retain"
More flexibility -- it's not "re-evaluate all dependencies" or "retain all dependencies," instead users can choose which dependencies to freeze and which to re-evaluate.

That's my suggestion, but I obviously don't have as much insight as you do into how big of a breaking change this might be for package consumers, or if this suggestion would adequately address existing pain points. Just throwin' it out there for consideration.

@wfribley, thanks for your feedback! I agree that having "always re-evaluate" as the default behavior seems most intuitive. I also like the idea of making services singletons when registering them. Just to clarify, when a service is frozen, there's no way to override it afterward, right?
Regarding the differences between Option 3 (Container.providesValue(value, "retain")) and Option 6 (Container.freeze()), there's a significant distinction:

Container.providesValue(value, "retain") is applied when the override is registered. Here, the person overriding the value decides whether dependent services need to be re-evaluated.
Container.freeze() is applied after the service is registered. In this case, the user of the container decides that any future overrides to dependencies won't affect the service.

I think both options are valid, but I feel that Container.freeze() is more practical for real-world use cases, but I'm not 100% sure. Like it is hard for me to follow developer though process: how do they know they need to use Container.freeze()? Say all singletons are already decorated with freeze(fn), what will make developers want to use Container.freeze()?..
I feel plugins is something where that can be applied. Therefore would like to get input from @kburov-sc: Given the plugin-based approach of the project you're working on, do you see an application for Container.freeze()? Any feedback in general regarding the issue?

Just to clarify, when a service is frozen, there's no way to override it afterward, right?

I don't think so... but if a use-case arrises, there could certainly be an API to support it.

Regarding the differences between Option 3 (Container.providesValue(value, "retain")) and Option 6 (Container.freeze()), there's a significant distinction:

Container.providesValue(value, "retain") is applied when the override is registered. Here, the person overriding the value decides whether dependent services need to be re-evaluated.
Container.freeze() is applied after the service is registered. In this case, the user of the container decides that any future overrides to dependencies won't affect the service.

Ah, yeah, that's true. To get the same behavior with Container.freeze(), you'd have to know which services depend on the override and freeze them before providing the override.

And yeah, it would be super useful to collect some real-world use-cases.


Changes to run e2e for private cluster

Fixes #N/A
Description
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.743%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5303

Relevant Lines:
6409

💛  - Coveralls


[$250] Assign Task - When changing Assignee, the page lags when closing modal

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.81-4
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Open New Expensify App
Sign into a valid account (HT account is better for reproduction)
Create a Task and then click on the IOU
Change the Assignee and notice the page closing.

Expected Result:
User expects the page to close "clean"
Actual Result:
The page has a slight "lag/Delay" when closing, visible for a couple of seconds.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/2c655493-f95d-4e0a-99f7-be2a7c0d4bba
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01794355bb64abf4a9
Upwork Job ID:<PHONE_NUMBER>347973622
Last Price Increase: 2024-07-10
Automatic offers:

allgandalf | Reviewer | 103151963
truph01 | Contributor | 103151965

Issue OwnerCurrent Issue Owner: @allgandalf

@JmillsExpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

I'll open it up to the community for proposals.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The page has a slight "lag/Delay" when closing, visible for a couple of seconds.
What is the root cause of that problem?
After selecting the assignee in https://github.com/Expensify/App/blob/8d11d0b185083a6a813daeb0fe7c0697a5627ef6/src/pages/tasks/TaskAssigneeSelectorModal.tsx#L182, some Onyx updates will occur that affect the JS thread. Right after that we goBack, so the navigation animation is affected by the Onyx updates.
What changes do you think we should make in order to solve the problem?

Run the navigation in InteractionManager.runAfterInteractions
What alternative solutions did you explore? (Optional)

Proposal has been updated to add an optional change

Proposal updated to add alternative fix

Can you please point as to what Onyx updates you are referring to?

@allgandalf  Appreciate the feedback! I added more details to the proposal.

Proposal looks good!

it's connecting to the full reports collection even though only 1 report from the route param is needed. We can change to connect to only that 1 report by withOnyx or useOnyx, it will also help it to be more smooth.

Did we check the impact of this change. How much is it helping? And do you mean to use selector?

Did we check the impact of this change. How much is it helping?

@MonilBhavsar  I checked and it doesn't help much with regards to the lagging issue in the OP, I thought it's nice to have.

And do you mean to use selector?

I tested using both and similar result, I lean towards using useOnyx (if we include that change) as it's the new standard.
The main solution in What changes do you think we should make in order to solve the problem? is the part that makes it look smooth and the lagging is gone.

Working through the proposal. @MonilBhavsar thoughts on that last response?

Okay, thanks for clarifying. Let's move ahead and we can update to use useOnyx

PR https://github.com/Expensify/App/pull/45691 can be reviewed

Issue not reproducible during KI retests. (First week)

@allgandalf I tested it on my end, and the bug is still reproducible, but not consistently.

@allgandalf What about your end? Can you reproduce it?

Sorry missed it somehow. i think we should still fix it and improve the code. I guess it will be constantly reproduced on high traffic accounts?

Yes! Thank you for checking

Payment summary:

Contributor: @truph01 $250
Reviewer: @allgandalf $250

All contributors paid out. I'm going to past on creating the regression test given the scale/type of bug, so closing this out!


Additional non-malleability: signatories and chain version in payload

In Chainweb, ChainID will hopefully include network name, but in Pact it must to avoid malleating/sending a testnet tx to main etc.
Proposal: Make a ChainId type built from a network ID and a Word32, as used in PublicMeta.
Also, incorporate signing public keys into the payload to prevent malleating the signature collection post-hashing.
Proposal: have a field _pSignerHash in the Command Payloadwhere the hash is of the concatenation of the public key bytestrings.

Explanation of sig malleating: signatures are not part of the signed payload, so transactions with the same hash can have differing signatures, which can lead to attacks where e.g. a signer pays for gas but the rest of the signatures are missing.
Solution is to move just the public keys to the payload so they become part of the signed payload.
Suggest new datatypes for the REST API to avoid messing up the various Scheme datastructures, ie

Sigs with just signature in sig list
Addresses with addresses and scheme types added to Payload
validation assembles the full sig datastructure by zipping Sigs and Addresses


Log when it is a file

What changes were proposed in this pull request?
restore #13558
Why are the changes needed?
Does this PR introduce any user-facing change?

Codecov Report

Merging #13586 (9d2fe04) into master (0926bba) will decrease coverage by 26.21%.
The diff coverage is 55.12%.

@@              Coverage Diff              @@
##             master   #13586       +/-   ##
=============================================
- Coverage     43.82%   17.61%   -26.22%
+ Complexity     9053     2667     -6386
=============================================
  Files          1377     1378        +1
  Lines         79867    79868        +1
  Branches       9709     9710        +1
=============================================
- Hits          35004    14070    -20934
- Misses        41925    64555    +22630
+ Partials       2938     1243     -1695

Impacted Files
Coverage Δ

...a/alluxio/master/file/DefaultFileSystemMaster.java
15.86% <ø> (-48.86%)
:arrow_down:

.../main/java/alluxio/master/file/meta/InodeTree.java
9.07% <ø> (-64.63%)
:arrow_down:

...in/java/alluxio/fuse/AlluxioJniFuseFileSystem.java
0.00% <0.00%> (ø)

...n/java/alluxio/jnifuse/AbstractFuseFileSystem.java
0.00% <0.00%> (ø)

...in/java/alluxio/master/file/meta/InodeCounter.java
9.09% <25.00%> (-0.91%)
:arrow_down:

...xio/master/file/meta/InodeTreePersistentState.java
11.27% <41.17%> (-49.31%)
:arrow_down:

...mmon/src/main/java/alluxio/util/BucketCounter.java
55.55% <55.55%> (ø)

...n/java/alluxio/master/metastore/caching/Cache.java
30.10% <61.90%> (-64.58%)
:arrow_down:

...common/src/main/java/alluxio/conf/PropertyKey.java
97.87% <100.00%> (-1.60%)
:arrow_down:

...ommon/src/main/java/alluxio/metrics/MetricKey.java
97.14% <100.00%> (-0.47%)
:arrow_down:

... and 668 more

Continue to review full report at Codecov.

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

@yuzhu FYI

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.6 please


ipc: ipc_service: Rework multi-instance backend.

Only one single IPC service backend is currently present: multi_instance backend. This backend is heavily relying on the RPMsg multi_instance code to instanciate and manage instances and endpoints. Samples exist for both in the samples/subsys/ipc/ directory.
With this patch we are "unpacking" the RPMsg multi_service code to make it more modular and reusable by different backends.
In particular we are re-organizing the code into two helper libraries: an RPMsg library and a VRING / virtqueues static allocation library. At the same time we rewrite the multi_instance backend to make fully use of those new libraries and remove the old multi_instance sample.
This work was suggested as part of the #38328 PR and to be intended as preliminary work to that PR rework.
Please note that this is a rework with no functional changes (indeed no changes required to the IPC service samples).
@arnopo I'm particularly interested in you opinion about the introduction on the RPMsg and static VRINGs helper code and about the naming of those two libraries (or the naming in general I used for the different pieces here).

tagging @maje-emb

Hi @carlocaione

Hey @arnopo, thank you for the quick review!

Not simple to foresee the final result, to answer. I suppose that you follow this approach:

Correct, but this is only step 1, that is rewriting the only supported backend right now to use some helper libraries (that in the future are going to be used by other backends, like the one in #38328 that needs now to be rewritten to use this new code). Also the support of multiple backends at the same time is not supported yet.

For the ipc_static_vrings .c, will you still need it after the step 3?

Probably not strictly, but even if I will not need that after step 3 it is definitely better to have that implemented as a library code for the sake of clarity and code organization. My idea is to leave in the backends only a bit of glue and the instances creation logic, while offloading all the gory OpenAMP details to these libraries.

What i can not figure out yet is how to implement following use cases after the step 3 :

multi instances on multi core with different RPMG role ( master/remote))
IPC with Linux based on a resource table backend + IPC with a 3th core
IPC with a first core based on RPMsg + IPC with another core based on another protocol( virtio, mailbox with a simple shared buffer for remote processor with very limited rom/ram or low latency IPC constraints)

Look to me that multi backend support (step 4) + definition of the reserved memory per instances in DT ( as you proposed in #38328) would be needed for such use cases.

Yes, still a lot of work to do :cry: but I'm trying to address one problem at time otherwise it will get crazy. So, in this PR I'm really trying to address the problem of making the current backend more modular so we can easily add on top other backends reusing as much code as possible. This PR is not introducing any functional change or adding anything new to what we already (or don't) support.

Hi @carlocaione

Hey @arnopo, thank you for the quick review!

Not simple to foresee the final result, to answer. I suppose that you follow this approach:

Correct, but this is only step 1, that is rewriting the only supported backend right now to use some helper libraries (that in the future are going to be used by other backends, like the one in #38328 that needs now to be rewritten to use this new code). Also the support of multiple backends at the same time is not supported yet.

For the ipc_static_vrings .c, will you still need it after the step 3?

Probably not strictly, but even if I will not need that after step 3 it is definitely better to have that implemented as a library code for the sake of clarity and code organization. My idea is to leave in the backends only a bit of glue and the instances creation logic, while offloading all the gory OpenAMP details to these libraries.

What i can not figure out yet is how to implement following use cases after the step 3 :

multi instances on multi core with different RPMG role ( master/remote))
IPC with Linux based on a resource table backend + IPC with a 3th core
IPC with a first core based on RPMsg + IPC with another core based on another protocol( virtio, mailbox with a simple shared buffer for remote processor with very limited rom/ram or low latency IPC constraints)

Look to me that multi backend support (step 4) + definition of the reserved memory per instances in DT ( as you proposed in #38328) would be needed for such use cases.

Yes, still a lot of work to do 😢 but I'm trying to address one problem at time otherwise it will get crazy. So, in this PR I'm really trying to address the problem of making the current backend more modular so we can easily add on top other backends reusing as much code as possible. This PR is not introducing any functional change or adding anything new to what we already (or don't) support.

Sorry my objective here is not to afraid you. :). Going by an incremental approach is always a good thing.
I just want to point out that such use cases have a significant probability of being requested in Zephyr,  with the hope that adding such use cases would not means a new rework the IPC service, or means to not use it.
I guess that the Introduction of the  target field of the ipc_ept_cfg struct should help ( if enough modular) to keep the API unchanged.

I guess that the Introduction of the target field of the ipc_ept_cfg struct should help ( if enough modular) to keep the API unchanged.

The API is not stable so I'm not concerned about changing it. In that regard I opened #38750 to better address the target instance problem.

@nika-nordic @masz-nordic @hubertmis could you please take a look?

@arnopo I assigned this to you


How to use Boltjs in Exisiting Expressjs app

Description
@seratch  Hi, I want to use Boltjs within our existing Expressjs App, I tried to read out old tickets related to this but unfortunately i'm unable to achieve it , all the examples i found were in Ts but i'm using Js,  I tried to add it into express middle ware but i'm getting error
Describe your issue here.
const receiver = new ExpressReceiver({ signingSecret: process.env.SLACK_SIGNING_SECRET });

const boltApp = new App({
  token: ' ',
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  receiver,
});

app.use('/', receiver.route)
app.listen(3000)

Error:
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
this issue is related to #212
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[x] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[ ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[ ] I've read and agree to the Code of Conduct.
[ ] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report
Filling out the following details about bugs will help us solve your issue sooner.
Reproducible in:
package version:
node version:
OS version(s):
Steps to reproduce:

Expected result:
What you expected to happen
Actual result:
What actually happened
Attachments:
Logs, screenshots, screencast, sample project, funny gif, etc.

Hi @kashanghori, you can pass Express App instance this way:
const { LogLevel } = require("@slack/logger");
const { App, ExpressReceiver } = require("@slack/bolt");
const { FileInstallationStore } = require("@slack/oauth")

const express = require('express');
const expressApp = express()

const receiver = new ExpressReceiver({
  logLevel: LogLevel.DEBUG,
  app: expressApp,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  clientId: process.env.SLACK_CLIENT_ID,
  clientSecret: process.env.SLACK_CLIENT_SECRET,
  stateSecret: 'my-state-secret',
  scopes: ['commands', 'chat:write'],
  installationStore: new FileInstallationStore({}),
});
const app = new App({
  receiver,
});

You can configure the expressApp before/after passing it to your bolt-js app. I hope this helps!

Hi @kashanghori, you can pass Express App instance this way:
const { LogLevel } = require("@slack/logger");
const { App, ExpressReceiver } = require("@slack/bolt");
const { FileInstallationStore } = require("@slack/oauth")

const express = require('express');
const expressApp = express()

const receiver = new ExpressReceiver({
  logLevel: LogLevel.DEBUG,
  app: expressApp,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  clientId: process.env.SLACK_CLIENT_ID,
  clientSecret: process.env.SLACK_CLIENT_SECRET,
  stateSecret: 'my-state-secret',
  scopes: ['commands', 'chat:write'],
  installationStore: new FileInstallationStore({}),
});
const app = new App({
  receiver,
});

You can configure the expressApp before/after passing it to your bolt-js app. I hope this helps!

Thanks for this 😊

@seratch  Do i still need to run
/** Start Bolt App */
// (async () => {
//   try {
//     await app.start(process.env.PORT || 3000);
//     console.log('⚡ Bolt app is running! ⚡');
//     db.connect();
//     console.log('DB is connected.');
//   } catch (error) {
//     console.error('Unable to start App', error);
//   }
// })();
Or I need to use
expressApp.listen(3000, () => {
console.log('⚡ Bolt app is running! ⚡');
db.connect();
})
because what i need is to  run expressApp not boltapp
but when i run express port the slack urls are not working , when i run on boltjs port they do work

You don’t need to start bolt app in this case. Just running express app should work for you

@seratch  I'm not able use bolt this way , note: i'm using
const { App, LogLevel, ExpressReceiver } = require("@slack/bolt");
const { registerListeners } = require("./listeners");
const orgAuth = require("./database/auth/store_user_org_install");
const workspaceAuth = require("./database/auth/store_user_workspace_install");
const db = require("./database/db");
const dbQuery = require('./database/find_user');
const customRoutes = require('./utils/custom_routes');
const dotenv = require('dotenv').config();
const express = require('express');
const expressApp = express();
const receiver = new ExpressReceiver({
logLevel: LogLevel.DEBUG,
signingSecret: process.env.SLACK_SIGNING_SECRET,
clientId: process.env.SLACK_CLIENT_ID,
clientSecret: process.env.SLACK_CLIENT_SECRET,
stateSecret: 'horea-is-a-human',
customRoutes: customRoutes.customRoutes,
installerOptions: {
stateVerification: false,
},
installationStore: {
storeInstallation: async (installation) => {
console.log('installation at store ins: ')
console.log(installation)
if (
installation.isEnterpriseInstall
&& installation.enterprise !== undefined
) {
const a = orgAuth.saveUserOrgInstall(installation);
return a
}
if (installation.team !== undefined) {
let d = workspaceAuth.saveUserWorkspaceInstall(installation);
return d
}
throw new Error('Failed saving installation data to installationStore');
},
fetchInstallation: async (installQuery) => {
  let user
  console.log('installQuery at install query ')
  console.log(installQuery)
  if (
    installQuery.isEnterpriseInstall
    && installQuery.enterpriseId !== undefined
  ) {
    user = dbQuery.findUser(installQuery.enterpriseId);
    return user
  }
  if (installQuery.teamId !== undefined) {
    user = dbQuery.findUser(installQuery.teamId);
    return user
  }
  throw new Error('Failed fetching installation');
},

},
});
const app = new App({
receiver,
});
/** Register Listeners */
registerListeners(app);
/** Start Bolt App */
// (async () => {
//   try {
//     await app.start(process.env.PORT || 3000);
//     console.log('⚡ Bolt app is running! ⚡');
//     db.connect();
//     console.log('DB is connected.');
//   } catch (error) {
//     console.error('Unable to start App', error);
//   }
// })();
expressApp.listen(3000, () => {
console.log('⚡ Bolt app is running! ⚡');
db.connect();
})

@kashanghori Can you try the following simple app first? This app definitely works for me.
const { LogLevel } = require("@slack/logger");
const { App, ExpressReceiver } = require("@slack/bolt");
const { FileInstallationStore } = require("@slack/oauth")

const express = require('express');
const expressApp = express()

const receiver = new ExpressReceiver({
  logLevel: LogLevel.DEBUG,
  app: expressApp,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  clientId: process.env.SLACK_CLIENT_ID,
  clientSecret: process.env.SLACK_CLIENT_SECRET,
  stateSecret: 'my-state-secret',
  scopes: ['commands', 'chat:write'],
  installationStore: new FileInstallationStore({}),
});
const app = new App({
  receiver,
});
app.command("/your-command", async ({ ack }) => {
  await ack("Hi there!");
})

expressApp.listen(3000, () => {
  console.log('⚡ Bolt app is running! ⚡');
});

@seratch  thanks your code seems to work , let me figure this out

@seratch  so amateur of me i was not passing app: expressApp in receiver, i feel dumb for troubling you for such a small thing
once again thank you for your time :)

If you're seeing this and you think you did everything correctly and are still not able to reach the slack urls, make sure that you initialize slack before any 404 or error handlers are established for express.
Once you declare a catch all 404 handler with express, you can't reapply new route handlers afterwards. I learned this the hard way.
This works:

This doesn't:

(initalizeSlack is just a function that I made, follow the same workflow as described above to create a bolt app.)

Hey @seratch I tried using your code for my own express app
const { App, ExpressReceiver } = require("@slack/bolt");
const { FileInstallationStore } = require("@slack/oauth")

const express = require('express');
const expressApp = express();

const receiver = new ExpressReceiver({
  app: expressApp,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  clientId: process.env.SLACK_CLIENT_ID,
  clientSecret: process.env.SLACK_CLIENT_SECRET,
  stateSecret: 'my-state-secret',
  scopes: ['commands', 'chat:write'],
  installationStore: new FileInstallationStore({}),
});

const app = new App({
  receiver,
});

app.command("/standup", async ({ ack }) => {
  await ack("Hi there!");
})

expressApp.listen(8000, () => {
  console.log('⚡ Bolt app is running! ⚡');
});

The above code is not working for me, I have verified the url by using ngrok for my local server as well. Is there anything I am missing?
On ngrok server the error is 404 Not Found
I am getting the error as /standup failed with error dispatch_failed on running the command /standup


dns-01 challenge/private domain authentication

Hi
Is it possible to add support for private dns-01 authentication using cloudflare?
I use your awesome proxy behind a firewall, the https/http ports aren't publically accessible for authentication, would be amazing if this could be added.
Thanks

Is there anything specific I can do to make it work?

Here's a good guide...
https://b3n.org/intranet-ssl-certificates-using-lets-encrypt-dns-01/
I would be amazing if you could support this integration, its so useful to have valid certs for private addresses, and have that whole thing automated.
Thanks

Sounds pretty amazing! I will take a deep look into it.

Thanks, its pretty cool, with the cloudflare integration, it will make the confirmation entry in your cloudflare account, that will allow letsencrypt to issue the certificate without any of the services being open to the public.


1.19.4

Porting this mod is always a hustle, so this time I create a pull request for this. This way, users can see that I'm working on it, and see the progress. Maybe it's easier for me, too. Maybe I'll always create a pull request for updating this mod in future.

1.19.4 can be ignored, 1.20 is out.
See #136


Some question about the feature shape in the VoxelBackBone8x

Hello,
Sincerely thanks for your great work!
I am trying to use PV-RCNN in my project and trying to figure out how it works. However I was confused by the change of feature shape in the VoxelBackBone8x module.
Here is the output of my console showing the feature shape after each block:

And here is the source code of VoxelBackBone8x used in PV-RCNN:

I'm puzzled by the change of feature shape from [40000,x]->[45826,x]->[23095,x]->[8811,x]. The first number should refer to the number of voxel, so what changes it? Especially, what makes it more than the input feature shape?

It is the number of non-empty voxels, and the sparse conv operation will change the non-empty voxels. You need to first understand what the sparse conv is doing.


[Feature] Add camera option in example insta_asset_picker

Version information

Device: iPhone Simulator
OS: e.g. iOS 16.4
Package Version: 8.5.0
Flutter Version: v3.10.0

Is your feature request related to a problem?
No
Describe the solution you'd like
Can you please add camera option in the grid view of insta_asset_picker in example?
Describe alternatives you've considered
Tried few things but just couldn't get it to work with Insta layout

cc @LeGoffMael


API Down?

https://i.imgur.com/tw53YRo.png
It seems to have been down for over 7 hours.
Also the main statistics endpoint returns
{
"Error": {}
}

May be an issue with the account that is used for the web socket.
@JackCrispy

fixed


Fix broken karma tests by upgrading sinon.

Description
The karma tests weren't running because the invocation of enzyme's component.unmount() was triggering a performance.mark() call via React DOM. Turns out this was an issue with Sinon overwriting the Performance prototype and it was patched in version 6. So this PR just upgrades Sinon. I've verified locally the karma tests now pass with no issue.
Pull Request Checklist

Added/updated the following to reflect my change:

[N/A] Unit tests
[N/A] Documentation

Tested against the different major versions of React

[N/A] v15.5.x
[N/A] v16.x.x

[X] Unit tests have passed.
[Pending] Code linting has passed.

I'm going to close this PR and make it again from my employer's fork repo.


Windows Datamigration smoke test failure

https://dev.azure.com/monacotools/Monaco/_build/results?buildId=128939&view=logs&j=672276a2-8d3a-5fab-615d-090c51352f92&t=316b23c8-21ca-5aab-3515-3225235af7bb
  1) Stable vs Insiders Smoke Tests: This test MUST run before releasing
       Datamigration
         verifies that 'hot exit' works for dirty files:
     Error: Timeout: get element '.tabs-container div.tab.dirty[data-resource-name$="readme.md"]' after 20 seconds.
      at poll (D:\a\1\s\test\automation\out\code.js:178:19)
      at async Code.waitForElement (D:\a\1\s\test\automation\out\code.js:259:16)
      at async Editors.waitForTab (D:\a\1\s\test\automation\out\editors.js:36:9)
      at async Context.<anonymous> (out\areas\workbench\data-migration.test.js:72:13)

  2) "after all" hook in "{root}":
     Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
      at listOnTimeout (internal/timers.js:557:17)
      at processTimers (internal/timers.js:500:7)

Ben is on vacation. Moving to august, also assigning to @JacksonKearl if he would like to look into it this week.

Without screenshots or visual traces I fail to diagnose this further. We really need https://github.com/microsoft/vscode/issues/128479 with support for tracing or upload screenshots during the run as build asset.
I have checked the log files for these runs but did not find anything suspicious unfortunately.


elm-repl does not start within VSCode ..

.. it only displays an empty "Output".
Probably something simple, but I don't get.
My environment:

Win 8.1
nodejs 5.5.0
elm repl 0.16.0 (starts from the command line)
VSCode 0.10.6

Did you install elm via NPM? Some stuff, including the repl, doesn't work on Windows if you do that. I'm working on a fix right at the moment.

Yes, I installed elm via NPM. Btw, I installed NPM via scoop (https://github.com/lukesampson/scoop)

It's a classic problem, the extension is looking for "elm-repl" on your path, but if you install with npm then that doesn't exist, only "elm-repl**.cmd**".
For now, if you want, you can try uninstalling the npm package (npm uninstall -g elm) and install Elm via the Windows installer instead.  But as I say, I'm working on fixing this, as well as cleaning up the code here, and should have a PR for it in the next couple of days.

I will wait :-)


add_offset for DQM

Application
In some applications the energy value of a sample has an important meaning to it. For instance I am working on a graph partitioning problem, and due to the structure of the cost function for this problem, the energy value of a sample (offsets included) is exactly the number of cut edges between the partitions. You get the energy of a sample and you know the number of cut edges right away and you don't need to traverse the graph one more time to count the cut edges. When formulating a problem in terms of a DQM, one usually throws away any constant offset which appear on the way, but in problems like this it is sometimes convenient to keep the constants. BQM has a function called add_offset which allows to do this.
Proposed Solution
Implement add_offset function for DQM as well.
Alternatives Considered
I am currently calculating the offset in a separate variable, so that I can add it to the energy of the result after sampling.

I agree with adding an offset to DQM. However, I would just add a property so the syntax would be dqm.offset += 1rather than dqm.add_offset(1)


change REGISTRY from env to config

there have accured problems in other projects with retrieving
DOCKER_REGISTRY value from env.DOCKER_REGISTRY. The correct source is
config.DOCKER_REGISTRY. Why it was working in this project is unclear.

Another good catch, Håvar!


Fix mobile view of Full Details

Fixes #488

The reason the deployments scripts and tests are failing is that this PR is using the WindowProvider  util file what will be merged in https://github.com/clearlydefined/website/pull/484

This one needs #484 to be merged.
If that one would be approved we can hopefully fix also the problems addressed here and have the solution in place soon.

Once #484 will be merged, we'll be able to complete the work here.

I've pushed some changes to improve the Full Details in modal and page modes:

@dabutvin this PR has been completed weeks ago, are there some specific reasons to not merge this one? I'm happy to apply any required change if needed.

no, it just slipped through the cracks.
We should integrate this one. Can you resolve the conflicts?

@dabutvin done


Fixed to get verdaccio bin path from npm config

To fix issue #24
Signed-off-by: Kai Chu<EMAIL_ADDRESS>

@juanpicado Review done.

@juanpicado @030 Hi, guys, what do u think about my new change?

@kai-chu Could you add a when condition? E.g. when npm_config_prefix not defined. Otherwise the path could be broken on some systems. E.g. the path is still different on my machine: npm config get prefix --no-update-notifier /usr/local/lib/npm

@kai-chu Could you add a when condition? E.g. when npm_config_prefix not defined. Otherwise the path could be broken on some systems. E.g. the path is still different on my machine: npm config get prefix --no-update-notifier returns /usr/local/lib/npm. You could also decide to add a default var that is set to /usr/local. As it resides in the default folder, it could be overwritten to your preferred installation directory.

Hi, thanks for comments and I think the default values are good, for sure. Could you make me clear about two questions?

"the path is still different on my machine", I think it shall be different from different machines, what's wrong with that? It depends on how one installs npm.   verdaccio ansible is using geerlingguy/ansible-role-nodejs and it uses /usr/local/lib/npm as the global path for npm.
"when npm_config_prefix not defined", I'm not fully understanding what you mean. Do u mean by the following solution

defauts/main.yaml
npm_config_prefix=/usr/local

tasks/main.yaml
- name: resolve npm config path
  command: npm config get prefix --no-update-notifier
  register: npm_config_prefix_resolve

- name: Setup npm_config_prefix
  set_fact: npm_config_prefix="{{ npm_config_prefix_resolve.stdout }}"
  when: npm_config_prefix_resolve.rc != 0 or "'FAILED' not in command_result.stderr"

templates/verdaccio.service.j2
...
ExecStart={{ npm_config_prefix }}/bin/verdaccio -c {{ verdaccio_configdir }}/verdaccio.yml
...

I hope that's what you mean, tell me if I misunderstood you.

@kai-chu Yes that is fine. Please add commit it and then it can be merged.


List available realms User can login with

Right now, the Realm conf is passed to nexus-web via environment variables.
Nexus-web should instead list /reamls and let the user decide which one to connect with.

Fixed by https://github.com/BlueBrain/nexus-web/pull/179


Adding dropdown values on field initialization using custom functions

We are not able to set dropdown enum and enumNames on field initialization.
ex: http://localhost:4502/content/forms/af/core-components-it/samples/customfunctions/populate-dropdown.html

AEM version 6.5.20
Core forms component version 1.1.38

@shravanthprasad  This issue was recently resolved in this commit: https://github.com/adobe/aem-core-forms-components/commit/d4417e518f48c2c1e759cde151da2687c9f7dfb9. Please update to the latest core component version compatible with 6.5.20 as detailed here: https://github.com/adobe/aem-core-forms-components/blob/release/650/VERSIONS.md.

@shravanthprasad Upgrading the core component version for forms should be quick, as core components are generally backward compatible due to the strict versioning approach used.

@shravanthprasad I have created a hotfix addressing the issue mentioned, based on version 1.1.38. You can find the hotfix here.
Please confirm if this release resolves the use case as expected.


Add DeepSlice to Open-Neuroscience

Hello!
I'm reaching out because we would love to have DeepSlice listed on Open Neuroscience, and also share information about it:
Open Neuroscience is a community run project, where we are curating and highlighting open source projects related to neurosciences!
Briefly, we have a website where short descriptions about projects are listed, with links to the projects themselves, their authors, together with images and other links.
Once a new entry is made, we make a quick check for spam, and publish it.
Once published, we make people aware of the new entry by Twitter, Mastodon  and LinkedIn
To add information about their project, developers only need to fill out this form
In the form, people can add subfields and tags to their entries, so that projects are filterable and searchable on the website!
The reason why we have the form system is that it makes it open for everyone to contribute to the website and allows developers themselves to describe their projects!
Also, there are so many amazing projects coming out in Neurosciences that it would be impossible for us to keep track and log them all!
Open Neuroscience tech stack leverages open source tools as much as possible:

The website is based on HUGO + Academic Theme
Everything is hosted on github here
We use plausible.io to see visit stats on the website. It respects visitors privacy, doesn't install cookies on your computer

You can check our visitor stats here

Please get in touch if you have any questions or would like to collaborate!

Hey I would love to add DeepSlice to your project. I’ll fill out the form and get back to you


Import plugins from GitHub

Crazy idea: What if we programmatically pulled plugins from GitHub that contained the tag jekyll-plugin?

!!!!!! :+1:

https://github.com/search?q=topic%3Ajekyll-plugin&type=Repositories


BUG: Update Twitter Icon in "Edit Profile" Page.

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
In the Edit Profile page, Under Follow Us section, The Twitter logo is not Updated to "X".

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hii, i'm Kanihk raj, can you assign me this issue

Hii, i'm Kanihk raj, can you assign me this issue

this issue is kind of irrelevant . the footer section on the page needs to be updated , it doesnt look good.
chk the my profile page also .
update the footer on these pages --> to the one that is on other pages like [ audio books page] . create a new pr for resolving this issue.
@KanishkRaj-RAKA  , U can work on this issue .


fig up tries to run incorrect command

I have a data container build from scratch with nothing but a file called /true init, so that fig is able to start up the container (it would be nice if I didn't even need that file). Fig starts the container fine the first time, but attempting to run fig up on the service after bringing it down results in an odd message:
Cannot start container 12341234...: exec: "/bin/echo": stat /bin/echo: no such file or directory
I don't want fig runing echo - I want to run /true, if anything.
FROM scratch

COPY true /true

CMD [ "/true" ]

Shouldn't fig respect CMD? Can I make it respect CMD?

I think this is a duplicate of #613 and #517

Tracking this in #613, the workaround for now is to use busybox or a container that has /bin/echo


Minting a collection results in collection name [[ Rare Waifu ]]

in beta - snek
tried to mint a collection named Neon 🌟
result: collection name [[ Rare Waifu ]]

Can you please provide link to transaction / your account id ?

account:
bXm3fZoQkHNgt74RQfL9o4rbtbH7tSaHZnJAYtipTxR9qNFo4
not sure how to find the transaction

related kodadot/snek#168

🦑 Releasing the squid at git@github.com:kodadot/snek.git#8d816b1e3cb50e7f77bb791d1102fd20672b33cf
◷ You may now detach from the build process by pressing Ctrl + C. The Squid deployment will continue uninterrupted.
◷ The new squid will be available as soon as the deployment is complete.


Fix shuffle algorithm

It must be possible for no swap to happen at each step in order to be able to generate all permutations.
Fixes #216

I'm currently running into this issue. Unless there's an obstacle, could we please get this merged?

I'm currently running into this issue. Unless there's an obstacle, could we please get this merged?

Thanks for the fix, and sorry for being unresponsive. This is in 1.0.0.


Default values for Resource Limit and Resource Request

Currently the default values for the limits and requests of the docker-hub-rate-limit-exporter deployment are quite generous, especially for the cpu.
https://github.com/viadee/docker-hub-rate-limit-exporter/blob/0c77941a36b4259a936cdf3084bc66f1685a7bd0/chart/values.yaml#L56-L62
I think it would be a good idea to lower the defaults for cpu. In our cluster it seems that a request of 50 milli cores and a limit of 100 milli cores seems to be sufficient.
Can anybody confirm that those values are sufficient for their cluster?
@TJM @shpwrck

@mstein11 for sure yes. It uses 19M of memory and doesn't even show up on the CPU usage, but the stats say ~ 0.01 (1%)

@TJM Thanks for sharing the usage data! What value would you recommend for the cpu request?

@mstein11 I would say, again based on our usage (presumably others can check their grafana to corroborate)
 resources:
     limits:
         cpu: 100m
         memory: 32Mi
     requests:
         cpu: 50m
         memory: 16Mi

OK, lets not set them that low, it causes cpu throttling, even though it never reaches that threshold (which I think is a known bug).

Testing these numbers:
resources:
    limits:
        cpu: 200m
        memory: 32Mi
    requests:
        cpu: 50m
        memory: 20Mi

Even though the CPU limit was ~10x the usage, it was being throttled, so I bumped it up more, this may be a cluster specific (kernel version) problem.
Upped the memory request to 20M as it seems to stay real steady at 18-19Mi usage

Thanks for testing!
We run with these values:
resources:
    limits:
        cpu: 100m
        memory: 128Mi
    requests:
        cpu: 50m
        memory: 128Mi

resulting in the resource consumption statistic as below:

Since our memory consumption is a bit higher I would suggest the following defaults:
resources:
    limits:
        cpu: 200m
        memory: 96Mi
    requests:
        cpu: 50m
        memory: 64Mi

WDYT?

Interesting, your CPU usage is in line with what I am seeing, but tour memory is significantly higher (double)... I wonder if I am running an old version? :-/

We are seeing a tiny bit of throttling at 200m limit. Less than 1%. Acceptable for me ... 25% might cause a warning alert :)

@TJM, I don't think the higher memory consumption is because of an old version. There haven't been any changes in the near past on the code. Maybe the difference in memory consumption is caused by a different docker host / kubernetes version?
Anyway, I don't think it is a big issue and I think the following values should be fine as defaults:
resources:
    limits:
        cpu: 200m
        memory: 96Mi
    requests:
        cpu: 50m
        memory: 64Mi


tls: add support for verify_certificate_spki.

Risk Level: Low
Testing: bazel test //test/...
Docs Changes: Added
Release Notes: Added
Signed-off-by: Piotr Sikora<EMAIL_ADDRESS>

cc @ggreenway
Note: I'm not sold on verify_certificate_hash and verify_spki_sha256 having so different names, perhaps we could rename verify_spki_sha256 to verify_certificate_spki, since it wasn't implemented? Thoughts?

I won't have time to review this until next week. If someone else wants to jump in, feel free.

I agree the names are oddly mismatched. I suppose you could use a new field number and mark the old one reserved.  @htuch, as resident protobuf expert, is that ok?
Otherwise, this LGTM.

Q: Should we recommend use of this over verify_certificate_hash, because it can survive certificate renewal? And if so, should we move it above verify_certificate_hash in the docs?

@mattklein123 I reordered the docs and added a little attention block. This should be good to go now, sorry for the delay.


fix(ngrok): reference ngrok.js as a relative path

Yup, tried using the lib but failed..

I think this solution won't work since __dirname is used during inflight, which is a bundled function and can't retain bundle-less info like dirname or filename.
See https://github.com/winglang/winglibs/pull/79, it gathers __dirname during preflight as a solution.

Yes. I saw. Great job!


[BUG] Replica auto-rebalance doesn't respect node selector

Describe the bug (🐛 if you encounter this issue)
Replica auto-balance doesn't respect the node selector and causes a re-balance loop.
To Reproduce
Steps to reproduce the behavior:

Have 3 node cluster (node-1, node-2, node-3)
Tag node-1, node-2 (select-tag)
Tag all nodes as different zones (zone-1, zone-2, zone-3)
Create volume with node-selector (select-tag)
Enable replica auto-rebalance
Replica auto-rebalance attempts to schedule a new replica to zone-3, but couldn't due to the volume node selector.

Expected behavior
Rebalance should only check in zone-1 and zone-2 due to the node selector.
Log or Support bundle
None
Environment

Longhorn version: day-1 issue

Additional context
https://github.com/longhorn/longhorn-manager/blob/cd31ec6e46ae76e56758382503d2ef5082f93ba1/controller/volume_controller.go#L2229

Verified on master-head 20230601

longhorn master-head https://github.com/longhorn/longhorn/commit/ffaa3d2113c2a47008e790df5bccf572f28025a3
longhorn-manager master-head https://github.com/longhorn/longhorn-manager/commit/2a83384208c88904bba67202c5d55b1d36dc6ea3

The test steps
https://github.com/longhorn/longhorn/issues/5971#issue-1718877226
Result Passed

[x] Manual test passed
[x] Automation E2E: PR #1381


Malabranch (malayim review needed)

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Translated HOWTO.md to MALAYALAM

also need to add link in README

What link?

link to the adde file

Ok

@eshellman I've addressed the comments with this PR, if you'd like to move along with this instead

Diff

closed following #11000


Fix/reapply fixes

Testing this locally before I call it good for another look.

Alright, I did run the puffin repo against this branch, and things are working as I expect them to, so I think this is good to go.


Reserved members of complex attributes

I suggest to turn it to a RFC verb. IMHO, it should be MUST instead, but it could be argued that SHOULD could be more appropriate.

Oh yeah, this one. I intentionally used a non-normative word for consistency with other objects. There's no object in the spec for which reserved members are actually formally reserved. I agree they should be, but then this is far from the only case to be considered. And I think the word here needs to be a MUST.

There's no object in the spec for which reserved members are actually formally reserved

@bintoro, sorry, do not quite understand what you mean by it. Is not this a formal reservation:
"A resource object MUST contain at least the following top-level members"

And I think the word here needs to be a MUST.

I also think it should be MUST

@hhware I've changed my mind and would be happy to see this PR merged if you could just replace the SHOULD with MUST. I concluded that the situation's not exactly comparable to the other objects.

@bintoro, thanks for reviewing! Updated.

:+1: