Scroll jumps back up when clicking a checkbox in a trap-focus component

Hi,
I'm having a really weird issue:
The big component uses 'trapfocus'. Clicking a checkbox effectively toggles it, but scrolling and clicking the label of one that was originally out of the visible box, resets the scroll and does not toggle. Clicking the little checkbox itself does work:
Screencast from 23-04-24 17:59:08.webm
I did some testing - a focusout event is generated and it seems that const inCurrentTrap = (el: HTMLElement) => stack.at(-1)?.contains(el) somehow doesn't realise that the label (containing the checkbox) is not part of the big, floating div and thus refocuses on the first checkbox, resetting the scroll.
Any idea on how to remedy this? (The actual website is here: https://mapcomplete.org/cyclofix.html#filters)
This is a big and complicated project though, I might try to make a minimal example if you want to.

I'll try to get back to you tomorrow on this.
Minimal reproduction would be helpful but I should be able to figure it out.

Can you try out the trap-focus-svelte@next release and let me know if it solves the problem? Or gives you any different issues?
I ended up doing a somewhat big rewrite and got it down to about 360 bytes. But I haven't tested edge cases in every browser yet so not a full release.

Way better, but still buggy. It now often works, but clicking one of the top items sometimes scrolls to the bottom now:
Screencast from 25-04-24 01:47:40.webm

May need a reproduction because I haven't been able to replicate this.
Can you test the modal here to see if you have the same problems?
https://trap-focus-svelte-git-checkbox-test-hanks-projects-f63f50b6.vercel.app/

I cannot reproduce the issue in your example, but I've figured out a consistent way to reproduce it in my code.

Scroll to the top
Click the first checkbox
Press tab. The focus is now on the second checkbox (has a small border in the video below)
Scroll down
Click a label (not a checkbox)
The scroll-view will jump up.

The reverse works consistently as well:

Scroll to the bottom
Click the second last checkbox
Press tab. The focus is now on the last checkbox (has a small border in the video below)
Scroll up
Click a label (not a checkbox)
The scroll-view will jump down.

It will also do this if:

Scroll down
Toggle a checkbox at the bottom, by either clicking a label of the checkbox

document.activeElement will now be that checkbox/input-element, without having a visible focus

Toggle a checkbox at the top of the view

The scrollview will jump down to the active element

I cannot reproduce these scenarios in your modal
Screencast from 28-04-24 11:16:06.webm

Note: clicking a label might jump the scrollview to jump to the top if the second, third, ... elements are checked. However, it won't jump if the first checkbox is focused.

I've also experimented by patching your library locally and using focus({preventScroll: true}), but this didn't help.

The @next version uses only a focusin listener and returns immediately if the target element is within the wrapper element you attached the trap to.
So it shouldn't be triggering any change of focus at all if you're just clicking checkboxes or labels within the wrapper. Not sure what the issue could possibly be.
Can you try importing this file directly -- rather than through the package -- and see if the console.log on line 62 runs when you trigger the problem? And if so, which elements it logs? (If you're importing the library anywhere else you probably need to update those imports also.)
And if you can update the live site to use the @next version (or that file), maybe I can add some listeners in devtools to try to debug what's happening.


login

@CodiumAI-Agent /review

PR Review

 ⏱ Estimated effort to review [1-5]
4, due to the significant amount of CSS changes, addition of new components, and the integration of third-party libraries which require a thorough review to ensure compatibility and styling consistency across the application. Additionally, the commented-out code and the use of inline styles in JSX suggest a need for cleanup and standardization.

 🧪 Relevant tests
No

 🔍 Possible issues

Possible Bug: The commented-out login form in 'Login.jsx' might indicate incomplete functionality or a work in progress. If this form is intended to be used, it should be properly implemented and tested.

Styling Inconsistency: The change in font import statements and color codes in 'App.css' could lead to visual inconsistencies. Ensuring uniformity in font usage and color schemes is crucial for a cohesive user experience.

Performance Concern: The use of high-resolution images for icons in the login page could impact the page load time. Optimizing these images or using SVGs could enhance performance.
 🔒 Security concerns
No

 Code feedback:
relevant fileFrontend/src/App.css
suggestion

Consider using CSS variables for colors and fonts to ensure consistency and ease of maintenance across your stylesheets. For example, define your primary and secondary colors, font families, and other reusable properties at the root level. [important]

relevant linebackground-image: linear-gradient(144deg, #ebbac2, #b5c1e0 50%, #5b42f3);
relevant fileFrontend/src/components/Login.jsx
suggestion

Replace inline styles with className and define the styles in your CSS files. This will improve readability and maintainability of your code. For instance, instead of using inline styles for label-char, use a class and move the styling to 'App.css'. [important]

relevant lineU
relevant fileFrontend/src/components/Login.jsx
suggestion

Use semantic HTML elements for better accessibility and SEO. For example, replace div tags with form, section, or other appropriate HTML5 semantic tags where applicable. [medium]

relevant line
relevant fileFrontend/src/App.css
suggestion

Optimize background images for web use to improve load times and performance, especially for mobile users. Consider using tools or online services for image optimization. [medium]

relevant linebackground-image: url("./Images/BGI-login.jpeg");

 ✨ Review tool usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the 'possible issues' section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_ticket, require_can_be_split_review, and more.

  Auto-approve PRs
By invoking:
/review auto_approve

The tool will automatically approve the PR, and add a comment with the approval.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
[pr_reviewer]
enable_auto_approval = true

(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:
[pr_reviewer]
maximal_review_effort = 5

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.


[ci][build] fix commit id

try to fix commit id

/ready

Let's see if the tests here pass. If so, we can merge it instead of #6413

How about trying something like this https://github.com/vllm-project/vllm/pull/4738?


vendoring: isolate the vendor directory

Due to the new vendoring logic in the golang compiler it can cause
issues for projects that import a package that has vendored a package
that is used locally. See https://github.com/containers/image/pull/223
This change moves the vendored sources to the package that uses them,
rather than for the whole project. Also is explictly is not vendoring
code repos from "github.com/opencontainers/". For now we'll consider
these non-remote. Though versioning may likely be future concern.
Fixes #527
Obsoletes #528
Signed-off-by: Vincent Batts<EMAIL_ADDRESS>

@runcom @mtrmac PTAL
@tianon is this what you were recommending? Seems to work well enough.

On Thu, Jan 26, 2017 at 11:54:02AM -0800, Vincent Batts wrote:

Due to the new vendoring logic in the golang compiler it can cause
issues for projects that import a package that has vendored a package
that is used locally…
This change moves the vendored sources to the package that uses them,
rather than for the whole project…
…
R schema/vendor/github.com/pkg/errors/LICENSE (0)
…

Doesn't this just reduce your cross-section (from “all image-spec
consumers” to “image-spec/schema consumers”)?  image-tools (and likely
other projects) are vendoring image-spec schema (e.g. for 1), so I
expect they'd still have issues after this change (buy I haven't
tested to confirm).
An alternative approach would be to rename vendor/ to _vendor/ (or
whatever), and then drop in a symlink or rename (I'm not sure if Go
supports symlinks) when you're running image-spec-local tests.

@vbatts depends -- if external (ie, outside this repo) Go programs are intended to import github.com/opencontainers/image-spec/schema, then this won't work since it'll (partially) force these imports upon folks using them
Generally speaking, libraries shouldn't have vendor/, but package main should, so for packages that have ./cmd/abc, ./cmd/xyz, etc where all their package main lives, then ./cmd/vendor/... is :100:, but at ./vendor/..., it'd force users of ./other/package to also have these vendors.

On Thu, Jan 26, 2017 at 12:05:05PM -0800, Tianon Gravi wrote:

Generally speaking, libraries shouldn't have vendor/, but package main should, so for packages that have ./cmd/abc, ./cmd/xyz,
etc…

Only using cmd/vendor/ doesn't help library tests.  For example,
schema/spec_test.go imports the (vendored)
github.com/russross/blackfriday, etc.  The only ways I see to address
that are:
a. Renaming (or similar 1).  This is an annoying hack, but it would
work.
b. Moving tests to a separate package (schema-test/spec_test.go?).
This is less annoying to work with, but means you can only test the
public image-spec/schema API.

IMO that's a reasonably easy problem to solve -- just have the CI which runs the tests rename vendor to something with a src subdirectory and add it directly to the GOPATH.  That way, it's easy for developers to run the tests locally against other versions of the deps if they so choose.
I really wish the Go developers had kept .../src/... in this new vendoring spec so that we could continue to use a vendor directory as a direct GOPATH component. :disappointed:

k. so this thing hardly makes sense, and I did it wrong too.


NIFI-1850 - Initial Commit for JSON-to-JSON Schema Converter Editor

This is an initial commit for review of the TransformJson Advanced Editor. Please see https://issues.apache.org/jira/browse/NIFI-1850 for details.

@YolandaMDavis I just read through your PR and I wonder if it makes sense to simply reference JS libraries from nifi-web-ui instead of bundling them again. I realize that we're a long way off from establishing a set of components/widgets that are meant for other UI extension points to consume but this would help reduce the limit of the size of UI. Specifically, I was thinking about any angular (for 1.x) and codemirror.
If you're storing anything in your processor's annotationData your processor can implement Searchable to allow users to find your processor based on it.

@mcgilman had same conversation with @scottyaslan last week concerning referencing js in nifi-web-ui.  My main concern was versioning e.g. changes happening at that level that a custom ui wouldn't be ready for.  I can switch it without issue just think that in the future will have to manage that somehow.

@YolandaMDavis Yep. We're definitely on the same page here. However, we currently have not formally established any APIs/components/widgets for UI extensions to consume. Because of this I think we're ok. In this case referencing stuff bundled in nifi-web-ui is fair game with the understanding that they may change with any release. During that release would we would also need to update this custom UI appropriately.
Going forward, we should establish APIs/components/widgets for custom UIs to consume with guarantees around their APIs. However, we need to be mindful that when we do this we won't be able to freely break those APIs. I would prefer to decouple these from any particular framework/versions so we're not 'stuck' with anything. We can obviously discuss this in more details as custom UIs become more prominent.

@mcgilman no problem. will refer to just codemirror in nifi-web-ui for 0.x  and both angular and codemiror in 1.0 (since angular is only available in that module in 1.0)

@YolandaMDavis I'm having some issues saving the JSON specification in the Custom UI while running in a clustered instance. When I click save, the value for the specification is reset to the previous value and I do not get any message indicating an issue.

Functionality after the most recent update looks good. I've made a few minor stylistic changes and updated method visibility here [1]. Will merge to 0.x baseline. Thanks!
[1] https://github.com/mcgilman/nifi/commit/502ac66bf33d941ac1409cd9fc3c0cf83f7b0bb8


Latest Angular version 9.0.0 next 10 causes all validators to fail

In the latest Angular 9 next 10, all Dx Validators fail with the following errors
http://js.devexpress.com/error/19_1/E0120
at makeError (error.js:52)
at Object.Error (error.js:19)
at inheritor._initAdapter (validator.js:67)
at inheritor._init (validator.js:31)
at inheritor._init (class.js:17)
at inheritor.endUpdate (component.js:279)
at inheritor.endUpdate (dom_component.js:280)
at inheritor.endUpdate (class.js:17)
at DxValidatorComponent.push../node_modules/devextreme-angular/core/component.js.DxComponent.ngAfterViewInit (component.js:182)
at callProviderLifecycles (core.js:32586)
To reproduce just add the following to any editor

Duplicate of T831975


feat: Upgrade container images within YAML files

Description
This PR adds a new chart subcommand called upgrade. With the command arkade chart upgrade you can upgrade the image tags of a Helm chart from within a values.yaml file to the latest available semantically versioned image.
Motivation and Context

Fixes #827

[ ] I have raised an issue to propose this change, which has been given a label of design/approved by a maintainer (required)

How Has This Been Tested?

./arkade chart upgrade  -f ~/go/src/github.com/openfaas/faas-netes/chart/openfaas/values.yaml chart upgrade -f /Users/dirien/Tools/repos/faas-netes/chart/openfaas/values.yaml --verbose
Verifying images in: /Users/dirien/Tools/repos/faas-netes/chart/openfaas/values.yaml
Found 18 images
> [ghcr.io/openfaasltd/openfaas-oidc-plugin:0.5.3] ghcr.io/openfaasltd/openfaas-oidc-plugin:0.5.3
newer version of image found > ghcr.io/openfaasltd/openfaas-oidc-plugin:0.5.3
> [ghcr.io/openfaas/gateway:0.25.5] ghcr.io/openfaas/gateway:0.25.5
> [ghcr.io/openfaasltd/autoscaler:0.2.6] ghcr.io/openfaasltd/autoscaler:0.2.6
newer version of image found > ghcr.io/openfaasltd/autoscaler:0.2.6
> [prom/prometheus:v2.38.0] prom/prometheus:v2.38.0
newer version of image found > prom/prometheus:v2.38.0
> [nats:2.9.2] nats:2.9.2
newer version of image found > nats:2.9.2
> [ghcr.io/openfaas/basic-auth:0.25.5] ghcr.io/openfaas/basic-auth:0.25.5
> [natsio/prometheus-nats-exporter:0.8.0] natsio/prometheus-nats-exporter:0.8.0
newer version of image found > natsio/prometheus-nats-exporter:0.8.0
> [ghcr.io/openfaasltd/gateway:0.2.7] ghcr.io/openfaasltd/gateway:0.2.7
newer version of image found > ghcr.io/openfaasltd/gateway:0.2.7
> [ghcr.io/openfaas/ingress-operator:0.7.1] ghcr.io/openfaas/ingress-operator:0.7.1
> [ghcr.io/openfaas/faas-netes:0.16.2] ghcr.io/openfaas/faas-netes:0.16.2
> [prom/alertmanager:v0.24.0] prom/alertmanager:v0.24.0
newer version of image found > prom/alertmanager:v0.24.0
> [ghcr.io/openfaasltd/openfaas-dashboard:0.1.1] ghcr.io/openfaasltd/openfaas-dashboard:0.1.1
> [ghcr.io/openfaasltd/faas-idler:0.5.0] ghcr.io/openfaasltd/faas-idler:0.5.0
newer version of image found > ghcr.io/openfaasltd/faas-idler:0.5.0
> [ghcr.io/openfaas/queue-worker:0.13.2] ghcr.io/openfaas/queue-worker:0.13.2
> [ghcr.io/openfaasltd/jetstream-queue-worker:0.2.5] ghcr.io/openfaasltd/jetstream-queue-worker:0.2.5
newer version of image found > ghcr.io/openfaasltd/jetstream-queue-worker:0.2.5
> [ghcr.io/openfaasltd/faas-netes:0.2.2] ghcr.io/openfaasltd/faas-netes:0.2.2
> [nats-streaming:0.24.6] nats-streaming:0.24.6
newer version of image found > nats-streaming:0.24.6
> [ghcr.io/openfaasltd/queue-worker:0.2.0] ghcr.io/openfaasltd/queue-worker:0.2.0
newer version of image found > ghcr.io/openfaasltd/queue-worker:0.2.0
functionNamespace: openfaas-fn  # Default namespace for functions

# Contact us via https://www.openfaas.com/support to purchase a license
openfaasPro: false

httpProbe: true               # Setting to true will use HTTP for readiness and liveness probe on the OpenFaaS core components
clusterRole: false            # Set to true for multiple namespaces, pro scaler and CPU/RAM metrics in OpenFaaS REST API
createCRDs: true              # Set to false if applying CRDs in another way

basic_auth: true              # Authentication for core components, no good reason to disable this
rbac: true                    # Kubernetes RBAC, no good reason to disable this
generateBasicAuth: false      # Set to false if applying credentials separately from the chart, otherwise set to true
securityContext: true

exposeServices: true
serviceType: NodePort        # serviceType for OpenFaaS gateway
async: true                  # No known reason to disable this, kept for legacy reasons

queueMode: ""                # Set to `jetstream` to run the async system backed by NATS JetStream. By default the async system uses NATS Streaming

# Set to true to use legacy / community-edition auto-scaling
# when openfaasPro is set to true to use the original
# auto-scaling logic
# Then set proScaler.enabled=false
ceScaling: false

# create pod security policies for OpenFaaS control plane
# https://kubernetes.io/docs/concepts/policy/pod-security-policy/
psp: false

# image pull policy for openfaas components, can change to `IfNotPresent` in offline env
openfaasImagePullPolicy: "Always"

# openfaasPro components, which require openfaasPro=true
# clusterRole is also recommended for collecting CPU/RAM metrics for Pro add-ons

# OpenFaaS Pro
## Advanced auto-scaler for scaling functions on RPS, CPU and in-flight requests
## Includes: scale to zero
autoscaler:
  image: ghcr.io/openfaasltd/autoscaler:0.2.7
  replicas: 1
  enabled: false
  resources:
    requests:
      memory: "128Mi"
    limits:
      memory: "256Mi"
  # When disableHorizontalScaling is set to true, then the autoscaler will
  # only scale to zero, without scaling replicas between the defined Min and Max
  # count for the function
  disableHorizontalScaling: false

# OpenFaaS Pro
## To use with port-forwarding, set publicURL to
## http://<IP_ADDRESS>
dashboard:
  image: ghcr.io/openfaasltd/openfaas-dashboard:0.1.1
  publicURL: https://dashboard.example.com
  replicas: 1
  enabled: false
  resources:
    requests:
      memory: "128Mi"
    limits:
      memory: "256Mi"

# OpenFaaS Pro
## faasIdler is the original scale to zero feature, but must
## now be set "enabled=false" when using the new autoscaler
## since it handles scaling to zero
faasIdler:
  image: ghcr.io/openfaasltd/faas-idler:0.5.1
  replicas: 1
  enabled: false
  inactivityDuration: 3m                # If a function is inactive for 15 minutes, it may be scaled to zero
  reconcileInterval: 2m                 # The interval between each attempt to scale functions to zero
  readOnly: false                       # When set to true, no functions are scaled to zero
  writeDebug: false                     # Write additional debug information
  resources:
    requests:
      memory: "64Mi"

# OpenFaaS Pro
## OIDC plugin for authentication on the OpenFaaS REST API
oidcAuthPlugin:
  enabled: false
  verbose: false # debug setting
  provider: "" # Leave blank, or put "azure"
  insecureTLS: false
  scopes: "openid profile email"
  openidURL: "https://example.eu.auth0.com/.well-known/openid-configuration"
  audience: https://example.eu.auth0.com/api/v2/
  welcomePageURL: https://gateway.openfaas.example.com
  cookieDomain: ".openfaas.example.com"
  baseHost: "https://auth.openfaas.example.com"
  clientSecret: ""
  clientID: ""
  resources:
    requests:
      memory: "120Mi"
      cpu: "50m"
  replicas: 1
  image: ghcr.io/openfaasltd/openfaas-oidc-plugin:0.5.4
  securityContext: true

gatewayPro:
  image: ghcr.io/openfaasltd/gateway:0.2.8

gateway:
  image: ghcr.io/openfaas/gateway:0.25.5
  readTimeout: "65s"
  writeTimeout: "65s"
  upstreamTimeout: "60s"  # Must be smaller than read/write_timeout
  replicas: 1
  scaleFromZero: true
  # change the port when creating multiple releases in the same baremetal cluster
  nodePort: 31112
  maxIdleConns: 1024
  maxIdleConnsPerHost: 1024
  directFunctions: false
  # Custom logs provider url. For example openfaas-loki would be
  # "http://ofloki-openfaas-loki.openfaas:9191/"
  logsProviderURL: ""

  # Set to true for Istio users as a workaround for:
  # https://github.com/openfaas/faas/issues/1721
  probeFunctions: false

  # See the HPA rule from the Customer Community
  # https://github.com/openfaas/openfaas-pro/blob/master/gateway-hpa.yaml
  resources:
    requests:
      memory: "120Mi"
      cpu: "50m"

  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 3
    successThreshold: 1

  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 3
    successThreshold: 1

basicAuthPlugin:
  image: ghcr.io/openfaas/basic-auth:0.25.5
  replicas: 1
  resources:
    requests:
      memory: "50Mi"
      cpu: "20m"

faasnetesPro:
  image: ghcr.io/openfaasltd/faas-netes:0.2.2

operatorPro:
  image: ghcr.io/openfaasltd/faas-netes:0.2.2

faasnetes:
  image: ghcr.io/openfaas/faas-netes:0.16.2
  imagePullPolicy: "Always"    # Image pull policy for deployed functions
  httpProbe: true              # Setting to true will use HTTP for readiness and liveness probe on function pods
  setNonRootUser: false        # It's recommended to set this to "true", but test your images before committing to it
  readinessProbe:
    initialDelaySeconds: 2
    timeoutSeconds: 1           # Tuned-in to run checks early and quickly to support fast cold-start from zero replicas
    periodSeconds: 2            # Reduce to 1 for a faster cold-start, increase higher for lower-CPU usage
  livenessProbe:
    initialDelaySeconds: 2
    timeoutSeconds: 1
    periodSeconds: 2           # Reduce to 1 for a faster cold-start, increase higher for lower-CPU usage
  resources:
    requests:
      memory: "120Mi"
      cpu: "50m"

operator:
  image: ghcr.io/openfaas/faas-netes:0.16.2
  create: false
  resources:
    requests:
      memory: "120Mi"
      cpu: "50m"

# The values for jetstreamQueueWorker are merged with those under
# the "queueWorkerPro" and "queueWorker" section
#
# Enable automatically when nats.queueMode is set to "jetstream"
jetstreamQueueWorker:
  image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.1
  durableName: "faas-workers"
  logs:
    debug: false
    format: "console"

# OpenFaaS Pro
# The values for queueWorkerPro are merged with those under
# the "queueWorker" section
#
# To deploy additional named queues, see the "queue-worker"
# chart
#
# Enabled automatically when openfaasPro is set to true
queueWorkerPro:
  image: ghcr.io/openfaasltd/queue-worker:0.2.1
  maxRetryAttempts: "10"
  maxRetryWait: "120s"
  initialRetryWait: "10s"
  # 408 Request Timeout message
  # 429 Too Many Requests
  # 500 Internal Server Error
  # 502 Bad Gateway
  # 503 Service Unavailable
  # 504 Gateway Timeout
  httpRetryCodes: "408,429,500,502,503,504"
  insecureTLS: false
  printRequestBody: false
  printResponseBody: false
  # Control the concurrent invocations
  maxInflight: 50

# Community Edition, maxInflight is 1
# Name of shared queue is "faas-request"
queueWorker:
  image: ghcr.io/openfaas/queue-worker:0.13.2
  # Control HA of queue-worker
  replicas: 1
  queueGroup: "faas"
  ackWait: "60s"
  resources:
    requests:
      memory: "120Mi"
      cpu: "50m"

# monitoring and auto-scaling components
# both components
prometheus:
  image: prom/prometheus:2.41.0
  create: true
  resources:
    requests:
      memory: "512Mi"
  annotations: {}

alertmanager:
  image: prom/alertmanager:0.25.0
  create: true
  resources:
    requests:
      memory: "25Mi"
    limits:
      memory: "50Mi"

stan:
  # Image used for nats deployment when using async with NATS-Streaming.
  image: nats-streaming:0.25.2

# NATS is required for async
nats:
  channel: "faas-request"
  # Stream replication is set to 1 by default. This is only recommended for development.
  # For production a value of at least 3 is recommended for NATS JetStream to be resilient.
  # See https://github.com/openfaas/openfaas-pro/blob/master/jetstream.md
  streamReplication: 1
  external:
    clusterName: ""
    enabled: false
    host: ""
    port: ""
  image: nats:2.9.10
  enableMonitoring: false
  metrics:
    # Should stay off by default because the exporter is not multi-arch (yet)
    enabled: false
    image: natsio/prometheus-nats-exporter:0.10.1
  resources:
    requests:
      memory: "120Mi"

# ingress configuration
ingress:
  enabled: false
  ## For k8s >= 1.18 you need to specify the pathType
  ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
  #pathType: ImplementationSpecific

  # Used to create Ingress record (should be used with exposeServices: false).
  hosts:
    - host: gateway.openfaas.local  # Replace with gateway.example.com if public-facing
      serviceName: gateway
      servicePort: 8080
      path: /
  annotations:
    kubernetes.io/ingress.class: nginx
  tls:
  # Secrets must be manually created in the namespace.

  ## You can specify the ingress controller by using the ingressClassName
  #ingressClassName: nginx

# ingressOperator (optional) – component to have specific FQDN and TLS for Functions
# https://github.com/openfaas-incubator/ingress-operator
ingressOperator:
  image: ghcr.io/openfaas/ingress-operator:0.7.1
  replicas: 1
  create: false
  resources:
    requests:
      memory: "25Mi"

nodeSelector: {}

tolerations: []

affinity: {}

kubernetesDNSDomain: cluster.local

istio:
  mtls: false

gatewayExternal:
  annotations: {}

k8sVersionOverride: "" #  Allow kubeVersion to be overridden for the ingress creation

Are you a GitHub Sponsor yet (Yes/No?)

[ ] Yes
[x] No

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Documentation

[ ] I have updated the list of tools in README.md if (required) with ./arkade get -o markdown
[ ] I have updated the list of apps in README.md if (required) with ./arkade install --help

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s

[x] I have tested this on arm, or have added code to prevent deployment

Hi @dirien thanks for working on this.
> [prom/prometheus:v2.38.0] prom/prometheus:v2.38.0
newer version of image found > prom/prometheus:v2.38.0

I'm a bit confused by this output, it seems to find version v2.38.0 in the chart, then claim that there's also a newer version which is the same tag?
Can you explain if the output is correct, and if it is, how it can be improved to show the version in the chart vs what was found?
Alex

Not sure why this was closed by GitHub, I pushed fixes to your PR fork.
Alex


As a user I would like to have correct contact info available in the app

Description
Give the app owner the possibility to include contact info. This should be presented in a universal way, so that it is presented the same on all apps using the Altinn design. As a first version we propose that we create a footer that the app developer can populate with information.
Tilgjengelighetserklæring
Kan denne footeren også inneholde lenke til tilgjengelighetserklæring?
Screenshots

Considerations
What kind of contact info do we need to support?

Mail
Phone
Chatbot?

Specification tasks

[ ] Should we support tilgjengelighetserklæring in the footer?
[ ] Create designs for all channels that can be shown in footer
[ ] Mobile view

Patentstyret would also like this feature

#538


Unintended content in resource docs after examples

https://www.pulumi.com/docs/reference/pkg/aws/emr/cluster/#multiple-node-master-instance-group
After the last example, it looks like there is content from the TF markdown that's incorrectly being included:

Same as https://github.com/pulumi/pulumi-terraform-bridge/issues/159 (which was just resolved)?

And also https://github.com/pulumi/docs/issues/3025?

Yep, closing as dupe.


[Help Wanted] FireStore Listener??

i want to use listener for Firestore ...
this is sample code with firebase database:
DB.RootReference.Child(AccountID).Child(AccountName).ValueChanged += OnValueChanged;
and i want to port it to firestore like as??
                    AccountListener = DB.Collection(Players).WhereEqualTo(AccountID, null).Listen(task =>
                    {
                        foreach (var item in task.GetChanges().Where(x => x.ChangeType == DocumentChange.Type.Modified))
                        {
                            switch (item.Document.Id)
                            {
                                case AccountName:

                                    break;
                            }
                        }
                    });

???? or what?? wtf??

Hello @davoodkharmanzar. Thank you for trying out the Firestore Unity SDK! I'm sorry that you are running into confusion about the APIs. The GitHub issue tracker is, however, a forum for reporting bugs, issues, and feature requests. To request support, please see options at https://firebase.google.com/support, such as Stack Overflow, Google Groups, or Slack.


Use workspace prefix for workspace dependencies

Use the workspace prefix in package.json, for workspace dependencies, to prevent installation of unwanted packages.

Manypkg doesn't support this. I think we could use this though: https://pnpm.io/npmrc#prefer-workspace-packages

I guess that would be the next best thing.

I found that setting prefer-workspace-packages to true and save-workspace-protocol to false achieves this goal and stops pnpm from constantly trying to add the "workspace:" prefix (for example on pnpm update)

I dont want to sacrifise manypkg as i think it adds a ton of value.
PRs for any other solution than workspace:* is welcome 🙏


Reduce N+1 queries for perf_capture_timer - part 2

Due to the way we were accessing the database, many associations were not being set.
This resulted in a very large number of queries, and objects being created.
This cuts the number of objects/queries created by 65%
/cc @Fryguy thanks for help.
/cc @dmetzger57
https://bugzilla.redhat.com/show_bug.cgi?id=1227008

individual commits have numbers as well.

VmOrTemplate
Host
Storage
ExtManagementSystem
MiqRegion
Zone

10,000
200
221
1
1
1

before:

ms
sql
sqlms
comments

35,108.3
17,412
14,458.7
100_000-master-1

32,624.4
17,385
14,075.0
100_000-master-2

34,083.5
17,387
14,450.4
100_000-master-3

35,820.5
17,385
15,012.7
100_000-master-4

after:

ms
sql
sqlms
comments

23,150.4
6,369
11,700.0
100_000-all3-1

22,552.4
6,342
12,025.3
100_000-all3-2

22,446.5
6,342
11,914.5
100_000-all3-3

23,225.2
6,342
12,141.9
100_000-all3-4

:heart:

Really nice @kbrock !

I'm not quite sure on the zone change...I need to wrap my head around it a bit.

Where is part 1, btw?

Where is part 1, btw?
hmm. think you already merged part 1

@Fryguy zone is mostly from storages.
But we did a search on the zone to begin with. so this is just short circuiting that logic.
storages are very wasteful as they say "pick a random ems, and determine that zone / queue name"
I would have liked to have grouped this all by parent so we didn't get the ~200+ queries for storage ems lookups.

Can the zone be separated out from this PR...the rest are easier merges...that one I need to understand better.

K.
think adding lazy load to cluster => ems may buy us what we need there too


Re-organise and extend path loading logic to make it easier to run integration tests using Delve/GoLand

What this PR does / why we need it:
Prior to this change, running integration tests using anything other than Bazel would fail unless environment variables pointing the integration test framework to copies of the binaries needed were set.
This PR adds additional checks into the path loading logic to attempt to load these binaries from the bazel-bin directory if it exists. This means that once a user has run bazel build //hack/bin/... (or has indirectly caused these targets to be built by running or building other targets), IDEs like Goland will be able to run these tests like normal without any additional configuration changes by the user.
Release note:
NONE

/kind cleanup
/area testing

@jakexks fixed the error 😄 I think this is good to re-lgtm now

/lgtm


5.0.0 - Move backend and frontend into main rust application

Removes application built with pyinstaller and replaces with dedicated rust backend and frontend, using tauri and next.js frameworks.

Backend merged into main rust application.
Some module code using pyo3 to interpret Python using new systembridgedata Python module. To be revisited later on if there is a dedicated method of fetching this data with rust modules.
Frontend is now built and hosted from the rust application.

TODO:

[ ] Refactor frontend code to work in new setup
[ ] Complete module data updates.
[ ] Handle websocket methods.
[ ] Implement new listener to check for module updates and update and registered clients.
[ ] Fix any remaining TODO: comments
[ ] Decommission systembridgebackend and systembridgefrontend.
[ ] Test current connector is able to still communicate and use this application. The plan with 5.0.0 is not to impact the Home Assistant integration

Post 5.0.0 ideas

Dedicated rust modules instead of using Python interpreter (May still be benificial to keep Python in the mix)
Add more data to modules
#3099 - Ability to disable modules and other features

This made some good progress, but will close for now. May revive if a good use case shows up


examples of language line options

can you provide examples for use of the "language line" options, as you have with other features.  for example where does get get the items.  is it a list of notes?  same for link?  link to a note?  inside or outside the vault.  what is the difference.

@pcause those language line option have not been implemented yet

thanks.  not clear from the README.  Might indicate it.


Request to remove recorded pacakge

Hi, Could you remove cinta and api-to-yaml from repo history? It's against my company's policy to release them,
this is link:
https://github.com/pypi-data/pypi-json-data/blob/eb25987bfdfc8e6c803c135b3af0898cb64a3b0c/release_data/t/r/transdata.json

Hello,
Unfortunately the source code for this project is still available for download: https://files.pythonhosted.org/packages/d7/13/ec0fa786e3b51bf18b6426442b50535abe30a9bfd7f4cbd07c8887a3ce7c/transdata-1.1.3.tar.gz
I’m interested in understanding how this package was accidentally released to PyPI - any details you can provide privately or as a reply to this issue can help prevent these issues from occurring in the future.


SUPERB Intent Classification Broken Download Link

Hi there,
I am trying to run intent classification, but the link that is provided to download the dataset (in https://github.com/s3prl/s3prl/blob/master/s3prl/downstream/docs/superb.md) is broken. Could you please point me to where I can download the dataset?
Thanks!

For those looking for the dataset anno 2024, it seems it's available at https://www.kaggle.com/datasets/tommyngx/fluent-speech-corpus


Insert with functions

Im trying to an insert with the mysql function NOW() for a timestamp, but i get incorrect datetime value 'NOW()' which makes me think that it is sending it through as a string. Is there a way to get it to send through the mysql function, or do i need to do a php date() method?

Any update here from the team?

@dereuromark I can confirm that this is a problem and I'd like to make a patch to fix it using the Phinx\Util\Literal class that solves this problem for column creation.
For the implementation, do you want it to be allowed to do variable number of Literals per statement or assume that all inserts will use the same Literals in the same place.
For example, should the following two examples be allowed:
$this->table('test')->insert([
    ['id' => 1, 'test_1' => '2019-01-01 12:59:59', 'test_2' => Literal::from('NOW()')],
])->update();

$this->table('test')->insert([
    ['id' => 1, 'test_1' => '2019-01-01 12:59:59', 'test_2' => Literal::from('NOW()')],
    ['id' => 2, 'test_1' => '2019-01-01 12:59:59', 'test_2' => '2019-02-01 12:59:59']
])->update();

or is the expectation going to always be to do:
$this->table('test')->insert([
    ['id' => 1, 'test_1' => '2019-01-01 12:59:59', 'test_2' => Literal::from('NOW()')],
    ['id' => 2, 'test_1' => '2019-01-01 12:59:59' 'test_2' => Literal::from('NOW()')]
])->update();

and the first example above would end up looking like:
$this->table('test')->insert([
    ['id' => 1, 'test_1' => '2019-01-01 12:59:59', 'test_2' => Literal::from('NOW()')],
])->update();

$this->table('test')->insert(
    ['id' => 2, 'test_1' => Literal::from('NOW()'), 'test_2' => '2019-02-01 12:59:59']
])->update();


split up tests and extend examples

I've extended our tests using Terratest Best Practices.
Mainly, I am checking the expected values against a list of outputs. For other modules, we could also check availability or response through HTTP(s).

ready to review @mariux


PT-BR translation used for Portuguese users

Hi! Looks like it is wrong to use the pt.lproj that you have for users from Portugal. The locale should only be used for PT-BR.

Hi, could you please make changes, test and submit a Pull Request? Thanks in advance!

I’m closing this for inactivity – Gregstor, if you still have interest in this, please reopen. Thank you!


Control Plane Dynamic Configuration

Is your enhancement request related to a problem? Please describe.
The NKG control plane currently has no configurable settings to change things such as log level, metrics, etc.
What would you like to be added:
A method to dynamically update NKG control plane settings.
Why this is needed:
This is needed for better debuggability without the need to restart NKG and potentially lose state that is necessary to debug.
Additional context
Discussion

#554 Will solve the initial implementation of this.


add filter context path

I found that when spring integrated with eureka server, can't call the restful api in the wiki "https://github.com/Netflix/eureka/wiki/Eureka-REST-operations", for example, "GET /eureka/v2/apps",  it should add filter context path parameter in jersey

@sun-jian Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@sun-jian Thank you for signing the Contributor License Agreement!

Current coverage is 74.28% (diff: 100%)

Merging #1623 into master will increase coverage by <.01%

@@             master      #1623   diff @@
==========================================
  Files           194        194
  Lines          6038       6039     +1
  Methods           0          0
  Messages          0          0
  Branches        911        911
==========================================
+ Hits           4485       4486     +1
  Misses         1226       1226
  Partials        327        327

Powered by Codecov. Last update 66da2d8...aaf3f91


Please publish for Scala 2.13.15

which is now on Maven Central, as per https://contributors.scala-lang.org/t/scala-2-13-15-release-planning/6649/11

https://repo1.maven.org/maven2/com/lihaoyi/acyclic_2.13.15/


When i zoom in some pannel,sometimes will get a error can't show any data.

Describe the bug
When i zoom in some pannel,sometimes will get a error can't show any data.
And it is not appear everytime.
Expected behavior
Pannel can't show data and reeport a error.
Screenshots

Network data
Software versions

Grafana
Zabbix
Grafana-Zabbix Plugin

8.3.1
5.2.7
4.3.4

And i use db connect for mysql  Ver 14.14 Distrib 5.7.25

+1 I also have this

Посмотрите временное решение в посте ниже.
Check out the temporary solution in the post below.
https://github.com/alexanderzobnin/grafana-zabbix/issues/1320

Посмотрите временное решение в посте ниже.
Check out the temporary solution in the post below.
#1320

After i turn off Direct DB Connection, looks work allright,thanks~

https://github.com/alexanderzobnin/grafana-zabbix/issues/1320#issuecomment-961807828
Solved form this

Should not be closed!  I have Direct DV connection disabled in the datasource configuration and I still have the issue.


Have xteve respect tvg-chno from m3u

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I'm always frustrated when I have to manually enter the channel numbers that already exist in my m3u lists.
Describe the solution you'd like
A clear and concise description of what you want to happen.

Have a bool option to enable or disable using channel numbers from the m3u (only if they are present)
When importing an m3u look for the tvg-chno and attemp to use the same number. If the number was not used before then assign it. If it was used before then assign it and a subchannel, like 100.1, 100.2, etc.

Alternative idea:
Allow searching channels using the API and re-assign the number. For example user could search for channel name, playlist, group title, etc... then be able to assign a number if there's a match.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

+1

+1

Dev Retired. Check a "active" fork.


Compile error on Darwin: sata.go:860:20: d.readSMARTThresholds undefined

19:38:46 iPad-Pro:/src/smart.go root$ go build
# github.com/anatol/smart.go
./sata.go:860:20: d.readSMARTThresholds undefined (type *SataDevice has no field or method readSMARTThresholds, but does have ReadSMARTThresholds)

This happens when I compile on both MacOSX 10.9 and on jailbroken iOS 14.4. Both with go 1.20.
This same error occurred a year ago last time I tried.

Thank you for the report. It should be closed by https://github.com/anatol/smart.go/commit/c3b27137baa3bbbcfe3d41c1dbb9f0a13f23ff1c

@anatol Thanks I was able to run go test which PASSed, and go test examples/nvme_darwin_test.go, which failed, but it's because smartctl has never succeeded at opening the NVMe disk on my iPad, it always gets Smartctl open device: disk0 failed: IOCreatePlugInInterfaceForService failed
I am not sure where the issue lies but I'd do anything to get added to SMART data on iOS. Using ioreg tool I can see there is definitely a SMART diagnostic device with a bunch of binary data, and Apple's asptool gets advanced disk health data presumably via SMART when you install a Developer debugging Profile on your device and then collect sys logs. It actually creates a huge 300MB .tgz which I inspected and was excited to discover it reported health on my SSD NAND "bands" and there's apparently a "high endurance band" etc.
(This was on my old iPad Pro which died due to the SSD NAND failing, presumably due to excessive writing as I had been continuously building debug versions of LLVM/Clang and there was a runaway process that kept this up for almost a whole year.)

The error happens here https://github.com/anatol/smart.go/blob/e7fc66e84963768d49bf9fb1a9e0620c2441b91a/nvme_darwin.cpp#L54
I am looking at the failing function. Its docs say https://developer.apple.com/documentation/iokit/1412429-iocreateplugininterfaceforservic that it is available in macOS 10.0+, but it does not say anything about ios. I wonder if Apple does not provide the IOKit at iOS.

iOS definitely has IOKit, I've compiled numerous programs that succeed using it. Sometimes I have to add special entitlements for direct-disk-access, especially when trying to access hardware directly, but dmesg will always have a telltale System Policy: deny(1) direct-disk-access. And there were no Denys today.

I just ran following code at my MacBook M2 and it completed successfully. It can read SMART information from the device's SSD
package main

import (
	"fmt"
	"os/exec"

	"github.com/anatol/smart.go"
)

func main() {
    path := "disk0"

	out, err := exec.Command("smartctl", "-a", path).CombinedOutput()
	fmt.Println(string(out))
	// require.NoError(t, err)  it fails at macosx because of GetLogPage()

	dev, err := smart.OpenNVMe(path)
	if err != nil {
		fmt.Println(err)
	}
	defer dev.Close()

	c, ns, err := dev.Identify()
	if err != nil {
		fmt.Println(err)
	}

        fmt.Printf("%+v\n", c)
        fmt.Printf("%+v\n", ns)
        fmt.Println(c.ModelNumber())

	sm, err := dev.ReadSMART()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Printf("%+v\n", sm)
}

It looks like the error is iOS specific.
I do not have a jailbroken iOS device to clearly tell what is going on there. I suggest you to add a few debug statements to smart.go/nvme_darwin.cpp and see what exactly the res code value is. It might give a clue what is going on there.


Revise Intro to Landsat notebook to close #154

Comments from @walsh-andrew from #154:

The abbreviation "SR" is introduced in the NBAR-T section, but it is not defined (presumably 'surface reflectance'). SR can be defined on the first line of the document.

Just to make things easier to read, I've replaced all 'SR' with 'surface reflectance'

In the first notebook input cell (In [1]:), it says "Import dea-notebook functions. This assumes you are running this notebook from inside the dea-notebooks directory. If not, replace the relative ../Scripts link with a path to the dea-notebooks/Scripts directory. It is not clear how to find the dea-notebooks/Scripts directory. I just tried it with a notebook started using the DEA desktop icon and it still didn't work. So an explanation of starting a notebook from a subdirectory inside a cloned version of dea-notebooks on GitHub is needed.

I've added a new 'required inputs' section which mimics other notebooks and gives some additional info on cloning the directory:
**Required inputs**

This notebook requires the `DEAPlotting.three_band_image` function from the `dea-notebooks` repository. To ensure this function and all other file paths load correctly, it is recommended that you download and clone the entire `dea-notebooks` repository onto your computer and then launch this notebook from inside the cloned directory; please see the [readme document here](https://github.com/GeoscienceAustralia/dea-notebooks/) for instructions. If you find an error or bug in this notebook, please either create an 'Issue' in the Github repository, or fix it yourself and create a 'Pull' request to contribute the updated notebook back into the repository (See the repository README for instructions on creating a Pull request).

In the section "Creating a true-colour image using three bands", it is somewhat confusing to talk about making a true colour plot and then having a flag "contrast_enhance=True" that results in a "colour-enhanced image". It's not clear which one is the true colour image (with flag True or False?). Maybe clarifying this will help the user understand what's happening better?

True-colour here is used in the remote sensing use of the word (i.e. an image that uses 'red', 'green', 'blue' bands for RGB, vs a false colour than uses other bands). To add a bit of extra clarification for people who are interested, I've added a link for further reading:
By specifying the red, green and blue bands, we can produce a ['true colour' plot](https://crisp.nus.edu.sg/~research/tutorial/opt_int.htm) that approximates how the landscape would appear to the human eye

@walsh-andrew I can't tag you as a reviewer for some reason, but this should address most of your previous comments! :)


Expected ENDFORM (structure) caused by inline data / Assign

Source inline data

Source Assign

hmm, this looks strange, the version should be one of
  v740sp02 = "v740sp02",
  v740sp05 = "v740sp05",
  v740sp08 = "v740sp08",

should give an error while editing, something like:

Adjusted:

try again, this was fixed a few days ago

issue resolved. Thx


[Outlook] (manifest) update JSON support info

Learn Build status updates of commit 4908ab6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/outlook/append-on-send.md
:white_check_mark:Succeeded
View

docs/outlook/autolaunch.md
:white_check_mark:Succeeded
View

docs/outlook/online-meeting.md
:white_check_mark:Succeeded
View

docs/outlook/smart-alerts-onmessagesend-walkthrough.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 916f444:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/outlook/append-on-send.md
:white_check_mark:Succeeded
View

docs/outlook/autolaunch.md
:white_check_mark:Succeeded
View

docs/outlook/online-meeting.md
:white_check_mark:Succeeded
View

docs/outlook/smart-alerts-onmessagesend-walkthrough.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 46cf1e5:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RuningBuildFailed] Some unexpected errors happened when running build, please open a ticket in https://aka.ms/SiteHelp and include the error report for our team to troubleshoot

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 6b57423:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/outlook/append-on-send.md
:white_check_mark:Succeeded
View

docs/outlook/autolaunch.md
:white_check_mark:Succeeded
View

docs/outlook/online-meeting.md
:white_check_mark:Succeeded
View

docs/outlook/smart-alerts-onmessagesend-walkthrough.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Added jq to playonlinux deps

Motivation for this change
Playonlinux is complained about not finding jq the first time i've opened it. More info on the following issue:
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Thanks


Clean up build

Coverage decreased (-0.02%) to 79.565% when pulling 6dd4744e0996a580b48eb449a33af85733a86570 on idp into 9ca687bb87b1a626e5919c5f82c830d43e522c25 on master.


Make local universe on mac failed

I build a local universe package on my mac. And I found some problems here:

On mac, local-universe.py should not restrict docker to use sudo.

python3 /Users/chrisrc/Dcos/dist/universe/docker/local-universe/../../scripts/local-universe.py			\
		--repository /Users/chrisrc/Dcos/dist/universe/docker/local-universe/../../repo/packages/	\
		--include="kafka,storm,marathon-lb,zeppelin" &&							\
	docker save -o local-universe.tar mesosphere/universe:latest &&		\
	gzip local-universe.tar
You must run this as root, please `sudo` first

2.After I disable the sudo check, there still have problem:
Start docker registry.
43282922323a12049ab0521c9a335f2ab4fe788101dfbb369f83aa1ff42ace24
docker: Error response from daemon: Mounts denied: or-mac/osxfs/#namespaces for more info.
.
l63qb75wt4qhvc0000gn/T/tmpt8se1gcw/registry
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-f.

The tmp path '63qb75wt4qhvc0000gn/T/tmpt8se1gcw/registry' was changed on every build.

I see the same behavior as of today.

I just got a good build on OSX by commenting out the check in local-universe.py and running as nonroot user.  I'm on the version-3.x branch at the 3/21 d310c6b revision.


Add a dependency audit to the CI flow

Adds a dependency audit to the CI

Dependencies audited against the rustsec database using cargo-audit
Runs on pushes that modify the Cargo.toml or Cargo.lock (Not needed on pushes that don't change these, will help speed things up
Runs on its own once per day

r? @pietroalbini
This mostly looks fine to me but I'm a little hesitant to depend on a random GitHub action. I know I have a tendency to avoid dependencies though so I think it's best to have a second opinion.

Thanks!


Create User Scenarios for the App

Create User Scenarios for Social media information gathering/capturing app.

Task completed, link.

Fix the user scenario by adding personas and a story by 25.10.2022.

Task completed, link.


Schema for orders

Create a new folder named models and add schema for orders model(food name, customer name(foreign key), food quantity)
You may need to use  mongoose for making the schema(database used is MongoDB)

Already Done

Hi, I can work on this. Kindly assign me this so that I can start working on it


AttributeError post 0.66.0

Bug Template
Description:

2ea9f70 introduced an optional neo4j_database parameter which allows selecting a DB to use.
Running the CLI without specifying this parameter results in the following:
AttributeError: 'Namespace' object has no attribute 'neo4j_database'
Executing cartography -h also doesn't return the new parameter.

To Reproduce:

Execute cartography through CLI

Logs

Traceback (most recent call last):
File "/usr/local/bin/cartography", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/cartography/cli.py", line 547, in main
sys.exit(CLI(default_sync, prog='cartography').main(argv))
File "/usr/local/lib/python3.8/site-packages/cartography/cli.py", line 527, in main
return cartography.sync.run_with_config(self.sync, config)
File "/usr/local/lib/python3.8/site-packages/cartography/sync.py", line 163, in run_with_config
return sync.run(neo4j_driver, config)
File "/usr/local/lib/python3.8/site-packages/cartography/sync.py", line 81, in run
with neo4j_driver.session(database=config.neo4j_database) as neo4j_session:
AttributeError: 'Namespace' object has no attribute 'neo4j_database'

Additional context:

The new parameter should be added to cli.py

Ugh sorry, sloppy mistake on my part. Will fix tomorrow!


always call the $missingAttributeViolationCallback if preventsAccessingMissingAttributes

This change brings throwMissingAttributeExceptionIfApplicable into alignment with handleLazyLoadingViolation by always executing the callback if its defined.
The purpose for this change is to allow the end-user to be in control and determine whether or not they care about accessing missing attributes in ALL circumstances. My original description and reproduction steps are in https://github.com/laravel/framework/issues/47109
The only risk I see from this change is that it will cause people who have defined a missingAttributeViolationCallback to potentially start getting more calls to it if they have issues in their code when they are accessing missing attributes.
The specific instance where I got burned from this was;

Using Jetstream
Added an enum columns to my users table with a default value (and not having defined that in the User.php $attributes array) called type
Registered an Event Listener on the Login event in EventServiceProvider and tried accessing an the type attribute expecting it would be there since I have Model::preventAccessingMissingAttributes(); and no error was thrown.

My expectation when defining Model::preventAccessingMissingAttributes(); is that it would do it in all circumstances   so as to force me to ensure I've hardened my code with either with defaults values in $attributes or to rehydrate my models explicitly.
I think this is a good compromise rather than introducing a breaking change for people. That said, the downside of this change is that people will still be burned by this unless they know about the 'hidden behaviour' of registering this callback.
Also I appreciate any feedback if there's anything wrong with what I've submitting, I think I've done everything to align with expectations for submitting a PR.

Flipping to draft, realized I broke the DatabaseEloquentBelongsToManyWithCastedAttributesTest need to determine revisions.

I'm going to close this and try to approach a different way. My specific scenario was due to partial hydration on creation of a model...
Perhaps by creating a new strictness setting that will enforce that the model is fully hydrated on creation. That way its a net-new setting that people can opt-in to.


added support to Azure app service

Oh I tried something similar but wip recently too.
Some resources in azure have ListComplete/ListAll methods which also consider paging, e.g. this one has ListComplete
e.g.
https://github.com/Azure/azure-sdk-for-go/blob/master/services/web/mgmt/2019-08-01/web/webapi/interfaces.go#L431
(A WIP prototype https://github.com/GoogleCloudPlatform/terraformer/compare/master...juno-yu:j-0007-add-function-app-partial?expand=1#diff-5f8bd3346315541ce78e72371e46bb71R120  I haven't finished this yet)

@googlebot I signed it!

Thanks! Can you add new resource to README?

Oh I tried something similar recently too.
Some resources in azure have ListComplete/ListAll methods which also consider paging, e.g. this one has ListComplete
e.g.
https://github.com/Azure/azure-sdk-for-go/blob/master/services/web/mgmt/2019-08-01/web/webapi/interfaces.go#L431
(A WIP prototype https://github.com/GoogleCloudPlatform/terraformer/compare/master...juno-yu:j-0007-add-function-app-partial?expand=1#diff-5f8bd3346315541ce78e72371e46bb71R120 I haven't finished this yet)

@juno-yu
It's a really good comment, thank you! I updated my code accordingly.

Thanks! Can you add new resource to README?

@sergeylanzman
Sure, README is now updated.


README out of date with the 1.0 version

Readme says (in the first paragraph)

Be advised that the gzip feature will be removed from default features as of 1.0.

But apparently 1.0 is out. I don’t know the project, just found about it, so I’m not sure if the sentence should read

Be advised that the gzip feature have been removed from default features as of 1.0.

or if the change did not take place.

That's correct it has been removed from the defaults. Would you be willing to make a PR with the fix?


[6.3.x] Bug 1324596 - [GSS] [6.2.z] 6.2.2 unable to open/edit some assets with specific user

https://bugzilla.redhat.com/show_bug.cgi?id=1324596
Almost the same as master and 6.4.x
Since 6.3.x is frozen. I am not sure if this goes in, but the patch will be done against the 6.3.x. So placing this here for a PR review.
(cherry picked from commit c181908753e20512bad67c342d32c4ae6af13277)

+1 to merge (if/when the BZ gets blocker+ ack)

@manstis ok. This has all the flags now and can go in.

Fixes done.

@Rikkola oeee..

Need to see what happened here. Looks like another branch is leaking into this one.

Looks like the test-utils from guvnor tried to get in. Should be ok now.

@mswiderski @mrietveld jBPM has a compilation error on 6.3.x:
08:52:28 [ERROR] /home/jenkins/workspace/guvnor-pullrequests-6.x/upstream-repos/jbpm/jbpm-flow/src/main/java/org/jbpm/process/StatefulProcessSession.java:[60,7] error: StatefulProcessSession is not abstract and does not override abstract method delete(FactHandle,State) in EntryPoint
Could you please take a look?

This build worked locally for me.

there is a missing commit in jbpm repo after back porting of drools part, @mariofusco just pushed the fix https://github.com/droolsjbpm/jbpm/commit/d516ab507647ad487b879f275bd43e114762ff50

jenkins retest this

Jenkins please retest this.

@mariofusco Hi Mario, there's still some compilation failures (presumably relating to the recent change you made):
10:16:07 [ERROR] /home/jenkins/workspace/guvnor-pullrequests-6.x/upstream-repos/droolsjbpm-integration/kie-remote/kie-remote-client/src/main/java/org/kie/services/client/api/command/KieSessionClientCommandObject.java:[65,7] error: KieSessionClientCommandObject is not abstract and does not override abstract method delete(FactHandle,State) in EntryPoint```

Jenkins please retest this.

Jenkins please retest this.


Evaluate Operators if possible when constructing AST

https://github.com/ggetz/cesium/pull/5 targeted for cesium/3d-tiles-style

@ggetz I believe this is an old PR that we've already accounted for.  Please reopen if that isn't the case.

I believe this is an old PR that we've already accounted for.

Yep


Create Vertex runner

Create a runner that allows users to run Fondant pipelines on Vertex AI pipelines.

Vertex runs kubeflow pipelines in a more managed way since we already have a kubeflow runner (and compiler), vertex should be a logical next step.
For Vertex we should use the "new" kubeflow pipelines v2 which we currently do not support.
There are 3 options to make this work:

we keep our current kfp runner v1 and create a new runner that uses kfp v2 --> not possible since we can't have 2 versions of kfp installed at the same time

we use the (v2-compatibility-mode)[https://www.kubeflow.org/docs/components/pipelines/v1/sdk-v2/v2-compatibility/#compiling-and-running-pipelines-in-v2-compatibility-mode] to both support v1 and v2. This means importing from kfp.v2 for v2 functionality. This works in versions of kfp==1.8.0 and up.

--> seems like the logica way forward but the kfpv1.v2 and kfpv2 do not have the same interfaces and the documentation is very lacking
--> feels like a temporary fix

we only use v2 and port our current code of the kubeflow runner to v2
--> this means that we need to rewrite the kubeflow compiler and create the vertex compiler but there is a lot of overlapping code. The compiler can be the same and the runnen could be specific AFAIK.
--> we will need to create a new kfpv2 cluster and force our users to migrate since v1 will not be supported anymore

Notes on generating kubeflow components specs.
In kfpv1 a component spec looks something like this:
name: Add
description: |
    Component to add two numbers
inputs:
- name: op-1
  type: Integer
- name: op2
  type: Integer
outputs:
- name: sum
  type: Integer
implementation:
  container:
    image: google/cloud-sdk:latest
    command:
    - sh
    - -c
    - |
      set -e -x
      echo "$(($0+$1))" | gsutil cp - "$2"
    - {inputValue: op-1}
    - {inputValue: op2}
    - {outputPath: sum}

In kfpv2 a component spec has been unified along with the pipeline spec into IR YAML
This looks like this:
{
  "components": {
    "comp-fondant-component": {
      "executorLabel": "exec-fondant-component",
      "inputDefinitions": {
        "artifacts": {
          "input_manifest_path": {
            "artifactType": {
              "schemaTitle": "system.Artifact",
              "schemaVersion": "0.0.1"
            },
            "isOptional": true
          }
        },
        "parameters": {
          "component_spec": {
            "defaultValue": {},
            "isOptional": true,
            "parameterType": "STRUCT"
          },
          "input_partition_rows": {
            "isOptional": true,
            "parameterType": "STRING"
          },
          "metadata": {
            "parameterType": "STRING"
          }
        }
      },
      "outputDefinitions": {
        "artifacts": {
          "output_manifest_path": {
            "artifactType": {
              "schemaTitle": "system.Artifact",
              "schemaVersion": "0.0.1"
            }
          }
        }
      }
    }
  },
  "deploymentSpec": {
    "executors": {
      "exec-fondant-component": {
        "container": {
          "args": [
            "--input_manifest_path",
            "{{$.inputs.artifacts['input_manifest_path'].uri}}",
            "--metadata",
            "{{$.inputs.parameters['metadata']}}",
            "--component_spec",
            "{{$.inputs.parameters['component_spec']}}",
            "--input_partition_rows",
            "{{$.inputs.parameters['input_partition_rows']}}",
            "--output_manifest_path",
            "{{$.outputs.artifacts['output_manifest_path'].uri}}"
          ],
          "command": [
            "python3",
            "main.py"
          ],
          "image": "some_image"
        }
      }
    }
  },
  "pipelineInfo": {
    "name": "fondant-component"
  },
  "root": {
    "dag": {
      "outputs": {
        "artifacts": {
          "output_manifest_path": {
            "artifactSelectors": [
              {
                "outputArtifactKey": "output_manifest_path",
                "producerSubtask": "fondant-component"
              }
            ]
          }
        }
      },
      "tasks": {
        "fondant-component": {
          "cachingOptions": {
            "enableCache": true
          },
          "componentRef": {
            "name": "comp-fondant-component"
          },
          "inputs": {
            "artifacts": {
              "input_manifest_path": {
                "componentInputArtifact": "input_manifest_path"
              }
            },
            "parameters": {
              "component_spec": {
                "componentInputParameter": "component_spec"
              },
              "input_partition_rows": {
                "componentInputParameter": "input_partition_rows"
              },
              "metadata": {
                "componentInputParameter": "metadata"
              }
            }
          },
          "taskInfo": {
            "name": "fondant-component"
          }
        }
      }
    },
    "inputDefinitions": {
      "artifacts": {
        "input_manifest_path": {
          "artifactType": {
            "schemaTitle": "system.Artifact",
            "schemaVersion": "0.0.1"
          },
          "isOptional": true
        }
      },
      "parameters": {
        "component_spec": {
          "defaultValue": {},
          "isOptional": true,
          "parameterType": "STRUCT"
        },
        "input_partition_rows": {
          "isOptional": true,
          "parameterType": "STRING"
        },
        "metadata": {
          "parameterType": "STRING"
        }
      }
    },
    "outputDefinitions": {
      "artifacts": {
        "output_manifest_path": {
          "artifactType": {
            "schemaTitle": "system.Artifact",
            "schemaVersion": "0.0.1"
          }
        }
      }
    }
  },
  "schemaVersion": "2.1.0",
  "sdkVersion": "kfp-2.0.1"
}

There is no real difference between a spec describing a pipeline or a component (a component is just a one step pipeline)
You can read tis spec from file or text and use it in another pipeline.

Thanks for the extensive description @GeorgesLorre!
Solution 1: Indeed does not seems like the most optimal solution to have two versions. Regarding the runner, I think it's a given that we would have to have separate runner for both Vertex and KFP regardless of the version no?
Solution 2:  importing from v2 was what we used to do before in Vertex at ML6 (now the new boilerplate is V2 and I haven't worked with it before). Although it's not well documented, we have the ability to use it properly based on the experience/boilerplate that we have. Downside is that we would then need to develop a different compiler for V2.
Solution 3: Seems to be the most optimal one indeed but It still feels like the full fledged v2 is still more integrated with Vertex rather than KFP on GKE (at least for the moment since the official release was not too long ago). There seems to be still some issues/features missing for us to select nodepools and GPU that are still to be integrated: https://github.com/kubeflow/pipelines/issues/9682
I would be more in favor of Solution 3 to avoid additional work, but we would need to make sure that it can offer all the core features that we need. I think in Vertex that's a given but would rather want to test it out on the standalone kfp deployment and check if we can select specific nodepools and work with GPUs. Otherwise it will break our current workflow.
Maybe we can setup a test cluster and deploy v2 there and do some tests?

How to submit a kfp pipeline to vertex manually:

Add this to your pipeline.py

from fondant.compiler import VertexCompiler

compiler = VertexCompiler()
compiler.compile(pipeline=pipeline, output_path="pipeline.json")

Invoke compilation: python pipeline.py

goto the vertex ui

Create new run, select the pipeline.json file

in de advanced options select the kfp service account

Released in 0.6.0.