Umbrella issue: Implement pipeline-aware function run workflows

There is significant change in "kpt fn run" workflows with introduction of pipeline construct. Following tasks need to be accomplished:

[ ] Implement imperative function run (kpt fn run ---)
[ ] Implement support for metafunctions
[ ] Utility to generate pipeline from functionConfigs in a pkg
[ ] Deprecate current workflow for declarative fn run

Imperative function run is now eval: https://kpt.dev/book/04-using-functions/02-imperative-function-execution
Regarding metafunctions, modification of Kptfiles, and generation of pipelines:
https://kpt.dev/book/04-using-functions/02-imperative-function-execution?id=mutate-meta-resources
Per-function filters are discussed in #2364. krmignore is discussed in #1733 and #517.
If Kptfile is not passed as part of the ResourceList by default, is it essentially like one of these other types of filters except that it's applied by default and disabled by --include-meta-resources? If --include-meta-resources is applied to kpt fn source, does it also need to be applied to kpt fn eval invocations that read from stdin? Is there a way to specify it in a declarative pipeline?
Also, it's unclear whether ConfigMaps and pseudo-resources used for function inputs for particular functions via configPath can be passed in the ResourceList to other functions:
https://kpt.dev/book/04-using-functions/01-declarative-function-execution
https://kpt.dev/book/04-using-functions/02-imperative-function-execution?id=mutate-meta-resources
Use cases that have come up include:

