Binding based on interfaces' attributes

First of all, thanks for this great library. It really helps to organize code better compared to MVC and pure minimal API approaches.
Idea
When request models use interface for some common fields, it would be great, if I would be able to define the source for binding (headers, body, etc.) inside the interface and not worry about it in every request model.
Current situation
Every request model must have all the binding attributes in itself. It can not inherit attribute information from interfaces.
How it would look like after improvement
I would have an interface like this:
internal interface IPagedRequest
{
    [FromHeader(IsRequired = false)]
    public int? Offset;

    [FromHeader(IsRequired = false)]
    public int? Limit;
}

With that being present, I can create Request models just with the fields:
internal class ListUsersRequest : IPagedRequest
{
    // ... all "real fields" i would need to work with

    public int? Offset;

    public int? Limit;
}

... and I can have many different request models like this and I would not need to redefine the binding source every time I create a new model. This way, the binding source would be defined in one place and it would apply to every case universally.
Additional comments
What is really being tried to be done here is and idea of "componentization". Multiple inheritance doesn't exist in C# in any form or way except partially as interfaces. There are many "universal components" that a request model may be composed of. One example is pagination as shown. Another might be result ordering for example as a separate component.
Maybe there are other ways to achieve similar results. If so, please let me know! :)
Versions
.Net 7
FastEndpoints 5.18.0

Not necessarily. When such interface exists for pagination, the next step is that you have an extension method on IQueryable<T> that can receive a request DTO based on interface. So in the end one could do something like this in their endpoint code:

var results = await myDbCtx.Users.WithPagination(myRequestDto).ToListAsync();

A common interface would, of course, lead to common usage pattern.

Can't comment that too deeply. Code generation and caching of property metadata might help. (Maybe already been used by FastEndpoints, not sure) Similar concerns are well addressed with different ORM-like libraries (linq2db being my first choice) and somehow they have done it in acceptable way.

if more people are interested in this, will look in to implementing it.
i'll keep this issue open for a few weeks so that others can chip in.
if anyone seeing this is keen on doing a PR, please go ahead.

This is a matter of programming specifications, and you can't annotate properties inside the interface to be implemented,
You can use abstract classes to achieve the effect you want

This is a matter of programming specifications, and you can't annotate properties inside the interface to be implemented, You can use abstract classes to achieve the effect you want

Unfortunately no. One can not inherit from multiple abstract classes, therefore making this suggestion invalid.

Of course, there's a way to do this, and that's to use source generation, but that's a solution that has nothing to do with code specifications
source generation automatically helps you annotate to the properties of the implementation class

This is a matter of programming specifications, and you can't annotate properties inside the interface to be implemented, You can use abstract classes to achieve the effect you want

Unfortunately no. One can not inherit from multiple abstract classes, therefore making this suggestion invalid.

A solution using SG is provided https://github.com/vipwan/Biwen.AutoClassGen  :)

@vipwan that's beautiful.... good stuff mate!
@joonatanu-birkle-it problem solved ;-)

@vipwan people would find the lib more enticing if the readme was in english ;-)
just a thought...

@vipwan people would find the lib more enticing if the readme was in english ;-) just a thought...

Well, I'll translate into English 😃


add Microsoft.Test.UserTokenMock & tests

Description

Add user token mock for declarative test script.
It is required for testing bots that need authentication.
Specific Changes

Add UserTokenMock class for token to mock
Add MockData as a helper for mocks that want to be loaded from file and don't have variations. (subtle as it conflicts with schema)
Add List<MockData<UserTokenMock>> in TestScript

Testing

Add TestScriptTests_UserTokenMock.test.dialog

Thanks!

I add Microsoft.Test.UserTokenMock for Microsoft.OAuthInput.
Also I increase time interval in ShowTyping_TestMiddleware_1_Second_Interval for unlucky ones..
Please review this, thanks!

@tomlm Thanks for reviewing this! But forgive me, I regretted about using MockData as it made TestScript class ugly. So I update the code to use abstract class UserTokenMock and now the implementation is Microsoft.Test.UserTokenBasicMock.
Also since we revert QnAMaker here 266a746e28b83ee3a8603e9d4be3f3163225b8b2, properties are removed in tests.schema.


Make UnknownFieldSet embeddable

This will remove boilerplate for types that just want to preserve unknown fields.

Looks good to me.


What's the font in the second picture?

IIRC, it's the customized version of Iosevka, this is the custom build script https://gist.github.com/huytd/18be225b64f5f9205eb86ebc2be8bff0


[ROCm] Enforce host memory for DT_INT32 tensors

This PR amends the memory type (host/device) assignment logic.
Prior to this fix, there were several situations where a GPU-allocated DT_INT32 tensor could arrive into a kernel via a HostMemory input (typically when that kernel was inside an If or a StatelessWhile subgraph). This usually worked fine, because it's common for the GPU memory to be mapped into the host memory address space anyway, so the kernel could still access the data (which is why the problem was not noticed for so long). But, on some devices and some systems, memory mapping is partial or unavailable, and, on those, the kernel would crash.

That's a pretty huge non-ROCm specific change. Could you show the test cases where it is crashing otherwise? I also thing the tag [ROCm] is somewhat misleading here.

It crashes on some ROCm devices in the convert_to_constants test.

Sure, but you are changing the logic for everything. Do you know why is it crashing only on ROCm?

It crashes because some ROCm devices do not map all GPU memory into host space. It might be crashing with some NV devices as well but I don't have the hardware to test it.
I don't think the change is all that huge, apart from formatting, it should only affect inputs to functional ops like StatelessWhile.

@sanjoy for comments

I think @agarwal-ashish is a better reviewer here.

@agarwal-ashish Can you please review this PR ? Thanks!

@saxenasaurabh Can you please review this PR ? Thanks!

@ezhulenev  Can you please review this PR ? Thanks!

@ekuznetsov139  Can you please check @alextp's comments and resolve conflicts?. Thanks!

@ekuznetsov139  Can you please resolve conflicts? Thanks!

@ekuznetsov139  Can you please resolve conflicts? Thanks!

@ekuznetsov139  Can you please check @allenlavoie's comments and keep us posted ? Thanks!

@ekuznetsov139 Any update on this PR? Please. Thanks!

It has been 15 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

It seems that we're waiting for further feedback from TF devs.

It seems that we're waiting for further feedback from TF devs.

@allenlavoie Can you please take a look on above comments from @ekuznetsov139. Thanks!

What more did you want feedback on?

Mainly, do you want me to make any specific changes to this PR, and do you even want to merge it at all (as opposed to having someone at your end rewrite that entire code).

Unless there's a pressing need I'd rather we didn't make int32 more special than it already is. I doubt users will run into this since control flow is typically inlined rather than these functional kernels running directly.
So if there's a great need for more int32 special casing please make that case, but otherwise I'd say we should implement a more satisfying solution (figure out where downstream kernels want inputs placed / leave them where they are). Of course you're free to leave the latter to someone else.

@ekuznetsov139  Can you please check @allenlavoie's comments and keep us posted ? Thanks!


Support GitOps for deploying models

I would like to deploy models using a gitops approach.
Describe the solution you'd like
SeldonDeployments are stored inside a git repository. The MLFlowDeploymentController will find those CRDs and apply the latest MODEL URI.
Workflow

If a new model is stored in MLFlow, this model is automatically deployed into Staging/Production (based on the MLFlow-setup)

@kay this is fixed here https://github.com/rocket9-code/mlflow-deployment-controller/pull/24


Task resolveDependencies takes too long

This is a problem because it's the first to run, and even when everything is set up, it still takes some time to lookup for updated modules.
Maybe pinning version is quicker?

I'm pretty sure AppVeyor has nuget in the path, but if there's a bug in the bootstrap function on module load, that could slow things down.
Alternatively or additionally, it could be that when using PSGalleryModule, PowerShellGet may be doing the same thing.
Things that might narrow it down:

Displaying whether nuget is in path to double check
Outside of and before PSDepend, run this bit in measure-command
This might also be expensive
If a module already exists, this adds time
PSGalleryNuget might be slightly faster - it doesn't need to pull in existing modules, for example

Ick.  Forgot how ugly that code was : )
Cheers!

Thanks @RamblingCookieMonster.
I haven't looked at the code much yet, but you're right about the time some of those takes.
Just to clarify, the issue is when running the test/Build locally as we're most likely up-to-date in our environment, and running the Build on CI is less time sensitive.
The current Build time for sample module is around 23 seconds locally and I found that on my system:
the Get-Module -listAvaiable $moduleName takes less than a couple of seconds, same for Find-Module. It's not much, but 4secs * 4 dependencies = 16 seconds delay before starting giving feedback.
The ultimate goal is to fail fast when running local, so that could be improved in different ways:

Calling tasks conditionally
Saving state to local file (i.e. when if you don't do a Clean)
Improving the code in the dependency (in PSDepend)

For PSDepend, I suspect we could do something about it if we'd use Begin/Process/End type of structure, and then call the list of modules via the pipeline. This way we can do the Get-Modules for the list in the Begin block, and process the rest in-memory.
Optimisation is not yet the priority, so I left this as a note! Thanks again for pointing possible causes!

[this is only in Dev branch, not in master yet]
Kinda fixed/worked around this by changing how the dependencies are pulled (before the actual build tasks run), which allows to get rid of .init.ps1 and have a unique point of entry for everything.
.build.ps1.
To pull dependencies use ./.build.ps1 -resolveDependency but this is only required once per file change...
This is how a CI/CD tool should be configured (i.e. Appveyor).
When running locally, once you pulled things down, just run .build.ps1 and it's much quicker :)


updated image to indicate 'v3'

Why:
there was a request for more consistent documentation regarding a GitHub Action event-workflow image
Closes:
#25349

What's being changed (if available, include any code snippets, screenshots, or gifs):
updated an image to reflect the requested change (from v2 to v3):

the image previously indicated v2. It now indicates v3
Check off the following:

[X] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline.

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[X] For content changes, I have completed the self-review checklist.

@PaoloJr90 great to see another PR from you! I've updated your post slightly to connect it to the issue.  👍
I'll get this triaged for review! :zap:

Closing this PR in favour of https://github.com/github/docs/pull/26028


Backlog 36195

:white_check_mark: Build finished in 8m 25s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/file-open-save-new/core,plugins/repositories/core

:exclamation: No tests found!
:information_source:  This is an automatic message

:white_check_mark: Build finished in 3m 35s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/file-open-save-new/core

:exclamation: No tests found!
:information_source:  This is an automatic message

:white_check_mark: Build finished in 3m 16s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/file-open-save-new/core

:exclamation: No tests found!
:information_source:  This is an automatic message


ra_hir: add more docs

Cited from hear

bors r+
:heart:

@matklad , sorry, fixed a typo, I think you'd want to look at it

bors r+
On Mon, 23 Mar 2020 at 13:05, bors[bot]<EMAIL_ADDRESS>wrote:

Canceled
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/pull/3690#issuecomment-602551150,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M5N43KVJ5HQIV4RT3LRI5F7TANCNFSM4LR2EZMA
.


[1.1.5] legacy.js not published

The npm package of 1.1.5 doesn't include the legacy.js file which breaks when loading browser.js

same issue here, this is breaking https://github.com/brunch/brunch

onit once seccond


Question about using one _real_extract to fulfill data for another situation

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

I have been working on a number of 'whole show' level changes to various extractors and have ben running them on a much older version of youtube_dl and generally it was a copy of the normal extractor wrapped inside some loops over video_ids etc.
Now I have updated to the latest version and am trying to re-integrate my code to possibly submit for inclusion and was wondering what I am missing since when I try and do a simplification and literally have my say NBCShowIE call the NBCIE to do the information extraction, I am running into a problem I have not seen before where I get the following error:
ERROR: 'NonType' object has no attribute 'get'
I am sure I am missing something stupid and silly but I am stumped right now.   My normal code is to literally accept the show URL and then extract via scraping any identifiers I can find and in the new style was hoping to just pass each one to the normal processing code which already has extraction logic.  This will ensure my code doesn't have duplication of existing stuff which will make it so much easier to maintain.
But I just need some sort of concept clarification or smack on the head - something basic is wrong here and I swear I ran into it when I first did these, but that was back in 2018.
And here is a simple trace from say NBC The Voice
https://www.nbc.com/the-voice/episodes
ParseResult(scheme='https', netloc='www.nbc.com', path='/the-voice/episodes', params='', query='', fragment='')
[NBCShow] with/episodes: Downloading webpage
['/the-voice/video/the-battles-premiere/4135310', '/the-voice/video/the-blind-auditions-part-5/4131245', '/the-voice/video/the-blind-auditions-part-4/4127790',
'/the-voice/video/the-blind-auditions-part-3/4123730', '/the-voice/video/the-blind-auditions-part-2/4119821', '/the-voice/video/the-blind-auditions-season-premiere/4119820']
/the-voice/video/the-battles-premiere/4135310
https://www.nbc.com/the-voice/video/the-battles-premiere/4135310
/the-voice/video/the-blind-auditions-part-5/4131245
https://www.nbc.com/the-voice/video/the-blind-auditions-part-5/4131245
/the-voice/video/the-blind-auditions-part-4/4127790
https://www.nbc.com/the-voice/video/the-blind-auditions-part-4/4127790
/the-voice/video/the-blind-auditions-part-3/4123730
https://www.nbc.com/the-voice/video/the-blind-auditions-part-3/4123730
/the-voice/video/the-blind-auditions-part-2/4119821
https://www.nbc.com/the-voice/video/the-blind-auditions-part-2/4119821
/the-voice/video/the-blind-auditions-season-premiere/4119820
https://www.nbc.com/the-voice/video/the-blind-auditions-season-premiere/4119820
[download] Downloading playlist: None
[NBCShow] playlist None: Collected 6 video ids (downloading 6 of them)
[download] Downloading video 1 of 6
ERROR: 'NoneType' object has no attribute 'get'

Well Duh, forgot to inherit from th epropr class - so got futher.
If I just run one of my 'urls' through they are fine for each episode of the show, but trying to pass them from NBCShowIE to NBCIE using this
super(NBCShowIE,self)._real_extract(urlbits.scheme + '://' + urlbits.netloc + video_id)
ends up not passing the regex?
Hmm.  It's a problem with of course class inheritance.  So for now I changed _VALID_URL to also keep a local copy in say _classname_VALID_URL - which it internally uses, that way you can call one class from another and it still uses it's local URL instead of the overwritten value in the child class.
So that worked well, but now I realized I think why I copied more code than I wanted.  Once I have appended all the episodes - some episodes may trip a ExtractorError since they are APO needed, but other episodes do not, but the self.playlist_result won't continue even with '-i' option it seems.  Is that normal/right?
Sorry for the saga here, but if I can get some of this stuff integrated it should be usefull I hope.  Been using alot of it for a few years now extracting daily the shows from most major US and CBC (here in CAnada) channels.

So NBC is now working, the code will need a bit of cleaning etc, but it might be the first donation.  Will accept a show URL and supports 2 or 3 formats, depending on the ages of the show some might still be working.  Basically we try stuff that worked first, if it fails, we keep going till we find some video_id signatures the code likes.  Then kaboom quick download of a whole show, season etc.

Is there somewhere people working on this product can talk/communicate things other than incidents??


Document test dependencies

While following README.md and trying to build && run official google tests
I get this error
/usr/bin/ld: cannot find -labsl::container collect2: error: ld returned 1 exit status
on make stage
What should I install in order to fix this and run tests?
uname -a
5.8.0-53-generic #60-Ubuntu SMP Thu May 6 07:46:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Hm... on another try it gives me this
-- Found Python: /usr/bin/python3.8 (found version "3.8.6") found components: Interpreter
-- Configuring done
CMake Error at CMakeLists.txt:62 (add_executable):
  Target "robots-test" links to target "absl::container" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

during cmake ..

found this in CMakeLists.txt.in
ExternalProject_Add(abseilcpp
    GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
    GIT_TAG master
    GIT_PROGRESS 1
    SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-src"
    BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-build"
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ""
    INSTALL_COMMAND ""
    TEST_COMMAND ""
)
``` it's never a good idea to link to master branch of a git, should always pin version of your dependencies

changing https://github.com/Folyd/robotstxt/blob/d46c028d63f15c52ec5ebd321db7782b7c033e81/tests/CMakeLists.txt.in
ExternalProject_Add(abseilcpp
    GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
    GIT_TAG 20200923.2
    GIT_PROGRESS 1
    SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-src"
    BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-build"
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ""
    INSTALL_COMMAND ""
    TEST_COMMAND ""
)

ExternalProject_Add(googletest
    GIT_REPOSITORY https://github.com/google/googletest.git
    GIT_TAG release-1.10.0
    GIT_PROGRESS 1
    SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-src"
    BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-build"
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ""
    INSTALL_COMMAND ""
    TEST_COMMAND ""
)

changing https://github.com/Folyd/robotstxt/blob/d46c028d63f15c52ec5ebd321db7782b7c033e81/tests/CMakeLists.txt#L63
to target_link_libraries(robots-test absl::base absl::container absl::strings gtest_main dl)
fixed an issue!


organise imports on save

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #3014   👈

This comment was auto-generated by Graphite.


Revert "Add jira/valid-reference to reconciliation PRs"

Reverts openshift-eng/aos-cd-jobs#4057
https://github.com/openshift-eng/art-tools/pull/212 fixes the root cause. Let the other bot be in charge of this label.

/lgtm

/approve


Build RPMs using GitHub actions

This looks very outdated, we now have rpm build in the github workflow. Also, it doesn't contain any emojis. Closing, feel free to reopen if I'm wrong.


docs: contracts cleanup.

Description

Cleanup grammar.
Add links.
TODO: contracts feels like 1/2 reference, 1/2 guide. Verifiers, especially is more like a guide.

Related Issue

Other information

@cedoor Please review and merge.

You're right. The Verifiers section looks like a guide!


Configure Junit Tests Localization.

This allows testing in machines with a different locale ( mine is es_cl )

Do you plan to work in this more?

Yes, I want to continue with this. Just give some time to learn this github
interface :-)
2017-02-27 3:25 GMT-03:00 ddekany<EMAIL_ADDRESS>
Do you plan to work in this more?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-freemarker/pull/15#issuecomment-282638315,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHpOL_AmlZbiZgEi1Dwsd8pmJCznJeUiks5rgmxJgaJpZM4KC1Bt
.

Sorry, we are close to release voting, so I took this as a bug report, and fixed the issues independently:
https://github.com/apache/incubator-freemarker/commit/738cef854c5341fe75243881fd454577151064d2
https://github.com/apache/incubator-freemarker/commit/649d85d180cdd3df87a79e2357d9d77a384dcccf
Thanks for pointing out these problems anyway!  Also, it would be helpful if you can run the tests with the current version, to see if it still contains unwanted assumptions about the test environment.

Great!
I want to be able to cooperate soon. I will check with my locale the new
versión.
Regards,
Mauricio
El mar. 14, 2017 5:52 PM, "ddekany"<EMAIL_ADDRESS>escribió:
Sorry, we are close to release voting, so I took this as a bug report, and
fixed the issues independently:
738cef8
https://github.com/apache/incubator-freemarker/commit/738cef854c5341fe75243881fd454577151064d2
649d85d
https://github.com/apache/incubator-freemarker/commit/649d85d180cdd3df87a79e2357d9d77a384dcccf
Thanks for pointing out these problems anyway! Also, it would be helpful if
you can run the tests with the current version, to see if it still contains
unwanted assumptions about the test environment.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-freemarker/pull/15#issuecomment-286556189,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHpOLzhDWeMOVHjlYK6qPj3OEdEXs_r_ks5rlv4lgaJpZM4KC1Bt
.


adding atan

Description
I add atan function in the function.py file. (issue:#972)
Fixes # (issue)
Type of change
adding arntan function

Thanks for the update - for the test, what I meant was open the file "tests/unit/test_expression_tree/test_functions.py", then add a new function under test_arcsinh which does exactly the same thing but for arctan. Then run that test_functions python script to make sure the test you have added works. Test files should be kept separate from the source code (i.e. you don't need to add the test_functions.py file to pybamm/expression_tree, you can just add a single function to the existing test file)

Do I run this test file from the prompt?
python test_fucntion.py gives me following error.

You can just run it the way you would run any python file (either from the prompt or through your IDE) - maybe you need to activate your virtual environment?
In the test you added, you should change from arcsinh to arctan (otherwise it is just a repeat of the test above it).
Also make sure that the style tests pass, you can check this locally by installing flake8 (pip install flake8) then running flake8 from command line - for example, non-empty lines raises an error, which is why this PR says "some checks were not successful"

I did flake8 and conduct the test. I have following errors.

Make sure you have merged the latest version of the "develop" branch

HI Tino,
Would you let me know how to merge the latest version of the "develop" branch?
I cloned my branch to my computer. I am a newbie to GitHub.

Assuming you have your fork as origin and the pybamm repository as upstream, the basic command is git fetch upstream develop: see this blog post
But I downloaded you fork and tried running the test and it works fine for me, so I don't know why you're getting that error

can we use your test result for this change?

Yes, just replace all occurrences of arcsinh with arctan in test_arctan, and remove the blank spaces from lines 144 and 160 of test_functions.py (can you see the error message here?), then we can merge it


[Enhancement] Create new transport action for fetching metadata of multiple primary & replica shards

Describe the bug
Original Issue opened : https://github.com/opensearch-project/OpenSearch/issues/5098 . This issue is a sub task for the overall project defined https://github.com/opensearch-project/OpenSearch/issues/8098.
Description
As part of node drop and joins, we fetch the metadata of unassigned shards on per shard basis.
https://github.com/opensearch-project/OpenSearch/blob/96630f036f80708126ef4a2459577dab629220ed/server/src/main/java/org/opensearch/gateway/TransportNodesListGatewayStartedShards.java#L151-L155
TransportNodesListGatewayStartedShards is a transport call for getting this metadata for a single shard. We need to add a new transport for both primary and replica shards so we can fetch metadata for a batch of shards in one transport call.
Additional context
Please go through the discussion https://github.com/opensearch-project/OpenSearch/issues/5098 to understand the overall enhancement approach and check https://github.com/opensearch-project/OpenSearch/issues/8098 to see the sub tasks of overall project.

Completed by
Primary batch transport https://github.com/opensearch-project/OpenSearch/pull/8218
Replica batch transport  https://github.com/opensearch-project/OpenSearch/pull/8356


Update rancher-efs

Add ap-southeast-2 as a region that supports EFS

LGTM http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticfilesystem-region


Create changelog-auto.yml

This gh action runs the main.py file in the repo, which should be able to add a new release to the changelog on my page

Oops, committed to wrong repo.


where to locate the docker.sock

I'm using traefik and I need to map the /var/run/docker.sock. I can't find it inside the /var/snap folder either

The docker socket should be in the regular location, even if you are using the docker snap. Are you sure that the docker snap is enabled? What is the output of the following commands:
snap version
snap list docker
snap services docker

The docker socket should be in the regular location, even if you are using the docker snap. Are you sure that the docker snap is enabled? What is the output of the following commands:
snap version
snap list docker
snap services docker

snap version
snap    2.48.2 snapd   2.48.2 series  16 ubuntu  20.04 kernel  5.4.0-60-generic

snap list docker
Name    Version   Rev  Tracking       Publisher   Notes docker  19.03.11  471  latest/stable  canonical✓  -

snap services docker
Service         Startup  Current  Notes docker.dockerd  enabled  active   -

snap version
snap    2.48.2 snapd   2.48.2 series  16 ubuntu  20.04 kernel  5.4.0-60-generic

snap list docker
Name    Version   Rev  Tracking       Publisher   Notes docker  19.03.11  471  latest/stable  canonical✓  -

snap services docker
Service         Startup  Current  Notes docker.dockerd  enabled  active   -


Fix traffic restrictions for overlapping addresses

Problem:

DevOps needs access to SSH and HTTPS on gitlab.company.com
Everyone needs access only to HTTPS on gitlab.company.com

Defining two Resources with a TCP/22 traffic restriction and TCP/443 restriction respectively would cause an issue because the Client/portal might be the HTTPS resource instead.
There isn't an easy way to solve this. We need to send the Resource's address to the Portal from the client instead of the ResourceId, and let the portal find all matching Policies to send to the Gateway for access, so that the Gateway can coalesce the traffic restrictions properly.

cc @conectado @bmanifold @AndrewDryga
This is going to need a fix before we roll out #4743 I think... wondering if this is the easiest way to solve the issue.
Trying to avoid making the user create a Resource for all combinations of ports/protocols they want to limit for each Group, which is the current way you can solve the issue now.

Maybe the simpler approach is to move the traffic_filters to policies instead, since that is where the admin is linking a Group to a Resource, and they can define which traffic is allowed for the particular Group at the time of policy creation.

I think the use case here is weird, what you should do is define two resources:

gitlab.company.com:80,443 with access to everyone
gitlab.company.com:20 with access to admins

Then the client/gateway must differentiate between those two resources. Plus there are many other reasons why two separate ports on the same hosts can have different resources. Moving this to policy is trying to hide the problem without solving it.

@AndrewDryga That won't work. DNS resolution doesn't take ports into account, so when a user who has access to both resolves the name, the client won't know which one is the one to use until traffic flows, at which point it's too late.
The other option is to send all traffic restrictions from the portal down to a gateway for a all Resources with the same address that the user has access to. I.e. to authorize based on address and not ResourceId.
We would need major changes to the way DNS is resolved and mappings handled to pick the right set of traffic filters to use.
I'm not seeing a better approach that won't require onerous refactoring?

Hm yeah, actually -- adding this to Policies won't solve the issue because the wrong policy could still be used to resolve access to the Resource.
For example, the Everyone policy could be picked for the DevOps user who's trying to access tcp/22.
Need to think through this more. This means that Everyone policies can cause issues when tied to Resources with overlapping addresses, since there isn't a way to remove a Group from a policy definition.

Based on the above it seems that the fix here to have the client select all Resources that match a particular address seen, and use all of them in the allow access request.
The portal would then need to resolve all policies for the matched Resources and send them all down to Gateway, coalescing the traffic restrictions for that particular Peer.

Will be resolved by #4789


Issue 483

Coverage decreased (-0.2%) to 87.397% when pulling abc8f669c3c8193ffc3a3b0ac6c3ac2198794d4f on issue-483 into fdbd12e83069386234d3ead0d7d8e70fb09b3551 on master.

Coverage decreased (-0.2%) to 87.375% when pulling 770397bcb22e2f5f8fc282c24bbcccd01bf8eb4e on issue-483 into fdbd12e83069386234d3ead0d7d8e70fb09b3551 on master.

Coverage decreased (-0.2%) to 87.397% when pulling 770397bcb22e2f5f8fc282c24bbcccd01bf8eb4e on issue-483 into fdbd12e83069386234d3ead0d7d8e70fb09b3551 on master.

@homu r+

:pushpin: Commit 770397b has been approved by kbknapp

:hourglass: Testing commit 770397b with merge 25d5cbc...

:sunny: Test successful - status


Config script failure should trigger a notification

If the config script exits with a nonzero status, yabai should show a notification about that error, like it does if there is no config file.
I just spent a while wondering why one of the yabai messages in my config script wasn't working.  It turns out that it's because I had a typo.

It looks like the problem is that fork_exec returns true as soon as the fork succeeds, without waiting to determine whether the command executed successfully.

not realistic with how Yabai is designed.

Could you give some more detail about why this is unrealistic? The parent process is able to monitor its children, and can await their exit status.

The Yabai config file is a shell script consisting of multiple commands that are sending messages on the yabai socket. yabai's main thread needs to run to receive events from the system and the event loop thread needs to run for the commands in the config to properly communicate with yabai.
I suppose the config could be executed on a background thread which simply waits and reads the exit code and signals the user through a system notification scheduled on the main thread or something, but I don't particularly see a value in that.
The config is usually very basic in which the exit code does not matter. Other configs are advanced and contain a huge amount of scripting and setup, in which case it is not really helpful to know that "something in the config failed".
Commands return exit codes and errors in the config file should be handled gracefully by the user. It is also possible to notify yourself of errors using notifications by spawning them directly from inside the script itself.

Another way to accomplish this could be to have the forked config execute a wrapper that executes the config and spawns a message if an error occurs.
This feature would be most useful during development of config files, in which case the "something" that went wrong would generally be the thing part that was changed.  I agree that for stable config files, they should handle their own errors.


Amir Sedighi, Microservices Challenge 2

B-Yond, The second challenge, Save the Humans
Bots started an invasion to our planet. Regarding the latest research they leave some patterns in their reviews on amazon. Here we provde a REST API on the top of a Machine Learning microservice. It supposed to finds this patterns...
We've downloaded and mixed some datasets from here: http://jmcauley.ucsd.edu/data/amazon/
That data is being used to prepare the dictionary.txt file. dictionary.txt is the experience we make for the machine about human reviews.
Architecture
We've used Microservices architecture. The services is stateless. So you can easily bring more instances up to scale out.
This service supposed to provide a low-level API. So it needs to be deployed behind firewalls, HA and non-blocking high-level APIs.
Getting Started

Compile and buid the jar file:

mvn clean install -DskipTests

You can run service by one of the following ways:
mvn spring-boot::run

OR
Starting the project by building a docker image and running it withing the container:
docker-compose up

Then access the API online document using the following address:
http://localhost:8080/swagger-ui.html

Note:
The learner needs to be trained. It takes a few minutes to be trained... Ones it trained, you can start calling the API.
Prerequisites
The learner needs at least 2GB ram. It uses a dictionary that downloaded from here:
http://jmcauley.ucsd.edu/data/amazon/
And make sure in application properties, the following path points the current address on your disk:
basePath=/Users/amirsedighi/Projects/unmanaged/byond/amaze-us/microservice/challenge-2/save-the-humans/

Running the tests
To run the tests just run the following command:
mvn test

Note:
The learner needs to be trained. It takes a couple of minutes. Ones it trained, the tests will be running one after one.
Try It
Request:
curl -X POST "http://localhost:8080/smell" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"review\": \"Hi, map saving function is just coming out. We received a lot of advice from customers and will consider them seriously. Our developing department will complete more practical features gradually. We appreciate all good ideas from every customer and hope we could work with customer together to make our product better\", \"suspectedWords\": [ \"amazing\", \"human\" ]}"

Response:
{
  "review": "hi  map saving function is just coming out  .   we received a lot of advice from customers and will consider them seriously  .   our developing department will complete more practical features gradually  .   we appreciate all good ideas from every customer and hope we could work with customer together to make our product better",
  "verbose": "Seems the reviewer is a human being.",
  "suspectedWords": [
    "amazing",
    "human"
  ],
  "matchingSimilarWords": [],
  "matchingWords": [],
  "isBot": false
}

So he/she is a human! because isBot is false. There is also a verbose field.
Note:
You can try it with other suspected words. You are not limited to "amazing" and "human" keywords. The learner also will try the similar words as well.
See another sample:
curl -X POST "http://localhost:8080/smell" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"review\": \"Hi, map saving function is just coming out. It is exciting and we received a lot of advice from customers and will consider them seriously. Our developing department will complete more practical features gradually. We appreciate all good ideas from every awesome customer and hope we could work with customer together to make our product better\", \"suspectedWords\": [ \"amazing\", \"human\" ]}"

Response is:
{
  "review": "hi  map saving function is just coming out  .   it is exciting and we received a lot of advice from customers and will consider them seriously  .   our developing department will complete more practical features gradually  .   we appreciate all good ideas from every awesome customer and hope we could work with customer together to make our product better",
  "verbose": "There is a small likelihood. But it is OK. But still I think he/she is a human being.",
  "suspectedWords": [
    "amazing",
    "human"
  ],
  "matchingSimilarWords": [
    "awesome"
  ],
  "matchingWords": [],
  "isBot": false
}

While the service knows she/he is not a machine, but "awesome" also being marked by service! Read the verbose:
"verbose": "There is a small likelihood. But it is OK. But still I think he/she is a human being.",
Deployment
The project is dockerized now. Just use docker for deployment.
Health
Service information:
curl http://localhost:8080/actuator/info

Service health:
curl http://localhost:8080/actuator/health

The project is dockerized now. Just use docker for deployment.
Built With

Spring Boot - Spring Boot, the glue framework, provides DI, REST Controllers.
DL4J - The deep learning framework
Maven - Dependency Management
Swagger - Used to document the API

Authors

Amir Sedighi

License
This project is licensed under the MIT License - see the LICENSE.md file for details

Hi Albert,
You right!  The message supposed to be like this:
The learner needs to be trained. It takes a few minutes to be trained...
Ones it trained, you can start calling the API.
On Wed, Jun 5, 2019 at 2:36 PM Albert Khoury Aouad<EMAIL_ADDRESS>wrote:

@albertaouad commented on this pull request.
In microservice/challenge-2/HELP.md
https://github.com/b-yond-infinite-network/amaze-us/pull/31#discussion_r290879381
:

+Starting the project by building a docker image and running it withing the container:
+ +docker-compose up +

+Then access the API online document using the following address:
+ +http://localhost:8080/swagger-ui.html +
+
+Note:
+After running service it starts to train itself. It takes a fe
+
+### Prerequisites
+
+The learner needs at least 2GB ram. It uses a dictionary that downloaded from here:
you missed that URL ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/b-yond-infinite-network/amaze-us/pull/31?email_source=notifications&email_token=AA2LUWOKPF2GBALQVO2UPRLPZABSZA5CNFSM4HT63MQKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB2WIDJQ#pullrequestreview-246186406,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2LUWNRQIIYRXB64DMA7M3PZABSZANCNFSM4HT63MQA
.

@albertaouad  I've just added a couple of lines in Prerequisites as well:
And make sure in application.properties, the following path points the current address on your disk:
basePath=/Users/amirsedighi/Projects/unmanaged/byond/amaze-us/microservice/challenge-2/save-the-humans/

Hey Amir

The learner needs at least 2GB ram

Does the amount of RAM depend on input? How would you scale to 1TB of reviews?

Hey Amir

The learner needs at least 2GB ram

Does the amount of RAM depend on input? How would you scale to 1TB of reviews?

Hi Eli,
Great question! The main idea here is to process reviews on-the-fly. We wanted to make it real-time to detect the robots while they are posting the reviews.
We can also ingest the previews old reviews as well.
Regarding the performance we need,  we can start a few instances of the current service up. For example 10 instances. It is stateless. So all instances work the same.
We may use an ensemble learning approach (Having different learners with different partial datasets) that is also scalable.
I assumed there is a high-level API on the top of the current service (cluster) which is responsible for messaging, queueing and security... That HL-API can be used for ingesting the 1TB previews reviews into the cluster.
Meantime, fortunately, DL4J is totally Spark friendly. It is not a big deal to train the learner (On the top of Apache Spark) with very very big datasets.
So we can have a cluster of the current service and feeding them with all reviews (1TB or more) endlessly. Hope I explained the idea well.

Thanks Amir, that makes sense!

Closing this, Thanks you Amir!


Change Connection.Type to be a string and add ProviderType

Description
Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
[x] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Current dependencies on/for this PR:

main

PR #154   👈

PR #155

This stack of pull requests is managed by Graphite.


Order & unknown parameter causes an error

Hi, thanks for the package! 👍
#[derive(Debug, Deserialize)]
pub struct PostsParams {
  #[serde(default)]
  first: Option<u8>,

  deal_type: Vec<String>,
}

dbg!(serde_querystring::from_str::<PostsParams>("..."));

deal_type[]=str&first=2&a=1 // ok
first=2&a=1&deal_type[]=str // missing field deal_type

After further investigation, it seems like a=1 parameter drops the following deal_type[]=str out of the list. If you put it dn the first place a=1&first=2&deal_type[]=str, first will be lost.
serde-querystring = "0.0.8"

With serde_querystring::de::ParseMode::Brackets on the latest beta everything is parsed correctly.

Hi @xamgore
The parsing method in 0.0.x releases had some inconsistencies as I was trying to support as many kinds of querystrings as possible, I'm glad it is fixed in the latest beta with separate scopes for different kinds of qs.
I'm planning to release a 0.1 soon with some more docs and a little improvement to error handling/reporting.


nestedInput issue with Cake 3.3.13

The latest CakePHP version (3.3.13) has the change The nestedInput option in FormHelper::input() no longer appears as an attribute.
This is causing the notice Notice (8): Undefined index: input [ROOT\vendor\holt59\cakephp3-bootstrap-helpers\src\View\Helper\BootstrapFormHelper.php, line 408]
Here's a basic checkbox that I'm having an issue with:
echo $this->Form->input(
    'RememberMe',
    [
        'type' => 'checkbox',
        'default' => true
    ]
);

Adding the option nestedInput => false causes the notice to be suppressed, but doesn't generate the checkbox input.

I cannot reproduce the error with a fresh CakePHP 3.3.13 installation, and the error looks strange since line 408 of BootstrapFormHelper.php has nothing to do with checkbox...
Maybe you do not have the latest version of the helpers?

I just checked the latest tagged version (3.0.5), and the 408th line of BootstrapFormHelper effectively contains a "input" indexing , so I think you are using this version. Update to the latest version and the problem should be fixed.
holt59/cakephp3-bootstrap-helpers:dev-master

Yup - it was just the older release that was causing it. Everything works correctly now. Thank you for the response! Sorry I should have included my version earlier.


feat: vscode devcontainer configuration

Add vscode devcontainer configuration.
fixes #371

@argoyle not sure why hassfest is complaining, seems to be unlelated to this PR

New requirements on services perhaps? I'll take a look at the PR tomorrow and see if I can find anything related to those errors.

@argoyle not sure why hassfest is complaining, seems to be unlelated to this PR

I've added name to the services so just rebase your branch and hassfest should be happy again I think.

@argoyle are you using any formatter for this project? black or the likes?
vscode can be quite intrusive with formatting if user settings differ from the code style of the project, unless formatter is set in .vscode/settings.json

Not at the moment. Far from a Python ninja so not well versed in the ecosystem and best practices. Not against adding it to make it easier to contribute changes without adding mixed code style etc. Let's merge this as is now and add more stuff later.

Not at the moment. Far from a Python ninja so not well versed in the ecosystem and best practices. Not against adding it to make it easier to contribute changes without adding mixed code style etc. Let's merge this as is now and add more stuff later.

Made a PR to enforce codestyle using black and isort. Have a look, the most notable change is double qoutes and line width

https://github.com/henricm/ha-ferroamp/pull/375


Non-fork version of #28

Submission Checklist

[ ] Created a new directory in the submissions directory containing the YDS input file and optionally a force field .offxml file
[ ] Triggered the benchmark workflow with a PR comment of the form /run-benchmark path/to/submission
[ ] Waited for the workflow to finish and a comment with Job status: success to be posted
[ ] Reviewed the results committed by the workflow
[ ] Published the corresponding Zenodo entry and retrieved the DOI
[ ] Added the Zenodo DOI to the table in the main README
[ ] Ready to merge!

/run-optimization-benchmarks submissions/2024-12-19-Sage-2.2.1-lipids-aux/input.yaml

/run-optimization-benchmarks submissions/2024-12-19-Sage-2.2.1-lipids-core/input.yaml


⚠ SceneTime has degraded performance

In 1c40fc8, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2429 ms

Resolved: SceneTime performance has improved in 738de6a.


make this work with watchdog pro2 v1.7

Hi, thanks for the great work on this project.
is it possible to make this work with all features for the previous model of the watchdog (pro2 v1.7) please?
Best.

I think there is an issue when we use a custom http port: the xhr (ajax) requests on the webpage are still going to the default 8000 port. @progerstar @Rdmr


[Backport] Move router/indexer config/API docs to main pages

Backport of #8510 to 0.16.0-incubating.

skipping CI for doc only change


Allow retraction of some schema attributes. (#379)

The error messages are a bit ugly, but I expect users won't be using this interface directly.

https://github.com/mozilla/mentat/commit/27dde378e0149eff22b6450e771bd064eae9902c


updating knexfile's location for veritable-ui chart.

Pull Request
Checklist

[x] Have you read Digital Catapult's Code of Conduct?
[x] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] New and existing unit tests pass locally with my changes.

PR Type
Please delete options that are irrelevant.

[x] Feature

Linked tickets
https://digicatapult.atlassian.net/browse/VR-99 - Jira
High level description
Changing knexfile's location as we have moved away from commonJS to esm
Detailed description
Not much to add here, updating helm config along with README

My guess is this is a typescript config thing. Need to make sure typescript includes the json file in it's src list


Plot Holoviews.Image using Pandas dataframe

I posted this questions on StackOverflow as well: https://stackoverflow.com/questions/55962945/plot-holoviews-image-using-pandas-dataframe
I'm trying to make a 2D color plot of my low temperature transport measurement. The data were taken and saved in a series of .dat files. The data looks something like this:
B (T), T(K) , V (V), I (A)
0, 4.01, -10.0, 0.001
0, 4.02, -9.9, 0.001 ...
Each file was taken at a specific magnetic field. (0 to 2 Telsa with 0.2T step) in total 11 files. I imported all the files and concatenate them into a single pandas dataframe which looks like this:

B
T
V
I

0
4.01
-10.0
0.001

0
4.02
-10.0
0.001

...
...
...
...

0.2
4.01
-10.0
0.001

0.2
4.02
-10.0
0.001

...
...
...
...

0.4
4.01
-10.0
0.001

0.4
4.02
-10.0
0.001

...
...
...
...

Now I want to make a 2D color plot with V and B as the x and y axis and I as z (color). How do I do that with Holoview.Image?
I know it can be done using using seaborn heatmap but I want to use holoview for interactive plot and other functionalities. It also works with Holoviews.HeatMap, but HeatMap has a few problems. HeatMap axes are categorical not numerical, which makes it difficult and non-intuitive to set xticks, xlim, etc.
Holoviews.Image is more suitable for my data, but it accepts only gridded data, not columnar data like pandas dataframe.
I guess, in a nutshell, my question is how to convert pandas dataframe to gridded data in order to plot in Holoviews.Image element.

One way~
import pandas as pd
import holoviews as hv
import hvplot.xarray

df = pd.DataFrame({
    'B': [0, 1, 2],
    'T': [2, 3, 4],
    'I': [5, 6, 7]
}).set_index(['B', 'T'])
df.to_xarray().hvplot.image('B', 'T', cmap='RdBu_r')

@ahuang11 It works perfectly! Thanks a lot, Andrew!


51 improve performance drop

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #51
Test URLs:

Before: https://main--bitdefender--hlxsites.hlx.page/solutions/
After: https://51-improve-performance-drop--bitdefender--hlxsites.hlx.page/solutions/


Adds Block Kit support

This is my first code contribution to jslack. I expect that my first attempt
probably has some issues and that my choices may not be yours. You are
welcome to provide feedback, ask for modifications or modify the code.
I submit this patch under the same license as jslack (currently MIT) and
transfer ownership of the code to @seratch.
The description of this pull request:
Slack has created a new (improved?) message format based on layout
blocks that allow for semi-advanced rich formatting called Block Kit:
https://api.slack.com/block-kit
This commit adds support for all elements, while retaining API
compatibility with the old API (which is discouraged by the Slack
documentation https://api.slack.com/messaging/composing/layouts#secondary-attachments)
The new BlockMessagePayload builder allows you to start crafting your
message using layout blocks.
The canonical example from the Block Kit Builder, built with the jslack
model:
BlockMessagePayload payload = BlockMessagePayload.builder()
	.blocks(Arrays.asList(
		SectionBlock.builder()
			.text(MarkdownTextObject.builder()
				.text("Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\n\n *Please select a restaurant:*")
				.build())
			.build(),
		DividerBlock.builder().build(),
		SectionBlock.builder()
			.text(MarkdownTextObject.builder()
				.text("*Farmhouse Thai Cuisine*\n:star::star::star::star: 1528 reviews\n They do have some vegan options, like the roti and curry, plus they have a ton of salad stuff and noodles can be ordered without meat!! They have something for everyone here")
				.build())
			.accessory(ImageElement.builder()
				.imageUrl("https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg")
				.altText("alt text for image")
				.build())
			.build()
		))
	.channel("#test")
	.threadTs("1552173794.000500")
	.build();

Fixes #96

TODO: I don't have time to work on writing tests for this but we need unit tests before merging this.

I've created a separate branch in my fork, so I'm closing this PR and submit a new one, including a unit test.
That makes it also easier to review all the changes with a fresh eye.
Thanks for helping me!


Trying to bind click event results in TypeError: a is undefined -  testcase.js:5:48

import Haste (alert)
import Haste.DOM (Elem, newElem, with, attr, (=:), addChild, documentBody)
import Haste.Events (MouseEvent(Click), onEvent)

void :: IO a -> IO ()
void = (>>= (\_ -> return ()))

main :: IO ()
main = do
    button <- newElem "input" `with` [
            attr "type" =: "submit",
            attr "value" =: "Click me!"
        ]
    void $ button `onEvent` Click $ \_ -> alert "hello!"

    addChild button documentBody

<!doctype html>
<meta charset=utf-8>
<title>test</title>

<script src=testcase.js></script>

testcase.js: testcase.hs
	hastec testcase.hs --opt-minify

In Chromium 43 I don't get a TypeError but instead the bound action is performed immediately on page load, which is arguably even worse. It seems that the Closure compiler is optimizing away the unused RealWorld# argument that IO computations carry, which causes trouble when the eval/apply machinery tries to use arity info in function applications.
I'm not entirely convinced that Closure should really be doing that, but I'll look into a workaround.

Ah, I should've mentioned I was using Fx, that's where I was getting this behaviour. Odd that the two JS engines would behave differently here.

Patching Closure to not mangle Function.length turned out to be the simplest option. Running haste-boot --force --no-libs should fetch the new Closure binary without forcing a rebuild of any libraries.


[RFC] Hybrid Search Optimizer

Is your feature request related to a problem? Please describe
Introduction
Hybrid search combines keyword and neural search to improve search relevance and this combination shows promising results across industries and in benchmarks.
Hybrid search with OpenSearch is linearly combining keyword search (e.g. match queries) with neural search (transforming queries to vector embeddings by using machine learning models). This combination is configured in a search pipeline. It defines the post processing of the result sets for keyword and neural search by normalizing the scores of each and then combining them with one of currently three available techniques (arithmetic, harmonic, geometric).
This search pipeline configuration lets OpenSearch users define how to normalize the scores and how to weigh the result sets.
Problem Statement

How do users figure out which parameter set is best for them?
What is the best normalization technique and how much neural/keyword search is ideal?

There exists no “one size fits all” solution. The best configuration depends on a plethora of factors related to any given search application’s data, users, or domain. With judgments, the hybrid search optimizer plugin aims to identify the ideal parameter set.
Describe the solution you'd like
Proposal
Develop tooling that can utilize any kind of judgments (implicit or explicit) together with a query set to find the best set of parameters to apply for hybrid search.
We treat the above stated problem as a parameter optimization problem. With this tooling we want to provide the ability to run grid search over a set of parameter values. For OpenSearch installations where testing all parameter combinations is not feasible we provide a Bayesian optimization approach (ch. 6.4 from Experimentation for Engineers).
As not every optimization is a meaningful optimization we implement support that helps to decide whether an observed increase in search metrics is significant. For every evaluation done, a t-score and a p-value are calculated and stored together with the results to enable efficient decision making.
With this tooling we want to make the experimentation around identifying the best parameters for hybrid search an automated and regular process for continuous search result quality improvements.
We rely on the OpenSearch plugin User Behavior Insights and the new Search Quality Evaluation Framework for generating the necessary implicit judgments based on user behavior data. Of course, users are welcome to provide their own judgments providing flexibility for mature search teams that already have a process for implicit judgments in place.
Hybrid Search Optimization as a Parameter Optimization Challenge
There is a finite number of parameters available for retrieving high quality search results:
Normalization techniques: min_max and l2
Combination techniques: arithmetic, harmonic, geometric
Weights: values in the range of 0.0 to 1.0
Example search pipeline definition (see OpenSearch documentation):
PUT /_search/pipeline/nlp-search-pipeline
{
  "description": "Post processor for hybrid search",
  "phase_results_processors": [
    {
      "normalization-processor": {
        "normalization": {
          "technique": "min_max"
        },
        "combination": {
          "technique": "arithmetic_mean",
          "parameters": {
            "weights": [
              0.3,
              0.7
            ]
          }
        }
      }
    }
  ]
}

This leads to a finite number of parameter combinations. Obviously, search platforms are very different, so even a small number of parameter sets may be inefficient to run for a large query set or over a large index.
Therefore we provide two options to explore different parameter sets: grid search and Bayesian optimization.
Grid Search
The grid search approach tries out all possible parameter combinations to identify the best set.
Example:
Evaluating which combination of the normalization techniques min_max and l2 and combination techniques arithmetic and harmonic would mean testing four combinations:

min_max + arithmetic_mean
min_max + harmonic
l2 + arithmetic_mean
l2 + harmonic

Every combination is tested and validated with a query set and a set of judgments. The hybrid search optimizer’s objective is to find the parameter combination that maximizes a specific search metric (e.g. DCG, NDCG, AP, etc.). The user chooses the search metric they want to optimize for when creating the grid search optimization job.
The Hybrid Search Optimizer plugin seamlessly integrates with the Search Quality Evaluation Framework plugin that can be leveraged to create query and judgment sets.

This OpenSearch index can live outside of the OpenSearch cluster that runs the hybrid search optimizer. However, the index needs to be accessible.
Since running all queries of a query set can introduce heavy load on the OpenSearch system and running the metrics calculation introduces additional load, you may consider separating them.
We recommend running the hybrid search optimizer in a non-production environment to avoid user or customer impact.
Bayesian Optimization
It may happen that running all parameter combinations is too complex or time-consuming meaning that running all parameter combinations for all queries of a query set can take too long to finish.
For these situations users can switch from the grid search approach to a Bayesian Optimization approach.
Problem Setup
Like with the grid search approach we want to maximize a specific search metric. The user chooses the search metric they want to optimize for when creating the Bayesian optimization job. This is the objective function of the hybrid search optimizer.
The parameters to optimize do not differ from the ones the hybrid search optimizer uses for grid search.
Gaussian Process Modeling
The hybrid search optimizer uses a Gaussian Process as the underlying surrogate model. It provides us with uncertainty estimates about the predictions.
The prior is the calculated search metric for an initial configuration of the hybrid search pipeline. Users can either use an existing pipeline, define a new one or use the default of the hybrid search optimizer.
Acquisition Function
The acquisition function balances exploration (trying out areas of the parameter space where the function is uncertain) and exploitation (focusing on areas where the function is expected to perform well). The hybrid search optimizer uses an acquisition function that measures expected improvement. It selects the next point by maximizing the expected improvement over the current best-known value.
Sequential Optimization
The optimization process starts with sampling the objective function at a few initial points, often chosen at random or based on a space-filling design like Latin Hypercube Sampling.
The hybrid search optimizer uses the results from the initial evaluations to update the Gaussian Process model, refining the surrogate model of the objective function.
The next point in the parameter space is found by maximizing the acquisition function (expected improvement).
By actually running the parameters of the next point, the results for the query seat are retrieved, the search metric is calculated and the actual objective function is evaluated at this new point.
Next, the GP model is updated with the new data point and the process repeats.
The results of all tested parameter sets stored for review.
Convergence
The process iteratively refines the surrogate model and converges to the optimal set of parameters. Convergence is determined by a stopping criterion, such as a maximum number of iterations, a small improvement over several iterations, or a specific confidence level.
The following illustration shows the Bayesian Optimization process:

Optimization Jobs & their States
Depending on the amount of parameter sets to try out, the number of queries to run for each parameter set and the size of the search platform, hybrid search optimization jobs may be tasks that run for seconds, minutes or even hours.
To keep track of initialized jobs and see their status the hybrid search optimizer registers these jobs and updates their states accordingly.
CREATED: When a hybrid search optimization job is registered it receives the status CREATED
RUNNING: As soon as the job runs the state transitions from CREATED to RUNNING
COMPLETED: A finished job has the state COMPLETED
By default, all jobs, their metadata and their states are stored in a job index. Metadata stored with the job will be

The id of the job
The query set used
The search metric to optimize for
The index to query for results
The start date and time of the job
The finish date and time of the job.

The id of the job is the reference to the stored evaluation results in the index holding these.
Scope
The scope of the hybrid search optimizer is to provide users with the best set of parameters for their search pipeline based on their data, their users (when using implicit judgments) and their domain.
Out of scope:

Optimization of the individual queries that are combined (keyword search and neural search);
Online testing: all evaluation takes place offline against a predefined query set and judgments; and,
Model choice: users need to choose a suitable model for their neural query prior to using the hybrid search optimizer.

GitHub Repository
This work will initially be built outside of the OpenSearch GitHub project but we hope to transfer the repository to “living” inside the OpenSearch GitHub repository as soon as possible. We are tentatively calling the repository hybrid-search-optimizer.
Contributors
The following individuals will contribute to this effort. Please let us know in the comments if you would like to be involved.

epugh
jzonthemtn
smacrakis
wrigleyDan

Roadmap
We will attempt to follow the OpenSearch release schedule with incremental progress implemented in OpenSearch releases. This will enable real-time use and feedback.
Conclusion
Identifying the correct parameter set for hybrid search is a challenge that can be treated as an optimization problem. The hybrid search optimizer OpenSearch plugin provides two ways to arrive at an ideal parameter set:
Grid search approach: through testing of all possible parameter combinations, the best one is identified by evaluating the search results for each.
Bayesian optimization: in instances where testing of  all possible parameter combinations is too expensive, users can run a Bayesian optimization algorithm that takes advantage of exploration and exploitation to efficiently identify a suitable parameter set with reasonable tradeoffs.
Both approaches rely on query sets and judgments that can either be provided by the user or by the search quality evaluation framework.
Both approaches result in a parameter set tuned for a user’s unique data.
Related component
Search:Relevance
Describe alternatives you've considered
No response
Additional context
No response

This issue should be moved under neural search repo.

@opensearch-project/admin  could you please help move this issue to neural search plugin repo?


Border

Thanks for the work you've done. Tell me how to work with borders and center alignment.

Hi, looks like need more examples. You can check style_test.go in format/styles package
	st := xl.AddStyles(
		styles.New(
			//alignment
			Alignment.VAlign(VAlignBottom),
			Alignment.HAlign(HAlignFill),
			//full border
			Border.Type(BorderStyleDashDot),
			Border.Color("#FF00FF"),
			//partial borders
			Border.Diagonal.Type(BorderStyleDashDot),
			Border.Diagonal.Color("#FF00FF"),
			Border.Vertical.Type(BorderStyleDashDot),
			Border.Vertical.Color("#FF00FF"),
			Border.Horizontal.Type(BorderStyleDashDot),
			Border.Horizontal.Color("#FF00FF"),
		)
	)

@plandem Thanks!!!

Tell me, is it possible with the help of your library xlsx in other formats?

nope, only xlsx

@plandem is it possible to change the sheet parameters, such as  Zoom, FitToPagesWide, FitToPagesTall?

it's not possible right now


Remove DNS config from default cluster config

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


SSL Handshake Error With Docker and Selenium trying to access website

I have a python script which is running Chrome with chromedriver and selenium. When I run the script without Docker it works normally and I access the website, if in Docker the Exception gets shown in the Browser with a 502 Gateway Error. My theory is that I need to configure the SSl Settings in the Docker Container, but I dont exactly know what to edit. I already set the  DEFAULT@SECLEVEL=1/ in the cnf. Trying out different numbers is also not working.
Error shown in Chrome in Docker(Selenium) by trying to access "https://www.ea.com/de-de/fifa/ultimate-team/web-app/":
TlsProtocolException('Cannot establish TLS with accounts.ea.com:443 (sni: accounts.ea.com):
TlsException("SSL handshake error: Error([(\'SSL routines\', \'\', \'unsafe legacy renegotiation disabled\')])")')```

If Chrome is producing the diagnostic error, what component is using openssl such that you expect us to be able to help answer the question?  Chrome uses BoringSSL, not OpenSSL.


Discord module on Luna website does not behave well

General Summary
Problem from the website, the discord widget does not behaves well when scrolling down
Steps to Reproduce
Go to the luna website, scroll a bit, play with the discord module
Actual Result
The discord module glitches and go behind one of the title : https://gfycat.com/ResponsibleForthrightCheetah

Closed the wrong issue.

Website is being redesigned.


Kwxm/merklisation/types doc

Add some stuff about Merklisation and types.

This is just documentation, so I'll merge it without review.


value of "empty object" not supported

converting the following json to variant generates an error
{ "a": { } }
according to http://json.org/, this should be valid

I've validated the incorrect behavior.

Fixed in package version <IP_ADDRESS>


Tutorial does not work<EMAIL_ADDRESS><EMAIL_ADDRESS>

Hi!
I tried to do this tutorial:
https://rackt.github.io/react-router/#Router Overview
But I ran into some issues:
Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).

