Bring back the option to exclude EvaluationResults

Nuget Package
JsonSchema.Net
Package Version
5.1.0
Can this library make doing something simpler?
Pre 5.0.0 one could use the EvaluationResults.Ignore() to exclude evaluation results, for example any result that is valid. The Exclude property is still there and it is used by the EvaluationResultsJsonConverter, but nothing sets that property any more.
Maybe make the setter public?
Describe alternatives you've considered
No response
Is there any other information you'd like to share regarding this bug?
No response
Code of Conduct

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

Have you read the updated documentation?

For maximum, evaluation means we check if the value is a number. If not, we indicate that the keyword doesn’t apply by calling .MarkAsSkipped(). (This tells JsonSchema.Net that that any nested results don’t need to be added.) If the instance is a number, and it doesn’t meet the requirement, then we fail the keyword with an error.

I'll have to look at that Exclude property, but the strategy now is just to not have the results object added in the first place.

Here's an example of what I mean:

I previously filtered out those evaluation results. I can of course write my own json convert that does that, but it was neat that it was supported out of the box.

How would you filter them out?  What's the reason for doing so?  Maybe there's another solution here.
Related: I've been working on revamping the output for JSON Schema, and this library is a test bed for that work.  This seems like another filtering option candidate.

annotation filtering
output unit pruning
first run at writing spec language for ☝

EvaluationResults.Ignore() was meant to be used inside of a custom keyword.  In previous versions, I used it in keywords like $defs that don't do anything, but that model has changed with v5, and the method isn't needed for that purpose anymore.
I didn't expect anyone to use it to hide specific nodes post-evaluation.

I simply filtered out any evaluation result that IsValid leaving me with only invalid results (using the hierarchy format) to be able to focus on the problems. I haven't experienced any valid result to be of interest in that case. Reading the discussion you had about output pruning this might be a naive approach in certain situations, however I usually consult the schema if the output is not clear enough about what my options are to fix the problems presented to me.

I can think of a couple solutions to this, one of which you can do now.  However, there are some side effects of just looking for error messages that I think you should be aware of.
Just searching for error messages could return messages that don't impact the outcome.  Like if you have a successful validation, but there's an anyOf subschema that failed, that subschema will produce errors.  You actually want to ignore these, but that's hard to tell if you don't have the valid nodes as well.
Option 1 - JSON Path
There are several options here depending on what you want.

$..errors.* will just get the error messages themselves.
$..errors will return all of the error dictionaries, which will also give you the keywords that produced those errors.
<EMAIL_ADDRESS>will return all of the nodes which have errors.

The last one actually might be best since you'll also probably want the instance location.
This is likely your best short-term bet.
Option 2 - New filter feature
We discuss the filtering that you want and I build it (or you do and submit a PR).
Option 3 - Custom filter feature
This I just now thought of, and it would enable a user to devise their own filtering mechanism.  This will take some thought to build a usable API.

I'm excluding evaluation results by looking at the IsValid property. I assume any result is not valid either if it explicitly has produced errors or if any of it's child results (Details) is not valid, is that not true?
Here's an example of what I do:
public static class EvaluationResultsExtensions
{
    private static void ExcludeValidResults(this IEnumerable<EvaluationResults> results)
    {
        foreach (var result in results)
        {
            result.ExcludeValidResults();
        }
    }

    public static void ExcludeValidResults(this EvaluationResults results)
    {
        if (results.IsValid)
        {
            // Exclude
            results.Ignore();
            return;
        }
        results.Details.ExcludeValidResults();
    }
}

Would of course be more appropriate if this could be configured within the json converter instead of this hack :)

I assume any result is not valid either if it explicitly has produced errors or if any of it's child results (Details) is not valid, is that not true?

That's not true.
Consider this schema:
{
  "anyOf": [
    { "type": "string" },
    { "type": "number" },
    { "type": "boolean" }
  ]
}

The instance "a string" will only validate on the first subschema, but the others will have errors and valid will be false.  Yet the overall validation passes:
{
  "valid": true,
  "evaluationPath": "",
  "schemaLocation": "https://json-everything.net/193ef3a33a#",
  "instanceLocation": "",
  "details": [
    {
      "valid": true,
      "evaluationPath": "/anyOf/0",
      "schemaLocation": "https://json-everything.net/193ef3a33a#/anyOf/0",
      "instanceLocation": ""
    },
    {
      "valid": false,
      "evaluationPath": "/anyOf/1",
      "schemaLocation": "https://json-everything.net/193ef3a33a#/anyOf/1",
      "instanceLocation": "",
      "errors": {
        "type": "Value is \"string\" but should be \"number\""
      }
    },
    {
      "valid": false,
      "evaluationPath": "/anyOf/2",
      "schemaLocation": "https://json-everything.net/193ef3a33a#/anyOf/2",
      "instanceLocation": "",
      "errors": {
        "type": "Value is \"string\" but should be \"boolean\""
      }
    }
  ]
}

Conversely for this schema:
{
  "not": { "type": "string" }
}

the instance "a string" fails overall, but without any errors.
{
  "valid": false,
  "evaluationPath": "",
  "schemaLocation": "https://json-everything.net/74ad7420d3#",
  "instanceLocation": "",
  "details": [
    {
      "valid": true,
      "evaluationPath": "/not",
      "schemaLocation": "https://json-everything.net/74ad7420d3#/not",
      "instanceLocation": ""
    }
  ]
}

