SecretClient.list_properties_of_secrets() nextlink URL does not match the original vault URL provided to the secret client

Package Name:  azure.keyvault.secrets.SecretClient
Package Version: 4.7.0
Operating System: Amazon Linux 2
Python Version: 3.8.16

Describe the bug
When constructing the SecretClient with a custom domain name for the Azure Vault URL and calling list_properties_of_secrets() method, the nextlink for the ItemPaged iterator returns the default public Vault URL.
This causes subsequent iterations to fail.
To Reproduce

Connecting to Azure Key Vault using a Private Endpoint with an Azure Application Gateway

The problem may also exist if just using a Private Endpoint without Azure Application Gateway

Custom DNS record resolves to the front end of the Azure Application Gateway
Construct the SecretClient with the vault_url set to the URL of the Application Gateway
Call SecretClient.list_properties_of_secrets()
If the number of secrets exceeds the page and a nextlink is returned for the ItemPaged iterator, the nextlink is set to the public URL of the Key Vault
The next API calls to Key Vault Secrets uses the public vault URL

Expected behavior
The nextlink URL should match the FQDN of the original vault_url supplied to the SecretClient
Verbose Logs Output
18/04/2023 07:45:06: DEBUG: https://my-example-key-vault.custom.domain.name:443 "GET /secrets?api-version=7.4 HTTP/1.1" 200 6307
18/04/2023 07:45:06: INFO: Response status: 200
Response headers:
'Date': 'Tue, 18 Apr 2023 07:45:06 GMT'
'Content-Type': 'application/json; charset=utf-8'
'Content-Length': '6307'
'Connection': 'keep-alive'
'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Expires': '-1'
'x-ms-keyvault-region': 'eastasia'
'x-ms-client-request-id': 'REDACTED'
'x-ms-request-id': 'REDACTED'
'x-ms-keyvault-service-version': '1.9.775.1'
'x-ms-keyvault-network-info': 'conn_type=PrivateLink;private_endpoint=/subscriptions/REDACTED/resourceGroups/REDACTED/providers/Microsoft.Network/privateEndpoints/REDACTED;addr=REDACTED;act_addr_fam=InterNetworkV6;'
'X-Content-Type-Options': 'REDACTED'
'Strict-Transport-Security': 'REDACTED'
18/04/2023 07:45:06: DEBUG: Response status: '200'
Response headers:
'Date': 'Tue, 18 Apr 2023 07:45:06 GMT'
'Content-Type': 'application/json; charset=utf-8'
'Content-Length': '6307'
'Connection': 'keep-alive'
'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Expires': '-1'
'x-ms-keyvault-region': 'eastasia'
'x-ms-client-request-id': 'REDACTED'
'x-ms-request-id': 'REDACTED'
'x-ms-keyvault-service-version': '1.9.775.1'
'x-ms-keyvault-network-info': 'conn_type=PrivateLink;private_endpoint=/subscriptions/REDACTED/resourceGroups/REDACTED/providers/Microsoft.Network/privateEndpoints/REDACTED;addr=REDACTED;act_addr_fam=InterNetworkV6;'
'X-Content-Type-Options': 'nosniff'
'Strict-Transport-Security': 'max-age=31536000;includeSubDomains'
Response content:
{"value":[REDACTED],"nextLink":"https://REDACTED.vault.azure.net:443/secrets?api-version=7.4&$skiptoken=REDACTED"}
18/04/2023 07:45:06: DEBUG: Request URL: 'https://REDACTED.azure.net:443/secrets?api-version=7.4&$skiptoken=REDACTED'
Request method: 'GET'
Request headers:
'x-ms-client-request-id': 'REDACTED'
'User-Agent': 'azsdk-python-keyvault-secrets/4.7.0 Python/3.8.16 (Linux-4.14.296-222.539.amzn2.x86_64-x86_64-with-glibc2.2.5)'
Request body:
This request has no body
18/04/2023 07:45:06: INFO: Request URL: 'https://REDACTED.vault.azure.net:443/secrets?api-version=REDACTED&$skiptoken=REDACTED'
Request method: 'GET'
Request headers:
'x-ms-client-request-id': 'REDACTED'
'User-Agent': 'azsdk-python-keyvault-secrets/4.7.0 Python/3.8.16 (Linux-4.14.296-222.539.amzn2.x86_64-x86_64-with-glibc2.2.5)'
No body was attached to the request
18/04/2023 07:45:06: DEBUG: Starting new HTTPS connection (1): REDACTED.vault.azure.net:443
18/04/2023 07:47:15: DEBUG: Request URL: 'https://REDACTED.vault.azure.net:443/secrets?api-version=7.4&$skiptoken=REDACTED'
Request method: 'GET'
Request headers:
'x-ms-client-request-id': 'REDACTED'
'User-Agent': 'azsdk-python-keyvault-secrets/4.7.0 Python/3.8.16 (Linux-4.14.296-222.539.amzn2.x86_64-x86_64-with-glibc2.2.5)'
Request body:
This request has no body
18/04/2023 07:47:15: INFO: Request URL: 'https://REDACTED.vault.azure.net:443/secrets?api-version=REDACTED&$skiptoken=REDACTED'
Request method: 'GET'
Request headers:
'x-ms-client-request-id': 'REDACTED'
'User-Agent': 'azsdk-python-keyvault-secrets/4.7.0 Python/3.8.16 (Linux-4.14.296-222.539.amzn2.x86_64-x86_64-with-glibc2.2.5)'
No body was attached to the request

I've been able to implement the following workaround for this problem, however, this issue should still be resolved.
By using the by_page() method of the ItemPaged returned object, it's possible to override the continuation_token before the next page is retrieved from the API.
secret_properties = secret_client.list_properties_of_secrets()         pages = secret_properties.by_page()         for page in pages:             if pages.continuation_token:                 if urlparse(pages.continuation_token).hostname != urlparse(secret_client.vault_url).hostname:                     pages.continuation_token = pages.continuation_token.replace(urlparse(                         pages.continuation_token).hostname, urlparse(secret_client.vault_url).hostname)              for secret in page:                 print(secret.name)

Hi @krissmilne , thank you for the feedback. We will investigate and get back to you asap.

Hi @krissmilne, thank you for opening an issue! I'm glad you were able to figure out a temporary workaround. Just to confirm, is the https://my-example-key-vault.custom.domain.name:443 URL in your log output referring to the desired, private vault name while the https://REDACTED.vault.azure.net:443 URL refers to the public vault name?
If that's the case, it looks like our library may have to interpret the service response and conditionally decide whether to use the nextLink domain, much like what you implemented in your workaround. That's something we'd need to discuss with the service team, as modifying the service response instead could make this easier and less error prone.

Hi @mccoyp , that is correct, the original vault_url provided to the SecretClient was https://my-example-key-vault.custom.domain.name:443 this has been modified for the purposes of this public issue. This is a private DNS name that resolves to a Private Endpoint. The Azure REST API appears to respond with the nextlink that resolves to the Key Vaults default public URL https://REDACTED.vault.azure.net:443.
I agree with your assessment, this appears to be an issue with the REST API service that is responding incorrectly, rather than an issue with the Python SDK.

Hi @krissmilne, thank you for the confirmation. I'll tag someone from the service team on this so we can discuss how to best handle this scenario.
@jlichwa, do you know who would be best to discuss this issue with? To summarize, the nextLink provided in paging responses is referring to the public URL for a vault instead of the private endpoint that was provided to the client and used in the original secret property list request.

Private endpoint uses the same .vault.azure.net DNS domain as any other vault. There is no support in Key Vault for using custom domain names to access a vault. Key Vault wouldn't respond with a TLS certificate that is valid for any custom domain.

Could it be that the use of a custom domain name is enabled by Azure Application Gateway? https://learn.microsoft.com/azure/application-gateway/features

I missed that part of the original bug, that would explain why TLS works. It also explains why when I look at the AKV logs for these calls, they use <name>.vault.azure.net instead of the custom domain. It wouldn't surprise me if we're being passed the custom host in a header, but we're going to ignore it. Honoring the header would prevent AKV from ever putting itself behind its own gateway (since each gateway in the chain overrides the host).
The topology described here isn't one the Key Vault team documents or tests.

Hi @seanbamsft  and @mccoyp, to confirm the use case that has been used to reproduce this issue. Yes we are connecting to Key Vault through the following mechanism:
Client > Azure Application Gateway Front End (with custom private DNS name and enterprise cert) > Azure Private Endpoint > Azure Key Vault
It's plausible that the client may establish a connection to Azure Key Vault through a variety of patterns where the FQDN used by the client is not the FQDN of the Azure Key Vault. This is true for any number of enterprises with different security requirements or implementations. This could by through SSL terminating proxies, load balancers or other security devices.
The issue here is that the nextLink includes the FQDN of the domain rather than just the next token that the client can include in the request. The API shouldn't assume the connectivity pattern being used by the client to establish the connection.
If modifying the behavior of of the service response isn't possible due to breaking changes for existing use cases, or because Key Vault doesn't know the original FQDN used by the client in the connectivity chain. Is it possible for the Python SDK to be modified to make it easier for the continuation_token to be accessed and modified?
Currently the continuation_token is only accessible on the azure.core.paging.PageIterator class object which is returned by the azure.core.paging.ItemPaged.by_page() method. Could the 'azure.core.paging.ItemPaged' class be modified to also include the continuation_token attribute so that it can be conditionally modified when iterating.
for example:
secret_properties = secret_client.list_properties_of_secrets()
for secret in secret_properties:
    if secret_properties.continuation_token:
        if urlparse(secret_properties.continuation_token).hostname != urlparse(secret_client.vault_url).hostname:
            secret_properties.continuation_token = secret_properties.continuation_token.replace(urlparse(
                secret_properties.continuation_token).hostname, urlparse(secret_client.vault_url).hostname)
        print(secret.name)

I just remembered that the azure.core.paging.ItemPaged is a shared class used by many of the Python SDK libraries. So the attribute or method would need to be more generic. So a better example would be:
secret_properties = secret_client.list_properties_of_secrets()
secret_properties.honor_request_url()
for secret in secret_properties:
        print(secret.name)

Hi @krissmilne, thank you so much for the scenario details and investigation. We haven't seen this specific use case before, at least with Key Vault, so it's something we'll need to discuss further with the service team and within the SDK team.
If it's alright with you, I'd like to mark this issue as a feature request and look into adding support accordingly.

Hi @mccoyp , apologies for the delayed response, happy for this to be marked as a feature request, the workaround I've implemented is working for the time being.
Incidentally I was working with the Azure Storage Container list_blobs method and noticed that the continuation_token on the PageIterator for blobs does not return the full URL and instead only returns a token to be used for the next page. This is the expected behavior for a next page token and how Azure Key Vault should behave. Its a little confusing why different service teams have chosen different design patterns for their APIs.