Uncaught TypeError: Cannot read property 'pathname' of undefined

This is the code:
import ReactDom from 'react-dom';
import React from 'react';
import Router from 'react-router';
var Route = Router.Route;
var RouteHandler = Router.RouteHandler;

var App = React.createClass({
  render () {
    return (

App

        <RouteHandler/>

    )
  }
});

var About = React.createClass({
  render: function () {
    return
About
;
  }
});

var Inbox = React.createClass({
  render: function () {
    return
Inbox
;
  }
});

var routes = (
  <Route handler={App}>
    <Route path="about" handler={About}/>
    <Route path="inbox" handler={Inbox}/>
  </Route>
);

var Home = React.createClass({
  render: function () {
    return
Home
;
  }
});

Router.run(routes, Router.HashLocation, (Root) => {
  React.render(<Root/>, example);
});

You are looking at the v0.13.3 page.
Try https://rackt.github.io/react-router/tags/v1.0.0-beta3.html#Overview

Oh, sorry! That was my bad.
Thanks for pointing out!


UUID case

So it turns out UUID's should be lower case ("a" through "f" are in fact  hexadecimal values)
https://datatracker.ietf.org/doc/html/rfc4122#section-3
we hit this issue in the rust keylime agent, where the UUID crate generates a UUID lowercase, which does not map to the entry in keylime.conf
So this to me suggests we should user lower in the python side. Where lower is the default and everything is canonicalised to .lower()