The ability for functions to generate inputs, such as ConfigMaps, to other functions, particularly of nested subpackages.
The ability to transform inputs to other functions, such as in the case of setter replacement in a pseudo-resource that's an input to a generator function.
The ability to generate Kptfiles for subpackages, which could be subsequently fetched.
The ability to enable or disable pipeline steps. (#2306)
The ability to arbitrarily transform any part of a package or even generate a package from scratch and write it via kpt fn sink.

At least the first two cases also have needed top-down preprocessing (preorder execution) prior to bottom-up rendering (post-order execution) during declarative execution.

cc @justinsb

Thanks for the detailed comment @bgrant0607 . This is helpful as we are beginning the design for supporting filtering in fn commands. (#2015 )
Will try to answer part of the comment here:

If Kptfile is not passed as part of the ResourceList by default, is it essentially like one of these other types of filters except that it's applied by default and disabled by --include-meta-resources?

this is fairly accurate in context of fn eval and fn source. We still need to rationalize this with fn render. Quick thought suggests that all the use-cases for processing meta-resources in render actually fits the use-cases for pre-processing step.

If --include-meta-resources is applied to kpt fn source, does it also need to be applied to kpt fn eval invocations that read from stdin?

I think both answers (yes, no) are possible in this case, but optimizing for the common CUJs should drive the answer. Quick thought suggests --include-meta-resources doesn't need to be applied to fn eval invocations reading from stdin because we can assume resources on stdin are already filtered (if one was using fn source or previous fn eval).

Is there a way to specify it in a declarative pipeline?

I think the need for this has a big overlap with pre-processing step requirements I think.
I need to think some more on the second part.

Kind of related, I'd like kpt fn render to be able to take a Kptfile with a pipeline from stdin.
Why? Because I always want to re-run render after other mutations in order to enforce invariants. I want to treat the pipeline like mutating + validating admission control.


Element cannot be closed / shutdown cleanly

In order for jest to exit properly, element needs to close all its activity properly.
This is not happening leading to the default jest warning:
Jest did not exit one second after the test run has completed.

This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.

I got the same issues when implement on azure database ledger since the connection of the database is still open and there is no method from the did method core to close the connection or terminate the ledger for the shutdown method

yes, I have struggled to exit the processes cleanly... perhaps explicit process.exit(0) is needed.

can you link to your source?

In the Azure SQL database ledger implement, I can close the database connection after the test script https://github.com/sekuid/sidetree.js/blob/main/packages/ledger-ms-sqldb/src/tests/AzureSqlDbLedger.test.ts
However, in the did method , I could not do it as there is no method to terminate the ledger properly as the database connection pool is still open. This is not an issue with the actual system as the backend service is support to reuse the connection from the connection pool. However, it will cause an issue during testing or shutting down the system.
https://github.com/sekuid/sidetree.js/blob/main/packages/did-method-atom/src/test/wallet.test.ts
Note: The did-method-atom is used Azure SQL database with ledger enabled (the test will use Ms SQL Server 2022) and Azure storage as the Content address storage  (test will used azurite as a storage emulator)
https://github.com/sekuid/sidetree.js/blob/main/docker-compose.yml

did-method-atom super cool!
So i am hearing we ned to expose a shutdown handler from the did method core package, is that right?
Something in here: https://github.com/transmute-industries/sidetree.js/blob/main/packages/did-method/src/Core.ts#L162

Yes, any function in the IBlockchain interface to terminate/shutdown the ledger e.g
 await this.versionManager.stop();

 await this.blockchain.stop();


Dart-Pad receives value from a previously run Future.

I was running a code sample as follows:
Future<void> fetchUserOrder() {
  // Imagine that this function is fetching user info from another service or database
  return Future.delayed(Duration(seconds: 3), () => print('Large Latte'));
}

void main() {
  fetchUserOrder();
  print('Fetching user order...');
}

What I noticed is that when I tap on 'Run' a couple of times after pasting the code above the output is similar to,
Fetching user order...
Large Latte
Large Latte
Large Latte

Shouldn't 'Large Latte' be printed only once considering every time I click 'Run' it is equivalent to program restarting?

It should be, and thanks for reporting this.
We've had occasional issues with DartPad producing incorrect output when the Run button is used in quick succession. There's a bug open for it at #644. I'm going to close this as a duplicate for now, but it's good to have a reminder that the problem still exists.


Can't use https

Greetings, I'm having difficulties using https. Currently I'm using http with no issues but whenever I enable https and start the service, I get:
● ntfy.service - ntfy server
     Loaded: loaded (/lib/systemd/system/ntfy.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2023-11-24 15:16:54 WAT; 35ms ago
    Process: 2120650 ExecStart=/usr/bin/ntfy serve --no-log-dates (code=exited, status=1/FAILURE)
   Main PID: 2120650 (code=exited, status=1/FAILURE)
        CPU: 151ms

here is the output to: sudo journalctl -xeu ntfy.service
Nov 24 15:16:54 egwfw systemd[1]: Started ntfy server.
░░ Subject: A start job for unit ntfy.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit ntfy.service has finished successfully.
░░
░░ The job identifier is 53014.
Nov 24 15:16:54 egwfw ntfy[2120650]: INFO Listening on :80[http] :44443[https], ntfy 2.7.0, log level is INFO (tag=startup)
Nov 24 15:16:54 egwfw ntfy[2120650]: FATAL listen tcp :80: bind: address already in use (exit_code=1)
Nov 24 15:16:54 egwfw ntfy[2120650]: listen tcp :80: bind: address already in use
Nov 24 15:16:54 egwfw systemd[1]: ntfy.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit ntfy.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Nov 24 15:16:54 egwfw systemd[1]: ntfy.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit ntfy.service has entered the 'failed' state with result 'exit-code'.
Nov 24 15:16:55 egwfw systemd[1]: ntfy.service: Scheduled restart job, restart counter is at 5.
░░ Subject: Automatic restarting of a unit has been scheduled
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ Automatic restarting of the unit ntfy.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
Nov 24 15:16:55 egwfw systemd[1]: Stopped ntfy server.
░░ Subject: A stop job for unit ntfy.service has finished
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A stop job for unit ntfy.service has finished.
░░
░░ The job identifier is 53114 and the job result is done.
Nov 24 15:16:55 egwfw systemd[1]: ntfy.service: Start request repeated too quickly.
Nov 24 15:16:55 egwfw systemd[1]: ntfy.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit ntfy.service has entered the 'failed' state with result 'exit-code'.
Nov 24 15:16:55 egwfw systemd[1]: Failed to start ntfy server.
░░ Subject: A start job for unit ntfy.service has failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit ntfy.service has finished with a failure.
░░
░░ The job identifier is 53114 and the job result is failed.

Here is my server.yml file:
# ntfy server config file
# server:
#   listen:
#     - port: 48800
#       protocol: http
#     - port: 44300
#       protocol: https
#       cert: /home/iomari/ssl-certificate/ntfy.csr
#       key: /home/iomari/ssl-certificate/ntfy.key
#
# Please refer to the documentation at https://ntfy.sh/docs/config/ for details.
# All options also support underscores (_) instead of dashes (-) to comply with the YAML spec.

# Public facing base URL of the service (e.g. https://ntfy.sh or https://ntfy.example.com)
#
# This setting is required for any of the following features:
# - attachments (to return a download URL)
# - e-mail sending (for the topic URL in the email footer)
# - iOS push notifications for self-hosted servers (to calculate the Firebase poll_request topic)
# - Matrix Push Gateway (to validate that the pushkey is correct)
#
base-url : "https://<IP_ADDRESS>"

# Listen address for the HTTP & HTTPS web server. If "listen-https" is set, you must also
# set "key-file" and "cert-file". Format: [<ip>]:<port>, e.g. "<IP_ADDRESS>:8080".
#
# To listen on all interfaces, you may omit the IP address, e.g. ":443".
# To disable HTTP, set "listen-http" to "-".
#
# listen-http: ":48880"
listen-https: ":44443"
key-file: /home/iomari/ssl-certificate/key.pem
cert-file: /home/iomari/ssl-certificate/cert.pem

# Listen on a Unix socket, e.g. /var/lib/ntfy/ntfy.sock
# This can be useful to avoid port issues on local systems, and to simplify permissions.
#
# listen-unix: <socket-path>
# listen-unix-mode: <linux permissions, e.g. 0700>

# Path to the private key & cert file for the HTTPS web server. Not used if "listen-https" is not set.
#
# key-file: <filename>
# cert-file: <filename>

# If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app.
# This is optional and only required to save battery when using the Android app.
#
# firebase-key-file: <filename>

# If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory.
# This allows for service restarts without losing messages in support of the since= parameter.
#
# The "cache-duration" parameter defines the duration for which messages will be buffered
# before they are deleted. This is required to support the "since=..." and "poll=1" parameter.
# To disable the cache entirely (on-disk/in-memory), set "cache-duration" to 0.
# The cache file is created automatically, provided that the correct permissions are set.
#
# The "cache-startup-queries" parameter allows you to run commands when the database is initialized,
# e.g. to enable WAL mode (see https://phiresky.github.io/blog/2020/sqlite-performance-tuning/)).
# Example:
#    cache-startup-queries: |
#       pragma journal_mode = WAL;
#       pragma synchronous = normal;
#       pragma temp_store = memory;
#       pragma busy_timeout = 15000;
#       vacuum;
#
# The "cache-batch-size" and "cache-batch-timeout" parameter allow enabling async batch writing
# of messages. If set, messages will be queued and written to the database in batches of the given
# size, or after the given timeout. This is only required for high volume servers.
#
# Debian/RPM package users:
#   Use /var/cache/ntfy/cache.db as cache file to avoid permission issues. The package
#   creates this folder for you.
#
# Check your permissions:
#   If you are running ntfy with systemd, make sure this cache file is owned by the
#   ntfy user and group by running: chown ntfy.ntfy <filename>.
#
# cache-file: <filename>
# cache-duration: "12h"
# cache-startup-queries:
# cache-batch-size: 0
# cache-batch-timeout: "0ms"

# If set, access to the ntfy server and API can be controlled on a granular level using
# the 'ntfy user' and 'ntfy access' commands. See the --help pages for details, or check the docs.
#
# - auth-file is the SQLite user/access database; it is created automatically if it doesn't already exist
# - auth-default-access defines the default/fallback access if no access control entry is found; it can be
#   set to "read-write" (default), "read-only", "write-only" or "deny-all".
# - auth-startup-queries allows you to run commands when the database is initialized, e.g. to enable
#   WAL mode. This is similar to cache-startup-queries. See above for details.
#
# Debian/RPM package users:
#   Use /var/lib/ntfy/user.db as user database to avoid permission issues. The package
#   creates this folder for you.
#
# Check your permissions:
#   If you are running ntfy with systemd, make sure this user database file is owned by the
#   ntfy user and group by running: chown ntfy.ntfy <filename>.
#
# auth-file: <filename>
# auth-default-access: "read-write"
# auth-startup-queries:

# If set, the X-Forwarded-For header is used to determine the visitor IP address
# instead of the remote address of the connection.
#
# WARNING: If you are behind a proxy, you must set this, otherwise all visitors are rate limited
#          as if they are one.
#
# behind-proxy: false

# If enabled, clients can attach files to notifications as attachments. Minimum settings to enable attachments
# are "attachment-cache-dir" and "base-url".
#
# - attachment-cache-dir is the cache directory for attached files
# - attachment-total-size-limit is the limit of the on-disk attachment cache directory (total size)
# - attachment-file-size-limit is the per-file attachment size limit (e.g. 300k, 2M, 100M)
# - attachment-expiry-duration is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h)
#
# attachment-cache-dir:
# attachment-total-size-limit: "5G"
# attachment-file-size-limit: "15M"
# attachment-expiry-duration: "3h"

# If enabled, allow outgoing e-mail notifications via the 'X-Email' header. If this header is set,
# messages will additionally be sent out as e-mail using an external SMTP server.
#
# As of today, only SMTP servers with plain text auth (or no auth at all), and STARTLS are supported.
# Please also refer to the rate limiting settings below (visitor-email-limit-burst & visitor-email-limit-burst).
#
# - smtp-sender-addr is the hostname:port of the SMTP server
# - smtp-sender-from is the e-mail address of the sender
# - smtp-sender-user/smtp-sender-pass are the username and password of the SMTP user (leave blank for no auth)
#
# smtp-sender-addr:
# smtp-sender-from:
# smtp-sender-user:
# smtp-sender-pass:

# If enabled, ntfy will launch a lightweight SMTP server for incoming messages. Once configured, users can send
# emails to a topic e-mail address to publish messages to a topic.
#
# - smtp-server-listen defines the IP address and port the SMTP server will listen on, e.g. :25 or <IP_ADDRESS>:25
# - smtp-server-domain is the e-mail domain, e.g. ntfy.sh
# - smtp-server-addr-prefix is an optional prefix for the e-mail addresses to prevent spam. If set to "ntfy-",
#   for instance, only e-mails to<EMAIL_ADDRESS>will be accepted. If this is not set, all emails to
#<EMAIL_ADDRESS>will be accepted (which may obviously be a spam problem).
#
# smtp-server-listen:
# smtp-server-domain:
# smtp-server-addr-prefix:

# Web Push support (background notifications for browsers)
#
# If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, users
# can enable background notifications in the web app. Once enabled, ntfy will forward published messages to the push
# endpoint, which will then forward it to the browser.
#
# You must configure web-push-public/private key, web-push-file, and web-push-email-address below to enable Web Push.
# Run "ntfy webpush keys" to generate the keys.
#
# - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890
# - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890
# - web-push-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db`
# - web-push-email-address is the admin email address send to the push provider, e.g<EMAIL_ADDRESS># - web-push-startup-queries is an optional list of queries to run on startup`
#
# web-push-public-key:
# web-push-private-key:
# web-push-file:
# web-push-email-address:
# web-push-startup-queries:

# If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header.
#
# - twilio-account is the Twilio account SID, e.g. AC12345beefbeef67890beefbeef122586
# - twilio-auth-token is the Twilio auth token, e.g. affebeef258625862586258625862586
# - twilio-phone-number is the outgoing phone number you purchased, e.g. +18775132586
# - twilio-verify-service is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586
#
# twilio-account:
# twilio-auth-token:
# twilio-phone-number:
# twilio-verify-service:

# Interval in which keepalive messages are sent to the client. This is to prevent
# intermediaries closing the connection for inactivity.
#
# Note that the Android app has a hardcoded timeout at 77s, so it should be less than that.
#
# keepalive-interval: "45s"

# Interval in which the manager prunes old messages, deletes topics
# and prints the stats.
#
# manager-interval: "1m"

# Defines topic names that are not allowed, because they are otherwise used. There are a few default topics
# that cannot be used (e.g. app, account, settings, ...). To extend the default list, define them here.
#
# Example:
#   disallowed-topics:
#     - about
#     - pricing
#     - contact
#
# disallowed-topics:

# Defines the root path of the web app, or disables the web app entirely.
#
# Can be any simple path, e.g. "/", "/app", or "/ntfy". For backwards-compatibility reasons,
# the values "app" (maps to "/"), "home" (maps to "/app"), or "disable" (maps to "") to disable
# the web app entirely.
#
# web-root: /

# Various feature flags used to control the web app, and API access, mainly around user and
# account management.
#
# - enable-signup allows users to sign up via the web app, or API
# - enable-login allows users to log in via the web app, or API
# - enable-reservations allows users to reserve topics (if their tier allows it)
#
# enable-signup: false
# enable-login: false
# enable-reservations: false

# Server URL of a Firebase/APNS-connected ntfy server (likely "https://ntfy.sh").
#
# iOS users:
#   If you use the iOS ntfy app, you MUST configure this to receive timely notifications. You'll like want this:
#   upstream-base-url: "https://ntfy.sh"
#
# If set, all incoming messages will publish a "poll_request" message to the configured upstream server, containing
# the message ID of the original message, instructing the iOS app to poll this server for the actual message contents.
# This is to prevent the upstream server and Firebase/APNS from being able to read the message.
#
# - upstream-base-url is the base URL of the upstream server. Should be "https://ntfy.sh".
# - upstream-access-token is the token used to authenticate with the upstream server. This is only required
#   if you exceed the upstream rate limits, or the uptream server requires authentication.
#
# upstream-base-url:
# upstream-access-token:

# Rate limiting: Total number of topics before the server rejects new topics.
#
# global-topic-limit: 15000

# Rate limiting: Number of subscriptions per visitor (IP address)
#
# visitor-subscription-limit: 30

# Rate limiting: Allowed GET/PUT/POST requests per second, per visitor:
# - visitor-request-limit-burst is the initial bucket of requests each visitor has
# - visitor-request-limit-replenish is the rate at which the bucket is refilled
# - visitor-request-limit-exempt-hosts is a comma-separated list of hostnames, IPs or CIDRs to be
#   exempt from request rate limiting. Hostnames are resolved at the time the server is started.
#   Example: "<IP_ADDRESS>,ntfy.example.com,<IP_ADDRESS>/24"
#
# visitor-request-limit-burst: 60
# visitor-request-limit-replenish: "5s"
# visitor-request-limit-exempt-hosts: ""

# Rate limiting: Hard daily limit of messages per visitor and day. The limit is reset
# every day at midnight UTC. If the limit is not set (or set to zero), the request
# limit (see above) governs the upper limit.
#
# visitor-message-daily-limit: 0

# Rate limiting: Allowed emails per visitor:
# - visitor-email-limit-burst is the initial bucket of emails each visitor has
# - visitor-email-limit-replenish is the rate at which the bucket is refilled
#
# visitor-email-limit-burst: 16
# visitor-email-limit-replenish: "1h"

# Rate limiting: Attachment size and bandwidth limits per visitor:
# - visitor-attachment-total-size-limit is the total storage limit used for attachments per visitor
# - visitor-attachment-daily-bandwidth-limit is the total daily attachment download/upload traffic limit per visitor
#
# visitor-attachment-total-size-limit: "100M"
# visitor-attachment-daily-bandwidth-limit: "500M"

# Rate limiting: Enable subscriber-based rate limiting (mostly used for UnifiedPush)
#
# If enabled, subscribers may opt to have published messages counted against their own rate limits, as opposed
# to the publisher's rate limits. This is especially useful to increase the amount of messages that high-volume
# publishers (e.g. Matrix/Mastodon servers) are allowed to send.
#
# Once enabled, a client may send a "Rate-Topics: <topic1>,<topic2>,..." header when subscribing to topics via
# HTTP stream, or websockets, thereby registering itself as the "rate visitor", i.e. the visitor whose rate limits
# to use when publishing on this topic. Note: Setting the rate visitor requires READ-WRITE permission on the topic.
#
# UnifiedPush only: If this setting is enabled, publishing to UnifiedPush topics will lead to a HTTP 507 response if
# no "rate visitor" has been previously registered. This is to avoid burning the publisher's "visitor-message-daily-limit".
#
# visitor-subscriber-rate-limiting: false

# Payments integration via Stripe
#
# - stripe-secret-key is the key used for the Stripe API communication. Setting this values
#   enables payments in the ntfy web app (e.g. Upgrade dialog). See https://dashboard.stripe.com/apikeys.
# - stripe-webhook-key is the key required to validate the authenticity of incoming webhooks from Stripe.
#   Webhooks are essential up keep the local database in sync with the payment provider. See https://dashboard.stripe.com/webhooks.
# - billing-contact is an email address or website displayed in the "Upgrade tier" dialog to let people reach
#   out with billing questions. If unset, nothing will be displayed.
#
# stripe-secret-key:
# stripe-webhook-key:
# billing-contact:

# Metrics
#
# ntfy can expose Prometheus-style metrics via a /metrics endpoint, or on a dedicated listen IP/port.
# Metrics may be considered sensitive information, so before you enable them, be sure you know what you are
# doing, and/or secure access to the endpoint in your reverse proxy.
#
# - enable-metrics enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket)
# - metrics-listen-http exposes the metrics endpoint via a dedicated [IP]:port. If set, this option implicitly
#   enables metrics as well, e.g. "<IP_ADDRESS>:9090" or ":9090"
#
# enable-metrics: false
# metrics-listen-http:

# Profiling
#
# ntfy can expose Go's net/http/pprof endpoints to support profiling of the ntfy server. If enabled, ntfy will listen
# on a dedicated listen IP/port, which can be accessed via the web browser on http://<ip>:<port>/debug/pprof/.
# This can be helpful to expose bottlenecks, and visualize call flows. See https://pkg.go.dev/net/http/pprof for details.
#
# profile-listen-http:

# Logging options
#
# By default, ntfy logs to the console (stderr), with an "info" log level, and in a human-readable text format.
# ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular
# log level overrides for easier debugging. Some options (log-level and log-level-overrides) can be hot reloaded
# by calling "kill -HUP $pid" or "systemctl reload ntfy".
#
# - log-format defines the output format, can be "text" (default) or "json"
# - log-file is a filename to write logs to. If this is not set, ntfy logs to stderr.
# - log-level defines the default log level, can be one of "trace", "debug", "info" (default), "warn" or "error".
#   Be aware that "debug" (and particularly "trace") can be VERY CHATTY. Only turn them on briefly for debugging purposes.
# - log-level-overrides lets you override the log level if certain fields match. This is incredibly powerful
#   for debugging certain parts of the system (e.g. only the account management, or only a certain visitor).
#   This is an array of strings in the format:
#      - "field=value -> level" to match a value exactly, e.g. "tag=manager -> trace"
#      - "field -> level" to match any value, e.g. "time_taken_ms -> debug"
#   Warning: Using log-level-overrides has a performance penalty. Only use it for temporary debugging.
#
# Check your permissions:
#   If you are running ntfy with systemd, make sure this log file is owned by the
#   ntfy user and group by running: chown ntfy.ntfy <filename>.
#
# Example (good for production):
#   log-level: info
#   log-format: json
#   log-file: /var/log/ntfy.log
#
# Example level overrides (for debugging, only use temporarily):
#   log-level-overrides:
#      - "tag=manager -> trace"
#      - "visitor_ip=<IP_ADDRESS> -> debug"
#      - "time_taken_ms -> debug"
#
# log-level: info
# log-level-overrides:
# log-format: text
# log-file:

Duplicate of https://github.com/binwiederhier/ntfy/issues/958#issuecomment-1823295059
As mentioned on Discord, to not listen on HTTP, you need to set listen-http: "".
Please do not file "bugs" for things that are clearly just setup problems.


Added a prop to be able to crop the item filter on the right or on the left

Codecov Report

Merging #70 into master will not change coverage.

@@          Coverage Diff          @@
##           master    #70   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          80     80
  Lines        1640   1649    +9
  Branches      321    325    +4
=====================================
+ Hits         1640   1649    +9

Impacted Files
Coverage Δ

src/components/actions/ActionBar.tsx
100% <100%> (ø)
:white_check_mark:

src/components/actions/filters/ItemFilter.tsx
100% <100%> (ø)
:white_check_mark:

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 b506057...10581f5. Read the comment docs.

in what case would you use a left crop? are we planning to use it? that's nice though, just wondering in what circumstances it would be utilized 😄

@MichelML actually in the log browser, we will be cropping on the left to see the end of the uri.


Create foxtrapp.txt

@VasyaLozan I am sorry, the request is incorrect, path file must start with lib/domains/. I have to close the request without merging. Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information. Thank you for the understanding!


Fix parent/child process synchronization in two ruby tests

This fixes flakiness of two ruby tests which are failing frequently on https://github.com/grpc/grpc/pull/23620, but for which flakiness has present for a while (this appears to be the cause of b/161720824).
src/ruby/end2end/channel_closing_driver.rb can flake because the child process's server might not be ready after the parent process's initial 3 second sleep. So the shutdown RPC from parent to child can fail. This PR fixes things by retrying this RPC, with a timeout (the RPC itself is not the thing under test, so retrying the RPC doesn't affect this test's signal).
src/ruby/end2end/sig_int_during_channel_watch_driver.rb can flake because the child process might not have set its trap handler for SIGINT after the parent process's initial 3 second sleep is done, so when the parent process delivers SIGINT, the child process exits with that signal, instead of a clean exit. This PR fixes things by waiting until the child process has set the trap handler via an RPC, before sending SIGINT to it.
This PR also cleans up some duplicate in related tests.

interop cloud to prod: https://github.com/grpc/grpc/issues/23055


/* comments */ are sometimes formatted away in function declarations

fn x<T: Clone>/* pls don't format me away */(x: T) {}

fn x/* pls don't format me away */<T: Clone>(x: T) {}

fn /* pls don't format me away */x<T: Clone>(x: T) {}

All of these examples are formatted to
fn x<T: Clone>(x: T) {}

but I expect the comment to stay.

Another example of where rustfmt isn't looking for comments #4905


Unrecognized options

I get this error trying to run cache:clear

php bin/console cache:clear
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
Unrecognized options "level1_fallback, browser_adaptive, block-all-mixed-content" under "nelmio_security.csp.enforce"

Symfony version: 3.0.6
NelmioSecurityBundle version: 1.10.0
Config file:
nelmio_security:
    # prevents framing of the entire site
    clickjacking:
        paths:
            '^/.*': DENY
    # disables content type sniffing for script resources
    content_type:
        nosniff: true

    # Forces Microsoft's XSS-Protection with
    # its block mode
    xss_protection:
        enabled: true
        mode_block: true
    csp:
        #report_logger_service: logger
        hosts: []
        content_types: []
        enforce:
            # see full description below
            level1_fallback: true
            # Only send directives supported by the browser, defaults to false
            # This is a port of https://github.com/twitter/secureheaders/blob/83a564a235c8be1a8a3901373dbc769da32f6ed7/lib/secure_headers/headers/policy_management.rb#L97
            browser_adaptive: false
            report-uri: ['/nelmio/csp/report']
            default-src: [ 'self' ]
            #frame-src: [ 'https://www.youtube.com' ]
            script-src:
                - 'self'
                - maps.googlemaps.com
            img-src:
                - 'self'
                - maps.googlemaps.com
            block-all-mixed-content: false # Default to false, blocks http content over https transport

Is it a config problem?

Hello,
you're reading the configuration for the master branch (aka 2.0), please find the documentation for version 1.10.0 here https://github.com/nelmio/NelmioSecurityBundle/tree/4be243f1fc85ff85f10aadcf88c8c11ba2096cd9#maximum-security-configuration-read-on-for-detailed-recommendations

Thank you!


Unexpected error: gzip: stdin: unexpected end of file

We have encountered with an unexpected error as below (resolved after rerunning the failed job). We are now using<EMAIL_ADDRESS>Do you guys have any idea about why it has been happened or how to prevent this misbehavior? Thanks in advance.
+ case latest-release in
++ curl -s -u username:*** https://api.github.com/repos/google/go-containerregistry/releases/latest
++ jq -r .tag_name
+ tag=v0.13.0
+ os=Linux
+ [[ Linux == \m\a\c\O\S ]]
+ [[ ! -z v0.13.0 ]]
+ echo 'Installing crane @ v0.13.0 for Linux'
+ curl -fsL https://github.com/google/go-containerregistry/releases/download/v0.13.0/go-containerregistry_Linux_x86_64.tar.gz
Installing crane @ v0.13.0 for Linux
+ sudo tar xzf - -C /usr/local/bin crane

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now

I've seen this as well recently. I believe this is due to an error when GitHub serves the content. If the stream is broken during download, the file will be incomplete, and gzipping it fails due to reaching the end of the file unexpectedly.
It's possible the installer action could detect this better and retry the download, but it's pretty tough to test since GitHub usually serves the content without any issue.
If you're seeing this repeatedly and ideally reproducibly, that would be helpful to know.

Then rerunning would be the solution for now. Thank you so much for your answer.


Notification preferences

Codecov Report

Merging #6 into master will increase coverage by 0.6%.
The diff coverage is 27.27%.

@@            Coverage Diff            @@
##           master       #6     +/-   ##
=========================================
+ Coverage   46.53%   47.14%   +0.6%
=========================================
  Files          18       18
  Lines         260      263      +3
=========================================
+ Hits          121      124      +3
  Misses        139      139

Impacted Files
Coverage Δ

childsafe/web/views.py
0% <0%> (ø)
:arrow_up:

childsafe/web/models.py
94.73% <100%> (+0.98%)
:arrow_up:

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 8c5085d...118030c. Read the comment docs.


Whale account redirect, to a new VIP form fill in page

Add a referral link into verify email address - email
The user is redirected to a “success page” and is presented with a form to complete which is embedded to the portal page with 3 sections (multiple choice Qs with checkboxes). At the top of this page is a short paragraph from Domenic thomas (CEO)
“Dear Worbli User. Because you're receiving a large amount of WBI from our Sharedrop, we want to invite you to attend an exclusive seminar and AMA with me and our team. We also want to invite you to learn more about what were building, and what you would like to see built on WORBLI that will benefit you.
This form upon completion is emailed to Sean/John to review and follow up.
Section 1: Exclusive educational seminar (RSVP... YES / NO / Maybe - please still send me the invite)
Section 2: dApp Menu (Tick which dApp you are interested in learning more about or supporting. Select as many as you want. There must be a “None of the above” option there too
Section 3: what dApps would you like to see built on WORBLI? (Textbox for user to complete)
Section 4: I want to verify my account to claim my sharedrop (YES / NO / Undecided)
CALL TO ACTION BUTTON = Submit
After completing this form:
If the user answered NO to any of the questions we must be careful how to respond.
Surveys should be reviewed and planned accordingly.
Summary - the user will receive an email from Domenic and Sean as per below.
*This is an exclusive user journey for accounts with more than 200,000 EOS.

Perhaps we should add a section:
Section 5: This account is an exchange account holding tokens on behalf of other users (YES/NO)

                                                                                Good point. I will add it as another issue top priority,  hope we get to it in time.Thanks,                                                                                Sent from my BlackBerry 10 smartphone.                                                                                From: tkaraivanovSent: Friday, 26 October, 2018 8:02 PMTo: worbli/PortalFrontEndReply To: worbli/PortalFrontEndCc: Citi3enKane; AuthorSubject: Re: [worbli/PortalFrontEnd] Whale account redirect, to a new VIP form fill in page (#8)Perhaps we should add a section:

Section 5: This account is an exchange account holding tokens on behalf of other users (YES/NO)
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/worbli/PortalFrontEnd","title":"worbli/PortalFrontEnd","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/worbli/PortalFrontEnd"}},"updates":{"snippets":[{"icon":"PERSON","message":"@tkaraivanov in #8: Perhaps we should add a section:\r\nSection 5: This account is an exchange account holding tokens on behalf of other users (YES/NO)"}],"action":{"name":"View Issue","url":"https://github.com/worbli/PortalFrontEnd/issues/8#issuecomment-433384936"}}}
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/worbli/PortalFrontEnd/issues/8#issuecomment-433384936",
"url": "https://github.com/worbli/PortalFrontEnd/issues/8#issuecomment-433384936",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [worbli/PortalFrontEnd] Whale account redirect, to a new VIP form fill in page (#8)",
"sections": [
{
"text": "",
"activityTitle": "tkaraivanov",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@tkaraivanov",
"facts": [
]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n"commandName": "IssueComment",\n"repositoryFullName": "worbli/PortalFrontEnd",\n"issueId": 8,\n"IssueComment": "{{IssueComment.value}}"\n}"
}
]
},
{
"name": "Close issue",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n"commandName": "IssueClose",\n"repositoryFullName": "worbli/PortalFrontEnd",\n"issueId": 8\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/worbli/PortalFrontEnd/issues/8#issuecomment-433384936"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n"commandName": "MuteNotification",\n"threadId": 399066826\n}"
}
],
"themeColor": "26292E"
}
]


[Windows] Schema leads to "error: Unexpected token. Expected one of: string interpolation start" on generate

This schema.prisma:
   generator client {
     provider = "prisma-client-js"
     output   = "C:\Users\Jan\Documents\prisma-test-utils-automation\dbs\chinook\node_modules\prisma-client"
   }

leads to this error:
C:\Users\Jan\Documents\prisma-test-utils-automation (master -> origin<EMAIL_ADDRESS>λ yarn prisma2 generate --schema=C:\\Users\\Jan\\Documents\\prisma-test-utils-automation\\dbs\\chinook\\schema.prisma
yarn run v1.21.1
$ C:\Users\Jan\Documents\prisma-test-utils-automation\node_modules\.bin\prisma2 generate --schema=C:\\Users\\Jan\\Documents\\prisma-test-utils-automation\\dbs\\chinook\\schema.prisma
Error: Schema parsing
error: Unexpected token. Expected one of: string interpolation start
  -->  schema.prisma:4
   |
 3 |      provider = "prisma-client-js"
 4 |      output   = "C:\Users\Jan\Documents\prisma-test-utils-automation\dbs\chinook\node_modules\prisma-client"
   |                    ^ Unexpected token.
   |

Validation Error Count: 1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

(These paths are a bit unnatural, but are generated by prisma-test-utils-automation and should in theory just work)

@janpio are we sill using test utils?

Yes, not really relevant to the problem here though. The Windows style path was the problem.

This is still relevant in 2.22


Manually enter the "Root of the repository"

As disused in this thread on the forums, we are using several sub repos in the /Content/ folder.
Those sub repos are ignored from the main repo.
That all works well in unreal and also in git, however I lost the ability to diff the changes in those sub repos.
I suspect that I was able to define the "root of the repository" to be one of those sub repos it'd magically work?
There might be complications involved with the feature, but it would be super nice to be able to hop from one repo to another, even if that involves manually writing the path of the repo.

Yes sure, but as I said previously, this is not a priority for me right now, and it adds quite a bit of complexity

@SRombauts
I'm trying to add this feature myself, however when editing SGitSourceControlSettings.cpp upon build my changes seem to be deleted unless I'm imaging things ;)). It seems that this file is overridden by the version from the Unreal source code. Could you please advise? Is this something that happens by design? Wrong configuration on my part?
Also, I would be happy to hear more about the complications that I'm going to encounter if you thought about that...
Thanks in advance!
Yan