The Azure REST API Guidelines specify that collection responses should return a nextLink field with an absolute URL for the next page of the collection. The Azure Storage REST API is older than the guidelines, so it is not consistent with them.

Thanks @seanbamsft , that provides much more clarity on the expected behavior and rational.


thead, tfoot?

Hey @eshvedai
I noticed you built this basically with a model in mind where there is only a single <tbody> element inside of the table. Is there a specific reason for why you avoided the <thead> and <tfoot>?

Are there any plans to add support for thead and tfoot?

I tried to implement it by myself, generating a schema wich works is pretty simple, but tableEditing plugins breakes with the custom schema (trying to reach the table node, but get the tbody instead ... of course :disappointed: )
I don't know if something is plan, as this issue is quit old, maybe some advice about the better way to implements it by keeping the benefits of this plugin ?

This is actually something I need a solution for and haven't found any options. It there any way to hook e.g. toggleHeaderRow to not only replace td with th and also replace the wrapping tr with thead ?

You may consider prosemirror-tables-sections, a fork that I wrote.
I'm trying to keep it in sync with this repo, to ease the task of people looking at both projects.
BTW, thanks to the people maintaining this repo.


Question about data augmentation

Hi,
I guess when we train a new model in CellPose some data augmentation is done automatically during the training?! Is there a list somewhere of what is done exactly? For example, are rotations included in the augmentation?

correct, the augmentations are the same as in the original paper (random rotation and scaling and flipping). you can also see them in transforms.py random_rotate_and_resize: https://github.com/MouseLand/cellpose/blob/02b83a5aa3173c60ffce67be08df56d7e86930f8/cellpose/transforms.py#L667


A question about installing DeepSS

thanks to your replay. the problem is "FileNotFoundError: Could not find module 'd:\anaconda\envs\dss\lib\site-packages\scipy.libs\libbanded5x.EHDKC2XVYTQQ5MALRS6XN2CUSS6SRL6P.gfortran-win_amd64.dll"
sorry, I'm new to python, I followed the steps to install it, and Anaconda is the latest version.
is it because of the version of python?Which version should I install?
I don't know what that means "output of conda list"
thank you.