Also note that different version of dmidecode can return UPPER or lower. Like in Ubuntu 18.04 vs Ubuntu 20.04.
This causes a problem in the old python agent.


Added button to call all devices report endpoint

Closes #418
Adds a button to the devices page that can call the generate all devices report endpoint in order to produce a zip file.

I think we may still need to use the auth token to call the report endpoint now that we have the auth stuff merged in.

I think we may still need to use the auth token to call the report endpoint now that we have the auth stuff merged in.

Got that change in #491


updated to use torchvision =< 0.16.0

code updates to use torchvision version  =< 0.16.0

Hello, I am trying to run your code with HRSC2016-MS dataset and trained 100 epoches using RTRDETR/rtdetr_pytorch/configs/rtdetr/rtdetr_r18vd_6x_coco.yml configuration file but the AP metrics stayed at 0 during the training process.I would appreciate if you have valuable suggestions for this issue.

@aaronrmm @cuevas1208


The password field for the htpasswd  password in the UI should:

The password field for the htpasswd password in the UI should:

have the same constraints as the underlying OpenShift.
have the necessary hyperlinks to explain how to meet those constraints.  Perhaps a link to this doc?
consider the same constraints on the username field as well.

From the latest version of mentioned doc:

OpenShift Container Platform user names containing /, :, and % are not supported.