@SRombauts
I Created a pull request with this feature.
https://github.com/SRombauts/UE4GitPlugin/pull/138


fix for js-controller 2.0

Fix subscription to defined topics on adapter start.

It is no more required, because of https://github.com/Pmant/ioBroker.mqtt-client/pull/19

#19 still does not work, unfortunately.

MQTT version 3.0.0 does not connect to mosquitto 1.6 (latest). It states connected but does not receive any topics. Adapted should works fine with MQTT 2.18.0
Problem with adapter restart still not resolved in this merge.

I can start and connect adapter. Which errors do you have?

Error 1:
Adapter stops right after install:
![image](https://user-images.githubusercontent.com/40002726/66804012-069b0b80-ef2a-11e9-9c0c-e9cc5827fe9f.png
Error 2:
When I press adapter restart button it
shuts down and started:

but then killed again:

(it is exactly the same error that was in previous code of adapter)
...try to push restart couple of times and you will see.
Error 3:
Current version does not subscribes to topics..
had a quick look at code:
a) in onConnect, subscribe function called with topics object as first arg:

but the fuction itselfs expects adapter as first arg:

(but even if adapter added to the call, it still does not return callback at _client.subscribe... )
Error 4 (probably):

Is it correct to have 'includes(id)' here? Isn't it returns true/false and not position?  maybe indexOf?
That's all a can say now. Probably there are other problems in code after it was completely rewritten, but, sorry, have no time to get deeper today.
@GermanBluefox , as you said in your message above - we can start and connect adapter... and that's all it can't do now... No topics received.. and restart is still borken. :)


