SPLAT-951: day 2 multi-zone configuration fails if tags are not defined

Added logic for VPD to check tags related to multi-zone support so that cluster admin can be notified of configuration issues via alerts.

/hold

/assign @rvanderp3

/test e2e-vsphere
/test e2e-vsphere-zones

cc: @jcpowermac

/test e2e-vsphere-zones

/assign @gnufied

@vr4manta it looks like the check failed https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_vsphere-problem-detector/100/pull-ci-openshift-vsphere-problem-detector-master-e2e-vsphere/1628128342383267840 .  is this expected?

@vr4manta it looks like the check failed https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_vsphere-problem-detector/100/pull-ci-openshift-vsphere-problem-detector-master-e2e-vsphere/1628128342383267840 . is this expected?

@rvanderp3 So when I reviewed the logs, I am seeing the failure as:
failed: (1m4s) 2023-02-21T22:00:28 "[sig-instrumentation] Prometheus [apigroup:image.openshift.io] when installed on the cluster shouldn't report any alerts in firing state apart from Watchdog and AlertmanagerReceiversNotConfigured [Early][apigroup:config.openshift.io] [Skipped:Disconnected] [Suite:openshift/conformance/parallel]"
and
`ERRO[2023-02-21T22:20:24Z] Some steps failed:
ERRO[2023-02-21T22:20:24Z]

could not run steps: step e2e-vsphere failed: "e2e-vsphere" test steps failed: "e2e-vsphere" pod "e2e-vsphere-openshift-e2e-test" failed: the pod ci-op-scbllm3v/e2e-vsphere-openshift-e2e-test failed after 50m51s (failed containers: test): ContainerFailed one or more containers exited`

The alert seems to be related to VPD:
    [       {         "metric": {           "__name__": "ALERTS",           "alertname": "VSphereOpenshiftClusterHealthFail",           "alertstate": "firing",           "check": "CheckZoneTags",           "container": "vsphere-problem-detector-operator",           "endpoint": "vsphere-metrics",           "instance": "<IP_ADDRESS>:8444",           "job": "vsphere-problem-detector-metrics",           "namespace": "openshift-cluster-storage-operator",           "pod": "vsphere-problem-detector-operator-799d4cddcd-4s6gz",           "prometheus": "openshift-monitoring/k8s",           "service": "vsphere-problem-detector-metrics",           "severity": "warning"         },         "value": [<PHONE_NUMBER>.039,           "1"         ]       }     ]
Digging into the logs, it seems:
2023-02-21T21:53:53.364569522Z W0221 21:53:53.364135       1 zones.go:107] Zone not found 2023-02-21T21:53:53.364569522Z I0221 21:53:53.364182       1 vsphere_check.go:239] CheckZoneTags failed: Multi-Zone support: ClusterComputeResource vcs-ci-workload for failure domain generated-failure-domain: tag associated with tag category openshift-zone not attached to this resource or ancestor
I'll have to work w/ Splat team to see if the tag is in fact missing.  I'll return later with an update on this.  Thanks for the catch.

/retitle SPLAT-951: day 2 multi-zone configuration fails if tags are not defined

@vr4manta it looks like the check failed https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_vsphere-problem-detector/100/pull-ci-openshift-vsphere-problem-detector-master-e2e-vsphere/1628128342383267840 . is this expected?

@rvanderp3 So when I reviewed the logs, I am seeing the failure as:
failed: (1m4s) 2023-02-21T22:00:28 "[sig-instrumentation] Prometheus [apigroup:image.openshift.io] when installed on the cluster shouldn't report any alerts in firing state apart from Watchdog and AlertmanagerReceiversNotConfigured [Early][apigroup:config.openshift.io] [Skipped:Disconnected] [Suite:openshift/conformance/parallel]"
and
`ERRO[2023-02-21T22:20:24Z] Some steps failed: ERRO[2023-02-21T22:20:24Z]

could not run steps: step e2e-vsphere failed: "e2e-vsphere" test steps failed: "e2e-vsphere" pod "e2e-vsphere-openshift-e2e-test" failed: the pod ci-op-scbllm3v/e2e-vsphere-openshift-e2e-test failed after 50m51s (failed containers: test): ContainerFailed one or more containers exited`

The alert seems to be related to VPD:  [ { "metric": { "__name__": "ALERTS", "alertname": "VSphereOpenshiftClusterHealthFail", "alertstate": "firing", "check": "CheckZoneTags", "container": "vsphere-problem-detector-operator", "endpoint": "vsphere-metrics", "instance": "<IP_ADDRESS>:8444", "job": "vsphere-problem-detector-metrics", "namespace": "openshift-cluster-storage-operator", "pod": "vsphere-problem-detector-operator-799d4cddcd-4s6gz", "prometheus": "openshift-monitoring/k8s", "service": "vsphere-problem-detector-metrics", "severity": "warning" }, "value": [<PHONE_NUMBER>.039, "1" ] } ]
Digging into the logs, it seems:
2023-02-21T21:53:53.364569522Z W0221 21:53:53.364135 1 zones.go:107] Zone not found 2023-02-21T21:53:53.364569522Z I0221 21:53:53.364182 1 vsphere_check.go:239] CheckZoneTags failed: Multi-Zone support: ClusterComputeResource vcs-ci-workload for failure domain generated-failure-domain: tag associated with tag category openshift-zone not attached to this resource or ancestor
I'll have to work w/ Splat team to see if the tag is in fact missing. I'll return later with an update on this. Thanks for the catch.

I dug a little more in to this, vcs-ci-workload does not have tags and it's not supposed to actually.  I would expect only the clusters where nodes are provisioned to be included in this check, actually.

/retest

/retest

/retest

/retest

/assign @gnufied

/retest

/retest

/retest

/test e2e-vsphere-zones

/jira refresh

/retitle OCPBUGS-10988: day 2 multi-zone configuration fails if tags are not defined

/bugzilla refresh

/retitle OCPBUGS-10988: day 2 multi-zone configuration fails if tags are not defined

/cherrypick release-4.13


how to align the lower boundry of two adjacent multicells

I want two multicells placed next to each other, and I know which one contains more content. I can align the upper boundry with setXY, but how do I align the lower boundry?

Good question, @sify21. The bottom of a MultiCell() is determined by the number of lines in the content, so you may have to resort to a kluge in which you add a number of blank lines to pad the smaller one. This is admittedly error-prone because you may not know how many wrapped lines the content will have. This is a definite shortcoming of the MultiCell method.

Thanks for the reply. Finally I managed to do this using SplitText(for caculating max row num) and CellFormat to achieve the effects of using MultiCell.

Good solution.


the question about Requirement

Could you list the specific requirements just like the vision about OpenCV， Python， Tensorflow-gpu， Keras and so on. Thank your great work.

I use python3.5 cv3.4 tensorflow1.6 keras2.1.5. Other required environments wouldn't affect much, I think.

thank you

I also needed h5py to be installed. I compiled a requirements.txt from the above dependencies, which works fine.
requirements.txt

this solves my problem as well. That requirement.txt does help. Thanks


Adding a 404 not found Error page for your website

When a user clicks on a page that is not defined an Error page should come to tell them and give option to redirect to the Home Page
Current scenario

Expected result

Thank you for creating this issue! 🎉 We'll look into it as soon as possible. In the meantime, please make sure to provide all the necessary details and context. If you have any questions or additional information, feel free to add them here. Your contributions are highly appreciated! 😊
You can also check our CONTRIBUTING.md for guidelines on contributing to this project.

I think it will not make any sense, so I am closing this issue.


[Suggestion] Search results number

Adding a number of results to a search would help a lot with seeing how many curations a user has.

closing for now https://github.com/Dri0m/flashpoint-submission-system/issues/49


fix #3279: Create a fast path for sending PublishMessages

