Proposal to drop Ruby 1.8.7 support

We currently have a failing build due to the JSON gem requiring Ruby > 2.0. We have a couple of options here:

Pin to a specific version of the JSON gem that allows 1.8.7 support. I haven't looked into how old the version of the gem would be but I can imagine there has been a fair amount of development on it since and we would be taking quite a step backwards to support this.
Remove 1.8.7 support from Boxen. All my findings are pointing at Mountain Lion being the last version to ship with 1.8.7 as it's default (which is now 3 releases from latest at the time of writing). Removing 1.8.7 support would then put us in at least Ruby 2.0 world and would pave the way for some improvements and tidy up in the codebase that needed to account for the older Ruby cases.

I'm voting we take the second option so that we can keep progressing forward. I'm interested to hear other opinions as well as what we should consider a supported version of OSX (latest minus 3?)

:+1: for dropping 1.8.7 support.

Pull request for this one is in #204


fix pod availability checking logic

The changes to IsPodAvailable introduced in https://github.com/gruntwork-io/terratest/pull/480 incorrectly reported pods as available when the readinessProbe is failing but the containers were in a started state. Namely, when there is no startupProbe, containerStatus.Started will always be true (ref) and the pod will be incorrectly reported as available.
This PR fixes the availability checking logic and adds a few test cases to validate the fix.

Thank you all for the second (and third) sets of eyes!
@Hsn723 Could you fix the one NIT I mentioned, and pull in the latest from master? I can kick off tests then.

@brikis98 Thank you for the reviews. I have applied the requested fixes and synced to master

Tests failed due to precommit hooks. Could you run go fmt on the code?
[INFO] Initializing environment for https://github.com/gruntwork-io/pre-commit.
goimports................................................................Failed
- hook id: goimports
- files were modified by this hook

modules/k8s/pod_test.go

@brikis98 You're right, I forgot to run gofmt. I've gofmt'ed the code now.

Re-running tests!

Hm, there were a number of test failures that seem to be related to waiting on pods...
Could you look into:

TestWaitUntilPodAvailableReturnsSuccessfully
TestWaitUntilPodWithMultipleContainersAvailableReturnsSuccessfully
TestWaitUntilPodAvailableWithReadinessProbe
TestTunnelOpensAPortForwardTunnelToPod
TestTunnelOpensAPortForwardTunnelToService
TestRemoteChartInstall
TestRemoteChartInstallUpgradeRollback

@brikis98 Sorry, it looks like I misunderstood the documentation. Under Kubernetes v1.15 which is used in your CI,
pod.Status.ContainerStatus.Started is always nil. The reason for that is likely that startupProbes haven't been introduced yet (the documentation only showed the latest state of the Pod API...).
I've fixed it now (plus a typo with a test case I introduced), please take a look.

Oh, actually, could you pull the latest from master first?

Sure thing. I've synced with master

Thanks! I'll kick off tests shortly.

https://github.com/gruntwork-io/terratest/releases/tag/v0.30.27

Thank you!


Swap release responsible shifts

How to categorize this PR?

/kind task
What this PR does / why we need it:
Swap release responsible shifts
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
/cc @timuthy
Release note:

NONE

/retest


@ #176 | should have documentation guide to work on teracy-dev docs

connects #176

@hoavt docs updated, please help me to review.

confirmed


[DNM] Bridged Strings should have some different/additional overrides for performance

This provides specialized overrides of more NSString methods, as well as moving dynamic dispatch boundaries around and sprinkling @_effects in to reduce refcounting overhead.

@swift-ci please benchmark

@swift-ci please test

@Catfish-Man Do you think the comments in the PR that you have put here should be comments in source instead?

ArrayOfPOD
694
764
+10.1%
0.91x

Improvement

ObjectiveCBridgeStringUTF8String
326
22
-93.3%
14.82x

ObjectiveCBridgeStringIsEqualAllSwift
910
62
-93.2%
14.68x

ObjectiveCBridgeStringIsEqual2
1060
227
-78.6%
4.67x

ObjectiveCBridgeStringHash
140
87
-37.9%
1.61x

ObjectiveCBridgeStringGetUTF8Contents
459
299
-34.9%
1.54x

ObjectiveCBridgeStringGetASCIIContents
568
373
-34.3%
1.52x

ObjectiveCBridgeStringIsEqual
281
192
-31.7%
1.46x

DictionaryKeysContainsNative
67
53
-20.9%
1.26x

ObjectiveCBridgeStringCompare
1145
915
-20.1%
1.25x

ObjectiveCBridgeStringCompare2
1116
912
-18.3%
1.22x

ObjectiveCBridgeStringRangeOfString
1095
904
-17.4%
1.21x

CharIteration_korean_unicodeScalars_Backwards
254796
218523
-14.2%
1.17x

FlattenListFlatMap
272116
241809
-11.1%
1.13x

How to read the data
The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: Quad-Core Intel Xeon E5
  Processor Speed: 3.7 GHz
  Number of Processors: 1
  Total Number of Cores: 4
  L2 Cache (per Core): 256 KB
  L3 Cache: 10 MB
  Memory: 16 GB

Build failed
Swift Test OS X Platform
Git Sha - 753dc9619fc97f89f6f1d8f6b6281070aea6a870

Looks like the test failure is just the ABI checker complaining, which is expected. We'll see on Linux, I haven't tested it yet.

@swift-ci please benchmark

@swift-ci please benchmark

Build comment file:
Performance: -O

TEST
OLD
NEW
DELTA
RATIO

Regression

DictionaryBridgeToObjC_Access
998
1227
+22.9%
0.81x (?)

Improvement

ObjectiveCBridgeStringIsEqualAllSwift
1005
63
-93.7%
15.95x

ObjectiveCBridgeStringUTF8String
363
25
-93.1%
14.52x

ObjectiveCBridgeStringIsEqual2
1136
197
-82.7%
5.77x

ObjectiveCBridgeStringHash
157
77
-51.0%
2.04x

ObjectiveCBridgeStringGetASCIIContents
634
317
-50.0%
2.00x

ObjectiveCBridgeStringGetUTF8Contents
512
258
-49.6%
1.98x

ObjectiveCBridgeStringIsEqual
310
179
-42.3%
1.73x

ObjectiveCBridgeStringCompare2
1246
858
-31.1%
1.45x

ObjectiveCBridgeStringCompare
1271
877
-31.0%
1.45x

ObjectiveCBridgeStringRangeOfString
1232
863
-30.0%
1.43x

SubstringEqualString
1699
1445
-14.9%
1.18x

CharIndexing_ascii_unicodeScalars
362435
322423
-11.0%
1.12x

CharIndexing_tweet_unicodeScalars
717561
639618
-10.9%
1.12x

CharIndexing_chinese_unicodeScalars
276741
246966
-10.8%
1.12x

CharIndexing_punctuated_unicodeScalars
80542
72180
-10.4%
1.12x

CharIndexing_japanese_unicodeScalars
436047
391779
-10.2%
1.11x

RemoveWhereQuadraticString
2759
2513
-8.9%
1.10x

CharIndexing_utf16_unicodeScalars
302214
277128
-8.3%
1.09x

How to read the data
The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci please benchmark

@swift-ci please benchmark

@swift-ci please benchmark

Right, the creation and use of the classes should always be behind a resilient function. Good catch

@swift-ci please test and merge

@swift-ci please test and merge

Sigh… now to figure out why that isn't failing locally

That's a 32-bit build. Try with -i

Ok yeah, 32 bit failure it is. Fixing this is going to be a lot more challenging sadly, so probably tomorrow.

@swift-ci please test and merge

@swift-ci please test and merge

@swift-ci please test and merge

@swift-ci please test and merge

Oh I forgot to pull on the machine I was building on, that's why my results don't match this. About that "going to sleep and doing this tomorrow"…

If you want to split off the dropping of fixedLayout, into a separate PR, that's fine with me.

@swift-ci please test and merge

@swift-ci please test and merge


Error import in INtel XDK

Hi guys...
I use IntelXDK but when I try to import I get the following error: "Cannot find plugin.xml"
Does anyone know how to solve it?

Looks like XDK is looking for a plugin.xml file in the repository, containing metadata.
https://software.intel.com/en-us/xdk/docs/add-manage-project-plugins
I'll read up and see what I can come up with.

Hey there. Reading over this, I think that a plugin.xml would not be relevant here, and that you're trying to use L.TileLayer.Cordova as a Cordova plugin. It is not a Cordova plugin, but a JavaScript library for Leaflet.
You would include it using a SCRIPT tag same as you do with Leaflet. Same as with Leaflet, put the leaflet-tilelayer-cordova.js file in your www flder and add something like this in the HTML file:
<script src="js/leaflet-tilelayer-cordova.js"></script>

Then try JS code similar to that in the README file:  https://github.com/gregallensworth/L.TileLayer.Cordova

You were right .. I was thinking it was a plugin!
Thanks for your help!


Cascade Save cause constraint violation

I have this relation between 2 of my entities :
@Entity
public abstract class AbstractNewsArticle extends StreamItem {

    @Key
    String id;
    String title;
    String content;

    @OneToMany(mappedBy = "article", cascade = {CascadeAction.DELETE, CascadeAction.NONE})
    Set<Image> imageSet;
}

and
@Entity
public abstract class AbstractImage {

    @Key
    @Generated
    int id;

    @ManyToOne
    NewsArticle article;

    String path;
    String caption;
}

Updating my NewsAticle (with dataStore.update(article)) cause a cascadeSave on the Image entities, which tries to insert a new NewsArticle with the same id, causing a constraint violation (primary key).
The Exception is thrown in EntityUpdateOperation.java method execute(final QueryElement<Scalar> query)

Hi did you mean it tries to insert an Image with a new id? or the article. Is the article in your image the same one as contains the image (eg. bidirectional) ? Also if you can provide the stacktrace that will be great thanks!