can't see the number of people detected

Hi,
I think you did a great work  from TI's software. It will help me a lot. Thank you so much!
Just a question. I want to use your code to realize all the functions of matlab code provided by Texas Instruments. Both of showing point cloud and showing how many people are there. This peopleCountingDemo.py  can only achieve show a point cloud,can't show how many people are there, and which point cloud is a person. Can you give me some advice to achieve that or another demo?  cause I am a new learner, it's really difficult for me,I really appreciate your open-source spirit and help!
Qsing

Hello Qsing,
Thank you for your message.
First of all, if you want to know the number of people, you can print the numTargetPoints variable. I have modified the code to print the number of detected targets if you uncomment the lines 353-357 and comment the lines 359-361, like this:
if targetDetected:
        #print(targetObj)
        print(targetObj["numTargets"])
        x = -targetObj["posX"]
        y = targetObj["posY"]
#if dataOk:
        #x = -pointObj["range"]*np.sin(pointObj["azimuth"])
        #y = pointObj["range"]*np.cos(pointObj["azimuth"])

With this modifications, you will plot the position of the detected targets (people) instead of the raw point cloud and it will print the number of people in the console. If you want to continue plotting the raw point cloud data and print only the number of people, then you can add print(numTargetPoints) in line 261 and it will print the number of detected people.
I hope this answer your question. Also, if you check targetObj dictionary, it stores other information like the position of the people or their velocity.
Let me know if you have more questions,
Ibai