Thank you for the note. This arises from a version conflict (see here [https://stackoverflow.com/questions/67377972/filenotfounderror-could-not-find-module-when-using-jupyter-notebook]).
Downgrading scipy to version 1.6.2. should fix your problem for now:
 conda install scipy=1.6.2 -c conda-forge --force-reinstall.
Please let me know if that worked.
I'll update the installation file to avoid this problem in the future.

It didn't work. but by using the command:" pip install scipy==1.6.3 --user", it worked.
thank you for your help.

Glad you got it to work. I'll work on a more general fix...


ziti edge list ... show paginated output but no suggestions on how to go to next page

When executing any ziti edge list command, e.g. ziti edge list terminators, the output is paginated but there is no suggestion as to how to get the next page:
results: 1-10 of 32
Executing --help doesn't give any suggestions either:
ziti edge list terminators --help
lists terminators managed by the Ziti Edge Controller

Usage:
  ziti edge list terminators <filter>? [flags]

Flags:
  -i, --cli-identity string   Specify the saved identity you want the CLI to use when connect to the controller with
      --csv                   Output CSV instead of a formatted table
  -h, --help                  help for terminators
  -j, --output-json           Output the full JSON response from the Ziti Edge Controller
      --output-request-json   Output the full JSON request to the Ziti Edge Controller
      --timeout int           Timeout for REST operations (specified in seconds) (default 5)
      --verbose               Enable verbose logging

hi @dmuensterer. Yes we need to show that better for sure! I'll add the good first issue to this one. in the meantime, I assume you discovered:
ziti edge list terminators "skip 3 limit none"

?  If not, that's how you do it :)
Also if you add -j you'll get back something like:
    "meta": {
        "filterableFields": [
            "id",
            "isSystem",
            "address",
            "hostId",
            "createdAt",
            "updatedAt",
            "tags",
            "binding",
            "instanceId",
            "service",
            "router",
            "service.name",
            "router.name"
        ],
        "pagination": {
            "limit":<PHONE_NUMBER>854775807,
            "offset": 3,
            "totalCount": 17
        }

which you can then use to filter like:
ziti edge list terminators 'router="ZOuXc1DlSJ" skip 3 limit none'


consider splitting napari plugin into new package?

now that aicsimageio depends on bfio, whenever someone just installs napari and napari-aicsimageio, they always have to make a choice between aicsimageio and bfio whenever dropping a file into the viewer (though they might not even have known they installed bfio).  perhaps a separate napari-bfio package could be made for those specifically wanting to use the bfio variant of the napari plugin?

Fixed in version 2.3.1.


Removed instances of "error-message" instances. #178

Description

Removed instances of error-message from popup.html, popup.js and _typography.scss.
Checklist:

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the master branch of the repository.
[x] My commit messages follow best practices.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

Hi I created a new branch and have made a new pull request using that branch can u check that out. Although it seems u r not a reviewer(I am kind of new to github :))

@cristomathew you can use the Reviewers option in the right sidebar. Read more here


Compile Errors

At present I am not getting enough compile errors while saving my function. If i get proper error, it will improve my productivity.

Incorrectly closed the issue


"cooldown and consume" have bug

I set the item to consume
I set the power cooldown
When I use this item continuously，Prompt me to cooldown
Power Not working，But Items are still consumed

Power consume also has an integer for cooldown. Just Set the Same cooldown for consume as for the Power it should trigger


Use Fargate Spot for the storage service

This patch uses https://github.com/wellcomecollection/terraform-aws-ecs-service/pull/6 to use Fargate Spot in some of the storage service apps, specifically:

the bag root finder
the bag versioner
the replica aggregator
the bag register
the notifier
the ingests monitor

because all these tasks are SQS-backed and can be interrupted at short notice. The unpacker, verifier and replicator all stay as they are.
It also turns on spot for the APIs in the staging service only, on the basis that it's an easy cost win for something where we don't need 100% uptime.
Still needs to be rolled out to prod, which turns out to be a bit more delicate if we want to avoid downtime.

@jamieparkinson

Pipeline next...? 😉

If I knew which bits of the pipeline would tolerate spot I would, but my knowledge is pretty out-of-date at this point. But it’s just dropping in a new module and some variables, how hard can it be? 😉

(Huh, I thought I'd merged this…)


[STORM-1968] Storm logviewer does not work for nimbus.log in secure cluster

logviewer invokes "get-log-user-group-whitelist" which tries to get the worker metadata file by invoking "get-log-metadata-file". In the case of nimbus.log clojure-from-yaml-file  returns nil and the authorization fails.
Modify clojure-from-yaml-file to return an empty map in case of failures so that the authorization can continue.

+1

+1

+1

+1


Task - Filter nomenclature - in Relationship section - Restrict search to subject or object

I need to limit search for In Relationship section to those taxa which are use either as a subject or an object

@mjy I think we need two things for this. A new facet for subject/object/any and implement it too in "In relationship" to set it on each relation type

[ ] Also- Ability to filter with "AND" on 2 relationship types, i.e. only names with BOTH of type1 and type2 present


Update to latest CRIU version

Signed-off-by: Marcos Lilljedahl<EMAIL_ADDRESS>

cherry picked


Unit testing does not allow for testing of a function that may or may not throw

This issue was originally filed by<EMAIL_ADDRESS>
If you are testing a function that may or may not throw an exception and you're testing it's return value, you can't use the same syntax.
To test the return value of a function you must use:
expect(test_fn(arg), expected)
whereas if you are testing if it raises:
expect(() => test_fn(arg), throws)
testcase:
int test_fn(var arg) {
  if (arg == 1) {
    throw new Exception('test');
  }
  return arg;
}
test('Exception 1', () => expect(() => test_fn(1), throws));
test('Value 1', () => expect(() => test_fn(2), 2));
test('Exception 2', () => expect(test_fn(1), throws));
test('Value 2', () => expect(test_fn(2), 2));
What is the expected output? What do you see instead?
I expect that if the first argument is callable, then "expect()" calls it.
What version of the product are you using? On what operating system?
Version <IP_ADDRESS>209240906, build 12784
Dart SDK version 12783

This issue has been moved to dart-lang/test#156.


doom install failure with void-variable error[BUG]

Describe the issue
I clone the repo and install follow the instruction from main page, it gives me the error:

~/.emacs.d/bin/doom install -i
Using a proxy for https...
Debugger entered--Lisp error: (void-variable )
  eval( nil)
  elisp--eval-last-sexp(t)
  eval-last-sexp(t)
  eval-print-last-sexp()
  (save-current-buffer (set-buffer (url-retrieve-synchronously (format "https://raw.githubusercontent.com/raxod502/straight.el/%s/install.el" straight-repository-branch) (quote silent) (quote inhibit-cookies))) (goto-char (point-max)) (eval-print-last-sexp))
  (if (or (require (quote straight) nil t) (file-readable-p bootstrap-file)) nil (save-current-buffer (set-buffer (url-retrieve-synchronously (format "https://raw.githubusercontent.com/raxod502/straight.el/%s/install.el" straight-repository-branch) (quote silent) (quote inhibit-cookies))) (goto-char (point-max)) (eval-print-last-sexp)))
  (if (featurep (quote straight)) nil (if (or (require (quote straight) nil t) (file-readable-p bootstrap-file)) nil (save-current-buffer (set-buffer (url-retrieve-synchronously (format "https://raw.githubusercontent.com/raxod502/straight.el/%s/install.el" straight-repository-branch) (quote silent) (quote inhibit-cookies))) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil t))
  (let* ((user-emacs-directory straight-base-dir) (bootstrap-file (doom-path straight-base-dir "straight/repos/straight.el/straight.el")) (bootstrap-version 5)) (make-directory (doom-path straight-base-dir "straight/build") (quote parents)) (if (featurep (quote straight)) nil (if (or (require (quote straight) nil t) (file-readable-p bootstrap-file)) nil (save-current-buffer (set-buffer (url-retrieve-synchronously (format "https://raw.githubusercontent.com/raxod502/straight.el/%s/install.el" straight-repository-branch) (quote silent) (quote inhibit-cookies))) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil t)))
  doom-ensure-straight()
  (if (fboundp (quote straight--reset-caches)) nil (doom-ensure-straight) (require (quote straight)))
  (progn (if doom-debug-mode (progn (let ((inhibit-message (active-minibuffer-window))) (message #("DOOM Initializing straight" 0 5 (face font-lock-comment-face)))))) (setq doom-init-packages-p t) (if (fboundp (quote straight--reset-caches)) nil (doom-ensure-straight) (require (quote straight))) (straight--reset-caches) (mapc (function straight-use-recipes) doom-core-package-sources) (straight-register-package (cons (quote straight) (cons (quote :type) (cons (quote git) (cons (quote :host) (cons (quote github) (cons ... ...))))))) (mapc (function straight-use-package) doom-core-packages) (if noninteractive (progn (add-hook (quote kill-emacs-hook) (function doom--finalize-straight)))))
  (if (or force-p (not doom-packages)) (progn (if doom-debug-mode (progn (let ((inhibit-message (active-minibuffer-window))) (message #("DOOM Initializing straight" 0 5 (face font-lock-comment-face)))))) (setq doom-init-packages-p t) (if (fboundp (quote straight--reset-caches)) nil (doom-ensure-straight) (require (quote straight))) (straight--reset-caches) (mapc (function straight-use-recipes) doom-core-package-sources) (straight-register-package (cons (quote straight) (cons (quote :type) (cons (quote git) (cons (quote :host) (cons ... ...)))))) (mapc (function straight-use-package) doom-core-packages) (if noninteractive (progn (add-hook (quote kill-emacs-hook) (function doom--finalize-straight))))))
  doom-initialize-packages(force-p)
  (if (and core-autoloads-p (not force-p)) (progn (eval-after-load (quote package) (function (lambda nil (require (quote core-packages))))) (eval-after-load (quote straight) (function (lambda nil (require (quote core-packages)) (doom-initialize-packages))))) (mapc (doom-rpartial (function load) (quote noerror) (quote nomessage)) (file-expand-wildcards (concat doom-core-dir "autoload/*.el"))) (let ((--dolist-tail-- (list doom-local-dir doom-etc-dir doom-cache-dir doom-elpa-dir))) (while --dolist-tail-- (let ((dir (car --dolist-tail--))) (if (file-directory-p dir) nil (make-directory dir (quote parents))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (require (quote core-packages)) (doom-initialize-packages force-p))
  (let ((core-autoloads-p (doom-load-autoloads-file doom-autoload-file)) (pkg-autoloads-p (if noninteractive nil (doom-load-autoloads-file doom-package-autoload-file)))) (if (and core-autoloads-p (not force-p)) (progn (eval-after-load (quote package) (function (lambda nil (require (quote core-packages))))) (eval-after-load (quote straight) (function (lambda nil (require (quote core-packages)) (doom-initialize-packages))))) (mapc (doom-rpartial (function load) (quote noerror) (quote nomessage)) (file-expand-wildcards (concat doom-core-dir "autoload/*.el"))) (let ((--dolist-tail-- (list doom-local-dir doom-etc-dir doom-cache-dir doom-elpa-dir))) (while --dolist-tail-- (let ((dir (car --dolist-tail--))) (if (file-directory-p dir) nil (make-directory dir (quote parents))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (require (quote core-packages)) (doom-initialize-packages force-p)) (if (or (and core-autoloads-p pkg-autoloads-p) force-p noninteractive) nil (if core-autoloads-p nil (message "Your Doom core autoloads file is missing")) (if pkg-autoloads-p nil (message "Your package autoloads file is missing")) (user-error "Run `bin/doom refresh' to generate them")))
  (progn (setq doom-init-p t) (setq exec-path doom--initial-exec-path load-path doom--initial-load-path process-environment doom--initial-process-environment) (require (quote core-lib)) (require (quote core-modules)) (if (and (or (display-graphic-p) (daemonp)) (file-exists-p doom-env-file)) (progn (doom-load-envvars-file doom-env-file))) (let ((core-autoloads-p (doom-load-autoloads-file doom-autoload-file)) (pkg-autoloads-p (if noninteractive nil (doom-load-autoloads-file doom-package-autoload-file)))) (if (and core-autoloads-p (not force-p)) (progn (eval-after-load (quote package) (function (lambda nil (require ...)))) (eval-after-load (quote straight) (function (lambda nil (require ...) (doom-initialize-packages))))) (mapc (doom-rpartial (function load) (quote noerror) (quote nomessage)) (file-expand-wildcards (concat doom-core-dir "autoload/*.el"))) (let ((--dolist-tail-- (list doom-local-dir doom-etc-dir doom-cache-dir doom-elpa-dir))) (while --dolist-tail-- (let ((dir ...)) (if (file-directory-p dir) nil (make-directory dir ...)) (setq --dolist-tail-- (cdr --dolist-tail--))))) (require (quote core-packages)) (doom-initialize-packages force-p)) (if (or (and core-autoloads-p pkg-autoloads-p) force-p noninteractive) nil (if core-autoloads-p nil (message "Your Doom core autoloads file is missing")) (if pkg-autoloads-p nil (message "Your package autoloads file is missing")) (user-error "Run `bin/doom refresh' to generate them"))))
  (if (or force-p (not doom-init-p)) (progn (setq doom-init-p t) (setq exec-path doom--initial-exec-path load-path doom--initial-load-path process-environment doom--initial-process-environment) (require (quote core-lib)) (require (quote core-modules)) (if (and (or (display-graphic-p) (daemonp)) (file-exists-p doom-env-file)) (progn (doom-load-envvars-file doom-env-file))) (let ((core-autoloads-p (doom-load-autoloads-file doom-autoload-file)) (pkg-autoloads-p (if noninteractive nil (doom-load-autoloads-file doom-package-autoload-file)))) (if (and core-autoloads-p (not force-p)) (progn (eval-after-load (quote package) (function (lambda nil ...))) (eval-after-load (quote straight) (function (lambda nil ... ...)))) (mapc (doom-rpartial (function load) (quote noerror) (quote nomessage)) (file-expand-wildcards (concat doom-core-dir "autoload/*.el"))) (let ((--dolist-tail-- (list doom-local-dir doom-etc-dir doom-cache-dir doom-elpa-dir))) (while --dolist-tail-- (let (...) (if ... nil ...) (setq --dolist-tail-- ...)))) (require (quote core-packages)) (doom-initialize-packages force-p)) (if (or (and core-autoloads-p pkg-autoloads-p) force-p noninteractive) nil (if core-autoloads-p nil (message "Your Doom core autoloads file is missing")) (if pkg-autoloads-p nil (message "Your package autoloads file is missing")) (user-error "Run `bin/doom refresh' to generate them")))))
  doom-initialize(force-p)
  (if (not noninteractive) (progn (load (expand-file-name "init.el" user-emacs-directory) nil (quote nomessage)) (doom-run-all-startup-hooks-h)) (load (expand-file-name "core/core.el" user-emacs-directory) nil (quote nomessage)) (doom-initialize (quote force-p)) (doom-initialize-modules) (cond ((and (not (cdr args)) (member (car args) (quote ("help" "h")))) (usage)) ((not args) (print! (error "No command detected.\n")) (usage)) ((require (quote core-cli)) (let ((default-directory user-emacs-directory)) (setq argv nil) (condition-case e (doom-dispatch (car args) (cdr args)) (user-error (print! (error "%s\n") (error-message-string e)) (print! (yellow "See 'doom help %s' for documentation on this command.") (car args))) ((debug error) (message "--------------------------------------------------\n") (message "There was an unexpected error:") (message "  %s (%s)" (get ... ...) (car e)) (let (... item) (while --dolist-tail-- ... ... ...)) (if debug-on-error nil (message ...) (signal ... e))))))))
  (let ((args (cdr (cdr (cdr command-line-args))))) (while (condition-case nil (progn (string-prefix-p "-" (car args))) (error nil)) (let* ((val (car-safe (prog1 args (setq args ...))))) (cond ((member val (quote ("--help" "-h"))) (let nil (setq args (cons "help" args)))) ((member val (quote ("--debug" "-d"))) (let nil (setenv "DEBUG" "1") (message "Debug mode on"))) ((member val (quote ("--insecure" "-i"))) (let nil (setenv "INSECURE" "1") (message "Insecure mode on"))) ((member val (quote ("--private" "-p"))) (let nil (setq doom-private-dir (expand-file-name ...)) (setenv "DOOMDIR" doom-private-dir) (message "DOOMDIR changed to %s" doom-private-dir) (or (file-directory-p doom-private-dir) (message "Warning: %s does not exist" ...)))) ((member val (quote ("--local" "-l"))) (let nil (setq doom-local-dir (expand-file-name ...)) (setenv "DOOMLOCALDIR" doom-local-dir) (message "DOOMLOCALDIR changed to %s" doom-local-dir))) ((member val (quote ("--emacsd" "-e"))) (let nil (setq user-emacs-directory (expand-file-name ...)) (message "Emacs directory changed to %s" user-emacs-directory))) ((member val (quote ("--yes" "-y"))) (let nil (setenv "YES" "1") (message "Auto-yes mode on"))) (t nil)))) (if (file-directory-p user-emacs-directory) nil (error "%s does not exist" user-emacs-directory)) (if (not noninteractive) (progn (load (expand-file-name "init.el" user-emacs-directory) nil (quote nomessage)) (doom-run-all-startup-hooks-h)) (load (expand-file-name "core/core.el" user-emacs-directory) nil (quote nomessage)) (doom-initialize (quote force-p)) (doom-initialize-modules) (cond ((and (not (cdr args)) (member (car args) (quote ("help" "h")))) (usage)) ((not args) (print! (error "No command detected.\n")) (usage)) ((require (quote core-cli)) (let ((default-directory user-emacs-directory)) (setq argv nil) (condition-case e (doom-dispatch (car args) (cdr args)) (user-error (print! ... ...) (print! ... ...)) ((debug error) (message "--------------------------------------------------\n") (message "There was an unexpected error:") (message "  %s (%s)" ... ...) (let ... ...) (if debug-on-error nil ... ...))))))))
  eval-buffer(# nil "/home/qingtiaz/.emacs.d/bin/doom" nil t)  ; Reading at buffer position 5670
  load-with-code-conversion("/home/qingtiaz/.emacs.d/bin/doom" "/home/qingtiaz/.emacs.d/bin/doom" nil t)
  load("/home/qingtiaz/.emacs.d/bin/doom" nil t t)
  command-line-1(("-scriptload" "/home/qingtiaz/.emacs.d/bin/doom" "--" "install" "-i"))
  command-line()
  normal-top-level()
System information

got the same error as above if run doom info

What do the following shell commands output?

curl https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el

emacs --batch --eval '(with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el") (prin1 (buffer-string)))'

curl https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el
;;; install.el --- Install straight.el from scratch -- lexical-binding: t --
;; Caution: this file contains copious amounts of magic. You have been
;; warned.
;; For the sake of sanity, here is the issue. We want to install
;; straight.el, but to do that we need to figure out what repository
;; to install it from. That requires parsing the recipe that the user
;; has provided, if any. But not only is that logic a part of
;; straight.el itself, but the logic changes depending on the version
;; of straight.el. It would seem to be impossible to get straight.el
;; to correctly install any version of itself, without hardcoding the
;; repository. Not so!
;;
;; We start out by making sure that a recipe version identifier is
;; saved in the version lockfiles whenever they are saved. We put the
;; version identifier in the lockfiles because if the lockfiles are
;; absent, then we are just installing the latest version of
;; straight.el anyway, so there is no need for the version identifier
;; in that case.
;;
;; Then we look for lockfiles, and determine the version identifier.
;; This is automatically translated into a branch name for
;; straight.el. The idea is that while there are lots of revisions of
;; straight.el, only a few actually change the interpretation of
;; recipe fetch keywords. And so we can actually use a rather
;; coarse-grained selection of revisions to get all the versions of
;; straight.el that we need in order to parse any given recipe format.
;;
;; After we get the appropriate branch name, we directly download that
;; branch's revision of straight.el (the file) from the official
;; GitHub repository, raxod502/straight.el. Now, one of the goals of
;; this implementation is that forking straight.el does not require
;; any changes to this file as long as you do not make divergent
;; changes to the interpretation of recipe fetch keywords. The fact
;; that we download from the source rather than whatever fork is
;; specified does not actually violate this goal, if you think about
;; it. If the fork does make divergent changes to recipe
;; interpretation, then all it needs to do is update the version
;; identifier in straight-freeze-versions', tag a new branch with a ;; unique version identifier, and override the hardcoded ;; raxod502/straight.el to the fork (this last part being necessary ;; because otherwise the new branch could not be found; all previous ;; branches would still be available, though). ;; ;; After we get a copy of straight.el, it's just a matter of using it ;; to parse the recipe for straight.el itself, taking into account all ;; user-set variables.  ;; ;; Previous versions of straight.el expected a symlink for ;; bootstrap.el, in order for the bootstrap snippet to be able to ;; identify the name of the local repository for straight.el. I ;; decided later that this was more trouble than it was worth, and ;; that users wishing to rename the repository can reasonably be ;; expected to update their bootstrap snippet. We still create the ;; symlink, though, for backwards compatibility (this script should ;; work for all versions of straight.el, present and past). ;; ;; IMPORTANT: When referring to newly introduced variables in ;; straight.el, *always* use bound-and-true-p' so as to avoid
;; regressions with old versions of straight.el that did not define
;; those variables; see
;; https://github.com/raxod502/straight.el/issues/407.
;; We have to wrap everything in a single form so that this file can
;; be evaluated with eval-print-last-sexp', rather than ;; eval-buffer', since the latter forcibly swallows all errors(!) and
;; turns them into warnings.
(progn
(message "Bootstrapping straight.el...")
;; Any errors in this Emacs go directly to the user's init-file and
;; abort init. Errors in the child Emacs spawned below create a
;; non-zero exit code, and are re-thrown.
(let ((min-version "24.4"))
(when (version< emacs-version min-version)
(error (concat "straight.el requires at least Emacs %s, "
"but you are running Emacs %s")
min-version emacs-version)))
;; Load some libraries.
(require 'cl-lib)
(require 'url-http)
;; Because `url-http' is weird, it doesn't properly define its
;; variables. So we have to do this.
(defvar url-http-end-of-headers)
(defvar url-http-response-status)
(let ((version nil)
(straight-profiles (if (boundp 'straight-profiles)
straight-profiles
'((nil . "default.el"))))
(straight-install-dir (or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
;; The only permissible error here is for a lockfile to be absent
;; entirely. Anything else triggers an abort so that we don't
;; accidentally do something the user doesn't expect (like if they
;; forked straight.el and made incompatible divergent changes to
;; the recipe specification, and forgot to update which repository
;; their init-file downloaded install.el from).
(dolist (lockfile-name (mapcar #'cdr straight-profiles))
(let ((lockfile-path (concat straight-install-dir
"straight/versions/"
lockfile-name)))
(when (file-exists-p lockfile-path)
(condition-case nil
(with-temp-buffer
(insert-file-contents-literally lockfile-path)
(read (current-buffer))
(let ((alleged-version (read (current-buffer))))
(cond
(version
(unless (eq alleged-version version)
(error (concat "Incompatible recipe versions specified "
"in version lockfiles: %S and %S")
version alleged-version)))
((keywordp alleged-version)
(setq version alleged-version))
(t (error
(concat "Invalid recipe version specified "
"in version lockfile: %S")
alleged-version)))))
;; Prevent end-of-file errors from being swallowed (they
;; are ignored by default by the debugger).
(end-of-file
(error "Malformed version lockfile: %S" lockfile-name))))))
(unless version
;; If no lockfile present, use latest version.
(setq version :alpha))
(with-current-buffer
(url-retrieve-synchronously
(format
(concat "https://raw.githubusercontent.com/"
"raxod502/straight.el/install/%s/straight.el")
(substring (symbol-name version) 1))
'silent 'inhibit-cookies)
;; In case of 404, that means the version identifier is unknown.
 We're just mirroring bootstrap.el. (But note that
;; :files' doesn't have to be specified, since we're           ;; skipping the build phase.)           (straight-use-package-no-build            (straight :type git :host github
:repo ,(format
"%s/straight.el"
(or (bound-and-true-p straight-repository-user)
"raxod502"))
:branch ,(or (bound-and-true-p
straight-repository-branch)
"master")))
(unless (and (boundp 'bootstrap-version)
(integerp bootstrap-version)
(>= bootstrap-version 3))
;; Make a bootstrap.el symlink, for backwards compatibility
;; (bootstrap snippets versioned 2 and lower expect this
;; symlink to exist).
(let* ((recipe (gethash "straight" straight--recipe-cache))
(local-repo (plist-get recipe :local-repo))
;; This is a relative symlink. It won't break if you
;; (for some silly reason) move your
;; user-emacs-directory'.                    (link-target (concat "repos/" local-repo "/bootstrap.el"))                    (link-name (concat straight-install-dir                                       "straight/bootstrap.el")))               (ignore-errors                 ;; If it's a directory, the linking will fail. Just let                 ;; the user deal with it in that case, since they are                 ;; doing something awfully weird.                 (delete-file link-name))               ;; Unfortunately, there appears to be no way to get               ;; make-symbolic-link' to overwrite an existing file,
;; like 'ln -sf'. Providing the OK-IF-ALREADY-EXISTS
;; argument just makes it fail silently in the case of an
;; existing file. That's why we have to delete-file'               ;; above.               (if (bound-and-true-p straight-use-symlinks)                   (if (executable-find "cmd")                       (call-process "cmd" nil nil nil "/c" "mklink"                                     (subst-char-in-string ?/ ?\\ link-name)                                     (subst-char-in-string ?/ ?\\ link-target))                     (make-symbolic-link link-target link-name))                 (with-temp-file link-name                   (print                    (load (expand-file-name
,link-target (file-name-directory load-file-name))
nil 'nomessage)
(current-buffer)))))))
(current-buffer))
(let ((temp-file (make-temp-file "straight.el~")))
(write-region nil nil temp-file nil 'silent)
(with-temp-buffer
(unless (= 0
(call-process
;; Taken with love from package `restart-emacs'.
(let ((emacs-binary-path
(expand-file-name
invocation-name invocation-directory))
(runemacs-binary-path
(when (memq system-type '(windows-nt ms-dos))
(expand-file-name
"runemacs.exe" invocation-directory))))
(if (and runemacs-binary-path
(file-exists-p runemacs-binary-path))
runemacs-binary-path
emacs-binary-path))
nil '(t t) nil
"--batch" "--no-window-system" "--quick"
"--load" temp-file))
(error "straight.el bootstrap failed: %s" (buffer-string)))))))
(message "Bootstrapping straight.el...done"))
emacs --batch --eval '(with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el") (prin1 (buffer-string)))'
Using a proxy for https...
Contacting host: <IP_ADDRESS>:8000
"HTTP/1.1 502 Bad Gateway
Connection: close
Content-Type: text/html
Cache-Control: no-cache
Content-Length: 2210

      502 Bad Gateway

            502 Bad Gateway

              The proxy server reported that an error occurred while trying to access the website.  Please click

                  here

              to return to the previous page.

              Proxy service: ussvg9101-prx001

              URL = https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el

              Client IP: <IP_ADDRESS>

              Server IP: <IP_ADDRESS>

              User name:

              Group name:

              Proxy name: ussvg9101-prx001

              Proxy internal IP: <IP_ADDRESS>

              Proxy external IP: <IP_ADDRESS>

is that caused by behind a proxy?
how to set the proxy when install?

This is indeed an issue with your proxy. You'll have to either turn off your proxy while installing Doom or address the issue with your proxy.
I'm not familiar with proxies and Emacs, but here are a few variables you could look into. You'd have to set them in ~/.doom.d/init.el for them to take effect while bin/doom is installing packages:

url-proxy-services (maybe set to nil?)
url-using-proxy (maybe set to nil?)

Thanks so much!
It can't connect without the proxy.
It's interesting that why the curl can work but emacs can't work behind this proxy.
I will try to install doom in at home and copy .emacs.d to workstation.
Do you think it's a correct way?

If your proxy blocks raw.githubusercontent.com, you could try installing straight manually (as discussed in #1766), like so:
mkdir -p ~/.emacs.d/.local/straight/repos
git clone -b develop https://github.com/raxod502/straight.el ~/.emacs.d/.local/straight/repos/straight.el

Then you can use doom refresh (assuming your proxy doesn't block github.com)


Feature request: Last updated

Add field for last modified

Hi there 👋
What is it exactly you want to achieve?
Just a text beneath the card?
In that case you could just use a vertical stack card with this card in the top part and a Markdown card in the lower.
If you want to check for the last update of any given sensor, i would recommend a template sensor which is easily implementable with the help of the UI editor.
Take care! 👍

Hi again,
Since this seem to be stale, i am going to close the issue.
If you require some help with the template sensor or the card stacking, the homeassistant discord will be able to help you or alternatively reopen this issue.
Take care and stay safe!


Leap year checker

name: Leap year checker
about: A function that checks if a given year is a leap year

Behavior
The leap year checker code determines whether a given year is a leap year based on specific rules defined by the Gregorian calendar. It accepts an integer input representing the year and checks whether the year is divisible by 4, ensuring it's a leap year unless divisible by 100, in which case it must also be divisible by 400 to qualify.
Files

[x] The file name describes the function's behavior
[x] There is a module docstring in the function file
[x] The test file's name matches the function file name -
/tests/test_file_name.py
[x] There is a module docstring in the tests file

Unit Tests

[x] The test class has a helpful name in PascalCase
[x] The test class has a docstring
Every unit test has

[x] A helpful name
[x] A clear docstring
[ ] Only one assertion
[x] There is no logic in the unit test

[ ] All tests pass
[ ] There are tests for defensive assertions
[ ] There are tests for boundary cases

Function Docstring

[x] The function's behavior is described
The function's arguments are described:

[x] Type
[x] Purpose
[x] Other assumptions (eg. if it's a number, what's the expected range?)

The return value is described

[x] Type
[ x Other assumptions are documented

The defensive assertions are documented using Raises:

[x] Each assumption about an argument is checked with an assertion
[x] Each assertion checks for only one assumption about the argument

[x] Include 3 or more (passing!) doctests

The Function

[x] The function's name describes it's behavior
[ ] The function's name matches the file name
[x] The function has correct type annotations
[x] The function is not called in the function file

Strategy
Do's

[x] Variable names help to understand the strategy
[x] Any comments are clear and describe the strategy
[x] Lines of code are spaced to help show different stages of the strategy

Don'ts

[x] The function's strategy is not described in the documentation
[x] Comments explain the strategy, not the implementation
[x] The function does not have more comments than code

If it does, consider finding a new strategy or a simpler implementation

Implementation

[x] The code passes the formatting checks
[x] The code passes all Ruff linting checks
[x] The code has no (reasonable) Pylint errors

In code review, you can decide when fixing a Pylint error is helpful and
when it's too restricting.

[x] Variables are named with snake_case
[x] Variable names are clear and helpful
[x] The code follows the strategy as simply as possible
[x] The implementation is as simple as possible given the strategy
[x] There are no commented lines of code
[x] There are no print statements anywhere
[x] The code includes defensive assertions
[ ] Defensive assertions include as little logic as possible

@NoorelsalamAlmakki, I have optimized the code, as requested. The content deleted in the pull request template  was a mistake, however I have rectified that too. I was wondering why you unchecked these in the list though:
- [ ] All tests pass
- [ ] There are tests for defensive assertions
- [ ] There are tests for boundary cases
- [ ] Defensive assertions include as little logic as possible

I would need clarity on that. Also every other implementation is a personal preference, as I am sure they did not violate any guidelines, if that is not the case feel free to point it out. Thanks

@Husayn01 As I understood, the checkboxes are for the reviewer to help them review the code. As a result, I unchecked them to help me properly address the comments. All in all, I have reviewed the optimized code and it's well-rectified, good work! The code is ready to be merged.

@Husayn01 As I understood, the checkboxes are for the reviewer to help them review the code. As a result, I unchecked them to help me properly address the comments. All in all, I have reviewed the optimized code and it's well-rectified, good work! The code is ready to be merged.

Oh, my bad... I thought I was to do that, then the reviewer reviews it. Sorry about that and thanks for the review.


add specs for conduit tests

@cyrush For the duration of your PR, you should change ENV_NAME to be conduit in .gitlab-ci.yml.
I am actively trying to find a better way.

Right now, it triggered a pipeline for the radiuss environment, because that’s the default.

A few notes:
The system configs (packages.yaml) are based off of @davidbeckingsale's - however they are not exactly the same b/c:
I need to test building conduit's python support -- and since it extends python, spack has to build python as part of the process.

One way we could "uniformize" this would be to agree on a limit for things to share, and things that should be in the project spack.yaml:

We share CMake -> packages.yaml (shared)

We share compilers -> compilers.yaml (shared)

We share Cuda -> packages.yaml (shared)

We share MPI -> packags.yaml (shared)

We don’t share python -> spack.yaml (project specific)

Then the questions is: what about small utilities (m4, pkg-config, and such)?

That’s because we can have two source for the packages: section.

Note: clingo compiler takes ages, that’s what we are looking for at the moment.

this is where my head starts to spin - I feel like we get into a scenario where we need scripts to combine (override, union) shared packages.  Solving this in a nice way would make sharing all of these things much much easier.

If only we knew the nice way :)
The only way I see is to define rules. But maybe I just have blinders!

Does spack configs allow this kind of "overriding" with multiple environments? A bit like how you can have repos that override packages...

@davidbeckingsale my impression is that we can override part of the configs directly in the spack.yaml:

We include the shared config as a starting point.
We define locally to the spack.yaml what we want that is specific.

I don't know if there is such a thing as stackable environments. All I know is that environment modularity is currently being revisited by @becker33

@cyrush I hope the lassen jobs are producing useful input (there was a failure of one conduit spec).
In the meantime, I am trying to decrypt the "KeyError" on quartz.

Believe it on not but it looks like just today there were 2 changes in spack@develop that "alter" things in our pipelines.
It is creating a combo error that is tough to debug, but I was in touch with @scottwittenburg and we identified a path forward to find where the issue comes from exactly.


[incubator/sparkoperator] Allow leader election to be customized

Is this a new chart
No

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
Allow customization of the operator's leader election values.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign @liyinan926

/ok-to-test

/lgtm


WMS ID: 11327 - Create a Conversational Interface for your Database with ODA's SQL Dialog

WMS: 11327
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[ x] All filenames are lower case (including folders, images, files, etc.)
[x ] Filenames are descriptive
[ x] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[ x] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[ x] Image references in markdown contain an alternate text

@DMTeixeira - Following up on this PR - Please make the requested changes and resolve the conflicting files.

Please submit the filled out  Self QA document once the workshop development is finished to your stakeholder mailbox to review.

@DMTeixeira - Once you perform the Self QA of the workshop and make the requested changes, please create a new PR with the changes. Closing this PR for now.


Allow setting write.parquet.row-group-limit

And update the docs
Fixes #1013

LGTM @Fokko - merging in the change from main to resolve the conflict on the doc

Also threw in a test here 👍


linux_android_emulator_skia_tests_34 flakey in Android Scenario App Integration Tests goldens

description
The failures seem to be happening in Android Scenario App Integration Tests, there are golden failures:
Fetching most recent positive digest for trace with ID "d75b4f41843498f2d5abcb42b8dd64c3".
Non-exact image comparison using algorithm "fuzzy" against most recent positive digest "dfb9a95878954da7fb884ad403636759".
Untriaged or negative image: https://flutter-engine-gold.skia.org/detail?grouping=name%3DPlatformTextureUiTests_testPlatformViewWithoutOverlayIntersection%26source_type%3Dflutter-engine&digest=e51b5ec6a3ab04b25d903557bab02f14

stderr: Test: PlatformTextureUiTests_testPlatformViewWithoutOverlayIntersection FAIL

I looked at the golden diff, they only differed by 2 pixels and it wasn't noticeable.
example failures

https://ci.chromium.org/ui/p/flutter/builders/prod/Linux linux_android_emulator_skia_tests_34/1368/overview
https://ci.chromium.org/ui/p/flutter/builders/prod/Linux linux_android_emulator_skia_tests_34/1362/overview

screenshot

I went through and approved all of those goldens from the 2 linked failures.  Hopefully that resolves the flaking since those images will now be part of skia gold's database.


Customizable Rollups: First/Last/Smallest/Largest operators should respect a Years Ago time frame

A rollup with a single result operator (first/last/smallest/largest) and a Years Ago time frame does not behave as expected. It ignores the time frame and returns the requested value from the First or Last record based on All Time. It should respect the time frame as defined.
Example use cases: What was the first campaign this Household donated to Last Year? What was the value of their last donation Last Year?

**lurch: add

Tracking W-025459

Included in beta release 3.131 (Beta 11)

Included in production release 3.131


Changes to the structurecomputer to return locations of the Identifier and not the start of the node

This is needed for the current build of brackets.

Nice!


List the PackageIdentifier of the package to be added to automation
Alibaba.DingTalk
Details about the application
https://im.dingtalk.com/manifest/new/release_windows_vista_later_manual_lowpriority.json
$result.win.install.url InstallerUrl
$result.win.install.version PackageVersion

Added in commit 7ac267dfc80cfab8bf676081b23fbe5f2d340e57

There are another two sources for this package.
This one comes from their downloader:
https://im.dingtalk.com/manifest/new/website/vista_later.json
{
  "win": {
    "install": {
      "description": [
        "版本号：<IP_ADDRESS>78704 更新日期：2022-01-04",
        "修复了一些已知问题，提升了用户体验。"
      ],
      "md5": "746d25383708b4a991eb069396aa04e0",
      "multi_lang_description": {
        "en_US": [
          "Version: <IP_ADDRESS>78704, Update Date: 2022-01-04",
          "This update includes bug fixes and user interface improvements."
        ],
        "ja_JP": [
          "バージョン：<IP_ADDRESS>78704，更新日時：2022-01-04",
          "このリリースではいくつかの既知問題が修正され、ユーザーエクスペリエンスが向上しています。"
        ],
        "zh_TW": [
          "版本號：<IP_ADDRESS>78704，更新日期：2022-01-04",
          "修復了一些已知的問題，提升了用戶體驗"
        ]
      },
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_installer/Release/DingTalk_v<IP_ADDRESS>78704.exe",
      "version": "6.3.18-Release.12278704"
    },
    "min_version": "0.9.90",
    "package": {
      "force_silent": 1,
      "md5": "932b143489bac52eee2e61729a71438c",
      "need-reinstall": "<1.10.4",
      "need-update": "<1.0.0",
      "need-update-v2": "<6.3.18-Release.12278704",
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_updater/Release/DingTalkUpdate_v<IP_ADDRESS>78704.zip",
      "version": "6.3.18-Release.12278704"
    }
  }
}

And this one may come from auto updater?
https://im.dingtalk.com/manifest/new/release_windows_vista_later_gray4.json
{
  "win": {
    "install": {
      "description": [
        "版本号：<IP_ADDRESS>08702 更新日期：2021-12-13",
        "修复了一些已知问题，提升了用户体验"
      ],
      "md5": "f63f2477d932f3d437efcf0b26125d77",
      "multi_lang_description": {
        "en_US": [
          "Version: <IP_ADDRESS>08702, Update Date: 2021-12-13",
          "This update includes bug fixes and user interface improvements."
        ],
        "ja_JP": [
          "バージョン：<IP_ADDRESS>08702，更新日時：2021-12-13",
          "このリリースではいくつかの既知問題が修正され、ユーザーエクスペリエンスが向上しています。"
        ],
        "zh_TW": [
          "版本號：<IP_ADDRESS>08702，更新日期：2021-12-13",
          "修復了一些已知的問題，提升了用戶體驗"
        ]
      },
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_installer/Release/DingTalk_v<IP_ADDRESS>08702.exe",
      "version": "6.3.15-Release.12108702"
    },
    "min_version": "0.9.90",
    "package": {
      "md5": "783317ee852e34c807451b8e92196cc5",
      "need-reinstall": "<1.10.4",
      "need-update": "<1.0.0",
      "need-update-v2": "<6.3.15-Release.12108702",
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_updater/Release/DingTalkUpdate_v<IP_ADDRESS>08702.zip",
      "version": "6.3.15-Release.12108702"
    }
  }
}

I suggest you to compare these three sources and select the newest one.

Another one, comes from auto updater
https://im.dingtalk.com/manifest/new/release_windows_vista_later_all.json
{
  "win": {
    "install": {
      "description": [
        "版本号：<IP_ADDRESS>08702 更新日期：2021-12-15",
        "【OA审批：支持按部门查看/导出数据】",
        "支持按部门查看审批表单数据，查询、导出数据更方便。",
        "【OA审批：审批人设置更灵活】",
        "当审批人为空时，新增「指定人员审批」选项；",
        "设置抄送人时，可以选择表单内的联系人。",
        "【钉钉文档：支持浏览器免登录打开】",
        "切换浏览器打开文档，无需重复登录钉钉，使用体验更便捷。",
        "【钉钉表格：新增选中行置顶】",
        "选中任意行，上下滚动表格过程始终置顶，查看内容更清晰高效。",
        "【钉钉表格：新增在线打印】",
        "支持在线打印、实时预览、配置布局样式，让表格文件存档更方便。",
        "【钉钉表格：支持插入附件】",
        "支持插入本地文件、图像、音视频等文件类型，助你轻松搭建团队线上资料库。",
        "【钉钉脑图：支持插入图片】",
        "新增插入图片功能，丰富内容类型、提升表达效果。",
        "【便签：支持生成图片分享】",
        "便签支持生成图片分享内容，让想法轻松分享与表达。",
        "【云盘：灵活设置群容量上限】",
        "内部群支持单独设置群容量上限，管理群文件容量更灵活。",
        "【云盘：快速找到聊天内的文件夹】",
        "查找聊天文件支持按“文件夹类型优先”排序，提升查找效率。",
        "【钉钉日历：日程支持标记为暂定】",
        "日程可标记为“暂定”，清晰明确参会人响应状态。",
        "【钉钉日历：日程支持添加可选参会人】",
        "日程参会人支持区分「必需」和「可选」，让参会人合理安排日程优先级。",
        "【案例库：产品内容全新升级】",
        "18大行业优秀案例，支持视频&图文形式，推荐内容专区直达。",
        "桌面端：钉钉官网-解决方案-客户案例。"
      ],
      "md5": "f63f2477d932f3d437efcf0b26125d77",
      "multi_lang_description": {
        "en_US": [
          "Version: <IP_ADDRESS>08702, Update Date: 2021-12-15",
          "This update includes bug fixes and user interface improvements."
        ],
        "ja_JP": [
          "バージョン：<IP_ADDRESS>08702，更新日時：2021-12-15",
          "このリリースではいくつかの既知問題が修正され、ユーザーエクスペリエンスが向上しています。"
        ],
        "zh_TW": [
          "版本號：<IP_ADDRESS>08702，更新日期：2021-12-15",
          "修復了一些已知的問題，提升了用戶體驗"
        ]
      },
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_installer/Release/DingTalk_v<IP_ADDRESS>08702.exe",
      "version": "6.3.15-Release.12108702"
    },
    "min_version": "0.9.90",
    "package": {
      "inc_package": {
        "6.3.5-Release.10278702": {
          "md5": "396adbd62d98434bd1d830ebdc006576",
          "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_inc_updater/Release/DingTalkUpdate_v<IP_ADDRESS>78702-<IP_ADDRESS>08702.zip"
        }
      },
      "force_silent": 1,
      "md5": "783317ee852e34c807451b8e92196cc5",
      "need-reinstall": "<1.10.4",
      "need-update": "<1.0.0",
      "need-update-v2": "<6.3.15-Release.12108702",
      "url": "https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_updater/Release/DingTalkUpdate_v<IP_ADDRESS>08702.zip",
      "version": "6.3.15-Release.12108702"
    }
  }
}

This interesting file shows all their A/B tests and corresponding sources:
https://im.dingtalk.com/manifest/new/release_windows_vista_later_strategy.json
IMO it’s best to choose only these three sources in case beta versions are added into winget-pkgs:
https://im.dingtalk.com/manifest/new/release_windows_vista_later_manual_lowpriority.json - comes from manual update
https://im.dingtalk.com/manifest/new/release_windows_vista_later_all.json - comes from auto update
https://im.dingtalk.com/manifest/new/website/vista_later.json - comes from downloader

So many sources🤯

It is one of the AB test sources so IMO it is better not to use this one for automation.

I was comparing all of them and found https://im.dingtalk.com/manifest/new/release_windows_vista_later_gray4.json to be the newest one. I don't use this program so if you or @lychichem know or use this software, please help me choosing which one should I add to the automation. Sorry for toooo late reply on this issue 🤭

I currently don't use this software... Sadly I could not help you.

IMO it’s best to choose only these three sources in case beta versions are added into winget-pkgs:
https://im.dingtalk.com/manifest/new/release_windows_vista_later_manual_lowpriority.json - comes from manual update
https://im.dingtalk.com/manifest/new/release_windows_vista_later_all.json - comes from auto update
https://im.dingtalk.com/manifest/new/website/vista_later.json - comes from downloader

They all give same version. I'll follow what you say 😶🌫 since I'm not familiar with the application.

Sometimes some of them give newer version, and sometimes they are all the same. 🧐

Now https://im.dingtalk.com/manifest/new/website/vista_later.json has newer version (6.5.10-Release.4259103) than the others (6.5.0-Release.3289101)


fix: defi earn grouping crypto ammounts

Description

Notice

[ ] Have you followed the guidelines in our Contributing guide?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

Testing

Engineering

Operations

Screenshots (if applicable)

Current dependencies on/for this PR:

develop

PR #4068

PR #4069   👈

This comment was auto-generated by Graphite.


Donation amount is actually a multiplication factor

Pepettes version: 1.0.1~ynh3
YNH version: <IP_ADDRESS> on VPS
The installed app is asking for an amount to be donated either recurrently or just one time.
However, when sent to the Stripe payment form, the amount given in the app becomes a multiplication factor of the set values in the Stripe product.
For example,
I have set up on Stripe to have a recurrent 1,50 EUR donation and a one-time donation of 10 EUR.
When choosing 10 EUR a month on Pepettes and clicking donate, Stripe will take it as 15 EUR per month (1,50 *  10).
When choosing 10 EUR one-time on Pepettes, Stripe will take it as a 100 EUR one-time donation (10 * 10).

It's not a bug, it's the way to configure it, the idea is to define 1€ (or 1$) per product.

But the interface shows euros or dollars not amount of products.

Indeed, but 10 x a donation product of 1€ make a donation of 10€...
If you want to make more complex things like a form to preselect specific amount or a form to buy object/services, you can just change the index.html (html form basis could be learn in day)


Update timeout description

it says the timeoutSeconds field takes its input in terms of milliseconds, when in reality, it takes it in terms of seconds. :)

Pull Request Test Coverage Report for Build 2972

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.007%) to 69.715%

Files with Coverage Reduction
New Missed Lines
%

server/src/main/java/com/netflix/conductor/server/JerseyModule.java
1
90.91%

Totals

Change from base Build 2959:
-0.007%

Covered Lines:
9765

Relevant Lines:
14007

💛  - Coveralls

Thanks for pointing out the error and the fix.


Recently viewed Dashboards do not appear in the Recents section

How to reproduce the bug
With administrator privileges, I go sequentially to several dashboards
At the same time, 2 specific dashboards are constantly displayed in the Recents section and new dashboards that I just went to do not appear
Screenshots

the initial state

2.sequentially open several dashboards

In the Recents section, nothing changes
Environment
SuperSet 1.4.1
Python 3.8.13

node.js version: v16.14.2
Google Chrome 100.0.4896.127

This is likely fixed by now, and is pretty out of date if not. If people are still encountering this in current versions (3.x) please open a new Issue or a PR to address the problem.


Change setting defaults

Is your feature request related to a problem? Please describe.
The default settings aren't preferable anymore. The flow doesn't render ideally
Describe the solution you'd like
The default settings for flowdirection and forwards style should be: horizontal and flowchart.

:tada: This issue has been resolved in version 2.9.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Create consistent icons rules for cupcake site

User Story

As a Cupcake website content creator

I need to: clear consistent icon labels on the cupcake site

so that I can: correctly navigate throughout the site.

Additional information
I am working on icon rules to bring consistency to the resource cards on the cupcake site.
Acceptance criteria

[ ] Reviewed and approved by Wonil
[ ] Discussed with Carbon team

Made an update to the site. If we don't like the icon ruling I can change it back
Live link: https://ibm-dotcom-library.netlify.com/resources#color-grid-and-icons

Nice work, @jacobottesen-dgc . Please share our findings with Jan and Connor on the Carbon Team.

@jacobottesen-dgc Can you schedule a time this week to share the finding with Jan Child (Content Design Lead) and Connor Leech (Content Designer) and have me as optional on the invite?
Let me know if you have any questions.

@JennySanchez Schedule meeting for Thursday from 10:30-10:45am.

@wonilsuhibm Here's the final general icon usage rule for the website

right arrow icon: links within the cupcake site (resource card link on the Get started/Overview page to Resource page).
launch icon: leaving the cupcake site (Github, Storybook, Box)
download icon: anything that can be linked to downloads asset or tool (Sketch kit download from Sketch Cloud)

Let us know if we missed anything.


Verification error

Describe the bug
I working with binance, and function such order_market_buy and get_balace working properly, but when i try to use withdraw i getting 'Verification filed'
To Reproduce
Code snippet to reproduce the behavior:
client = Client(BINANCE_API_KEY, BINANCE_SECRET_KEY)
result = client.withdraw(asset=symbol, address=wallet, amount=withdraw_sum)
Expected behavior
A clear and concise description of what you expected to happen.
Environment (please complete the following information):

Python version: 3.8.10
Virtual Env: pipenv
linux ubuntu
python-binance version 1.0.15

Logs or Additional context
Add any other context about the problem here.
return self._request_margin_api('post', 'capital/withdraw/apply', True, data=params)
File "/home/ubuntu/.local/share/virtualenvs/CryptozZz-btj7gvsV/lib/python3.8/site-packages/binance/client.py", line 364, in _request_margin_api                  return self._request(method, uri, signed, **kwargs)                                                     File "/home/ubuntu/.local/share/virtualenvs/CryptozZz-btj7gvsV/lib/python3.8/site-packages/binance/client.py", line 315, in _request                             return self._handle_response(self.response)        File "/home/ubuntu/.local/share/virtualenvs/CryptozZz-btj7gvsV/lib/python3.8/site-packages/binance/client.py", line 324, in _handle_response                     raise BinanceAPIException(response, response.status_code, response.text)                              binance.exceptions.BinanceAPIException: APIError(code=100001003): Verification failed

The closest error code to the one you getting is -1003 which, as Binance's api docs describes it, it's about sending too much requests.

try to put the part of your code that sends the request,  maybe it's stuck in a loop and keeps sending requests.

Same problem, I did all permissions in API section, but response is APIError(code=100001003): Verification failed

It means your account was locked for withdrawals and you need to contact them and complete KYC.


[BUG] .net saying i need to install .net runtime when its installed

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
So i had to do a restore on my windows by like 50 mins and when i tried to use bloxstrap it gave me the runtime error i tried uninstalling the runtime,and bloxstrap and reinstalling it never worked i need a fix

and when i click yes nothing happens either.

To confirm that you have it installed, open a Command Prompt window, and run this command:
dotnet --info
Show a screenshot of what you see.

ok i was missing a .dll i installed it and put it into the folder it was missing from but same error this is what happens when i do the cmd again.

when i click yes it does direct me to the site now tho

I fixed it by deleting the "dotnet" folder in my "programfiles" and reinstalling the version it asked me to install


[bug]: Unhandled Exception: 'package:stacked_services/src/bottom_sheet/bottom_sheet_service.dart': Failed assertion: line 113 pos 7: '_sheetBuilders != null

Describe the bug
Although the project has been set up through the stacked CLI and the  setCustomSheetBuilders function is called in main.dart this error still occurs when first using the showCustomSheet function.
After digging a little bit into it, it seems like the private variable _sheetBuilders gets set, when calling the setCustomSheetBuilders function but somehow is null again, when the showCustomSheet function is called.
I do not know why this happens.
To reproduce

void setupBottomSheetUi() {
  final bottomsheetService = locator<BottomSheetService>();

  final Map<BottomSheetType, SheetBuilder> builders = {
    BottomSheetType.notice: (context, request, completer) => NoticeSheet(request: request, completer: completer),
    BottomSheetType.postDetails: (context, request, completer) => PostDetailsSheet(request: request, completer: completer),
  };

  bottomsheetService.setCustomSheetBuilders(builders);
}

void showPostDetails() {
    _bottomSheetService.showCustomSheet(variant: BottomSheetType.notice);
  }

Expected behavior
No response
Screenshots
No response
Additional Context
No response

Hi, this works when I generate a project with Stacked.
   void showBottomSheet() {
     _bottomSheetService.showCustomSheet(
        variant: BottomSheetType.notice,
        title: ksHomeBottomSheetTitle,
        description: ksHomeBottomSheetDescription,
    );
  }

I see you're not passing in a title and description, make sure you're doing that and try again. Otherwise please generate a stacked project that reproduces this and share it with us so we can fix the bug.


mpvScripts.manga-reader: fix homepage link

The initial committer forgot the repo owner name in the github url.
Description of changes
fix the homepage link
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Please update commit message to be the same as the pr title.

Please update commit message to be the same as the pr title.

done.


INP attribution eventTarget is empty

I recently started exploring onINP and on integration in my React app code, I found it only randomly reports the eventTarget. Most of the times I got eventTarget as "". What could be the reason. Does INP need some attribute/HTML semantics to be in some particular way to work? Below is my code:
import {onINP} from 'web-vitals/attribution';

const sendVitals = (metricData = {}) => {
  console.log('INP --- ', JSON.stringify(metricData))
};

onINP(sendVitals, { reportAllChanges: true });

Here is what I get generally:
{
  "name": "INP",
  "value": 336,
  "rating": "needs-improvement",
  "delta": 336,
  "entries": [...],
  "id": "v3-993993993999-00901993993",
  "navigationType": "reload",
  "attribution": {
    "eventTarget": "",
    "eventType": "click",
    "eventTime": 38352.89999999851,
    "eventEntry": {
      "name": "click",
      "entryType": "event",
      "startTime": 38352.89999999851,
      "duration": 336,
      "processingStart": 38370,
      "processingEnd": 38631.60000000149,
      "cancelable": true
    },
    "loadState": "complete"
  }
}

How do I get the eventTarget to further work on this field data?

This is being tracked here: https://bugs.chromium.org/p/chromium/issues/detail?id=1428899
Though #344 could be another reason.


OCPNODE-1499: Adds an option to look for CRs in all namespaces

This change adds an option to look for CRs in all namespaces while collecting the must-gather information.
Follow-up to 4742d32002f48ff54aa44929e5d30d7842f1c2a5

Checklist

[x ] Commits are signed with Developer Certificate of Origin (DCO)

/lgtm
/approve
Thanks!


Patchouli Format Error

other format error:

enchanting/enchantments/reflective
enchanting/enchantments/scavenger
enchanting/enchantments/spearfihing
potion/effects/sundering
potion/recipes/fatigue
potion/recipes/resistance
potion/recipes/haste
village/fletching

Ah, that's not good.  Someone asked me to turn on the I18n option, but I think that had some side effects.


Search functionality to book list view

Search works now only by book name and only if postgres is used.


v4.3:  make app installable again

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.67%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
13507

Relevant Lines:
13509

💛  - Coveralls


#61-centererd text section

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

Original:  https://www.esri.com/en-us/capabilities/imagery-remote-sensing/capabilities/management
Before: https://main--esri--aemsites.hlx.live/en-us/about/about-esri/overview
After: https://centered-text-section--esri--aemsites.hlx.page/drafts/shared/esri-text

Changes made:

Updated esri text style to have a variation of centered text.
Updated hard coded color codes to calcite variables.

Do we need the "centered" class? Shouldn't that be the default for non-blocked content anyway? (from what I've seen anything that is not within a block tends to be centered)


A fix by @Dviros has been pulled to master, let me know if that helps!

closing, i think we're good here. if not then please reopen.


Update Issue - Automate_undefined_99339

URL tested: https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&emr=1&followup=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&ifkv=AcMMx-fXlcVAc3a5GgluqIKdj2F2cgvGSzKaAp0ngoMG-WW1L4xF024hckCTASO4Evv0C_CHE3Qr&osid=1&passive=1209600&service=mail&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S-449301899%3A1733584039159477&ddm=1
Open URL on Browserstack
default description

Property
Value

Browser
Chrome 131.0

Operating System
OS X Sequoia

Resolution
1688x792

Screenshot Attached
Screenshot URL

Updated Screenshot Attached


Teach hyper/rustls HTTP backends to resume partial downloads

This PR Fixes #1181

@seanmonstar I addressed the things you mentioned and added two new commits.
I can squash them whenever this PR gets merged.
But for some reason AppVeyor keeps failing. From a quick search online, it appears the reason is a failure to verify a CA certificate.

Thanks for the PR and sorry for the delay in getting to this! I'm going to close this in favor of https://github.com/rust-lang-nursery/rustup.rs/pull/1222 which moves to reqwuest


fix(connection): Do not add setTimeouts if minPoolSize is not set

Description
setTimeouts have a non-trivial overhead in node.  Adding one every 10ms that will ultimately result in nothing but another setTimeout is an unnecessary operation and takes up vital time that the event loop could otherwise use for something else.
What changed?
Short circuits the ensureMinPoolSize function if the minPoolSize option is set to 0 (the default).
Are there any files to ignore?
No

I'm not sure the test failures are caused by my change.

Hey @millerick, thanks for the pull request. Have you done any benchmarking to back up your hypothesis here? Our old connection pool used to call an _execute method all the time, at a much higher rate than ensureMinimumPoolSize. I'm not opposed to coming up with a different solution, but I'd like to see some numbers before we make any changes.

With this package.json
{
  "name": "mongo-example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "4.17.1",
    "mongodb": "3.5.2",
    "pprof": "1.2.0"
  }
}

And this script:
'use strict';

const express = require('express');
const pprof = require('pprof');
const mongodb = require('mongodb');

// Connection url
const url = 'mongodb://localhost:27017';

const options = {
  useUnifiedTopology: true,
};

const app = express();
const port = 8081;

app.get('/pprof', async (req, res) => {
  const profile = await pprof.time.profile({
    durationMillis: 10000,
  });
  const buf = await pprof.encode(profile);
  res.set('Content-Disposition', `attachment; filename="cpu-${Date.now()}.pb.gz"`);
  res.send(buf);
});

async function run() {
  const mongoConnection = await mongodb.MongoClient.connect(
    url,
    options,
  );
  app.listen(port, () => console.log(`Example app listening on port ${port}!`));
}

run();

You can generate a pprof dump from 10 seconds of monitoring V8.  Below is the one I generated on my laptop:
cpu-1580857166725.pb.gz
The flame graph shows 15ms spent inside ensureMinPoolSize

With this change, all of that time is reclaimed to idle time:

cpu-1580857473120.pb.gz
Which is even better because there isn't any time spent processing timers, either.

@mbroadst , following up here. To clarify, I don’t think there is anything wrong with the use of setTimeout when it results in actions, but here the actions are superfluous when minPoolSize is not set (default 0). In this situation, the size of the pool is determined and the for loop does not run, which results in an unnecessary loop of setTimeouts all performing the same work that I believe is unnecessary.

@mbroadst , following up again on this proposal.

@millerick looks good to me, but can you please rebase this against the 3.5 branch? I'm going to release a v3.5.4 patch release on Tuesday and would love to get your change in.

@mbroadst , there you go

Thanks for the contribution @millerick!

Glad to help out.  Do you have a new estimate for when 3.5.4 will be released?

Next Tuedsay, I'd like to get a few more small fixes in that are currently in progress.

Sounds great, thanks for the update.


Read Only Collaboration Session Fail

Issue Type: Bug

Go to the LiveShare extension.
Click the read-only collaboration session button.
In theory, it will respond with an error in the notification pane

Extension version: 0.3.4
VS Code version: Code 1.39.2
OS version: Windows_NT x64 10.0.18362

Thanks for reaching out. Based on the information in your issue, you seem to be on a very old version of our extension. Can you try to update to the latest version from the marketplace if that is the case?
Otherwise, your logs might help us diagnose the problem. You can send them to us by using the Live Share: Export Logs command in Visual Studio Code and attach them to this issue.

Closing this issue as no-repro in the latest version. Please re-open if you are still encountering issues. Thanks for using Live Share!


update DBS error count script

From Diego:
The "Errors detected in application logs" are those as per the Server
Monitor. This means you can define yourself what's an "error" for dbs
by simply updating the regex in the monitoring.ini file
(https://github.com/dmwm/deployment/blob/master/dbs/monitoring.ini).
For most cases people only look for something containing the "error"
string, but if that appears in several lines for every real error, it
would account it wrongly.
The problem:
The error count from application log parsed by this script is much bigger than the HTTP errors counted from front log. We need to improve this script.

grep cherrypy.error dbs-2015022*.log |awk '{print $6}' | sort | uniq
exam 6 month of log files to find the list for counting.

Diego pointed out that the file used for the error analysis is /build/srv-logs/vocms*/admin/server-monitor-*.log that is a server monitor file and includes all the service running on the server, not DBS server log file. So we need to pick up "dbs ERROR " first then,  look for " ERROR:cherrypy.error".
The original regex was just look for "cherrypy.error" that will include both ERROR and WARNING from all service running on the node.
grep "dbs ERROR" server-monitor-201502*.log |grep ERROR:cherrypy.error | awk '{print $12}' | sort | uniq

The previous message is confusing. More from Diego after a few mail exchange. I just put here as a reminder on how and what to change to have a more accurate DBS error counts  from the weekly cmsweb report.
The server monitor does not use the admin/server-monitor*log
files, it produces them. It the service logs (dbs in this case), are
input to it.
To make it clear:
The Server Monitor reads your monitoring.ini, which is a configuration
file telling it how/what to monitor in your service, then produces
output under admin/server-monitor that is what is feeded into lemon
for raising alarms. Between different types of tests it can do for
monitoring your service, there's the LOG_ERROR_REGEX and LOG_FILES.
When specified, it will drive the server monitor to look for that
error regex in your (service) log files, feeding some lemon metrics
that keep track of amount of errors found on our services. The status
of these lemon metrics is what we show up on the "## Errors detected
in applications logs" under the weekly reports.
To be short: make sure LOG_ERROR_REGEX matches genuine/unique error
messages in your application logs in order to have accurate error
counting on the reports.

Done.


use cumulative multiplication calculation in stats.py is bug

In stats.py,about as
def compsum(returns):
"""Calculates rolling compounded returns"""
return returns.add(1).cumprod() - 1
def comp(returns):
"""Calculates total compounded returns"""
return returns.add(1).prod() - 1
first,The function name is compsum, but cumprod() is used in the calculation process.
second,It is not appropriate to use cumulative multiplication calculation in an investment cycle.
so ,I suggest the following formula:
def compsum(returns):
"""Calculates rolling compounded returns"""
return returns.cumsum() + 1
def comp(returns):
"""Calculates total compounded returns"""
return returns.sum() + 1

ps:   returns.add(1).cumprod() - 1   ,leads to issues 178.

The following is the revised code after testing, please refer to:
++++++++                    stats.py                             +++++++++++++
def compsum(returns):
"""Calculates rolling compounded returns"""
return returns.cumsum()
def comp(returns):
"""Calculates total compounded returns"""
return returns.sum()
def comprod(returns):
"""Calculates rolling compounded returns"""
return returns.add(1).cumprod() - 1
def prod(returns):
"""Calculates total compounded returns"""
return returns.add(1).prod() - 1
+++++++++++++++        utils.py           ++++++++++++++++
def to_prices(returns, base=1e5):
"""Converts returns series to price data"""
returns = returns.copy().fillna(0).replace(
[_np.inf, -_np.inf], float('NaN'))
return base + base * _stats.comprod(returns)


OAuthSwiftCredential  conforms to NSSecureCoding

Follow recommendations:
Translate All decodeObject(forKey:) Calls to decodeObject(of:forKey:)
in
https://developer.apple.com/videos/play/wwdc2018/222/

decodeObject(forKey:) will be deprecated in iOS 12
take care of compatibility with iOS 8 and OSX 10.10

Get rid of designated initializer with no arguments, consumerKey and consumerSecret attributes are now immutable

Hi, thanks for the PR
I do not agree with some change about initialiser that's why I will not merge it immediately

@phimage The most important is to adopt NSSecureCoding, so I am going to remove the changes with the initializer, even though I don't understand the issue with this enhancement: consumerKey and consumerSecret are only set in the initializer and are mandatory. I can't see any use case with the default initializer with no arguments?

There is no issue. Your can is good.
It's only a matter of coding philosophy when doing serialisation: empty init and reading all objects

Thank you for all the changes.
I will make some test before release


chore: move sanity checks to common module

Moves the sanity checks to the MdCommonModule.
Fixes #4979.

Looks like MATERIAL_SANITY_CHECKS is no longer provided by @angular/material anymore since it isn't included in any index.ts. Previously it was caught by export * from './compatibility/compatibility'; in core.ts

Re-exported the provider @andrewseguin.


Error: This method is only meant to be run on single node. 0 found instead.

Hello, I'm testing a React component as follows:
test('CardPlayer', assert => {
  const msg = 'CardPlayer should render something.';
  const CardPlayer = cardPlayer(React);
  const courseTitle = 'My Course';

  const props = {
    courseTitle
  };

  const $ = shallow(<CardPlayer { ...props } />);
  const output = $.find('.course-title').html();

  const re = new RegExp(courseTitle, 'g');
  const actual = re.test(output);
  const expected = true;

  assert.equal(actual, expected, msg);

  assert.end();
});

And my component:
export default React => ({ courseTitle }) => (

{ courseTitle }

);

But I'm getting this error:
throw new Error('This method is only meant to be run on single node.                 ^ Error: This method is only meant to be run on single node. 0 found instead.     at ShallowWrapper.single (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/enzyme/build/ShallowWrapper.js:1092:17)     at ShallowWrapper.html (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/enzyme/build/ShallowWrapper.js:443:21)     at Test.<anonymous> (App.js:54:42)     at Test.bound [as _cb] (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/tape/lib/test.js:61:32)     at Test.run (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/tape/lib/test.js:80:10)     at Test.bound [as run] (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/tape/lib/test.js:61:32)     at Object.next [as _onImmediate] (/Users/andrescavs/Development/Projects/coupleville/react-pure-component-starter/node_modules/tape/lib/results.js:70:15)     at processImmediate [as _immediateCallback] (timers.js:345:15)
Any help please?

Your test is trying to find .course-title - but your component's root node is the one with that class. I think you just want $.html() directly.

It works, thanks a lot!


Parsing of BOOL values results in crash

Using JSONModel to parse BOOL flags into a model results in an exception in the KVC subsystem while trying to call setValue:forKey on the BOOL property here: https://github.com/jsonmodel/jsonmodel/blob/9ecd4f718d61bb13b7d301aeaa6c50d3462404a2/JSONModel/JSONModel/JSONModel.m#L341
The jsonValue is a NSTaggedPointerString which does not support charValue
The following example will result in a crash:
@interface JMBTest : JSONModel
@property (assign) BOOL everythingIsOK;
@end

@implementation JMBTest
@end

int main(int argc, const char * argv[]) {
  NSString *jsonData = @"{ \"everythingIsOK\":\"true\" }";
  NSError *error;
  JMBTest *data = [[JMBTest alloc] initWithString:jsonData error:&error];
  return 0;
}

Platform is macOS 10.12.6. Xcode 9.0 10.13 SDK.

Anything to do with #585?

Might be. I have to admit I have not took the time to deep-dive into the problem any further. This looks like it is the same cause but just the other end of the issue popping up while deserialising.

I just ran the test with a version prior to the changes to primitive handling cd940e7ae0e74c927cd4293931f5d7e6465c343d and it works as expected without crashing.

Okay closing in favour of the existing issue then.


Accessing Database Key of Clicked UICollectionView Cell

I have previous experience with Android and was hoping to translate one of the methods to iOS:
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Log.v("TAG", model.toString());
                        Log.v("TAG","ONCLICKED");
                        Intent toPoll = new Intent(getActivity(), PollHostActivity.class);
                        //TODO: Go back to clicked item when navigating from Poll Fragment back to LiveFragment
                        toPoll.putExtra("POLL_ID", mFireAdapter.getRef(viewHolder.getAdapterPosition()).getKey());
                        startActivity(toPoll);
                 }
                });

In this method, I am able to access the Firebase key of the clicked item and pass it to the next activity. In iOS (Swift) I want to get the key and pass to a new ViewController as well. It is a bit confusing to me, as I know that it has to do with a UICollectionView delegate method. Here is my code:
    import UIKit
    import FirebaseDatabase
    import FirebaseDatabaseUI
    import FirebaseStorageUI
    import Material

private let reuseIdentifier = "PollCell"

class TrendingViewController: UICollectionViewController {

    var ref: FIRDatabaseReference!
    var dataSource: FUICollectionViewDataSource!
    fileprivate var menuButton: IconButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        ref = FIRDatabase.database().reference()
        prepareMenuButton()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Register cell classes

        self.dataSource = self.collectionView?.bind(to: self.ref.child("Polls")) { collectionView, indexPath, snap in
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! PollCell
            /* populate cell */
            cell.pollQuestion.text = snap.childSnapshot(forPath: "question").value as! String?
            let urlPollImage = snap.childSnapshot(forPath: "image_URL").value as! String?
            cell.imageView.sd_setImage(with: URL(string: urlPollImage!), placeholderImage: UIImage(named: "Fan_Polls_Logo.png"))
            //Comment
            return cell
        }

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print(indexPath)
}

extension TrendingViewController {
    fileprivate func prepareMenuButton() {
        menuButton = IconButton(image: Icon.cm.menu)
  }
}

Use the data source's snapshotAtIndex: method.

I have actually updated my code and am still having some issues:
`import UIKit
import FirebaseDatabase
import FirebaseDatabaseUI
import FirebaseStorageUI
import Material
private let reuseIdentifier = "PollCell"
class TrendingViewController: UICollectionViewController {
var ref: FIRDatabaseReference!
var dataSource: FUICollectionViewDataSource!
var snap: FIRDataSnapshot!
fileprivate var menuButton: IconButton!

override func viewDidLoad() {
    super.viewDidLoad()

    ref = FIRDatabase.database().reference()
    prepareMenuButton()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Register cell classes

    self.dataSource = self.collectionView?.bind(to: self.ref.child("Polls")) { collectionView, indexPath, snap in
        let  cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! PollCell
        // not actually doing anything related to click of cell but worth noting

//            cell.pollQuestion.isUserInteractionEnabled = true;
//            cell.imageView.isUserInteractionEnabled = true;
/* populate cell */
cell.pollQuestion.text = snap.childSnapshot(forPath: "question").value as! String?
let urlPollImage = snap.childSnapshot(forPath: "image_URL").value as! String?
cell.imageView.sd_setImage(with: URL(string: urlPollImage!), placeholderImage: UIImage(named: "Fan_Polls_Logo.png"))
return cell
}
    // Do any additional setup after loading the view.
}

//Make collectionview cell clickable, not actually making a difference
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let pollViewController = segue.destination as! PollController
    let cell = sender as! PollCell
    let indexPath = self.collectionView!.indexPath(for: cell)
    pollViewController.passLabel.text = cell.pollQuestion.text
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}`

Hi Morgan -
Can you see this post as well?
http://stackoverflow.com/questions/43701497/cannot-pass-uicollectionview-cell-data-to-different-viewcontroller
On Wed, Apr 26, 2017 at 12:06 PM, Morgan Chen<EMAIL_ADDRESS>wrote:

Use the data source's snapshotAtIndex:
https://github.com/firebase/FirebaseUI-iOS/blob/master/FirebaseDatabaseUI/FUICollectionViewDataSource.h#L63
method.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/firebase/FirebaseUI-iOS/issues/274#issuecomment-297477663,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APuF-KlIUEh8_OcgeFLLlPuRs9v6U-Kbks5rz3mDgaJpZM4NISFP
.

--
Troy Chuinard, CPA


Add missing telemetry for Native Notebooks

It kinda looks like you're using this to fix the telemetry issues we discussed yesterday? But I assume there's more to come?