Hi,
It seems that it tries to insert a new article :
io.requery.PersistenceException: java.sql.SQLIntegrityConstraintViolationException: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: NewsArticle.id (code 1555)

Hi does your stack trace have EntityWriter.cascadeSave in it? hard to tell from only the first line, just want to confirm is from cascading the article belonging to the image and not from updating the key of the article.

You can see the methods stacktrace here when I put the breakpoint into the catch clause of the execute() method :

Then the variables values into the cascadeInsert (which you can see in the previous image) :

The cascadeSave calls cascadeInsert on the NewsArticle, then the constraint violation is thrown.
If you need more informations do not hesitate :)

Hi thanks that helps a lot. So this is happening because because isLinked() is false for your entity so it choses to insert instead of update. How was that NewsArticle created? From a query or programmatically? If programmatically that would explain the problem. I think instead of just isLinked it can be changed to check for key presence as well which should fix your problem.

This NewsArticle is created programatically, items are fetched from a webservice, then parsed into NewsArticles (as well as the Image set).
Yep maybe check the key presence is a good solution, if we can assure that 0 is the non-presence.
Hope it helps ! Thanks for the great lib by the way

Sure that helped a lot, should be an updated build tomorrow with a fix. Thanks for reporting

Hi,
I've updated requery to beta11 and I still have the issue :

As you can see on the screenshot :

The method succession :

I call update() on my NewsArticle
Then updateAssociation() is called to store the Image entity
Then updateInverseAssociation() to save the NewsArticle, cascadeSave() and insert()

You can see the variable value, the cascadeInsert(referenced) is called on the NewsArticle.

Ah sorry that didn't solve it. What's the state of the key(s) in your NewsArticle entity? Are the keys having the PropertyState value of MODIFIED or LOADED? I will try to replicate your case today.

Here you have the attribute's values :

Hi thanks for the detailed report, I've made a change that I think should solve it but will do a bit more testing tomorrow before releasing in a new update.

Please retry with the beta12 version

I've tried with beta12 and still have the issue.
I've checked your modifications and can tell you that inside the newly introduced cascadeSave(referenced, null), the writer.insert is called.

Then, cascadeInsert(referenced) is called on the NewsImage (EntityWriter.java line 435).
Maybe the issue is coming from the way I want to insert my entities:

the NewsArticle entities have ids coming from a webservice, but Images have not. So in order to avoid inserting multiple times the same image through several refreshs, I delete all the images associated with a NewsArticle before updating this article. Then the update will insert the Image Set, maybe the issue is here.
Given that the Images are inserted and not updated, requery try to insert the associated NewsArticle (which already exists)

I would check that the NewsArticle associated with the Image is the same as the NewsArticle that you are inserting. If they are not the same that would explain your problem. In the break point you are showing in your screenshot the NewsArticle there must not have any id set which is why it is going into insert and not update.

You can check this simple project that I made. It reflects the issue I'm having.
RequerySample.zip

Thanks! will look

Thanks that helped a lot, working on a fix

Thanks for your patience on this! will post an updated build with the change tomorrow

Please try the updated beta14 version

beta14 solved the issue :)

Awesome! glad to hear that

I'm having the same issue and I'm on master. But it's really strange cause It's seems to be random, I juste get the exception sometimes.
@Entity
public abstract class AbstractPerson {
    @Key
    String uuid;

    String username;
}

@Entity
public abstract class AsbtractChat {
    @Key
    String uuid;

    @ManyToOne
    Person user;

    @ManyToOne
    Person otherUser;
}

When I try to create a chat and insert it sometimes I get this exception. The person models are both inserted before the chat and normally up to date. But when I try to create the chat it tries to insert one of them. Why ?


Update the readme to clarify the goals and non-goals of this package

goals: supporting a recommendation for a core and recommended set of lints
non-goals: recommendations past that (e.g., 'strict')

In order to better make the community aware of linting sets beyond the recommended one here, we could consider listing commonly used community lint sets.

I mentioned this in https://github.com/dart-lang/lints/issues/102#issuecomment-1552039195, but:

As for your mention of the community lint sets, we could consider suggesting use of a standard lints or linter-rules pub topic and linking to that topic.

we could consider suggesting use of a standard lints or linter-rules pub topic and linking to that topic

Great idea! That would help w/ discovery of lints sets.


[Bug] Stacked line with areaStyle is displayed despite data having 0 values

Version
5.3.1
Link to Minimal Reproduction
https://jsfiddle.net/bh6rayzs/1/
Steps to Reproduce

Create a chart with two stacked series of type 'line' with an xAxis of type 'time'
One of the series has data with some '0' values so that the stacked line is on the same yAxis level as the other serie's line.
The series have areaStyles and transparent lines

Current Behavior
At a wide zoom level, you can see the serie's line, which is stacked on top of the other serie's line and has data with some '0' values, sticking out behind the other line. If you zoom in further, it disappears and everything is displayed correctly.
Current behaviour on wider zoom levels. There is a lot of red although most of its series data value is '0':

If you scroll in a bit you can see how it actually should look like:

Expected Behavior
The stacked serie's line should only be displayed on top of the other serie's line if it has data with values other than '0'. The data should be displayed correctly on all zoom levels.
Environment
- OS: macOS Monterey
- Browser: Chrome 99, Firefox 97

Any additional comments?
The app shows data for every minute for a whole day with the possibility to zoom via a datazoom.

Also faced a similar issue, but I solved it by replacing all 0 by null or '-'

Thanks for your suggestion! Replacing 0 with null makes it significantly better for now and it doesn't look as wrong as before.
However, this does not make the rendering correct yet. On wider zoom levels there is still the problem that the representation of each day is not a straight stacked line:
Current behaviour on wider zoom levels with 0 replaced with null:

Correct rendering when scrolled in a bit more:

The issue still exists


Added redux

Motivation
https://issues.jboss.org/browse/AEROGEAR-7922

👀

Pull Request Test Coverage Report for Build 486

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 74.678%

Totals

Change from base Build 477:
0.0%

Covered Lines:
348

Relevant Lines:
466

💛  - Coveralls

@pb82 @wojta should be fixed now. I've also added eslint and ran auto-fix.


Dynamic IPs Google Cloud Platform

Hi,
I set up a cluster on Google Cloud followed by your Getting Started guide. Add the moment I am facing the problem that after shutdown/restart of the created instances.
All the VMs came up again but they can't communicate with each other. I think this happens because Google provided the instances some new IP addresses after the restart.
Is it possible to change the terraform configuration, so that all the machines will be set up with static IP addresses? Where could this change be done?
BR
Timo

Hi Timo,
Thank you for your ticket. We are looking for possibilities to resolve this issue. We will let you know once it will be done.
Best Regards,
Piotr Milewski

Hi Timo,
I've tried to use
resource "google_compute_global_address" "default" {
  name = "global-appserver-ip"
}

(please refer to https://www.terraform.io/docs/providers/google/r/compute_global_address.htm
). However on my gcp instance I have an error: address is in different zone than cluster (I set default zone). I need more time for investigation.


Acceptin EULA problems when restarting container

Hi,
After stopping a freshly created container and using the docker start mc command, the container doesn't start and the docker logs mc says that I'm supposed to accept the eula with the run command. The weird thing it that when the container was created with run, it got the -e EULA=TRUE option and the container is up and running after that. The problem occurs only after stopping and starting again.
Any idea what can cause this problem or what I'm missing here?

I’ll have to investigate since I would have expected the docker start to retain the environment variables.

@gaborfinta , I wasn't able to re-create this. Can you double check that the container you're starting has the environment set as you expect using something like docker inspect mc -f "{{.Config.Env}}"?

I honestly don't know what caused the problem. Nothing helped last time but not it works. Maybe it's just the pc restart since then. Thanks for your quick replies though

I'm glad to hear it mysteriously resolved itself.


Fix creation of type _cdb_has_usable_geom_record

Fix the ERROR:  type "_cdb_has_usable_geom_record" already exists by
checking for existence before. Duly noted for upgrades.
@juanignaciosl please review
Just FYI, some more pain on upgrades @rochoa and @pramsey

:+1:

ok


Unnecessary space in dial code

I found a possibly unnecessary space in the dial code of Cayman Islands in country_codes.dart. There is a space between + and 345.
{
  "name": "Cayman Islands",
  "code": "KY",
  "dial_code": "+ 345",
},

I chose to file an issue rather than make a PR because the removal of the space might affect existing apps that have used the exact dial codes as they are in the list.

I just googled it and the actual code should be +1345


MakeCode power extension goes to sleep too quickly