Hi! Bro
It can really works！
And i want to know that if there are any solution  to make a circle of the person detected instead of some point  cloud , like the  picture Ti's matlab code achieveed i send to you yesterday

Hello,
Sorry for the late response.
I have modified the code to plot both the radar point cloud (points) as weel as the position of the targets (square). To generate a plot like the one in Matlab with a bigger circle, you will have explore the  pyqtgrapgh to see if it is possible.
Also, regarding different colors for each person, you can check the last example in this documentation. In that case, you would have to use the targetObj ["targetId"] variable to know the id of each person detected.
Let me know if you have more questions,
Ibai


Preserve identity of unbundled deps

Fix #4102

interesting. I didn't know you could use __import__ without an assignment.


RDM-4402 Add endpoint to fetch all latest case type references.

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/RDM-4402
Change description
Add endpoint to retrieve all latest case types.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Codecov Report

Merging #360 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #360      +/-   ##
==========================================
+ Coverage    89.8%   89.81%   +<.01%
==========================================
  Files         335      335
  Lines        6307     6313       +6
  Branches      413      413
==========================================
+ Hits         5664     5670       +6
  Misses        559      559
  Partials       84       84

Impacted Files
Coverage Δ

...cd/definition/store/repository/QueryConstants.java
0% <ø> (ø)
:arrow_up:

...e/domain/service/casetype/CaseTypeServiceImpl.java
96.15% <100%> (+0.4%)
:arrow_up:

.../store/rest/endpoint/CaseDefinitionController.java
100% <100%> (ø)
:arrow_up:

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 5450836...905bbeb. Read the comment docs.


Typescript SDK

开发Typescript SDK
此issue用来追踪项目状态，见https://github.com/orgs/InteractivePlus/projects/5

Waiting for Code Review & Testing


TF Provider Error: mismatch between struct and object: Struct defines fields not found in object: format.

I'm getting an error with the https://registry.terraform.io/providers/port-labs/port-labs/latest/docs/resources/port_action#approval_webhook_notification option.

An unexpected error was encountered trying to convert tftypes.Value into action.ApprovalWebhookNotificationModel. This is always an error in the provider. Please report the following to the provider developer:
mismatch between struct and object: Struct defines fields not found in object: format.

I've confirmed that the secret from google_secret_manager_secret_version.secret_data is OK.

I can also repro this by adding an action in TF, use ClickOps to edit the action with webhook approval stuff, then trigger a new plan in TF after the drift has occurred.

Thanks @tcaddy, I'll open a bug in our internal ticketing to keep track of this and we'll update when it is resolved

Hey @tcaddy, the fix is available in version 1.9.1

I can confirm that this has fixed my issue.  However I'll be opening another issue soon for the next problem I am facing with the TF provider regarding the approval_webhook_notification option on the port_action resource


FIRESTORE INTERNAL ASSERTION FAILED crash

[READ] For Firebase Unity SDK issues, please report to Firebase Unity open-source
Once you've read this section and determined that your issue is appropriate for this repository, please delete this section.
[REQUIRED] Please fill in the following fields:

Unity editor version: 2021.1
Firebase Unity SDK version: 8.8.0
Source you installed the SDK: _____ (.unitypackage or Unity Package Manager)
Problematic Firebase Component: Firestore
Other Firebase Components in use: _____ (Auth, Database, etc.)
Additional SDKs you are using:AdMob (Facebook, AdMob, etc.)
Platform you are using the Unity editor on: Windows (Mac, Windows, or Linux)
Platform you are targeting: iOS(iOS, Android, and/or desktop)
Scripting Runtime: _____ (Mono, and/or IL2CPP)

[REQUIRED] Please describe the issue here:
'm trying to run the following code in my app. Unity's editor crashes when running it. And on the iPhone the app freezes. What am I doing wrong? Firebase SDK 8.8.0.
Error- ERROR: FIRESTORE INTERNAL ASSERTION FAILED: z:\build\work\006fabbe3c788f8159e582ced9f367dd4f3a\google3\third_party\firebase\ios\Releases\FirebaseFirestore\core\src\local\leveldb_transaction.cc(76) void _cdecl firebase::firestore::local::LevelDbTransaction::Iterator::Seek(const class std::basic_string<char,struct std::char_traits,class std::allocator > &): leveldb iterator reported an error: Corruption: corrupted compressed block contents (expected db_iter->status().ok())
Steps to reproduce:
My code is-
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
DocumentReference docRef = db.Collection("posts").Document("656");
Dictionary<string, object> uuu = new Dictionary<string, object>
{
{ "text", "hello" }
};
docRef.SetAsync(uuu);
}
// TODO(you): code here to reproduce the problem

Closing the issue-  I reinstalled the SDK (updated to 8.10)

This was a known issue with "Snappy" compression support, and was fixed recently (Googlers see b/227782613). I didn't realize we actually released the bug though. In any case, it's definitely fixed now. See https://github.com/firebase/firebase-cpp-sdk/pull/885 for details.


[ART-544] (part 1 of 4) Config tox to run flake and unit tests

First step towards running tox on Travis.
Related ticket: https://jira.coreos.com/browse/ART-544

/lgtm


chore(clustering): add cluster compat logic for wasm

Summary
This adds basic cluster compatibility checks for wasm filters. The logic is similar to how plugin checks work today. That is, if a wasm filter is present on the control plane but not on the data plane, config updates will not be sent to the data plane, and the control plane will set a (new) sync status for the data plane accordingly.
This is accomplished by adding a new filters attribute to the basic_info payload that is sent by the data plane when initiating a connection to the control plane. The filters attribute is a map of strings to objects with a single name attribute:
{
  "my-filter": {
    "name": "my-filter",
  },
  "my-other-filter": {
    "name": "my-other-filter",
  }
}

Using a map instead of an array was done for convenience of member lookup (since we would probably convert the array to a map anyways), but I get that it looks a little silly/redundant in its current form. Open to changing this if there are objections.
Down the road we can potentially come up with some scheme for more granular checks (i.e. a version or checksum field), but right now we just check if a filter is present or absent.

Checklist

[x] The Pull Request has tests
[ ] ~There's an entry in the CHANGELOG~
[ ] ~There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com~

Issue reference
KAG-499

I've rebased onto feat/wasmx, but github is being github.

I miss a version field

Yeah, I hope the proxy-wasm spec will have an answer for this at some point. We could add one now, but it would be arbitrary and user-defined (which might be okay, but... idk).
One temporary approach might be to put the version number in the filter filename (my_filter_01_03_05.wasm). This'll be something to design around in the future when we want to make this feature more robust. I also wish we could just parse the config updates and decide on-the-fly if they're valid ("this data-plane is missing filter XYZ, but that's okay because it's not being used anywhere in my config"), but that would just be a big code change right now :crying_cat_face:

That PDK test failure seems flaky/unrelated. It has passed on the second try.


Tests

