Add emulators & two new examples

ScreenCap device saves images on every call to display
Pygame renderer updates a display surface with the contents of the oled device display
Clock and Space Invaders demos
Documentation updates

Coverage decreased (-21.6%) to 75.263% when pulling d8256b98087ef860f28667d60f61bdbf630841e7 on feature/examples into dc3b7ea7dda7856888122601e12028459bc25401 on master.

Coverage decreased (-21.6%) to 75.263% when pulling 52114fc65537124d83a26833be41e31d5b0f086f on feature/examples into dc3b7ea7dda7856888122601e12028459bc25401 on master.

Coverage decreased (-21.6%) to 75.263% when pulling 6f61c8afba801aa4b108f25a01707926343259cd on feature/examples into dc3b7ea7dda7856888122601e12028459bc25401 on master.

Coverage decreased (-20.006%) to 74.112% when pulling 55ea59e4385f13f4b01a3987a0d10f77226935eb on feature/examples into fca97c772815214358ff796ed9ee2fdd2bc0280b on master.

Coverage decreased (-20.006%) to 74.112% when pulling 6478fe3237592722a9cf4e233086086a03eb0d0b on feature/examples into fca97c772815214358ff796ed9ee2fdd2bc0280b on master.

Coverage decreased (-20.006%) to 74.112% when pulling 9f07a1f53e8182fa6b260ef3de888bea86308763 on feature/examples into 0ebab3432e430aceb0715a089fa637a3c8e8e2b5 on master.


Mismatch in loading model

Hi,
@jackroos  I am trying to run the code by using the model weights provided. I used r50_deformable_detr_plus_iterative_bbox_refinement_plus_plus_two_stage-checkpoint.pth
and respective config.
When loading the model it gives mismatch of transformer shape.
Is the checkpoint correct?

@likui01 @jackroos @daijifeng001 Hi, I am having the same problem. Kindly help me in this regard. Thank you

Could you provide the full command you ran? @likui01 @ayberksener
And do you use the latest code and latest model?

@jackroos
GPUS_PER_NODE=8 ./tools/run_dist_launch.sh 8 ./config/r50_deformable_detr_plus_iterative_bbox_refinement_plus_plus_two_stage.sh
with resume from checkpoint provided.

@likui01 What is the detailed error message?

@jackroos
RuntimeError: Error(s) in loading state_dict for DeformableDETR:         size mismatch for class_embed.0.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.0.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).         size mismatch for class_embed.1.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.1.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).         size mismatch for class_embed.2.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.2.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).         size mismatch for class_embed.3.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.3.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).         size mismatch for class_embed.4.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.4.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).         size mismatch for class_embed.5.weight: copying a param with shape torch.Size([91, 256]) from checkpoint, the shape in current model is torch.Size([4, 256]).         size mismatch for class_embed.5.bias: copying a param with shape torch.Size([91]) from checkpoint, the shape in current model is torch.Size([4]).

Do you change any code? It seems you change the num_classes to 4 here, but it should be 91 (set here).

Do you change any code? It seems you change the num_classes to 4 here, but it should be 91 (set here).

i have 4 classes, so i chnaged it to 4.

The model is for COCO detection. If you want to train on your custom dataset, you should train it by yourself and you don't need to resume the trained model. Thanks!

Hi @likui01 @azamshoaib Anyone fixed the problem about mismatch?

The checkpoint is trained on COCO detection. If you want to train on your custom dataset, you should train it by yourself and you don't need to resume the checkpoint. Thanks!

In DETR you can resume (transfer learn) from any checkpoint and still change the number of class. It is an obvious requirement for supporting tranfer learning. If D-DETR doesn't do that, it is something wrong about it. And plus, the problem with shape mismatch might not be just that. Could you please follow this up?

You can have the line 239 of main.py:
missing_keys, unexpected_keys = model_without_ddp.load_state_dict(checkpoint['model'], strict=False)
Change to
    `missing_keys, unexpected_keys = model_without_ddp.load_state_dict( {k:v for k,v in checkpoint['model'].items() if "class_embed" not in k}, strict=False`)


please tag and version this project

Hello,
Can you please tag and version this project?
I am the Debian Maintainer for Unknwon/com and versioning would help Debian keep up with development.

Hi, I just made a tag: https://github.com/Unknwon/com/releases/tag/v1

Thank you!


add inlay hint colors

Makes the inlay hints less obtrusive.
Foreground is #A0A0A0, same as Keywords and a lot of other things in the Theme. I avoided the #595959 from comments to differentiate between them as hints and comments are often together.
Background is #1C1C1C, same as input.background. I avoided using #101010 to create a distinction between inlay hints and keywords on editorBackground.

before:

After:

The examples above show inlay hints from twoslash-queries.

Thanks!


Update redoc and swagger

Updated redoc(from master) and swagger(4.15.5) to the thier minified latest versions.

Thank you very much for your contribution.


feature - favorite

Github Issue URL/Tags (required)
What's this PR do? Please give a technical summary (required)

[x] favorite feature

Any references (stackoverflow …) (optional)

:+1: There are no linter violations.


feat: reject suspicious x:expect[attribute(test)]

This pull request makes x:expect reject @test at run time if it looks like a mistake. The change is twofold:

Promote a warning (implemented in #309) to a fatal error.

Implement what Jeni suggested 10+ years ago:

Perhaps if the result of the test isn't a boolean, there ought to be a requirement for the select attribute and/or content of <x:expect> to be present.

Summary

@test
@as | @href | @select | child::node()
Current behavior
After this PR

Exists. An instance of xs:boolean.
Exists
@as | @href | @select | child::node() is ignored.XSLT: Warning message (#309)XQuery: No warning
Fatal error

Exists. Not an instance of xs:boolean.
Not exists
x:expect is considered to expect an empty sequence
Fatal error

Example
Boolean @test
On the current master
<x:expect test="/foo/bar = 3" select="3" />

works, although a warning message is emitted.
After this PR, it's a fatal error. To fix it, @select should be removed:
<x:expect test="/foo/bar = 3" />

Non-boolean @test
On the current master
<x:expect test="/foo/bar" />

is considered to expect /foo/bar to be equal to an empty sequence.
After this PR, it's a fatal error. To fix it, @test should be an instance of xs:boolean:
<x:expect test="/foo/bar => empty()" />

or x:expect should expect an empty sequence explicitly using @select or @as:
<x:expect test="/foo/bar" select="()" />

<x:expect test="/foo/bar" as="empty-sequence()" />

Error code
The new fatal error does not have a specific error code. Its error code is a generic one:

XSLT: err:XTMM9000
XQuery: err:FOER0000

See #1074 for the rationale. To reiterate, if we want to reinstate the XSpec-specific error codes, I think it should be done after establishing the facility.
Commits

d34649c58b52991174e8c9167472e4019fd5eb78
The primary change.

df32f370d28f91eecec371843ef9925f9a378a17
Deletes or edits some tests to reflect the code change.

21c964a1d0fdf7b7f1eb58a7f4de968fa177d341
Tests x:expect[empty(@href | @select | @test | child::node())]. Such an x:expect is still valid and considered to expect an empty sequence. (Rejecting such an x:expect is not the scope of this pull request.)

aaf2b7180626e5d02855a53351c2fed2856c8d8d
Removes some exactly-one() and treat as from test/*.xspec. They are no longer necessary.

Further work
Update the "Expectations" section of Wiki.

@AirQuick , I started reviewing this and will try to finish by Monday. Do you plan to mention this as a "breaking change" in #1121 ?

Do you plan to mention this as a "breaking change" in #1121 ?

Never mind, I see that you already mentioned this PR there!

I mentioned there, but somehow I forgot to add a description there.
Now I copied the summary table from this PR to https://github.com/xspec/xspec/issues/1121#issue-668630717.

#1256 has made @as available in x:expect. So I included @as in the comparison factors. (bca62ab74434cb13802195902db705682d3ec3c3)
https://github.com/xspec/xspec/issues/1121#issue-668630717 and the description of this pull request (https://github.com/xspec/xspec/pull/1245#issue-493736793) have been updated to reflect it.

General question about XQuery testing: Is the warning in v1.6 for XSLT tests only, not XQuery tests? If that's true, the "breaking changes" writeup should probably say that.

Added XQuery: No warning to the summary tables in https://github.com/xspec/xspec/pull/1245#issue-493736793 and https://github.com/xspec/xspec/issues/1121#issue-668630717.

Also, if you think some XQuery test authors might have many instances of this issue, you might even consider adding a warning phase for XQuery (e.g., warning in v2.0 and error in v2.x or v3.0) instead of going straight from no warning to fatal error.

I think the very initial release (v0.1) of XSpec should have treated <x:expect test="/foo/bar = 3" select="whatever" /> as a fatal error. So, in terms of boolean @test, I would regard this pr as a kind of bug fix and would like to just skip a warning phase for XQuery.
On the other hand, in terms of non-boolean @test, this pr is actually a breaking change. Just like  <x:param /> representing an empty sequence, nothing had been wrong in expecting an empty sequence using <x:expect test="/foo/bar" />; but now it's a fatal error.

Further work
Update the "Expectations" section of Wiki.

Just for the record. This has already been done.


instant crash

after latest install as soon as i start TeamSpeak it crashes have tried uninstall and reinstall same result worked prier version

Please append the teamspeak logfile.
Location: %appdata%\TS3Client\logs

@Kleinrotti
ts3client_2021-09-06__13_33_17.413958.log

Fixed in version <IP_ADDRESS>.


Fix PipelineEngine.eval_batch result

With F16 enabled, PipelineEngine.eval_batch will not correctly broadcast loss. In last stage, eval_batch returns f16 loss, while in other stages, eval_batch will return noise.
def _bcast_pipe_scalar(self, data, src_rank=None, dtype=torch.float32):
    # Default to last stage (e.g., for broadcasting loss)
    if src_rank is None:
        src_rank = self.grid.stage_to_global(self.num_stages - 1)
    assert src_rank in self.grid.pp_group

    if self.global_rank == src_rank:
        result = data.clone().detach() # f16 tensor
    else:
        result = torch.Tensor([0.]).type(dtype).to(self.device) # f32 tensor

    # trying to broadcast a f16 tensor to f32 tensors here, and the result is noise.
    dist.broadcast(tensor=result, src=src_rank, group=self.mpu.get_pipe_parallel_group())

    return result

Environments:

torch 1.13.1
cuda 11.7
GPU A100 40GB + driver 450.80.02

We have been working on LM recently, and encountered this problem. I am trying to fix it. @ShadenSmith @duli2012


Licensing

The license in the root of the project is somewhat deceiving.  It should note that the license as it exists in the root directory is ONLY for the patches as they exist (or any other files as such).  It should be somehow noted that BungeeCord IS not licensed under MIT, but under a customized BSD 3 clause.
Hate to be this guy, but I think it is necessary to avoid confusion.

Sorry about the delay in response.  However, when you generate a build, the license in the root of the directory has the MIT license on the project.
This is a massive problem since you cannot license the project under the MIT.  Which by including it under the root, you are implying it as such.  To see this, open up the compiled jar in 7-Zip or any other file viewer.

Now, that certainly is an issue. Time to find out what shenanigans are going on here.

:The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE."
LICENSE.txt in the root of the jar.

"Copyright (c) 2012, md_5. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
The name of the author may not be used to endorse or promote products derived
from this software without specific prior written permission.
You may not use the software for commercial software hosting services without
written permission from the author.

I know you've probably already looked at this, but I feel by putting it here we're looking at the same thing.

Waterfall doesn't do source redistribution, it just links it with a git submodule.
Waterfall binary distribution does have the license atthe same place as the original binary distribution.

The technical infringer would be https://ci.destroystokyo.com/job/Waterfall/, which is providing the binary distribution.  If you look at the root directory of a compiled jar from Jenkins, the license is the plain MIT license.

The original BungeeCord JAR's from https://ci.md-5.net/job/bungeecord/ have the same MIT License in LICENSE.txt, it's probably from some dependency that is shaded in.
However, BungeeCord also has a LICENSE file in the root directory of BungeeCord.jar with the BungeeCord license. This is missing in Waterfall.
The reason why it's missing in Waterfall is that BungeeCord copies it manually to the resource folder on Jenkins. Before starting a build, it runs cp LICENSE proxy/src/main/resources. (WTF?)
So we probably just need to add a LICENSE file in the resource folder that includes both BungeeCord's and Waterfall's license to have one included in the Waterfall JAR.

Funny you should pop up here, I was looking at it earlier. There's probably a Maven thing similar to Gradle's include resources.


DBZ-4541: Promote failure to register metrics to exception

See DBZ-4541.

Make DatabaseSchema extend AutoCloseable. This isn't strictly necessary but allows writing less code.
Maintain a single schema instance in the tests for the MySQL and Oracle connectors. Multiple schema instances can no longer co-exist in a single process since they would use the same metrics name.

Additionally, remove the logger parameter from the Metrics#register and unregister methods as suggested in https://github.com/debezium/debezium/pull/3047#discussion_r783075907.

The failure on Oracle seems to identify a real issue. The same issue is logged in the builds from other branches:

2022-01-13 23:39:14,627 WARN   EmbeddedInfinispanProcessorTest||test  Unable to register the MBean 'debezium.oracle:type=connector-metrics,context=schema-history,server=server1': debezium.oracle:type=connector-metrics,context=schema-history,server=server1   [io.debezium.relational.history.DatabaseHistoryMetrics]

@morozov, which failures are you referring to? All checks passed, as per above?

This comment is outdated. These failures occurred initially (1, 2) before I updated the tests.

I suppose the PG test failure is unrelated?

Applied. Thx, @morozov!

@morozov can this be reverted? i'm facing https://issues.redhat.com/browse/DBZ-4792 and https://issues.redhat.com/browse/DBZ-1202?focusedCommentId=13776105&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13776105 indicates its not solved

Caused by: javax.management.InstanceAlreadyExistsException

As I see from the stack trace in DBZ-4792, this an example of the problem that this patch is meant to prevent from introducing. Before reverting this patch, we should consider fixing the root cause, if possible.

Would tasks.shutdown.graceful.timeout.ms (defaults to 5000 or 5 seconds) be a workaround @WilsonSunBritten ?

I can attempt that tomorrow and report back

Turns out we already had CONNECT_TASK_SHUTDOWN_GRACEFUL_TIMEOUT_MS at 60000 which should have been more than enough.

Are you experiencing the metrics issue with a specific connector @WilsonSunBritten ?

I'm working with @WilsonSunBritten on the same project. We have noticed this behavior with the MongoDB connector we're using. However we are also using the Postgres connector although with an older version that does not have this issue. We assume that if we upgrade it to v1.9 it will paralyze the cluster.


Ropsten Issue

App is stuck on loading data animation.
Steps to reproduce:

make sure your wallet is NOT connected.
change metamask to ropsten.
refresh -> you will see this error.
change metamask back to mainnet -> refresh -> everything will work

fixed in 0990a4b8fcd661f5ac5de50db22b0d6b10ed5ca3


prevent goaway chance in kubeapiserver to avoid tripping up golang clients

If I understood https://github.com/golang/go/issues/39086 right, clients don't recover cleanly.  This may improve e2e test behavior if the requests were failing because we would not retry.
/assign @sttts

/lgtm

/refresh


Denormalization

From what I can see denormalization of resources has been disabled here.
Based on the commit history it appears this was done to fix edge cases. When experimenting with this myself, attempting to denormalize resources fails due to the __ownerID property making it appear as an immutablejs object. Copying the entity instance and deleting the __ownerID property makes denormalization work again.
Making normalizr think the object is an immutablejs object to be intended, but I'm not entirely sure why.
What I'd essentially like is some insight into what the long term plan might be when it comes to denormalization.
I can see the value in exposing normalized entities, perhaps even by default, but right now my issue is that I can't really find a decent way to get the denormalized structure at all.

This is my current denormalize workaround:
const actualDenormalize = (e as any).denormalize;
(e as any).denormalize = function denormalize(entity: any, unvisit: any) {
	// clone the entity and delete the "__ownerID" prop before normalizing
	const clonedEntity = Object.assign({}, entity);
	Object.setPrototypeOf(clonedEntity, Object.getPrototypeOf(entity));
	delete clonedEntity["__ownerID"];

	const denormalized = actualDenormalize.call(e, clonedEntity, unvisit);

	// redefine "__ownerID" on the denormalized object.
	Object.defineProperty(denormalized, "__ownerID", {
		value: 1337,
		writable: false
	});

	return denormalized;
};

Thanks for creating this issue. I hope my response brings some clarity around this.
The current behavior of faking immutable is so normalizr returns the original resource rather than spreading to a plain object. This is important for several reasons:

Resources are really immutable endpoints just like a Record from immutable.js might be - so being able to referential compare is an important characteristic
Since Resource is extensible - especially for computed properties it's also important an actual Resource is returned
The extra copy is a waste of computational expense since we enforce immutability just like immutable.js records would be.

Now for the issue of de-normalizing entities. Currently what I've been doing is using useCache hook. This lets you pull any related resources using the id that ends up in the Resource itself. You can see an example of this here: https://stackblitz.com/edit/rest-hooks?embed=1&file=pages/IssueDetail/CommentsList.tsx but I've pasted the relevant part below.
export default function CommentsList({ issueUrl }: { issueUrl: string }) {
  const comments = useResource(CommentResource.listRequest(), { issueUrl })

  return (
    <React.Fragment>
      {comments.map(comment => <CommentInline key={comment.pk()} comment={comment} />)}
    </React.Fragment>
  )
}

function CommentInline({ comment }: { comment: CommentResource }) {
  const user = useCache(UserResource.singleRequest(), { login: comment.user });
  return (
    <Card style={{ marginTop: 16 }}>
      <Meta
        avatar={<Avatar src={user && user.avatarUrl} />}
        title={<React.Fragment>{comment.user} commented on {moment(comment.createdAt).format("MMM Do YYYY")}</React.Fragment>}
        description={<Markdown source={comment.body} />}
      />
    </Card>
  )
}

What I've found - at least for my uses - is that nesting related entities in a JSON response is usually just a request optimization, and the data is usually useful for rendering some sub-tree of a component. In which case, simply grabbing that part for that component becomes quite easy and natural.
I would love to hear about your use case to inform how I move forward with this as I am not certain exactly the approach I want to take at this moment.

BTW: if you simply want to change the behavior to treat Resources as plain objects, you just need to reverse the __ownerID attachment in fromJS(). It's sole purpose is to change the denormalization algorithm, so there will be no other side effects. However, it is important to keep in mind that you'll be losing the three things I mentioned above. I'd love to see if your use case could be worked toward without having to lose those things; but that might be the workaround that works best for you in the meantime.

Thanks for the clarity on this. I'm currently evaluating this to replace an existing solution we wrote ourselves, and in the small project I'm testing it on it is working perfectly! The denormalization part was the only thing I found somewhat unexpected, but I see the reasoning behind it.
My solution was essentially the same as you suggest here, by using useCache to extract the necessary resources.
The main issue is that our current solution has no support for denormalization at all, and I was hoping we could gradually migrate towards a normalized consumption of resources. This is not really a big showstopper for us, so we will probably move forward with this anyway.
The only use case I can see currently causing problems is forms for nested datastructures, but I guess in those cases it makes more sense to not normalize the data at all.

I avoided overriding it in fromJs as I didn't know if the immutablejs behaviour was important for normalization as well. But right now this will not work in development due to (this check)[https://github.com/coinbase/rest-hooks/blob/f8c4527dea5d320ee147a75deb5ebb1f2a4bf27a/src/state/selectors.ts#L85] in the selector.
I will stick with avoiding the need for denormalization instead, and if I hit any major issues I'll report back with the use case.
It would probably be useful if this behaviour was more explicitly documented. So that others don't go down the same rabbit hole I did 👍

I'm thinking of adding this info to this page: https://github.com/coinbase/rest-hooks/blob/master/docs/guides/nested-response.md
Did you find that page yourself and do you think it's clear that this is where that information lies?

Closing for now; added docs in https://github.com/coinbase/rest-hooks/commit/f65fae45f15ee73e7e97b1101dc7d5afcce5f850

Also, because of the RequestShape concept, state should technically not rely on anyone using Resources, so I got rid of that check in https://github.com/coinbase/rest-hooks/commit/ab90bb3546614c02b4b16645a3b45b33d7c28964.

Thanks for adding this to the docs.
Perhaps finding a way to get the normalized resource without relying on __ownerID would make it easier to implement denormalization at some point in the future.


add validation for publish

if jobSchema passed, validate before publish
add TID to validation

2 comments, otherwise looks good

+1


Add links to 0.13 tagged docs

Changes
We maintain links to the docs of each tagged Pipeline release
in the project's README.
This commit adds links to the 0.13.0 tagged version of the
docs.
Submitter Checklist

[x] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.

/kind documentation

/lgtm

Thanks for taking care of this @sbwsg !!! 🙏


Added my name at the bottom

Hey there,
Thanks for your PR & contribution :wave:!
Don't forget to join follow me, join our organization, & follow our organization to stay updated with the latest developments 💻
Thank you, and have a good day ahead 😊

Before you go, I have a little surprise for you :)
@holopin-bot @# do your thing 🤖


Initial PR

Get ember-frost-notifier on the OSS train.
#PATCH#

Looks like coverage isn't being calculated, I'll just add an issue to fix it later.
https://travis-ci.org/ciena-frost/ember-frost-notifier/builds/110485110#L1592

Looks good, a few minor things (darn <TAB>s). Feel free to merge once those are addressed. I'm gonna have to run to the dentist in a few minutes.


Develop to next post 2.3.9

Gonna hold off on this one until after the 2.3.10 release so that we don't introduce #6441 into next.


Rendering a component must reconcile against previous DOM state

The renderComponent function incorrectly presumed that prevRender from the component context must be the previous DOM state, however elements may have been shuffled/removed between component renders for persistent component pointers.
Fixes #123

Codecov Report

Merging #124 into master will decrease coverage by 1.63%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master     #124      +/-   ##
==========================================
- Coverage   64.72%   63.09%   -1.64%
==========================================
  Files           5        5
  Lines         309      317       +8
==========================================
  Hits          200      200
- Misses         97      105       +8
  Partials       12       12

Impacted Files
Coverage Δ

domutil.go
23.07% <0%> (-26.93%)
:arrow_down:

dom.go
70.45% <83.33%> (-0.33%)
: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 1d751e8...1ea2739. Read the comment docs.

I don't fully understand this change, so I'd like to ask a few questions.

Why is it that Rerender cannot utilize comp.Context().prevRender?
If it's true that Rerender can't utilize comp.Context().prevRender, then what about other users of that variable? Can those also be incorrect, or no (why)?

I see the example code in https://github.com/gopherjs/vecty/issues/123#issue-239186034 but as far as I can tell from this PR, Rerender passes c and c.Context().prevRender as arguments to renderComponent, which then seems to directly use that c.Context().prevRender argument for reconciliation. So I don't see why renderComponent needs this new argument or how it fixes the issue.
On tests: I'm fine to merge this without tests once I understand it, but let's add a TODO in the test file that links to this PR for adding tests later.

In the case of Rerender with a top-level component, that works fine.  What we're looking at here though is a component (pointer) that's rendered as a child of the Rerender target (somewhere down the render tree).  If the component is a pointer that persists between renders, Context().prevRender for that component is not nil, but bears no relationship to what's actually in the DOM at that point (in the example, the child component's nodes have been removed from the DOM entirely, and the new render should cause it to replace some other elements, instead reconcile tries to manipulate nodes that don't exist).
The child component must be reconciled against the sibling DOM that the parent rendered in the previous pass.

Ok, that makes a lot more sense. Would I be correct in assuming that this also helps https://github.com/gopherjs/vecty/issues/78 then (although notably still retaining this panic)?

On tests: I'd definitely appreciate a hand working out how to sensibly test nested elements/components (in #29)

I'll see if I can find some time soon to look into this.

Once https://github.com/gopherjs/vecty/pull/124#discussion_r125157866 is addressed I will merge.

I think #78 should be close to solved with this merge, combined with the rework of render/renderComponent/reconcile, but I've not tested sufficiently to call it conclusively.

Fair enough. I'll post my thoughts on that issue.


Update included hook for nested addons

I update the to add the feature to be nested into another addon. I add ember-cli-import-polyfill to have access to the new this.import syntax and the polyfill add a nice function  _findHost to retrieve informations of the top parent app.

Is anyone here?

Hi @GreatWizard - looks good in principle. Could you rebase your PR?

It seems that ember-cli-node-assets do the job too :)
This PR is not needed anymore.


Error (panic) while migrating from MySQL to PostgreSQL with migrate diff --from-url (MySQL) --to-url (PostgreSQL)

Hi Prisma Team! The following command just crashed.
Command
migrate diff --from-url [redacted] --to-url [redacted] --script
Versions

Name
Version

Platform
windows

Node
v20.10.0

Prisma CLI
5.6.0

Engine
e95e739751f42d8ca026f6b910f5a2dc5adeaeee

Error
RustPanic: Error in Schema engine.
Reason: [D:\a\prisma-engines\prisma-engines\schema-engine\sql-schema-describer\src\walkers\column.rs:74:61] called `Option::unwrap()` on a `None` value

Do I understand correctly that the --from-url is a MySQL database, and the --to-url is a PostgreSQL database?
If so, that is just not a supported use case of migrate diff. It is meant to figure out the differences between two databases of the same database provider.

Yes, you are correct.
Is there any other way by which I can migrate my MySQL database to the PostgreSQL database?

Prisma can help you set up the same or similar database schema in PostgreSQL that you had in MySQL: prisma db pull with provider = "mysql" to get a Prisma schema for your database, then change to provider = "postgresql" and adapt to make prisma validate happy (if needed), then use migrate dev to migrate the resulting Prisma schema to your PostgreSQL database. You will then have to write some code manually or use an external tool though to migrate the data from your MySQL to your PostgreSQL database. Depending on the complexity of your database that might be pretty simple - or very, very complex and involved.

I renamed the issue and I think we can keep this issue to improve the error message for example.
Because migrate diff is not expected to diff between different database providers at the moment, only with the same provider.


UPN Suffix doesn't work at all

Hi,
i noticed that FreeRDP isn't able to authenticate with a UPN Suffix at all.
If i connect through a TS Gateway Server the following message is displayed:
rts_connect error! Status Code: 401
HTTP/1.1 401 Unauthorized
Content-Type: text/plain
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="GATEWAY-SERVER"
X-Powered-By: ASP.NET
Date: Wed, 25 Feb 2015 16:12:26 GMT
Content-Length: 13
rts_connect error!
rpc_connect failed!
Error: protocol security negotiation or connection failure
Without TS Gateway the following message is displayed:
credssp_recv() error: -1
Authentication failure, check credentials.
If credentials are valid, the NTLMSSP implementation may be to blame.
Error: protocol security negotiation or connection failure
I compiled the current version from git as described at "Compilation".
I think this has something to do with username parsing. FreeRDP is splitting the username at the @ symbol and uses the string before @ as username and the string after @ as domainname.
For example:
UPN Suffix<EMAIL_ADDRESS>will become
Username: 123456
domain: TEST.test
This is the right behaviour if you use Kerberos, but not the right behaviour if you will logon with UPN Suffix.
I changed the username parsing in the following way (freerdp_parse_username() in cmdline.c):
If a domain AND username is given we shouldn't split the username.
If ONLY the username is given we should split the username at the @ sign. And everything before the @ will become settings->Username, and everything after the @ will become settings->Domain
This change will get UPN Suffix working with a normal server, but unfortunately not with TS Gateway.
I will take a look into the NTLM implementation, because i think there is something wrong with Username handling as well.
Can somebody check if this behaviour is reproducible?
I have checked if this is working with a RDP Client from WIndows 7, and indeed it works, with and without TS Gateway.

Hi,
i found a solution for this problem. If we are using NTLM in combination with a UPN Suffix, we need to make sure that we don't send the Domain in the NTLM authentication mechanism.
Here is the diff of my changes:
diff --git a/winpr/libwinpr/sspi/sspi.c b/winpr/libwinpr/sspi/sspi.c
index f9ec6a7..47aadc5 100644
--- a/winpr/libwinpr/sspi/sspi.c
+++ b/winpr/libwinpr/sspi/sspi.c
@@ -310,7 +310,9 @@ void sspi_SetAuthIdentity(SEC_WINNT_AUTH_IDENTITY* identity, char* user, char* d
identity->UserLength = 0;
}

  if (domain)

  //      edited this line for handling UPN Suffixes.

  //      If Username is in UPN format we shouldn't send the Domain in NTLM authentication

  if (domain && (strstr(user, "@")) == NULL)
  {
          identity->DomainLength = ConvertToUnicode(CP_UTF8, 0, domain, -1, &identity->Domain, 0) - 1;
  }

diff --git a/client/common/cmdline.c b/client/common/cmdline.c
index a894a94..fe588ad 100644
--- a/client/common/cmdline.c
+++ b/client/common/cmdline.c
@@ -1094,6 +1094,10 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
DWORD flags;
BOOL compatibility;
COMMAND_LINE_ARGUMENT_A* arg;

  char* username = NULL;

  char* gw_username = NULL;

  char* user;

  char* domain;

  compatibility = freerdp_client_detect_command_line(argc, argv, &flags);

@@ -1311,6 +1315,8 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
                    settings->Username = user;
                    settings->Domain = domain;

                  username = _strdup(arg->Value);
          }
          CommandLineSwitchCase(arg, "d")
          {

@@ -1358,6 +1364,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
settings->GatewayUsername = user;
settings->GatewayDomain = domain;

                  gw_username = _strdup(arg->Value);
                  settings->GatewayUseSameCredentials = FALSE;
          }
          CommandLineSwitchCase(arg, "gd")

@@ -1749,6 +1756,31 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
CommandLineSwitchEnd(arg)
}
while ((arg = CommandLineFindNextArgumentA(arg)) != NULL);
+
+

  // Check if Username is set and Domain is missing.

  // If this is the case we should split Username and Domain at the @ sign (e.g. for Kerberos)

  // Else we should let the username string as it is (e.g. for UPN Suffix)

  if (username && !settings->Domain)

  {

    freerdp_parse_username(username, &user, &domain);

    settings->Username = user;

    settings->Domain = domain;

  }

  else

    settings->Username = username;

  // Same as above for Gateway Username and Domain.

  if (gw_username && !settings->GatewayDomain)

  {

    freerdp_parse_username(gw_username, &user, &domain);

    settings->GatewayUsername = user;

    settings->GatewayDomain = domain;

  }

  else

    settings->GatewayUsername = gw_username;

  freerdp_performance_flags_make(settings);

These changes are working for me. I can now logon with UPN Suffix to a win2012r2 Server and additionally to a win2012r2 Server which is behind a 2012 TS Gateway Server.
But this changes have some restrictions:

If you want to use UPN Suffix Logon, you MUST enter a domain name with /d: even if this
domain name doesn't exist at all.
If you want to use UPN Suffix Logon with TS Gateway, you MUST additionally enter a Gateway
domain name with /gd: even if this domain name doesn't exist at all.

This restrictions are necessary, because this is the only way we can decide if the username is for Kerberos authentication or for normal authentication with UPN suffix. I explained this in the previous post.
Can somebody try my changes and give some feedback if this is working for you?
You can set a UPN suffix for a user in your Domain Controller.

Hi,
i found a solution for this problem. If we are using NTLM in combination with a UPN Suffix, we need to make sure that we don't send the Domain in the NTLM authentication mechanism.
Can somebody explain how to post an output of "git diff FILE" ?
The "+" signs in the diff output are doing some strange formatting, so i'm not sure how to do this correctly.
Best Regards

@Edlanta Does UPN suffix work for you now?

closing due to lack of feedback.

Yes this fixed the problem.


Language: Signature choice can be confusing when user is signer

From @CaroRob's comment in https://github.com/SuffolkLITLab/docassemble-209aPlaintiffMotionToModify/issues/71

...unless we have a question at the beginning for an advocate to help a plaintiff, it is confusing to have the option to email the form to someone else to sign.
I already said I am the plaintiff at the beginning of the interview - why would I send this form to anyone else to sign?

My reply:

I wonder if there's some kind of wording that could be more ambiguous but still work. Maybe like 'send the form to be signed on another device'?

Kate's reply:

I think that suggestion is good. I like having the option of emailing just in case.

My reply:

To clarify my meaning, you might not send it to be signed by someone else, but you might send it to yourself on a different device. The current problem with that wording is that it's passive voice. I'm not sure how to improve it.

I guess we could have more generic language here, like "gather signatures". OR a more clear way to share an interview with someone else.

This would partially be addressed by a dedicated "share" button on the bottom of every page.

@CaroRob what do you think?

That is, we would change the language on the signature page so that it addresses the user directly and the way for the user to send the signature to someone else would implicitly be the 'share' button.


Not working on web-mobile devices

I built a website using this package. It works perfectly on desktop web browsers, but it doesn't work on mobile browsers. For example, it works on my computer's browser, but not on my cellphone.
The website I'm trying to build is this: emanoelviana.com
I'm using the MeshGradient widget, the most basic, without animations.

Sure. I'm documenting the project in a repository and I'm using the mesh_gradient package in this file: https://github.com/emanoelviana/emanoelviana.com/blob/main/lib/src/widgets/introduction/introduction.dart
the pubspec.yaml: https://github.com/emanoelviana/emanoelviana.com/blob/main/pubspec.yaml


slow win10

I don't think this is a flaw with rdpwrap, but I can't think of a better place to bring this topic up because I expect it effects a lot of rdpwrap users.  Maybe it will end up in the wiki or in the readme section if it gets a good answer.
It's always sluggish when I'm remoted into a windows 10 computer.  It doesn't matter what client OS i'm connecting from.  I use RDP to connect to about 100 computers.  Some over LAN, some over WAN.  Some joined to active directory, some workgroup.  I never have this issue when I RDP into windows 7 computers.  I don't have any windows 8/8.1 computers to test it with.  These same windows 10 computers are fast when I'm using the console.  Most of them have SSDs and i3 or better.  The older ones are literally unusable with RDP because they can take 30 seconds or more just for the start menu to appear, and 30 more seconds just to start a tiny program like notepad, where using the console would only take 1 or 2 seconds.  It's like windows 10 is running terminal services as low priority or something.  I'm surprised I can't find anybody else talking about this.

I am also facing the same problem , but I was using ver 1.6.0 now I am going to try 1.6.1 may be if remote clients work OK with this new RDPwrapper version. I will report it within week.

Any thoughts on your experiences with slowness guys?

I have discovered I can go into the advanced system settings, performance settings, advanced, processor scheduling, and change it from PROGRAMS to BACKGROUND SERVICES and it seems to make it faster, but I still think it's slower than win7.


Update header paths for React Native 0.40

It would be great it React file headers paths could be updated to work with RN 0.40
I tried to do it myself but just got a bunch more errors so probably worth someone who actually knows what they're doing taking a look:

Sorry, I didn't notice the other issue related to 0.40. Feel free to close this if you'd like as it's the newer issue

Thanks. Closing and continuing to track this in #12


cranial suspensory ligament

Add new term:
abnormal cranial suspensory ligament morphology (a child of abnormal ligament morphology MP:0005504 and abnormal reproductive system morphology MP:0002160)
DEF: any structural anomaly of the ligament that connects the cranial tip of the future gonad to the dorsocranial abdominal cavity; during male embryogenesis, outgrowth of the gubernaculum and regression of the CSL result in transabdominal descent of the testes, whereas in the female, development of the CSL in conjunction with failure of the gubernaculum development holds the ovaries in a position lateral to the kidney
SOURCE: PMID:10319319, UBERON:0008848
SYN: abnormal CSL morphology
Annotation J:83429

Added new term:
abnormal cranial suspensory ligament morphology MP:0030787


Add test for getElementBounds

https://github.com/excalidraw/excalidraw/pull/1394#issuecomment-612545935

@vjeux would you merge this?

@kbariotis and @dai-shi you are both collaborators. Feel free to merge pull requests :)


Strawman implementation of LEM coprocessors

LEM support for coprocessors, with evaluated arguments!

#703 makes this obsolete


Fixups to list handling in SceneReplicationConfig

Wrong paths were being inserted leading to duplicates / missed properties.

Cherry-picked for 4.0.2.


Unsupported arch gives misleading error: "Unsupported NGINX version"

Problem:
I was following the Install open-appsec for linux on a machine running aarch64 Ubuntu Jammy + nginx 1.24.0-1-jammy.
./open-appsec-install --auto
open-appsec for NGINX and Kong Installer v1.2245.1
For release notes and known limitations check:
https://docs.openappsec.io/release-notes
Searching local NGINX…
NGINX version found: 1.24.0-1-jammy
Downloading open-appsec NGINX attachment... stored in '/tmp/open-appsec'
Unsupported NGINX version, for supported platforms, OS and NGINX versions please see docs.openappsec.io
Downloading open-appsec agent... stored in '/tmp/open-appsec'
Unsupported OS, for supported platforms, OS and NGINX versions please see docs.openappsec.io

Unsupported NGINX version, for supported platforms, OS and NGINX versions please see docs.openappsec.io
(The script should probably stop here due to the error but it tries to download the agent as well.)
Unsupported OS, for supported platforms, OS and NGINX versions please see docs.openappsec.io

The actual problem has nothing to do with Ubuntu Jammy or nginx 1.24.0-1-jammy, it's that the machine is running aarch64.
Expected behavior:
I took a look in the install script and noted that it checks whether the combination of arch, distro name and distro version is supported. It also grabs the name of the installed nginx package, but that isn't used for validation.

Since the script checks the installed nginx version (and has error messages about it), I expect the script to actually validate whether I'm running a supported nginx package. I couldn't find such a check in the install script. Since a list of supported nginx-packages exists, a simple curl + grep could be used.

supported_nginx=$(curl -s https://downloads.openappsec.io/packages/supported-nginx.txt | ${NGINX_VERSION})
if [ "$supported_nginx" != 0 ]; then
     echo "Unsupported NGINX package: ${NGINX_VERSION}. Please see docs.openappsec.io for supported versions."
  exit 1
fi

I expect the error message to tell me what failed. If the check is (arch && distro name && distro version) == unsupported, tell the user exactly that. ie "The combination of Ubuntu Jammy on aarch64 is unsupported".
As as user I appreciate if the variables that are checked can be seen. That can be very helpful.

It would be better if the installer could check what the problem is, by checking arch, distro name and distro version in order. For example by doing three calls with curl.
curl https://downloads.openappsec.io/packages/agent/aarch64/
if fail = Unsupported arch. Aarch64 is not a supported arch.
curl https://downloads.openappsec.io/packages/agent/aarch64/ubuntu/
if fail = Unsupported OS. Ubuntu is not supported on aarch64.
curl https://downloads.openappsec.io/packages/agent/aarch64/ubuntu/jammy/openappsec-jammy.tar.gz
if fail = Unsupported OS version. Ubuntu Jammy is not supported for Aarch64.

Doing the same check twice should result in the same error message.
Checking (arch + distro name + distro version) twice shouldn't result in one message about OS and one about nginx.

Since the first install step fails, I expect the installer to stop rather than continuing to install the next package.

If only x86_64 is supported in the installer, the "getting started with linux page" should state so, rather than saying "A Linux machine with A supported OS and NGINX or Kong version.".

If only x86_64 is supported, the list mentioned; "A list of all supported/pre-compiled attachments for NGINX and Kong per supported OS versions" should state what arch it supports.

Details
I took a look at how the error messages are being generated:
nginx_curl=$(curl -s -w "%{http_code}" \
        https://downloads.openappsec.io/packages/nginx-attachment/${ARCHITECTURE}/${RELEASE_NAME}/${RELEASE_VERSION_CODENAME}/${encoded_ngx_version}.tar.gz  \
        --output ${OPEN_APPSEC_DOWNLOAD_PATH}/${NGX_FULL_VERSION}.tar.gz)
...
if [ "$nginx_curl" != 200 ]; then
     echo "Unsupported NGINX version, for supported platforms, OS and NGINX versions please see docs.openappsec.io"
     CURL_FAILIURE=true
fi

agent_packages_curl=$(curl -s -w "%{http_code}" \
            https://downloads.openappsec.io/${PACKAGES_FOLDER}/agent/${ARCHITECTURE}/${RELEASE_NAME}/${RELEASE_VERSION_CODENAME}/openappsec-${RELEASE_VERSION_CODENAME}.tar.gz \
            --output ${OPEN_APPSEC_DOWNLOAD_PATH}/openappsec.tar.gz)
...
    if [ "$agent_packages_curl" != 200 ]; then
            echo "Unsupported OS, for supported platforms, OS and NGINX versions please see docs.openappsec.io"
            CURL_FAILIURE=true
    fi

Running the script with set -x I can get the effective urls from the two excerpts.
https://downloads.openappsec.io/packages/nginx-attachment/aarch64/ubuntu/jammy/ngx%5fmodule%5f1%2e24%2e0%2d1%2djammy.tar.gz
https://downloads.openappsec.io/packages/agent/aarch64/ubuntu/jammy/openappsec-jammy.tar.gz

Both these calls returns HTTP403. Replacing aarch64 with x86_64 results in HTTP200.
Documentation
The error message mentions reading docs.openappsec.io
Install open-appsec for linux: doesn't mention arch as a prereq.
Linux machine with:
 * A supported OS and NGINX or Kong version.
   A list of all supported/pre-compiled attachments for NGINX and Kong per supported OS versions is available.
   In case your versions are not supported yet, you can also build the code yourself, see here.
 * Root permissions
 * wget command-line tool installed on your linux machine

The list of supported/pre-compiled attachments for NGINX and Kong per supported OS versions doesn't mention arch.
But it says that Ubuntu Jammy + nginx 1.24.0-1-jammy is a supported combination.
	jammy:
		nginx:
			1.1.1
                        ...
			1.24.0-1-jammy
                        ...

Lastly I tried to google this, in case I've missed something obvious:
site:openappsec.io "aarch64" 0 results
site:openappsec.io "x86_64" 0 results
open-appsec "Unsupported NGINX version" 0 results
"Unsupported OS, for supported platforms, OS and NGINX versions please see docs.openappsec.io" 0 results

Hi @adam-hulin,
Thank you for your detailed instructions, your contribution is greatly appreciated, and we're looking into adding this check to our next release.
Thank you again!
Best,
Oriane
open-appsec team


Update gemspec to use Rails 7

trestle-active_storage.gemspec upgrading Rails version to  '~> 7.0' been testing this for a couple of weeks without side effects.

@eddygarcas Did you close this on purpose?


adding TimerInfo and e2e Timer test

Fixes #292

Is this already available?

Not yet on NuGet, but we’ll be publishing an update next week with a batch of changes. If it would help, we can make it available on a private feed before then.


[Refactor][Test] Don't compose Gomega in Test struct

Why are these changes needed?
See the description in the corresponding issue for details.
Implementation details for this PR:

Remove gomega.Gomega from type Test. For each test that needs to use gomega, use g := NewWithT(t) directly in that test.
Replaced all test.Expect with g.Expect, test.Eventually with g.Eventually, and test.Consistently with g.Consistently
Now ginkgolinter can succesfully detect if we accidentally passed values instead of functions to Eventually, fix them.

Refactored ray-operator/test/support/ray.go in the following way:

GetXXX functions: return the objects as well as the error, if any.
XXX functions (GetXXX functions without the Get prefix): directly call GetXXX functions, but returned a closure that can be used in Eventually.

Finally removed those functions that are no longer needed.

Related issue number
Closes: ray-project/kuberay#2463
Checks

[x] I've made sure the tests are passing.
Testing Strategy

[x] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

@kevin85421 @andrewsykim PTAL


Failed to install 'cordova-plugin-firebasex': Error: cocoapods version is out-of-date - please update to<EMAIL_ADDRESS>- current version: 1.10.2

When the plugin is used in combination with Monaca I get the following error:
Failed to install 'cordova-plugin-firebasex': Error: cocoapods version is out-of-date - please update to<EMAIL_ADDRESS>- current version: 1.10.2
How to fix this / how to use in combination with Monaca?
https://github.com/dpa99c/cordova-plugin-firebasex#cocoapods

me too.
Share when resolved.

we can use<EMAIL_ADDRESS>make build success


Update updates.njk

Add in slash and fix link to accessibility guidance video section.
Will amend changelog now.

This PR does still need doing. Thanks very much.


Add descriptions for special input parameters in Configuration Docs

Closes #1416

This change is

I agree. We should not miss out on information for the sake of the aesthetic of the UI. Yet i think we should discuss how we could improve the UI to display lengthy texts correctly.


pingid-api-helper.ps1 typographical error causing errors

Note that there is a typo on line 153 of pingid-api-helper.ps1 where the wrong "dash" character is present in the -f option to compute the timestamp for downloading the report results when using the getorgreport endpoint.

pull request - pingid-api-helper.ps1 typographical error causing errors - wrong "dash"


UB-1387 : added log for idempotent issue with mountpoint already exis…

added a small log to indicate an idempotent issue was encountered and handled.

This change is

Coverage increased (+9.8%) to 61.25% when pulling 0ffbec9a9878c6f06aebc1ebce1af0cdd23dfb35 on fix/UB-1387_add_idempotent_message_to_log into 250d07176fd4ac7b76f35d0240fe059e894f6bf8 on dev.


Bug 2036569: Upstream merge

Merge https://github.com/kubernetes/cloud-provider-openstack:master into master

/bugzilla refresh

/cc mandre

Closing in favour of #97


Doesn’t work on Travis CI (node 0.10.x), throws Unhandled rejection TypeError

$ eclint check $(git ls-files)
Unhandled rejection TypeError: Object # h has no method 'equals'
    at detectCharset (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/linez/js/linez.js:35:41)
    at linez (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/linez/js/linez.js:19:19)
    at /home/travis/.nvm/v0.10.36/lib/node_modules/eclint/js/eclint.js:69:27
    at tryCatcher (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._settlePromiseFromHandler (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/promise.js:503:31)
    at Promise._settlePromiseAt (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/promise.js:577:18)
    at Async._drainQueue (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/async.js:128:12)
    at Async._drainQueues (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/async.js:133:10)
    at Async.drainQueues (/home/travis/.nvm/v0.10.36/lib/node_modules/eclint/node_modules/editorconfig/node_modules/bluebird/js/main/async.js:15:14)
    at process._tickCallback (node.js:442:13)

This issue should be filed with the linez project.

BTW, this is using Buffer#equals and all the tests pass fine on Travis for the linez project. If you can submit a breaking build I'll be happy to fix it.

It’s this build from this branch, eclint is called in script/test:17.

Again, this is an issue with the linez project. Please file the issue there.

So what does your previous comment mean? o.O

If you can submit a breaking build I'll be happy to fix it.

I'm the owner of both projects. Perhaps I should have said a breaking test.

Real fix in v1.1.0: https://github.com/jedmao/eclint/commit/f3a87fb382d53ae4f2f8eb694556bda5d208d850


v2, podman: fix and enable all run_userns_test.go tests

more details in each commit.
Signed-off-by: Giuseppe Scrivano<EMAIL_ADDRESS>

LGTM assuming happy tests

/lgtm


Comments: 2023-01-30 晚清貨幣與貨幣政策

Frank H. H. King, Money and Monetary Policy in China: 1845-1895, Harvard University Press, 1965.

中央政府没有能力维持币值稳定，一方面，伪造、仿制货币难以禁绝，另一方面，来自外贸收入的银币超出了政府管制范围——清政府铸造铜钱的动力是征税？央地抗衡又使货币系统久无更新？
In Europe silver and gold both served the wholesale sector, and silver could be used for large transactions, although obviously at a relatively increased cost. Should the official ratio be so far incorrect that despite this cost it paid to export gold and import silver, the bimetallism would become de facto monometallism.——高货值贸易催生了欧洲的金银复本位？
If institutional factors were the key to China’s slow acceptance of modernization, Hong Kong, a British crown colony, should have been able to set the pace. That it failed to do so despite such obvious advantages as the right of incorporation with limited liability and the protection of a government sympathetic to enterprise suggests that Hong Kong was subject to economic forces similar to those operating in China and that these were unfavorable. The timing of Hong Kong’s industrial revolution, which began during the trade depression following the Korean War-United Nations embargo, emphasizes the importance of the economic factors.
——economic factors何异于institutional factors？岂非抑商文化拖累货币制度？

政府铸造铜钱的动力是征税？

I think this is probably the case in pre-industrial China.

央地抗衡使货币系统就无更新？

Market forces are dominant when we talk about a metallic currency system since monetary authority essentially has no control over economic transactions.

高货值贸易催生了欧洲的金银复本位？

Where's gold from, colonial plunder, trade or local production?

经济因素何异于制度因素？

I think the economic factors here refer to those forces that are not social/cultural/political.

岂非抑商文化拖累货币制度？

Why do we use money anyway?

For a (world) trade order.

What we can learn in monetary history is that how ordinary people view money and monetary policies is such an important factor when we analyze regional economic performance.


Fix whitespace consistency in config.md

Some of the sub-items of config were inconsistently indented (some using three spaces, some using two) -- adjusted to two to match the rest of the file.

I was looking at why https://specs.opencontainers.org/image-spec/config/?v=v1.0.1#properties is rendering the sub-items of config as being even with it instead, and noticed this inconsistency.  I'm not 100% sure which engine that's using to render (or how to most effectively test it), but IMO this seems like a sane change even if it's not the cause of that rendering glitch. :sweat_smile:

The CI-generated PDF renders correctly, for what that's worth!

(It was probably fine with the janky whitespace too, though)


Fix the MOVE and COPY requests

Harmonised these 2 requests with all the other requests

Please submit any PR to the main repo: https://github.com/thephpleague/flysystem


build(blockifier_reexecution): convert declare starknet api to declare blockifier

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1658  👈
#1604
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @AvivYossef-starkware and the rest of your teammates on  Graphite

crates/blockifier_reexecution/src/state_reader/test_state_reader.rs line 252 at r5 (raw file):

    // TODO(Aner): extend/refactor to accomodate all types of transactions.
    pub(crate) fn from_api_txs_to_blockifier_txs(

@dorimedini-starkware Why move this function back here? I also need it in other contexts.
Code quote:
 pub(crate) fn from_api_txs_to_blockifier_txs(


is the equivalence of Grothendieck construction correct?

the equivalence of Grothendieck construction looks strange to me.
consider the following diagram:

the current definition only has f and g equivalent, but I suppose the triangle in category FB does not necessarily commute, does it?

mumble mumble (op)fibration mumble but not bifibration, maybe? In any case, I'll look.

i have a feeling that Grothendieck construction only works for functors to strict categories. consider the following construction:

C is category 2 with propositional equality. functor F is defined by mapping A to category 1 and B to this category with objects X and Y. the latter category is freely generated by a loop space over X and another morphism h from X to Y.
the functor Ff maps the only object in category 1 to X.
now, consider the natural isomorphism constructed by refl proof in C. the natural isomorphism αhas the only index*and the morphism is the morphismΩfrom loop space. indeed,αis naturally isomorprhic. but then, in non-strictCats, it seems to me the Grothendieck construction would require h ∘ Ω = h`, which is not true.

I agree with @HuStmpHrrr. Just arrived at the same conclusion (then discovered this issue).

Thanks for pushing this back up my priority list.  What is wrong will be interesting, as Agda currently is happy with everything.

What is wrong will be interesting, as Agda currently is happy with everything.

Once you add equality for the second component (up to natural iso), the associativity and unit laws become a good deal more involved. To prove them, you need coherence constraints, which turn out to be missing.
My guess is you can either you go strict or make F a pseudofunctor.

... and why would you need the second component of the equality? Because without it, Grothendieck (constant D) is not equivalent to D.

in the old library, the construction maps to Cats in which the equivalence of functors is the more set theoretic equivalence, which would subsequently requires K. I guess I raised this point a few times already. I think one of the main contributions of this library is to explicitly distinguish what results require K and what not. this is very hard to detect in traditional settings but becomes very obvious when working with ITT.

So I have serious doubts that Grothendieck (constant D) is equivalent to D: I believe that it is instead equivalent to C x D.  As Wikipedia says, the construction remembers whence things came from. And that proof is indeed quite easy.

I believe that it is instead equivalent to C x D.

Ah yes, you're right, of course.
I was silently assuming C to be the one-object category. The point being that we can set things up in such a way that the equality on the second coordinate is all that matters.

Proposed fix in #48.
Some comments:

I mechanized the version for pseudofunctors (rather than functors into StrictCats) since it's more general.
The fixed version turned out a lot more complicated than the broken one.
Interestingly, because of the way the coherence conditions are defined in Pseudofuctor, it was easier to prove the contravariant version of the construction.
I did not prove that Grothendieck (constant D) is equivalent to C x D — exercise for the reader 😉

@HuStmpHrrr

in the old library, the construction maps to Cats in which the equivalence of functors is the more set theoretic equivalence, which would subsequently requires K.

I just want to point out that it should be easy to give the construction for (1-)functors into StrictCats without requiring any use of K!

@HuStmpHrrr

I just want to point out that it should be easy to give the construction for (1-)functors into StrictCats without requiring any use of K!

I take that back. You were correct, it seems that K is indeed necessary to instantiate the current (weak) construction to the strict case. Sorry about that.

@HuStmpHrrr

I just want to point out that it should be easy to give the construction for (1-)functors into StrictCats without requiring any use of K!

I take that back. You were correct, it seems that K is indeed necessary to instantiate the current (weak) construction to the strict case. Sorry about that.

yeah, that's how I feel. if set theory is necessary in some theorems, then K must be necessary in those cases to kill off higher-groupoid structures and bring everything back to set(in HoTT's sense). in the case of functor equality, I suppose K should be used to represent heterogeneous equality between morphisms in the codomain category.

in the case of functor equality, I suppose K should be used to represent heterogeneous equality between morphisms in the codomain category.

Actually, it's more subtle. There are no heterogeneous equalities involved, only homogeneous ones. But the problem is indeed the higher groupid structure.
One way to prove the Grothendieck construction for functors into StrictCats, is to "instantiate" the version for bicategories, like so:

show that every category C can be lifted to a bi-category (this is what the module 1-Category implements);
show that every functor F : Functor C D can be lifted to a pseudofunctor 1-Functor F : Pseudofunctor (1-Category C) (1-Category D) (I have a PR for this coming up);
show that there is an "inclusion" functor Inc from StrictCats to Cats (as a bicategory);
to obtain the Grothendieck construction for functors F : Fucntor C StrictCats as Grothendieck (Inc ∘F 1-Functor F).

The problem arises in step 3. There you have to prove that, given two (strictly) equal functors F and G, two arbitrary proofs p q : F ≡F G of that equality induce the same natural isomorphism. In an extensional or proof-irrelevant setting this is a trivial proof. There is only one way to prove equality, and only one natural iso that corresponds to it (the identity NT). But in an intensional setting without K, we simply cannot prove this.

[Slowly catching up on older stuff]
Great summary. I think it makes sense to have part of the categories library be with K. But the organization of that is tricky.  I'll open a separate issue.


Feature request - ability to register callback url for compute jobs

As a client of firecrest, I would like to optionally send a callback URL with my compute job requests so that I don't have to poll firecrest for status updates.
The callback should trigger when the compute job reaches an end state (e.g. completed, failed) and return detailed information about the job.

Hi @pozsa, thanks for your comment and really sorry for not being able to answer before.
The way we designed FirecREST is to be stateless (so we don't store client session data) and as light as possible. Including a callback will break the concept of a RESTful API.
The idea is that your client should poll regularly for the job, the API would answer with the state of your job at the moment of the request, and the client would take care of what is triggered after a state is reached.
Hope this helps to understand our idea of the API
Cheers

Hi @pozsa, I will close this issue, but feel free to open it anytime if you think there's more to discuss on this issue.
Cheers.

Hello @jpdorsch can you explain how a callback URL breaks the restful API concept?


System initialization in DT order

Just a draft to solicit feedback on the approach.
See https://github.com/zephyrproject-rtos/zephyr/issues/22545

@mbolivar can you elaborate on 'DT order' ?
I guess this applies to zephyr.dts.
So should we understand that all nodes in soc{} will be given a priority based on the order they appear (ie as they are defined in dtsi)? Or will all nodes at the same level get the same prio and the prio will apply to dependency chain like buses and clients .... ?
Also from what I understand, nodes order in zephyr.dts is given by dtsi order and can't be amended in board.dts or overlays so I expect this could not be application specific. Do you confirm ?

@mbolivar can you elaborate on 'DT order' ?

Sure. Thanks to work by @pabigot, every node in the devicetree is assigned a "dependency ordinal" number using Tarjan's strongly connected components algorithm in a way that guarantees that if node A depends on node B (like say if node A has a property pointing at B with a phandle), then A has a bigger dependency ordinal than B.
That's what determines the "Nodes in dependency order" comment you see in devicetree_unfixed.h.
This is the order under discussion in this PR.

I guess this applies to zephyr.dts.

Right.

So should we understand that all nodes in soc{} will be given a priority based on the order they appear (ie as they are defined in dtsi)? Or will all nodes at the same level get the same prio and the prio will apply to dependency chain like buses and clients .... ?

The priorities are not guaranteed between siblings. The only guarantee is that parents come before children (including additional "logical" parents determined from clocks and other properties).

Also from what I understand, nodes order in zephyr.dts is given by dtsi order and can't be amended in board.dts or overlays so I expect this could not be application specific. Do you confirm ?

It definitely is application specific, because it comes from the final zephyr.dts, which is after overlays are applied.


ci: enable eks 1.30

Fixes #N/A
Description
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.06%) to 82.49%

Files with Coverage Reduction
New Missed Lines
%

pkg/providers/amifamily/ami.go
1
90.56%

pkg/providers/version/version.go
1
90.91%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
5493

Relevant Lines:
6659

💛  - Coveralls


Phantoms with attached dimensions

In order to have a physical relation between the size of the phantoms and a possible system matrix simulating the voltages from a the selected phantom, we need to be able to attach dimensions when needed. This can be done by using AxisArrays and Unitful. Every generated phantom should have a constructing function with units which creates the AxisArray version. Dispatch can be performed as described in https://discourse.julialang.org/t/dispatch-on-axisarrays-with-unitful-axis/7733/2.

isn't that this: https://github.com/MagneticParticleImaging/MPIFiles.jl/blob/master/src/RecoData.jl
i.e. we want to have a 1to1 mapping between MDF/ImageData and an in-memory representation.

Well this works on a reconstructed image, but the phantoms are sort of on the other side. Within the pMPS framework, I would like to be able to scale a phantom such that with a given gradient the correct voltages are simulated.
But ImageMetadata.jl looks interesting. I will have a look into the possibilities it gives.

A particle concentration image is a particle concentration image, no matter if it is a phantom that is used to synthesize raw data or if it is a reconstructed image.

Hm, true. We can probably copy a lot of that code. Or would you represent a phantom within the in-memory MDF as a reconstruction? I guess if we make use of ImageMeta with the prefix phantom instead of reco we are pretty much compatible with MPIFiles. Or do you have another recommendation?


Limelight pose usage with check at end of turn

@knightss27 Can you elaborate on what you mean by this?

@knightss27 Can you elaborate on what you mean by this?

The limelight should take a reading when the pointToTarget command is first called, and then it should attempt to move the number of degrees using only the navX as reference, checking to see if it is lined up at the end. This way we aren't continuously relying on limelight vision so if someone moves in front of us while turning we still end up able to make the shot.


zh-trans: modify /docs/reference/access-authn-authz/extensible-admission-controllers.md

zh-trans: modify /docs/reference/access-authn-authz/extensible-admission-controllers.md
Update: /docs/reference/access-authn-authz/extensible-admission-controllers.md
Co-Authored-By: lpf7551321

/cc @RainbowMango


Use only jdk 17 to build with / Add extension to native plugin in plugin management

Pull Request Test Coverage Report for Build #200

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

Totals

Change from base Build #199:
0.0%

Covered Lines:
193

Relevant Lines:
207

💛  - Coveralls


spark.test.home config in Spark 3.4 workflow point to /opt/spark331

Backend
VL (Velox)
Bug description
Line 224 and Line 260 in file https://github.com/oap-project/gluten/blob/main/.github/workflows/velox_be.yml points to spark 331 path, instead it should be pointing to spark 341 path. Tried changing it to /opt/spark341 but build failed with no such path found.
This results in some UT failures with spark 3.4 version like GlutenExpressionsSchemaSuite.
Spark version
None
Spark configurations
No response
System information
No response
Relevant logs
No response

@zhouyuan Could you please take a look at this?
cc @zhli1142015

@ayushi-agarwal thanks for reporting, the issue is due to old CI images were used - will update the image to include spark341 this week
thanks, -yuan

Thanks @zhouyuan

I think CI/CD failures for https://github.com/oap-project/gluten/pull/4273 is related.
@zhouyuan @ayushi-agarwal Maybe we can consider spark342 now

Fixed with this https://github.com/oap-project/gluten/pull/4362/files


[Android] [TextInput] When the window is moved up, touchables are messed up

When I've a textinput at the bottom of the screen, and I focus the text input, the whole screen moves up. After that, the button coordinates are all messed up. If I've a button just alongside the input and I click it, it doesn't work.
Demo - https://rnplay.org/apps/1aY6yw
I've not set this up on rnplay, but what exactly happens is, the point which would be there if the screen hadn't moved up gets clicked (if there was a touchable at that place).

Here a modal menu is shows which would have been shown if the chat bubbles were clicked.
I guess this is not specific to TextInput, and happens everytime the window gets moved up for any reason.
A pretty serious bug, I think.

https://github.com/facebook/react-native/commit/c805157cac6acbb74690f209fe7bfd9ea51f8e55 fixes the part where clicking the button after the keyboard shows up does nothing (because of a bug in touch handling).
The part where the screen moves up is because of the android:windowSoftInputMode property, which was discussed to some extent here https://github.com/facebook/react-native/commit/c805157cac6acbb74690f209fe7bfd9ea51f8e55. Hope it helps!

@andreicoman11 Thank you. Will try building the app with master and report back.


Possible error in file BFS.php?

In line 82:
"foreach ($this->graph->vertices[$current]->getNeighbors() as $vertex) {"
Foreach is not using the variable $neighbors previously defined, and in directed graphs aren't valid.

Thank you for your birthday bug report!
I have not implemented BFS and DFS tests as of yet, but am working to do so in the near future in order to ensure squashing as many bugs as possible.

On 10 Jul 2017, at 12:15, arnau1988<EMAIL_ADDRESS>wrote:
In line 82:
"foreach ($this->graph->vertices[$current]->getNeighbors() as $vertex) {"
Foreach is not using the variable $neighbors previously defined, and in directed graphs aren't valid.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Working on the issue... should only directed graphs are affected!

@arnau1988 Hello, the issue is now fixed in version 1.0.6 of GraphDS!


Syntax Definition: single line comments missing character specifier

At least one TextMate command ('Continue Line Comment') relies on the scope specifying the character used to start a line comment.  The coffeescript grammar is currently not following that convention.
It's a quick fix (change 2 occurrences of comment.line.coffee to comment.line.number-sign.coffee) that I have ready.  I'll merge it asap.

Pull request merged.


Not able to edit values in cell for Redshift

Bug
I was able to edit cells and save, add new rows to a table in redshift until I upgrade to 5.1.5
no I can't edit cell and save or add a new row

This is because AWS driver says that database is in read-only state. Not sure why does this happen.
Anyhow we'll add a workaround in the next version.

Thanks. Moved back to 5.0.5 and it works there.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Serge Rider<EMAIL_ADDRESS>Sent: Thursday, August 23, 2018 4:44:57 AM
To: dbeaver/dbeaver
Cc: Meyyappan MM; Author
Subject: Re: [dbeaver/dbeaver] Not able to edit values in cell for Redshift (#4051)
This is because AWS driver says that database is in read-only state. Not sure why does this happen.
Anyhow we'll add a workaround in the next version.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/dbeaver/dbeaver/issues/4051#issuecomment-415357083, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AmUkWUraT1lATmcftTPzKEGlQ73wAOKTks5uTnmZgaJpZM4WGsvu.

We'll use PostgreSQL extension for Redshift since DBeaver 5.1.6:

How open many connections from informix database?


Respect AWS_DEFAULT_REGION for default client construction

Which version of the SDK?
1.7.138
Problem description
The SDK currently respects AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY when default constructing clients, but not AWS_DEFAULT_REGION. Is there a reason for this behavior? At least boto3 does auto-configure the region.
I think the SDK currently also doesn't set the region when configured from ~/.aws/credentials. I think it should do it in both cases.
In case you have reasons not to configure the region in default constructed clients, what is the recommended way to construct clients then?

Hi @ingomueller-net, a couple things to note here.
If you want the client to build using the credentials file, then you can tell the constructor which profile to use, for example :
Aws::Client::ClientConfiguration config("YOUR_PROFILE_NAME");
//most of the time the profile name is 'default'

then you can create your s3 client like:
Aws::S3::S3Client s3_client(config);
As to why it is done this way, I can't really say, it was a decision taken before my time. But what you say makes sense, so I'll take a look into it, maybe something can be done for that.

Ideally, I'd like the whole client (credentials and region) to be configured automatically by either environment variables or credential files, depending on what is present (like the Python SDK does it). This makes it easy to have the same code do the right thing locally (where .aws/credentials exists) and for example in Lambdas (which set AWS_* environment variables).

Thanks for the suggestion @ingomueller-net, and as always, if you think you can solve this yourself, we are open for contributions through PR's.

@ingomueller-net , firstly thanks for asking the question. This is frustrating - it caught me out.
I personally found that the easiest way to get around this is using std::getenv:
const auto *const pcAwsDefaultRegionEnv = std::getenv("AWS_DEFAULT_REGION");
if (pcAwsDefaultRegionEnv != nullptr)
{
    clientCfg.region = Aws::String{pcAwsDefaultRegionEnv};
}

@ingomueller-net @zerodefect
We have published SDK 1.8 preview build which include region resolution chain feature that resolve correct region automatically in SDK. Check out the blogpost and search for AWS Region, or take a look at our Github wiki page.

Thanks @singku-china , this will be a welcome addition.


[Feature] Extract context information from an array when passing to message

Problem Statement
Currently, if I would like my user message to include information stored in an Array, there is no way to traverse the objects of the array and extract the field I am looking for to send back to the end user. I want my user message to include information stored in an Array, and there is no way to traverse the array's objects in that context
Solution Description
Lets say we have the following Reference JSON, I want to be able to grab tasks[*].taskArn or tasks[*].containers[*].containerArn and provide it in my message block as proper identification for my end users:
{
  "failures": [],
  "tasks": [
    {
      "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/1dc5c17a-422b-4dc4-b493-371970c6c4d6",
      "overrides": {
        "containerOverrides": [
          {
            "name": "simple-app"
          },
          {
            "name": "busybox"
          }
        ]
      },
      "lastStatus": "RUNNING",
      "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/default/5991d8da-1d59-49d2-a31f-4230f9e73140",
      "createdAt":<PHONE_NUMBER>.295,
      "version": 0,
      "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
      "startedAt":<PHONE_NUMBER>.998,
      "desiredStatus": "RUNNING",
      "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-dynamic-ports:1",
      "startedBy": "ecs-svc/9223370560032507596",
      "containers": [
        {
          "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/4df26bb4-f057-467b-a079-961675296e64",
          "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/default/1dc5c17a-422b-4dc4-b493-371970c6c4d6",
          "lastStatus": "RUNNING",
          "name": "simple-app",
          "networkBindings": [
            {
              "protocol": "tcp",
              "bindIP": "<IP_ADDRESS>",
              "containerPort": 80,
              "hostPort": 32774
            }
          ]
        },
        {
          "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/e09064f7-7361-4c87-8ab9-8d073bbdbcb9",
          "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/default/1dc5c17a-422b-4dc4-b493-371970c6c4d6",
          "lastStatus": "RUNNING",
          "name": "busybox",
          "networkBindings": []
        }
      ]
    }
  ]
}

Alternatives
No response
Additional Context
No response
Slack discussion
No response
Research

[X] I have searched other issues in this repository and mine is not recorded.

Sure, if i want to add a container ARN to the message of the policy below, I do not have a way to
apiVersion: json.kyverno.io/v1alpha1
kind: ValidatingPolicy
metadata:
  name: validate-ecs-task-and-definition-memory-hard-limit
  annotations:
    policies.kyverno.io/title: Validate ECS Task Definition Memory Hard Limit
    policies.kyverno.io/category: ECS Best Practices
    policies.kyverno.io/severity: low
    policies.kyverno.io/description: >-
      This policy checks if Amazon Elastic Container Service
      (ECS) task definitions and tasks have a set memory limit for its container definitions.
      If a memory limit is not set for a container, it can consume excessive memory, potentially starving other containers running on the same host.
      Therefore, it is crucial to enforce a hard memory limit on each container to prevent resource contention.
      If a container exceeds its memory limit, it will be terminated by ECS.
spec:
  rules:
    - name: validate-ecs-task-memory-hard-limit
      match:
        all:
         - source: aws.ecs
         - detail-type: "ECS Task State Change"
         - detail:
            lastStatus: 'PROVISIONING'
      assert:
        all:
          - message: From Lambda - Memory limit for containers in the task should be set in the container definitions of its task
            check:
              detail:
                ~.(containers):
                    (!memory): false

Thanks, it doesn't work directly with the payload you posted in the issue description right ?

It should if you modify the match and drop the source and detail-type

Look at this https://kyverno.github.io/kyverno-json/main/_playground/?content=H4sIAAAAAAAAA8VU32%2FbNhD%2BV25%2BaoDQkWxFsvQwoO2KLUAbBEvbl7oYTtQ5Zk2RAkk59YLsb99Rqn8ESIACe5gMGOLxvu%2FuPn3kw6SzWsndpJpgpz6T88qaCr55a6ab3ZacsVNlL7Yp6m6N6dJslGkq%2BIxaNRiUubsZ4EvTUkCOYLU0AAZbqmA7JpEg6UVAvxFoGtHQShkVuIxoqbVuJ9boGqFVq0LEojE2YNz3AxfA0KEif9pQUEHToQ%2BCd29v4SOXgN8O9PBhoIc%2FmB7e7%2Bmfp5PMccfJ1UD0hnyAG4cyKEn%2BZZQnflWBUdrev5zWkJdOdWFQ9lcxJgJ8XCs%2F5u9ArkluPKgVvG7xb%2B79nUbP1eGtNQGVIQe35Lbczh79ihs9g6gqHBX1rF4zBD2scUuA4CnAqDMMEsPKOlDBgzwwn%2BCne%2FqrFWOf4LhZ%2FjADX6TAI8E584FEEyO%2BbwnoO8vmFdcfGc55zEAmKNR6Bz4gT2LuwIY1Vz%2FQeHC9McOGAd4Czy6CtfVhepSMHHF1GkpyR9L1klkhWCDDGzKOHP30tHcmJJTrk5kZ0Dn%2BfCaAI2%2F7iIy7sUu2%2FhMZjqg4GDV%2B0O%2B0wNDOvdIaaoJArlWGDdVAvYt%2BYjbfkRzc7HpNe1%2BLF8%2FJswcjPug9uVDtlxzQ%2BmQVOVuWHu%2BYdjk5mMdX8PDAM%2F%2Flg2OBXx01%2F%2FJ1eli8duYMHh%2BXk1NCGL1ZPY3F55%2FpCc%2FZMwmDTX8ZZzmrYIXas30n55MOd9piw3fOkYDxAk5bqQD5D%2B99xbJUvRfEJ0KkVZLO5tllXizKNKkOgIusWc3yus7EKrksRJYXtcCkKEWZp3lxOStzyrPYYtT3Z9ljLp%2FeFfY6XKSNvJRpgSKbzWqRNTITdVbOxbxIyyKRucyaPBaIB%2FeWL7CeRf%2Fz0%2FX11fXvxyvRq7bTJLDrhhiFe%2Bs2b%2FhK5a8y2kKwL22w0uoKguxGVWvOuLqpIJkOvzF4mP3GsiVg8SMcD8wYmc%2BKIvuPslJSJnm2KkQxz1ORyUUhFliXYtEkxbyum1rW5f8va937XW2%2FP6cpfPnKnnv8F9NkmW%2FoBgAA
The message: "Containers: {{ to_string(containers[].containerArn) }}" processes the input payload but i guess it's not what you want.
Can we use the simple example above to clarify what you want ?

Ok so using the above as an example, lets say container 1 fails, but container 2 doesn't. What you provide above just dumps out all container ARNs, which is better than nothing but not useful as I still am not pointing the user to the specific failure.

Or if we take the example further how can I pull out the Task ARN from the original JSON reference block, when a container ends up failing, considering that the Task list is an Array and the containers are an Array?

Ok so you want to get the specific sub-element that caused the error right ?

Yes I want to contextualize my errors

This is a tricky one 🥵
Basically kyverno-json is all about projecting data and passing the projected data to children until we hit a leaf.
Contextualizing would mean doing something AFTER children have been processed (sort of prolog vs epilog).
I can imaging different solutions:

introduce a prolog syntax, allowing action AFTER children execution (this is only a technical block, doesn't provide the full solution but a good starting point)
introduce a more granular checks concept that could work the same as today but with smaller pieces so that you can access the context at the granularity you need

Example solution 1 (prolog):
      assert:
        all:
          - check:
              detail:
                ~.(containers)/(join(' ', ['container needs memory', containerArn])): # expression behind the / is the prolog
                    (!memory): false

Example solution 2 (small checks):
      checks:
         container-needs-memory:
            message: container needs memory {{ containerArn }}
            assert:
               (!memory): false
      assert:
        all:
          - with:
              list: containers
             checks:
             -  container-needs-memory

Or maybe just this:
apiVersion: json.kyverno.io/v1alpha1
kind: ValidatingPolicy
metadata:
  name: validate-ecs-task-and-definition-memory-hard-limit
  annotations:
    policies.kyverno.io/title: Validate ECS Task Definition Memory Hard Limit
    policies.kyverno.io/category: ECS Best Practices
    policies.kyverno.io/severity: low
    policies.kyverno.io/description: >-
      This policy checks if Amazon Elastic Container Service
      (ECS) task definitions and tasks have a set memory limit for its container definitions.
      If a memory limit is not set for a container, it can consume excessive memory, potentially starving other containers running on the same host.
      Therefore, it is crucial to enforce a hard memory limit on each container to prevent resource contention.
      If a container exceeds its memory limit, it will be terminated by ECS.
spec:
  rules:
    - name: validate-ecs-task-memory-hard-limit
      match:
        all:
         - source: aws.ecs
         - detail-type: "ECS Task State Change"
         - detail:
            lastStatus: 'PROVISIONING'
      assert:
        all:
          - message: container needs memory {{ containerArn }}
            with:
               list: containers
            check:
              detail:
                  memory: {}

how would that work if we are in a nested array situation?

can you provide an example? maybe I am not understanding the vision here

you rebuild the objects you need, leveraging jp flattening and projections features

using things like:

multiselect and multiselect-hash
all kind of projections

I've been playing around with the idea and have a working prototype:
apiVersion: json.kyverno.io/v1alpha1
kind: ValidatingPolicy
metadata:
  name: validate-ecs-task-and-definition-memory-hard-limit
  annotations:
    policies.kyverno.io/title: Validate ECS Task Definition Memory Hard Limit
    policies.kyverno.io/category: ECS Best Practices
    policies.kyverno.io/severity: low
    policies.kyverno.io/description: >-
      This policy checks if Amazon Elastic Container Service
      (ECS) task definitions and tasks have a set memory limit for its container definitions.
      If a memory limit is not set for a container, it can consume excessive memory, potentially starving other containers running on the same host.
      Therefore, it is crucial to enforce a hard memory limit on each container to prevent resource contention.
      If a container exceeds its memory limit, it will be terminated by ECS.
spec:
  rules:
    - name: validate-ecs-task-memory-hard-limit
      assert:
        all:
          - with: >-
                ~.(tasks[].let $taskArn = taskArn in containers[].{taskArn:$taskArn,container:@})[]
            check:
                container:
                    memory: {}
            message: >-
                container {{ container.containerArn }}
                in task {{ taskArn }}
                needs memory

WDYT ?

Prototype here https://github.com/kyverno/kyverno-json/pull/471


Make large features selectable at low zoom

The recently added editing at low zoom levels would be even more useful if large features were selectable at that zoom level.
When clicking on the map, a small area around that position could be downloaded, all small feature be discarded, and lare features with an edge near to the click position could be offered in a list for selection like a search result list.
A small area means a reasonable area to get all edges around the click position.

@slhh This behavior seems like it would be unexpected. This workflow would be:
Click on an empty section of map -> Something random appears and gets selected
This would be doubly unexpected if the user just accidentally clicked or clicked to deselect something. Perhaps people would get used to it and some would find it useful, but I'm afraid some people would be frustrated and stop mapping or just generally have a sense that iD it touchy and therefore more stressful to use.

@quincylvania Good point!
A query tool button on the top bar could initiate the selection workflow, and this would be similar to the query workflow of the OSM website.

@slhh Perhaps! I really don't think this is something most people need, but I have been considering a sort of "toolbox" feature where the user could customize the toolbar with optional, advanced tools. Stuff like this and #6541 could live there.

I've thought a lot more about this and it seems easier for mappers to just zoom in than use a "query" tool. The OSM website needs this tool because it doesn't have direct selection.


add placeholders where information is not available

That's very conscientious! Approved.

all good, I'll add it to the test server


Showcase Submission for challenges/180-falling-sand

Thank you DeanTheCoder for your contribution! A member of the Coding Train team will review it shortly.

Sandy Situation (ZX Spectrum)
DeanTheCoder

This blows my mind @deanthecoder!


signalr not working in project created with "dotnet new angular" cli using VSCode

when i am trying to start the connection, i am getting this  .... at this line
File -> https://github.com/avijassra/signalrDi/blob/v1-reboot/ClientApp/app/services/pubsub.service.ts#L16

this.connection = new HubConnection('chat');
//this.startedConnection = this.connection.start();

File -> https://github.com/avijassra/signalrDi/blob/v1-reboot/Startup.cs#L47

app.UseSignalR(routes =>
routes.MapHub<signalrDi.Hubs.ChatHub>("chat"));

Project Repo https://github.com/avijassra/signalrDi/tree/v1-reboot

What is the error again?

An unhandled exception occurred while processing the request.
NodeInvocationException: Uncaught (in promise): Error: Cannot resolve '/chat'.
Error: Cannot resolve '/chat'.
at HttpConnection.resolveUrl (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:3534:19)
at new HttpConnection (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:3424:25)
at new HubConnection (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:19846:31)
at new PubSubService (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:11730:27)
at createClass (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20466:26)
at createProviderInstance$1 (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20441:26)
at resolveNgModuleDep (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20426:17)
at NgModuleRef.module.exports.NgModuleRef.get (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:21512:16)
at resolveDep (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:22015:45)
at createClass (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:21868:35)
Error: Uncaught (in promise): Error: Cannot resolve '/chat'.
Error: Cannot resolve '/chat'.
at HttpConnection.resolveUrl (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:3534:19)
at new HttpConnection (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:3424:25)
at new HubConnection (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:19846:31)
at new PubSubService (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/main-server.js:11730:27)
at createClass (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20466:26)
at createProviderInstance$1 (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20441:26)
at resolveNgModuleDep (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:20426:17)
at NgModuleRef.module.exports.NgModuleRef.get (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:21512:16)
at resolveDep (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:22015:45)
at createClass (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:21868:35)
at resolvePromise (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:86165:31)
at resolvePromise (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:86136:17)
at /Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:86213:17
at ZoneDelegate.module.exports.ZoneDelegate.invokeTask (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:85819:31)
at Object.onInvokeTask (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:14821:37)
at ZoneDelegate.module.exports.ZoneDelegate.invokeTask (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:85818:36)
at Zone.module.exports.Zone.runTask (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:85586:47)
at drainMicroTaskQueue (/Users/avijassra/Projects/GitHub/signalrDi/ClientApp/dist/vendor.js:85979:35)
at process._tickCallback (internal/process/next_tick.js:103:7)

Looks like you need to use the full url. If the window.document cannot be accessed there is no good way to resolve the full url from a relative url. Maybe the error message should be clearer about this.

This looks like the same problem described here https://github.com/aspnet/SignalR/issues/973

@moozzyk @davidfowl , this code seems have solved the issue
constructor() {
        if(typeof window !== 'undefined') {
            this.connection = new HubConnection('/chat');
            this.startedConnection = this.connection.start();

            //chat
            this.connection.on('NewMessageReceived', (chatMsg: ChatMsgModel) => {
                this.onIncomingMessage(chatMsg);
            });
        }
    }

Questions:

Is there any better solution for this than checking for window object? Or i am missing the actual solution. This looks more like of a patch than solution.
Why it works when i am just creating a dotnet new mvc (not dont new angular) app and transpile code to js using npm tsc ... (note: I am not using webpack in this project)

Thanks for the help

Avi

The issue is that PubSubService code runs on the server side. Is it supposed to run on the server? You workaround basically disables this functionality when the code does not run in the browser but I think running this code on the server side is not correct.

@moozzyk @davidfowl,  i ended up removing asp-prerender-module="ClientApp/dist/main-server" from the Index.cshtml page and application just works as expected.
Thanks for all your time and help.
Avi