Tested on a V2.2 using the micro:bit power management extension and MakeCode live.
With this programme (more info about the programme in issue https://github.com/lancaster-university/codal-microbit-v2/issues/200), pressing button A not always shows the character A on the display and it goes straight into sleep.

Placing this in the v0.2.41 release for now, mainly to facilitate tracking it

I don't think this is caused by the power manager. See https://makecode.microbit.org/_f6T3709UYWij

When button A is pressed while the heart is big, A does not appear and the beep is short.
When button A is pressed while the heart is small, A does appear and the beep is long.
Try the same on micro:bit V1. Whenever button A is pressed, A is always displayed after the small heart and the beep is longer for a big heart press.
I think the V1/V2 difference is related to https://github.com/lancaster-university/codal-core/pull/140. The V2 sequence of events is something like this:

forever shows big heart and enters wait for DISPLAY_EVT_ANIMATION_COMPLETE
button handler runs and tries to display A but sees display is busy, so enters wait for DISPLAY_EVT_FREE
sendAnimationCompleteEvent() sends DISPLAY_EVT_ANIMATION_COMPLETE, which immediately queues forever
sendAnimationCompleteEvent() sends DISPLAY_EVT_FREE, which immediately queues button handler after forever
forever shows small heart and enters wait for animation DISPLAY_EVT_ANIMATION_COMPLETE
button handler sees display is busy again and gives up here
https://github.com/lancaster-university/codal-core/blob/master/source/drivers/AnimatedDisplay.cpp#L442

Adding a pause between the hearts makes V1 and V2 match, because the button handler runs while the display is free. There is an automatic pause at the end of the forever loop. Changing to a while loop in https://github.com/lancaster-university/codal-core/pull/140 makes the handler wait until the display is actually, rather than potentially, free.

Thanks Martin, in that case this issue is invalid (not specific to sleep).
In issue https://github.com/lancaster-university/codal-microbit-v2/issues/95 we'll revisit the current behaviour after the https://github.com/lancaster-university/codal-core/pull/140 patch and track any additional changes required/suggested there.


Include Double Satisfaction in Vulnerabilities

Also added another solution for on-chain validation of used parameters of a parameterized contract, plus fixes for minor typos.

Thanks!


Add new tests and features to Solana ragger

SonarCloud is analyzing the python tests, which is not what we want

does this need more work or can be merged?

I'm waiting for a final review from Ledger colleagues and then we'll merge the first two PRs


feat(aws): add new check bedrock_agent_guardrail_enabled

Context
This PR adds a new security check for Amazon Bedrock to ensure Guardrails are enabled for agent sessions. Guardrails help filter harmful or sensitive content during interactions with AI models, enhancing security and data protection.
Description

Check Name: bedrock_agent_guardrail_enabled
Purpose: Verifies that Guardrails are enabled to prevent exposure of sensitive or inappropriate content in Bedrock agent sessions.
Severity: High
Remediation: Enable Guardrails in the Bedrock Console or via API to filter sensitive content during model interactions.

Checklist

Are there new checks included in this PR? Yes / No

If so, do we need to update permissions for the provider? Please review this carefully.

[ ] Review if the code is being covered by tests.
[ ] Review if code is being documented following this specification https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-comments-and-docstrings
[ ] Review if backport is needed.

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

Are you sure ProwlerRole has all the necessary permissions? I am getting this error when I tried to execute the check
2024-10-30 12:32:36,107 [File: bedrock_service.py:141]  [Module: bedrock_service]        ERROR: eu-west-1 -- AccessDeniedException[126]: An error occurred (AccessDeniedException) when calling the ListAgents operation: User:XXXX is not authorized to perform: bedrock:ListAgents on resource: arn:aws:bedrock:eu-west-1:XXXXX:*

Are you sure ProwlerRole has all the necessary permissions? I am getting this error when I tried to execute the check 2024-10-30 12:32:36,107 [File: bedrock_service.py:141] [Module: bedrock_service] ERROR: eu-west-1 -- AccessDeniedException[126]: An error occurred (AccessDeniedException) when calling the ListAgents operation: User:XXXX is not authorized to perform: bedrock:ListAgents on resource: arn:aws:bedrock:eu-west-1:XXXXX:*

Good catch! Permissions were added.


Alert dismiss button not respecting $ink-class-prefix

Changing the sass $ink-class-prefix does not work for the dismiss button on the alert boxes

What were you trying to accomplish?
I tried changing
$ink-class-prefix : ink !default;
into
$ink-class-prefix : newname !default;

What results did you expect, instead of what you see now?
I expected all sass files to respect this new class prefix, but instead I realized that the alerts.scss had hardcoded class prefix references

I didn't have the time to fork so here are the effected files
src\sass\mixins\_alerts.scss
src\sass\modules\_alerts.scss
src\sass\themes\_alerts.scss

How to resolve this issue
Change
.ink-dismiss
into
.#{$ink-class-prefix}-dismiss

What version of Ink are you using?
3.1.4

Hi @moroswitie, thanks for catching that one. I'll fix it and i'll be in the next release.

src\sass\themes\_alerts.scss still contains ink-dismiss on line 26 (Ink version 3.1.10).
Also, src/js/Ink/UI/Close/1/lib.js and src/js/Ink/UI/Modal/1/lib.js contain hard-coded references to ink-dismiss, ink-close, ink-alert, and ink-alert-block.


ex_doc: 0.32.0 -> 0.32.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for ex_doc is: ExDoc produces HTML and EPUB documentation for Elixir projects
meta.homepage for ex_doc is: https://github.com/elixir-lang/ex_doc
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.32.1 in filename of file in /nix/store/vsh8y6nid4731cjkng2z21jyppfch47b-ex_doc-0.32.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
erlang_27-rc2
ex_doc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vsh8y6nid4731cjkng2z21jyppfch47b-ex_doc-0.32.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A ex_doc https://github.com/r-ryantm/nixpkgs/archive/2413c03a8951329142ecf07e4ecaacf4fa7d33ee.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2413c03a8951329142ecf07e4ecaacf4fa7d33ee#ex_doc

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vsh8y6nid4731cjkng2z21jyppfch47b-ex_doc-0.32.1
ls -la /nix/store/vsh8y6nid4731cjkng2z21jyppfch47b-ex_doc-0.32.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

erlang_27-rc2
ex_doc

Maintainer pings
cc @chiroptical for testing.

@NickCao just a note, this didn't actually work because the minor version also bumped the mix dependencies. So, we needed to update two hashes. I noticed when trying to update Erlang 27-rc2 to rc3.


GmEventService is not a constructor | Getting all open orders for multiple assets at once

Problem
Get all open orders for assets at once.
Cause running getOpenOrdersForAssets in a loop causes to many request and my current solution is using a rate-limit.
Solution
getOpenOrdersForAssets(connection: Connection, assetMint: PublicKey[], programId: PublicKey): Promise<[OrderAccountItemAsset])[]>

where
export interface OrderAccountItemAsset {
  assetMint: PublicKey;
  orders: OrderAccountItem[];
}

Alternatives Considered
rate limiting?
Notes
If there is already a way please let me know.
Thanks S&B

....[update]
So I found the GmOrderbookService class by now which should do exactly what i want.
But trying to implement it gives me the following error:
Uncaught (in promise) TypeError: anchor_1.Wallet is not a function
    GmEventService GmEventService.ts:48
    GmOrderbookService GmOrderbookService.ts:46

I can confirm I have the same exact error with GmOrderbookService

Hi @skullnbonesdao @redspatula - we're taking a look into this. Thanks for the report!

Quick update on this is that it appears that this issue is specific to the browser environment. Running the service inside of a Node.js server, for example, with the same code linked above works just fine.
Obviously this is a client side package though so we should expect it to work properly in the browser, so we'll keep digging :+1:

Don't really know if this is the exact issue here but it seems like its related (since a import gets converted into a require when running npm build ) maybe this helps:

https://stackoverflow.com/questions/43815928/why-does-this-npm-package-say-it-is-not-a-constructor
https://stackoverflow.com/questions/42475691/importing-vs-requiring-with-babel-in-node/42475844#42475844

There seems to be also a update in the anchor package since there is an issue with that exact import/require statement:
"@project-serum/anchor": "^0.24.2" => 0.25.0

Hope this helps :pray:

Thanks for the update. I no longer have that bug. Site is up and running now again =D

Awesome, thanks for the confirmation @redspatula. Closing this issue as completed for now but feel free to re-flag if anyone else is still experiencing it.


Determine best name for new package

See discussion on #8. The question is pypy or pypy2 to replace python.pypy?

Personally I'm going for pypy2.

@antocuni WDYT? (I'm trying to get the opinion of actual PyPy maintainers.)

Disclaimer: I don't know much about chocolatey and windows in general, so I'm not sure I am the best person to give an answer.
That said, currently we use pypy for our Python 2 packages and pypy3 for Python 3.x.
The same for binaries: you invoke pypy to start a python 2 interpreter. It might change in the future though, we never really discussed that

@antocuni Thanks for weighing in. A few follow up questions:

Do you imagine the pypy binary will drop Python 2 support and become Python 3 at some point?
If yes, will pypy3 remain as an alias?
Would it be a problem if the putative pypy Chocolatey package would be Python 2.7 for several releases and then switch the Python 3 once the PyPy project stops supporting Python 2?

pypy will NOT drop python2 support anytime soon: pypy itself is written in python2, so we NEED that :).
But I cannot promise anything about the naming convention: currently we have pypy/pypy3, in the future we might want to switch to pypy2/pypy3 or even pypy2/pypy. But it's just a naming convention, chocolately can use whatever naming convention it wants

@antocuni SGTM, thanks for the update. RE:

chocolately can use whatever naming convention it wants

it's just us deciding what to name it, we are the package owners.

@kirbyfan64 Shall we go with your preference of pypy2 then?


[Feature][UI Next] Add front-end for Apache Zeppelin task plugin (#9597)

Purpose of the pull request

Add front-end for Apache Zeppelin task plugin
Fix minor bug of zeppelin server endpoint default value in common.properties
This PR closes: #9597

Brief change log

Already described above

Verify this pull request

Verified by manual test

I don't know how to get a colorless icon of Apache Zeppelin. Do you have any ideas about how to do this? Thx. @songjianet @Amy0104

what is going on, mergeable?

what is going on, mergeable?

Looks like something wrong with the mergeable bot? LOL

Thx, I will fix it.

I don't know how to get a colorless icon of Apache Zeppelin. Do you have any ideas about how to do this? Thx. @songjianet @Amy0104

There are two ways to do this. Firstly, you can try photoshop to modify the icon picture. Secondly, you can use the  the filter in css style. But there is better to use the icon in svg format.

I don't know how to get a colorless icon of Apache Zeppelin. Do you have any ideas about how to do this? Thx. @songjianet @Amy0104

There are two ways to do this. Firstly, you can try photoshop to modify the icon picture. Secondly, you can use the the filter in css style. But there is better to use the icon in svg format.

Thx, I will try the approaches you mentioned above : )