Proposed changes
Solve the deadlock that can arise when C8yMapperActor can't complete sending MqttMessage to some other actor because that other actor can't complete the send of a PublishMessage to C8yMapperActor by creating a fast path to drain PublishMessage buffer ASAP.
Previously when PublishMessages were a part of the main message box we could not prioritize them because we had to process messages in order;
separating out the receiver for PublishMessages makes it so no other messages can block PublishMessages and allows us to use select! to concurrently process them when processing other events blocks
Types of changes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Improvement (general improvements like code refactoring that doesn't explicitly fix a bug or add any new functionality)
[ ] Documentation Update (if none of the other choices apply)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Paste Link to the issue

#3279

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA (in all commits with git commit -s)
[x] I ran cargo fmt as mentioned in CODING_GUIDELINES
[x] I used cargo clippy as mentioned in CODING_GUIDELINES
[x] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Further comments
About the test: added one in Robot Framework, but it has some problems: for some reasons it takes very long and it publishes a lot of messages to the cloud. Given that this test could be 100% local and would complete almost instantly as a Rust unit test, it would probably be an improvement to move it there but it's easier to add in Robot Framework for now.

I confirm that:

the test correctly reproduce the issue, the mapper blocking on start when overwhelmed with too many child device registration messages
this PR correctly fix the issue removing the deadlock from the c8y mapper.

About the test: added one in Robot Framework, but it has some problems: for some reasons it takes very long and it publishes a lot of messages to the cloud. Given that this test could be 100% local and would complete almost instantly as a Rust unit test, it would probably be an improvement to move it there but it's easier to add in Robot Framework for now.

I'm okay with this for now.


Can't keep the session like in requests in Cpython

I'm trying to login and get some data from an api, I tried with the request library in Cpython and works well.

Create a session object
Post the login data with the session method
Get the api data with the session method

But when I tried with circuitpython and this library I cant get the api data (3) because it redirect me to the login page.
I think there are some redirects in the point 3 as I can see in postman
There is any limitation or feature that I'm missing?
I can share the code if it's needed.
Thanks for your time

I suspect the post is setting a cookie but adafruit_requests doesn't manage cookies for you. So, it's a missing feature of normal requests.


Make PhysicsLoop::accumulator public?

I'm writing some interpolation code that keeps track of Transforms from the previous physics tick and interpolates between that and the current Transform every regular update, storing it in a separate entity for rendering. Problem is I need access to PhysicsLoop::accumulator, which currently is private (because of pub(crate)). Could this be changed?
Also noticed that the PhysicsLoop can't be found in the docs.

accumulator (and queued_steps) are now public on main. PhysicsLoop is technically in the docs (here) but it's very obscure, so I'll add proper docs for it and some other scheduling things at some point.


Suggestion: Possibility to submit a re-train job of a model with new data in model builder

Is your feature request related to a problem? Please describe.
I can't figure out a way to re-train my models with new data on top of the old data utilizing Azure GPU- compute target. Currently it is possible to retrain a model locally - yes, but i want to utilize a GPU in the cloud.
Describe the solution you'd like
I want a scenario to retrain an existing model. Using onnx-model (or .mlnet) and new training-data as input. Is that possible? Have it already been concidered?

@luisquintanilla for notification.


why promise?

It seems all dreamjs api is not async, how dreamjs use promises in future?

In the new version of the DreamJS (that should be released in the next couple weeks) if you use it with a callback to return your data, it should be possible to resolve the custom types assynchronously. This is already developed and I'm just finishing writing the unit tests for the new features.
Let me know if you have interest in testing beforehand. I could create a different branch to allow people to test it.
Cheers

Hey buddy, github is an open source community!
I would like to write some tests when I am free ~


Fix Frontend

I want to fix this frontend issue, to make the website look more professional and better looking.

Hi
I wish to work on this issue. Can you please assign it to me.

I'm a gssoc'23 contributor. I would also like to contribute to the same issue. Kindly assign me this issue.

Have you check is there any duplicate issue and the issue is not solved in current active version

Have you check is there any duplicate issue and the issue is not solved in current active version

I guess the issue is related to screen-size as when I inspect it, it looks fine but when I see it normally, it overlaps the content.

Have you check is there any duplicate issue and the issue is not solved in current active version

I guess the issue is related to screen-size as when I inspect it, it looks fine but when I see it normally, it overlaps the content.

Can you solve it for standard screens

Have you check is there any duplicate issue and the issue is not solved in current active version

I guess the issue is related to screen-size as when I inspect it, it looks fine but when I see it normally, it overlaps the content.

Can you solve it for standard screens

It seems solved now, Thus closing the issue. Thank you.


feat: Add ChangeSet that can be collected into from iterators, and joined over for easy application to components

This change is

Reviewed 8 of 8 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Thank you!

Review status: all files reviewed at latest revision, all discussions resolved, some commit checks pending.

Comments from Reviewable

Not 100% ready yet.

Ready now I believe.

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

src/changeset.rs, line 58 at r3 (raw file):

    pub fn add(&mut self, entity: Entity, value: T)
    where
        T: AddAssign + Default,

I don't think the Default is necessary.

src/changeset.rs, line 73 at r3 (raw file):

}

impl<T> FromIterator<(Entity, T)> for ChangeSet<T>

An Extend implementation would also be useful

src/changeset.rs, line 86 at r3 (raw file):

}

