Notifier email configure return plaintext password

Notifier return plaintext password in API request

@loganhz could you help add milestone

@aiwantaozi we have to make sure to:

add a test
validate that the subsequent update use case will work, from both the test + API. There were issues in the past when the password was reset on the crd when the UI was setting an empty value. Steps to take:

Setup notifier with the password. Make sure the password is set on crd, and not shown in api
Edit notifier. Change something non-password related, hit save. Make sure that the password in crd remains the same

rancher/rancher:master-head a70698d25

Reproduced in v2.3.5
Deployrancher/rancher:master-head
Create a cluster
Create an email notifier w/ password set
View notifier in API and no password field is present
Check CRD on server and see that password is set correctly
Update password in notifier and see it reflected in CRD
Update some non-password field (username in this case) and see the field updated, and password is not changed


i18n(fr): add backend/neon.mdx

Description (required)
Translate the new Neon backend guide in French (see #9602)

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/backend/neon.mdx
Localization added, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Updated pull request for Migratory Birds #69 and Cats and a Mouse #101

Code in python for  Migratory Birds #69 and Cats and a Mouse #101 in an updated pull request

Thank you for the PR


Site has headerbar and content colors swapped

See:

Light theme is also slightly off:

Thanks for letting me know!
These colors are remnants of libadwaita alpha, I went ahead and updated them (+ did some general upkeeping with Svelte & others), it should be up in a few minutes!


Version 0.4.0 error "Could not sync required resources" but version 0.3.4 works

I installed via Helm chart 2.0.4 (app version 0.3.4) and DNS resolution works correctly.
I uninstalled then installed Helm chart 2.1.0 (app version 0.4.0) and DNS resolution no longer works (dig reports SERVFAIL).
I've tried Helm chart 2.4.0 and get the same results.
Logs from app version 0.4.0 (note the Could not sync required resources error):
[INFO] plugin/k8s_gateway: Building k8s_gateway controller
[INFO] plugin/k8s_gateway: VirtualServer CRDs are not found. Not syncing VirtualServer resources.
[INFO] plugin/k8s_gateway: Starting k8s_gateway controller
[INFO] plugin/k8s_gateway: Waiting for controllers to sync
.:1053
[DEBUG] plugin/k8s_gateway: Request<PHONE_NUMBER>669144676.1792364358248969471. has not matched any zones [XXXXXXX.com.]
W0407 20:23:30.501935       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:23:30.502068       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
[INFO] plugin/reload: Running configuration SHA512 = 321cf4ac2f3862a8000e9fb4f5c51a7019dc1d2e0bb1ef25da8ff1beb229fc8c43b57231f2e8bf971eb7d99f54d439ee893119d59937354704a0e61ab22d433f
CoreDNS-1.11.1+k8s_gateway-0.4.0
linux/amd64, go1.21.3, 22e389c
W0407 20:23:30.504228       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
E0407 20:23:30.504300       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.GRPCRoute: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
[DEBUG] plugin/k8s_gateway: Adding index nginx-service.default for service nginx-service
[DEBUG] plugin/k8s_gateway: Adding index k8s-gateway-application.k8s-gateway-system for service k8s-gateway-application
[INFO] <IP_ADDRESS>:59904 - 42794 "HINFO IN<PHONE_NUMBER>669144676.1792364358248969471. udp 57 false 512" NXDOMAIN qr,rd,ra 132 0.014001293s
W0407 20:23:31.767988       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
E0407 20:23:31.768041       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.GRPCRoute: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
W0407 20:23:31.934310       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:23:31.934360       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
W0407 20:23:33.888547       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:23:33.888610       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
W0407 20:23:34.946547       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
E0407 20:23:34.946679       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.GRPCRoute: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
W0407 20:23:38.099568       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:23:38.099619       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
W0407 20:23:41.340906       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
E0407 20:23:41.340959       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.GRPCRoute: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
W0407 20:23:49.403101       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
E0407 20:23:49.403211       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.GRPCRoute: failed to list *v1alpha2.GRPCRoute: the server could not find the requested resource (get grpcroutes.gateway.networking.k8s.io)
W0407 20:23:50.171164       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:23:50.171208       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
W0407 20:24:04.470328       1 reflector.go:535] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
E0407 20:24:04.470372       1 reflector.go:147] pkg/mod/k8s.io/client-go@v0.28.3/tools/cache/reflector.go:229: Failed to watch *v1alpha2.TLSRoute: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
[DEBUG] plugin/k8s_gateway: Computed Index Keys [nginx-service.default.XXXXXXX.com nginx-service.default]
[INFO] <IP_ADDRESS>:51583 - 6720 "A IN nginx-service.default.XXXXXXX.com. udp 93 false 4096" - - 0 0.000086851s
[ERROR] plugin/errors: 2 nginx-service.default.XXXXXXX.com. A: plugin/k8s_gateway: Could not sync required resources

Logs from app version 0.3.4 (which is working correctly):
[INFO] plugin/k8s_gateway: Building k8s_gateway controller
[INFO] plugin/k8s_gateway: GatewayAPI CRDs are not found. Not syncing GatewayAPI resources.
[INFO] plugin/k8s_gateway: VirtualServer CRDs are not found. Not syncing VirtualServer resources.
[INFO] plugin/k8s_gateway: Starting k8s_gateway controller
[INFO] plugin/k8s_gateway: Waiting for controllers to sync
.:1053
[INFO] plugin/reload: Running configuration SHA512 = 321cf4ac2f3862a8000e9fb4f5c51a7019dc1d2e0bb1ef25da8ff1beb229fc8c43b57231f2e8bf971eb7d99f54d439ee893119d59937354704a0e61ab22d433f
CoreDNS-1.10.1+k8s_gateway-0.3.4
linux/amd64, go1.20.2, c982ce7
[DEBUG] plugin/k8s_gateway: Request<PHONE_NUMBER>04462924.4524425992165016576. has not matched any zones [XXXXXXX.com.]
[DEBUG] plugin/k8s_gateway: Adding index nginx-service.default for service nginx-service
[DEBUG] plugin/k8s_gateway: Adding index k8s-gateway-application.k8s-gateway-system for service k8s-gateway-application
[INFO] <IP_ADDRESS>:44227 - 42749 "HINFO IN<PHONE_NUMBER>04462924.4524425992165016576. udp 56 false 512" NXDOMAIN qr,rd,ra 131 0.012402933s
[INFO] plugin/k8s_gateway: Synced all required resources
[DEBUG] plugin/k8s_gateway: Computed Index Keys [nginx-service.default.XXXXXXX.com nginx-service.default]
[DEBUG] plugin/k8s_gateway: Found 0 matching Ingress objects
[DEBUG] plugin/k8s_gateway: Found 1 matching Service objects
[DEBUG] plugin/k8s_gateway: Computed response addresses [<IP_ADDRESS>]
[INFO] <IP_ADDRESS>:32824 - 3653 "A IN nginx-service.default.XXXXXXX.com. udp 93 false 4096" NOERROR qr,aa 138 0.000609899s

I am experiencing the same issue.

More on this.  Installed the experimental channel CRDs of the Gateway release 0.4.0 and issue resolved.
$kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml

This installs the alpha CRDs for GPCRoute and TLSRoute.  I think the plugin fails on the sync call if ALL referenced CRDs are not present (if is they are excluded in using resource type filter.

More on this. Installed the experimental channel CRDs of the Gateway release 0.4.0 and issue resolved.
$kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml

This installs the alpha CRDs for GPCRoute and TLSRoute. I think the plugin fails on the sync call if ALL referenced CRDs are not present (if is they are excluded in using resource type filter.

I think this must be the case.  Seems like it should work with services and ingresses and just ignore routes if the CRDs aren't installed.

Maybe this can help anyone else coming looking for a solution. I only really needed the gateway to watch ingresses.networking.k8s.io. So I just restricted the ClusterRole with a Kustomize patch. This works around the issue at least for now.
https://github.com/Joker9944/k8s-config/blob/5f1ede42e9dbb8f12d9e642c6d7a357ead51a0cd/apps/nameserver-apps/blocky/helm-release.yaml#L215-L278

Maybe this can help anyone else coming looking for a solution. I only really needed the gateway to watch ingresses.networking.k8s.io. So I just restricted the ClusterRole with a Kustomize patch. This works around the issue at least for now.
https://github.com/Joker9944/k8s-config/blob/5f1ede42e9dbb8f12d9e642c6d7a357ead51a0cd/apps/nameserver-apps/blocky/helm-release.yaml#L215-L278

this is the right solution.
the chart should add rbac dynamically, however, it's static: (rbac)[https://github.com/ori-edge/k8s_gateway/blob/master/charts/k8s-gateway/templates/rbac.yaml#L28-L33]
another issue is you can't deactivate it to create your own RBAC with this chart.


Revert "Merge pull request #179 from zendesk/farhan/af-819-sanitise-s…

…vgs"
This reverts commit b3fcc5c2d2a511f006475854f2b2bb88ff6b0358, reversing
changes made to 37a699f6d6a995c60b7b4c442e262e94d65a49b8.
Hopefully this will fix the dependency issues we're encountering with nokogiri in ZAM/apps_approval.

FYI @fvzzy


Fix vet error:

github.com/Netflix/chaosmonkey/mock
github.com/Netflix/chaosmonkey/mock/deployment.go:130: Errorf format %s reads arg #2, but call has 1 arg

Coverage remained the same at 54.054% when pulling 1ff0f4497032849dc31febd1ce38429265028106 on ht-fix-vet-error-with-log-statement into aed8994158722babb0505c834971c138bd95fae9 on master.


Update README.md

Hi,
This small PR adds two buttons to get your app on F-Droid and Google Play 👍 It also adds some explanation, taken from F-Droid/Google Play pages.
close #1
close #2

Thank

hi, any updates on why not merged? or do u not wanna have full description here? if so, then only the buttons for fdroid and gp can be added too...

2 approverals, more than 20 months, what more are we waiting for (:

Sorry about the wait, this is awesome PR, thank you very much!


USB DFU Usage

At Intercreate, we've found that in order to use the USB DFU system, via dfu-tool or dfu-util, we must always apply the same patch.  The patch changes the usb_dfu driver to initialize in its "DFU ready" state rather than in "application" state.  We would like to understand the intended usage of the API and if the system or documentation should be updated.
Here's the patch:
diff --git a/subsys/usb/device/class/dfu/usb_dfu.c b/subsys/usb/device/class/dfu/usb_dfu.c
index 69a912ab9d..b816accd91 100644
--- a/subsys/usb/device/class/dfu/usb_dfu.c
+++ b/subsys/usb/device/class/dfu/usb_dfu.c
@@ -119,7 +119,7 @@ USBD_CLASS_DESCR_DEFINE(primary, 0) struct usb_dfu_config dfu_cfg = {
 		.bNumEndpoints = 0,
 		.bInterfaceClass = USB_BCC_APPLICATION,
 		.bInterfaceSubClass = DFU_SUBCLASS,
-		.bInterfaceProtocol = DFU_RT_PROTOCOL,
+		.bInterfaceProtocol = DFU_MODE_PROTOCOL,
 		.iInterface = 0,
 	},
 	.dfu_descr = {
@@ -336,7 +336,7 @@ struct dfu_data_t {

 static struct dfu_data_t dfu_data = {
-	.state = appIDLE,
+	.state = dfuIDLE,
 	.status = statusOK,
 	.flash_area_id = DOWNLOAD_FLASH_AREA_ID,
 	.alt_setting = 0,

With this patch, dfu-tool and dfu-util will proceed straight away into loading the new image.  This is important when running USB DFU from within MCUBoot, which is required if you only have a single application slot.  I'm not sure what any other behavior would be?  Is the expectation that the MCU should reboot into its USB DFU application?  It's already in its USB DFU application: MCUBoot.
We have a few other fixes to submit for USB DFU and MCUBoot, but hoping to have a good discussion about the design goals and API first.
We've run this on dev kits and custom boards with parts from ST and Nordic and never had success WITHOUT this patch.
I think that it comes down to usage of CONFIG_USB_DFU_WILL_DETACH
config USB_DFU_WILL_DETACH
	bool "Generate detach-attach sequence on DFU detach"
	default y
	help
	  Enabling this option makes the device responsible for detaching
	  itself from the bus after the DFU_DETACH request. Select this
	  for compatibility with host drivers that cannot issue USB reset.
	  DFU fails on Windows with WinUSB driver if this is not enabled.

What I don't understand is what "DFU_WILL_DETACH" means?  Does it mean that the device will reset (wouldn't work) or something else?
Open issues:

https://github.com/zephyrproject-rtos/zephyr/issues/64713

Closed issues:

https://github.com/zephyrproject-rtos/zephyr/issues/59958

CONFIG_USB_DFU_WILL_DETACH does not have an impact in our experience with ST and Nordic parts - possibly we need to patch our NCS to bring in this fix? https://github.com/zephyrproject-rtos/zephyr/pull/53414

I cannot reproduce it. Tested on an OS not much different from yours. Note that when you follow the sample documentation, you will need to reflash the USB DFU sample, as it is gone after downloading the hello-world image and resetting the board.


update bootstrap-datepicker on language change

bootstrap-datepicker should be updated if language changes.
bootstrap-datepicker hasn't a native method yet to update language as discussed here: https://github.com/eternicode/bootstrap-datepicker/issues/362
Update bootstrap-datepicker and afterwards regenerate DOW row manual doesn't seem to work anymore. So only possible way seems to regenerate datepicker.

Great work @jelhan! :+1: If you could fix these two things I commented above, I would be happy to merge the pull request. Thank you a lot!

Done.

Awesome! Thank you :+1:


Importing Tensorflow - DLL load failed: the specified procedure could not be found

I'm creating a basic project in PyCharm 2018.2.4, importing tensor flow (version 1.10.0 installed using pip) , and I get this error:
Traceback (most recent call last):   File "C:/Users/sandr/Desktop/TensorProj/testing.py", line 1, in <module>     import tensorflow   File "C:\Users\sandr\.virtualenvs\TensorProj-uBuGaj5e\lib\site-packages\tensorflow\__init__.py", line 22, in <module>     from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import   File "C:\Users\sandr\.virtualenvs\TensorProj-uBuGaj5e\lib\site-packages\tensorflow\python\__init__.py", line 52, in <module>     from tensorflow.core.framework.graph_pb2 import *   File "C:\Users\sandr\.virtualenvs\TensorProj-uBuGaj5e\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module>     from google.protobuf import descriptor as _descriptor   File "C:\Users\sandr\.virtualenvs\TensorProj-uBuGaj5e\lib\site-packages\google\protobuf\descriptor.py", line 47, in <module>     from google.protobuf.pyext import _message ImportError: DLL load failed: The specified procedure could not be found.
Tried a whole bunch of different versions, but nothing is working. Could anyone help me out?

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce
Mobile device

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Make sure you also include the exact command if possible to produce the output included in your test case. If you are unclear what to include see the issue template displayed in the Github new issue template.
We ask for this in the issue submission template, because it is really difficult to help without that information. Thanks!

The tensorflow version was 1.10.0. I installed from the command 'pip install --uprade tensorflow' in the PyCharm terminal.
I am running Windows 10 (Version 10.0.17134 Build 17134). My CPU is an Intel Core i5-5200 CPU, integrated GPU.

What is the python version using?

Python version 3.6.0. pip3 install tensorflow for version 1.10 gave me the same error.

Please refer to a similar issue. Can you please try updating your python version to 3.6.1 and check if the issue still persists?

Closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


[Text Translation] Remove cognitiveservices-translatortext sdk

cognitiveservices-translatortext was replaced by the new Text Translation SDK. The old one can be removed.

https://github.com/Azure/azure-sdk-for-js/pull/25363


Improve Current GUI

Current GUI consists of the UCSB campus map as a JPG overlaid with checkboxes.
A better UI might consist of a snapshot (via Google Maps API) of Google Maps map view of UCSB with more intuitive checkboxes for points A and B.
~250-300 points.

F16 OK (275 pts)

F17 OK (300 pts)


Fixes 310: Adds polling for "Pending" repositories

https://issues.redhat.com/browse/HMSCONTENT-310

Works great!  The only comment i have is that we should probably change the pending icon to something that indicates a polling action more.  Something like https://www.patternfly.org/v4/components/spinner

Works great! The only comment i have is that we should probably change the pending icon to something that indicates a polling action more. Something like https://www.patternfly.org/v4/components/spinner

Should we also switch the text around pending?
I thought there was alternate copy..

yeah, I think that alternate copy looks good

/retest

[test]

Works, looks good, thank you


how to get the first and last name of users?

The UI design suggests there is an intention of using user first and last names. How would these be obtained?

You will need to query the mongodb backend.
Results should be cached if exists and not query the backend again for a while.
if need to fetch multiple names then queries should be in parallel, ie using await promise.all
I'll provide credentials on slack
walletHash = keccack256(walletAddress)
findOne({"index.walletAddress.hash":walletHash},{"fullName.display":true})

After a few hours of looking into this, I learned that you will need to create a MongoDB Realm to query from the browser
The mongodb package is a NodeJS package
I have a looked for another way, but it seems you need to either create a Realm or run a NodeJS server

resolved in https://github.com/GoodDollar/GoodCollective/pull/113


Collect Madhouse Wallet fees

We should create module for the gnosis smart wallet. when the user sends btc to the wallet, they would authorize an allowance for the smart wallet to collect. This allowance will be in aavetBTC tokens. that will be what the contract will send to a targeted wallet daily.
Collecting fees:
Allow for send: https://github.com/safe-global/safe-modules/tree/main/modules/allowances
Trigger: https://chain.link/tutorials/trigger-smart-contract-execution
Create Module: https://docs.safe.global/advanced/smart-account-modules
Add Module UI: https://help.safe.global/en/articles/40826-add-a-module
Module here: https://github.com/5afe/safe-core-protocol/blob/main/contracts/interfaces/Modules.sol
Deploy safe with module: https://github.com/safe-global/safe-modules/tree/466a9b8ef169003c5df856c6ecd295e6ecb9e99d/examples/4337-passkeys
Create module via sdk: https://github.com/safe-global/safe-core-sdk/tree/014f365e46cf278897c5ece45c1490c7c749f2d7/packages/protocol-kit/src/managers
Exposed modulemanager via protocolkit here: https://github.com/safe-global/safe-core-sdk/blob/014f365e46cf278897c5ece45c1490c7c749f2d7/packages/protocol-kit/src/Safe.ts
The module would send 3%/365 of aavetBTC tokens to a wallet every day.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract PercentageSender {
address payable public recipient; // Address to receive the percentage
uint256 public percentage; // Percentage to send (e.g., 10 for 10%)

constructor(address payable _recipient, uint256 _percentage) {
    recipient = _recipient;
    percentage = _percentage;
}

function sendPercentage() public {
    uint256 amountToSend = (address(this).balance * percentage) / 100;
    recipient.transfer(amountToSend);
}

}
Explanation:
Contract Details:
recipient: A public variable storing the address where the percentage of the wallet balance will be sent.
percentage: A public variable defining the percentage of the balance to be sent (represented as a whole number, e.g., 10 for 10%).
Constructor:
When deploying the contract, you need to specify the recipient address and the desired percentage.
sendPercentage function:
Calculation:
(address(this).balance * percentage) / 100: Calculates the amount to send by multiplying the contract's balance by the specified percentage and dividing by 100 to get the correct percentage value.
Transfer:
recipient.transfer(amountToSend): Sends the calculated amount to the designated recipient address using the transfer function.
Key Points:
Security Considerations:
Gas Fees: Be aware of potential gas fees associated with sending transactions, especially if the percentage is large or the recipient address is on a different network.
Reentrancy Attacks: Consider implementing safeguards against reentrancy attacks if your contract interacts with other contracts.
Access Control: If you want to restrict who can trigger the sendPercentage function, you can add access control mechanisms like onlyOwner modifiers.
How to Use:

Deploy the Contract:
Provide the desired recipient address and percentage value when deploying the contract.
Trigger the Transfer:
Call the sendPercentage function on the deployed contract. This will automatically calculate and send the specified percentage from the contract's balance to the recipient.
Important Note:
This is a basic example and might need adjustments depending on your specific requirements, such as handling different token standards, adding additional functionalities, or implementing more complex logic for percentage calculations.

We will need to add signed verification for any module execution from here: https://www.kaleido.io/blockchain-platform/aws-cloudhsm-signer

Allow for send: https://github.com/safe-global/safe-modules/tree/main/modules/allowances
Access Control: https://docs.openzeppelin.com/contracts/2.x/access-control
Create Module: https://docs.safe.global/advanced/smart-account-modules
Add Module UI: https://help.safe.global/en/articles/40826-add-a-module
Module here: https://github.com/5afe/safe-core-protocol/blob/main/contracts/interfaces/Modules.sol
Deploy safe with module: https://github.com/safe-global/safe-modules/tree/466a9b8ef169003c5df856c6ecd295e6ecb9e99d/examples/4337-passkeys
Create module via sdk: https://github.com/safe-global/safe-core-sdk/tree/014f365e46cf278897c5ece45c1490c7c749f2d7/packages/protocol-kit/src/managers
Exposed modulemanager via protocolkit here: https://github.com/safe-global/safe-core-sdk/blob/014f365e46cf278897c5ece45c1490c7c749f2d7/packages/protocol-kit/src/Safe.ts
The module would send 3%/365 of aavetBTC tokens to a wallet every day.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract PercentageSender {
address payable public recipient; // Address to receive the percentage
uint256 public percentage; // Percentage to send (e.g., 10 for 10%)

constructor(address payable _recipient, uint256 _percentage) {
    recipient = _recipient;
    percentage = _percentage;
}

function sendPercentage() public {
    uint256 amountToSend = (address(this).balance * percentage) / 100;
    recipient.transfer(amountToSend);
}

}
Explanation:
Contract Details:
recipient: A public variable storing the address where the percentage of the wallet balance will be sent.
percentage: A public variable defining the percentage of the balance to be sent (represented as a whole number, e.g., 10 for 10%).
Constructor:
When deploying the contract, you need to specify the recipient address and the desired percentage.
sendPercentage function:
Calculation:
(address(this).balance * percentage) / 100: Calculates the amount to send by multiplying the contract's balance by the specified percentage and dividing by 100 to get the correct percentage value.
Transfer:
recipient.transfer(amountToSend): Sends the calculated amount to the designated recipient address using the transfer function.
Key Points:
Security Considerations:
Gas Fees: Be aware of potential gas fees associated with sending transactions, especially if the percentage is large or the recipient address is on a different network.
Reentrancy Attacks: Consider implementing safeguards against reentrancy attacks if your contract interacts with other contracts.
Access Control: If you want to restrict who can trigger the sendPercentage function, you can add access control mechanisms like onlyOwner modifiers.
How to Use:

Deploy the Contract:
Provide the desired recipient address and percentage value when deploying the contract.
Trigger the Transfer:
Call the sendPercentage function on the deployed contract. This will automatically calculate and send the specified percentage from the contract's balance to the recipient.
Important Note:
This is a basic example and might need adjustments depending on your specific requirements, such as handling different token standards, adding additional functionalities, or implementing more complex logic for percentage calculations.


docs: example go project

Hello @ellenkorbes, @maiamcc,
Please review the following commits I made in branch nicks/ch4750/go:
47365761a2fb7d3e876772f40073bb4954dbd670 (2020-03-11 14:23:34 -0400)
docs: example go project
Code review reminders, by giving a LGTM you attest that:

Commits are adequately tested
Code is easy to understand and conforms to style guides
Incomplete code is marked with TODOs
Code is suitably instrumented with logging and metrics

A few possibly-too-opinionated observations:

We're serving two files; there's no reason to use gorilla/mux here. Especially given how the Go community is averse to importing random things, and has a preference for writing it by hand unless there's very good reason not to... gorilla/mux just feels out of place.

We can achieve all we need with a handful of lines of standard library instead.

The way we're doing record-start-time.sh adds a layer of indirection that takes too much mental effort to unravel. It took me a whole 3 minutes and I knew what I was looking for—IMO that's too much complexity for an on-boarding guide.

Ideally users should be able to understand every file at a glimpse so that they can focus on learning how Tilt works, not trying to understand what the code is doing. When we have a shell script that generates a file that's part of a package that's then imported by main app... that's too much.

IMO the issue raised in yesterday's meeting was valid and we should address why the benchmark reports one number and Tilt reports another one. A single sentence explaining that they're measuring different things would do it.

(I haven't slept in many years so if I'm tripping feel free to disregard everything.)

Let me address the high-level questions first:

I don't have any strong attachment to gorilla/mux. I do think it's important that any guide we have show how third-party dependencies work in Tilt. "Just use the standard library" would be fine advice in a Go tutorial, I think it's unhelpful in a tutorial on how to setup Go projects with Tilt.

Is there a package you'd prefer we show instead? windmilleng/fast uses Cobra for example -- I'd be fine with standardizing on "all examples should use a third-party flag parsing library

I heard a few different objections in your comment here, but I'm not sure what the relative priority is, or what would resolve them. Is it just that you want the generated start.go to live in the same package as main.go?

Sure, I'm fine with adding some text to explain this, I opened a ticket to agree on some language, and update the guides: https://app.clubhouse.io/windmill/story/5311/explain-why-onboarding-guide-metrics-differ-from-tilt-metrics

sent as https://github.com/windmilleng/tilt.specs/pull/27, lemme know how that looks?

show how third-party dependencies work in Tilt

But we're not doing that. We're not showing anything related to third party dependencies. If we remove gorilla/mux from the code, nothing of what we're explaining will change.
It's like the Chekov's gun principle in theater: "If in the first act you have hung a pistol on the wall, then in the following one it should be fired. Otherwise don't put it there."
If we'd like to talk about third party dependencies and bring it to fore, fine, but right now I feel it's just taking attention away from what is actually the main point—how to use a Tiltfile to tie together a bunch of different components.

That would help a lot, yes.

YES! Perfect! 👏

@ellenkorbes what if we explicitly called out the fact that Go automatically downloads dependencies in the container, and that's contributing to container build time. would that resolve the issue?

It would justify mux's being there, yes.


little improvement suggestion

Hello. Right now yolov5_2_coco.py script demands that train.txt paths must be absolute paths to the images. That's not very common in yolo like datasets. I suggest to change line 119 to
img_path = Path(self.raw_data_dir / img_path) to use relatives paths instead or even check if the path is relative or absolute to treat it properly.

Thanks, LGTM. I have accepted your suggestion, see for details:
https://github.com/RapidAI/YOLO2COCO/blob/0823c193cb1fe9d0b25e345be6fdef5ffce7767e/yolov5_2_coco.py#L120-L123


onMessage listener doesn't work with React

I would like to use this lib in React SPA, unfortunately the onMessage event listener is not working. I can't do any state changes or see console logs when SSE messages arrive (I can see them in the browser's network tab).
I see the logs from onResponse listener, eventSource is definitely connects to server with HTTP200.
I use this code in a React component:
useEffect(() => {
    const eventSource = new EventSourcePlus(
      "http://localhost:8000/process",
      {
        method: "get",
      }
    );

    const controller = eventSource.listen({
      onMessage(msg) {
        console.log(msg.event, msg.data);
      },
      async onResponse({ request, response, options }) {
        console.log(`Received status code: ${response.status}`);
      },
      async onResponseError({ request, response, options }) {
        console.log(
          `[response error]`,
          request,
          response.status,
          response.body
        );
        controller.abort();
      },
    });

    return () => {
      controller.abort();
    };
}, []);

NodeJS: 20.15.1
React: 18.3.1
Vite: 5.3.4
Do you have any idea what could be wrong? The Microsoft lib has the same issue at me.
P.S.: I have tried out with your h3 test server and it worked.
I don`t know the difference between the ordinary EventSource browser Api and EventSourcePlus related to the server side.

Can you confirm that the server is setting the keep-alive header properly. You'll still get a 200 response even if the keep-alive header isn't set.
Here is and example of my code for a connection event in the server. I have to explicitly set the keep-alive header.
/**
 * @param {string} conn_id combination of user id & agent id
 * @param {connection} conn
 */
static connect(conn_id: string, conn: connection): void {
  conn.conn.writeHead(200, {
    'Content-Type': 'text/event-stream',
    'Connection': 'keep-alive',
    'Cache-Control': 'no-cache'
  })
  const msg = EventController.composeEvent({
    id: conn_id,
    event: 'connect',
    data: { 'connected': true }
  })
  conn.conn.write(msg)
}

I'm storing each connection in a linked list so you can ignore a lot of this, but you can see when a connection is created I have to ensure these headers are set.
Can you confirm you're setting the headers and possible send the log you're getting back in the client.

@teddybee could you provide an example of what your server code looks like? It could be that your server is sending a malformed response. If you are experiencing the same issue in the Microsoft library it does make me think there might be an issue with how your server endpoint is set up.

Can you confirm that the server is setting the keep-alive header properly. You'll still get a 200 response even if the keep-alive header isn't set.

The response headers that I can see in the browser (there is a keep-live connection):
HTTP/1.1 200 OK
date: Mon, 22 Jul 2024 08:12:40 GMT
server: uvicorn
cache-control: no-cache
connection: keep-alive
x-accel-buffering: no
content-type: text/event-stream; charset=utf-8
access-control-allow-origin: *
access-control-allow-headers: *
access-control-allow-methods: *
transfer-encoding: chunked

The response itself:
event: progress
data: 1

event: progress
data: 2

event: progress
data: 3

event: progress
data: 4

event: progress
data: 5

event: progress
data: 6

event: progress
data: 7

event: progress
data: 8

event: progress
data: 9

event: progress
data: 10

event: result
data: rtert res

I look at your H3 server`s response header:
HTTP/1.1 200 OK
access-control-allow-origin: *
Content-Type: text/event-stream
Cache-Control: private, no-cache, no-store, no-transform, must-revalidate, max-age=0
X-Accel-Buffering: no
Connection: keep-alive
Date: Mon, 22 Jul 2024 09:01:09 GMT
Transfer-Encoding: chunked

The only difference with my serve is the charset in content type
content-type: text/event-stream; charset=utf-8

My server sends the headers with full of small cases (even if I set it PascalCase), like:
connection: keep-alive
cache-control: no-cache,
This could be the root of the problem?

Hmm yeah that all looks correct. Let me poke around and see if I can reproduce.

Should I send/copy here the server code of my basic backend (python) or put it up somewhere to host/run?

@teddybee, yes, if you could provide a repo with a minimal reproduction of what your server is doing that, that would be a huge help

@joshmossas I pushed the backend code in this repo
https://github.com/teddybee/litestar-sse-test
I used Poetry as a package manager.

@teddybee Thanks for the reproduction. I was able to determine the source of the issue.
It turns out the python implementation is using \r\n to delimit lines instead of \n. I reread the spec over at https://html.spec.whatwg.org/multipage/server-sent-events.html and the following are all valid line delimiters for SSE

/n
/r/n
/r

So I needed to rewrite to parser to account for all of these cases.

I'll ping when the patch is ready. Plan on getting it out later today.

@teddybee Thanks for the reproduction. I was able to determine the source of the issue.
It turns out the python implementation is using \r\n to delimit lines instead of \n

The standard, browser inbuilt EventSource is working with this. Thanks for the investigation, I am informing the backend developers too.

@teddybee The fix is live in v0.1.2. Please let me know if you run into any other problems

@joshmossas Thank you very much. The new version is working like a charm.

@joshmossas  I was going to post the same issue but luckily updated my dependencies first and I can confirm it's working great now. Thank you!


[BUG] SCT013 Handling noisy signal

:bug: Describe the bug

The SCT013 is producing a noisy signal at low currents.

:bangbang: To Reproduce**

I noticed it as the current on the display is fluctuating around the current which I measured with the multimeter.
see also: https://www.casler.org

:interrobang: Expected behavior

more stable current
adding a capacitor in parallel to the burden resistor could be filtering the noisy signal (see link above)

:camera: Screenshots

screenshots of oszilloscope are coming soon

:computer: Desktop (please complete the following information):**

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

:iphone: Smartphone (please complete the following information):**

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Unfortunately, I figured out that the SCT013 is not able to measure DC currents. I would know this a little bit earlier If I had read the datasheet before. I switched to HSTL hall effect sensor which can read dc values (code is work in progress)


feat(v2): add option validation for remaining official plugins

Motivation
This PR provides option validation for the remaining official plugins.
This is a follow-up PR to #2943. #2943 generalizes option validation for plugins and themes. This PR uses the same pattern to validate and normalize options for the remaining official plugins.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Tests have been added for the respective plugins.
Related PRs
This PR should be merged after #2943. I will pull the changes after #2943 is merged to resolve any merge conflicts first. (Edit: done)

Hey, is this ready to review/merge?
The other pr has been merged: https://github.com/facebook/docusaurus/pull/2943

It is almost ready, we need to rebase it and make some minor changes

Ready for review now :D

there's a conflict :p

conflict resolved! :)

great job, let's merge this 👍


Proposal: postMapM and foldToFoldM

I often find these useful
postMapM :: Monad m => (a -> m b) -> FoldM m x a -> FoldM m x b
postMapM f (FoldM step begin done) = FoldM step begin done'
  where done' x = done x >>= f

foldToFoldM :: Fold x (m b) -> FoldM m x b
foldToFoldM = postMapM id . generalize

I'd be happy to submit a PR if they would be accepted as utilities. And I'm not sure those are the best names, though I'm quite fond of postMapM

I'd accept a PR for postMapM (it obeys nice laws), but foldToFoldM seems a little idiosyncratic

Made the PR (https://github.com/Gabriella439/foldl/pull/205). I also noticed what might be a typo in the documentation for premapM. The functor-law-like thing has premap on the rhs instead of premapM.
I understand why you find foldToFoldM idiosyncratic and I left it out of the PR. But, FWIW, I use it fairly often. Maybe my use-cases or style are unusual here...


Add option to use javap instead of asm

ASM desugars certain details when disassembling classfiles, for example it eliminates redundant line numbers:
$ javap -v -cp a C
...
  public void t();
...
      LineNumberTable:
        line 2: 0
        line 3: 0
        line 4: 3

whereas
$ asm a/C.class
$ cat a/C.asm
...
  public t()V
   L0
    LINENUMBER 3 L0
    LDC ""
   L1
    ASTORE 1
   L2
    LINENUMBER 4 L2

The difficulty here is finding a way to call javap without forking (which is expensive for lots of files), that will also work across a range of JDK versions. The REPL has some code do to this but its been somewhat fragile.


onDisplayModeChanged not called when client page changes display mode

Category

[x] Bug

Describe the bug
We have some web part that use onDisplayModeChanged to execute code for saving data etc - and they have worked fine for months - until some days ago.
It works fine on two tested tenants, but not on two others.
Steps to reproduce
Create a web part with code in event handler for onDisplayModeChanged, t.ex:
protected onDisplayModeChanged(oldDisplayMode: DisplayMode) {
alert("Displaymode changed");
}
-Insert web part on å client side page.
-Change mode from view to edit mode (click Edit on page toolbar). Now it's expected to see the alert message, but don't.
-Now click Save as draft or Publish - trigger display mode change - also expected to show the alert, but don't.
Also - when opening the page for debugging and place a breakpoint in the event handler, the breakpoint isn't hit.
Expected behavior
Code in onDisplayModeChanged is run - alert is shown
Environment details (development & target environment)

Your Developer Environment: Windows 10
Target Environment: SharePoint Online
Framework: Node.js v10
Browser(s): Edge
Tooling: SPFx v1.10.0
Additional details: The more context you can provide, the easier it is (and therefore quicker) to help.

Additional context
Thanks for your contribution! Sharing is caring.
Submission guidelines

We are facing same issue for one of custom web part that we are using to save data onDisplayModeChanged method.
Is any update on issue Or is there any other solution to save data when page go from Edit mode to Display?

I am also facing same issue.

Same here. It works on workbench but not on a real page

This is still a problem - any update?

Bump. Any plans to fix it in near future?

@andrewconnell  Will there be a fix on this issue?

@jklevel I can't speak on behalf of Microsoft (I don't work for Microsoft... I just was helping classify new issues for a period of time)

I am also facing this issue. Any update?

Looking into this - sorry for the (long) delay.  Will post back w/ updated info.

@patmill Any updates?

Sorry for the delay.  Switching to edit mode no longer does an in-line switch of an existing webpart instance, instead the read-mode instance is torn down, and a new edit-mode instance is created.  You will want to hook into the on-dispose of the webpart.


Add Nong Song

Song Name
filkoty
Artist Name
Filkoty
Source
Youtube
Youtube Link
https://www.youtube.com/watch?v=IagC2wU2wfo
Direct File Link
No response
Song ID
13
Start Offset [ms]
No response
Extra
No response

reject
popular songs like "Clubstep" are too inconvenient to be replaced by smth unrelated and are therefore usually rejected.
Note that you can still use the song yourself, but it won't be public


Common Browser Policy URLs

I'd imagine that a lot of the configuration URLs for browser-policy are pretty common (e.g. Typekit, FontAwesome, S3, etc.). Would be nice to create a guide for these common settings so they can just be copy and pasted (as opposed to discovered through trial and error).

Just aded these to the Meteor Patterns guide.


chore(main): release 1.12.4

:robot: I have created a release beep boop
1.12.4 (2023-11-03)
Bug Fixes

🐛 MacOS reduced to the tray to evoke failure (d7bf83b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/viarotel-org/escrcpy/releases/tag/v1.12.4 :sunflower:


Enhancement Request: Improve Model Result Traceability in Multi-Step Workflows

I've encountered some limitations while working with evaluation workflows in Chainforge, particularly when dealing with multiple models and steps. Here are the current challenges and proposed improvements:
Current Limitations
1. LLM Scorer Constraints

The LLM Scorer node cannot accept variables from previous steps
This limits its utility for comparative evaluations (e.g., comparing original text with translations from multiple models)

2. Prompt Node Display Issues
When using a regular prompt node for evaluation:

Cannot easily distinguish which model generated which result in previous steps

All results from multiple models appear under the same model in the evaluation step

Lacks visibility of the model chain/history

Use Case Example
Consider this translation evaluation workflow:

Step 1: Input (English text)
Step 2: Translation (5 different models generating Japanese translations)
Step 3: Evaluation (evaluating accuracy of all translations)

Currently, in Step 3's results, it's difficult to trace which evaluation corresponds to which model's translation from Step 2.
Proposed Solutions
Option 1: Enhanced Prompt Node Display
Add model history information to prompt node results:
Model: [Current Model]
Previous Step Model: [Model name from connected node]
Result: [Current output]

Benefits:

Better traceability in multi-model workflows
Improved evaluation efficiency
Useful for agent collaboration scenarios
Helps in comparing different model performances

Option 2: LLM Scorer Enhancement
Alternatively, enhance the LLM Scorer to:

Accept variables from previous steps
Display model lineage information

Impact
These improvements would significantly enhance:

Evaluation workflows
Multi-agent collaboration
Result analysis and comparison
Overall workflow development efficiency

Would love to hear your thoughts on which approach might be more feasible to implement. Thank you for considering this enhancement request!

The solution is to use implicit template variables, which are described here:
https://chainforge.ai/docs/evaluation/#using-implicit-template-variables-in-scorers
I know this isn't the most intutive solution but it is the only one from a design standpoint, because other solutions lead to variable name conflicts.


Update event cards

Archived past events
Update Web3Wkend to FEVM
Update ETHSF info

noticed an error in one banner


chromium-widevinecdm-plugin

Is it possible to use with chromium-widevinecdm-plugin (needed for Netflix) instead of flash plugin?
I tried a quick diff:
diff --git a/src/config_pepperflash.c b/src/config_pepperflash.c
index 98a7a98..c82e4fc 100644
--- a/src/config_pepperflash.c
+++ b/src/config_pepperflash.c
@@ -36,7 +36,7 @@ const char *pepperflash_path_list[] = {
     "/usr/lib64/chromium-browser/PepperFlash",  // chrome-binary-plugins (Gentoo/Sabayon)
     "/usr/lib/adobe-flashplugin",               // adobe-flashplugin (Ubuntu)
     "/usr/lib/chromium/PepperFlash",            // chromium-pepper-flash (Old Build) (CentOS/Read Hat/Fedora)
-    "/usr/lib64/chromium/PepperFlash",          // chromium-pepper-flash (Old Build) (CentOS/Read Hat/Fedora)
+    "/usr/lib64/chromium",          // chromium-pepper-flash (Old Build) (CentOS/Read Hat/Fedora)
     "/opt/chromium/PepperFlash",                // chromium-pepper-flash (New Build) (CentOS/Read Hat/Fedora)
     "/usr/lib/pepflashplugin-installer",        // pepflashplugin-installer (Ubuntu)
     NULL,
@@ -51,26 +51,25 @@ fpp_config_get_plugin_path_list(void)
 const char *
 fpp_config_get_default_plugin_version(void)
 {
-    return "<IP_ADDRESS>";
+    return "<IP_ADDRESS>4";
 }

 const char *
 fpp_config_get_plugin_name(void)
 {
-    return "Shockwave Flash";
+    return "Widevine Content Decryption Module";
 }

 const char *
 fpp_config_get_default_plugin_descr(void)
 {
-    return "Shockwave Flash 13.1 r2";
+    return "Widevine Content Decryption Module <IP_ADDRESS>4";
 }

 const char *
 fpp_config_get_plugin_mime_type(void)
 {
-    return "application/x-shockwave-flash:swf:Shockwave Flash;"
-           "application/futuresplash:spl:FutureSplash Player";
+    return "application/x-ppapi-widevine-cdm::Widevine Content Decryption Module";
 }

 char *
@@ -82,7 +81,7 @@ fpp_config_get_plugin_path(void)
 const char *
 fpp_config_get_plugin_file_name(void)
 {
-    return "libpepflashplayer.so";
+    return "libwidevinecdmadapter.so";
 }

 uintptr_t

Firefox now sees "Widevine Content Decryption Module", but netflix still does not work and complains about WidevineCdm problem.

(related issue: #167)

It doesn't work that way. HTML5 Encrypted Media Extensions don't use the same plugin interface as Flash does. So even if you add appropriate wrappers for PPB_ContentDecryptor API which libwidevinecdmadapter.so exposes, they are of no use.
Instead, Gecko Media Plugins interface should be used. And there is also no need of PPAPI adapters at all. Another type of adapter is still required, since Firefox and Chrome have different content decryption modules (CDMs) format. But they are similar enough to make it: https://github.com/i-rinat/gmp-widevine
Note, that you'll have to use sufficiently recent Firefox version, patch it, and compile from source. Current approach is to hardcode allowed CDM schemes, so you won't be able to load arbitrary module into mainline Firefox version.

As it cannot be implemented in freshplayerplugin at all, I'm putting "wontfix" here.

Just FYI, https://github.com/i-rinat/gmp-widevine works with FF 45 beta.


File type detection does not always work

In Game.prototype.fromData, file type is determined by the first char in data. For example, the first char of the bundled test.jgf file is not a '{'.

Hi, the test.jgf file actually only contains the tree of the moves. The actual JGF file format should start with a { symbol, as it will be an object containing a variety of other properties as well.
See https://github.com/adambuczynski/ngGo/blob/master/JGF.md for the specification.
I think the test.jgf file may be outdated, I will look into it.

I will include parsing of an array as JGF, and assume it's a JGF tree of moves.

Added in 1.2.0

Thank you!


Remove OnRuntimeUpgrade::pre/post_upgrade Tuple footgun

Old versions of the Executive pallet calls pre_upgrade and post_upgrade on a tuple of pallets which was made a silent noop in https://github.com/paritytech/substrate/pull/12537.
This can lead to confusion, see https://github.com/paritytech/substrate/issues/13681.
This PR changes the noop behavior into a noisy error to inform devs of the incorrect usage and improves documentation so it's clear how to fix it.

CI is complaining about the [`Tuple`] syntax, which needs to be fixed.

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/3398141

bot merge


Using VERCEL_URL as redirect url

Is there an update on this? https://github.com/quirrel-dev/quirrel-next/issues/3

It's already implemented in 1.0 ☺

It's already implemented in 1.0 ☺


[Book] Install Stone from sources

Write a documentation page describing how to build Stone prover/verifier from sources.
Add instruction how to locate the built binaries.
Note that MacOS/ARM enabled fork is https://github.com/baking-bad/stone-prover
Path to your markdown file: docs/pages/install/sources.md

Hi @dmirgaleev , can I be assigned this when od hack starts please?

hello @dmirgaleev i am a frontend developer and a technical writer
please can i work on this issue when the OD hack starts please :)
i would love to be a contributor on this repo

hello @dmirgaleev i am a blockchain developer and a technical writer
please can i work on this issue :) and would love to be a contributor

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
My name is Joy and I am a web3 developer and contributor. I also have experience in writing documentations.
How I plan on tackling this issue
I plan to approach this problem by writing a detailed documentation on how to build the Stone prover and verifier from different sources. I will also ensure that the documentation includes how to locate the built binaries.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I  am a blockchain developer ,this would be my first time contributing to this ecosystem.
How I plan on tackling this issue
1 Gather Information: Collect all necessary steps for building the Stone prover/verifier from the source, focusing on the MacOS/ARM fork available at baking-bad/stone-prover.

Write Documentation:

Introduction: Briefly describe what Stone prover/verifier is and its purpose.

Markdown Formatting: Format ontent in Markdown style for clarity and ease of reading. Use headers, code blocks, and lists for better organization.

Review and Test: Ensure the instructions are accurate by testing them on a MacOS/ARM system, if possible, and revise based on any issues encountered.

Add to Documentation: Save the file as docs/pages/install/sources.md and integrate it into the overall documentation structure.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
hello i am a frontend developer and a technical writer
please can i work on this issue :)
i would love to be a contributor on this repo
How I plan on tackling this issue
Review Build Instructions: Check the GitHub link for the MacOS/ARM fork for specific build details.
Gather Information: Research the necessary dependencies and tools for building Stone.
Outline Structure: Plan the markdown file’s content, including an introduction, prerequisites, step-by-step build instructions, and how to locate the built binaries.
Write Documentation: Create the markdown file at docs/pages/install/sources.md using clear language.
Review and Edit: Ensure clarity, accuracy, and consistent formatting.
Commit Changes: Save the markdown file with a clear commit message.
Seek Feedback: Optionally, request peer feedback to improve the documentation.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
Hello , I am Joseph I am a frontend developer and blockchain developer and I am also an active contributor here on only dust here is my profile https://app.onlydust.com/u/josephchimebuka. This is my first time to contribute to this repo ill appreciate the opportunity to contribute. this is an article I wrote for Karst https://medium.com/@josephchimebuka/krast-a-decentralized-social-graph-built-on-starknet-with-erc-6551-c4c9800b5a9d
How I plan on tackling this issue
I will write a documentation page describing how to build Stone prover/verifier from sources. and add instruction how to locate the built binaries.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I’m Benjamin, and I’m willing to create a new documentation page that will guide users on how to build the Stone prover and verifier from the source code. With 18 contributions since joining OnlyDust, I’m experienced in writing documentation and ready to make this process clear for everyone.
How I plan on tackling this issue
The main goal of this documentation is to help users easily understand how to compile the Stone prover and verifier from the source. I’ll provide step-by-step instructions, making sure that even those who are new to building software can follow along without any confusion.
I will also include information on how to locate the built binaries after the compilation process. This is essential because users will need to know where to find the final output once they’ve successfully built the software.
There’s a MacOS/ARM enabled fork available at baking-bad/stone-prover. This information will be crucial for Mac users who want to build the Stone prover on their systems.
The documentation will be written in a markdown file located at docs/pages/install/sources.md, making it easy for everyone to access.
To ensure that the instructions are accurate and helpful, I’ll refer to the relevant sources and follow best practices in documentation writing. After drafting the page, I will review it for clarity and completeness, and I’ll be open to feedback from you to make sure it meets the needs of the project.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I am a full-stack developer with experience in QA testing and languages like Python, Cairo, Solidity, React, and JavaScript.
How I plan on tackling this issue
i will Briefly introduce Stone prover/verifier and its purpose
Explain the scope of the documentation page
Prerequisites
List required dependencies and tools:
Operating system (e.g., Linux, macOS)
Programming languages (e.g., C++, Java)
Build systems (e.g., CMake, Maven)
Libraries (e.g., gmp, zlib)
Downloading Sources
Provide instructions on downloading the Stone source code:
Git repository URL
Version control system (e.g., Git, SVN)

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
hello i am a frontend developer and a technical writer
please can i work on this issue :)
i would love to be a contributor on this repo
How I plan on tackling this issue
please kindly assign me and i'll get straight to work

Hello @Joy-Adah! Welcome aboard! Please don't hesitate to join our Telegram group https://t.me/baking_bad_odhack to ask questions and share your progress!  Happy hacking!

Hello @dmirgaleev thanks!

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
hello i would love to take on this issue
How I plan on tackling this issue
kindly assign :)

Hello @MullerTheScientist! Welcome aboard! Please don't hesitate to join our Telegram group t.me/baking_bad_odhack to ask questions and share your progress! Happy hacking!

hello @dmirgaleev Thank you for assigning me this issue!

Friendly heads up that you have till Sunday (October 6) to push final PR. @MullerTheScientist


Idea for more consistent NodeKey

Currently None can mean either No or Any
(None, None):matches nodes with no tag, regardless of name
(the full current table of values with a consistent tabular syntax:
Value     	            	 	: Meaning  	.
Tag       	 Name        	 	: Tag      	Name
          	 "nodename" 		: any      	specified
(None     	, None      	)	: no       	any
(None     	, "nodename"	)	: no       	specified
("tagname"	, None      	)	: specified	any
("tagname"	, "nodename"	)	: specified	specified

Maybe instead a "" could signify any, while None mean only no, and then you could also have a side benefit of consistent type - always a tuple of two strings?
Value     	            	 	: Meaning  	.
Tag       	 Name        	 	: Tag      	Name
(""       	,"nodename" 	)	: any      	specified
(None     	, ""        	)	: no       	any
(None     	, "nodename"	)	: no       	specified
("tagname"	, ""        	)	: specified	any
("tagname"	, "nodename"	)	: specified	specified

The issue is that "" is a valid node name; all strings are valid (for both names and tags). So I need a non-string value to indicate the other values. (Two values, for tags.)
I agree it's slightly suboptimal that None indicates different things for name vs tag, but I'm a bit boxed in on ergonomics. All nodes have a name, so I only need to indicate the "any name" state, and using None for it is the most obvious, intuitive thing. Tags are optional, so I need to indicate both "no tag" and "any tag", and there's not an obvious second value to use. I'd also prefer for the simplest thing you write to be "any tag", as usually the tag won't matter, and that means plain string should do it.
I could, in theory, allow None in the tuple to mean "any tag", so "foo" and (None, "foo") were synonyms, but again, I'd then have to come up with a third value to indicate "no tag", and I don't see an obvious one.
The current design, where not saying anything about the tag indicates "any tag" and giving None as the tag indicates "no tag" seems to be the best ergonomics, even tho None as the node name indicates something else.

Following up on this, because I ended up commenting on a different issue:
I have indeed made NodeKey both more feature-ful and consistent now. The "tag" and "node" portions of NodeKey can now both be None, ... (matching anything), a string, a regex, or a predicate function; the only difference in their behavior is that None matches any node name, similar to ..., since node names can't be None in the first place. You can still pass a place NameKey if that's all you want, or a tuple of (TagKey, NameKey).


1Application-frontend - Improvements to Navbar Layout and Styling

Overflow Issue:

Problem: The "Tech Team" option and profile icon in the navbar was overflowing and going out of view.
Solution: We have adjusted the layout to ensure that all menu items are displayed without overflowing or clipping.

"Thinks Well" and "JAVASCRIPT PROJECTS" Text Wrapping:

Problem: The "Thinks Well" and "JAVASCRIPT PROJECTS" text was breaking into two lines and was going out of navbar, causing the layout to look less appealing.
Solution: We've made modifications to the CSS to ensure that both are displayed properly.
Before:

After:

I'll submit a PR for it.

Here's the PR - https://github.com/thinkswell/javascript-mini-projects/pull/1088 for this issue, @thinkswell @PBJI


is it possible to add extra nic when poding is running ?

Does multus support it currently ?or it can be improved to support it ?
thanks

Hi @ftiannew -- Multus doesn't currently support dynamic attachments.
Something you may be interested in is a fork of Multus called "kactus" which does do dynamic attachments: https://github.com/kaloom/kubernetes-kactus-cni-plugin
If you have use cases for dynamic attachments, you may wish to join the meetings for the network plumbing working group and discuss your use case and bring this functionality forward: https://github.com/k8snetworkplumbingwg/community
Thanks for your interest!


Clarify documentation

What a fantastic project this is, and handlebars-i18n, which I hope to use and support.
I am not an experienced node developer, and am having difficulties getting the expected outcome following your instructions on my ARM macOS (Ventura 13.0.1).
For example:
mkdir cli-test
cd cli-test
npm i handlebars-i18n-cli
i18n-collect examples/templates/*.html examples/generated/translations.json --lng=de,fr,en

returns an error message of:
zsh: command not found: i18n-collect

What is the missing step so that the i18n-collect command is recognised by the cli?

FYI I also got the same result with:
git clone git@github.com:collaboratory-int/handlebars-i18n-cli.git
cd handlebars-i18n-cli
npm i handlebars-i18n-cli
i18n-collect examples/templates/*.html examples/generated/translations.json --lng=de,fr,en

Thank you for the appreciation and your reporting. I also get this error now on my laptop which runs a more recent MacOS then the one I developed the module on. My first guess is that zsh is now the common shell on Macs but the module was developed still in the realm of bin/bash. But I need to research on this error. What you could try in the meantime is if you can change your shell to bin bash and see if this works. Run chsh -s /bin/bash in a Terminal Window to switch your shell from Zsh to Bash, then restart your Terminal. New terminal windows will open using Bash. Alternatively (and just for the moment being, of course) you could cd in to node_modules/handlebars-i18n-cli and prompt npm run i18n-collect ../examples/templates/sample-template.html ../examples/generated/my.json -- -lng=de,fr,en. This command is specified in the package.json scripts. Note the double dash ' -- ' before the argument(s).

Thanks very much for the work around - don't really want to switch back to bash as I should probably learn my way around zsh. I just had to make sure I had created the examples/generated/ directory and away it went!
Thanks for all your work and for such a quick response!

Good to hear that it worked for you. For curiosity's sake: after you created examples/generated/ only the work around did it, right? Or did the whole zsh: command not found: i18n-collect go away? Because I would very much like that the CLI eventually runs under zsh just as it does in bash  ...

You are right - I still had to run it within the node_modules/handlebars-i18n-cli directory

I found out, that the error zsh: command not found: i18n-collect is prompted when the module misses linking. To fix this, you can run in your shell:
cd node_modules/handlebars-i18n-cli
sudo npm link

After this the command  i18n-collect should be generally available outside the handlebars-i18n-cli folder. I also added this info to the documentation of version 1.0.1


Documentation for Application gateway Mutual Authentication

Does the below text from the documentation needs correction?
"Mutual authentication, or client authentication, allows for the Application Gateway to authenticate the client sending requests. Usually, only the client is authenticating the Application Gateway; mutual authentication allows for both the client and the Application Gateway to authenticate each other."

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 071598c9-9683-0915-0fe4-436cc4e7080b
Version Independent ID: 3d2ea976-4cc2-f103-f6de-c3ed0e54abb4
Content: Overview of mutual authentication on Azure Application Gateway
Content Source: articles/application-gateway/mutual-authentication-overview.md
Service: application-gateway
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

@mikhilsanghvi ,
Thank you for reaching out. I see the issue was closed and I assuming the issue was resolved. Please tag me in your response if you have any additional questions. Thank you!


Consider adding proxy support?

Sometimes people use such a tool because the development enviroment banned direct connection to https://huggingface.co
Please make this support proxy configuration.

this can be done, but on Linux you can simply set Env variable that go will use:
export HTTP_PROXY="http://proxyIp:proxyPort"
if this is not what majority looking for, I can still add it


Some holidays of Uruguay are incorrect.

Hello.
Some holidays for Uruguay are incorrect.

The Battle of stones was in May, 18.
The Respect for Cultural Diversity Day or Columbus day is October, 12.

In Uruguay are 2 categories of holidays (laborables and not laborables). In the not laborable holidays nobody works while in the laborable holidays the work is optional.
The not laborables holidays are:

01/01
01/05
18/07
25/08
25/12

The rest of holidays are laborables, and depending of the day of the week, some of them are moved to earlier monday or to the next friday. The rule is:

If the holiday is tuesday or wednesday, they moved to earlier monday.
If the holiday is thursday, is moved to next friday.
If the holiday is in monday or friday, doesn't move.

That is the reason of the error.
For example, the Battle of the Stones is the May, 18. In 2021 was tuesday and was moved to the earlier monday that was May, 17.
One exception to this rule is the November, 2 ("Día de los difuntos"). This holiday is laborable, but doesn't move.
Best regards.

@oteroalejandro  I'm working on this issue. Thanks for pointing out the problem.
One question:  do you get an extra day off (observance) if not laborable holiday falls on weekend?

By the way, this is what Wikipedia states:
According to Uruguayan Law 16,805 with modifications of Law 17,414, the holidays declared by law, subject to the commemoration of them, follow the following scheme (whose commemoration as “moveable holidays”):

If coincide on Saturday, Sunday or Monday will be observed in those days.
If occur on Tuesday or Wednesday, will be observed on Monday immediately preceding.
If occur on Thursday or Friday shall be observed on the Monday immediately following

It is a bit different from your explanation. Could you please clarify this? Thanks!

Hi Kate.
In the case a not laborable holiday falls on weekend, we don't get any
extra day.
[image: Logo]
https://mailtrack.io/trace/link/1198366dea37c3e1f186c6569157d85010525afa?url=https%3A%2F%2Fwww.acceleanation.com&userId=7259985&signature=f5b9c321d1b4c8b6
Cr. Alejandro Otero
Consulting Manager
e: @.***
w: acceleanation.com
https://mailtrack.io/trace/link/796c3c61a2a904b5f2e5e6a20a7bcc6f31db93fe?url=https%3A%2F%2Fwww.acceleanation.com&userId=7259985&signature=034bc373cc95696f
m: +598 99119120
Book a meeting with me: 15min
https://mailtrack.io/trace/link/7d344c211d5d322a1276818422b980f22bbe6057?url=https%3A%2F%2Fcalendly.com%2Foteroalejandro%2F15min&userId=7259985&signature=e0a6ac9c0fbe139d
| 25min
https://mailtrack.io/trace/link/2332a2f58c83ca7c5f312b106a0793f9a2a7c7fe?url=https%3A%2F%2Fcalendly.com%2Foteroalejandro%2F25min&userId=7259985&signature=56ab97f153373533
| 50min
https://mailtrack.io/trace/link/cb411452873f7e8a99c7f015769f7fa632e58206?url=https%3A%2F%2Fcalendly.com%2Foteroalejandro%2F50min&userId=7259985&signature=02b6aca2a820a339
El vie, 21 oct 2022 a la(s) 15:12, Kate @.***) escribió:

@oteroalejandro https://github.com/oteroalejandro I'm working on this
issue. Thanks for pointing out the problem.
One question: do you get an extra day off (observance) if not laborable
holiday falls on weekend?
—
Reply to this email directly, view it on GitHub
https://github.com/dr-prodigy/python-holidays/issues/745#issuecomment-1287288094,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARMB7HUKBESZJPI5XRWA3ALWELMI5ANCNFSM6AAAAAARJCG7LE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi Kate.
I checked with colleagues, and wikipedia is right. If the holiday is
Thursday or Friday, it's moved to next monday.
Another thing... In addition to November 2, exceptions to the holiday
movement rules are on January 06 and June 19. These holidays do not move
despite being working days.
Thanks a lot for your work.
Best regards.
[image: Logo] https://www.acceleanation.com
Cr. Alejandro Otero
Consulting Manager
e: @.***
w: acceleanation.com https://www.acceleanation.com
m: +598 99119120
Book a meeting with me: 15min https://calendly.com/oteroalejandro/15min |
25min https://calendly.com/oteroalejandro/25min | 50min
https://calendly.com/oteroalejandro/50min
El vie, 21 oct 2022 a la(s) 15:17, Kate @.***) escribió:

By the way, this is what Wikipedia
https://en.wikipedia.org/wiki/Public_holidays_in_Uruguay#Moveable_holidays
states:
According to Uruguayan Law 16,805 with modifications of Law 17,414, the
holidays declared by law, subject to the commemoration of them, follow the
following scheme (whose commemoration as “moveable holidays”):

If coincide on Saturday, Sunday or Monday will be observed in those
days.
If occur on Tuesday or Wednesday, will be observed on Monday
immediately preceding.
If occur on Thursday or Friday shall be observed on the Monday
immediately following

It is a bit different from your explanation. Could you please clarify
this? Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/dr-prodigy/python-holidays/issues/745#issuecomment-1287293377,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARMB7HX47FOE744ZFT2KQQ3WELM4FANCNFSM6AAAAAARJCG7LE
.
You are receiving this because you were mentioned.Message ID:
@.***>

In addition to November 2, exceptions to the holiday movement rules are on January 06 and June 19. These holidays do not move despite being working days. Thanks a lot for your work. Best regards. >

Yes, I noticed that as well in Wikipedia.
Thanks for the clarification!

Fixed by @kasya and merged in beta.. thx! 👍


parseZone without timezone returning unexpected result

If you provide a timestamp with no timezone offset to parseZone it seems to parse it in your browser's timezone, but then sets the _offset to 0 and _isUTC to true. This seems unexpected.
> moment.parseZone("2016-02-01T00:00:00").format()
"2016-02-01T08:00:00+00:00"

I would expect either 2016-02-01T00:00:00+00:00 or 2016-01-31T16:00:00-08:00 (assuming my browser's offset is -08:00). I think moment.utc(s).utcOffset(s) basically provides the former.

(Also moment.utc(s).utcOffset(s) doesn't work in some cases, e.x. it interprets the -DD in YYYY-MM-DD as an offset)

Calling this a bug. Moment is getting pretty confused by there not actually being a zone there.

Does anyone have a preference for expected behavior? I looked at this one and I honestly wasn't sure what I thought it should do.

Yeah, me neither. I'm tempted to back 2016-02-01T00:00:00+00:00 though. I think it really needs to be in a fixed-offset zone or else it's really inconsistent with the way it normally behaves. And if it is in fixed-offset mode, I think it's confusing for it to use the local offset, because otherwise the user might think it's using the local TZ. Having it return a UTC time just seems safer. I'm not sure either behavior is obvious but I think it will be easier for the user to see what's happening.

So moment.parseZone should set fixed offset to 0 (if nothing else found). I guess an else clause in setOffsetToParsedOffset should do the trick.


bundle is sourced before neobundle#end when it is depends on by another bundle

minimal vimrc to reproduce:
set nocompatible
filetype off
set runtimepath+=$HOME/.vim/bundle/neobundle.vim/
call neobundle#begin('$HOME/.vim/bundle')
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'google/vim-maktaba'
NeoBundle 'google/vim-glaive', { 'depends' : ['vim-maktaba'] }
echom neobundle#is_sourced('vim-maktaba')
call neobundle#end()
filetype plugin indent on

It is intended behavior.
Closing.

In the past no bundle will be sourced before neobundle#end(), is this not true anymore?

Also, the help document for NeoBundleDisable is the following:
NeoBundleDisable {name}...                     :NeoBundleDisable
Disables bundles specified by {name}.  If a bundle is
disabled, its path will be removed from 'runtimepath'.
Note: This command must be executed before neobundle loads
the plugins(after neobundle#end()).
But because the bundle can be sourced before neobundle#end(), NeoBundleDisable will complain that the bundle cannot be disabled, even if it is before neobundle#end().

In the past no bundle will be sourced before neobundle#end(), is this not true anymore?

Yes.

But because the bundle can be sourced before neobundle#end(), NeoBundleDisable will complain that the bundle cannot be disabled, even if it is before neobundle#end().

The plugin cannot be disabled.  Because, it is depended on other plugins.

Sure, I agreed that a plug cannot be disabled if it is depended by other plugins.
But I think a vimrc like the following should be valid:
set nocompatible
filetype off
set runtimepath+=$HOME/.vim/bundle/neobundle.vim/
call neobundle#begin('$HOME/.vim/bundle')
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'google/vim-maktaba'
NeoBundle 'google/vim-glaive', { 'depends' : ['vim-maktaba'] }
NeoBundleDisable vim-glaive
NeoBundleDisable vim-maktaba
call neobundle#end()
filetype plugin indent on
However because vim-maktaba is sourced before neobundle#end(), the above NeoBundleDisable for vim-maktaba will be invalid.

Unfortunately, I cannot fix it.
neobundle's dependency feature is too complex.
In dein.vim, the dependency feature is improved.

ok, thanks for your time.


[CELEBORN-487][PERF] ShuffleClientSide support blacklist to avoid client side timeout in same worker multiple times

What changes were proposed in this pull request?
During test if three worker one worker was stuck,
Before improve

It was caused by for one shuffle, there may have not only one partition on the stuck worker, then it will cause the shuffle client delay several timeout times during push data.
Also if for merged data, it may also push to the stuck node even after we have revive the partition location.
After this pr

Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

ping @waitinfuture @RexXiong @FMX @pan3793

ping @waitinfuture any more suggestion

Given that we already possess a WorkerStatusTracker to monitor the status of workers, we can leverage the existing functionality of the WorkerStatusTracker to streamline the implementation of the blacklist logic? @AngersZhuuuu @waitinfuture

Yea, we have thought about such things but plat to do this later. If you want to do it, just do it.

Hi @cfmcgrady , thanks for your interest on the blacklist functionality! Currently the design is quite complicated, I try to explain.

There are three roles who have blacklist: Master, LifecycleManager(in Driver of Spark, and JobMaster of Flink), and ShuffleClientImpl(in Executor of Spark, and TaskManager of Flink). The three roles have different ways to decide which worker is blacklisted.
For Master, the only way to put a worker into blacklist is when a worker tells that it has no available disks. See AbstractMetaManager.updateWorkerHeartbeatMeta. Notice that if a worker has heartbeat timeout or is stopped without graceful shutdown, the Master simply removes the worker from the blacklist, see AbstractMetaManager.updateWorkerLostMeta. If a worker is graceful shutdown, it is put in the shutdownWorkers
For LifecycleManager, there are three ways to put a worker into local blacklist.

Reported by worker through Revive and PartitionSplit, and only certain causes will consider as should be blacklisted, for example PUSH_DATA_WRITE_FAIL_MASTER/PUSH_DATA_CREATE_CONNECTION_FAIL_MASTER, see ChangePartitionManager.handleRequestPartitions
When LifecycleManager encounters RPC failure to worker, for example commit files failure and reserve slots failure, see WorkerStatusTracker.recordWorkerFailure
Refreshed by the Master through heartbeat response. HeartbeatFromApplicationResponse will return blacklist/shutdownWorkers/unkownworkers from Master. The fresh logic is in WorkerStatusTracker.handleHeartbeatResponse.

For ShuffleClientImpl, the reason to put a worker into local blacklist is when push data fails, and only certain causes will be put into blacklist, see ShuffleClientImpl.revive. The cause will be passed to LifecycleManager through Revive. The local blacklist is refreshed according to ChangeLocationResponse and RegisterShuffleResponse.

So, Master's blacklist is from worker status, ShuffleClientImpl's blacklist is from itself, LifecycleManager's blacklist is from Master/ShuffleClientImpl/LifecycleManager. And the priority is Master > LifecycleManager > ShuffleClientImpl.
I'm not sure if all three roles' blacklist logic can be unified by WorkerStatusTracker, although it'll be great if it can.
BTW, ShuffleClientImpl also has blacklist for shuffle read.

It worth to write a blog to explain how the blacklist mechanism works :)

It worth to write a blog to explain how the blacklist mechanism works :)

Yeah, and lots of other modules : )

thanks for the detailed explanation.


[Platform] More consistent entrypoints across different platforms

This PR makes the entrypoint consistent across different platforms. Previously both /bin/bash are apiserver are used.

IIRC the entrypoint is kept this way on purpose for ROCm. cc @hongxiayang

I'd love to understand the rationale behind this. IMO we should have consistent behavior. This can be overridden at container execution time anyways.

Should we change all entrypoints to bash then?

Personally, I think it's easy enough for developers to override the entrypoints via --entrypoints CLI option, while users are more inclined to run the Dockerfiles directly (though they also have the option to pull the official Docker images for some platforms). @simon-mo are these Dockerfiles intended to be mainly for users or developers?


Douglas Feuser to Contributors list

Douglas Feuser to Contributors list

@Douglasfeuser, I'm quite elated about your pull request. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a pull request and learned that I merged it?
We’ve recently added Facebook share and tweet feature to our web app. Could you please go to https://roshanjossey.github.io/first-contributions/#social-share and share your first contribution to open source?
Also, check out projects with easy issues while you’re there.


contentctl_default.yml template file missing in main branch

Hi team,
First of all, love this tool and functionality. Learned about it at .conf23 and we are in the process of leveraging it internally.
While going through the setup process, I noticed that the contentctl_default.yml template file is missing from the main branch. It is present in other branches with what appears to be an older format. The file is linked from the README file which is how I found the issue. I figured this might have been an oversight so I thought to open an issue.
Thanks!

Hi @obpedro !  Thanks for raising this issue.  The documentation is here is a bit out of date. Let me explain:
When you first run contentctl init we now create TWO configuration files.  contentctl.yml and contentctl_test.yml . We've chosen to split these files up as both of them have grown quite long and, potentially, confusing.   Happy to hear your feedback on whether we should keep these separate or combine them into one larger file.
The current way to see what apps are installed, and modify them, would be by making changes in the contentctl_test.yml  file.  In terms of precedence, we will try to use the local_path for installing each app here and, if you have not specified it, will fall back to using the http_path.
There is even support here for downloading your apps from Splunkbase, in which case we we download them for you at runtime!  Unfortunately, right now this would require the inclusion of your splunkbase_username and splunkbase_password in plain text at the top of this file, which is why the functionality is current not well-documented.  We will add support to include these credentials via command line or environment variable soon.
Please also note that when logging into the container we set up with contentctl test, you will need to use the splunk_app_password stored in this file as well.
I will leave this issue open since I need to:

Update the documentation with a correct, and better, explanation of the contentctl_test.yml file
Allow a number of more secure ways to pass credentials

Thank you for the reply and the explanation! That makes sense. I think I was confused by seeing a link to contentctl_default.yml (not _test.yml).
It would be helpful to have a contentctl.yml/contentctl_test.yml with example values / a brief description of how to fill out some of the fields, what is valid vs what isn't, like the slack and email fields which expect a value in "dict" format. (haven't gotten these to work yet, so I've been leaving them set to the default of null). Most of the fields are self explanatory, but I've had a difficult time with some of them :)
Thanks again!

Hello,
We use your nice tool and we wanted to know when you will add more secure ways to pass credentials when deploy app (instead of plain text in contenctl.yml).
We saw in the "https://github.com/Capgemini-UCF/contentctl/blob/main/contentctl/contentctl.py" file that "def api_deploy(args)" can get "args.username" and "args.password" but it's not documented.
In this issue you talked about credentials "via command line or environment variable soon" so I post here !
Thank you very much !


Resolve merge conflict on #15147

Please provide a description for what this PR is for.
This is a cherry pick of #15147 with merge conflicts resolved in the event we need to get this in for a 1.2 release today before a rebase can be done. All work done by @ramaraochavali
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: howardjohn
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS [howardjohn]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: howardjohn, nmittler
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS [howardjohn,nmittler]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

CLA: careful cherrypick from a signed off PR.

@howardjohn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

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

@howardjohn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

prow/integ-framework-local-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-framework-local-presubmit-tests-master

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

@howardjohn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

prow/integ-framework-local-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-framework-local-presubmit-tests-master

prow/integ-mixer-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-mixer-k8s-presubmit-tests-master

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

@howardjohn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

prow/integ-framework-local-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-framework-local-presubmit-tests-master

prow/integ-mixer-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-telemetry-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-telemetry-k8s-presubmit-tests-master

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

@howardjohn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

prow/integ-framework-local-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-framework-local-presubmit-tests-master

prow/integ-mixer-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-telemetry-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-telemetry-k8s-presubmit-tests-master

prow/e2e-bookInfoTests-trustdomain.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test e2e-bookInfoTests-trustdomain-master

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

/test integ-framework-local-presubmit-tests-master

/test istio-unit-tests-master

@howardjohn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-unit-tests-master

prow/integ-mixer-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-telemetry-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-telemetry-k8s-presubmit-tests-master

prow/e2e-bookInfoTests-trustdomain.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test e2e-bookInfoTests-trustdomain-master

prow/racetest.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test istio-racetest-master

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

/test istio-unit-tests-master
/test integ-mixer-k8s-presubmit-tests-master
/test integ-telemetry-k8s-presubmit-tests-master
/test e2e-bookInfoTests-trustdomain-master
/test istio-racetest-master

@howardjohn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
b76e5a5dee512b1950843c20b48cbd7ff595b513
link
/test integ-mixer-k8s-presubmit-tests-master

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

/test integ-mixer-k8s-presubmit-tests-master


Problem in installation

Hi,
when I use py -m pip install parstdex  command I get the followings which states that there is something wrong with the package:
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting parstdex
  Downloading parstdex-1.3.1-py3-none-any.whl (44 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.9/44.9 kB 170.8 kB/s eta 0:00:00
Collecting pytextspan~=0.5.0
  Downloading pytextspan-0.5.4.tar.gz (9.2 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]

      Cargo, the Rust package manager, is not installed or is not on PATH.
      This package requires Rust and Cargo to compile extensions. Install it through
      the system's package manager or via https://rustup.rs/

      Checking for Rust toolchain....
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

P. S. 1- I use python 3.10 version
2- Actually I wanted to use QuestionGenerator from here but I got the error that states ModuleNotFoundError: No module named 'parstdex' and stopped with the above-mentioned problem.
Any Idea how should I solve it?
Thanks in advance

Hi, Thanks for reaching out.
I was able to reproduce the error on python 3.10. This is because our package is dependent on the pytextspan package. I need to check which version of pytextspan is compatible with python3.10 and upgrade our requirements.txt. I will let you know. By the way, I also test our package on both python3.8 and 3.9, and the installation was successful.

I opened an issue in pytextspan regards of this issue, but if I don't get anything from them I will delete this dependency in the future and implement the features.  For now, I just can say if it's possible, continue your project on a lower version of pythons like 3.9, 3.8, or 3.7. Thanks.

Great! Thank you.
I used python 3.8 and as you said I did not get the above error. But I got a new error in generating questions. Do you mind checking this issue whenever you have time?

Hi,
Having fixed the problem with pytextspan package, our package now works perfectly on Python3.10.