@songjianet @Amy0104 I had installed vue-tsc through cmd npm i vue-tsc -D. When I tried vue-tsc, I got error zsh: command not found: vue-tsc. Did I miss anything? Thx

Codecov Report

Merging #9810 (ca0bfe6) into dev (515c363) will increase coverage by 0.33%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #9810      +/-   ##
============================================
+ Coverage     40.07%   40.41%   +0.33%
- Complexity     4483     4526      +43
============================================
  Files           835      834       -1
  Lines         33589    33639      +50
  Branches       3712     3721       +9
============================================
+ Hits          13461    13594     +133
+ Misses        18874    18760     -114
- Partials       1254     1285      +31

Impacted Files
Coverage Δ

...heduler/api/service/impl/TaskGroupServiceImpl.java
74.22% <0.00%> (-1.78%)
:arrow_down:

...dolphinscheduler/remote/future/ResponseFuture.java
81.96% <0.00%> (-1.64%)
:arrow_down:

...che/dolphinscheduler/api/python/PythonGateway.java
9.23% <0.00%> (-0.52%)
:arrow_down:

...r/plugin/datasource/hive/HiveDataSourceClient.java
1.35% <0.00%> (-0.17%)
:arrow_down:

...che/dolphinscheduler/common/enums/ProgramType.java
0.00% <0.00%> (ø)

...he/dolphinscheduler/common/enums/SparkVersion.java
0.00% <0.00%> (ø)

.../dolphinscheduler/plugin/task/datax/DataxTask.java
0.00% <0.00%> (ø)

...hinscheduler/plugin/task/api/AbstractYarnTask.java
0.00% <0.00%> (ø)

...r/plugin/task/sqoop/parameter/SqoopParameters.java
53.33% <0.00%> (ø)

...hinscheduler/plugin/task/spark/SparkArgsUtils.java

... and 7 more

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 515c363...ca0bfe6. Read the comment docs.

CI seems good except the SonarCloud Code Analysis. Do we need handle this analysis failure? @songjianet @Amy0104

CI seems good except the SonarCloud Code Analysis. Do we need to handle this analysis failure? @songjianet @Amy0104

unnecessary


chore: add build with arm arch support