impl<'a, T> Join for &'a ChangeSet<T> {

I think we also need an implementation for ChangeSet and &mut ChangeSet.

Comments from Reviewable

Review status: all files reviewed at latest revision, 4 unresolved discussions.

src/changeset.rs, line 47 at r3 (raw file):

impl<T> ChangeSet<T> {
    /// Create a new change set
    pub fn new() -> Self {

One might want to keep the ChangeSet to save a allocations, so in addition to Extend a clear method would also be useful.

Comments from Reviewable

Review status: 7 of 8 files reviewed at latest revision, 4 unresolved discussions.

src/changeset.rs, line 47 at r3 (raw file):
Previously, torkleyy (Thomas Schaller) wrote…
One might want to keep the ChangeSet to save a allocations, so in addition to Extend a clear method would also be useful.

Done.

src/changeset.rs, line 58 at r3 (raw file):
Previously, torkleyy (Thomas Schaller) wrote…
I don't think the Default is necessary.

Done.

src/changeset.rs, line 73 at r3 (raw file):
Previously, torkleyy (Thomas Schaller) wrote…
An Extend implementation would also be useful

Done.

src/changeset.rs, line 86 at r3 (raw file):
Previously, torkleyy (Thomas Schaller) wrote…
I think we also need an implementation for ChangeSet and &mut ChangeSet.

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

src/changeset.rs, line 40 at r4 (raw file):

/// # }
/// ```
pub struct ChangeSet<T> {

This needs a Drop implementation clearing the DenseVecStorage.

src/changeset.rs, line 76 at r4 (raw file):

        for id in &self.mask {
            unsafe {
                self.inner.remove(id);

Can use UnprotectedStorage::clean instead.

Comments from Reviewable

Thank you!
bors r+

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable


Implement a lazy multipart writer that does direct PUT for small files

Which issue does this PR close?

I can create an issue for this.
Rationale for this change

For small files, multipart upload is unnecessary, but it can be convenient to use the same interface, ie. same AsyncWrite that can internally either do a direct PUT for small files or use multipart upload.
What changes are included in this PR?
Adds new code to create an async writer that lazily creates the multipart upload after there is enough data.

Are there any user-facing changes?
yes
notes

i couldn't really find way to avoid duplicating the code from the existing WriteMultipart, lmk if there's a better way.
I wasn't sure on naming, feel free to suggest alternative

I'm a little confused by this, I was perhaps expecting a struct that could be created with a Path and an object store and would implement AsyncWrite buffering the first x bytes to a put but then deferring to a multipart?

It would need to buffer in memory until the threshold is reached, at which point it falls back to usinng multipart, otherwise on close it just does a put request with what it has buffered?

Yes that's what I was thinking

Marking as draft to signify this is not waiting on review, feel free to unmark when you would like me to take another look

Thanks let me know ur comments, I will fix the test

I made an update according to ur suggestions, let me know comments.

I've run out of time to review this today, trying to avoid spending all my holiday reviewing code, will try to find time to take a look in the coming days.

Marking as a draft, please feel free to unmark when you would like me to take another look


Add annotated_exceptions

There are many places where this will be useful, but specifically I want to use it in https://wekaio.atlassian.net/browse/WEKAPP-68225:
def _cloud_rpc(self, method, *params_list, **params_dict):
	    with annotated_exceptions() as annotate:
		    # ...

		    if ":" in parsed.netloc:
			    host, port = parsed.netloc.split(":")
		    else:
			    host, port = parsed.netloc, None
		    annotate(host=host, port=port)

		    # ...

		    annotate(path=path)

		    @retrying(times=3, acceptable=(ConnectionError, OSError), sleep=1, max_sleep=5)  # this is to deal with sporadic disconnections
		    @retrying(times=5, acceptable=(httpclient.HTTPException, HTTPException), sleep=5, max_sleep=10)
		    @retrying(times=2, acceptable=RetrySignal, sleep=0)  # this is in case a Retry was intentionally requested
		    @retrying(times=6, acceptable=exceptions.CloudIdentityTokenAcquireFailure, sleep=5)  # retry if portal is unavailable
		    def perform_cloud_request():
			    # ...

		    return perform_cloud_request()

With this, even builtin exceptions will be converted to something we can annotate.

If you fix the conflicts I think we should merge this


Delete dummy pages

For #29
Since the need to use DataHelper in Program.cs was removed, I also implemented the IHandler interface to be in line with the other apps.

This broke something. No need to review yet.
I get the following error:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: Can not find referenced Html file: "/content/dynamic/SomethingPage.html" at Starcounter.HtmlFromJsonProvider.ProvideFromFilePath[T](String filePath) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter\Middleware\HtmlFromJsonProvider.cs:line 58 at Starcounter.HtmlFromJsonProvider.Invoke(MimeProviderContext context, Action next) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter\Middleware\HtmlFromJsonProvider.cs:line 53 at Starcounter.Internal.JsonMimeConverter.Convert(Request request, IResource before, MimeType mimeType, MimeType& resultingMimeType) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter.Apps.JsonPatch\BuiltInRestHandlers\JsonMimeConverter.cs:line 18 at Starcounter.Json.AsMimeType(MimeType mimeType, MimeType& resultingMimeType, Request request) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter.XSON\Class Json\Json.IResource.cs:line 45 at Starcounter.Response.ConstructFromFields(Request req, Byte[] givenBuffer) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter.Internal\Http\Response.cs:line 809 at Starcounter.Request.SendResponse(Response resp, Byte[] serializationBuf) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter.Internal\Http\Request.cs:line 1241 at Starcounter.Internal.AppsBootstrapper.ProcessExternalRequest(Request req) in C:\TeamCity\BuildAgent\work\sc-4704\Level1\src\Starcounter.Apps.JsonPatch\AppsBootstrapper.cs:line 811 ParamName=Can not find referenced Html file: "/content/dynamic/SomethingPage.html" HResult=-2146233086 More information about this error may be available in the server error log.

Steps to reproduce:

Click on the CREATE button
Give it an url of "Something"
Go to Content/dynamic/something

Never mind. The above error is probably caused by #31
Creating separate issue


Import content-types module fails

When I run csdx import command:
csdx cm:import -a import-token -d production-export -m content-types
I'm getting an error saying that the content-type title already exists and therefore it won't create it and fails to proceed.
See error below:
{
  "status": 422,
  "statusText": "Unprocessable Entity",
  "request": {
    "url": "/content_types",
    "method": "post",
    "data": "{\"content_type\":{\"title\":\"contact_information\",\"uid\":\"contact_information\",\"schema\":[{\"display_name\":\"Title\",\"uid\":\"title\",\"data_type\":\"text\",\"field_metadata\":{\"_default\":true},\"unique\":false,\"mandatory\":true,\"multiple\":false},{\"display_name\":\"URL\",\"uid\":\"url\",\"data_type\":\"text\",\"field_metadata\":{\"_default\":true},\"unique\":false,\"multiple\":false}],\"options\":{\"title\":\"title\",\"publishable\":true,\"is_page\":true,\"singleton\":false,\"sub_title\":[\"url\"],\"url_pattern\":\"/:title\",\"url_prefix\":\"/\"}}}",
    "headers": {
      "Accept": "application/json, text/plain, */*",
      "Content-Type": "application/json;charset=utf-8",
      "X-User-Agent": "contentstack-management-javascript/1.2.4",
      "User-Agent": "sdk contentstack-management-javascript/1.2.4; platform node.js/v15.4.0; os macOS/20.6.0;",
      "api_key": "bltb5839af18a3f5a96",
      "authorization": "...9309c",
      "Content-Length": 491
    }
  },
  "errorMessage": "Content Type creation failed. Please try again.",
  "errorCode": 115,
  "errors": { "title": ["is not unique."] }
}

error: The log for this is stored at production-export/logs/import
node:internal/process/promises:227
          triggerUncaughtException(err, true /* fromPromise */);
          ^

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "undefined".] {
  code: 'ERR_UNHANDLED_REJECTION'

I did some investigation and found out that the import script is first importing the uid as title for the content-types. Then it's failing with this weird issue. It seems an async problem that is blocking the execution to proceed, because it first adds the content type and then tries to update it, but before that it already fails.
When I log in, I see some content types there, but they're all using their uid's as title.
Context:
The content types I'm trying to import are exported from another stack, with same configurations (master locale, languages, environments, etc). This issue is happening on csdx version<EMAIL_ADDRESS>It works fine on<EMAIL_ADDRESS>I was trying to update the version to the latest one, but I found this blocker and decide to open this issue.
Here's an example of content-type being imported that fails: https://www.codepile.net/pile/eG7MaXmY

Hi @sergioviniciuss,
I know it's too late to respond to your query, and I apologize for this delay.
I've tried to reproduce the same issue with the data provided by you above, but I couldn’t reproduce the same and I was able to create both global field and content types successfully with the mapping of the global field in that content type.
It seems the reported issue has been fixed in later versions of the Contentstack CLI plugin.
I request you to please download the latest version of CLI 1.3.0 from npm and try reproducing it at your end once again.
Thanks!


Add Spanish Dvorak Layout

Hi,
I added the Dvorak layout in Spanish and it has been checked. What I couldn't do was add it to the dropdown list on the website, but I am including the .kcm file.

Could you elaborate more? What's you goal?


root object support

At Entity and/or Endpoint level, I'd like to be able to specify that an object or collection gets returned wrapped in an object. e.g. given this class:
class UserManager < Grape::API
  resource :users do
    get do # /users
      User.all
    end

    get ":id" do # /users/:id
      User.find!(params[:id])
    end
  end
end

I'd like GET /users to return { "users" => [ {"id": "1", ...}, {"id": "2", ...} ] }, and GET /users/1 to return { "user" => {"id": "1", ...} }
At the moment I've got some code in a base Entity class:
module Entities
  class Base < Grape::Entity
    attr :root

    def serializable_hash(runtime_options = {})
      root ? { root => super } : super
    end
  end
end

subclasses just supply a root method:
module Entities
  class User < Entities::Base
    def root
      options[:collection] ? "users" : "user"
    end

    # ...
  end
end

This is obviously a bit clunky, but it works. How best to improve this though? A start would be to automatically work out the root key from the classname of the object. Maybe something like this?
present User.all, :with => Entities::User, :root => true # -> work out the root key from the class of object
present User.all, :with => Entities::User, :root => "valid-users" # -> provide your own root key

Alternatively maybe it should go at the Endpoint level, so that anything returned would be wrapped in an object, even methods where you didn't use an Entity class?
I'd be happy to submit a patch, I just need to know which approach to use.

Root objects would be awesome.  As far as I can tell, ActiveResource will work with or without the root object, but RestKit for iOS seems to want the root object.
I am not using entities yet, but I like the example with passing :root => true to present.

+1 for :root => (true|String)

This was closed without comment. Has it been implemented, or is it a wontfix?

There's root objects support now in the frontier branch - https://github.com/intridea/grape/pull/101

Great. Thanks.


custom component attrs

This function solves the problem (这个功能解决的问题)
for example, custom component style...
Expected API (期望的 API)
want custom attrs to override default attrs instead of being overridden by default attrs.
for dropdown:
  <n-dropdown @select="handleSelect" trigger="click" :options="options" style="--option-height: 50px;">
    <n-button :keyboard="false">点击！</n-button>
  </n-dropdown>

but this doesn’t modify the option height.
https://github.com/TuSimple/naive-ui/blob/6433a0d783878877c34d90e6125423851960889b/src/dropdown/src/Dropdown.tsx#L387
I suggest $attrs to override props:
mergeProps(dropdownProps, this.$attrs) as typeof dropdownProps

and other places...
https://github.com/TuSimple/naive-ui/blob/e5d640f4d74ff43e24c9be8f6198f6c238c8c6d7/src/icon/src/Icon.ts#L75

This proposal needs to be discussed, but you can try to use deep for style overlay, like:
:deep(.n-dropdown-option) {
  height: 50px;
}

And for some components, such as NButton:
<n-button color="#ddd" style="--text-color: #000;">
    <template #icon><n-icon><cash-outline /></n-icon></template>
    #ccc
</n-button>

I can customize the button text color by modifying --text-color. It's best that they behave consistently.
In addition, I think I should think about the reasons for naive-ui extensive use of custom-property-name.

If you need to modify the style of components, we suggest that you use the Customizing Theme, which you can see on the https://www.naiveui.com/en-US/os-theme/docs/customize-theme , We use a lot of custom-property-name to make it easier for users to customize the theme.

Theme variables exist in JS level, we won't keep css interface stable
We won't put $attrs after props in most case, since we don't want user to break components' builtin functionality.


Fix workflow page 404 by encoding ID and forward slash

What was changed

URI encodes workflow IDs in routing and GET paths

Why?

Fixes 404 on workflows page when workflow ID contains a forward slash #392
Checklist

Closes

How was this tested:

Any docs updates needed?

This has a regression where workflows with # in the ID no longer get encoded correctly.


ci(oxlint): run smoke test against both glibc and musl

fixes https://twitter.com/boshen_c/status/1749755460750836174
demo: https://github.com/xc2/ci-demo/actions/runs/7629534563/job/20783146502

Nice! Thank you!


[Aspire] First time running dotnet msbuild --getProperty:IsAspireHost fails due to telemetry notice

Usually, when running dotnet msbuild --getProperty:IsAspireHost , the response is either false or true. Azd uses this output to detect an Aspire project.
However, on a very fresh dotnet installation, the first response from dotnet msbuild --getProperty:IsAspireHost includes a telemetry notice like:
PS C:\Users\vivazqu\t2\eShop_dyigitbas\src\eShop.AppHost> dotnet msbuild --getProperty:IsAspireHost

This is .NET 9.0.
---------------------
SDK Version: 9.0.100-rc.2.24474.11

Telemetry
---------
The .NET tools collect usage data to help us improve your experience. Microsoft collects this data and shares it with the community. You can opt out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to "1" or "true" using your favorite shell.

Read more about .NET CLI tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Install an ASP.NET Core HTTPS development certificate.
To trust the certificate, run "dotnet dev-certs https --trust"
Learn about HTTPS: https://aka.ms/dotnet-https

----------------
Write your first application: https://aka.ms/dotnet-hello-world
Discover what's new: https://aka.ms/dotnet-whats-new
Explore the documentation: https://aka.ms/dotnet-docs
Report issues and find the source code on GitHub: https://github.com/dotnet/core
Use "dotnet --help" to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
true

This output makes azd to think the project is not Aspire.
I was able to reproduce by installing dotnet 9 on a fresh new Windows instance and running dotnet msbuild --getProperty:IsAspireHost inside an AppHost project.  Here is some pictures (the VM was in Spanish, but it should help to illustrate the issue)

// Note how, from the second time ahead, the output is the expected.

maybe: https://github.com/dotnet/sdk/issues/3828

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-environment-variables#dotnet_skip_first_time_experience

@vhvb1989 is this must-fix for 1.10.4? Adding it to backlog. Please pull it into the release if need be.


Update Project.toml

Codecov Report

Merging #292 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #292      +/-   ##
==========================================
- Coverage   70.14%   70.12%   -0.03%
==========================================
  Files          16       16
  Lines        2509     2507       -2
==========================================
- Hits         1760     1758       -2
  Misses        749      749

Impacted Files
Coverage Δ

src/MOI/indicator_constraint.jl
86.95% <0.00%> (-0.28%)
:arrow_down:

src/MOI/MOI_wrapper.jl
87.15% <0.00%> (-0.02%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa718d6...d6fe727. Read the comment docs.


Added CategoricalNB_MinMaxScaler

The description for MinMaxScaler is redundant. you can use sample description from scikit learn api  and  provide URL to
it.


主机游戏直播环境搭建

https://ross.selfcoding.cn/article/c8dbec39-32bf-4288-bccd-d7d7caec5aea
主机游戏直播环境搭建。

cool

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
xiangwangjianghu, @CertiK-Huaping, @wodeche, @keetat97, @Leo-czp, @HUHAOQIAN, @cole123466, @wufan-yang, @EchoJZ, @546566696, @ConerK, @shuaiquan, @HYSWZW, @ACaiGarden, @xwlabs99, @meiwhu, @EasyChris, @gongzishuye, @wufengtao1, @yjz94123, @Colt-M1873, @yujianFresh, @yes00101, @HSAN03, @Apoll95, @Chengcheng-S, @qdlopez, @DIMCHERRY, @Victzhang79, @ylink-lfs, @XuansGG, @6boris, @snakeeeeeeeee, @0xdadaking, @richmonde, @catfishlty, @mustang2247, @xuexirenyuan, @LiRiu, @WhoisX, @vipwzw, @chenzongxiong, @LetmeBX, @magiconch, @imdm, @JasonTian413, @niu-qin-yong, @cuiguohua, @mohamm1384, @xianhuawei


Authorization Policy not working/being enforced

(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities/
To ask questions about how to use Istio, please visit https://discuss.istio.io
)
Bug description
I was working through the following guide: https://istio.io/docs/tasks/security/authn-policy/#end-user-authentication, trying to get a policy working for JWT authentication. However, the policy doesn't seem to work, and isn't checked.
I applied the following policy:
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  annotations:
  name: httpbin-auth
  namespace: foo
spec:
  origins:
  - jwt:
      issuer: https://####.com
      jwksUri: https://####.com/oauth2/v1/keys
  principalBinding: USE_ORIGIN
  targets:
  - name: httpbin

And then I try the endpoint:
$ curl http://$INGRESS_HOST/status/200 -s -o /dev/null -w "%{http_code}\n"
200

And I can still get through without a JWT. However, if I apply a default MeshPolicy as so:
apiVersion: authentication.istio.io/v1alpha1
kind: MeshPolicy
metadata:
  name: default
  namespace: istio-system
spec:
  origins:
  - jwt:
      issuer: "https://####.com"
      jwksUri: "https://####.com/oauth2/v1/keys"
  principalBinding: USE_ORIGIN

And I curl the endpoint again:
$ curl http://$INGRESS_HOST/status/200 -s -o /dev/null -w "%{http_code}\n"
401

It looks like Istio doesn't even notice that the Policy exists. No logs in pilot/policy around the time the policy is applied, no logs in the istio-proxy sidecars.
What could be going on here? I re-ran through this guide multiple times, tweaking values based on other similar issues I found (https://discuss.istio.io/t/jwt-policy-does-not-take-affect/141/14). Policy enforcement is enabled in the cluster.
For reference, here is every resource I'm creating:
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: httpbin
  name: httpbin
  namespace: foo
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: httpbin
  name: httpbin
  namespace: foo
spec:
  ports:
  - name: http
    port: 8000
    targetPort: 80
  selector:
    app: httpbin
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: httpbin
  namespace: foo
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: httpbin
        version: v1
    spec:
      containers:
      - image: docker.io/kennethreitz/httpbin
        imagePullPolicy: IfNotPresent
        name: httpbin
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 250m
          requests:
            cpu: 75m
            memory: 100Mi
      serviceAccountName: httpbin
---
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  name: httpbin-auth
  namespace: foo
spec:
  origins:
  - jwt:
      issuer: https://####.com
      jwksUri: https://####.com/oauth2/v1/keys
  principalBinding: USE_ORIGIN
  targets:
  - name: httpbin
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: httpbin-gateway
  namespace: foo
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: httpbin
  namespace: foo
spec:
  gateways:
  - httpbin-gateway
  hosts:
  - '*'
  http:
  - match: null
    route:
    - destination:
        host: httpbin.foo.svc.cluster.local
        port:
          number: 8000

Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[X ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
Policy checks Authorization JWT token for service httpbin.
Steps to reproduce the bug
Create the above resources.
Version (include the output of istioctl version --remote and kubectl version)
$ istioctl version --remote
client version: 1.2.5
citadel version: 1.2.5
citadel version: 1.2.5
galley version: 1.2.5
galley version: 1.2.5
ingressgateway version: 1.2.5
ingressgateway version: 1.2.5
pilot version: 1.2.5
pilot version: 1.2.5
policy version: 1.2.5
policy version: 1.2.5
sidecar-injector version: 1.2.5
sidecar-injector version: 1.2.5
telemetry version: 1.2.5
telemetry version: 1.2.5

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.6", GitCommit:"96fac5cd13a5dc064f7d9f4f23030a6aeface6cc", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:49Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.6", GitCommit:"96fac5cd13a5dc064f7d9f4f23030a6aeface6cc", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:16Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

How was Istio installed?
Helm template render -> kubectl apply
Environment where bug was observed (cloud vendor, OS, etc)
Kops cluster in AWS
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.

Also tried removing the targets section from the Policy to make it apply namespace-wide with no better results.
Interestingly, if I apply the same policy to the istio-ingressgateway in the istio-system namespace, I get the desired behavior:
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  name: ingress
  namespace: istio-system
spec:
  targets:
  - name: istio-ingressgateway
  origins:
  - jwt:
      issuer: https://####.com
      jwksUri: https://####.com/oauth2/v1/keys
  principalBinding: USE_ORIGIN

Could you run kubectl get policy --all-namespaces -o yaml? It seems you have more than 1 policy in namespace foo for httpbin, the behavior is undefined in this case.

Ok so here's what I did.

Enabled debug and access logging ("/dev/stdout") on Istio proxy via Helm, restarted httpbin pod
Sent requests:

$ curl http://$INGRESS_HOST/status/200 -s -o /dev/null -w "%{http_code}\n"
200
$ curl http://$INGRESS_HOST/status/200 -s -o /dev/null -w "%{http_code}\n"
200
$ curl http://$INGRESS_HOST/status/200 -s -o /dev/null -w "%{http_code}\n"
200

Get logs

kubectl logs httpbin-648fb7456b-9xx28 -c istio-proxy -n foo > proxy-logs.log

However, I don't see any logs that look like they pertain to my requests.

@cmanzi Could you copy the full proxy log here? By the way, you don't need to restart to enable the debug logging, you can just kubectl exec -it <httpbin-pod-name> -c istio-proxy -- curl -s "localhost:15000/logging?level=debug" -X POST

proxy-logs.log

proxy-logs.log

I didn't see any access log at path /status/200, are you sure the ingress gateway is forwarding the request to it?

I thought that was odd as well, but the requests are going through. It responds as expected, and curl is pointed to the ingress gateway:
$ curl -vL http://$INGRESS_HOST/headers
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to$INGRESS_HOST (x.x.x.x) port 80 (#0)
> GET /headers HTTP/1.1
> Host: $INGRESS_HOST
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< server: istio-envoy
< date: Fri, 13 Sep 2019 17:57:24 GMT
< content-type: application/json
< content-length: 806
< access-control-allow-origin: *
< access-control-allow-credentials: true
< x-envoy-upstream-service-time: 3
<
{
  "headers": {
    "Accept": "*/*",
    "Content-Length": "0",
    "Host": "$INGRESS_HOST",
    "User-Agent": "curl/7.61.1",
    "X-B3-Sampled": "0",
    "X-B3-Spanid": "546cf60391424ef0",
    "X-B3-Traceid": "4f041bba4da10e3f546cf60391424ef0",
    "X-Envoy-Decorator-Operation": "httpbin.foo.svc.cluster.local:8000/*",
    "X-Envoy-External-Address": "x.x.x.x",
    "X-Istio-Attributes": "CiUKGGR...y9odHRwYmlu"
  }
}

@cmanzi How many httpbin pods do you have and what is your service and virtual service? It seems the request is not hitting the proxy from the log.
To help narrow down the issue, could you enable RBAC on your httpbin and just make it deny all? If the request is hitting the httpbin pod, the RBAC log should say it.

@yangminzhu I only have 1 httpbin pod. service/virtual service:
$ kubectl get svc httpbin -n foo -o yaml
apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"httpbin"},"name":"httpbin","namespace":"foo"},"spec":{"ports":[{"name":"http","port":8000,"targetPort":80}],"selector":{"app":"httpbin"}}}
  creationTimestamp: "2019-09-12T16:14:25Z"
  labels:
    app: httpbin
  name: httpbin
  namespace: foo
  resourceVersion: "1480061"
  selfLink: /api/v1/namespaces/foo/services/httpbin
  uid: 63ae680b-d578-11e9-8961-0675a49138f8
spec:
  clusterIP: x.x.x.x
  ports:
  - name: http
    port: 8000
    protocol: TCP
    targetPort: 80
  selector:
    app: httpbin
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
$ kubectl get vs httpbin -n foo -o yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"networking.istio.io/v1alpha3","kind":"VirtualService","metadata":{"annotations":{},"name":"httpbin","namespace":"foo"},"spec":{"gateways":["httpbin-gateway"],"hosts":["*"],"http":[{"route":[{"destination":{"host":"httpbin.foo.svc.cluster.local","port":{"number":8000}}}]}]}}
  creationTimestamp: "2019-09-12T16:14:25Z"
  generation: 1
  name: httpbin
  namespace: foo
  resourceVersion: "1480071"
  selfLink: /apis/networking.istio.io/v1alpha3/namespaces/foo/virtualservices/httpbin
  uid: 63bc668b-d578-11e9-8961-0675a49138f8
spec:
  gateways:
  - httpbin-gateway
  hosts:
  - '*'
  http:
  - route:
    - destination:
        host: httpbin.foo.svc.cluster.local
        port:
          number: 8000

I enabled RBAC with ON_WITH_INCLUSION. Here are my ClusterRBACConfig/MeshPolicy resources:
$ kubectl get clusterrbacconfig -o yaml
apiVersion: v1
items:
- apiVersion: rbac.istio.io/v1alpha1
  kind: ClusterRbacConfig
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"rbac.istio.io/v1alpha1","kind":"ClusterRbacConfig","metadata":{"annotations":{},"name":"default"},"spec":{"inclusion":{"namespaces":["foo"]},"mode":"ON_WITH_INCLUSION"}}
    creationTimestamp: "2019-09-13T20:13:35Z"
    generation: 1
    name: default
    resourceVersion: "1692129"
    selfLink: /apis/rbac.istio.io/v1alpha1/clusterrbacconfigs/default
    uid: f76fa7fe-d662-11e9-a426-0a0b758521ee
  spec:
    inclusion:
      namespaces:
      - foo
    mode: ON_WITH_INCLUSION
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""
$ kubectl get meshpolicy -o yaml
apiVersion: v1
items:
- apiVersion: authentication.istio.io/v1alpha1
  kind: MeshPolicy
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"authentication.istio.io/v1alpha1","kind":"MeshPolicy","metadata":{"annotations":{},"name":"default"},"spec":{"peers":[{"mtls":{}}]}}
    creationTimestamp: "2019-09-13T19:52:27Z"
    generation: 1
    name: default
    resourceVersion: "1689367"
    selfLink: /apis/authentication.istio.io/v1alpha1/meshpolicies/default
    uid: 03beffde-d660-11e9-a426-0a0b758521ee
  spec:
    peers:
    - mtls: {}
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

I can still access the service.

Since you enabled the RBAC, could you get the new proxy log? (Please make sure you enabled the debug logging level)

My mistake, RBAC actually was enabled when I originally did this testing.

@cmanzi Since the RBAC is working, could you get a config dump of the proxy? it should include the RBAC filter config at least. And more importantly, could you turn on the debug logging of the envoy, send some requests and get the log? We should at least see the RBAC logging there, and probably with some other information about why JWT policy is not enforced.

May not be related, but I noticed the JWT policy does not work well when there are two services (with different names) pointing to the same application, and same ports, for example:
kind: Service
apiVersion: v1
metadata:
  name: secure-api
  namespace: api
  labels:
    app: api
spec:
  ports:
    - name: http
      port: 80
      targetPort: 8000
  selector:
    app: api
---
kind: Service
apiVersion: v1
metadata:
  name: insecure-api
  namespace: api
  labels:
    app: api
spec:
  ports:
    - name: http
      port: 80
      targetPort: 8000
  selector:
    app: api

With the above, the policy does not take any effect. But if we change one of the port number (e.g. port: 80), it will work again
(BTW, the context behind having two services in the above example is to handle secure access from say outside the cluster versus say insecure access from within the cluster, I know there's probably a better way to do this, e.g. attaching the policy to the Ingress gateway)

@yangminzhu
Ok so here's what I can see right now. I have access logs turned on for envoy. When I curl the endpoint from external (via ingressgateway):
$ curl -vL http://host/status/200
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to host (<IP_ADDRESS>) port 80 (#0)
> GET /status/200 HTTP/1.1
> Host: host
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< server: istio-envoy
< date: Wed, 25 Sep 2019 15:19:00 GMT
< content-type: text/html; charset=utf-8
< access-control-allow-origin: *
< access-control-allow-credentials: true
< content-length: 0
< x-envoy-upstream-service-time: 4
<
* Connection #0 to host host left intact

As before, it seemingly ignores the JWT rule. When I look at the logs from the httpbin istio-proxy containers:
kubectl logs -l app=httpbin -c istio-proxy
2019-09-25T15:17:14.947530Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:16.904451Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:18.904467Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:20.904611Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:22.904562Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:24.958496Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:26.904497Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:28.904648Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:30.904742Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:32.905170Z     info    Envoy proxy is ready
2019-09-25T15:17:02.182274Z     info    Epoch 0 starting
2019-09-25T15:17:02.185190Z     info    Envoy command: [-c /etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --parent-shutdown-time-s 60 --service-cluster httpbin.default --service-node sidecar~<ip>~httpbin-648fb7456b-j5mgk.default~default.svc.cluster.local --max-obj-name-len 189 --local-address-ip-version v4 --allow-unknown-fields -l warning --component-log-level misc:error --concurrency 2]
[2019-09-25 15:17:02.209][14][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 14, no healthy upstream
[2019-09-25 15:17:02.210][14][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:49] Unable to establish new stream
[2019-09-25 15:17:02.824][14][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 14, no healthy upstream
[2019-09-25 15:17:02.825][14][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:49] Unable to establish new stream
2019-09-25T15:17:04.347684Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:06.346681Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:08.346597Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:17:10.459693Z     info    Envoy proxy is ready

No access logs to be found. But, when I look at the istio-ingressgateway access logs:
$ kubectl -n istio-system logs -l app=istio-ingressgateway -c istio-proxy
2019-09-25T15:16:17.999183Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:19.999349Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:21.999288Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:23.999226Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:25.999357Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:27.999215Z     info    Envoy proxy is NOT ready: config not received from Pilot (is Pilot running?): cds updates: 0 successful, 0 rejected; lds updates: 0 successful, 0 rejected
2019-09-25T15:16:30.001327Z     info    Envoy proxy is ready
{"protocol":"HTTP/1.1","upstream_service_time":"-","upstream_local_address":"-","duration":"6109","downstream_local_address":"<ip>:80","upstream_transport_failure_reason":"-","response_code":"503","user_agent":"curl/7.61.1","response_flags":"UF,URX","start_time":"2019-09-25T15:17:40.003Z","method":"GET","request_id":"<id>","upstream_host":"<ip>:80","x_forwarded_for":"<ip>","requested_server_name":"-","bytes_received":"0","istio_policy_status":"-","bytes_sent":"91","upstream_cluster":"outbound|8000||httpbin.default.svc.cluster.local","downstream_remote_address":"<ip>:55746","authority":"<host>","path":"/status/200"}
{"response_flags":"UF,URX","start_time":"2019-09-25T15:17:49.627Z","method":"GET","request_id":"<id>","upstream_host":"<ip>:80","x_forwarded_for":"<ip>","requested_server_name":"-","bytes_received":"0","istio_policy_status":"-","bytes_sent":"91","upstream_cluster":"outbound|8000||httpbin.default.svc.cluster.local","downstream_remote_address":"<ip>:57368","authority":"<host>","path":"/status/200","protocol":"HTTP/1.1","upstream_service_time":"-","upstream_local_address":"-","duration":"6055","downstream_local_address":"<ip>:80","upstream_transport_failure_reason":"-","response_code":"503","user_agent":"curl/7.61.1"}
{"requested_server_name":"-","bytes_received":"0","istio_policy_status":"-","bytes_sent":"0","upstream_cluster":"outbound|8000||httpbin.default.svc.cluster.local","downstream_remote_address":"<ip>:41326","authority":"<host>","path":"/status/200","protocol":"HTTP/1.1","upstream_service_time":"4","upstream_local_address":"-","duration":"42","downstream_local_address":"<ip>:80","upstream_transport_failure_reason":"-","response_code":"200","user_agent":"curl/7.61.1","response_flags":"-","start_time":"2019-09-25T15:19:00.189Z","method":"GET","request_id":"<id>","upstream_host":"<ip>:80","x_forwarded_for":"<ip>"}

As expected, I can see the access logs from my requests. So, I exec'd into the istio-ingressgateway pod to try a curl from there:
# curl -vL http://httpbin.default.svc.cluster.local:8000/status/200
*   Trying<ip>...
* Connected to httpbin.default.svc.cluster.local (<ip>) port 8000 (#0)
> GET /status/200 HTTP/1.1
> Host: httpbin.default.svc.cluster.local:8000
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: gunicorn/19.9.0
< Date: Wed, 25 Sep 2019 15:29:21 GMT
< Connection: keep-alive
< Content-Type: text/html; charset=utf-8
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Content-Length: 0
<
* Connection #0 to host httpbin.default.svc.cluster.local left intact

This request appears to be bypassing envoy entirely (which would explain the lack of access logs). Shouldn't the Server header show istio-proxy? Both httpbin pod sidecars are running, and not showing any errors or restarts. What would cause traffic to bypass the sidecar proxy?

So, the root cause of this turned out to be that during my install, I only set istio_cni.enabled=true, and neglected to install the actual istio-cni daemonset. Boy do I feel silly! Everything works now, thanks for the help @yangminzhu .


some retries are skipped by Envoy

I am debugging some retry failures and noticed that Envoy is skipping retry in some cases even though the retry policy is set for it. This is a gRPC retry.
Here is the retry configuration
num_retries: 5
retry-on: cancelled,connect-failure,gateway-error,refused-stream,resource-exhausted,unavailable
Actual end client sees 503 with error message "upstream connect error or disconnect/reset before headers. reset reason: connection failure"
Here is some relevant stats :
envoy.cluster.upstream_rq_retry : 7
envoy.cluster.upstream_rq_retry_success: 6
envoy.cluster.upstream_rq_503: 1
envoy.http2.tx_reset:1
envoy.cluster.upstream_rq_pending_failure_eject:7
envoy.cluster.upstream_cx_connect_fail:7
envoy.cluster.upstream_cx_connect_timeout:3
As can be seen from the above stats, one retry is skipped and resulted in 503.
Looking at the router code, I see two places where a retry can be skipped on upstream reset.
One here, But since it is a connection failure - none these conditions should trigger the skip. Also rq_reset_after_downstream_response_started stat is not incremented. So I am guessing this is not the case.
https://github.com/envoyproxy/envoy/blob/7e7486588239f42b4be3a6383e3c0776d2d05bef/source/common/router/router.cc#L850
Second here :
https://github.com/envoyproxy/envoy/blob/7e7486588239f42b4be3a6383e3c0776d2d05bef/source/common/router/router.cc#L1218
I am not able to confirm whether this is case, because there are no stats to confirm the same. But the comments above seems very relevant on why retry may have been skipped.
One thing we can try is increase connect timeout to see if it resolves. Another thing I want to check, can adding buffer filter before this help?

@mattklein123 does the above analysis make sense? Any thoughts?

@snowp any comments on this?

@ramaraochavali is https://github.com/envoyproxy/envoy/pull/7671 related to this?

@dio Added a stat that could possibly confirm the behaviour of retries when request is completed

One thing we can try is increase connect timeout to see if it resolves. Another thing I want to check, can adding buffer filter before this help?

Yes, buffer filter would "fix" this case if it works for your use case.

@mattklein123 Thanks. A follow-up question, how does buffer filter work with gRPC streaming requests? And what is the typical max_buffer_size configured? I know the second part depends on use case, but just wondering.

It doesn't work. :) Streaming requests cannot be buffered or retried. Unfortunately, Envoy has no way of knowing by default whether a request is streaming or not so this needs to be manually configured somehow, potentially on a per-route basis.

I see. Thanks much.


MacOS-mlnet: Command not found.

Problem encountered on https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/train
Operating System: macos
Catalina 10.15.5 Mac mini 2018 3Ghz 6-core i5
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
Running this step I encounter:
zsh: command not found: mlnet
I backed out a few steps and confirmed that the mlnet tool is installed.  Also tried sudo and dotnet mlnet... etc.

you need to add dotnet tool path to your environment path variable. there should be hint message from dotnet global tool once after you install mlnet.

Close due to no response, feel free to reopen it if you still have the problem


Can u implement this on Whatsapp or Telegram ?

Please someone implement this on Whatsapp or Telegram

It's literally under MIT license, you can use it for anything, as long as you give credit for the code you do use.
Ie, follow the license.


Add queue shutdown switch to dashboard

There is a need to make deployment easier. One approach is to deploy by copying the JAR into place and then flipping a switch that will shutdown as soon as there are no deploys running. This saves a human having to do the same thing.
This needs some extra work on the init script to restart the process rather than simply exiting (specific exitcode?)
Looks like NettyServer.stop() might be the right approach although System.exit(?) might be sufficient.

This has been done.


neutralLighter theme color does not apply

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
None
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[ ] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

browser version
SPFx version
Node.js version
etc

Describe the bug / error
When I upload a custom theme. When you load the page the "neutralLighter" color is being shown then quickly being overridden by #F0F0F0 color.
Similar to previously reported issue
Steps to reproduce

Add new custom SPO Theme as described here
Check the second section background color in a modern page if it has the color of "neutralLighter" in the theme definition.

Expected behavior
The section background color has the color that is defined as "neutralLighter" in the custom Theme.

Any news about this issue? I also encounter this issues on few tenants.

Do we have updates now on this?


EXIF Filter does not work with PDF's

Describe the bug
exiftool from the shell works on PDF files to reveal metadata. The exif tag in organize silently skips PDF files without explanation.
Either this is on purpose, in which case there should be info either in the docs or in the output of the rule that exif doesn't work on PDF files, unlike when used from the shell.
Or, this is a feature request to include PDF files in the exif filter.
Environment (please complete the following information):

OS:

OS: Linux Mint 22 x86_64
Host: 2342CTO ThinkPad T430
Kernel: 6.8.0-45-generic
Shell: bash 5.2.21
DE: Xfce 4.18
WM: Xfwm4
CPU: Intel i7-3520M (4) @ 3.600GHz
GPU: Intel 3rd Gen Core processor Graphics Controller
GPU: NVIDIA NVS 5400M
Memory: 3208MiB / 6763MiB

Output of organize --version:
organize v3.2.5

Your config file
rules:
  - name: "Check exif"
    locations: "."
    filters:
      - extension: pdf
      - exif
    actions:
      - echo: "This does not work"

  - name: "No Exif"
    locations: "."
    filters:
      - extension: pdf
      - name
    actions:
      - echo: "This works"

  - name: "Try with shell"
    locations: "."
    filters:
      - extension: pdf
    actions:
      - shell: 'exiftool {path} | grep "Date/Time"'
      - echo: "{shell.output}"

Did you set the ORGANIZE_EXIFTOOL_PATH="exiftool" variable?

Found the problem. organize was expecting a Composite key in the result dictionary, which is missing for PDFs. This will be fixed in the next version.


[Android] Add customisation options for links and code

Changes
There are a few semi-related changes in this PR which can be reviewed commit by commit (or split into separate PRs if needed).

Allow customisation of link color
Allow customisation of code and inline code backgrounds
Refactor code and inline code background styles (so that apps do not need to handle drawables directly)
Add useful compose debugging config
Fix a few mutability/instability issues in the example app and core view library

Context

https://github.com/vector-im/element-x-android/issues/1315

Codecov Report
Patch coverage has no change and project coverage change: +1.59% :tada:

Comparison is base (ac03500) 88.28% compared to head (b940949) 89.88%.

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #813      +/-   ##
============================================
+ Coverage     88.28%   89.88%   +1.59%
============================================
  Files           155       82      -73
  Lines         17882    14716    -3166
  Branches        862        0     -862
============================================
- Hits          15788    13227    -2561
+ Misses         1860     1489     -371
+ Partials        234        0     -234

Flag
Coverage Δ

uitests
?

uitests-android
?

uitests-ios
?

unittests
89.88% <ø> (+2.96%)
:arrow_up:

unittests-android
?

unittests-ios
?

unittests-rust
89.88% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 73 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Real Schur Decomposition High Values

Hi all,
Thank you so much for developing this wonderful package. I was wondering if you could comment on the "usual" real Schur decomposition values that you would expect to see when decomposing the data into 20 components. I am working with developmental tissue data with about 30k cells, and running Schur decomposition for the first 20 components yields real values between 0.9 and 1.0 for all of them (there are eigengaps identified, but the actual drops in real value are minimal). Is this something you would expect to see with this amount of cells or with developmental data? Does it matter?
(asking because in the tutorials I can see your values ranging between 0.5 and 1.0 for the first 20 components)

If I understand right, does it indicate 1-2 major states and a lot of intermediate cell states in the data?
Any help or tips with interpretation of those results would be greatly appreciated!

Hi @AlinaKurjan, I think this spectrum looks fine, the range you get for the real part of the top 20 eigenvalues is not unusual. In our initial and terminal states tutorial, the cell number is much smaller (approx. 2500 cells) compared to your dataset, so I would expect your spectrum to be somewhat more "crowded". Keep in mind that the real part has to be between -1 and 1, so the additional eigenvalues from the larger matrix have to go "somewhere".
Your spectrum indicates that 3 or 11 might be good options to test for the number of macrostates. The algorithm would not allow you to compute 2 macrostates, as eigenvalues 2 and 3 are complex conjugates of each other and they want to "stay together"(we describe this more formally in the methods section of the CellRank 1 paper in case you're interested). If you request 2 macrostates, it will automatically compute 3 and give you a warning.
Now, to figure out whether the macrostates you identify with, say n=11 states, are initial, intermediate or terminal, I suggest looking at the coarse-grained transition matrix (see the tutorial I linked above), and using any prior knowledge about the system that you might have. For example, some macrostates might overlap with clusters you have already annotated in your data, and you might know where they reside in the differentiation hierachy. Or you might have experiental time points in your datset, so naturally macrostates with many early-day cells are more likely to represent initial states, etc.
Let me know whether this helps!


fixed a broken link in the README

One of the links in the "Dive deeper into our vision and objectives"  section, which should direct to the " What is & Why Responsive Validity Proof?" document in the Morph Docs was not working. so I fixed that issue and now, it will direct to the correct file.

As you might see, in the Link that I added, the Responsive Validity Proof (RVP) is just down there by scrolling.

@KAMBALENGUNUNU good catch! It seems better to use https://docs.morphl2.io/docs/how-morph-works/optimistic-zkevm/#what-is-rvp.


New feature - Clone login with a new name and DB permissions

Type of Change

[x] Bug fix (non-breaking change, fixes #3864 )
[x] New feature (non-breaking change, adds functionality, fixes # )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[x] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[x] Adding code coverage to existing functionality
[x] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
Make login cloning a reality!
Approach
When -LoginRenameHashtable parameter is specified, Copy-DbaLogin no longer tries to rename the newly created login. It creates a new login using New-DbaLogin function based on the old login object.
The new switch -ObjectLevel also clones permissions by calling Export-DbaUser, that now supports a new switch -Template, which replaces username and login name with templated strings, which can be replaced afterwards by new login/user names. When the switch is absent, the old behavior is preserved, taking care of database-level permissions and roles only.
I had to rename some variables because otherwise I was constantly confused what am I working with, but that, unfortunately, made the PR quite unreadable due to GitHub being annoying and not recognizing the changes. VSCode with GitLens highlights the changes just fine.
Commands to test
Copy-DbaLogin -Source $script:instance1 -Login tester -Destination $script:instance2 -LoginRenameHashtable @{ tester = 'tester_new' } -ObjectLevel

Learning
Reading own old code is confusing.

Finalllllllllllllllllly! 🤩

Thanks for the review! Added examples and fixed param help a bit.

thanks so much to you both 🙇 we'll have to scream about this one from the rooftops!


What's the proper way to install programs before tests?

(I'm using molecule with docker)
For example, I'm writing a role which assumes that make is available; I don't want to add the installation of make to the role either. For one thing this would require sudo rights where the rest of the role doesn't, which is somewhat inelegant, but for another it is just not the job of this role to install make or to even require a role that does.
But of course when I test my role I want make to be installed on the vm. What's the proper way to do this?
One guess would be to have a pre_task in the Converge playbook which installs make. It could just be because I'm using Docker but in my experience this is unreasonably slow. If this is the proper way to do it, then so be it; but it got me looking for some alternatives.
One would be to have different Docker image, one that includes the tools I need. However, the definition of "tools I need" could be different for each role. So this would require an different Dockerfile for every role, and which would need to be built before testing, which I got working by just modifying create.yml (I think), but now we are wandering off a bit from the standard molecule behavior.
What is the proper way to do it?

Put it in the prepare.yml playbook.  The containers will be created, and then "prepared," which is when the playbook gets run.  We do that to install all kinds of stuff in docker or vagrant containers that we need for testing but not for actual use of the role.


allow the creation of a nextUpdate-less CRL.

The nextUpdate is optional in a CRL, it may be necessary to be able to produce such CRLs for testing purpose at least.

Can you sign our CLA?  And perhaps rebase?  Looks good.  Needs a document update.

Drop this one, I made the changes on my master branch instead of creating a new one, and couldn't rebase.
A new pull request (#1953) has been made.

Okay, everyone, had over to #1953 :)


Interactive Tutorial - Scaling Your App

In module 5: Step 2: Load Balancing
We need to expose the service first because last time we interacted with the Kubernetes service was when we deleted it.
So before the describe command, we need to do expose to the Deployment like this:
kubectl expose deployments/kubernetes-bootcamp --type="NodePort" --port 8080

/assign

@EzzEddin
It seems that

each module, I mean Module 4 and Module 5, is independent to each other.
when you launch a test Katacoda env for the Module 5, some predefined objects are created & configured from scratch, including the NodePort Service for kubernetes-bootcamp.
I can check this with running kubectl get svc -A right after launching a test Katacoda env for the Module 5:

$ kubectl get svc -A
NAMESPACE              NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                      ClusterIP   <IP_ADDRESS>        <none>        443/TCP                  15s
default                kubernetes-bootcamp             NodePort    <IP_ADDRESS>   <none>        8080:30676/TCP           12s
kube-system            kube-dns                        ClusterIP   <IP_ADDRESS>       <none>        53/UDP,53/TCP,9153/TCP   14s
kube-system            metrics-server                  ClusterIP   <IP_ADDRESS>    <none>        443/TCP                  10s
kubernetes-dashboard   dashboard-metrics-scraper       ClusterIP   <IP_ADDRESS>     <none>        8000/TCP                 9s
kubernetes-dashboard   kubernetes-dashboard            ClusterIP   <IP_ADDRESS>   <none>        80/TCP                   9s
kubernetes-dashboard   kubernetes-dashboard-katacoda   NodePort    <IP_ADDRESS>   <none>        80:30000/TCP             8s

And I was able to go through all steps in Module 5 as-is without any error.
Per your suggestion, when I execute kubectl expose deployments/kubernetes-bootcamp --type="NodePort" --port 8080
before running kubectl describe services/kubernetes-bootcamp,
it returns 'already exists' error:

$ kubectl expose deployments/kubernetes-bootcamp --type="NodePort" --port 8080
Error from server (AlreadyExists): services "kubernetes-bootcamp" already exists

So IMO we don't need to add the command kubectl expose deployments/kubernetes-bootcamp --type="NodePort" --port 8080
to the 'Interactive Tutorial - Scaling Your App'.
What do you think about this?

@jihoon-seo Yup, I agree that we don't need to add that command after your explanation. Thanks!
I was just following up with these modules on my machine using minikube and kubectl. So I had to recreate the service because it was not ready as in the Katacoda environment.
Anyway, I used my machine (not the interactive k8s lab playground) because it was hard for me to follow up with the description (on the left screen) and apply on the terminals (on the right). Maybe we can take this as a piece of feedback to make the playground more appealing, or maybe make the reader aware of the best setup to follow along with the playground and the explanation. For example, I couldn't control the screen to be resized to the full width of the screen (and get rid of the TOC on the left).

@EzzEddin Okay I got it.

it was hard for me to follow up with the description (on the left screen) and apply on the terminals (on the right).

Just in case you are not familiar with Interactive Tutorials in k8s.io website:

PTAL. 😊

@jihoon-seo Yes, I knew that feature. I was also clicking on the command to open a new terminal when I ran kubectl proxy command.
The problem is that I couldn't control the width of both screens. I was just able to maximize the right screen but not able to maximize the left screen as well to follow along with the explanation.


MS Learn: Electronic Reporting Overview Page: Refers to image that is not even on the page

At heading: 'Building a configuration to generate electronic documents in a Word document format'
It reads:
"The ER format designer can be used to build an electronic document in a Word document format. The following illustration shows an example of this type of format."
But there is no image on the page at that point.  Did anyone proof read this documentation before posting it?

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

ID: 76bee9cb-75ce-8b32-3f20-2b2b7d6fa75c
Version Independent ID: ce4c6e71-365d-c08e-661e-df34ee1c5baa
Content: Electronic reporting (ER) overview - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/analytics/general-electronic-reporting.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @kfend
Microsoft Alias: filatovm

Bug 786460 has been logged to address this issue.

This has been updated.


Data summaries - download and unzip most recent master version of portal

There is code to do this here  https://github.com/weecology/portalPredictions/blob/master/forecast_tools.R#L241

I added @sdtaylor 's functions in GetData.R .https://github.com/weecology/PortalDataSummaries/pull/11 We just need to decide where to put the unzipped data. Wouldn't it be in keeping with an R package to put it in the package folder? Then it wouldn't interfere with our repos (mine at least is in the base folder)?

The default for most packages is to put it in the working directory. which I think is reasonable. when we're working in the portalPredictions project these it will be downloaded to that folder.

Implemented in 807aeb5e86a911f38241946d62ac99f43353faf7.


[WIP] feat(cluster-generator): support arbitrary key:value pairs

WIP - DO NOT MERGE
Per the cluster generator filters example, we should allow arbitrary key:value pairs that can be used for templating.
Depends on #93
Signed-off-by: Michael Goodness<EMAIL_ADDRESS>

Premature PR, as the CRD will have to be regenerated with the addition to ClusterGenerator. That's complicated by the fact that the project was bootstrapped using kubebuilder v1. I'm in the process of migrating to v2 - a separate PR.

Premature PR, as the CRD will have to be regenerated with the addition to ClusterGenerator. That's complicated by the fact that the project was bootstrapped using kubebuilder v1. I'm in the process of migrating to v2 - a separate PR.

As reported in Slack, something in the e2e tests doesn't like this new ApplicationSet CRD generated using apiextensions.k8s.io/v1. If I generate the CRD using apiextensions.k8s.io/v1beta (as in #97), everything is fine.
Can confirm that the apiextensions.k8s.io/v1 CRD works fine in my cluster.

As reported in Slack, something in the e2e tests doesn't like this new ApplicationSet CRD generated using apiextensions.k8s.io/v1. If I generate the CRD using apiextensions.k8s.io/v1beta (as in #97), everything is fine.
Can confirm that the apiextensions.k8s.io/v1 CRD works fine in my cluster.

Punting on the apiextensions.k8s.io/v1 for now, in the interest of getting this feature merged.

Punting on the apiextensions.k8s.io/v1 for now, in the interest of getting this feature merged.

Thanks @mgoodness, still needs a quick rebase but LGTM!

Go go go, before someone sneaks in another change!

Thanks @mgoodness, still needs a quick rebase but LGTM!

Go go go, before someone sneaks in another change!

Merged, thanks again... sorry for the code churn, going forward we should have fewer conflicts now that we are close to having things nailed down in the generated manifests. :smile:

Merged, thanks again... sorry for the code churn, going forward we should have fewer conflicts now that we are close to having things nailed down in the generated manifests. :smile:


IoT Hub Query Language: Example query and its description don't match

I believe that the description doesn't match the query in the following paragraph:

Projection queries allow developers to return only the properties they care about. For example, to retrieve the last activity time of all disconnected devices use the following query:
 SELECT LastActivityTime FROM devices WHERE status = 'enabled'

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

ID: c58bc573-ec3e-ed94-900d-1163a5700750
Version Independent ID: d83c0073-4a03-f46b-1855-4101b040d92c
Content: Understand the Azure IoT Hub query language
Content Source: articles/iot-hub/iot-hub-devguide-query-language.md
Service: iot-hub
GitHub Login: @robinsh
Microsoft Alias: robinsh

Hello @tymtam2 Thanks for the Feedback!
Our Content Author\SME will review your feedback soon!

#assign wesmc7777

@tymtam2 Thank you very much for reporting this. You are correct. The description is not correct. Also the example is not very good. I'll update both of these issues.  Thanks again for reporting it!


Enhancement: apple_item key support

The apple_item key seems not to be implemented in pkginfo editor.
Is there any chance to add it in the future?

Thanks for the request. This will be added in a (near) future release.

+1


Allow switching models in an already existing task

Allow switching models in an already existing task
I think this would be useful not only for when you are rate limited, but if you want to swap to a more advanced model for some tasks.

I've never had issues doing this? Well sometimes it seems to reset if you change the setting mid thinking, but otherwise I've swapped back and forth in settings to avoid limits quite often.

You can already switch models mid task, just open settings and change the model. Although you'd need to be using the sidebar version of the extension for it to update in an active task. I'm considering adding a models option to the @ context menu, so stay tuned for that! Closing this issue bc I'd like ideas to be added to our Ideas board so ppl can vote on their favorite ones: https://github.com/saoudrizwan/claude-dev/discussions/categories/ideas

This sort of works without entering the details, if you've already entered two different types of provider and just want to switch between them in the settings.  For example, I can switch between claude and a local model without re-entering urls etc.  It would be nice to support this properly though, with multiple named providers and their own connection type and settings, and the ability to select the current provider name in the chat/main view rather than the settings.


Proposal document and advertise sphinx API

Link to the documentation you'd like to improve
https://sphinx-design.readthedocs.io/en/latest/get_started.html#
What to improve
First of all, sphinx-design is beautiful, thanks @chrisjsewell the team for implementing this!
TL;DR: I propose to better expose the internal API of sphinx-design and encourage users implement their own semantic directives based on the sphinx-design components.
Looking at the sphinx-design rst API, I notice that it mainly implements high-level tools for implementing components. If the documentation authors use these directly, the markup of the documentation mixes the presentation with the semantics. By comparison, most if not all sphinx directives have a clear semantic meaning.
I imagine that most sites won't use the entirety of the options, but will find a few specific configurations that work for them, for example a simple self-check question could look like something along these lines:
:::{dropdown} {fas}`unverified` Check yourself: what is $d \exp x/dx$?
:animate: fade-in-slide-down
:color: info
It's $\exp x$!
:::

At the same time, the documentation author would probably rather want to write something like
:::{question} Check yourself: what is $d \exp x/dx$?
It's $\exp x$!
:::

This is straightforward to implement, and it doesn't require any reorganization from sphinx-design itself, but:

Not all authors will come up with the idea, rather than having overly verbose and error-prone sources
Without the sphinx API documented, the task requires a source dive.

Therefore I propose to have this use case in mind, and along with the markup corresponding to the directives and roles to document the corresponding nodes, potentially also providing a tutorial for implementing semantic components of one's own.

I think this is a clever idea, given that sphinx-design is providing building block elements which could be composed together in a repeatable fashion. Another example of this is in my PR to the Sphinx Book Theme, where I'm basically trying to re-create the top of the front-page of Sphinx Design https://github.com/executablebooks/sphinx-book-theme/pull/370
I think there could be a fast improvement here and a longer-term improvement, both in the documentation:

Fast improvement: Create a page like the sphinx-design gallery or sphinx-design recipes where people can add PRs that show some MyST/rST and the subsequent render, so that others can take inspiration and copy/paste
Slow improvement: Add documentation about how people could create their own Sphinx directives that utilize sphinx-design under the hood (e.g. how to create the :::{question} directive above)

I think both wouldn't be too hard to put together and could be a cool way to boost the reach of this package

Thanks @akhmerov, I think in most cases this could be boiled down to a more general sphinx feature request (or just best practice): setting "global" or "modal" defaults for directive options.
One simple way to do this would be e.g.:
from sphinx_design.dropdown import DropdownDirective

class QuestionDirective(DropdownDirective):
   def run(self):
      self.options.setdefault("animate", "fade-in-slide-down")
      self.options.setdefault("color", "info")
      super().run()

def setup(app):
   app.add_directive("question", QuestionDirective)

You don't really need to know too much about the API then, like nodes etc.
I would be a little wary about promoting too much use of the low-level API though,
since this implies extra "guarantees" on its stability,
making it more difficult to do any refactoring/improvements to it later on.

Edited the code above a bit with improvements, could maybe add the set_option_default method to all the directives in sphinx design

@chrisjsewell yeah I think a big challenge here is just that the Sphinx docs are so lacking - ideally it would be easy to find an answer to "How do I sub-class a Directive in order to create one of my own".
either way I agree that if this were documented somewhere in sphinx-design it should be listed as "advanced" and with no promises that breaking changes won't mess this up.

You don't really need to know too much about the API then, like nodes etc.

Hehe, I also included {fas} as a part of the component in my example :stuck_out_tongue_closed_eyes: That does require using nodes.

Slow improvement: Add documentation about how people could create their own Sphinx directives

Mainly I meant to suggest autodocing all the classes, purely as a reference to save a code dive.

I would be a little wary about promoting too much use of the low-level API though

While I absolutely relate to the concern, having a semantic component defined in a single place is easier to maintain downstream than a whole bunch of copypasted code.

I also included {fas} as a part of the component in my example 😝 That does require using nodes.

Not if you use the icon option 😉

I believe this is largely solved now by #194

Thanks, the solution looks great!


feat(avm): revert opcode

Please read contributing guidelines and remove this line.

Benchmark results
Metrics with a significant change:

protocol_circuit_proving_time_in_ms (base-rollup): 65,037 (-17%)
protocol_circuit_proving_time_in_ms (public-kernel-setup): 37,505 (-17%)
protocol_circuit_proving_time_in_ms (public-kernel-app-logic): 39,140 (-18%)
protocol_circuit_proving_time_in_ms (public-kernel-teardown): 39,135 (-16%)
protocol_circuit_proving_time_in_ms (public-kernel-tail): 157,174 (-17%)
pxe_database_size_in_bytes (3): 9,242 (+19%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,720
1,543
708
776 (+1%)
771

proof_construction_time_sha256_30_ms
11,902 (+1%)
3,158
1,424 (+1%)
1,432
1,480 (+1%)

proof_construction_time_sha256_100_ms
45,038 (+3%)
12,113
5,757 (+1%)
5,679 (+2%)
5,543 (+1%)

proof_construction_time_poseidon_hash_ms
77.0 (-1%)
34.0
34.0
59.0
87.0 (+1%)

proof_construction_time_poseidon_hash_30_ms
1,514
416 (+1%)
199
220 (-1%)
270 (+2%)

proof_construction_time_poseidon_hash_100_ms
5,742
1,567 (-1%)
729 (+1%)
789
804

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs

l1_rollup_calldata_size_in_bytes
1,412
1,412

l1_rollup_calldata_gas
9,452
9,462

l1_rollup_execution_gas
607,988
607,998

l2_block_processing_time_in_ms
717 (+4%)
1,292 (-1%)

l2_block_building_time_in_ms
22,321 (-1%)
45,872

l2_block_rollup_simulation_time_in_ms
22,196 (-1%)
45,523

l2_block_public_tx_process_time_in_ms
19,081 (-1%)
42,088

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
5,902 (-2%)
8,499 (-2%)

node_database_size_in_bytes
9,502,800
12,730,448

pxe_database_size_in_bytes
:warning: 9,242 (+19%)
15,127

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.5 (+1%)
17.1 (+1%)
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.7
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.608 (+1%)
0.524 (+1%)
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
48.9 (+1%)
76.3
134
247
474
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
288
543
1,055
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.500 (+1%)
0.470
0.459
0.448
0.442
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
58.7 (+1%)
113
185 (+1%)
351 (-1%)
630
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
107
208
355
686
1,263
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.506 (+1%)
0.505
0.490 (+1%)
0.480 (-1%)
0.470
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
59.1

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
101

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.552

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
79,470
665,267

Transaction size based on fee payment method
| Metric |  |
| - |  |


More distant foreign object

If I want to use ForeignKeyFormField(MyForm, field_name='close_foreign.distant_foreign'), it unfortunately doesn't work. Probably because getattr(MyModel, 'close_foreign.distant_foreign') neither getattr(MyModel, 'close_foreign__distant_foreign') doesn't work that way in Django.

Do you have a form for close_foreign? Otherwise how does your outermost form link itself to distant_foreign without a close_foreign in the middle?

Oh, I don't, I see... I'll have to rethink it, thanks.

Right, I don't see any possibility for this to work in a sane way. Currently it is intended that this does not work.
If you have a good vision about how this could behave in all possible cases then I would be glad if we could speak about it. But for now it seems to complex to be integrated anyhow. We should get the docs and anything else straight first before adding more complex features.


David's emacs tweaks

Here's a few updates to today's Emacs mode:

Various Emacs package conventions are implemented, preparing for submission to MELPA
Highlighting for atoms works
Various bugfixes, such as in imenu and the autoload cookies
Minor aesthetic tweaks, such as calling the compilation buffer *RedPRL* instead of *redprl*
The mode hook is added to Customize
Starting redprl-mode will optionally display a revolutionary slogan in the echo area

Feel free to cherry-pick if some of these are unwelcome.

I suppose this is all RE #50

This looks great, thanks! Thanks also for the granular commits, so that I can learn about each change.

Cheers! Want me to submit to MELPA?

(we can point the MELPA version at this repo and tell it to build the elisp file, so there's no extra synch overhead)

@david-christiansen sure! sounds great!


[ServiceBus] pass prefetch through for correct RECEIVE_AND_DELETE behavior

fixes: #31712
When prefetch_count is passed to the receiver during creation, it should receive prefetch_count messages from the service bus queue and add them to the internal buffer. If peek_messages is called, it should return the current messages in the service bus queue, which don't include the messages that have already been prefetched/added to the internal queue. Calling receive_messages or the iterator receiver should return the messages in the internal buffer first, then receive more messages from the service.
Because of the following bugs, when the user passes in prefetch_count, it is not being passed through correctly.
Bugs currently:

Prefetch is incremented by 1 by default, even when user specifies that it should be 0
When link_credit of 0 is passed to pyamqp link during creation, it's set to 10000 (DEFAULT_LINK_CREDIT)

Fixing the following in this PR:

Set prefetch to value user passes in + don't increment
Update default link_credit during pyamqp link creation so it accepts 0
Update receive iterator to set link_credit to 1 when prefetch < 0

#31833 must be merged first for tests that receive messages with prefetch_count=1 to pass.

/azp run python - servicebus - tests

API change check
API changes are not detected in this pull request.

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - perf

/azp run python - servicebus - tests


Any way to embed this directly into HTML without a JS project?

Can I embed this directly into HTML without a JS project setup?

Now you can use the text-vide module directly from your HTML file without having to set up a JS project:

Docs
Thank you! 😇


Issue of URL mapping for ImageProcessor.Web

Hi there,
I'm using ImageProcessor.Web with the following configuration:
      <service name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
                <settings>
                        <setting key="Container" value="media.englandhockey"/>
                        <setting key="MaxBytes" value="8194304"/>
                        <setting key="Timeout" value="30000"/>
                        <setting key="Host" value="https://s3.eu-west-2.amazonaws.com"/>
                </settings>
        </service>

If I request the following URL http://www.englandhockey.andyf/library-media/images/brogdon_and_weir_celebrate_480_x_290.jpg?mode=crop&anchor=center&width=480&quality=85&rnd=291120151740 it's requesting the URL https://s3.eu-west-2.amazonaws.com/media.englandhockey//library-media/images/brogdon_and_weir_celebrate_480_x_290.jpg. This has a double slash in it which AWS does not respond to with the image.
Is my configuration wrong or does CloudImageService.cs line 98 need some additional code to prevent to double slash.
Thanks
Andy

Hi Andy,
Could you possibly supply some version numbers?
Cheers
James

No worries. I'll have a look asap.
If you dig something up before I can get to it please let me know.
Cheers
James

No worries. I'll have a look asap.
If you dig something up before I can get to it please let me know.
Cheers
James

Hi James,
I've made a change (to my local copy) in CloudImageService.cs line 104 to do TrimStart('/') on relativeResourceUrl as container should always have a slash at the end as a result of line 101.
I can do a pull request if you want me to?
Thanks
Andy

Hi James,
I've made a change (to my local copy) in CloudImageService.cs line 104 to do TrimStart('/') on relativeResourceUrl as container should always have a slash at the end as a result of line 101.
I can do a pull request if you want me to?
Thanks
Andy

That would be great thanks!

Beat you to the punch. Thanks for making it easy to fix with your detective work 😄
https://www.nuget.org/packages/ImageProcessor.Web/4.7.1

Thanks for fixing this and all your work on ImageProcessor


Add unit tests for client/testing/nagivation/serviceRegistry.ts

Already has 100% line and branch coverage:


Remove level parameter from createRpcClient

This fixes incompatibility with the @push-rpc package.
TSError: ⨯ Unable to compile TypeScript:
node_modules/charger-simulator/src/ChargerSimulator.ts:68:9 - error TS2554: Expected 1-2 arguments, but got 3.

 68         {
            ~
 69           local: this.chargePoint,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
 88           },
    ~~~~~~~~~~~~
 89         }
    ~~~~~~~~~

Thanks!

@vasyas is it possible to create a v1.0.3 release for this? We are kind of waiting for it :-D
Thanks!

@ChristianVermeulen Published. Thanks for pinging!


fixed github driver

Fixed allyUser.getEmail() without email

Fixed when doing a re-write for 4.0. Thanks for the PR though