And in the current UI, the more strict constraints have already been added to username and password
                            {
                                "name": "clusterUsername",
                                "type": "Microsoft.Common.TextBox",
                                "label": "Cluster administrator",
                                "defaultValue": "admin",
                                "toolTip": "Use only allowed characters.",
                                "constraints": {
                                    "required": true,
                                    "regex": "^[a-z0-9A-Z]{1,30}$",
                                    "validationMessage": "The value must be 1-30 characters long and must only contain letters and numbers."
                                }
                            },
                            {
                                "name": "clusterPassword",
                                "type": "Microsoft.Common.PasswordBox",
                                "label": {
                                    "password": "Password for cluster administrator",
                                    "confirmPassword": "Confirm password"
                                },
                                "toolTip": "Password for cluster administrator.",
                                "constraints": {
                                    "required": true,
                                    "regex": "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
                                    "validationMessage": "The password must contain at least 12 characters, with at least 1 uppercase letter, 1 lowercase letter and 1 number, and special characters are not allowed."
                                }
                            }

These constraints are reused from tWAS cluster offer where WebSphere administrator username and password are defined in UI.
So I think it's good to go for MVP release. What do you think @edburns ?


Pause Button Outline in Chrome

Chromes automatic outlines look good for the most part, but not for the Pause-(and to a lesser extent, the Play-)Button.

Not applicable anymore due to redesign


Create July testing findings report

Create a findings report based on July usability testing.

@angelcardoz - I confirmed with @dan-padgett that this can be closed. Closing now.


HEI ignore Nbt in removeAndHide

HEI ignore Nbt when using HEI.removeAndHide
CraftTweaker:
storagedrawers:basicdrawers:1.withTag({material: "oak"})
GroovyScript:
item('storagedrawers:basicdrawers', 1).withNbt([material: "oak"])
Remove recipe use storagedrawers:basicdrawers:1.withTag({material: "oak"})
And hide recipe icons use storagedrawers:basicdrawers:1

This should've been fixed by now, closing it, if the new (4.26.0) version still has this issue please open a new issue.


Standardize README

@michael-ciniawsky Standard was changed again?:)

@TrySound Not really just 'improved/moved on' nothing fancy or urgent just nitpicks here, I do it when I have time 😛

It's mainly to be 'mostly accurate' since the README's are on the docs page :)