arm arch support (fixes #831 ):

binaries
images
Signed-off-by: chen-keinan<EMAIL_ADDRESS>

Closing the PR due to bad history commits.
New PR opened instead : #958


Expanded Event Status

Added status summary to the event status fragment.

Everything is awesome!

btw, doesn't this suppose to be opened against your other branch?

Yeah, it should have been opened against my previous branch. Sorry for that :/
Now I can't change it...

doesn't really matter, just merge this and close the other :)

I'm still waiting for Benny to go over it


Remove application stats

Remove fields like accepted_applications_count and all corresponding logic because we shouldn't save information like that

I think accepted_applications_count is computed on the fly in https://github.com/hpi-schuelerklub/workshop-portal/blob/e3e5cb113ae91fe6e27d943b8e97141f3326b338/app/models/user.rb#L137 rather than being stored somewhere.
If I recall correctly, this feature was a requirement of our PO. In case it shall be removed anyway, can you explain "information like that"? I'm not really sure what is meant by that :)

At least the other flag, rejected_applications_count. I'm not sure wether more statistics exist, but if so, I'd rather remove them in order to be compliant with any data/privacy requirements.

I think rejected_applications_count is computed on the fly too, similar to accepted_applications_count:
https://github.com/hpi-schuelerklub/workshop-portal/blob/e3e5cb113ae91fe6e27d943b8e97141f3326b338/app/models/user.rb#L146
So the statistics are only considered evil when they are somewhere stored and not computed on the fly?
`

Good question. I doubt that this will be helpful one day, so I'd rather remove all unnecessary code we have. At least the rejected count will never have usable information since we will always delete these fast.


15930 Packages and other fixes

Issue #: /bcgov/entity#15930
Description of changes:

incremental packages to fix test warnings
misc lint fixes
changed style import order to fix background issue
disabled pdfjs-dist due to incompatibility (NEED TO FIX BEFORE MERGE)
fixed store method
fixed a unit test

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

These changes were added to https://github.com/bcgov/business-create-ui/pull/540, so I'm closing this PR.


Remove UNUSED macro to silence MISRA diagnostic

Remove UNUSED macro and (void) cast instead, fixing the Function-like macro advisory diagnostic.
Not sure if you want to take this change, since this is an advisory MISRA guideline. But I guess if people compile with flags to warn when macros are redefined and have their own UNUSED macro, then this could cause warnings? But IMO it shouldn't pollute the global namespace if it isn't absolutely necessary.

Coverage remained the same at 93.503% when pulling dd990056a15bf3a5f41f3d257d7a0a00adbcdbe6 on karlding:remove_unused_macro into 1bc5e8d0195672c413903f87f94be79fef5e9d8f on eerimoq:master.

It would be interesting to know how many applications have ever been written with zero MISRA warnings, and if they are possible to understand by a human. Function-like macros are certainly useful, and so are using implicit casts and not having to create temporary variables just because it is considered complex to cast and assign at the same line. Also only allowing symbol names of less than 32 characters does not really build quality. The list is long... =)
That said, we should still keep the number of MISRA warnings to a minimum as people actually have to deal with them because their company says so.

@eerimoq: You can have a look at the compliance statement for the RTOS Micrium to get a feeling.
https://doc.micrium.com/display/osiiidoc/MISRA+C%3A2012


[Backtracing][Tests] Disable crashing tests under ASAN.

If ASAN is enabled, it will catch the crashes and the backtracing code won't, so in that case the tests will fail.  Fix by disabling them for ASAN.
rdar://109706334

Explanation: Some of the backtracer tests crash deliberately and look to make sure the backtracer is generating the right output. When ASAN is enabled, it catches the crashes instead of the backtracer catching them, so the output doesn't match. Therefore, disable these tests for ASAN builds.
Risk: Low. Only affects tests.
Original PR: https://github.com/apple/swift/pull/64567
Reviewed by: @mikeash
Resolves: rdar://107129465
Tests: This just disables the tests (unfortunately we also have to update a load of line numbers in the test output at the same time, but c'est la vie.)

@swift-ci Please test

@swift-ci Please test


SDK-1113 Add a UI test workflow

Linear Ticket: SDK-1113
Changes:

Adds a workflow for running UI/instrumented tests
Updates existing workflows to contain the new placeholder

Notes:

Checklist:

[x] I have verified that this change works in the relevant demo app, or N/A
[x] I have added or updated any tests relevant to this change, or N/A
[x] I have updated any relevant README files for this change, or N/A

I added this same workflow to main so I could trigger/test it. Will delete it from there once tests are verified. Apologies for the direct commits to main 😬

Ok, this is done and tested now.


Initial free5gc UPF package

A package using the latest CRD proposal that represents a vendor package for free5gc UPF.

Do we have a repo where we would store these?

Under discussion here: https://github.com/nephio-project/nephio/issues/10

But you can put it in free5gc-packages for now.

created PR.
https://github.com/nephio-project/free5gc-packages/pull/9


skipToken support for typescript-react-apollo

skip as an option for suspense hooks is going to be deprecated in favour of a new skipToken technique in an upcoming version of Apollo, as it provides more type safety.
Apollo docs on skip:

This option is deprecated and only supported to ease the migration from useQuery. It will be removed in a future release. Please use skipToken instead of the skip option as it is more type-safe.

More reading:

https://www.apollographql.com/docs/react/data/suspense/#skipping-suspense-hooks
https://www.apollographql.com/docs/react/api/react/hooks/#skiptoken

You can work around this at the moment by using useSuspenseQuery directly from @apollo/client and using the document and types generated by graphql-code-generator, eg:
import { useSuspenseQuery, skipToken } from '@apollo/client'
import { ExampleQueryResult, ExampleQueryDocument } from './generated'`

const { data } = useSuspenseQuery<ExampleQueryResult>(
    ExampleQueryDocument,
    id ? { variables: { id } } : skipToken
  )

Describe the solution you'd like
It would great if the generated suspense hook had native support for this (which aligns with what their docs recommend), eg:
import { skipToken } from '@apollo/client' // Maybe `skipToken` is re-exported from `./generated'`?
import { useExampleSuspenseQuery } from './generated'`

const { data } = useExampleSuspenseQuery(id ? { variables: { id } } : skipToken)

Realised this is a community plugin so I've instead posted this issue over in that repo: https://github.com/dotansimha/graphql-code-generator-community/issues/647


Is there away to authenticate with an access token?

I am using docker to execute all pulumi commands. On CI/CD systems I am fine using service principals together with ARM_CLIENT_ID, but on my dev machine I would prefer using AAD authentication. So when logged in with az login, I can then retrieve an access token, and would like to pass that to the docker container for pulumi to pick up, is this possible?
Outside container:
export ACCESS_TOKEN=$(az account get-access-token --resource=https://management.azure.com | jq -r .accessToken)

Inside container (e.g. what pulumi should do):
curl -X GET -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.Web/sites?api-version=2016-08-01

I have tried using MSI without success, but maybe I am configuring it incorrectly?
-e ARM_USE_MSI=true -e ARM_MSI_ENDPOINT="https://management.azure.com" -e ARM_TENANT_ID="$ARM_TENANT_ID" -e ARM_SUBSCRIPTION_ID="$ARM_SUBSCRIPTION_ID"
error: Preview failed: azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/microsoft.insights/components/<resourceName>/CurrentBillingFeatures?api-version=2015-05-01: StatusCode=404 -- Original Error: adal: Refresh request failed. Status Code = '404'. Response body: {"error":{"code":"MissingSubscription","message":"The request did not have a subscription or a valid tenant level resource provider."}}

I can then retrieve an access token, and would like to pass that to the docker container for pulumi to pick up, is this possible?

No, I believe this isn't supported.
Your environment variables look correct. However, I think you said you run it on your dev machine... how would it get the managed identity?
To troubleshoot auth, run pulumi preview -v=9 --logtostderr and search for a block like the one below
2021/01/25 16:52:01 Testing if Service Principal / Client Certificate is applicable for Authentication..
2021/01/25 16:52:01 Testing if Multi Tenant Service Principal / Client Secret is applicable for Authentication..
2021/01/25 16:52:01 Testing if Service Principal / Client Secret is applicable for Authentication..
2021/01/25 16:52:01 Testing if Managed Service Identity is applicable for Authentication..
2021/01/25 16:52:01 Testing if Obtaining a token from the Azure CLI is applicable for Authentication..
2021/01/25 16:52:01 Using Obtaining a token from the Azure CLI for Authentication

I can then retrieve an access token, and would like to pass that to the docker container for pulumi to pick up, is this possible?

No, I believe this isn't supported.
Your environment variables look correct. However, I think you said you run it on your dev machine... how would it get the managed identity?
To troubleshoot auth, run pulumi preview -v=9 --logtostderr and search for a block like the one below
2021/01/25 16:52:01 Testing if Service Principal / Client Certificate is applicable for Authentication..
2021/01/25 16:52:01 Testing if Multi Tenant Service Principal / Client Secret is applicable for Authentication..
2021/01/25 16:52:01 Testing if Service Principal / Client Secret is applicable for Authentication..
2021/01/25 16:52:01 Testing if Managed Service Identity is applicable for Authentication..
2021/01/25 16:52:01 Testing if Obtaining a token from the Azure CLI is applicable for Authentication..
2021/01/25 16:52:01 Using Obtaining a token from the Azure CLI for Authentication

No I guess managed identity would not work in docker either in this scenario (not sure), in VS it just works where it picks up your current AAD credentials instead, but I guess they handle that differently.
But adding an option for authenticating with an access token, as an alternative to client id / client password, is probably a minor thing don't you think? Would it be something you can add to any future update?

No I guess managed identity would not work in docker either in this scenario (not sure), in VS it just works where it picks up your current AAD credentials instead, but I guess they handle that differently.
But adding an option for authenticating with an access token, as an alternative to client id / client password, is probably a minor thing don't you think? Would it be something you can add to any future update?

If there should be any real value to this I guess it should be added the AzureAD provider as well, most often used together. Not sure if multiple access tokens must then be possible to inject, for different resources. In the sample above I created an azure token, that worked, with https://management.azure.com as resource, but not sure if that will be an accepted access token for all resources over all of Pulumi Azure providers.

If there should be any real value to this I guess it should be added the AzureAD provider as well, most often used together. Not sure if multiple access tokens must then be possible to inject, for different resources. In the sample above I created an azure token, that worked, with https://management.azure.com as resource, but not sure if that will be an accepted access token for all resources over all of Pulumi Azure providers.


fromEvent incorrect arg order causes infinite recursion

Doing:
fromEvent('abort', signal)

Causes:
    err: {
      "type": "RangeError",
      "message": "Maximum call stack size exceeded",
      "stack":
          RangeError: Maximum call stack size exceeded
              at isEventTarget (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:63:5)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:31:9)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
              at setupSubscription (/usr/src/app/node_modules/rxjs/internal/observable/fromEvent.js:48:13)
    }

It should be
fromEvent(signal, 'abort')

However, a bit better error handling might be appropriate here? Maybe at least check if the sourceObj is an array?

This is because the given string is identified as an ArrayLike. I will create a PR to fix the funtion to not let a string pass.

How can we participate?


code intelisense

hi
i used  unreal 4_2.7 compile file to create game . and i try so many ide s. but none of them worked . please help .
i do change so many setup . but steel i work n it .
like-> cpp_properties.json
thankyou

yes

Hi, apologies for the massive delay in response. If you're still running into this issue, could you please clarify what the problem is you're seeing? This repo is for C# samples using the Epic Online Services SDK, so they will not work in Unreal Engine 4.27.
Thanks,
Rajen


Travis: Implement build stages for deployment

https://blog.travis-ci.com/2017-09-12-build-stages-order-and-conditions

No need after simplifying the build.


Read an account from the service

As a service consumer
I need to be able to read an account from the service
So that I can view the details of existing accounts
Details and Assumptions
Account details are available and accessible.
Proper authentication and authorization are required to access the account details.
Acceptance Criteria :
Given I am authorized
When I request for a specific account
Then I should receive the account details


Bug with Better Roofs/Levels

Expected Behavior
When you place a tile "inside" levels you're supposed to see it and walk below it with no problems like this:

Current Behavior
Currently I can't see the tile when its set up is to be "inside" levels

Steps to Reproduce

Have a scene created with at least two levels
Place a tile "inside" one of those levels
Select a token nearby and see how the tile is just flat black image

Context
No response
Version
v4.0.37
Foundry VTT Version
v10.286
Operating System
Windows 10
Browser / App
Native App (Electron)
Game System
dnd5e 2.0.3
Relevant Modules
Levels (3.5) - Better Roofs 1.7.6

Update to Levels 3.5.1. Make sure that Is a Roof? is unchecked and check Allow Sight (Animation tab).
I assume you don't need those arches to block sight. Let me know if that works for you.

Updating to Levels 3.5.1 solved it, many thanks


Schema Reference - not adding reference to existing schemas

I am trying to add existing schema references to a new schema that I am creating.  Below is the code
resource "confluent_schema" "topic-schema" {
  schema_registry_cluster {
    id = data.confluent_schema_registry_cluster.public.id
  }

  rest_endpoint = data.confluent_schema_registry_cluster.public.rest_endpoint
  subject_name  = var.subject_name
  format        = var.schema_format
  schema        = file(var.schema_file_name)

  schema_reference {
    name         = "test1"
    subject_name = "test1.proto"
    version      = 2
  }

  schema_reference {
    name         = "test2"
    subject_name = "test2.proto"
    version      = 1
  }

  credentials {
    key    = var.schema_registry_credentails["schema_registry_key"]
    secret = var.schema_registry_credentails["schema_registry_secret"]
  }

  lifecycle {
    prevent_destroy = true
  }
}

After the schema gets created , I don't see the reference to the other schemas.  Both test1 and test2 are valid schema subjects that exist.

@bluedog13 thanks for creating an issue! It looks like there might be a typo in your config, could you try this one?
resource "confluent_schema" "topic-schema" {
  schema_registry_cluster {
    id = data.confluent_schema_registry_cluster.public.id
  }

  rest_endpoint = data.confluent_schema_registry_cluster.public.rest_endpoint
  subject_name  = var.subject_name
  format        = var.schema_format
  schema        = file(var.schema_file_name)

  schema_reference {
    name         = "test1.proto"
    subject_name = var.subject_name
    version      = 2
  }

  schema_reference {
    name         = "test2.proto"
    subject_name = var.subject_name
    version      = 1
  }

  credentials {
    key    = var.schema_registry_credentails["schema_registry_key"]
    secret = var.schema_registry_credentails["schema_registry_secret"]
  }

  lifecycle {
    prevent_destroy = true
  }
}

You might also want to take a look at multiple-event-types-proto-schema example.
Let me know if it helps!

Thanks.
Is the subject name in the child "schema_reference" block same as the subject_name in the "confluent_schema" block?

Yes, the above link is what I was referring too as well.  The subject names are different in the parent and child blocks.  The main one looks like the schema that is getting created and the child ones looks like the reference schema name blocks.
  subject_name = "customer-event-value"
  format = "PROTOBUF"
  schema = file("./schemas/proto/customer_event.proto")

  schema_reference {
    name         = "purchase.proto"
    subject_name = confluent_schema.purchase-v1.subject_name
    version      = confluent_schema.purchase-v1.version
  }
  schema_reference {
    name         = "page_view.proto"
    subject_name = confluent_schema.page-view-v1.subject_name
    version      = confluent_schema.page-view-v1.version
  }

That's right! It's a subject name that referenced schema belongs to. Also you might want to use
Option #2: Manage a single Schema Registry cluster in the same Terraform workspace
provider "confluent" {
  schema_registry_id            = var.schema_registry_id            # optionally use SCHEMA_REGISTRY_ID env var
  schema_registry_rest_endpoint = var.schema_registry_rest_endpoint # optionally use SCHEMA_REGISTRY_REST_ENDPOINT env var
  schema_registry_api_key       = var.schema_registry_api_key       # optionally use SCHEMA_REGISTRY_API_KEY env var
  schema_registry_api_secret    = var.schema_registry_api_secret    # optionally use SCHEMA_REGISTRY_API_SECRET env var
}

resource "confluent_schema" "avro-purchase-v1" {
  subject_name = "avro-purchase-value"
  format = "AVRO"
  schema = file("./schemas/avro/purchase.avsc")

  lifecycle {
    prevent_destroy = true
  }
}

Let me know if it works now.

I am confused.
The schema I am trying to create is:  var.subject_name = myschema.
The 2 reference schemas are

test1.proto
test2.proto

So is the below not correct
resource "confluent_schema" "topic-schema" {
  schema_registry_cluster {
    id = data.confluent_schema_registry_cluster.public.id
  }

  rest_endpoint = data.confluent_schema_registry_cluster.public.rest_endpoint
  subject_name  = var.subject_name. # myschema
  format        = var.schema_format
  schema        = file(var.schema_file_name)

  schema_reference {
    name         = "test1.proto"
    subject_name = var.subject_name
    version      = 2
  }

  schema_reference {
    name         = "test2.proto"
    subject_name = var.subject_name
    version      = 1
  }

  credentials {
    key    = var.schema_registry_credentails["schema_registry_key"]
    secret = var.schema_registry_credentails["schema_registry_secret"]
  }

  lifecycle {
    prevent_destroy = true
  }
}

OK what I'm saying is instead of
  schema_reference {
    name         = "test1"
    subject_name = "test1.proto"
    version      = 2
  }

  schema_reference {
    name         = "test2"
    subject_name = "test2.proto"
    version      = 1
  }

it should be something like
  schema_reference {
    name         = "test1.proto"
    subject_name = "bar"
    version      = 2
  }

  schema_reference {
    name         = "test2.proto"
    subject_name = "foo"
    version      = 1
  }

So the "name" and the "subject_name" should be different?
What actually does the "name" and subject_name" stand for in the schema_reference block?  Perhaps this is where the confusion is.

See the docs:

Thanks.
I did read this. I have gone through all the examples and documentation before implementing and creating this issue.
Having "subject_name" twice in the same block parent,  do they mean the same thing or different is where I am confused.  If they are different,  can the explanation in the above documentation be made more clear?

Oh seems like there's a typo in the docs, that should be the right version:
schema_reference - (Optional List) The list of referenced schemas (see Schema References for more details):

subject_name - (Required String) The name of the subject, representing the subject under which the referenced schema is registered.
name - (Required String) The name for the reference. (For Avro Schema, the reference name is the fully qualified schema name, for JSON Schema it is a URL, and for Protobuf Schema, it is the name of another Protobuf file.)
version - (Required Integer) The version, representing the exact version of the schema under the registered subject.

@bluedog13 does this doc make sense now?

For my example...... is this correct
I have 2 existing subjects. (below are the exact subject names)

Common.proto
Metadata.proto

I want to add them as reference.  Is the below correct?
schema_reference {
    name         = "Common"
    subject_name = "Common.proto"
    version      = 2
  }

  schema_reference {
    name         = "Metadata"
    subject_name = "Metadata.proto"
    version      = 1
  }

I think you might want
schema_reference {
    subject_name = "Common"
    name = "Common.proto"
    version      = 2
  }

  schema_reference {
    subject_name  = "Metadata"
    name = "Metadata.proto"
    version      = 1
  }

instead.

I am very lost.
Is "subject_name" just any random string?  If I am creating a new schema called "myschema-subject",  does this value need to be in the below block?
  schema_reference {
    subject_name  = "[Is this any random string/ what value should go here/ or myschema-subject]"
    name = "Metadata.proto"
    version      = 1
  }

subject_name - (Required String) The name of the subject, representing the subject under which the referenced schema is registered.

It will help, if this can be explained using my example.  I am finding it very hard to understand the documentation and referring to the same documentation here as answer is not helping me.
If we cannot continue the conversation using my example above - we can stop here.  Thanks for your time.

Sure thing, based on your explanation, it seems like you should set subject_name  = myschema-subject.
Are there any other subjects in your SR cluster?

cc @bluedog13

This is from the latest example

Observations

Lines 301 and 306 are not the same as line 296
page_view.proto and purchase.proto are file names, but the path to the file name is not given, just the file name (lines 301 and 306).  So are they just random string?

So in my case, below cannot be true
subject_name  = myschema-subject

Below is the screen shot

Oh I see, I didn't expect a subject called Common.proto (e.g., I feel like just Common / common are more popular).
OK in this case it might be a good idea to try:
schema_reference {
    subject_name = "Common.proto"
    name = "common.proto"
    version      = 2
  }

  schema_reference {
    subject_name  = "Metadata.proto"
    name = "metadata.proto"
    version      = 1
  }

page_view.proto and purchase.proto are file names, but the path to the file name is not given, just the file name (lines 301 and 306).

You might find more details here but AFAIK it's just the name of the file for proto schemas.

Lines 301 and 306 are not the same as line 296

Correct, AFAIK it might be possible to reference schemas from different subjects which is why they're different.
Let me know if it helps!

cc @bluedog13

It's not working for me yet.  I am in the process of creating new schemas and adding reference.

Cool, I'd be interested to look at the example of your schema so I could reproduce / fix the problem.

This isn't working for me.  I tried a complete new example.
Below is my workflow.

Created a new schema using the file ./schemas/proto/mytopic-value_v1.proto

A new schema by name (subject_name)  "mynamespace-myapp-mytopic-dev-private-value" was created using the above file  (works as expected)

Created a second schema that references the above schema (with subject_name as mynamespace-myapp-myothertopic-dev-private-value)

The TF plan output shows the reference details in this new schema

+ schema_reference {
          + name         = "mytopic-value_v1.proto"
          + subject_name = "mynamespace-myapp-mytopic-dev-private-value"
          + version      = 6
        }

But the newly created schema does not seems to include the reference in the schema registry

Not sure what I am missing.

Thanks for including an example! I'll try to look a little bit later today / tomorrow.

If it helps, the contents of the 2 proto files are

$ cat mytopic-value_v1.proto

syntax = "proto3";

package io.confluent.developer.proto;
option java_outer_classname = "PurchaseProto";

message Purchase {
  string item = 1;
  double amount = 2;
  string customer_id = 3;
}

$ cat myothertopic-value_v1.proto

syntax = "proto3";

package io.confluent.developer.proto;
option java_outer_classname = "PaymentDetailsProto";

message PaymentDetails {
   bool credit = 1;
   bool in_person = 2;
}

Update
Even though the schema reference is not being shown in the file (as indicated above), when you try to destroy it without deleting the referenced schema first, one's see the below error (as expected)
##[error]╷
│ Error: error soft deleting Schema "lsrc-vkjz5/mynamespace-myapp-mytopic-dev-private-value/100642": 422 Unprocessable Entity: One or more references exist to the schema {magic=1,keytype=SCHEMA,subject=mynamespace-myapp-mytopic-dev-private-value,version=6}.

My guess is - schema reference functionality is not updating the contents of the .proto file in the Schema Registry with references when it's getting deployed. This may be the issue on the Terraform side.

@bluedog13 thanks for the message? I'm currently a little bit busy with all the other issues but will try to take a look at this one soon.

In your updated examples you added the import statement in the .proto files.  This is what was missing.
This confirms that adding schema reference in the Terraform is not the solution alone, but the "import" statement/s must also be added in the .proto file.

Oh that's right, does it work when you add imports?
BTW there's also a somewhat relevant https://github.com/confluentinc/terraform-provider-confluent/issues/181#issuecomment-1422124935

cc @bluedog13 feel free to close this issue if our updated examples work for you now 👌

Seems to work - because I was confused as to how without import statement in the protofile the schema reference was working earlier, and TF was not (or does not) add that as well.
I'll close this because the confusion is now cleared.


DDS-XTypes support in the Sniffer

The rs-dds-sniffer tool discovers topics that share TypeObject during the discovery phase (dynamic objects do that by default, topics from IDL should be generated with the -typeobject flag).
Upon topic discovery, the sniffer creates a reader for the topic and starts receiving and printing samples to screen
This behavior can be controlled using the command line

Hey @OhadMeir ,
Please align with origin/dds so we can properly see the new changes, thanks
This branch has conflicts that must be resolved

Hey @maloel , It's approved on my side, waiting for your review.


VsChromium never finishes opening a project (directory traversal)

If there is an error when enumerating files in a project directory, the directory traversal operation never finishes and VsChromium is not ususable (index is never built)

Fixed in https://github.com/chromium/vs-chromium/releases/tag/v0.9.34


cmake: extract config from toplevel CMakeLists.txt

This does not build man pages correctly.

Fixed.

Thanks.


Generate Symbol.dispose on classes

Implements https://github.com/rustwasm/wasm-bindgen/issues/4117 (Explicit Resource Management support).
The main things I can think of for additional tests here are:

A basic Deno-only test involving using.
The polyfill mechanism (not worth it given the simplicity)

Gating behind an experimental flag I think would be more trouble than it's worth, for a few reasons:

At worst, it is a no-op (Symbol.dispose exists uniquely, or not at all).
Integrating tools (wasm-pack, basically) would need to account for said flag.
While the overall proposal is at stage 3, Symbol.dispose is on the far side (in the sense that the symbol name and meaning have been settled for several years).

At worst, it is a no-op (Symbol.dispose exists uniquely, or not at all).

My worry is that if something changes, for whatever reason, we would need a breaking change.

Integrating tools (wasm-pack, basically) would need to account for said flag.

Indeed. We could do it via an environment variable, like many other features.

While the overall proposal is at stage 3, Symbol.dispose is on the far side (in the sense that the symbol name and meaning have been settled for several years).

Unfortunately I'm not well versed in the JS ecosystem at all, my experience so far has been that things change a lot. From the looks of it I agree that this is very unlikely to change, but I don't want to bet on it.

Oh, right, environment variables - yep, I'm fine with that, provided it's discoverable.


Added function to rotate a model

Now you're able to rotate a model entity around a specific axis
Added the "Axis" enum to easily select the axis

Just found out there is already a Axes Enum. I will change the rotate function.


Clear does not support filters or limit

According to the README, a DELETE request on the resource list view has this effect:

Delete all items from the collection matching the context and/or filters.

However, when I tried locally, it deletes everything and ignores the filter and/or limit.

I tried with the rest-layer-mongo storage backend btw.

It should also be noted that sub-resources that link to a parent object, are not deleted when deleting the parent object. E.g. in case of the #129 schema,
$ bat DELETE :2015/api/as

will not delete any of the "bs".

There is no support for cascading deletion if this is what you are referring to.
The delete with filter bug definitely need to be fixed.

@smyrman For the cascading deletion case, this is stated on the Rest-Layer documentation site as:
□ "Cascading deletes on sub resources". However I hope this is still on the radar.

Yes, it is not yet implemented.

It looks like at least part of the problem is here (maybe all of it):
https://github.com/rs/rest-layer/blob/0df312935ab2631d1813920adf9bb04b328dd071/rest/routing.go#L201
As you can see, there is a case for GET and HEAD, but no case for DELETE. The DELETE case should handle limit, page, offset and filter, but ignore fields. In order to reuse as much code as possible, one solution could be to handle the field selectioon bit first, and then use a fall-through:
	case "GET":
		if fields := r.Params.Get("fields"); fields != "" {
		p, err := query.ParseProjection(fields)
		if err == nil {
			err = p.Validate(rsc.Validator())
		}
		if err != nil {
			return nil, &Error{422, fmt.Sprintf("Invalid `fields` parameter: %s", err), nil}
		}
		q.Projection = p
		fallthrough
	case "DELETE":
		limit := -1
		if l, found, err := getUintParam(r.Params, "limit"); found {
			if err != nil {
				return nil, &Error{422, err.Error(), nil}
			}
			limit = l
		} else if l := rsc.Conf().PaginationDefaultLimit; l > 0 {
			limit = l
		}
		// ...

Of-course, splitting out in some re-usable functions (or methods) with some built-in error handling could work equally well.

And because I never remember how a fallthrough works, here is a reminder:

https://play.golang.org/p/h0V-ApTbZa

Of-course, splitting out in some re-usable functions (or methods) with some built-in error handling could work equally well.

I think reusable functions will be better, given that we will need to put HEAD, in the switch above.

right, probabably a more readable option anyway 👍

I have started on this a while back. The fix itself is really fast, but there are a few breaking tests that have taken some time to update. Mostly just updating them to test the external (HTTP) interface instead of the internal route.

@rs, on the linked issues in the -mem/-mongo repos, I think we should let Clear handle Window (limit/offset) equally to how it's handled in Find.
If there is a use-case for allowing Clear to delete all resources (matching a query) we could let the parsing in rest-layer ignore the resource default limit during parsing. Alternatively, we could allow limit=-1 to be set by the user DELETE foo/1?filter={foo:"baz"}&limit=-1.
Any preferences?
As a FYI, this is my current test output for DELETE:
% go test -run TestDeleteList ./rest                                        :(
--- FAIL: TestDeleteList (0.00s)
    --- FAIL: TestDeleteList/limit=2 (0.00s)
    	method_test.go:61: Expected HTTP header["X-Total"][0] to equal "2", got "5"
    	method_delete_test.go:46: Expected resource 'foo' to contain 3 items, got 0
    --- FAIL: TestDeleteList/filter={foo:"odd"},limit=2,skip=1 (0.00s)
    	method_test.go:61: Expected HTTP header["X-Total"][0] to equal "2", got "3"
    	method_delete_test.go:46: Expected resource 'foo' to contain 3 items, got 2
    --- FAIL: TestDeleteList/limit=2,skip=1 (0.00s)
    	method_test.go:61: Expected HTTP header["X-Total"][0] to equal "2", got "5"
    	method_delete_test.go:46: Expected resource 'foo' to contain 3 items, got 0
    --- FAIL: TestDeleteList/filter={foo:"odd"},limit=2 (0.00s)
    	method_test.go:61: Expected HTTP header["X-Total"][0] to equal "2", got "3"
    	method_delete_test.go:46: Expected resource 'foo' to contain 3 items, got 2
FAIL
FAIL	github.com/rs/rest-layer/rest	0.020s

I will post an early PR for my work so far for the test code.

To make sure I understand what you are proposing, a DELETE on a resource list would only delete up to the default limit number of items? Do you feel like it's what most would expect?

To start with the obvious, I think users should be able to expect the following:

DELETE /foo?sort=-created&limit=1 to delete the last inserted (newest) item.
DELETE /foo?sort=created&limit=2 to delete the first two inserted (oldest) items.
A programatic call rsc.Delete(ctx, query.Query{Sort: query.Sort{{Name:"created", Reversed: false}}, Window:query.Window{Offset:1,Limit:1}} to delete the second oldest item.

To make sure I understand what you are proposing, a DELETE on a resource list would only delete up to the default limit number of items? Do you feel like it's what most would expect?

I am not sure what most users would expect in the case of a default limit for DELETE, which is also why I want your input on this. There are also some other concerns besides user expectations, such as which is the safest (least destructive) assumption.
I actually see three options now, where I now like B the best:
A: Ignore the resource default limit for list DELETE (clear); delete all matching items. This is perhaps one of the more intuitive options, but also the one that would lead to the largest accidental data loss if the user expected the
B: require limit to always be set for list DELETE queries, allow limit=-1 to be set to indicate no limit. This is the most explicit option, and probably also the safest option.
C: respect  the default resource limit, allow limit=-1 to be set to indicate no limit. Also among the safer assumptions, as less data would be lost on accidental requests (e.g. spelling errors in the world "limit").
To show the consequence of each variant in an example, this is what option A, B and C would mean for requests against a resource foo with a default limit of 25:

DELETE /foo
A: deletes all items in foo
B: returns a 422 error message
C: deletes 25 fist listed items by default ordering
DELETE /foo?sort=-created&skip=10
A: deletes all except the latest 10 items in foo
B: returns a 422 error message
C: deletes item 11-35
DELETE /foo?sort=-created&page=2
A: returns a 422 error message
B: returns a 422 error message
C: deletes item 26-50
DELETE /foo?filter={foo:"baz"}
A: deleted all items where field foo  equals "baz" in foo
B: returns a 422 error message
C:  deleted the first 25 items by default ordering where field foo  equals "baz" in foo
DELETE /foo?filter={foo:"baz"}&limit=-1
A: returns a 422 error message
B: deleted all items where field foo  equals "baz" in foo
C:  deleted all items where field foo  equals "baz" in foo

If not A, B would be my prefered as it is explicit. With B, in dev you could assume A is in place as your dev env might not have enough element to show actual B’s behavior.
But I would assume A is the right behavior in the first place.

I also prefer A, as it is most expected behavior, inline with how actual DB cli tools work.

also prefer A, as it is most expected behavior, inline with how actual DB cli tools work.

Well the DB CLI also do not appply the default limit on a Find reqiest.
Anyway I can start with A for this issue, and maybe we can make it more sequre later, e.g. through resource config, if necesarry.

@smyrman I think that we don't need to care about security/correctness at this level. After all developer of the end product will need to make tests of his rest-layer API usage.

@smyrman I think that we don't need to care about security/correctness at this level.

@Dragomir-Ivanov, security from shooting yourself in the foot, is never a bad thing to have, but I suggest we discuss that in a separate issue, not here.
It's probably more along the lines of adding a soft-delete, actions with undo abilities, or somthink in that ballpark, rather than anyhing related to parsing of filters limit.
I'll link the issue if I create one; I don't have any concrete suggestions nor urgent nedds for it aym.


Slashes with text ellipsis overflow behaves differently than Android (Desktop)

When I have got a Text with slashes (like a file path) as text that doesn't fit the current screen, in the Android version of compose the string gets cut partially and not the whole word.  The Desktop version cuts the whole word instead until the slash.
Desktop: "FooBar" is not shown, just the ellipsis.

Android: "Foo" is shown + Ellipsis

Code sample:
MaterialTheme {
    Text(
        text = "/Path/To/A/Fantastic/Path/Named/FooBar",
        overflow = TextOverflow.Ellipsis,
        fontSize = 23.sp,
        maxLines = 1,
    )
}

TextOverflow.Clip behaves in equally in both platform by cutting the whole word.

I'm testing on windows now and surprisingly it works properly there, so seems something related to the linux implementation (no idea about macOS).

Tried on MacOS. It works same way as your desktop example

Also bumped to this. An example from Android: https://developer.android.com/jetpack/compose/text#text-overflow
@Composable
fun OverflowedText() {
    Text("Hello Compose ".repeat(50), maxLines = 2, overflow = TextOverflow.Ellipsis)
}

But on desktop, it seems it tends to replace the whole word by ellipsis often. I can have Compo... but after I reduce the size of the window a little, it becomes not Comp... but just .... Increasing the size makes it Compos... and Compose..., so it's not always reproduced.

Any updates on this? Seems like very strange behavior to cut off the text at a "/" or "-" on desktop.
Without overflow = TextOverflow.Ellipsis:

With overflow = TextOverflow.Ellipsis and maxLines = 1:

@Sage-Kreiter Can you please provide code snippet to reproduce this problem?

Here is a Box with Text that overflows
    Box(
        modifier = Modifier
            .size(300.dp)
            .border(width = 1.dp, color = MaterialTheme.colors.secondaryVariant)
    ) {
        Text(
            text = "Baconipsumdolorametjowlfatbackribeyestripsteak,sirloinbiltonghamhock",
            maxLines = 1,
            overflow = TextOverflow.Ellipsis
        )
    }

Here is a Box with text that overflows but contains a space as the 3rd character (same happens with "/" and "-")
    Box(
        modifier = Modifier
            .size(300.dp)
            .border(width = 1.dp, color = MaterialTheme.colors.secondaryVariant)
    ) {
        Text(
            text = "Ba onipsumdolorametjowlfatbackribeyestripsteak,sirloinbiltonghamhock",
            maxLines = 1,
            overflow = TextOverflow.Ellipsis
        )
    }

This behaviour is defined in skia, Compose itself doesn't control it. It has been already fixed in this commit - https://skia.googlesource.com/skia.git/+/0d31aa1f49cb8cfd790c44d92a9a023839524865
So, it should be fixed once we migrate to new skia version

Great. Thanks for looking into this

Which release can I find the fix?

It will be available in 1.6.0

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Leaderboard for Flippers

To spotlight flippers we should make a table where one can see the best addresses made best profits
Headers could be pretty much the same as we have the current Flippers but global scale.
Query might be a bit complicated?
Goal would be to see who or which flipper follow their signal 🚥🚦 and trading activity
Route could be /flippers and linked into stats

stats changed


Launch behavior should default to same tab

MUMMNG-3294
In this PR:

Changes the default behavior for widget launch buttons to open in same window/tab

Consider enhancing directives.md to document the default behavior when the target attributes aren't set on the directives.


Delay removal of flow-restore-wait

Until a set of "essential" flows has been installed. At the moment, we include NetworkPolicy flows (using podNetworkWait as the signal), Pod forwarding flows (reconciled by the CNIServer), and Node routing flows (installed by the NodeRouteController). This set can be extended in the future if desired.
We leverage the wrapper around sync.WaitGroup which was introduced previously in #5777. It simplifies unit testing, and we can achieve some symmetry with podNetworkWait.
We can also start leveraging this new wait group
(flowRestoreCompleteWait) as the signal to delete flows from previous rounds. However, at the moment this is incomplete, as we don't wait for all controllers to signal that they have installed initial flows.
Because the NodeRouteController does not have an initial "reconcile" operation (like the CNIServer) to install flows for the initial Node list, we instead rely on a different mechanims provided by upstream K8s for controllers. When registering event handlers, we can request for the ADD handler to include a boolean flag indicating whether the object is part of the initial list retrieved by the informer. Using this mechanism, we can reliably signal through flowRestoreCompleteWait when this initial list of Nodes has been synced at least once.
Fixes #6338

/test-flexible-ipam-e2e
/test-vm-e2e

/test-flexible-ipam-e2e

/test-flexible-ipam-e2e

/test-flexible-ipam-e2e

I go the following errors for test-flexible-ipam-e2e:
    --- FAIL: TestAntreaIPAM/testAntreaIPAMStatefulSetDedicated (19.02s)
    --- FAIL: TestAntreaIPAM/testAntreaIPAMStatefulSetShared (19.03s)

However, I have also observed the same test failures for another PR unrelated to this one (#6321)

/test-all

E2e tests on a Kind cluster on Linux with non default values and E2e tests on a Kind cluster on Linux with all features enabled are failing consistently, with a lot of individual unit test failures. I am investigating. There may be some "timing" assumption I am breaking with this change. I'm trying to reproduce locally. Best guess would be something to do with ProxyAll...

E2e tests on a Kind cluster on Linux with non default values and E2e tests on a Kind cluster on Linux with all features enabled are failing consistently, with a lot of individual unit test failures. I am investigating. There may be some "timing" assumption I am breaking with this change. I'm trying to reproduce locally. Best guess would be something to do with ProxyAll...

So the issue seems to be that until flow-restore-wait is removed, the Agent may not be able to reach the antrea Service when proxyAll is enabled (we remove kube-proxy in that case in the CI tests), but with this change, flow-restore-wait will not be removed until the Pod network is "ready", which will not happen until the NP controller has started its watchers, and that depends on antrea Service reachability.
So there is a chicken and egg problem here.
@tnqn what's your take on this? I don't have a great solution, even though I could always add a timeout:
flowRestoreCompleteWait.WaitWithTimeout(10*time.Second)
if err := agentInitializer.FlowRestoreComplete(); err != nil {
        return err
 }

Because it blocks, it would still delay a few key operations, such as starting the apiserver, which answers liveness probes.
BTW, I thought that if the watch couldn't fail in a reasonable amount of time, we would fallback to data stored in files. Do you know the timeout because I didn't see it happen during that 30s time window:
I0522 00:17:47.808376       1 agent.go:789] "Checking if AntreaProxy is ready"
I0522 00:17:47.809998       1 agent.go:794] "AntreaProxy is ready"
I0522 00:17:47.810514       1 agent.go:850] "Waiting for flow restoration to complete"
I0522 00:17:47.812074       1 egress_controller.go:491] Starting AntreaAgentEgressController
I0522 00:17:47.813086       1 shared_informer.go:311] Waiting for caches to sync for AntreaAgentEgressController
I0522 00:17:47.813839       1 networkpolicy_controller.go:599] Waiting for Antrea client to be ready
I0522 00:17:47.814993       1 networkpolicy_controller.go:610] Antrea client is ready
I0522 00:17:47.814993       1 local_ip_detector_linux.go:59] Starting localIPDetector
I0522 00:17:47.815206       1 networkpolicy_controller.go:625] Waiting for all watchers to complete full sync
I0522 00:17:47.815206       1 ip_scheduler.go:219] "Starting Egress IP scheduler"
I0522 00:17:47.816925       1 networkpolicy_controller.go:959] Starting watch for AppliedToGroup
I0522 00:17:47.817019       1 local_ip_detector_linux.go:114] Listed existing IP address: map[<IP_ADDRESS>:{} <IP_ADDRESS>:{} <IP_ADDRESS>:{} ::1:{} fc00:f853:ccd:e793::2:{} fe80::42:acff:fe12:2:{}]
I0522 00:17:47.817587       1 networkpolicy_controller.go:959] Starting watch for AddressGroup
I0522 00:17:47.818145       1 networkpolicy_controller.go:959] Starting watch for NetworkPolicy
I0522 00:17:47.915617       1 shared_informer.go:318] Caches are synced for AntreaAgentEgressController
I0522 00:17:47.915906       1 route_linux.go:1176] "Restoring IP routes and rules for Egress"
I0522 00:17:47.917184       1 egress_controller.go:1212] Starting watch for EgressGroup
I0522 00:17:47.918618       1 egress_controller.go:368] "Received service CIDR update"
I0522 00:17:47.934073       1 stream.go:132] "Sent outbound message" dataLength=16
I0522 00:17:47.950976       1 stream.go:132] "Sent outbound message" dataLength=120
I0522 00:17:47.954251       1 stream.go:132] "Sent outbound message" dataLength=16
I0522 00:17:47.956163       1 stream.go:132] "Sent outbound message" dataLength=16
I0522 00:17:50.849714       1 stream.go:132] "Sent outbound message" dataLength=8
I0522 00:17:55.848094       1 stream.go:132] "Sent outbound message" dataLength=8
I0522 00:18:00.851341       1 stream.go:132] "Sent outbound message" dataLength=8
I0522 00:18:05.849188       1 stream.go:132] "Sent outbound message" dataLength=8
I0522 00:18:10.849493       1 stream.go:132] "Sent outbound message" dataLength=8
I0522 00:18:15.850687       1 stream.go:132] "Sent outbound message" dataLength=8
E0522 00:18:17.408533       1 server.go:446] "Cannot process CmdAdd request for container because network is not ready" err="timeout waiting for group" container="0c2a27d6d23d266ff9c3de1de2719b5ab8cd133ea5d40a73a47cd646cff8b7d9" timeout="30s"
I0522 00:18:17.415218       1 proxier.go:1010] syncProxyRules took 109.011µs
I0522 00:18:17.415480       1 runner.go:220] antrea-agent-proxy: ran, next possible in 1s, periodic in 30s

So the issue seems to be that until flow-restore-wait is removed, the Agent may not be able to reach the antrea Service when proxyAll is enabled (we remove kube-proxy in that case in the CI tests), but with this change, flow-restore-wait will not be removed until the Pod network is "ready", which will not happen until the NP controller has started its watchers, and that depends on antrea Service reachability.
So there is a chicken and egg problem here.

It reminds me that I encountered this problem as well. Since we have a separate antreaClientProvider, do you think we could break the chicken-egg problem by not relying on the proxy, resolving the service to endpoint IP directly via something like https://github.com/kubernetes/kubernetes/blob/11f37d757fc0b710245446c80a8c9578ce2c02f1/staging/src/k8s.io/kube-aggregator/pkg/apiserver/resolvers.go#L33?

It reminds me that I encountered this problem as well. Since we have a separate antreaClientProvider, do you think we could break the chicken-egg problem by not relying on the proxy, resolving the service to endpoint IP directly via something like https://github.com/kubernetes/kubernetes/blob/11f37d757fc0b710245446c80a8c9578ce2c02f1/staging/src/k8s.io/kube-aggregator/pkg/apiserver/resolvers.go#L33?

Thanks for the idea @tnqn, I will try it.
It is indeed different from the kubernetes Service case, since in this case we do have access to the K8s API (user has to provide an override) and hence we have access to the list of Endpoints.

/test-all
/test-vm-e2e
/test-windows-all
/test-flexible-ipam-e2e

/test-flexible-ipam-e2e

/test-flexible-ipam-e2e


Allow mapping over all schema fields

I've had to modify schemas at once a few times, and I don't think there's a clean way of doing it?
This is a proposal for a new map method on a schema, that returns a new schema after mapping over each key.
Todo:

[ ] Find out if this is useful
[ ] Tests
[ ] Figure out if we should provide options, such as mapping over all nested fields as well?
[ ] Document this

Closing due to being stale. Please open a new PR with a test and documentation if anyone still wants this.


  They would've gotten pull requests emails.  Also the slack channel.

Although I wouldn't suspect that someone would be that malicious.  Since someone's CC is tied to it, it's better safe than sorry.

yea i added a new key to all projects that used it then deleted the key, I need to get better habits when it comes to security. thats the second time I did something like that recently.


Unable to plan a path on the elevation map

Hello
I am able to publish the elevation map on the /elevation_map_raw topic using elevaton_mapping pkg. However when I am launching the art_planner.launch, I am getting the following error.
Please help me to resolve the issue. Thanks

Rviz Screenshot:

Goal Published on /art_planner/plan_to_goal/goal topic:

My params.yaml
params.txt

@umsarmy  How did you build ode?

Hi @umsarmy.
It appears that your height map is too small to be used with the prm_motion_cost version of the planner. It requires a certain height map size to properly do CNN inference.
Please increase your height map resolution or use the lazy_prm_star_min_update version of the planner.


add 'divisible by' test support

divisible by checks if a variable is divisible by a number; it also
has alias divisibleby
{% if loop.index is divisible by(3) %}
    ...
{% endif %}

Why don't you use the modulo comparison ?
{% if loop.index % 3 == 0 %}
    ...
{% endif %}

Just found Twig has a built-in divisible by support, so I committed this PR. Now I will close it.