(I'm sure another case could be contrived, but this is the only one I can think of.)

anyOf works fine with the mentioned approach, but you are right about not. oneOf might also produce a similar result (the instance matches multiple sub-schemas).
Maybe each keyword could identify a minimal set of relevant evaluation information? I think you are on to something in the thread about pruning, it sounds like what I'm looking for. Is that something that's available today, or have you just experimented?

Pruning nodes isn't something I've figured out how to do in a nice way yet.  (That's what that discussion is for.)  You can see in the discussion that there's a lot to consider.  I don't particularly like the idea of each keyword specifying what needs to go into the output.  The output is meant to be generic.


Automator: update<EMAIL_ADDRESS>dependency in<EMAIL_ADDRESS>

Generated by Automator - 2022-02-10T20:18:58+00:00

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

Test name
Commit
Details
Required
Rerun command

lint_istio_release-1.13
11620ea2a64d1e25523623638999f76dfe1e0ba3
link
true
/test lint_istio_release-1.13

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

/test lint_istio_release-1.13

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

Test name
Commit
Details
Required
Rerun command

lint_istio_release-1.13
11620ea2a64d1e25523623638999f76dfe1e0ba3
link
true
/test lint_istio_release-1.13

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

Waiting on https://github.com/istio/istio/pull/37275

https://github.com/istio/istio/pull/37275 has been merged.


Add TargetFramework and PackageReference to the schema

Update schema to add TargetFramework to PropertyGroup, PackageReference to ItemGroup and the valid sub properties of PackageReference.
Related to #1317

Hi @RaulPerez1, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla2.dotnetfoundation.org.

TTYL, DNFBOT;

@RaulPerez1, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, DNFBOT;

@Microsoft/msbuild-maintainers I wonder if we should update the xsd for all of the metadata as attributes?
Ideally, the schema would enforce that you can specify one or the other but not both.


Speed of getting started is truly remarkable (no action needed)

Hi - I didn't have a feature request but wanted to thank you for creating this tool!
In particular, it really only takes 15-20 minutes to go from "sketch in my mind for a documentation site" to a fully functioning, nice looking documentation site that has the features I need (header/sidebar customization, search, ability to add/remove landing page). And that's the first time using the tool!
Please keep up the great work!

Hey @veeral-patel thank you for the kind words! That's our aim - to get you started really quickly. Try out Docusaurus 2, which provides even more customizability.
For future reference, you could also tweet at us at @docusaurus to give feedback! 😄

@yangshun actually, if you don't mind me asking, how can I enable a dark theme toggle on my documentation site?
I found it on your personal site here: https://yangshun.im/
As well as in this GitHub issue: https://github.com/facebook/docusaurus/issues/1995
I'm using Docusaurus 1 btw but I'm open to upgrading if necessary.

It's a Docusaurus 2-only feature
On Sun, Dec 22, 2019, 2:37 AM Veeral Patel<EMAIL_ADDRESS>wrote:

Reopened #2140 https://github.com/facebook/docusaurus/issues/2140.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/docusaurus/issues/2140?email_source=notifications&email_token=AAKBCHL6ODGGSOIYE5KZWETQZZO6FA5CNFSM4J6F2XWKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVUC2PGY#event-2902828955,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKBCHMVHAIZVYVSU4ZNJXTQZZO6FANCNFSM4J6F2XWA
.


Allow custom patterns

My PR make possible users use the own patterns.
For example, I'm using a uap-core version
Code example:
# using default patterns
ua = UAParser.parse(request["http_user_agent"])

# using custom patterns
patterns =
    Path.join([File.cwd!, "vendor", "uap-core", "regexes.yaml"])
    |> :yamerl_constr.file([])
    |> UAParser.Processor.process()

ua = UAParser.parse(request["http_user_agent"], patterns)

@dukex this is awesome and so much better than constantly trying to keep this repo up-to-date with core.
Would you mind adding even a simple test for this to confirm it works and to prevent regressions in the future?

Hi @doomspork sorry about forget the tests, can you take a look again?

Thank you @dukex!  I'll look now 😁

Thank you very much for the addition @dukex!  Please feel free to make any other improvements you see fit.  Happy to continue to improve the library (and add contributors to help do so).

1.5 is published.  Thanks again @dukex 👍

Thank you @doomspork, good to know the 1.5 is published!


Update README.md

Added URL to UQL doc link and fixed another link.

@bcronin - is there a better place to link to for "Telemetry data reporting to Lightstep?" It currently goes to the main docs page. What do you think about using https://docs.lightstep.com/docs/send-metrics-to-lightstep instead?


Experiment exporting Geometry Nodes Instances

Still experimental and has some open questions:

[x] Nested Instancing instances are all at object level, but some empties are created for intermediate levels. Need to find a way to not export them
[ ] UI
[ ] Geometry Nodes can have both geometry and instances. To export correctly, need to activate both Apply Modifier & Export GN Instances. Do we need to allow export instancing only when Apply Modifier is enabled?
[ ] Merge code with Duplis Instances? => duplis is no more in recent version of Blender => remove code
[x] Issue When export only selection. Some instances are exporting even if instancier is not selected
[x] Instancing lights
[ ] Instancing curves
[ ] Tests
[ ] Non Regression tests
[x] In a next step, option to use EXT_mesh_gpu_instancing ? See https://github.com/takahirox/glTF-Blender-IO-EXT-mesh-gpu-instancing
[ ] Animated GN?
[ ] UV generic attribute
[ ] https://projects.blender.org/blender/blender/issues/108343

Just have to say, spend the day yesterday to look into source code to see how to make this until I find this PR, this is fantastic !
Workflow from Blender to Godot is fixed 🥇

Definitely looking forward to this one.  I was just about to do research into this for game engines.  Currently I’m using Godot.

Thank you so much for your work on this!
I know this PR is still in progress, but I'm very eager to try this out and had a question.
I see that support for EXT_gpu_instancing is marked as complete in the PR description.  When I run an export of a test file with GN instances, I see that the instances do make it into the output GLTF but they are all listed as separate child objects rather than true instances using the extension.
Does that functionality depend on having the https://github.com/takahirox/glTF-Blender-IO-EXT-mesh-gpu-instancing Blender plugin installed?  I tried setting it up, but it seems to be broken in modern versions of blender and fails to install due to a missing import error.
Thanks again for your hard work here; this will be a crucial feature and unlock a ton of exciting usecases.

@Ameobea Sorry, this was a misclick. gpu instancing is not done yet

Ah I see - no problem ty for clarifying.  I'll keep watching the progress here


Add date property to MayaDT

As title says. Sometimes you just need to work with dates and date.datetime().date() is a bit convoluted.

Seems like a good change!
@kennethreitz Can you merge?


[Feature][StorageService] implements s3/oss/cos StorageService

Problem Summary:

implements s3/oss/cos StorageService
add checkstyle rule

What is changed and how it works?
Proposal: xxx
Feel free to ping committers for the review!
Contribution Checklist

Make sure that the pull request corresponds to a GITHUB issue.

Name the pull request in the form "[Feature] [component] Title of the pull request", where Feature can be replaced by Hotfix, Bug, etc.

Minor fixes should be named following this pattern: [hotfix] [docs] Fix typo in README.md doc.

Purpose of this pull request

@MonsterChenzhuo PTAL. I hava the question, does the objectPath parameters of putData or getData method means that a path or a file name?

LGTM


Confusing error message on ambiguous parse

I am not an expert in lexing/parsing, but I think this can be improved. In the example below, there are two parsing matchers, and they both essentially do the same thing. word1 matches a sequence of word2s, and word2 matches a sequence of characters. In this example, it is impossible to tell where the words should be broken up; any sequence of characters could be divided into quite a few sequences of words. This fails to compile (message below) with an unhelpful message that could probably be improved.
import patty
import nimly
import unittest

variantp FluentToken:
  Character(character: char)

niml fluentLexer[FluentToken]:
  r"[A..Za..z1..9\-]":
    Character(token.token[0])

nimy fluentParser[FluentToken]:
  top[seq[string]]:
    word1:
      return $1

  word1[seq[string]]:
    word2{}:
      return $1

  word2[string]:
    Character{}:
      var str = ""
      for character in $1:
        str &= character.character
      return str

test "test":
  var testLexer = fluentLexer.newWithString("testing")
  var parser = fluentParser.newParser()
  discard parser.parse(testLexer)

Outputs:
➜  nim-fluent nim c -r src/nim_fluent/test.nim
Hint: used config file '/Users/wys/.choosenim/toolchains/nim-1.4.4/config/nim.cfg' [Conf]
Hint: used config file '/Users/wys/.choosenim/toolchains/nim-1.4.4/config/config.nims' [Conf]
.........................................
stack trace: (most recent call last)
/Users/wys/my-workspace/nim-fluent/src/nim_fluent/test.nim(22, 5)
/Users/wys/my-workspace/nim-fluent/src/nim_fluent/test.nim(22, 5) :tmp
/Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/lalr.nim(159, 18) makeTableLALR
/Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/lalr.nim(119, 19) toLALRKernel
/Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/lalr.nim(74, 13) closure
/Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/lalr.nim(65, 25) closure
/Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/parsetypes.nim(291, 11) calFirsts
/Users/wys/.choosenim/toolchains/nim-1.4.4/lib/system/assertions.nim(30, 26) failedAssertImpl
/Users/wys/.choosenim/toolchains/nim-1.4.4/lib/system/assertions.nim(23, 11) raiseAssert
/Users/wys/.choosenim/toolchains/nim-1.4.4/lib/system/fatal.nim(49, 5) sysFatal
/Users/wys/my-workspace/nim-fluent/src/nim_fluent/test.nim(12, 6) template/generic instantiation of `nimy` from here
/Users/wys/.choosenim/toolchains/nim-1.4.4/lib/system/fatal.nim(49, 5) Error: unhandled exception: /Users/wys/.nimble/pkgs/nimly-0.7.0/nimly/parsetypes.nim(291, 18) `false`  [AssertionDefect]

Thank you for your reporting!
This is caused by an unexpected error and I check it now.


useTransactions() hook not listed in Core API docs

Only saw useTransactions() in the Guides, not listed in the hooks

Will add soon.

Available here:
https://usedapp.readthedocs.io/en/latest/core.html#usetransactions


heartbeat_check.rb and heartbeat.rb are no longer used.

The only caller to hearbeat_check.rb was removed in:
https://github.com/ManageIQ/manageiq-pods/pull/688
We switched to a simple bash script that relied on a core change
to make this less complicated:
https://github.com/ManageIQ/manageiq/pull/21079

✂ ✂ ✂

I think we don't need the MiqDefaults anymore as well (or at least not as an explicitly defined separate module).  The reason they were added, if I recall, was to "share" the values between the worker and this heartbeat check code (and also specifically as a simple module because heartbeat check was meant to be run with pure Ruby).  Now that the worker is the only user of it, we can bake it right into the worker and remove the indirection.

I think we don't need the MiqDefaults anymore as well (or at least not as an explicitly defined separate module). The reason they were added, if I recall, was to "share" the values between the worker and this heartbeat check code (and also specifically as a simple module because heartbeat check was meant to be run with pure Ruby). Now that the worker is the only user of it, we can bake it right into the worker and remove the indirection.

yeah, I'll do a follow up for that.  These were straight deletions and I couldn't resist.

See also https://github.com/ManageIQ/manageiq/pull/15494 where it was added.

✂ ✂ ✂

2^7 deletions

I'm marking this lasker/yes? because it ensures the code in question is not being called.


AzureKVP Telemetry Library for Hyper-V Integration

The azurekvp library provides a method for collecting and encoding tracing telemetry, designed specifically for integration with Hyper-V. This library captures span data through OpenTelemetry and Rust-based tracing, formats it into Hyper-V Key-Value Pair (KVP) format, and writes it directly to the Hyper-V KVP storage at /var/lib/hyperv/.kvp_pool_1.
Key changes in this PR:

Telemetry Capture: Integrates with the existing tracing infrastructure to capture and transmit telemetry data in the correct format.
KVP Encoding: Encodes span data into the Hyper-V-specific KVP format for storage and retrieval.
Unit Tests: Includes unit tests for KVP formatting and verifies the correctness of the encoded telemetry.
Documentation: Updates the README to include details on the new azurekvp library and the updated tracing process.

Fixes #27

Squash merging got really messed up... am working on trying to get all of these into one


Can not add tags exclusively to primary security group

Description
I am currently trying to use karpenter on EKS. Cluster is created with eks module v19.5.1.
I want to add the tag  "karpenter.sh/discovery" = local.cluster_name on the primary cluster security group. I try this way,
  create_cluster_primary_security_group_tags = true
  cluster_security_group_tags= {
     "karpenter.sh/discovery" = local.name
  }

but it adds the tag to the secondary cluster sg (the one created by eks module). Is there a way to add tags to the primary cluster sg? What is the purpose of create_cluster_primary_security_group_tags option??
If your request is for a new feature, please use the Feature request template.

[ x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: 19.5.1

Terraform version: v1.3.2

Provider version(s):

provider registry.terraform.io/hashicorp/aws v4.51.0
provider registry.terraform.io/hashicorp/cloudinit v2.2.0
provider registry.terraform.io/hashicorp/kubernetes v2.17.0
provider registry.terraform.io/hashicorp/tls v4.0.4

Opened my eyes and read the module.
Adding the following did the trick.
  cluster_tags= {
    "karpenter.sh/discovery" = local.name
  }

Still, by just adding this ,I got some weird changes on apply:
     ~ kube-proxy         = {
          ~ addon_version            = "v1.23.7-eksbuild.1" -> (known after apply)
            id                       = "xxxx:kube-proxy"
          ~ modified_at              = "2023-02-07T15:59:53Z" -> "2023-02-07T16:26:24Z"
            tags                     = {}
          ~ timeouts                 = null -> {
              + create = null
              + delete = null
              + update = null
            }
            # (9 unchanged elements hidden)
        }
      ~ vpc-cni            = {
          ~ addon_version            = "v1.10.4-eksbuild.1" -> (known after apply)
            id                       = "xxx:vpc-cni"
          ~ modified_at              = "2023-02-07T16:00:14Z" -> "2023-02-07T16:26:29Z"
            tags                     = {}
          ~ timeouts                 = null -> {
              + create = null
              + delete = null
              + update = null
            }
            # (9 unchanged elements hidden)
        }

| Error: Provider produced inconsistent final plan
│
│ When expanding the plan for aws_eks_addon.this["coredns"] to include new
│ values learned so far during apply, provider
│ "registry.terraform.io/hashicorp/aws" produced an invalid new value for
│ .timeouts: was present, but now absent.
│
│ This is a bug in the provider, which should be reported in the provider's
│ own issue tracker.

Worked fine after reappling but still weird error to have.


Abstract runes

Exploration to see if we can abstract decoding out of if Split and Splitter, since they (should) only care about runes. Can they be made non-generic?
The idea is to offer a non-generic Runes interface. RuneTokenizer will have to be generic, but its methods for navigating the string of runes need not be.

First pass was a 2x performance regression. Latest bits are dow to ~2%!

Went with https://github.com/clipperhouse/uax29.net/pull/21 instead.


Use in Eclipse project?

As this generated adds to the Maven project lifecycle, how does it integrate with the M2E plugin?
Is this reasonable to implement?
https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html
/cc @tubbynl

no gras-growing-over-it here ;)
this is the error i get in Eclipse:

Plugin execution not covered by lifecycle configuration: org.assertj:assertj-assertions-generator-maven-plugin:2.0.0:generate-assertions (execution: default, phase: generate-test-resources)

Try the M2e connector:
https://github.com/hennejg/m2e-assertj/tree/master/updateSite
With regards,
Nick
On 10 Nov 2016 16:09, "Michaël van de Giessen"<EMAIL_ADDRESS>wrote:

no gras-growing-over-it here ;)
this is the error i get in Eclipse:
Plugin execution not covered by lifecycle configuration:
org.assertj:assertj-assertions-generator-maven-plugin:2.0.0:generate-assertions
(execution: default, phase: generate-test-resources)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/joel-costigliola/assertj-assertions-generator/issues/88#issuecomment-259714355,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABfWonyjuI2SNkjqJwSzrXL6l67DThboks5q8zPCgaJpZM4Kuwys
.

that will probably work; but it add's complexity to developer onboarding if assertj is used

@nickstolwijk Am I correct in thinking that the AssertJ assertions generator could include these changes itself, thus removing the requirement to install a separate Eclipse plugin?

Closing this issue as it should be in https://github.com/joel-costigliola/assertj-assertions-generator-maven-plugin, please create a new one in assertj-assertions-generator-maven-plugin if still this is still relevant.
Sorry for the late feedback.


Fix find eigen.

Fix the FindEigen search path and rename the exported variables from EIGEN_xx to EIGEN3_xxx for compatibility with system FindEigen.

Is the FindEigen3.cmake script even necessary? Both, system eigen and eigen built from source, already provide it.

This was due to issues with Eigen version 2.x. We can remove it.

I don't mind removing it either - @schneith you see any issues with that?

Can one of the admins verify this patch?


Cannot resend token in casSimpleMfaLoginView

Token should not be required in casSimpleMfaLoginView. Otherwise clicking on resend button would be not possible if the token input is empty.

Thanks much for the patch. Tokens certainly are required on this page. If that requirement affects the resend functionality, then that functionality/feature is the one that should be reviewed and/or fixed. Removing the requirement is not the appropriate fix.

Agreed. That's why I submitted second commit in this PR, which disables browser form validation only if user clicks on "resend" button. The validation remains unchanged when user "clicks" login button. Could you check this change one more time?

Sure.

@rmathis when you find a free moment, could you review the changes presented here as well?


Organization Name field remains disabled for organization which is neither present in SDFC nor Clearbit on staging environment while creating new organization

Organization Name field remains disabled for organization which is neither present in SDFC nor Clearbit on staging environment while creating new organization

@vinod-kadam @manishv09 @wanyaland
Look like the issue is with the lookup endpoint as the Name field is missing in response to given websiteURL
Request URL: https://api-gw.staging.platform.linuxfoundation.org/cla-service/v4/company/lookup?websiteName=www.wazirx.com
Request Method: GET
Status Code: 200
Response
{
  "Employees": "30",
  "Industry": "Diversified Financials",
  "Link": "wazirx.com",
  "Sector": "Financials",
  "Source": "clearbit",
  "signingEntityNames": null
}

@vinod-kadam @manishv09 @wanyaland
Look like the issue is with the lookup endpoint as the Name field is missing in response to given websiteURL
Request URL: https://api-gw.staging.platform.linuxfoundation.org/cla-service/v4/company/lookup?websiteName=www.wazirx.com
Request Method: GET
Status Code: 200
Response
{
  "Employees": "30",
  "Industry": "Diversified Financials",
  "Link": "wazirx.com",
  "Sector": "Financials",
  "Source": "clearbit",
  "signingEntityNames": null
}

Looks like this is working fine on dev, maybe something wasn't deployed on staging.
[Uploading... Screenshot 2021-01-15 at 14.57.03.png]

Looks like this is working fine on dev, maybe something wasn't deployed on staging.
[Uploading... Screenshot 2021-01-15 at 14.57.03.png]

Verified today on staging environment and found working fine. Please find attached screen cast for your reference.
[Uploading... Orgsearch&Autofill-18012021.mp4]

Verified today on staging environment and found working fine. Please find attached screen cast for your reference.
[Uploading... Orgsearch&Autofill-18012021.mp4]


[AutoComplete] Polyfill for String.prototype.includes()

[X] PR has tests / docs demo, and is linted.
[X] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[X] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Fix TypeError: undefined is not a function in Safara < 9,
and other unsupported browsers
Closes #3270.

Could we move the includes polyfill into it's own file?
I think that would be better for unit testing and reusability.

Sure. Where shall I put it? utils/polyfills.js?

What about utils/includes.js?

Seems a bit vague, I thought polyfills was more descriptive.

@mbrookes As you want then :grin:

Or maybe if this polyfill was included via babel it'd make me feel better.

That would be better.

Someone clue me in here - how do I add babel-polyfill, without adding all of babel-polyfill?
The instructions are just to npm install --save it and import it, but we only need one tiny bit. Without tree-shaking, won't this be bloat?

Someone clue me in here - how do I add babel-polyfill, without adding all of babel-polyfill?

Let's have a look on how it's done :eyes:.
Here is the source code.
That seems to use babel-plugin-transform-runtime. So let's have a look at it.
This line is interesting. We need to have a look at babel-runtime than point us to the includes file of core-js.
That point us to the actual implementation and the specification.

Can't we just use [].indexOf(stuff) === -1?

Yeah, I agree :+1:.

@oliviertassinari Ditto, no need for a polyfill here.

Yup: https://github.com/callemall/material-ui/issues/3270#issuecomment-191862241

Thanks @mbrookes :+1:

Thanks a lot :+1: :+1:


Nodes with no inputs has empty events stream

If a node does not specify any inputs, it will have no event stream. And the event stream is always returning None.
This is however misleading as we might want to check the event stream for other event than INPUT event such as Stopping event.
Quick example
use std::time::Duration;

use dora_node_api::{self, dora_core::config::DataId, DoraNode, Event, IntoArrow};

fn main() -> eyre::Result<()> {
    println!("hello");

    let output = DataId::from("random".to_owned());

    let (mut node, mut events) = DoraNode::init_from_env()?;

    if events.recv_timeout(Duration::from_secs(100)).is_none() {
        eprintln!("Evemt is None");
    }
    Ok(())
}

With an empty input dataflow description, will return immediately instead of timing out on 100s.

Our current behavior is that an event stream is closed as soon as all of its inputs are closed. This way, we enable dataflows to finish "naturally" without requiring a manual stop.
The "stop" event is only sent to signal a premature exit caused by a manual stop operation.
When a node has no inputs, it will never receive any input events. So there is no way to prematurely stop the input stream, as it's already finished from the start. In other words, a node with no inputs always finishes "naturally" even if a manual stop command is sent because the manual stop always happens after the last input has already been closed.

We can of course discuss whether we want to change this behavior. However, if we always wait for a manual stop command, it's no longer possible to have dataflows that finish "naturally".
Could you give more details on your use case for a node without inputs?

Sure thing. Basically, I have some source nodes that generates output without any input.
I guess, the thing is I wish to make them stop when I click on Ctrl+C but I don't have any easy way to do that at the moment.
We don't have to fix this just now.

Some ideas how we could fix this:

Add a some sort of dummy input to the source node that never fires. We could e.g. provide a built-in dora/never input for this use case.
Add a config key to allow nodes to wait for manual stop, e.g. via the YAML file or as argument to init_from_env.
Add a new EventChannelClosed event that is sent immediately before the stream returns None. This event could contain a manual stop channel so that it is possible to wait for manual stop commands even after the event stream returned None.


Game support request: Paragon - The best upcoming MOBA - Using many existing features

Just saying Paragon is an amazing up and coming moba and I'm looking for somewhat of a copy of the Dota profile. I will be working on my own scripts soon to achieve this hopefully I'll update on any progress. But the features would include:

Custom per ability key and lighting for each of the 5 abilities and would have two states that it could fade between based on its status of cooldown. (i.e the "R" key for the ult could glow with a breathing effect while ready, but as soon as it it starting it's cooldown not just pressed as some have confirmation it would be off or white). May not need them for the mouse buttons but could be nice to have a G key light up when these are ready.
A HP and mana bar with custom colour and placement
A feature that had a custom background or effect like CSGO for each hero would be awesome but not a must have
There are times or abilities that can cause a hero to become invisible an overlayed lighting effect whilst this is active would be nice (could be a simple on off no counter)
There are also up to 6 usable item cards such as a hp potion or a ward when these are ready to be used (not on cooldown) maybe based on their usage number could do the same as abilities in lighting up a custom colour when available and off when not (fading in between based on cooldown)

Many of these features already exist but right now I'm unsure on how to retrieve info from the game to the scripts. Thanks and I'm very excited to see this happen. The game is Paragon by Epic Games and is an amazing game with a huge audience. I would be more than willing to do this myself if someone could help lead me in the right direction as far as retrieving cooldown data from paragon etc.

This one can probably be closed, Paragon is shutting down on April 26, 2018
News post here: https://www.epicgames.com/paragon/en-US/news/paragon-to-close-on-april-26


435 do not start alt search for late opponent assignment

fixes #435
introduce a timestamp for when a player was changed last time on a pairing.
Do not trigger unresponsive workflows if a player change was registered after the round start and the pairing is for the team league, as that means that an alternate was put on the pairing late and the opponent in fact did not have 24 hrs to respond.

I'm going to just describe my understanding of this change, to make sure that I understand it:

The previous check (just white_unavail or black_unavail) worked when the 24 hours contact period was over and an alternate had not yet been assigned.
This change is to address the situation where an alternate is assigned at hour 23 and the player that was waiting for a pairing only has an hour to respond?

Just minor things with this one. But otherwise looks like it should work as intended.

Looks good. I'll merge and deploy both of these in the upcoming days


Add additional billing information to card vaulting

When will there be support for billing information on the UpdateVaultSetupToken graphql POST request?
I have added encoding a "billingAddress" to UpdateVaultVariables.swift file with a postal code and country code which returned an error from https://www.sandbox.paypal.com/graphql?UpdateVaultSetupToken
{
  "query": "mutation UpdateVaultSetupToken($clientID: String!, $vaultSetupToken: String!, $paymentSource: PaymentSource) {\n    updateVaultSetupToken(\n        clientId: $clientID\n        vaultSetupToken: $vaultSetupToken\n        paymentSource: $paymentSource\n    ) {\n        id,\n        status,\n        links {\n            rel,\n            href\n        }\n    }\n}",
  "variables": {
    "paymentSource": {
      "card": {
        "securityCode": "802",
        "number": "4240320004218883",
        "expiry": "2026-09",
        "billingAddress": {
          "postalCode": "55555",
          "countryCode": "US"
        }
      },
      "vaultSetupToken": "1MB39316L3631624F",
      "clientID": "AYmwZtpV8XT-vjndqSOWIZRD_7Sxq9Am3n1mzX6A3HCk1LRDqok__2YyBx7-i2xBNrHh2gBTjwG1cVV8"
    }
  }
}

I can only assume this is a problem on the requester side and not the request side if all the docs hold to be true.
We like to do everything we can to mitigate fraud, and adding a billing address is one that I think will help.
Describe the solution you'd like.
Add SDK support for billing information.

+1 for AVS checks. Not sure if we need a full billing check but at least the postal/zip code would be great!

👋 Hello @quintonpryce - thank you for using the PayPal iOS SDK and for raising this request.
This is something we should be able to do. I've created an internal ticket for our product team to prioritize (DTPPCPSDK-1491 for internal tracking). We will keep you posted as it gets reviewed and prioritized!


"Now playing" doesn't clear when the playlist finishes

The "ended" handler tries to update nowPlaying.textContent but something doesn't happen correctly. No JS error is written to the console though.

I'm dumb, that's something I added in after the most recent package release which bandcrash wasn't seeing yet


Added shouldBeZero and shouldNotBeZero matcher for number types (#819)

Closes #819
I've also added the same matcher for floats (idn if it was necessary, because if it was not described on the task).
Also, there was a matcher file with just a couple of rules on the numerics package, so I joined with the existing one with more rules. Did the same with floats with to keep the same pattern from other numerics.

Yes definitely.
On Fri, 21 Jun 2019, 11:55 Gustavo Fão Valvassori<EMAIL_ADDRESS>wrote:

@faogustavo commented on this pull request.
In
kotlintest-assertions/src/main/kotlin/io/kotlintest/matchers/FloatMatchers.kt
https://github.com/kotlintest/kotlintest/pull/848#discussion_r296315587:

infix fun Float.plusOrMinus(tolerance: Float): FloatToleranceMatcher = FloatToleranceMatcher(this, tolerance)
fun exactly(d: Float): Matcher = object : Matcher {
override fun test(value: Float) = Result(value == d, "$value is not equal to expected value $d", "$value should not be equal to $d")
}
+fun lt(x: Float) = beLessThan(x)
+fun beLessThan(x: Float) = object : Matcher {

override fun test(value: Float) = Result(value < x, "$value should be < $x", "$value should not be < $x")

+}

+fun lte(x: Float) = beLessThanOrEqualTo(x)
Só, it's preferable to keep these rules in the floats package?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/kotlintest/kotlintest/pull/848?email_source=notifications&email_token=AAFVSGR3AX6LHOMCWTQ76XDP3UBWPA5CNFSM4H2C4DAKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB4JWJ6Y#discussion_r296315587,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFVSGRN23OJ4H6RTVIRCR3P3UBWPANCNFSM4H2C4DAA
.

@sksamuel can you see if it's ok now?

@sksamuel can you see if it's ok now?

:+1:


refactor: use prettier, switch to 2 indent, no-semi

This PR introduce prettier formatter and switches from 4 space indent to 2 space indent, and also switches from semicolon style to no-semicolon style.
(After this change I will remove jshint and introduces eslint instead.)
closes #2763

Codecov Report

Merging #2766 into master will decrease coverage by 0.88%.
The diff coverage is 49.13%.

@@            Coverage Diff             @@
##           master    #2766      +/-   ##
==========================================
- Coverage   82.91%   82.03%   -0.89%
==========================================
  Files          60       60
  Lines        4793     5159     +366
==========================================
+ Hits         3974     4232     +258
- Misses        819      927     +108

Impacted Files
Coverage Δ

src/arc.js
76.14% <ø> (+1.06%)
:arrow_up:

src/util.js
98.52% <ø> (+0.02%)
:arrow_up:

src/zoom.js
70% <ø> (-0.13%)
:arrow_down:

src/stanford.js
93.5% <ø> (+0.08%)
:arrow_up:

src/grid.js
74.34% <ø> (-0.47%)
:arrow_down:

src/colorscale.js
82.05% <ø> (ø)
:arrow_up:

src/config.js
95.83% <ø> (ø)
:arrow_up:

src/tooltip.js
81.45% <ø> (-0.67%)
:arrow_down:

src/data.load.js
60.37% <ø> (-3.63%)
:arrow_down:

src/subchart.js
84.76% <ø> (-2.74%)
:arrow_down:

... and 86 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 6749eb6...6a10d56. Read the comment docs.

@masayuki0812 Please take a look if you have time.

@masayuki0812 I believe this is a sensible change and this style conforms better to the modern trends of javascript ecosystem. Please let me know if you have a different opinion.


Hold augmented table in memory

Right now the table is augmented with geolocation and blacklist data dynamically in HTML, which makes it hard to sort it without redoing the entire process. We should create an internal data structure on the client that holds all data in the augmented table, and then another function which renders that into HTML.
Note that we can't do the augmentation at the server because it would take much to long. The current approach is done to get the user data ASAP, and then geolocation lookups are done asynchronously at the client.

I think an easier way to handle this will be to just have the table in memory point to a row ID in the DOM, and move the rows around without having to regenerate HTML. The problem with regeneration is that it requires consulting the blacklist again. Maybe we just need to reimplement the blacklist checking locally and get back to caching the blacklist?


Handle tileset margins and spacing

TileSets can have margins and tile spacing.  This is currently unhandled, so tile sprites will be incorrect if either of these values are set.
The calculation is done in utilities.go, but the calling code is in tile.go in the function Draw which already takes a *Tileset parameter, shouldn't be difficult to calculate the offsets

Hello, I`m actually using your library and I would like to create a PR which adresses this issue. My map is currently using a 1pixel spacing.

Hi @perber - sorry about getting back to this so late! That's great to hear that TilePix is being used.
Hopefully we can get your PR merged soon so you can make use of the spacing on your tileset


latest update on web socket, bugs need to be fixed

Merging with error in web socket , only possible to resolve with redux-persist code.


Symbol can not use “+=”

MXNet ： 1.0
Python ; 2.7.14
I try to run the demo, but an error like following:

Traceback (most recent call last):
File "./fgfa_rfcn/demo.py", line 257, in
main()
File "./fgfa_rfcn/demo.py", line 99, in main
aggr_sym = aggr_sym_instance.get_aggregation_symbol(cfg)
File "/home/liyang/Flow-Guided-Feature-Aggregation-master/fgfa_rfcn/symbols/resnet_v1_101_flownet_rfcn.py", line 1081, in get_aggregation_symbol
aggregated_conv_feat += tiled_weight * warp_list[i]
File "/home/liyang/anaconda2/lib/python2.7/site-packages/mxnet-1.0.0-py2.7.egg/mxnet/symbol/symbol.py", line 104, in iadd
raise NotImplementedForSymbol(self.iadd, '+=', other, 1)
mxnet.base.NotImplementedForSymbol: Function iadd (namely operator "+=") with arguments (<class 'mxnet.symbol.symbol.Symbol'>, <type 'int'>) is not implemented for Symbol and only available in NDArray.

How can I fix that issue?
Thank you!

It says that '+=' is not implemented, so
change
aggregated_conv_feat += tiled_weight * warp_list[i]
to
aggregated_conv_feat = aggregated_conv_feat + tiled_weight * warp_list[i]

I also meet this question. And your answer are really helpful for me ! Thank you very much!!!!


Guidance to consume UI API's on Non UWP apps

Hello there, Lovely project I'm diving in already to get my feet wet
I've previously used the WinRT API inside the UWP apps they work nicely and without issues, since they were designed for UWP in mind, that being said I want to share my exploration so far
I'm testing all of these inside an Avalonia app but I can also work them the same way in console apps, granted this might not be most of the use cases but I feel like the console and alike could have users wondering the same things now that the Win32/WinRT line blurs a little more in the sense that we're not constrained to use WinRT just in UWP anymore
So far I've toyed with a few Windows.Media/Windows.Storage APIs

AppCaptureManager
MediaCapture
CameraCaptureUI
FilePicker
FolderPicker
GeoLocation

my experience so far is that anything that relies on UI either crashes or fails silently (as I'd expect since the transition to WinUI is in progress)
and there are also threading issues with some of those API as well
for example
trying to use CameraCaptureUI throws STA/MTA errors
FilePicker/FolderPicker doesn't seem to crash but they don't show anything either
StorageFolders work great, GeoLocation
MediaCapture seems to work for the most part just great I was able to take pictures/video with my webcam.
here's a small snippet
async {
    let capture = new MediaCapture()
    do! capture.InitializeAsync().AsTask()
        |> Async.AwaitTask

    let format =
        MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto)

    let! tmp =
        StorageFolder.GetFolderFromPathAsync(Path.GetTempPath()).AsTask()
        |> Async.AwaitTask
    let! file =
        tmp.CreateFileAsync("TestVideo.mp4", CreationCollisionOption.GenerateUniqueName).AsTask()
        |> Async.AwaitTask

    do! capture.StartRecordToStorageFileAsync(format, file).AsTask()
        |> Async.AwaitTask

    do! Task.Delay(5000) |> Async.AwaitTask
    do! capture.StopRecordAsync().AsTask()
        |> Async.AwaitTask
    printfn "%s" file.Path
}

It'd be nice to know a few things either by warnings in code or documentation somewhere besides the current UWP docs (that already assume you are using UWP)

How should I integrate WinUI (in case is possible) to let the UI dependent APIs work as they work in UWP
Warnings about: Can I use this API without worrying about UI things?

I still have some API's to try that are not tied to UI like networking/power/bluetooth but so far so good I really love this project (I can finally write WinRT with F# 😁) and I'll try to share my experience once I play more with those (if you don't mind)
I know this might not be the ideal place to put this feedback but it would be nice if you could direct me to the correct place
Cheers on this amazing piece of work!

@AngelMunoz - thanks for your positive feedback at this early stage.
Most of your issues are related to requirements of the APIs you're calling:

CameraCaptureUI requires an STA thread.  Add [STAThread] to your Main.
The pickers require a hosting window, which is normally supplied by CoreWindow, but for a desktop app requires IInitializeWithWindow and IWindowNative implementations.  See the WinUI DemoBuildCs sample and Raymond Chen's article on the IInitializeWithWindow pattern.
Similarly, a WinUI 3 desktop app currently requires an explicit synchronization context to be set for executing continuations back on the UI thread.  The WinUI 3 Nuget has an implementation of this, Microsoft.UI.Threading.DispatcherQueueSyncContext.  And the WinUI 3 preview VSIX project templates all call DispatcherQueueSyncContext.SetForCurrentThread() in OnLaunched.

Most of the above pain we hope to relieve with better diagnostics.

I imagined that would be the case, but I can't complain actually today I gave another try to other "UI-less" APIs
specifically:

Windows.Networking
Windows.System.Power

and they just work, and I feel so great about that be sure I'll be promoting this anywhere I can :)
https://github.com/AngelMunoz/WinRTFs
I put my samples there and I'll see if I can get the first two bullets to work
Keep up the good work!


Plugin mechanism for customer-specific labels

What: provide a way for customers to write their own feature detectors, creating custom labels.
Originally, I thought, it would be sufficient to implement custom feature sources as user-specific modules under source/ directory in nfd source code. The reasoning behind this idea was that the source modules and their API to "nfd core" are simple, so writing and maintaining a custom plugin would not be too cumbersome. However, this would effectively be forking nfd, requiring maintenance of your own code base and also building and using custom Docker images.
So, I was thinking about providing some relatively simple mechanism to have custom feature detectors, without the need to fork the code or use custom Docker images.
The first, obvious, idea would be to use hooks. E.g. look under /etc/kubernetes/node-feature-discovery/source.d/ and run all executable binaries from there. The hooks would return the detected features to stdout and have logging to stderr.
E.g.
running /etc/kubernetes/node-feature-discovery/source.d/my-source would have stdout output:
FEATURE_1
FEATURE_2

which, in turn, would cause nfd to create labels
node.alpha.kubernetes-incubator.io/nfd-my-source-FEATURE_1=true
node.alpha.kubernetes-incubator.io/nfd-my-source-FEATURE_2=true

This could be easily extended to non-binary labels, too

+1 on a pluggable mechanism for specific features that are not acceptable for upstream NFD.

An initial version implemented in PR #148

The proposed label name seems very limiting. The custom hooks might be used to detect functionality that has been provided using manual labels so far or that integrates with other existing tools and the proposed format would not allow the use of expected label names.
I would rather let the hook scripts return the full label names to make the label independent on the project/script reporting it completely. That way the hooks can even replace a detection method that might not be appropriate for some environments or hosts and still provide the same feature labels.

NFD is supposed to advertise node features, thus, I would restrict the hook to nfd labels, and not give control over the label namespace. This also relates to re-labeling which has been discussed in #176. I think it's an important feature of NFD that it is able to remove out-of-date/incorrect labels. NFD wouldn't be able to remove any old labels if the hooks had full control over the label name.
Replacing or extending existing feature sources is probably a valid use case, though. So, dropping the feature source part, i.e. local, from the label name in the current implementation makes sense.

I agree, lets limit that to the feature.node.kubernetes.io/ namespace and drop the local prefix. That is completely sufficient for our use cases and sounds right to me. Thanks for listening to our wishes :)

That is awesome news, thank you.

#148 merged into master


Support AWS Glue Schema Registry to deserialize Avro Kafka Messages

Description
As with Confluence Schema Registry, which is already supported by Druid to fetch schemas used to deserialize Kafka messages serialized with Confluent AVRO SerDe, Druid should also support AWS Glue Schema Registry integration so it's possible to consume AVRO Kafka messages from Amazon MSK serialized with Amazon Glue SerDe.
Motivation
Amazon MSK + Amazon Glue Schema Registry is being touted as an AWS native self-managed alternative to the Confluent Kafka distribution and it is expected that a number of companies and projects will use this stack. It's positive to make Apache Druid compatible with a major cloud service provider reference data architecture.

Relevant for me as my team utilizes Glue Schema Registry to deserialize protobuf.  We are in an evaluation phase and this is currently a blocker.


[SPARK-12582][shuffle]IndexShuffleBlockResolverSuite fails in windows

[SPARK-12582][shuffle]IndexShuffleBlockResolverSuite fails in windows

IndexShuffleBlockResolverSuite fails in windows due to file is not closed.
mv IndexShuffleBlockResolverSuite.scala from "test/java" to "test/scala".

https://issues.apache.org/jira/browse/SPARK-12582

Can one of the admins verify this patch?

LGTM @andrewor14

Looks good, but maybe we should close the stream in a finally block.
ok to test

@yucai can you update accordingly?

Sure, I will update the codes.

Ping again; should be quick to update then we can merge.

Jenkins, this is ok to test?

Test build #48801 has started for PR 10526 at commit 11b97d5.

Test build #48801 has finished for PR 10526 at commit 11b97d5.

This patch fails from timeout after a configured wait of `250m`.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class IndexShuffleBlockResolverSuite extends SparkFunSuite with BeforeAndAfterEach

Merged build finished. Test FAILed.

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

Test build #2352 has started for PR 10526 at commit 11b97d5.

Test build #2352 has finished for PR 10526 at commit 11b97d5.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class IndexShuffleBlockResolverSuite extends SparkFunSuite with BeforeAndAfterEach

@yucai should we take this over, in which case you can close this PR, or do you intend to update it?

Sorry, I miss the conversation! I will update it right now.

Test build #49088 has started for PR 10526 at commit fb9cb7d.

Test build #49088 has finished for PR 10526 at commit fb9cb7d.

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

Merged build finished. Test FAILed.

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

Test build #49098 has started for PR 10526 at commit 174b40f.

Jenkins, retest this please.

Jenkins, retest this please.

Test build #49121 has started for PR 10526 at commit 174b40f.

Test build #49098 has finished for PR 10526 at commit 174b40f.

This patch fails from timeout after a configured wait of `250m`.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #49121 has finished for PR 10526 at commit 174b40f.

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

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

Merged build finished. Test FAILed.

Test build #2362 has started for PR 10526 at commit 174b40f.

Test build #2362 has finished for PR 10526 at commit 174b40f.

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

retest this please

Test build #49173 has started for PR 10526 at commit 174b40f.

Test build #49173 has finished for PR 10526 at commit 174b40f.

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

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

Merged build finished. Test FAILed.

Looks like a known-flaky streaming test.

One failure is about flaky streaming test. I retest InputStreamsSuite locally, no failure.
[info] - socket input stream *** FAILED *** (3 seconds, 978 milliseconds)
[info]   4 did not equal 5 (InputStreamsSuite.scala:83)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)
[info]   at org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466)

Another failure looks like some test fail to launch? Like below:
[error] Error: Total 0, Failed 0, Errors 0, Passed 0
[error] Error during tests:
[error] 	Running java with options -classpath /home/jenkins/workspace/SparkPullRequestBuilder/core/target/scala-2.10/test-classes:/home/jenkins/workspace/SparkPullRequestBuilder/core/target/scala-2.10/classes:/home/jenkins/workspace/SparkPullRequestBuilder/launcher/target/scala-2.10/classes:/home/jenkins/workspace/SparkPullRequestBuilder/network/common/target/scala-2.10/classes:/home/jenkins/workspace/SparkPullRequestBuilder/network/shuffle/target/scala-

How about retest this?

@JoshRosen @andrewor14 could you kindly help retest?

Jenkins, retest this please.

Test build #49210 has started for PR 10526 at commit 174b40f.

Test build #49210 has finished for PR 10526 at commit 174b40f.

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

Merged build finished. Test PASSed.

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

Merged to master/1.6


the imported resources do not keep the relations

When terrraformer imports the ACI resources, it creates one folder per object type. However if a user wants to make a change to a resource and apply the plan, it won't be possible as the resource is missing the context.
i.e. a user importa the following:
terraformer import aci --resources=tenant,application_profile
the app profiled will show like the following:
resource "aci_application_profile" "tfer--uni-002F-tn-002D-OOB_Management-002F-ap-002D-Management" {
annotation                = "orchestrator:msc"
description               = ""
name                      = "Management"
name_alias                = ""
prio                      = "unspecified"
relation_fv_rs_ap_mon_pol = ""
}
the above however can't be applied as it is missing the required tenant_dn key/value pair and thefore the reference to the tenant it belongs to.

fixed with the terraform-provider-aci 0.7.1


Producers failed to open when leader broker shut down

When a leader broker shut down, producers that connected with the broker failed to open on a new broker.
According to the leader broker log, the broker unloaded bundles and closed producers.
Also, according to logs of other brokers, another broker became leader broker and bundles were loaded.
However, producers that connected with the old leader broker reconnected with a new broker but some producers of ones failed to open on the new broker.
After the producers reconnected with the new broker, they didn't send CommandProducer messages and stop.
https://github.com/apache/pulsar/blob/d55bc00f34a2fa763a3756fa0adbb1366ae319bd/pulsar-common/src/main/proto/PulsarApi.proto#L406-L430
Expected behavior
When producers reconnect with a new broker, open on the broker.
Actual behavior
Some producers failed to open on the new broker.
Steps to reproduce
We tried but haven't reproduced yet.
System configuration
OS(Broker): CentOS 7.7
Pulsar Broker: 2.3.2
Pulsar Client Java: 2.3.2

This issue should be fixed by the following PRs:

https://github.com/apache/pulsar/pull/7096
https://github.com/apache/pulsar/pull/7126
https://github.com/apache/pulsar/pull/7200


Slicing inconsistent for coordinates and dimensions without coordinates

This is a new behavior since 0.9 and has broken some of my scripts, I am not sure if this is intentional?
old, before 0.9:
ds = xr.Dataset()
ds['x'] = (('x'), np.arange(100., 200., 10.))
ds['var1'] = (('x', 'i'), np.random.rand(10, 5))

ds.sel(x=slice(110, 130), i=slice(1, 3))
<xarray.Dataset>
Dimensions:  (i: 3, x: 3)
Coordinates:
  * x        (x) float64 110.0 120.0 130.0
  * i        (i) int64 1 2 3
Data variables:
    var1     (x, i) float64 0.8894 0.01157 0.2779 0.7247 0.5809 0.3448 ...

new, since 0.9:
ds = xr.Dataset()
ds['x'] = (('x'), np.arange(100., 200., 10.))
ds['var1'] = (('x', 'i'), np.random.rand(10, 5))

ds.sel(x=slice(110, 130), i=slice(1, 3))
 <xarray.Dataset>
Dimensions:  (i: 2, x: 3)
Coordinates:
  * x        (x) float64 110.0 120.0 130.0
Dimensions without coordinates: i
Data variables:
    var1     (x, i) float64 0.9989 0.9092 0.9248 0.296 0.2209 0.5416

Maybe slicing uses the standard (excluding) python slice() for these dimensions and continues to use the (including) pandas slice for coordinates? Anyway, I find this slightly unexpected.

Maybe slicing uses the standard (excluding) python slice() for these dimensions and continues to use the (including) pandas slice for coordinates?

Yes, this is what xarray does since 0.9. From the indexing section of the documentation:

Label based indexing with .sel and .loc uses standard positional, integer-based indexing as a fallback for dimensions without a coordinate label.

To fix your scripts you have to choose between set range coordinates or update the slice values.

To be honest, this wasn't entirely intentional: I didn't think about the difference in slice handling conventions between labeled and unlabeled arrays. But at this point, I would be loathe to change it.
I suppose this is also an argument in favor of changing the slice convention we copied from pandas to exclusive rather than inclusive of upper bounds.


In aws_sdk_eventbridge, there is no pagination helper for ListTargetsByRule

Describe the feature
Many of the SDK's fluent builders have a method allow the SDK to handle pagination for you. aws_sdk_eventbridge::operation::list_targets_by_rule::builders::ListTargetsByRuleFluentBuilder does not. This means you have to manually paginate to retrieve all the rules from the EventBridge ListTargetsByRule API.
Use Case
Retrieving all the targets when calling the EventBridge ListTargetsByRule API.
Proposed Solution
Add the documented pagination helper, please.
Other Information
Similar to #1205.
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

A note for the community

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue, please leave a comment

See https://github.com/awslabs/aws-sdk-rust/issues/1205#issuecomment-2406153714 for a more detailed comment explaining why we cannot do this at the moment.


A separate Q & A for courses

How about a discussion forum in the website itself for all the course related stuffs. Then it would be easier to access previous questions and learners can add code in better way.  Or you can make a group in stackOverFlow.

I feel this is a brilliant idea. There always will be FAQs for every
course, this would be user/student generated content.
On Thu, 30 May, 2019, 10:37 PM Sujoy Saha<EMAIL_ADDRESS>wrote:

How about a discussion forum in the website itself for all the course
related stuffs. Then it would be easier to access previous questions and
learners can add code in better way. Or you can make a group in
stackOverFlow.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/learncodingfree/learnCodingFree.org/issues/6?email_source=notifications&email_token=ACN6LHYUMZGULFGNZ4C3YGDPYACUTA5CNFSM4HRG5M52YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GWYXE4A,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACN6LH6PQQHP3PMEZKJYWS3PYACUTANCNFSM4HRG5M5Q
.


Unable to do single sign on(SSO) every time the window asking for login with username and password

My application is based on Cordova cross platform desktop app which supports windows and ios platforms my past team members configured Oauth in pkce flow using this library but the problem is it is asking every time login credentials not showing any existing account to select and perform Single sign on could please help me on what settings i can give here to work on SSO mode?

If you want to prevent the IdP from doing this you must prove that you already logged in before. Most are doing this by using a Session Cookie, you must ensure that you are sending it with the login request...


add possibility to input initial warping field

would be useful for registering other contrasts (mt, dmri) directly from the PAM50, instead of using the anat/label/template, which might be lower resolution than the contrast.

fixed in PR #1050


README overhaul top section

Hi @TomWFox
I'm currently doing some maintenance on this repo and couldn't assess your PR.
This is just for clarifications on the Readme and you are still working on it (as it is still in draft state)?
Kind regards
Tobias

Hi @TobiasPott 👋
Good to hear! This PR is still not finished, it is mainly getting it ready for our new open collective sponsorship tiers, I'll get to it soon.

Hi @TomWFox
thank you for the update on this. =)

@TomWFox do we still need this?


Need more info

Do we have BLEU scores for each validation happen on each epoch?
Do we have any data for DGX-2 with 16 V100 GPUs?
Thanks.

@myleott any idea about these data?

Closing due to inactivity.


Add linktree clone in website maintain the 4 projects in one row

Can you explain this issue more

if u check the webiste there are 4 projects in first column ,same way second column should have 4 projects too,currently it has 3 projects

and please make a new pr  for linktree clone code after git pull

hi, I would like to resolve this issue.

@tusharjain365 sure go ahead .also if u can please change the title of linktee by making changes in index

Sure, I will.


filer.store.mysql: Use utf8mb4 instead of 3 byte UTF8, escape table columns in queries

What problem are we solving?

Allow all UTF8 chars in files or directories instead of just 3 byte UTF8 ones.
Escape columns names in SQL queries. For example directory is a keyword so escaping makes sense.
Depreacted function usage in upsertQuery

How are we solving the problem?

Switching mysql tables from utf8 to utf8mb4. I chose utf8mb4_bin as COLLATE instead of the better utf8mb4_0900_bin because it has wider support across different mysql versions. utf8mb4_0900_bin would basically require mysql 8.0 and exclude mariadb and probably some more.
Escaping columns makes sense as we already use directory with is a keyword.
Using VALUES() on ON DUPLICATE KEY queries is deprecated so we switch to a non-deprecated way.

How is the PR tested?
I tested these changes locally on a mysql 8.0 server and everything worked as expected
Checks

[ ] I have added unit tests if possible.
[ ] I will add related wiki document changes and link to this PR after merging.

there are several changes here. please separate into multiple dedicated PRs, for easier review and possible commit reverting.

I have split this PR into 3 parts (#4094, #4095 and #4096) so this PR here can be closed


Fix cursor moving while typing quickly and autocorrection triggered in controlled single line TextInput on iOS (New Arch)

Summary:
This one is a bit of a doozy...
During auto-correct in UITextField (used for single line TextInput) iOS will mutate the buffer in two parts, non-atomically. After the first part, after iOS triggers textFieldDidChange, selection is in the wrong position. If we set full new AttributedText at this point, we propagate the incorrect cursor position, and it is never restored.
In the common case, where we are not mutating text in the controlled component, we shouldn't need to be setting AttributedString in the first place, and we do have an equality comparison there currently. But it is defeated because attributes are not identical. There are a few sources of that:

NSParagraphStyle is present in backing input, but not the AttributedString we are setting.
Backing text has an NSShadow with no color (does not render) not in the AttributedText
Event emitter attributes change on each update, and new text does not inherit the attributes.

The first two are part of the backing input typingAttributes, even if we set a dictionary without them. To solve for them, we make attribute comparison insensitive to the attribute values in a default initialized control. There is code around here fully falling back to attribute insensitive comparison, which we would ideally fix to instead role into this "effective" attribute comparison.
The event emitter attributes being misaligned is a real problem. We fix in a couple ways.

We treat the attribute values as equal if the backing event emitter is the same
We preserve attributes that we already set and want to expand as part of typingAttributes
We set paragraph level event emitter as a default attribute so the first typed character receives it

After these fixes, scenario in https://github.com/facebook/react-native-website/pull/4247 no longer repros in new arch. Typing in debug build also subjectively seems faster? (we are not doing second invalidation of the control on every keypress).
Changes which do mutate content may be susceptible to the same style of issue, though on web/react-dom in Chrome, this seems to not try to preserve selection at all if the selection is uncontrolled, so this seems like less of an issue.
I haven't yet looked at old arch, but my guess is we have similar issues there, and could be fixed in similar ways (though, we've been trying to avoid changing it as much as possible, and 0.76+ has new arch as default, so not sure if worth fixing in old impl as well if this is very long running issue).
Changelog:
[iOS][Fixed] - Fix cursor moving in iOS controlled single line TextInput on Autocorrection (New Arch)
Differential Revision: D64121570

@NickGerleman hi, pleaaaaaaase try to fix Paper too, there are huge projects out there that will take some extra time to transition to Fabric. Thank you!

@NickGerleman hey, I found the same thing, related with attributes, I created a PR to fix other cases, do you think this can fix those too? https://github.com/Expensify/App/issues/17153, https://github.com/facebook/react-native/issues/27693, https://github.com/facebook/react-native/issues/29572, https://github.com/facebook/react-native/issues/42792
I know my proposal also fix this autocorrection: https://github.com/facebook/react-native/pull/39385

@NickGerleman hi, The RN version of expo51 used in our project is 0.74.5. According to experience, it will take at least two months to upgrade to expo52 and RN0.76.0.
Our merchants have been troubled by this problem for a long time。
if we want to fix this problem in RN0.74.5, how should we do it, can you give some ideas and pseudo-code? thank you!


Feature/display vervet variation from vcf

Requirements
The update is required to display variants directly from VCF in region in detail. This is a small update to the VCF backend code written by Will. A json config file with VCF location information is required and has been submitted.
Description
The track wasn't displayed because there was a check for row count in the variation_feature table. But for vervet we are not populating the variation_feature table. It is working on my sandbox (ongoing development on other features not related to this PR and lots of restarts going on)
Views affected
Region in detail
Possible complications
Possibly overseen a dependency on current track display. In the future we need to come up with a configuration of tracks that are displayed from VCF files and from database. The change now only displays from VCF if variation_feature table is empty.
I want to show the track on as default. But I'm not sure if setting display to default is the right thing to do.
Merge conflicts
No
Related JIRA Issues (EBI developers only)
https://www.ebi.ac.uk/panda/jira/browse/ENSVAR-1634

Hi @at7  I have updated the staging site and rebuilt the config but I cannot see the track. Variation pages are failing too:
http://staging.ensembl.org/Chlorocebus_sabaeus/Variation/Explore?db=core;g=ENSCSAG00000010263;r=11:6780282-6907410;t=ENSCSAT00000008350;v=11:6820497:T_G:PRJEB22989;vdb=variation;vf=11:6820497:T_G:PRJEB22989
We will also need entries in the .ini file to define

I tried a few things: rebuild web_tree.packed and also ran restart with -sp chlorocebus_sabaeus. I will update the ini file with sample data although we cannot search by variant identifier if the data only comes from VCF file.

The staging website is on its own branch of public-plugins due to the stage of the release cycle. However making sure the new json config file is there makes no difference. I'll merge the branches properly tomorrow

After merge we can see the variant pages but not the tracks on RID. Can you check if there is a missed dependency ?

Has web_tree.packed been rebuilt?

Yes - shouldn't need to be but have done it anyway

Not sure why the track isn't showing. It is working on my sandbox. Does staging run with this PR included? Before the PR the track wasn't drawn because variation_feature table didn't contain any data. I also deleted spp_tree.packed and it was rebuild after. Tracks.pm reads some configuration file/structure which tells it if the species has a variation database. I'm not sure what eventually updated vervet to have this information. Is there a way of rerunning ConfigPacker? Also


Rigid receptor tutorial - different to solutions

Issue and aim
I have an issue with the Vina tutorial for rigid receptors: my outputs for the prepare_receptor, mk_prepare_ligand.py and prepare_gpf.py give different results compared to the same files in the solutions.  I use the commands as specified in the tutorial, although I have also tried to butcher the receptor pdb file in different ways (removing all HETATM, water etc., variations thereof) and tried the -A "hydrogens" flag.
No errors normally come up when I use the commands; which are being used in a conda environment.  As far as I'm aware, these are the latest ADFR and python scripts which I retrieved from the GitHub folders.
When I use the solution files with AutoDock Vina, I get the same output as the tutorial, so the AutoDock Vina itself doesn't seem to be the issue.
I would like to get the same output as the solutions so I can move on to the flexible docking and my own files in certainty that I'm doing it right.
Attachments
I have attached below the receptor, ligand and gpf files for the 1iep tutorial, both my own (labelled JP) and the solution provided here on GitHub.  I have included two of my receptor files, one with and one without the 'add hydrogens' argument.
All are made from the data/solutions provided on GitHub; including the gpf file, which used the solution ligand and receptor files rather than my own (but still does not produce the right result).
I have appended .txt to each to allow upload.
Relation to other issues
For the receptor, Issue #46 mentions also the appearance of a serine at the beginning of the solution's receptor pdbqt.  Can someone tell me where this comes from?  I tried with both the provided pdb and one downloaded directly from the PDB database, to no benefit.
It is mentioned in Issue #45 that mk_prepare_ligand.py now automatically generates the hydrogens in the pdbqt output.  I'm not sure this is the case in my ligand pdbqt (which was generated from the provided sdf file).
Versions (Let me know if there are other versions/information you need.)
Python 3.9.9
Conda 4.11.0
Vina 1.2.2
ADFR Suite 1.0
RDKit 2021.09.4
Meeko 0.3.0
OpenBabel 3.1.1
NumPy 1.22.0
Pandas 1.3.5
1iep_ligand_JP.pdbqt.txt
1iep_ligand_solution.pdbqt.txt
1iep_receptor_hydrogens_JP.pdbqt.txt
1iep_receptor_JP.gpf.txt
1iep_receptor_JP.pdbqt.txt
1iep_receptor_solution.gpf.txt
1iep_receptor_solution.pdbqt.txt

I have the same issue with ligand, have you figured it out? Thanks!


docker image of pre-req

I don't know that much about docker, I just started an online course to learn about it, but couldn't there also be a docker image of the prerequisites?

They certainly can be! Grafana and InfluxDB both have docker images available. So does the UniFi controller! I've spoken with many people who run the whole stack in Docker.

We even have a Docker Compose file available that makes it even easier to bring up all the containers (minus the controller). Check that out here: https://github.com/davidnewhall/unifi-poller/blob/master/init/docker/docker-compose.yml - there's some explanation of how to use it in the wiki. Please join us on Discord if you have more questions or need assistance settings things up!


UX redesign tier1

Introduction
This UX redesign tier 1 scope involves mostly a new general menu for the whole interface.
Now that we have control over the complete dashboard, we want to improve the user experience, making it easier to access Wazuh features. Our first step will be to create a new menu experience in line with what the platform is designed to work with: the left navigation menu.
Our current menu is embedded into our main application in the top bar:

We want to incorporate this accesses into the global left menu, transforming the current look (on the left) to something like:

A first proposal of how to organize the menu entries could be:

Recently viewed
No recently viewed items
Endpoint security >
Endpoints summary
Policy monitoring (malware detect)
Integrity monitoring
SCA
System auditing
Threat intelligence >
Security events
Vulnerabilities
MITRE ATT&CK
Virustotal
Security operations >
PCI DSS
GDPR
HIPAA
NIST 800-53
TSC
Inventory (IT Hygiene)*
Osquery
Cloud security >
AWS
Google Cloud
GitHub
Office365
~Azure~ It doesn't exist in the current application
Docker listener
Server management >
Rules
Decoders
CDB lists
Configurations (a Settings)
API console
Ruleset test
Security (RBAC, to rename)
Opensearch Dashboards > (to rename)
Opensearch Plugins > (to rename)
Indexer/Dashboard Management
Server API
Sample data
Configuration (to rename, include miscellaneous)
Logs
Dev Tools
Stack Management
About

:exclamation: Some sections are not included in the proposition.

Applications

Category
Name
Section in monolith plugin

Endpoint security
Endpoints summary
Agents

Endpoint security
Integrity monitoring
Modules > Integrity monitoring

Endpoint security
Policy monitoring
Modules > Policy monitoring

Endpoint security
Security Configuration Assessment
Modules > Security Configuration Assessment

Endpoint security
System auditing
Modules > System auditing

Endpoint security
OpenSCAP
Modules > OpenSCAP

Endpoint security
CIS-CAT
Modules > CIS-CAT

Thread intelligence
Security events
Modules > Security events

Thread intelligence
Vulnerabilities
Modules > Vulnerabilities

Thread intelligence
MITRE ATT&CK
Modules > MITRE ATT&CK

Thread intelligence
Virustotal
Modules > Virustotal

Security operations
PCI DSS
Modules > PCI DSS

Security operations
GDPR
Modules >  GDPR

Security operations
HIPAA
Modules > HIPAA

Security operations
NIST 800-53
Modules > NIST 800-53

Security operations
TSC
Modules > TSC

Security operations
IT Hygiene
Agents > {agent_id} > Inventory data

Security operations
Osquery
Modules >  Osquery

Cloud security
AWS
Modules > AWS

Cloud security
Google Cloud
Modules > Google Cloud

Cloud security
GitHub
Modules > GitHub

Cloud security
Office365
Modules > Office365

Cloud security
Docker listener
Modules > Docker listener

Server management
Rules
Management > Rules

Server management
Decoders
Management > Decoders

Server management
CDB lists
Management > CDB lists

Server management
Groups
Management > Groups

Server management
Status
Management > Status

Server management
Cluster
Management > Cluster

Server management
Statistics
Management > Statistics

Server management
Logs
Management > Logs

Server management
Reporting
Management > Reporting

Server management
Settings
Management > Configuration

Server management
API console
Tools > API console

Server management
Ruleset test
Tools > Ruleset test

Server management
RBAC
Security

Management
Server API
Settings > API configuration

Management
Server data
Settings > Sample data

Management
Configuration
Settings > Configuration

Management
Logs
Settings > Logs

Management
About
Settings > Logs

Design
There are multiple design choices we can make to implement this:

Modify all plugins to change their registration info, so they appear in the menu as we want
Split the Wazuh plugin into small pieces, each one registering its menu entry
Create a new plugin with the purpose of creating this menu

Of these, we want to pursue the 3rd one, as it allows for greater flexibility, enables us to minimize the conflicts with the upstream project, and allows us to evolve the main plugin with time, iteratively, instead of a big bang devel approach.
There are some challenges we must overcome, like:

The health check page
The angular routing problem
The embedded discover urls
The renaming menus from a 3rd plugin might not work for some plugins, and those might need a change
Inside the application we might need to accommodate a menu, for this, we should use the design of the upstream platform, which relies on a left nav menu, instead of a ribbon.

It is important that we leverage the built-in styles and looks so that our menu can evolve with the new upstream changes which are on their way (for example https://github.com/opensearch-project/OpenSearch-Dashboards/issues/4298).
We must customize the icons for each section, either we use them for all menu section titles or we don't. The UI library provides a set of icons we might use.
Plan

[ ] Investigate:  menu as a standalone plugin
[ ] Design menu proposals,
these proposals must include:

Access to all sections of Wazuh old menu
Names aligned with our new website
Icons and design elements

[ ] Implement the menu plugin

We must use the i18n framework, allowing future translation
We must use the accessibility options built in the platform
We must support dark and light themes
We must support testing with cypress or other UI testing frameworks (use identifiable selectors, etc.)
Ensure health check does not appear on each access to the sections linked by the menu
Ensure there are no routing loops or broken URLs
Design a cypress tests to ensure our menu is correct and works

[ ] Implement a GitHub action to run these tests when desired

We might change our main plugin to make this work appropriately.
We might change code in wazuh-dashboard itself to achieve our goal, even though we want to maintain these at a minimum.
Furthermore, we should implement our plugin in our wazuh-dashboard-plugin repository, but we will maintain the general issue in wazuh-dashboard repository for visibility.
Related issues
We will include here all the related issues we currently have in our backlog / repository.

Research

Investigate: menu as a standalone plugin

The platform menu displays all the registered and visible applications. A plugin can register any number of applications in the platform menu. The app registration needs to define what will be rendered when the user access to the menu.
This means that if we do a plugin to register all the applications, then it must have access to the render methods of them. The rendering method can come from other plugins or itself. If they come from other plugins, this creates more dependency between these plugins.
The menu as a standalone plugin can need more logic than if each plugin manages the application registration.
I think that @asteriscos was working in a POC to register multiple applications. It would be interesting to know what approach followed.

Research
The current plugin is a monolith and this can generate multiple problems if we want to decouple into different applications if this architecture is kept as mentioned ones:

The health check page
The angular routing problem
The embedded discover urls

Health check page
This is a page that does some checks and creates or updates some elements that are needed to work the plugin.
Each route of the current plugin can do some checks. If some of them fail, then a redirection to the health check page will be done. This means we should decide how to accommodate the health check in the different applications. It could be a different application or a route in each future application if we want to keep the current logic.
The angular routing problem
I am not sure what it is referring to.
The current plugin uses as base AngularJS, despite part of the application being migrated to ReactJS. The routing is done with AngularJS.
The embedded discover urls
The Events tab of each module uses the URL to set the filters.

Research
Considerations:

Disable plugins by role: disabled_roles setting in wazuh.yml
Disable plugin visibility (on adding new host): extensions.* in wazuh.yml
Disable plugin visibility by host: in Settings > Modules
Disable plugin visibility by selected agent compatibility.

Research
@asteriscos and me was researching how to create the applications in the side menu and clicking on them redirects to them.
Possible approach: redirect to the monolithic plugin
Register each application so it appears in the side menu and is accessible. Then, the mount method should redirect to the hidden monolitic plugin.
core.application.register({
          id,
          title,
          icon: core.http.basePath.prepend(
            logosInitialState?.logos?.[SIDEBAR_LOGO]
              ? getAssetURL(logosInitialState?.logos?.[SIDEBAR_LOGO])
              : getThemeAssetURL('icon.svg', UI_THEME),
          ),
          mount: async (params: AppMountParameters) => {
            window.location.href = href;
          },
          category,
        });

Possible approach: generate the application routes according to the selected application
This approach generates the routes of each application dynamically. The default route is changed to the current route that should be visible.
Pros:

Resolve the problem of the store being recreated when changing of Wazuh application.

Cons:

Add technical debt to the base application router.

Implementation
Change the routes dynamically:
// public/services/routes.ts
const redirectTo: getApplicationRedirectTo()
// router definition
.when('/', {
      redirectTo,
      outerAngularWrapperRoute: true,
    })
    .when('', {
      redirectTo,
      outerAngularWrapperRoute: true,
    })
    .otherwise({
      redirectTo,
      outerAngularWrapperRoute: true,
    });

getRootRedirectTo is a getter. Use a setter when the application is mounted in the mount method:
// public/plugin.ts
mount: (params){
  setWzMainParams(redirectToRoot);
  // rest of logic
}

Create the getter/setter:
// public/kibana_services.js
export const [getApplicationRedirectTo, setApplicationRedirectTo] =
  createGetterSetter<any>('WzApplicationRedirectTo');

Design
Following the approach: https://github.com/wazuh/wazuh-dashboard/issues/83#issuecomment-1683978025
Steps

[ ] Register the proposed applications
[ ] Rename built-in platform categories
[ ] Explore the redirections
[ ] Replace references to /app/wazuh to /app/{currentAplication}. Suggestion: research to use some services provided by the plugin.
[ ] Share state between applications

[ ] Selected agent

Discussions

[ ] What to do with global breadcrumb?
[ ] API hosts and valid index patterns are updated when opening or closing the current menu. Should it behavior keep and how?
[ ] Visibility of applications related to the current modules that depend on API host configuration, and selected agent. Should it be supported? How should we implement it?

Adapt the redirections

Old URL
New URL
Affected files

/app/wazuh#/settings
/app/wz-server-api
plugins/main/public/components/health-check/container/health-check.container.tsx

When you want to navigate between the Endpoint security, Thread intelligence, Security operations and Cloud security modules and go through the heath check instead of redirecting to the desired view, it redirects to the overview.
On the other hand, changing views is changing the plugin, as the url changes and the application takes longer to load the views, so it slows down the application and in my environment it doesn't have much data to load.

Meeting
Discussions

What to do with global breadcrumb?
API hosts and valid index patterns are updated when opening or closing the current menu. Should it behavior keep and how?
Visibility of applications related to the current modules that depend on API host configuration, and selected agent. Should it be supported? How should we implement it?
Name of the platform categories
Menu for agent

Should the tabs related to other applications be removed?

current section: Settings

current section: Tools

https://github.com/wazuh/wazuh-dashboard/issues/83#issuecomment-1689944098
When the user accesses an application, get a new API token. This means if the user is changing between applications, he/she will get new tokens.

Changes

Create new applications in the side menu:

Category
Name
Section in monolith plugin

Management
Modules
Settings > Modules

Management
Miscellaneus
Settings > Miscellaneus

Notes:
Settings > Miscellaneus should be moved to Configuration
Modules app only contains the visibility of some applications. This should be refactored to support all the applications.

Server Management Issues

Groups

When we click on the eye icon to navigate to Agent-preview, we go to /app/wz-groups#/agents?_g=(filters, using monolithic logic. The function that works over the eye button is showAgent() which works like:

The expected result is to navigate to the Endpoints summary:

But keep into Groups

We can find that code in => plugins/main/public/controllers/management/groups.js
That code modified the URL before "#" to navigate a new web section, but it doesn't work in the new menu bar logic, because we navigate across the menu bar.
To fix it there are 2 main branches; create a new function that works in all redirection code lines, or change old logic code lines with a href.

Statitics

When we click on the settings button, we go to/app/wz-statistics#/settings?tab=configuration&category=statistics, using monolithic logic. The function that works over the button is navigateToModule() which works like:

The expected result is to navigate to Configuration:

But keep in Statistics

We can find that code in => plugins/main/public/controllers/management/components/management/statistics/statistics-overview.js
That code modified the URL before "#" to navigate a new web section, but it doesn't work in the new menu bar logic, because we navigate across the menu bar.
To fix it there are 2 main branches; create a new function that works in all redirection code lines, or change old logic code lines with a href.

Monitoring

When we click on the Agents button, we go to /app/wz-cluster#/agents-preview/?_g=(filters:, using monolithic logic. The function that works over the button is a href.
The expected result is to navigate to Configuration:

But keep in Statistics

We can find that code in => plugins/main/public/controllers/management/monitoring.js
That code modified the URL with a href. but that means that there are at least 3 different ways to navigate over the different parts of the app.
To fix it there are 2 main branches; create a new function that works in all redirection code lines, or change old logic code lines on the href.

Conclusion

If we fix those changes all navigates code lines to hrefs the code will be too much dirt, making it more difficult to fix bugs in the future, and making the code less reusable.
Conversely, it means that we have to take more time to make reusable and cleaner code.

Research the impact of: API hosts and valid index patterns are updated when opening or closing the current menu. Should it behavior keep and how?

Requests are made to update the index pattern and apis selectors.
This is not very reliable because if the user adds an index pattern or a new api and opens the selector, he will not see the changes until he opens the menu or refreshes the page.
With the index pattern it would only affect if you have more than 1 window open with Wazuh, because if the user only handles 1 window when adding an index pattern and then navigates to another view, the requests would be executed when mounting the component.
For me, it is better to add to the documentation that after adding a new api or index pattern you have to restart the browser, and save us from making those requests every so often or when the user makes a specific action.

Changes

Create new applications in the side menu:

Category
Name
Section in monolith plugin

Endpoint security
Overview
Modules directory

Meeting
Discussions:

https://github.com/wazuh/wazuh-dashboard/issues/83#issuecomment-1693052343

We can also use the onMouseEnter function to execute the request when the user puts the mouse over the selector, but this may cause unnecessary requests.

Meeting
Current status:

Problems

Share state

Redux store and singleton are reset when changing applications due to a page refresh when the application is mounted
Loop in the health check
When you change application quickly, sometimes it gives you an error in the console and shows you the previous view to the currently selected one.
Sometimes when you want to enter to some module it always redirects you to the Endpoints summary. Modules - Endpoints summary
Problems with the tabView in the url, in the views you should change the value but then returns to the previous value.

Redirections to applications

Comment

Applications visibility:

configuration
seleted API host
selected Agent (affecting to old modules)

UX problems:

Too many applications
Switching applition is slow

Requirements update
| Category | Name | ID | Section in monolith plugin |
|---------------------|-----------------------------------|---|---------------------------------------------|

| Home | Overview | wz-home | Modules directory | This is the home (the home icon)

| Endpoint security | Security Configuration Assessment | security-configuration-assessment | Modules > Security Configuration Assessment | RENAME Configuration assesment
| Endpoint security | Policy monitoring | policy-monitoring | Modules > Policy monitoring | RENAME to Malware detection  (this is rootcheck now)
| Endpoint security | Integrity monitoring | integrity-monitoring | Modules > Integrity monitoring | RENAME to File integrity monitoring

| Endpoint security | System auditing | system-auditing | Modules > System auditing | DELETE
| Endpoint security | OpenSCAP | openscap | Modules > OpenSCAP | DELETE
| Endpoint security | CIS-CAT | ciscat | Modules > CIS-CAT | DELETE

| Threat intelligence | Security events | security-events | Modules > Security events | RENAME Threat hunting
| Threat intelligence | Vulnerabilities | vulnerabilities | Modules > Vulnerabilities | RENAME to Vulnerability detection
| Threat intelligence | MITRE ATT&CK | mitre-attack | Modules > MITRE ATT&CK |
| Threat intelligence | Virustotal | virustotal | Modules > Virustotal |

| Security operations | PCI DSS | pci-dss | Modules > PCI DSS |
| Security operations | GDPR | gdpr | Modules > GDPR |
| Security operations | HIPAA | hipaa | Modules > HIPAA |
| Security operations | NIST 800-53 | nist-800-53 | Modules > NIST 800-53 |
| Security operations | TSC | tsc | Modules > TSC |
| Security operations | IT Hygiene | it-hygiene | Agents > {agent_id} -> Inventory |

| Security operations | Osquery | osquery | Modules > Osquery | DELETE

| Cloud security | AWS | amazon-web-services | Modules > AWS |
| Cloud security | Google Cloud | google-cloud | Modules > Google Cloud |
| Cloud security | GitHub | github | Modules > GitHub |
| Cloud security | Office365 | office365 | Modules > Office365 |
| Cloud security | Docker listener | docker-listener | Modules > Docker listener | RENAME to Docker

| Explore | Discover | - | - | Renamed from "Openseach dashboards"
| Explore | Dashboards | -| - |
| Explore | Visualize | - | - |
| Explore | Reporting | - | Comes from "Opensearch plugins"
| Explore | Alerting | - |
| Explore | Maps | - |
| Explore | Notifications | - |

| Server management | Endpoints summary | endpoints-summary | Agents | This comes from Endpoint security
| Server management | Groups | groups | Management > Groups | RENAME to Endpoint groups
| Server management | Rules | rules | Management > Rules |
| Server management | Decoders | decoders | Management > Decoders |
| Server management | CDB lists | cdb-lists | Management > CDB lists |
| Server management | Status | server-status | Management > Status |
| Server management | Cluster | cluster | Management > Cluster |
| Server management | Statistics | statistics | Management > Statistics |
| Server management | Logs | logs | Management > Logs |
| Server management | Settings | settings | Management > Configuration |
| Server management | API console | api-console | Tools > API console | RENAME Dev tools
| Server management | Ruleset test | ruleset-test | Tools > Ruleset test |
| Server management | RBAC | rbac | Security | RENAME to Security

| Indexer/dashboard Management | Reporting | reporting | Management > Reporting | Comes from "server management" | REMOVE and use Explore reporting highjacking the download capability of the standard plugin
| Indexer/dashboard Management | Server API | server-api | Settings > API configuration |
| Indexer/dashboard Management | Modules | modules | Settings > Modules | DELETE
| Indexer/dashboard Management | Server data | server-data | Settings > Sample data |
| Indexer/dashboard Management | Configuration | configuration | Settings > Configuration | RENAME to Wazuh plugin settings
| Indexer/dashboard Management | Logs | app-logs | Settings > Logs | RENAME to Wazuh plugin logs
| Indexer/dashboard Management | About | about | Settings > About | RENAME to Wazuh plugin about
| Indexer/dashboard Management | Dev tools | - | - | Comes from management
| Indexer/dashboard Management | Stack management | - | - | Comes from management

| Indexer/dashboard Management | Security | - | -> Comes from Opensearch plugins, nice to have move it to indexer./dashaboard management
| Indexer/dashboard Management| Index management | - |
| Indexer/dashboard Management | Snapshot management | - |