In this branch we were able to:
✅ Setup and install all needed dependencies for testing.
✅ Add unit tests for all major components.
✅ Make minor adjustments to login & signup pages.

Approved 🟢
Hi @Thoth1111

Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

Details paged looks amazing ✔
No linter errors  ✔
Home page responsive in Ipad view  ✔
All the functionality is working  ✔
Slider overlap has been fixed  ✔
Cool at all 😄

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you consider them as they can improve your code. Some of them were simply missed by the previous reviewer, and addressing them will improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Remember to tag me(@MosDevx ) in your question so I can receive the notification.

As described in the Code reviews limits policy, you have a limited number of reviews per project (check the exact number in your Dashboard). If you think the code review was unfair, you can request a second opinion using this form.


Show Selected Branch without other branches from merges

When showing only the selected branch and a merge happened also the other branch is then shown in the commit list. In this case it is difficult to see the own created commit.
This is usefull especially for really large repositories.

https://github.com/Murmele/Gittyup/blob/master/src/git/RevWalk.cpp#L66-L128


Direct plugin-reader selection by extension

🚀 Feature
It should be possible, from the gui and from code, for a user to say "I always want files with this extension to be opened with this plugin".  This is different than the plugin call order, Since you may want plugin A to "generally have priority", but plugin B to get to jump to the front for a specific extension.  In the case where both A and B read that extension, this isn't currently possible (except to use viewer.open(..., plugin='B') each time).
Shouldn't be too hard to implement.  We need a map of extension to plugin name somewhere (I guess on the plugin manager is the obvious place)... And then need to intercept the plugin selection loop in plugins.io.read_data_with_plugins

The core API functionality needed for this was added in #2695, now it needs to be exposed in the UI

@liaprins-czi this will be a good candidate for your new design in take process - just mentioning now so we remember to use your in-take template once it is added!!

Sounds good, thanks!
On Mon, Aug 9, 2021 at 2:11 PM Nicholas Sofroniew @.***>
wrote:

@liaprins-czi https://github.com/liaprins-czi this will be a good
candidate for your new design in take process - just mentioning now so we
remember to use your in-take template once it is added!!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/napari/napari/issues/2686#issuecomment-895552090, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMWPDSFCPAUU3RVU6X6IQ4TT4A76PANCNFSM44RGTVXQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
Lia Prins
Senior Data Visualization Designer
(650) 422-1750
chanzuckerberg.com

I'm late to the party here, but just wanted to comment that in microscopy, in quite a few cases, file extension alone is insufficient to evaluate which plugin should be used for a particular file. Especially for .tiff (but not limited to .tiff—there is also .obf, .h5, and others), there are a variety of variants that all share this extension but each have special, differently represented metadata internally.
The way the Bio-Formats and SCIFIO projects solve this is for each format plugin to have two different "checking" modes: one that is only allowed to reason about the file based on its file path, and another which is allowed to perform random-access byte reading on the file's data itself.
Internally, there is also the idea of "suffix sufficient" and "suffix necessary" in the format plugin base classes to ease implementation of common file reader patterns, since usually, one of these four patterns (True or False for each of those two concepts) is enough to define what sort of behavior needs to occur. It may also be useful here, for the file format checking operation, to differentiate between not only "Yes, I can handle this file" versus "No, I cannot handle this file", but also "From the information you gave me, I do not know if this file is one of mine or not"—a case that occurs when the suffix is not sufficient to know whether the file in question is in fact the format that that plugin handles.
Sorry to complexify matters here, but I would strongly suggest not to limit your architecture to a fully file-suffix-based mechanism. I think napari should have at least some kind of secondary fallback for cases like .tiff that could end up needing handling by a variety of different format plugins. Either that, or each file-extension-based plugin will need to be enhanced by hand whenever a new format variant emerges with that extension.
Have a look at the SCIFIO paper if you haven't already, which keeps the various steps in parsing a file format well-separated.

Especially for .tiff (but not limited to .tiff—there is also .obf, .h5, and others), there are a variety of variants that all share this extension but each have special, differently represented metadata internally.

most of the .tiff could be reader with one plugin, For example, tifffile allow to parse of most of the metadata native (like Icy, or Imagej with bioformats). I prefer to push to have one plugin that could handle all tiff files than have multiple and users need to remember which file use for which tiff.
The big problem with .h5 is that it is an arbitrary data container. You could store in its anything. Even not only images. I prefer the way of Chimera that use .h5 but uses the custom extension .cmap, but it may introduce a collision of format names from different tools.

most of the .tiff could be reader with one plugin

It's doable, but be aware that Bio-Formats supports more than 30 flavors of TIFF with extension .tif/.tiff. It would be a big plugin!
In case it's interesting, here is a breakdown of all file extensions recognized by more than one Bio-Formats format:
List of file extensions by format count

Count
Extension

2
cfg

2
csv

2
eps

2
epsi

2
htd

2
ics

2
ids

2
inf

2
jpe

2
nd2

2
ome

2
ome.xml

2
rec

2
scn

2
wlz

3
dat

3
jpeg

3
raw

3
txt

4
jp2

4
jpg

5
hdr

6
img

8
xml

23
tiff

30
tif

And the hacky script that generated this table:
git clone<EMAIL_ADDRESS>--depth 1
cd bioformats
git grep -A1 -h 'super.*new String\[\].*' | grep '});' | sed 's/.*new String..//' | tr ',' '\n' | sed 's/[{});" ]//g' | sort | uniq -c | sort -n | sed 's/^ *\([0-9]*\) */\1 | /'

users need to remember which file use for which tiff.

I definitely agree that users should not need to know or care. The I/O plugins must be responsible for figuring out which formats are which, without the user specifying it.


Binding Secret Generation Extensions

I propose to convert the "Binding Secret Generation Strategies'' extension to three extensions.  The first one based on OLM x-descriptors, the second one based on custom resource definition annotations, and the third one based on custom resource annotations.
These extensions can follow the pattern of ProvisionedService duck type as described in issue #145.
apiVersion: mapping.service.binding/v1alpha2
kind: XDescriptorsSecretGenerator
spec:
  type: <optional-type-value>
  provider: <optional-provider-value>
  service:
    apiVersion: com.example/v1alpha1
    kind: AccountService
    name: prod-account-service
status:
  binding:
    name: <generated-secret-resource>

apiVersion: mapping.service.binding/v1alpha2
kind: CustomResourceDefinitionSecretGenerator
spec:
  type: <optional-type-value>
  provider: <optional-provider-value>
  service:
    apiVersion: com.example/v1alpha1
    kind: AccountService
    name: prod-account-service
status:
  binding:
    name: <generated-secret-resource>

apiVersion: mapping.service.binding/v1alpha2
kind: CustomResourceSecretGenerator
spec:
  type: <optional-type-value>
  provider: <optional-provider-value>
  service:
    apiVersion: com.example/v1alpha1
    kind: AccountService
    name: prod-account-service
status:
  binding:
    name: <generated-secret-resource>

Since these are ProvisionedService conforming resources, all the implementation of the core-spec will be compatible.

@baijum What is the benefit of this proposal?

What is the benefit of this proposal?

The current extension expects the ServiceBinding reconciler to act upon the x-descriptors or annotations.  That makes the extension tied to the implementation. With the proposed new extensions, the secret generation logic can be implemented by separate reconcilers. For example, if an organization wants to implement these extensions, it can easily integrate with the other existing implementations.  This also makes it easy to mix and match core implementation and extensions. Please read issue #145 for more details.

If CRD proliferation is a concern, we could go for a single CRD with the .spec.category attribute.
apiVersion: mapping.service.binding/v1alpha2
kind: SecretGenerator
spec:
  category: <Xdescriptor | CustomResourceDefinition | CustomResource>
  type: <optional-type-value>
  provider: <optional-provider-value>
status:
  binding:
    name: <generated-secret-resource>

CRD proliferation

This is definitely a concern, I like what you've proposed to address this.
Question, who would be creating/providing this CR ?

The one who connects the application to the service ( probably the application author ), Or
The service provider would be shipping this SecretGenerator CR ?

The SecretGenerator custom resource will be created by the one who connects the application to the service. We can encourage service providers to document and/or give examples for the same.

Question, who would be creating/providing this CR ?

You can make a strong case for both parties. Either the app dev who needs to consume a service that wasn't fully compliant, or by a service provider who has a resource that isn't itself compliant, but still want to offer a compliant sibling resource.
I agree with @baijum that it will most often be "one who connects the application to the service", but unlike with the ServiceBinding resource it won't be exclusively that person.

The current implementation of Red Hat's Service Binding Operator merge CR annotation, CRD annotation, and X-Descriptors. As long as the order of precedence is well defined, I think we can avoid .spec.category. This behavior will be closer to the existing implementation. Since CR annotation has more precedence over CRD annotation, the person who connects the application to the service gets a chance to override what's there in the CRD annotation. Contrary to the current implementation, I think X-Descriptors should get precedence over CRD annotation. That will give those who package the original operator a chance to override what's there in the CRD annotation.
apiVersion: mapping.service.binding/v1alpha2
kind: SecretGenerator
spec:
  type: <optional-type-value>
  provider: <optional-provider-value>
  service:
    apiVersion: com.example/v1alpha1
    kind: AccountService
    name: prod-account-service
status:
  binding:
    name: <generated-secret-resource>

The SecretGenerator is going to be used with the ServiceBinding resource in tandem. And ServiceBinding resource has special attributes to override type and provider values. So, I think we can drop those two optional attributes from the SecretGenerator resource.
apiVersion: mapping.service.binding/v1alpha2
kind: SecretGenerator
spec:
  service:
    apiVersion: com.example/v1alpha1
    kind: AccountService
    name: prod-account-service
status:
  binding:
    name: <generated-secret-resource>


cmake: cleanup version printing during CMake configure time

Follow-up: #34842
This is a follow-up commit that ensures relevant version information
regarding the build is located together as discussed in https://github.com/zephyrproject-rtos/zephyr/pull/34842#discussion_r627687053.

Now prints:
-- Application: /projects/github/ncs/zephyr/samples/hello_world
-- Zephyr version: 2.5.99 (/projects/github/ncs/zephyr), build: zephyr-v2.5.0-3540-gb856c551d162

instead of:
-- Application: /projects/github/ncs/zephyr/samples/hello_world
-- Zephyr version: 2.5.99 (/projects/github/ncs/zephyr)
-- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.5") found components: Interpreter
-- Found west (found suitable version "0.10.99", minimum required is "0.7.1")
-- BUILD_VERSION=zephyr-v2.5.0-3539-g6b15ad1fd5f6

(BTW neither Github, Travis or Jenkins has any concept of a warning: it's either red or green, nothing in between)

github just proved me wrong: the warning at  https://github.com/thesofproject/sof/runs/2605452786?check_suite_focus=true also appears as a annotation in the "files" tab. Note the lights are all green, you see the warning only if you open the files tab.
https://github.com/thesofproject/sof/pull/4132/files
Very interesting, first time I see this. I'm curious how yamllint achieves that. It just happens to output warning messages that github can parse?

-Werror was invented because people NEVER read logs and never see warnings. They only skim or search logs

Still true for terminal output but on github the above could help because reviewers do look a the "files" tab of course.


Ok Boomer

CurseForge link
https://www.curseforge.com/minecraft/mc-mods/ok-boomer-zoom
CurseForge Mod Distribution
Allowed
Modrinth link
https://modrinth.com/mod/ok-boomer
Source/other link
https://github.com/wisp-forest/ok-boomer
Mod file size
46.92 KiB
License
(any other license)
What it does
Alternative to Zoomify
Why should it be in the modpack
Has less options but more intuitive config
Can zoom into screens (not working for me, have no idea why)
Mouse sensitivity is adaptive to zoom scale
Why shouldn't it be in the modpack
New dependency (owo-lib)
Doesn't have "zoom" in the name
Additional details
No response

More intuitive config in what way?
Zooming into screens seems like a novelty, but I am not sure why most people would need it when GUI Scale option is available.

Mouse sensitivity is adaptive to zoom scale
And Zoomify isn't? I thought it was already

Well, let's call it "looks better", and not an "intuitive".
Zooming into screens might be useful for GUI elements which are just smaller then others, but I don't think there's any in vanilla... Or to get more detailed look on icons, idk

And Zoomify isn't? I thought it was already

And no, it isn't, still.

Well, let's call it "looks better", and not an "intuitive".

Okay... Though as you said Zoomify does have more features overall, so I'd just propose suggestions to improve the options, rather than switching mods. In fact, to some extent I already did: https://github.com/isXander/Zoomify/issues/98

Zooming into screens might be useful for GUI elements which are just smaller then others, but I don't think there's any in vanilla... Or to get more detailed look on icons, idk

Doesn't seem like an actual, useful use case atm... Visually impaired users have a lot of tools already, including Minecraft's GUI Scale, screen resolution, screen scaling, etc.

And no, it isn't, still.

Ok, requested. https://github.com/isXander/Zoomify/issues/117

Well, I feel defeated. I really do want to throw off Zoomify, because I hate it for no reason, but, I guess, I can't do much about it.

This request is very subjective btw, I've just see an alternative to Zoomify and wanted it to be included so hard, sorry for that.

Well, I feel defeated. I really do want to throw off Zoomify, because I hate it for no reason, but, I guess, I can't do much about it.
This request is very subjective btw, I've just see an alternative to Zoomify and wanted it to be included so hard, sorry for that.

Well, if you get any valid reasons why Zoomify is bad, we can discuss removing it and then consider a new mod to replace it. Otherwise, I don't swap mods for no reason because there are lots of criteria to consider (usability, sustainability, size, amount of features etc.).

Looks like Zoomify actually have relative sensitivity according to it's modrinth page, but this feature isn't in FO for some reason (disabled by default? or just insignificant).

I don't know about that, FO currently does not bundle a config for Zoomify. Ask the developer.

Closed due to lack of good arguments on how this mod is better than the currently included one, Zoomify.

Actually I'm not gonna give up on this. I've updated the issue and demand reopening the issue

I don't think your new arguments are more compelling...

More user-friendly settings than Zoomify

In what way?

Can zoom into screens, may help with accessibility

May, but the user may also just change the GUI scale

Relative sensitivity actually works unlike Zoomify

Well, it could work in Zoomify if you could explain what it does. In isXander/Zoomify#117, I was not able to explain it nor confirm whether it exists there or not. Maybe do a video comparison?

Name puts a smile on your face

Not a convincing argument

May, but the user may also just change the GUI scale

While this option is objectively not very useful for vanilla, people who use mods with weird GUI scale (like AE2 for example) will say thanks

Also file size is 20 times less then Zoomify, but to be fair with it's dependency the difference is only about 50kb

One additional thing to note: isn't Ok Boomer a fork of Ok Zoomer?
And as such:

is the dev of Ok Zoomer even happy about its existence, considering that she moved to Quilt?
does not have the same issues Ok Zoomer had, which led to its removal in FO in the first place?

isn't Ok Boomer a fork of Ok Zoomer?

No it's not.
And as such:

Don't know and don't care.
No, it doesn't.

Because the author of Zoomify don't understand and don't care about such improvements.

Because the author of Zoomify don't understand and don't care about such improvements.

Well... nor does the maintainer of FO.


QUESTION

Where should I put adb? I have the platform tools folder. Should I use usb for phone to laptop?

I got it all to work. Why is it playing randomly? It put freeze on my tower

You didn't answer my question, why close?


Enable speed

- Speed onClick of the marker allows understanding the context of a location for a user
- Using turfjs as it provides a large number of geospatial processing helpers
Feature #21

Thank you very much for the code contribution!  There were several implementations of feature request #21.  This is interesting, particularly the use of the turf.js library (first I've seen that one).  However there were two advantages of the implementation done in #23:

Several datasets showed speed values where NaN showed in this implementation
The hover tooltip implementation had a better user "feel"


[Feature Request / Intend to PR] Supporting afterInstructions, where the instructions are run after the RPC call

Instructions under the ctx is pre-instructions today. That is the instructions are run BEFORE the RPC calls. Here: https://github.com/project-serum/anchor/blob/2f780e0d274f47e442b3f0d107db805a41c6def0/ts/src/program/namespace/transaction.ts#L15
However, it is useful to allow users to include post-instructions. Example would be in a transaction involving wSOL, you need pre-instructions to setup a temporary wSOL account, and then use post-instructions to clean up / close the temporary wSOL account.
I intend to submit a PR to

add a postInstructions field. Should be here: (https://github.com/project-serum/anchor/blob/8fa867fbd695722b4cc592efd6f7ce462fc18f9b/ts/src/program/context.ts#L34)
Add the postInstructions to the tx. (e.g. tx.add(...ctx.postInstructions)) Adding it here https://github.com/project-serum/anchor/blob/2f780e0d274f47e442b3f0d107db805a41c6def0/ts/src/program/namespace/transaction.ts#L17

Opening an issue first to see if this something that you would accept.

I would say yes, i often need this and this requires breaking out of the <program>.rpc.<method>(...) comfort

we have postInstructions now, so it seems like I can close this. lmk if this was talking about sth else


Provide way to easily specify clobbered registers for Function type objects.

Binary Ninja Version
3017
Describe the bug
Originally reported by @nshp here, just copy/pasting so it has its own report as I hit this on a different binary: https://github.com/Vector35/binaryninja-api/issues/1769
There are no Function objects for these extern functions, so I don't think it's possible to set function properties for them. I'd specifically like to be able to override clobbered_regs for fentry (the hook point for ftrace), because it's called from every function and it saves/restores (or doesn't touch) every register.  This means every function starts like:
int64_t bnx2x_ptp_adjtime()

00000710  int64_t rsi_1
00000710  void* rdi_1
00000710  rsi_1, rdi_1 = __fentry__()

with all the function parameters being misattributed to fentry.
To Reproduce
Steps to reproduce the behavior:

Go to kernote_ioctl
Try to define arguments
See __fentry__ eat them all

Expected behavior
I am able to usefully define arguments to functions that begin with calls to __fentry__. Extern's having real Function objects that allow me to control clobbered registers is the way that seems easiest to me, but the root issue is just dataflow analysis on functions that call externs this way.
Version and Platform (required):

Binary Ninja: Dev 2.4.3017
OS: Windows
Version 20h1

Additional context
kernote.ko.txt

There is a workaround that is probably preferable here:
class NopCallingConvention(CallingConvention):
  pass

bv.arch.register_calling_convention(NopCallingConvention(bv.arch, 'nop'))

the set the type of fentry to void __convention("nop") __fentry(void).
This turns:
00000050  int64_t kernote_ioctl()

00000050      int64_t rdx_2
00000050      int32_t rsi_2
00000050      rdx_2, rsi_2 = __fentry__()
00000068      int64_t rsi
00000068      int64_t rdi
00000068      rsi, rdi = _raw_spin_lock(0xb40)

into:
00000050  int64_t kernote_ioctl(int64_t arg1, int32_t arg2, int64_t arg3)

00000050      __fentry__()
00000068      int64_t rsi
00000068      int64_t rdi
00000068      rsi, rdi = _raw_spin_lock(0xb40)

So with the other bugs resolved, I've solved this problem via a plugin: https://github.com/yrp604/binja-fentry
The request in the first comment and title is wrong, the second comment is accurate -- the plugin just makes the calling convention application automatic. This plugin (imo) should be rolled into a default binja kernel module support, but Im not sure how you'd like to do bookkeeping for this issue.

+1 this would be a really useful feature

Implemented as of ~1 year ago via the "edit function properties" dialog.

Hey @jonpalmisc I'm on Binary Ninja 3.1.3469 and it looks like its not fixed for this particular case.
In ELF files the external function symbols in .extern can't be right clicked to edit their properties (the option isn't there). The decompiler still makes assumptions about which registers are clobbered by these externals and there isn't any way to change it from the UI.
This leads to the problem yrp604 mentioned where reversing Linux kernel modules with fentry at the start of the function messes up decompilation because the arguments passed in registers are now thought to come from fentry.

You are correct: external symbols with function type (e.g., those in .extern) do not have function objects associated with them. (IIUC, functions have to have code mapped in the binary view.)
This means that there is no function object on which to set the clobbered registers. I don't know of any workaround for this.


[SR-15482] some statement about "Capture Lists" needs to be clarified in the Swift Language Reference Manual

Previous ID
SR-15482

Radar
None

Original Reporter
wayne2046 (JIRA User)

Type
Bug

Environment
Xcode 13.2 beta (13C5066c)
Playground

Additional Detail from JIRA

Votes
0

Component/s
swift

Labels
Bug

Assignee
None

Priority
Medium

md5: f68539ad89bfa7748328ce652f49a8bf

Issue Description:
https://docs.swift.org/swift-book/ReferenceManual/Expressions.html
The first paragraph under "Capture Lists"
"By default, a closure expression captures constants and variables from its surrounding scope with strong references to those values. You can use a capture list to explicitly control how values are captured in a closure."
The following code snippet adapted from the example in the "Capture List" section:
class SimpleClass {
    var value: Int = 0
    deinit {
        print("\(value) is being deinitialized")
    }
}
var x: SimpleClass? = SimpleClass()
var y: SimpleClass? = SimpleClass()
let closure = {
    print("x = \(x!.value), y = \(y!.value)")
}
x!.value = 5
y!.value = 10
closure()
x = nil
y = nil

The output is
x = 5, y = 10
5 is being deinitialized
10 is being deinitialized

Obviously 'x' and 'y' are not captured by the 'closure' with strong references, otherwise 'deinit' method of 'SimpleClass' should not be invoked after setting both 'x' and 'y' to nil.
If we change the code of 'closure' as following and the rest remains unchanged:
let closure = {
    [x] in
    print("x = \(x!.value), y = \(y!.value)")
}

This time the output is
x = 5, y = 10
10 is being deinitialized

and 'x' is captured by the 'closure' as strong reference.
So the statement that by default a closure expression captures constants and variables from its surrounding scope with strong references to those values IS NOT correct.
Any comments are appreciated.

@xedin Do you have write access to https://github.com/apple/swift-book to transfer this issue?


Store time series metadata in SQLite

New features:

Allows addition of user-defined features to time series arrays.
Adds support for different time series resolutions.

Refactor/re-design:

Store time series metadata in a SQLite database instead of per-component dictionaries. This allows system-wide SQL queries instead of looping across component dictionaries.
Consolidate management of time series in TimeSeriesManager instead of individual time series storage implementations.

Features removed:

get_time_series and get_time_series_multiple no longer support abstract types. This could be restored, but I think it’s better this way. list_time_series* methods support abstract types.

Closing because CodeCov is not currently working on forks.


[20.03] firefox: Fix AArch64 build

See #81211
The backport can be applied, unlike 19.09.
Currently waiting on builds.

(While I did switch the implementation after @andir approved, I'm positive the approval also applies to a simple backport.)

Tested build for:

firefox
firefox-esr

On platforms:

aarch64-linux
x86_64-linux


Proposal: add prettier config

Proposal: add prettier config + git hook for checking the formatting
While working with this repo and submitting types to it, I used the autoformat feature of the IDE, I use prettier as my default to .ts / .d.ts / js files, so it used that. But since there is no local prettier config, it used my global one, since I prefer tabs vs spaces and no ; at the end, it was hugely different from the current codebase, but if you contribute to a codebase, it should be the same formatting. Atm the style is presumably the one, from the main contributor's global prettier config. So adding an explicit prettier config seems a good idea, I  also added the git hook to check it before committing, so that (at least locally atm) the style is checked on each PR. For the future we can add a CI job, that checks the formatting on each PR, so that the style is coherent for the entire repo.
The current values are just my guess on them, and seem likely to match the current one used implicitly on most of the codebase, but feel free to suggest changes there, since this aims only to set a standard, the one that is used, is not that important (for me).
I didn't run the formatting yet (and tricked the commit hook manually in not complaining about it 😂 ), since it changes some files, we should do that after we set on a standard 👍🏼

@Totto16 Thank you! Can you please run yarn dlx @yarnpkg/sdks vscode? I think that would still be necessary for it to work with yarn

Do you really need to commit these yarn sdk files?  I thought these get created automatically on yarn install?

There were already committed files in these folders (and If they shouldn't be included, a .gitignore entry would be there, as far as I  would do it), so I committed them too, I didn't work with yarn sdks before, so I don't know

According to yarn, it is recommended but not absolutely necessary: https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
I agree with both, but if we ignore it then it should be written in the README.md that a yarn dlx @yarnpkg/sdks <your-favourite-ide> needs to be executed

Ah okay, thanks for the explanation, let's keep them then. I must admit that I'm only superficially familiar with yarn 😇

@Totto16 @JumpLink Shouldn't the ci.yaml workflow get a job to run prettier:check, to flag format errors on CI?

@Totto16 @JumpLink Shouldn't the ci.yaml workflow get a job to run prettier:check, to flag format errors on CI?

Yes I proposed that above, I will add this, before merging. I didn't do that yet, since that might create issues with PR's that were in the final phase, those are now merged and I see now problem in adding that 👍🏼

So as far as I understand, the given config is OK, so I'll format it and commit the changes 👍🏼


Designer - ButtonGroup - font-size:0

I'm submitting a ...

[ ] bug report

What is the current behavior?
.rev-ButtonGroup buttons have a space in between them when used outside of the docs-site
What is the expected behavior?
when multiple .rev-Buttons are inside a .rev-ButtonGroup there should be no space between the buttons (this is working on harmonium.revelry.co)
Other information (we love stack traces!)
In order to make sure that buttons inside a .rev-ButtonGroup don't have space between them, we are going to add a font-size: 0; to the .rev-ButtonGroup. This will not affect the font-size of the button b/c buttons have a font-size applied to them. In the off chance that someone puts an element in a .rev-ButtonGroup that is not a button, (they shouldn't do that) there isn't much chance that the parent font-size will affect that element since most all html elements have a font-size applied to the element itself.

regarding browser testing:
from Blaze: @laura font-size:0 works on safari, firefox, chrome and ie 11. just checked for ya :slightly_smiling_face:


[ALLUXIO-2465]change call sequence for create and rename method in AbstractFileSystem.java

https://alluxio.atlassian.net/browse/ALLUXIO-2465

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12793/
Test PASSed.

Merged build finished. Test PASSed.

push it to branch-1.4


Experimental support for Iron Irwini

[x] add iron-ex1.15.5-otp26.0.2 as new CI target, and remove foxy-ex13,14 (ref.) https://github.com/rclex/rclex_docker/pull/15
[x] fix Makefile to support iron
[ ] check the operation on GHA and Nerves

relate #228

We have confirmed that Rclex with Iron could work fine with this PR, only on the natively installed environment for Ubuntu 22.04 and Iron.
However, there are still some issues with supporting all features of Rclex, all bad luck is from LTTng,,, ;(
See details https://github.com/rclex/rclex/issues/228#issuecomment-1715288806
I decided that this PR can be merged, and we will release rclex v0.9.1 that includes experimental support for Iron.


make linked resources protocol-relative

This allows the site to be viewed via HTTPS 1, as is the case if a user has
something like HTTPS everywhere installed in their browser.

Got it, thanks.