PMML Support via VerticaPy

Currently PMML Model import and predictions are only supported through SQL. Request for this feature via VerticaPy.
For users making PMML models through Python (ex: sklearn), they have to go back and forth between Python and SQL to use the models in Vertica. Having VerticaPy support makes this process more seamless

@oualib @PriyankaMF as discussed

What should we do? Currently we support the import and export from the server side. We need to have the 'import local' option to be able to make it easier in VerticaPy.


Bug in placing stairs

Second stairs from left side are not correct. I tried placing from every side, it was always the same. It's correct only if i remove stairs in other side corner:

I play minecraft forge 1.18.2.

should have been fixed in 2.0.0.

Well, i stopped using your mod. Placing slabs horizontally on hoppers is impossible with your mod if hoppers are in the same Y as me.  Add option - e. g, placing something while holding a keyboard key would place it as default.
I downloaded your mod to place carpets on ceilings. But since placing everything else is too much hard, i don't want it. Please, create another mod for placing carpets on ceiling only.

Add option - e. g, placing something while holding a keyboard key would place it as default.

MF that's been an option in the mod for months. check your keybinds.

I have forge in minecraft, forge isn't installed in windows and config in minecraft for your mod in grayed out. I downloaded again your mod on www.curseforge.com/minecraft/mc-mods/additional-placements/files/5898057, i got .jar. I opened .jar with 7zip. Which files and folders should i delete in order to have only carpet on ceiling function with your mod?

No. You don't open the mod with 7zip and you don't delete any files from it. You open the config files in your config folder and use the provided configuration options.

I don't find config folder for mods. Do you know where it is for minecraft launched with TLauncher?

Oh, yes, sorry. I have additionalplacements-common.toml and additionalplacements-client.toml in \config, i opened then but i don't see what's the key for placing blocks as default. And what do i have to change to use you mod only for placing carpet on ceiling?

i don't see what's the key for placing blocks as default.
that's because keybinds are always managed from the controls menu, in the in-game options menu. You don't need to mess around with the config for that unless you're trying to change the default behavior from on to off.

what do i have to change to use you mod only for placing carpet on ceiling?
neither of the configs you listed - you're going to want additionalplacements-startup.toml, and to simple disable all other block types inside of it. All the config options are commented, and I would suggest using an app with syntax highlighting like notepad++ to edit so it's easier to read and see what you need to do.


PerceiverResampler missing some LayerNorms?

Hey, it feels like PerceiverResampler is missing some LayerNorms?
it seems to me we should layer-norm x before sending to attentions loop, and may be add layer-norm to ff(latents) + latents?

Indeed I'll add it soon
Lol, just finished building it

@inspirit all done :) https://github.com/lucidrains/flamingo-pytorch/releases/tag/0.0.6

layernorm for feedforward is here https://github.com/lucidrains/flamingo-pytorch/blob/main/flamingo_pytorch/flamingo_pytorch.py#L14

@inspirit hmm, that's the way Perceiver IO had it, and I figured with Oriol on their team, they would use the exact same architecture https://github.com/lucidrains/perceiver-pytorch/blob/main/perceiver_pytorch/perceiver_io.py#L33

@inspirit but you are right, if the media comes from the output of the final layernorm in the transformer (or otherwise), then it is redundant 🤔  i'll make it an option some time next week :)

I am talking about x here:
https://github.com/lucidrains/flamingo-pytorch/blob/932d2a0997b436d7c6c91d29c92d989d4fb80000/flamingo_pytorch/flamingo_pytorch.py#L104
you pass it later to different attention layers without it being modified so its probably make sense to simply norm it once
after adding time_pos_emb


Feat/fix parser

Purpose
Fix the broken parsing for the follow up questions in current version. This version does not decouple the components or introduces code optimizations.
It minimally varies color scheme and the rendering format of follow up questions (as shown in GIF)
Does this introduce a breaking change?
[ ] Yes
[ x] No

Pull Request Type
What kind of change does this Pull Request introduce?
[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ x] Other... Please describe: cosmetic changes

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code
No test was added

What to Check
Follow up questions are properly rendered, as displayed in the GIF

Does it work when it's not streaming? As I recall there is a separate path for non-streaming mode

Yes! Uploading gif to teams since it's too large.

Love the comments, thank you!


Define Interface

I've set up an interface directory where we can mirror the interface we had in Repy.
This includes:

file operations
networking
time related operations
misc (locks etc)

Let's find equivalents in rust for these functions and wrap them to expose for use in safeposix-rust.

File, Time and, Misc are done for now, but may need some slight tweaks. I'll also be adding a new interface "pipe" for pipes shortly. Networking will be tackled in a few weeks.
@JustinCappos we talked about adapating this from Repy a few times at the meeting, and your concern that we were adapting things that we don't really need to.
Time and Misc both just generally expose things that we need without adding much overhead, but File does some of the stuff repy does with Files (keeping an open file list, write/readat, etc). I'd love to have your opinion on if these things are worthwhile.
Here's a link to the File interface. Can you give me any thoughts?

You don't need readat / writeat, etc. unless it simplifies your code for
some reason.  You should decide what interface makes sense for you.
On Sat, Jul 10, 2021 at 1:40 AM Nicholas Renner @.***>
wrote:

File, Time and, Misc are done for now, but may need some slight tweaks.
I'll also be adding a new interface "pipe" for pipes shortly. Networking
will be tackled in a few weeks.
@JustinCappos https://github.com/JustinCappos we talked about adapating
this from Repy a few times at the meeting, and your concern that we were
adapting things that we don't really need to.
Time and Misc both just generally expose things that we need without
adding much overhead, but File does some of the stuff repy does with Files
(keeping an open file list, write/readat, etc). I'd love to have your
opinion on if these things are worthwhile.
Here's a link to the File interface
https://github.com/Lind-Project/safeposix-rust/blob/main/src/interface/file.rs.
Can you give me any thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Lind-Project/safeposix-rust/issues/1#issuecomment-877350180,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGRODYQX3FB24NHJBCKICDTW4YCVANCNFSM45P2X4YA
.


Add docs flake, include spago docs and flake in readme

Closes #382
Closes #384

Docs generated by flakes don't get support searching, as it's much more involved than just invoking purs docs
https://github.com/purescript/spago/blob/d8ed94ee440aca6544c6e43d9874a0886ec855e9/src/Spago/Build.hs#L468-L476

@jy14898 I think I've come up with a good way of taking care of that issue


XN Tracking: Fragment handling IPv4

Related information
Scope - P4 DASH pipeline. Requires extending the conntrack table key with Frag ID and using it instead of L4 ports.

What can we do to assist in unblocking this?
Issue has been here for some months now @venkat-pullela-keys

Handle via behavior of the NIC; frag handling s/be handled by the NIC with the pipeline to see the full packet.  Frag packet incoming, we do not have a method to obtain the correct hash, b/c the L4 header isn't present.  K to close

IP fragmentation; (jumbo for example) if split into 2, the 2nd fragmented packet will not have the header (L4 info) in order to perform the 5-tuple hash / steering to the correct queue.
Could do virtual reassembly?  Possible but complicated. Packets may not work as expected.
DPU contains functionality of NIC, s/be able to handle.  NIC is doing reassembly prior to the hash, although buffer would be needed.
Will this happen prior to the pipeline?  May be vendor independent.
If he has time, @r12f  might be able to research / confirm the IP fragmentation requirement.


Cleaning up _runAsyncMain

Relanding; https://github.com/apple/swift/pull/40661.
I'm making two cleanups here. First, the closure going into
_runAsyncMain needs to be @Sendable or passing it to the task is not
safe. This will also result in a warning being emitted.
Second, I'm making the function @usableFromInline and internal. The
function is part of ABI, so it can't be pulled out entirely, but we don't
want people using it directly.
rdar://74942340

@swift-ci please test


Bump up Mroonga version

MariaDB version bumping is not needed?

No need to do it. latest versio is not changed since then.


Update integration docs

correct the 'create a tile' link to point to the right page
What does this PR do?

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] If the PR doesn't need to be tested during QA, please add a qa/skip-qa label.

@FlorentClarret could you help me merge this?

@FlorentClarret could you help me merge this?

I'll merge this later today, as soon as the freeze is lifted 🙂


Adding commentary to the game

I am thinkibg of adding vasic commentary to the game. Any way i can do that?

@brainsor What exactly do you mean? You can try explaining your idea here?


[SPARK-27586][SQL] Improve binary comparison: replace Scala's for-comprehension if statements with while loop

…sion if statements with while loop
replace for-comprehension if statement with while loop to gain better performance in TypeUtils.compareBinary
add UT to test old version and new version comparison result
the perf result is attached to the jira issue

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@woudygao Thanks for your work. Can you please update the PR title as [SPARK-27586][SQL] Improve binary comparison: replace Scala's for-comprehension if statements with while loop?

ok to test

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10329/
Test PASSed.

Test build #105039 has started for PR 24494 at commit 2110000.

Test build #105039 has finished for PR 24494 at commit 2110000.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105039/
Test PASSed.

Can you also update the PR description? You can take a look other PRs and follow the style.

cc @cloud-fan @dongjoon-hyun

Retest this please.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10374/
Test PASSed.

Test build #105083 has started for PR 24494 at commit 2110000.

Test build #105083 has finished for PR 24494 at commit 2110000.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105083/
Test PASSed.


Enabling optimization.runtimeChunk causes Karma to find no specs

Operating System: Win10
Node Version: 12.7.0
NPM Version: 7.4.0
webpack Version: 5.21.2
karma-webpack Version: 5.0.0

Expected Behavior
All specs run
Actual Behavior
No specs run
Code
// webpack.config.js
{
  mode: "development",
  optimization: {
    runtimeChunk: true
  }
}

How Do We Reproduce?
I haven't put together a separate minimal repro but I'm basically using the config that used to be suggested under the heading "Alternative Usage" in the README:
//// `./src/tests/all_tests.ts`

// Webpack will parse all TS files under the provided directory that match the regex
const testsContext = require.context("../app/", true, /\.spec\.ts$/);

// Run each spec script
testsContext.keys().forEach(testsContext);

This file is passed to the Karma config files:
config.set({
        files: [
            // This would bundle each test separately, blows up runner memory usage
            // { pattern: "./src/app/**/*.spec.ts", type: "js" },
            // Per https://github.com/ryanclark/karma-webpack#alternative-usage
            { pattern: "./src/testing/all_tests.ts", type: "js" },
       ],

       webpack,

        // preprocess matching files before serving them to the browser
        // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
        preprocessors: {
            // "./src/app/**/*.spec.ts": "webpack"
            "./src/testing/all_tests.ts": "webpack"
        },
});

When Karma is launched, Webpack bundles the tests and all deps into all_tests.####.js and creates a separate runtime script, but for some reason the specs do not execute.

I noticed that my config is no longer suggested in the README.  I can try switching back to passing each spec to Karma individually (the commented-out "blows up runner memory usage" line above) and if that fixes it (and no longer blows up memory), we can close the issue.

Update: I changed from the all_tests approach back to including individual spec files, and it did crash with an out-of-heap-memory error.  Looks like I'm stuck with one big bundle still, which means the issue persists.

Thanks for opening an issue, the out of memory error is something I've seen reported in the past, but we don't have any reproductions that allow us to debug / triage this at this time. If the project you're working on open source by chance, it would be nice to have a way for us to reproduce this.
Why is it that you are setting runtimeChunk to true ? It looks like internally karma-webpack is relying on the runtime path to specifically be "runtime.js". runtimeChunk true will change the path of the runtime file and then be unable to pickup and run the tests it expects to see under runtime.js.
If anything, we may want to limit the ability to set these optimization options in this version of karma-webpack as changing them will lead to unexpected failures such as this.
Though I may be ignorant of times where this is necessary, is there a need for this in your project?

Re: the memory error, the build is for a sizeable application with a few big dependencies.  The production bundle size is over 7MB, but the dev build with sourcemaps etc is closer to 60MB (using the default optimizer options in dev mode).
Unfortunately it's not open source.  It was already quite large when we started to add tests, so I can say that the plugin worked fine in "bundle per spec" mode until we had maybe a dozen total spec files.  I suspect that part of the problem is that a lot of the code under test uses a big dependency -- the cesium package is over 3MB and I use a lot of it so tree-shaking isn't very helpful.   Maybe some kind of chunk splitting / module federation in dev mode would let the various spec-bundles share vendor code?
Anyway re: runtimeChunk, I turned it on recently per this guide and, along with several other fixes from that link, I was able to cut roughly 1/3 of my dev build time.  I'm only using it in dev, not prod, and I'm certainly not attached to it -- if karma-webpack wants to force it to a particular value, then that would certainly make sense to me.  I just wanted to make sure that I reported the current (erroneous) behavior so that it can be addressed.

I agree, at least for the time being while we know that this causes the plugin to fail, we can just override any change to runtimeChunk and log a warning. I actually did make this change in v5.0.0 for entry as well. If you set the property, it will be removed and a warning will be logged.
I'll try and get that into 5.1.0 sometime this week.
I'll also make a project with a ton of dependencies and see if I can force the out of memory error to occur this week as well.


youtube live video and quality parameter

plz add quality parameter option and tell me how to play youtube live video with this player ????

This plugin is a UI for the video_player plugin.
So please either ask in the video_player plugin repository or use a different package for youtube videos: https://pub.dev/packages?q=youtube

This plugin is a UI for the video_player plugin.
So please either ask in the video_player plugin repository or use a different package for youtube videos: https://pub.dev/packages?q=youtube


Support for URDNA2015?

Is anyone working on adding support for the URDNA2015 RDF Dataset Normalization algorithm?
jsonld-java supports URGNA2012, but that's outdated...

Hi, please feel free to open PR.

I have an implementation of URDNA2015:
https://github.com/simon-greatrix/rdf-urdna

@simon-greatrix great, are you planning to release this under Apache 2 license and/or merge it into this project here?

Hi @simon-greatrix,
URDNA is a complementary technology to JSON-LD,  not needed to perform JSON-LD algorithms nor required by every user. It's a great extension that should be distributed as a standalone library.
Titanium is an open project and welcomes a contribution. Your implementation could be included as an extension (root project directory refactoring is needed) if:

Licensing, IPO, of your code is resolved. As far as I understand IPO holds your employer and it would be unfortunate to put whole Titanium code at risk in a case of unresolved relations
You plan to contribute to Titanium in the future and you are willing to maintain URDNA code

Anyway, you make me realize that it would be great to have a list of projects using and extending Titanium as part of the project's README.

@peacekeeper My employers decided to debate our entire open source strategy so it took a lot longer than expected. I have now released my URDNA implementation under Apache 2.
For the time being, I will be maintaining it as a separate library rather than as part of Titanium.

@simon-greatrix thanks a lot! I also did my own implementation just a few days before you mentioned yours: https://github.com/decentralized-identity/jsonld-common-java/tree/master/src/main/java/foundation/identity/jsonld/normalization
But I think I will use yours going forward. Closing this.


feat: Add extra newline after PR current body

Fix: #20
This fixes the issue when a tag is at the end of the PR current body.

Thanks for your contribution @dantehemerson. The fix is now available in version 2.1.3


built crx won't work when use<EMAIL_ADDRESS>

What happened?
when i use<EMAIL_ADDRESS>plasmo dev will work but plasmo built zip file won't work
Version
Latest
What OS are you seeing the problem on?
MacOSX
What browsers are you seeing the problem on?
Microsoft Edge
Relevant log output
Uncaught ReferenceError: __VUE_PROD_DEVTOOLS__ is not defined

(OPTIONAL) Contribution

[ ] I would like to fix this BUG via a PR

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

<EMAIL_ADDRESS>will work , from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>won't work


Add alias to StructTag for compatibility with old serialized json. (#74)_36

Motivation
Add an alias to StructTag for compatibility with old serialized json.
When the TypeTag add serde(rename = "u8"), this break the compatibility with old version, so add a alias = "U8" for compatibility.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
CI/CD tests are covered.

/canary

:broken_heart: Test Failed - ci-test

/canary

:sunny: Canary successful

/land


MAP-581 fix input field alignment

The recent changes to remove the Not known option caused the input fields to go out of alignment and the No button to move down. like this:

Have fixed this and also refactored code so that macro is more generic and so can be used for other questions.
The question now looks like this

this code has been included in map-625


2 compilation errors in gulp watch from scratch

Just came back from vacation. Did git clean -xfd ., ./scripts/npm.sh install and gulp watch.
Ended up with these errors in gulp watch:
[10:15:54] Error: /Users/joao/Work/vscode/extensions/vscode-api-tests/node_modules/vscode/vscode.d.ts(6,10): Cannot find name 'vscode'.
[10:15:54] Error: /Users/joao/Work/vscode/extensions/vscode-colorize-tests/node_modules/vscode/vscode.d.ts(6,10): Cannot find name 'vscode'.
[10:15:54] Finished compilation with 2 errors after 34554 ms

Assigning to you @jrieken since you seem to be the last guy touching it, although I'm not sure you are the source of the issue.

ping @bpasero for the vscode node module
ping @dbaeumer for TypeScript

interesting...

Thanks!


it doesnt work

i use vencord, and ive tried using the link and custom css, and neither have worked

Can you screenshot your Vencord themes section?

Try using this
https://overimagine1.github.io/old-discord-font/source.css

it says it's valid, but i dont see any noticable difference in the fonts

Sorry, I'm busy with college so I don't have much time with GH. Are you sure your isp isn't blocking those domains? Try them on a VPN or a different dns.

It doesn't work anymore. A recent discord update has bricked custom themes on Vencord and I assume BD. Is it currently possible to fix this?
Here's an image of Vencord's validator and a cloud settings notice:

Check if somethings blocking access to github, it works fine for me

closing as inactive/cant reproduce


Fixing markdown

Markdown was broken before due to the codeblock. Still looks pretty bad, but at least it is readable now.

Problem is that the markdown gets generated by https://github.com/reactjs/react-docgen so changing it now, won't fix it when it gets regenerated.


Use f-strings where it makes sense

Check if this PR fulfills these requirements:

[x] My changes respect the Kodi add-on development rules
[x] I have read the CONTRIBUTING document.
[x] I made sure there wasn't another Pull Request opened for the same update/change
[ ] I have successfully tested my changes locally (ran the linter and was going to run the others before opening this PR, but then I accidentally pressed the wrong button before running everything. Sorry about that 🙇 )

Types of changes

[ ] New feature (non-breaking change which adds functionality)
[ ] Feature change (non-breaking change which changes behaviour of an existing functionality)
[ ] Improvement (non-breaking change which improves functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Refactor (non-breaking performance or readability improvements)

Description

Use f-strings instead of .format and string concatenation
I was going to look into a problem regarding profile name not displaying correctly, but when looking at the code base I saw a lot of strings that use the old .format() injection of variables instead of f-strings. I feel that f-strings are (in almost all cases) easier to read than the old (and slower) .format() syntax.
# Example 1:
LOG.debug('Registered AddonSignals slot {} to {}'.format(name, callback))
↓
LOG.debug(f'Registered AddonSignals slot {name} to {callback}')

# Example 2:
query = 'SELECT {} FROM {} WHERE {} = ?'.format(table_columns[1],
                                                table_name,
                                                table_columns[0])
↓
query = f'SELECT {table_columns[1]} FROM {table_name} WHERE {table_columns[0]} = ?'

I did update almost all places that used .format(), but  I did keep it in a few places where I thought that it was easier to read than f-strings.
I did also update a lot of string concatenation to be f-strings instead, but did here also keep the string concatenation at a few places where I thought it made sense.
# Example 3:
query = 'SELECT ' + enum_vid_prop + ' FROM video_lib_tvshows WHERE TvShowID = ?'
↓
query = f'SELECT {enum_vid_prop} FROM video_lib_tvshows WHERE TvShowID = ?'

# Example 4:
sets_columns = ['@' + col for col in columns]
↓
sets_columns = [f'@{col}' for col in columns]

# Example 5:
data += '\nDebug enabled: ' + str(LOG.is_enabled)
↓
data += f'\nDebug enabled: {LOG.is_enabled}'

I thought that "this can't be too much work, let's just do it", and totally regretted it because it took a lot of time 😆 But I understand if not everyone likes f-strings (even though I love them), so totally fine if you want to not accept it due to "not matching coding style". Anyhow, still hope you like it 🤞
Reformat if-statement
https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/97cda96e499aea066645d2fcb7aead7f5c96db6a
Grammar in PR-template
(Nothing big, just my auto-correct that found them):
https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/c8f26eb9343394ec870f669b24985a2fb1ddf094

I thought that "this can't be too much work, let's just do it", and totally regretted it because it took a lot of time

hehe yes i know...
that's why that some parts of the code have been unchanged for time
update everything take time to be maintained...
I appreciate your refactor which is only now possible as I have recently adopted the python 3.6 as miminum requirement
there are only few thing that i prefer change:

LOG.xxx() methods

some of these are not updated to the "new" logger methods, that's why there is still the "format",
then please remove the f-string and use the method arguments,
this to lighten the load on the CPU, when the logger is disabled,
then from your example above will become:
# Example 1:
LOG.debug('Registered AddonSignals slot {} to {}'.format(name, callback))
↓
LOG.debug('Registered AddonSignals slot {} to {}', name, callback)

then the "format" is done by the logger code only if needed

resources/lib/services/nfsession/session/access.py

on your change for this special case i prefer keep the .format style
everything else i think is fine thanks

Hi @CastagnaIT , thank you for your quick review.

* resources/lib/services/nfsession/session/access.py

on your change for this special case i prefer keep the .format style

Sure, done here: https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/066911ea0525b541a8faa3ae66db63c6198e4e8a

* LOG.xxx() methods

(...)  please remove the f-string and use the method arguments,
this to lighten the load on the CPU, when the logger is disabled,
then from your example above will become:

I'm unsure if you wanted this done only for LOG.debug() calls or if I should do it also for LOG.error() and LOG.info()?
I did all LOG.debug() statements here: https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/d36e531c49ff203f5a5dbcdc9e62b782afc75460. Please let me know if I should do the same for the other two log methods as well.

I'm unsure if you wanted this done only for LOG.debug() calls or if I should do it also for LOG.error() and LOG.info()?

yes for all LOG methods, debug/error/info/warn
when you will have done please join the last "feedback" changes with the appropriate already existing commits

I'm unsure if you wanted this done only for LOG.debug() calls or if I should do it also for LOG.error() and LOG.info()?

yes for all LOG methods, debug/error/info/warn
when you will have done please join the "feedback" changes with the appropriate already existing commits

@CastagnaIT
Done here and merged into earlier commit: https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/5abf3ea2f29dea7a18f7a2d6019b015223e224e5.
Also merged the latest master into the branch here: https://github.com/CastagnaIT/plugin.video.netflix/pull/1177/commits/962f09e322abdd91a6458332e679059426450806. Merge conflict was due to the LOG statement.
Please take a look :)

look good ok!
but i do not like to have unnecessary commits, you can join these commits:
066911ea0525b541a8faa3ae66db63c6198e4e8a
5abf3ea2f29dea7a18f7a2d6019b015223e224e5
with the first one:
3bf4f52acfc64bac730e01bc42dd02251f0247a4
and this commit there must not be:
962f09e322abdd91a6458332e679059426450806
to remove it you need to rebase your local branch with upstream master branch

look good ok!
but i do not like to have unnecessary commits, you can join these commits:
066911e
5abf3ea
with the first one:
3bf4f52
and this commit there must not be:
962f09e
to remove it you need to rebase your local branch with upstream master branch

@CastagnaIT done and force-pushed! Sorry that I did not understand you at first. I'm so used with squash-and-merge 😅
Hope everything looks good now.


IPTC metadata is stripped after image is processed

Hi James
Using:

ImageProcessor version: <IP_ADDRESS>
ImageProcessor.Web version: <IP_ADDRESS>
Environment: Windows 10, Windows Server 2012
.NET Framework version: 4.6.1
Umbraco 7.9.2

Got a call recently from a client (photographer) who stores licencing info in Image metadata according to the IPTC standard - http://www.controlledvocabulary.com/imagedatabases/iptc_naa.html.
He mentioned that this metadata was being stripped out of any images that he uploaded to Umbraco.
I tested this and indeed, before I upload the image to Umbraco, I can see the IPTC metadata section in PhotoShop - File Info (Windows properties never shows this stuff). After uploading and processing, when I save a copy off the site, the IPTC section is no longer there (all other metadata fields are persisted).
I have confirmed that this still happens after upgrade to latest version and setting metaDataMode to All.
Perhaps you know more about IPTC than I do.  Personally I had never heard of IPTC and I am still pretty much in the dark. However,I am led to believe (by my client) that IPTC is very much a common standard so I have a few questions -

Is this stripping of IPTC metadata by design?
If it is then what was the reasoning? If not then is this something that is on the radar?
Any plans to implement?

Can supply sample images if required.
Thanks in advance
Julian

Thanks @JimBobSquarePants
Although I think there may be an issue with the version we have upgraded to (IP: <IP_ADDRESS>, IP.Web version: <IP_ADDRESS>) because after upgrading it turns out that no metadata at all seems to be persisted.  Apologies I hadn't realised this was happening.
I have this in my processing.config:
<processing preserveExifMetaData="true" metaDataMode="All" fixGamma="false" interceptAllRequests="false" allowCacheBuster="true">
Was previously using the following versions which did persist a fair amount of metadata (Copyright camera information etc):
ImageProcessor: 2.5.6
ImageProcessor.Web: 4.8.7
So with the latest version, we are not getting any metadata persisted at all after uploading to Umbraco and saving off the website.
J

Can you do me a favour and check against the sample application in the repository? I want to make sure there's nothing overwriting setting in Umbraco.

Found it - I see I can set as parameter in call to ImageFactory.
Tested with one of our images and all seems good in fact - at least with MetaDataMode.All, the same metadata is being persisted as previously with IP version 2.5.6 (so the same data is being stripped out as well).  So maybe Umbraco is overwriting something?

Apologies.. I should have been more clear.
There's a test website that has uses customizable configuration files.
https://github.com/JimBobSquarePants/ImageProcessor/blob/74b37314037dc49b157fb5aa3e2af3a77806ff7b/tests/ImageProcessor.TestWebsite/config/imageprocessor/processing.config#L1
I would attach the debugger to it and what what parameters are passed to the ImageFactory within the ImageProcessingModule
https://github.com/JimBobSquarePants/ImageProcessor/blob/74b37314037dc49b157fb5aa3e2af3a77806ff7b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs#L630
The parameters should match what you were passing in the playground.
I would test that site against one of your images and check the cached output. It should preserve the metadata. If not, then we definitely have an issue.

Hi James
Actually there is an issue.  All metadata is currently stripped out of any processed images on the test site.
The culprit is:
https://github.com/JimBobSquarePants/ImageProcessor/blob/74b37314037dc49b157fb5aa3e2af3a77806ff7b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs#L627
I think should be:
MetaDataMode metaMode = !exif ? MetaDataMode.None : metaDataMode.Value;
Hope that helps :)
Jules

I think you may well be correct! How I missed that I don't know. I'll get a release out asap.

Actually wanted to do this with a PR but if I'm reading instructions correctly I would have to fork first?  Never mind my first contribution to open source will have to wait a little longer :)

Thanks.... Yeah don't worry about it I'll try and get to it in the next 24 hours. 😄

Hi @JimBobSquarePants
So just opened a pull request for this.  First time so hope I've done it right :)
Jules

Fixed in https://www.nuget.org/packages/ImageProcessor.Web/<IP_ADDRESS>
Thanks for your help!


Andy Strategy

Discuss the general strategy when it comes to developing Andy and whatever software stems from it.
Topics

Utilizing GitHub further

this platform is already being utilized via an organization created from a premium account
FREE CICD build time and package repository space for open-source projects.

The goal is to cycle out of cloud providers that simply charge for holding data / containers at rest.
Strategy Summary
Google Cloud Platform / Amazon Web Services

Sources used to procure Kubernetes clusters
Establish the ability to stand up K8s clusters in any region
Utilize Spot Instances wherever relevant

Docker

Artifact Registry to store container images
No at-rest charges, one fee to utilize the entire platform

GitHub

Build and test code and artifacts to be deployed
Open Source projects get free CICD build time

Decent summary of strategy above.


has_one, has_many associations seem not working

I found that has_one and has_many associations didn't work properly.
In this reproduction code, has_many is used, but has_one results in the same.
I traced into rom-factory and dry, but there was no idea about the root cause.
Steps for Reproduction
require 'rom'
require 'rom-factory'

rom = ROM.container(:sql, 'sqlite::memory') do |conf|
  conf.default.create_table(:companies) do
    primary_key :id
    column :name, String, null: false
  end

  conf.default.create_table(:users) do
    primary_key :id
    column :name, String, null: false
    column :company_id, Integer, null: false
  end

  conf.relation(:companies) do
    schema(:companies, infer: true) do
      associations do
        has_many :users
      end
    end
  end

  conf.relation(:users) do
    schema(:users, infer: true) do
      associations do
        belongs_to :companies, as: :company
      end
    end
  end
end

MyFactory = ROM::Factory.configure do |c|
  c.rom = rom
end

MyFactory.define(:company) do |f|
  f.name { fake(:company, :name) }
  f.association(:users, count: 2)
end

MyFactory.define(:user) do |f|
  f.name { fake(:name) }
  f.association(:company)
end

p MyFactory.structs[:user]
p MyFactory.structs[:company]

Expected behavior:
#<ROM::Struct::User id=1 name="Emmet Koss" company_id=1 company=#<ROM::Struct::Company id=1 name="Heaney, Wilkinson and Senger">>
#<ROM::Struct::Company id=1 name="Acme Inc" users=[#<ROM::Struct::User id=1 name="Emmet Koss" company_id="1">, #<ROM::Struct::User id=2 name="Bryce Lehner" company_id="1">]>

Actual behavior:
#<ROM::Struct::User id=1 name="Emmet Koss" company_id=1 company=#<ROM::Struct::Company id=1 name="Heaney, Wilkinson and Senger">>
Traceback (most recent call last):
	12: from assoc_test.rb:48:in `<main>'
	11: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/rom-factory-0.6.0/lib/rom/factory/factories.rb:43:in `[]'
	10: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/rom-factory-0.6.0/lib/rom/factory/builder.rb:30:in `struct'
	 9: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/rom-factory-0.6.0/lib/rom/factory/tuple_evaluator.rb:34:in `struct'
	 8: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-struct-0.4.0/lib/dry/struct/class_interface.rb:95:in `new'
	 7: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/constructor.rb:47:in `call'
	 6: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:27:in `call'
	 5: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:97:in `coerce'
	 4: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:110:in `resolve'
	 3: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:110:in `each'
	 2: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:112:in `block in resolve'
	 1: from /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/hash/schema.rb:99:in `block in coerce'
 /Users/tokitake/workspace/rom/vendor/bundle/ruby/2.5.0/gems/dry-types-0.12.2/lib/dry/types/array/member.rb:20:in `call': undefined method `map' for #<Proc:0x00007fb77731e698> (NoMethodError)
Did you mean?  tap

Platforms:
macOS 10.13.3
ruby 2.5.0
Version:
rom 4.1.3
rom-factory 0.6.0

Hi, @tokichie thank you for submitting the issue ❤ . I'm investigating, but as a quick fix instead of using MyFactory.structs[:company] you use MyFactory[:company] it will work.
Looks like we are not resolving correctly the relations when using structs, I will dig a little to see if we could resolve the issue.

oh, in-memory structs don't support associations at all. sorry about the confusion


[Enhancement] Fix one be storage hang causes all writes hang

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] I have added user document for my new feature or new function

There needs to be a way to judge whether the disk is hung up, otherwise other methods can only be alleviated. The current queue is 40960. When the queue is full and thn process exits, it may have been stuck the load for a long time.

There needs to be a way to judge whether the disk is hung up, otherwise other methods can only be alleviated. The current queue is 40960. When the queue is full and thn process exits, it may have been stuck the load for a long time.

Or add a blacklist mechanism similar to query

BTW, most the IO work is processed in thread pool _storage_engine->memtable_flush_executor() which is shared among all disks.

BTW, most the IO work is processed in thread pool _storage_engine->memtable_flush_executor() which is shared among all disks.


Add a keyboard button to automatically go to the nearest suggested building

Description
Hello! There should be a keybind that goes to the nearest suggested building, so that you can edit quickly by accepting, and then maybe repositioning and then instantly jumping to the next one. It would help others contribute to OSM more efficiently.

I still suggest having a feature to resize (up and down) the buildings once validated, not just to move them... (ID has such feature by the way)

Update, per https://github.com/facebook/Rapid/issues/1336#issuecomment-2551768881 -
While this isn't a button or shortcut that jumps to the next building, it can make mapping a lot more efficient - try it out in the canary build and let me know what you think.

 It can really improve mapping efficiency!
When a Rapid feature is selected or hovered the following will apply:

If feature was selected and we hit A, accept and select the newly added feature
If feature was just hovering and we hit A, hover (but don't select) the newly added feature
If we hit M to move or R to rotate, accept, then select and enter that mode instead

I tested in Riberalta - Bolivia and the floating over and acceptance do not work, unless you start selecting an inferred element and accepting it, from that point works the floating and acceptance. But you need to repeat this process again and again


Add test to verify that invalid ciphers are handled in all SSLEngine …

…implementations correctly.
Motivation:
https://github.com/netty/netty/issues/8442 reported that we fail to build a SslContext when an invalid cipher is used with netty-tcnative-boringssl-static, while it worked before. This test verifies that this is now consistent with all other SSLEngine implementations.
Modifications:
Add test-case to verify consistent behaviour
Result:
More tests to assert consistent behaviour across SSLEngine implementations

@njhill PTAL

LGTM, thanks!

@njhill thanks for the review


Update composition API about required attributes

Updated docs according to findings in bug ticket: https://github.com/blade-ui-kit/blade-ui-kit/issues/78
Let me know if you want different wording, not 100% sure how to formulate :)

Thanks Patrick!


TEP-0075: Remove log statement

Changes

Ran into this log statement when running tests - it was introduced in https://github.com/tektoncd/pipeline/pull/5007 when debugging TEP-0075 I believe. This change is cleaning up the log statement.
/kind cleanup
cc @chuangw6 @dibyom @ywluogg
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[n/a] Docs included if any changes are user facing
[n/a] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including functionality, content, code)
[x] Release notes block below has been filled in (if there are no user facing changes, use release note "NONE")

Release Notes

NONE

/approve

/lgtm
😂


Add WireGuard to the firewall rules documentation

docs: Word-wrap firewall section
docs: Add WireGuard into the firewall rules

/test

@brb can you help to answer the above questions?

It's a bit tricky, as it depends on the encryption mode.

With encryption.nodeEncryption=true, all traffic flows through the WireGuard tunnel device completely bypassing the VXLAN/Geneve tunnels.
With encryption.nodeEncryption=false, the pod-to-pod traffic will bypass the VXLAN/Geneve tunnels, but the host-to-pod flows through the VXLAN/Geneve tunnels.

TL;DR with the node encryption enabled, there is no need to open ports for the VXLAN/Geneve tunnels.

/test


Push and Pop Event

Push Event: when value is pushed it emits what value was pushed.
Pop Event: when a value is popped it emits what value was popped while also removing it from the top of the stack.

These need to be defined and then called within the respective methods.

#10


feat(stateful-set): update strategy

Resolves https://github.com/cdk8s-team/cdk8s-plus/issues/372

The backport to k8s-21/main failed:
The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-k8s-21/main k8s-21/main
# Navigate to the new working tree
cd .worktrees/backport-k8s-21/main
# Create a new branch
git switch --create backport-523-to-k8s-21/main
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick --mainline 1 e47888d8cb93def41bab170dd001efe5282b7e82
# Push it to GitHub
git push --set-upstream origin backport-523-to-k8s-21/main
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-k8s-21/main

Then, create a pull request where the base branch is k8s-21/main and the compare/head branch is backport-523-to-k8s-21/main.

The backport to k8s-20/main failed:
The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-k8s-20/main k8s-20/main
# Navigate to the new working tree
cd .worktrees/backport-k8s-20/main
# Create a new branch
git switch --create backport-523-to-k8s-20/main
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick --mainline 1 e47888d8cb93def41bab170dd001efe5282b7e82
# Push it to GitHub
git push --set-upstream origin backport-523-to-k8s-20/main
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-k8s-20/main

Then, create a pull request where the base branch is k8s-20/main and the compare/head branch is backport-523-to-k8s-20/main.

💚 All backports created successfully

Status
Branch
Result

✅
k8s-21/main

Questions ?
Please refer to the Backport tool documentation

💚 All backports created successfully

Status
Branch
Result

✅
k8s-20/main

Questions ?
Please refer to the Backport tool documentation


Option to recursively fetch

As the title suggests, perhaps something like govendor fetch github.com/foo/bar/... would add all packages contained within the given repo to the vendor.json file.

If you specify a status, it will recursively fetch. For example: govendor fetch +outside will fetch all others. Or did you want it to also work with import paths?

Did you try: govendor fetch github.com/foo/bar/^ ?

Looks like I also need sth like this. In my case I want to fetch "https://github.com/spf13/viper"
So I run:
go fetch github.com/spf13/viper

to get the most recent version. Viper lib depends on github.com/spf13/cast which also has some new features new viper version depends on. So without fetching github.com/spf13/cast I get a compiling error. So I need a way to recursively update dependencies of my dependencies:)

Without this feature I can only update dependencies of my dependencies by hand. Which is rather problematic because govendor have no tree view (afaik).

@FZambia you can import viper in your application, then run govendor fetch +o, which will recursively fetch and vendor all non-vendored deps.

@kaey hmm, I don't think this helps. In my case viper already vendored - so I just need to update it:

fetch    Add new or update vendor folder packages from remote repository

So govendor fetch +o noop in my case. Looks like I can delete everything from vendor folder and then fetch from scratch - but I just want to update one dependency.

I can just give an example: here is code using govendor: https://github.com/centrifugal/centrifugo. As I said above I need to only update viper and all its dependencies to latest version. I don't know which dependencies I should also fetch in addition to github.com/spf13/viper.

This might be useful for updating.
For now the following command will show you a list of deps:
go list -f '{{join .Deps "\n"}}' ./vendor/github.com/spf13/viper |  xargs go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}'

I'm totally down with adding a -r option to fetch. Just haven't done it yet...

Just ran into the same issue.
The Google cloud libraries (see https://godoc.org/cloud.google.com/go ) compile & run usually only with revision master (or an other unknown revision) of their dependent repositories after updating any of those libraries. I couldn't find a good process for that other than completely re-vendor them.

What about the case where one needs a specific tagged version of viper AND that viper had its own vendor.json with pinned dependencies?  So not only would govendor recursively fetch dependencies but also parse through sub vendor.json (if any) to determine pinned dependencies.
Would this case need it's own issues ticket?

(duplicate of #138?)


Fix errors with custom attribute in a private namespace

Pull request to merge @ljysdfz patch from #1361
into master branch. It might have been accidentally skipped. This also fixes #2615

Thanks - I am going to have to take some time with this. So many low level changes that I want to be sure I fully understand.

Closing for a syntax modified iteration - https://github.com/iBotPeaches/Apktool/pull/2875 since I have no permission to push commits to this one.


Need a setting to delay start of shutdown sequence

Description:

Describe the desired behavior, what scenario it enables and how it
would be used.

Current
Envoy Proxy container stops accepting new connections as soon as the Envoy Proxy pod starts terminating. For reasons described below, this means that zero downtime Envoy Proxy deployment rollouts are not possible when using AWS+NLB.
Desired
Envoy Proxy container should continue to accept new connections for a configurable amount of time when the Envoy Proxy pod starts terminating. This will allow zero downtime Envoy Proxy deployment rollouts.

Any extra documentation required to understand the issue.

Key points

AWS NLBs send new requests to NLB targets (Envoy Proxy pods) until the target has failed a minimum of 2 health checks (UnhealthyThresholdCount) that are a minimum of 5 seconds apart (HealthCheckIntervalSeconds).
Envoy Proxy pods stop accepting new requests immediately when they start terminating, so there is a guaranteed 5-10 seconds of downtime for new requests coming from the NLB when a proxy pod starts terminating.

Timing details
Here's a timeline where the pod start terminating immediately following a successful health check from the NLB:

time 0s: pod starts terminating
time 0s: envoy proxy container stops taking new requests, but waits for existing requests to finish
time 0s-5s: NLB gets new requests and sends them to the terminating pod, because it hasn't failed 2 health checks yet. the requests fail
time 5s: NLB sends a health check request. it fails
time 5s-10s: NLB gets new requests and sends them to the terminating pod, because it hasn't failed 2 health checks yet. the requests fail
time 10s: NLB sends a health check request. it fails
time 10s+: NLB no longer sends requests to the terminating pod

Possible solution

Configure the NLB target health checks to hit a new proxy route (e.g. /lbhealthz) that returns a 200 normally. This is important: a) It is not the same endpoint used for pod liveness/readiness probes and b) ShutdownManager knows about it and can toggle it to return non-200 status codes.
Add a gracefulShutdownDelay (default: 0 for backwards compatibility) or similar property to ShutdownConfig that controls the timing between when the pod goes into a terminating state and when shutdown_manager.go calls postEnvoyAdminAPI("healthcheck/fail").

the shutdown container's preStop hook calls shutdown_manager.go:ShutDown() as it currently does
shutdown_manager.go:ShutDown() would call a new /lbhealthcheck/fail endpoint on the proxy container immediately, causing /lbhealthz to no longer return a 200 status code. NLB health checks start failing, but new and existing requests continue to get processed.
after gracefulShutdownDelay seconds, shudown_manager.go would call /healthcheck/fail and /drain_listeners?graceful&skip_exit.

AWS NLB users could set gracefulShutdownDelay to match their NLB's UnhealthyThresholdCount * HealthCheckIntervalSeconds to allow new requests while the NLB health checks are failing.

Same issue.
My proposed solution is:
Implement a controller to watch the status of envoyproxy Pods. When a Pod is found to be in the "Terminating" state, call the NLB (Network Load Balancer) API to remove traffic from this Pod.

hey @millermatt, this issue you are hitting is probably very specific to your setup and configurations. I'd recommend also adding your EnvoyProxy config here so its easier to compare and also reproduce.

I am able to consistently reproduce the problem using a very bare minimum deploy of envoy-gateway.
For sure, thank you. I'm attaching files here for a bare minimum config that demonstrates the problem.
envoy-gateway-config-01-millermatt.zip
Here is my test process:

Deploy the attached config and wait for the NLB to be available with healthy targets in the target group.
Start curl in a loop against the load balancer
Do a rollout-restart on the Envoy Proxy Deployment created by the gateway controller
Observe that some of the curl commands get terminated connections as soon as an Envoy Proxy Pod starts terminating

Given what I've described in this issue's description, we are guraranteed downtime, because

the terminating pods immediately stop accepting new requests
the load balancer target must experience at least 2 request refusals before it stops sending requests

Here is the curl loop command I use:
while true ; do echo "$(date) $(curl -sv https://<load-balancer-host> 2>/dev/stdout | grep '< HTTP')" ; done

This is what the curl loop output looks like as soon as a proxy pod starts terminating:
Fri Sep  6 10:35:29 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:30 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:30 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:30 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:31 CDT 2024
Fri Sep  6 10:35:36 CDT 2024
Fri Sep  6 10:35:42 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:42 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:42 CDT 2024 < HTTP/1.1 404 Not Found
Fri Sep  6 10:35:43 CDT 2024 < HTTP/1.1 404 Not Found

Just starting with envoy gateway, and +1 here
I've used a custom-configured envoy in EKS with the ALB controller under a 5-9s uptime goal. Unfortunately we didn't use xDS so we used plain rollouts for (frequent-ish) configuration changes including traffic splitting. So we had to have no-downtime rollouts and followed this EKS guide for load balancing pretty closely. But (AFAIK) xDS doesn't solve for "normal" proxy pod churn anyway.
In my experience what is described here was 100% a requirement to not have (in our case) 503s during every rollout or otherwise-triggered pod shutdown during normal operations, like scale-in evictions after a period of high traffic. Our customized shutdown logic had exactly this kind of configurable delay in a preStop hook before initializing the graceful draining process, with parameters synced to the ALB health checks pointing at the admin server via helm templating voodoo. An AWS A/NLB can't get the endpoint/endpoint slice updates "fast" so it has to rely on "slow" heath checks pointed at envoy's admin readiness endpoint, which we can fail on the internal termination signal.
I bet it's junk but we used this hand-rolled shutdown handler sidecar modeled after what I saw in contour and discussed in a variety of envoy/istio and related github issues. Here's where this proposed config is used for external, target-specific probe failures to be observed, subsequently watching the draining process to admit process termination.

@ross-at-coactive we do something similar in Envoy Gateway where the preStop hook calls an elaborate shutdown routine, more in https://github.com/envoyproxy/gateway/blob/358427167d2aac6a8219198943d1c445c843dc5b/internal/cmd/envoy/shutdown_manager.go#L119
@millermatt looks like you are using explicit NLB health checks
          # configure a network load balancer
          service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "2"
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: traffic-port
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: https
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-success-codes: "200-499"
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "2"
          service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "2"

my suggestion is to  define a ClientTrafficPolicy https://gateway.envoyproxy.io/docs/tasks/traffic/client-traffic-policy/ with a healthCheck section, something like
healthCheck:
  path: "/healthz"

and also add another annotation for path
service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /healthz

as well as for interval
service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "2"

Reference: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.3/guide/service/annotations/#health-check

@arkodg

we do something similar in Envoy Gateway where the preStop hook calls an elaborate shutdown routine, more in

@ross-at-coactive can surely clarify more, but the routines are not similar. The Envoy Gateway routine you refer to causes all new requests to be refused as soon as the pod starts terminating. The routine @ross-at-coactive refers to says in its docs:

set a delay between health check failing and graceful connection draining, to account for some period during which new connections might still be arriving

This is the key part missing in the current Envoy Gateway shutdown implementation. There is no way to set a delay between the time when health checks start failing and graceful termination begins.

looks like you are using explicit NLB health checks

Yes, in an effort to cause them to fail ASAP.
Here is my current config after applying the ClientTrafficPolicy below and adding the healthcheck-interval annotation with the lowest allowed value (5, not 2):
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "2"
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5"
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /healthz
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: traffic-port
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: https
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-success-codes: "200"
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "2"
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "2"
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <redacted>
    service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-TLS13-1-2-2021-06
    service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true,deregistration_delay.timeout_seconds=300
    service.beta.kubernetes.io/aws-load-balancer-type: external

At your suggestion, I've added this ClientTraffic policy:
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ClientTrafficPolicy
metadata:
  name: mygateway
  namespace: proxy-namespace
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: Gateway
      name: mygateway
  healthCheck:
    path: "/healthz"

All other config is from the zip file I uploaded above.
There is still downtime as soon as any Envoy Proxy pod starts terminating.
Tue Sep 10 09:52:23 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:23 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:24 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:24 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:24 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:25 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:25 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:26 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:26 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:27 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:27 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:28 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:28 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:29 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:29 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:30 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:30 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:31 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:31 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:31 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 09:52:32 CDT 2024
Tue Sep 10 09:52:37 CDT 2024
Tue Sep 10 09:52:43 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:43 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:44 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 09:52:44 CDT 2024 < HTTP/1.1 200 OK

I get the impression that your understanding is that the NLB will stop sending new non-health-check requests to the Envoy Proxy pod as soon as the pod starts failing health checks. This is not true. New requests will continue to arrive while the proxy container is draining and not accepting new requests.
Or perhaps you believe the pod will handle new requests while the pod is terminating? This is also not true. The preStop hook on the shutdown manager container tells the proxy container immediately to stop accepting new requests and to finish processing existing requests.

When the preStop hook kicks in - we fail the health check (server) and kickstart graceful draining immediately, this means the envoy proxy will continue to accept newer connections (to account for the delay in the fronting LB) and discourage new requests (but still accept them) . This is done until there are no connections left or the drain timeout has reached (default is 600s)
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/draining#draining
What could be happening here is due to low number of connections, the connections may be 0 and the default minDrainDuration is 5s , so the proxy may be terminating after 5s . This minDrainDuration was added by @davidalger as another way to delay termination until the fronting LB updating its LB pool.
Can you try setting minDrainDuration to something higher ? like 25s
shutdown:
  minDrainDuration: 25s

https://gateway.envoyproxy.io/docs/api/extension_types/#shutdownconfig

I've added this setting added to the EnvoyProxy API object spec:
  shutdown:
    minDrainDuration: 25s

The results during a deployment rollout are slightly better with the minDrainDuration in that we don't see any curl attempt hang and fail to get any status code back. However, we still get the 503s, which are failed requests. The goal is to have none of these.
We have the default deployment of 2 Envoy Proxy pods. When the first pod starts terminating:
Tue Sep 10 12:17:54 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:54 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:55 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:55 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:56 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:56 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:17:56 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:57 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:17:57 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:17:58 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:17:58 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:59 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:17:59 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:17:59 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:18:00 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:18:00 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:18:01 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:18:01 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:18:02 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:18:02 CDT 2024 < HTTP/1.1 200 OK

When the second pod starts terminating:
Tue Sep 10 12:19:07 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:07 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:07 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:08 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:08 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:09 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:09 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:10 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:10 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:11 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:11 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:12 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:12 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:12 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:13 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:13 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:14 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:14 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:15 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:15 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:16 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:16 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:16 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:17 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:17 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:18 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:18 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:19 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:19 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:19 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:20 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:20 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:21 CDT 2024 < HTTP/1.1 503 Service Unavailable
Tue Sep 10 12:19:21 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:22 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:22 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:23 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:23 CDT 2024 < HTTP/1.1 200 OK
Tue Sep 10 12:19:23 CDT 2024 < HTTP/1.1 200 OK

(I've removed a response I added that had posted results of a bad test. I had changed the loop of curls to hit /healthz to verify the ClientTrafficPolicy early and failed to change it back from that.)

@arkodg Thanks for all the info. I have been thinking about this and missing exactly what you describe above -- the health check that actually gets failed at the start of shutdown that the NLB (previously I used an ALB) uses for eventual eviction. Is that what you referenced above, /healthz (on the traffic port)? I was used to :9901/ready in plain envoy.

Things are looking great now! Thank you!
My test is showing no lost requests across multiple rollout restarts.

we fail the health check (server) and kickstart graceful draining immediately, this means the envoy proxy will continue to accept newer connections (to account for the delay in the fronting LB) and discourage new requests (but still accept them)

For whatever reason - likely bad tests on my part - the part of still accepting new requests once graceful shutdown started never seemed to be the case.
With a minimal config and your suggestions here it definitely is acting that way.

I'll be checking this out but thank you both @millermatt and @arkodg , this is an important question for me I haven't really gotten to yet. I'll be following this logic too this week and verifying.

@arkodg Thanks for all the info. I have been thinking about this and missing exactly what you describe above -- the health check that actually gets failed at the start of shutdown that the NLB (previously I used an ALB) uses for eventual eviction. Is that what you referenced above, /healthz (on the traffic port)? I was used to :9901/ready in plain envoy.

@ross-at-coactive explicit listener level / traffic port health checks can be configured using the ClientTrafficPolicy or you can reuse the pod level one ( /ready port 19001)
It looks like the minDrainDuration of 5s may be too low, and we may way to bump up the defaults to 10s

also my hope was that explicit health checks wouldn't be needed on NLB and the corresponding k8s controllers (associated with the NLB) would peek into the API Server to see the status of the proxy endpoints and reconfigure the endpoint pool.
for e.g. in GKE, it retrieves this using health check probes to kube-proxy which retrieves it from API Server


ARROW-10018: [CI] Disable Sphinx and API documentation build since it takes 6 hours on master

I haven't had the time to investigate the build logs, but it will make the build queue pretty slow.

Don't we run this nightly on crossbow too?

Also, at the risk of stating the obvious, 6 hours is the wrong order of magnitude for generating documentation

Don't we run this nightly on crossbow too?

We do, and it seems like the build timeouts there as well so we must have a bug laying around.

According to the crossbow "logs" the failure started to occur 8 days ago.

Looking at the first crossbow failure, there's an R pkgdown dependency that's failing to install (but not failing the build), so the R doc building fails later.
Adding apt-get install libfontconfig1-dev may solve this, though I'll look into other ways to speed R dependency installation up.
That seems separate from this though; could you make a JIRA for the failing job please?

The timeout failure is pretty recent so we have multiple issues here. I'm going to create the tickets.

It's not timing out on the nightly azure job, FWIW

It's not timing out on the nightly azure job, FWIW

The last one took 6 hours.


Hardware or VM Specification for Single Node VM Deployment

Hardware Specification for Single Node VM Deployment

@madhavemuri @ypise @ujjwalpl, please review the specification for single node VM deployment as 4+2+0 is tested and wanted to document before we publish cortx community build to community

@mukul-seagate11 It's showing 0 files modified for me.


For Latex equations inside Markdown one should use [ ... ] over $$ ... $$

The regex should be using \[ ... \], or at least add an alternative for that.
Also for the latex-inline.
See this discussion on tex.stackexchange: Why is \[ … \] preferable to $$ … $$?

Ah, I've overlooked this issue: #164


feat: Add caution note about rules field override

Added caution note Add caution note about rules field override in aggregated ClusterRoles.
rel #34816
The text that was proposed by @shannonxtreme perfectly fits as I guess.

@Rishit-dagli Thanks!  How I can rerun netify jobs?

@Rishit-dagli Thanks! How I can rerun netify jobs?

can you push an commit to this PR , it can lead to run the jobs again
you can do is
git commit --amend --no-edit
git push origin <branch-name> --force

@Kartik494 Sory for the huge delay. Rebased on top of master

/lgtm
/approve


⚠ SceneTime has degraded performance

In 26bc1a7, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1347 ms

Resolved: SceneTime performance has improved in b0ae7b2 after 6 minutes.


[BUG] The output method of the Java app context are able to output correctly.

As titled.

It seems that we should use toString method rather than write() of writable, to output meaningful result.


Add doc comments for mainline APIs

IServiceCollection interface needs cleanup
AddTransient method

Done: https://github.com/aspnet/DependencyInjection/commit/7b82a23288e124dc573c24b94aeedefcecd37b72


lightdm: 1.24.0 -> 1.26.0

Motivation for this change
Needed an update.
I most likely didn't do this correctly.
Comments and corrections are very welcome.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

I guess it's optional to also build with accountsservice. Should I make that an option?

I would just add it non-optionally.

@GrahamcOfBorg test lightdm

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: tests.lightdm
Partial log (click to expand)
Cannot nix-instantiate `tests.lightdm' because:
error: attribute 'lightdm' in selection path 'tests.lightdm' not found

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: tests.lightdm
Partial log (click to expand)
Cannot nix-instantiate `tests.lightdm' because:
error: attribute 'lightdm' in selection path 'tests.lightdm' not found


Remove date from text field should get us back to starting state (datepicker not filled in)

As far as I understand the current interface there is no way for a user to remove a date selection. When we start the date might not be picked (Nothing) which seems to be a supported concept as the example shows
  case dateEvent of
                        Picked newDate ->
                            Just newDate

and https://ellie-app.com/3WbsRpXXzJ5a1 does it, but once a date is once picked there is no way to get back to this state. The Picked dateEvent is a Date not a Maybe Date, and if the user clears the text field and leaves empty text the Picked is not fired. FailedInput is fired as the empty text is not parsed as a date, but then one cannot distinguish between non-filled in valid forms versus filled in invalid ones.
It's debatable if this is a bug, feels more like a design issue, but one would expect the starting state to be reachable again with user interaction.

You have multiple options here:

Create your own reset button. This is possible and straightforward, because the datepicker itself does not have state.
Treat invalid input as resetting the datepicker. I don't quite understand your problem with this approach.

FailedInput is fired as the empty text is not parsed as a date, but then one cannot distinguish between non-filled in valid forms versus filled in invalid ones.

Maybe you can elaborate?
Cheers

Thank you for your feedback.

A reset button doesn't feel intuitive to me, when the user first sees the datepicker it's empty, with Nothing in the state. If they write some valid date in it, then the state will have Just the date. Now if they change their mind and want to not fill in that state, I believe the natural user interaction that undoes what has been done is to delete the text that was typed in.

Treat invalid input as resetting the datepicker. The problem is that I need to be able to tell a filled in invalid input -> (show user form errors, disable submit), from a form that does not have the date filled in. If all I ever get back is FailedInput (Invalid "Expected a date in ISO 8601 format") for both cases I can't tell them apart.

I think I could work around this by peeking into the internal messages of datepicker, and tracking the text myself as well, but it's obviously not an optimal solution. For the moment I just hacked in returning Picked (Maybe Date) which is super easy, but I understand it would be an interface breaking change.

Hm... I think I understand your problem.
Just as a pointer: You can set the date parser yourself. There you could check for empty strings. But this would be hacky, too.
I think a third InputError variant EmptyString would be an acceptable fit. Then the developer could act whatever entering an empty string into the datepicker would mean for them.

I think a third InputError variant EmptyString would be an acceptable fit.

That would definitely work.
Cheers


Cannot use ADB inside docker when adb server isn't started with sudo

When I try to list the adb devices it returns with an error:
build@976cd17ce1e8:~/android$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
????????????    no permissions

It turns out that the adb server has to be started with root privileges, the following does work:
build@976cd17ce1e8:~/android$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
build@976cd17ce1e8:~/android$ adb devices
List of devices attached
335b3080        unauthorized

Unauthorized here is normal because I did not give permission to adb on my phone.

Seems like the udev rules for android need to be installed on the base system in order to work.
This means that this is not an issue with the docker image.
You might want to add this as a warning to the documentation, rules can be found here:
https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

@Archcry Thanks for reporting this. Can you create a pull request with updated README.md which lists the possibilities to run adb inside Docker? See also https://github.com/stucki/docker-lineageos/pull/11#issuecomment-204568794 which explains how it can be run via network...

I am currently on holiday and will be back in three weeks, I can do it then. Unless anyone else is willing to do it sooner.


Occasionally take multiple automatic screenshots on test failure

The problem
It will automatically take one screenshot when the test fails, but occasionally it will take two or more screenshots.
It becomes difficult to understand which test case failed.
Details

Driver log on failure

2020-06-26 03:30:00,964 [INFO -com.codeborne.selenide.webdriver.WebDriverFactory] Selenide v. 5.12.2
2020-06-26 03:30:00,964 [INFO -com.codeborne.selenide.webdriver.WebDriverFactory] Selenium WebDriver v. 3.141.59 build time: 2018-11-14T08:17:03
2020-06-26 03:30:00,964 [INFO -com.codeborne.selenide.drivercommands.CreateDriverCommand] Create webdriver in current thread 13: ChromeDriver -> ChromeDriver: chrome on WINDOWS (8007e2ff51bdd069108947a7ff58cb97)
2020-06-26 03:33:06,493 [DEBUG-com.codeborne.selenide.impl.ScreenShotLaboratory] reportsUrl is not configured. Returning screenshot file name 'C:\test\20200625\1593109986018.38.png'
2020-06-26 03:33:07,203 [DEBUG-com.codeborne.selenide.impl.ScreenShotLaboratory] reportsUrl is not configured. Returning screenshot file name 'C:\test\20200625\1593109986732.39.png'
2020-06-26 03:33:07,813 [DEBUG-com.codeborne.selenide.impl.ScreenShotLaboratory] reportsUrl is not configured. Returning screenshot file name 'C:\test\20200625\1593109987404.40.png'
2020-06-26 03:35:15,624 [INFO -com.codeborne.selenide.drivercommands.CloseDriverCommand] Close webdriver: 13 -> ChromeDriver: chrome on WINDOWS (8007e2ff51bdd069108947a7ff58cb97)
2020-06-26 03:35:15,625 [INFO -com.codeborne.selenide.drivercommands.CloseDriverCommand] Trying to close the browser ChromeDriver ...
2020-06-26 03:35:16,174 [INFO -com.codeborne.selenide.drivercommands.CloseDriverCommand] Closed webdriver 13 in 550 ms

gradle reports on failure

Element not found {#test}
Expected: exist
Screenshot: file:/C:/test/20200625/1593109987404.40.png
Page source: file:/C:/test/20200625/1593109987404.40.html
Timeout: 30 s

Tell us about your environment

Selenide Version: 5.12.2
Chrome Version: 83.0.4103.116（Official Build）（64bit）
Selenium Version: 3.141.59
OS Version: WIndows10 Pro

I've also confirmed from iOS Safari browser tests that I sometimes get more than one.

@mymtak To investigate why Selenide takes multiple screenshots, I would need a reproducible example. Right now I cannot reproduce the issue. Can you provide some working code sample?
NB! But let me ask what means It becomes difficult to understand which test case failed. I hope you don't decide which test failed based on selenide logs in console? I hope you just look into test report (generated by JUnit/TestNG/Maven/Gradle/Jenkins/...) and see which test is red. I see a screenshot name in its error message.


ShallowRenderer.simulate supports batched updates

This PR is for ShallowWrapper.simulate() supports batched updates using ReactUpdates.batchedUpdates.
React.addons.TestUtils.Simulate.{eventName} is supporting batched updates.
ref. https://jsfiddle.net/koba04/6Lchbest/
ReactUpdates.batchedUpdates is exported as ReactDOM. unstable_batchedUpdates from React v0.14. In React v0.13, it is exported as  React.addons.batchedUpdates.
It might be better I use the exported interface.
But I guess it makes your configurations complex than using ReactUpdates.batchedUpdates directly.
FYI: This batched updates feature is required #318.
Thanks.

Interesting. So you are planning on using this to ensure that the batching behavior of setState is accurately depicted in #318?

@lelandrichardson

So you are planning on using this to ensure that the batching behavior of setState is accurately depicted in #318?

Yes, it would be nice if I could ensure that.
But I'm not sure that it is possible because I'm trying it yet.
This is relevant to #318 but independent.

Since there is a public API for batchedUpdates maybe we should just wrap the batchedUpdates assignment call in the REACT013 check and use the appropriate access points mentioned in the OP. It's more complicated but at least we can avoid reacting into React/lib for now.
What do you think @blainekasten @lelandrichardson @koba04?

@Aweary I've updated this PR to use public APIs for batchedUpdates! It's not complicated for me 😄

LGTM

LGTM

I'll have to find out whether react batches updates for all handlers triggered by an event for #368, if anyone knows let me know

@nfcampos a cursory glance suggest that they do but we'll have to investigate that further to verify.

@ljharb @lelandrichardson it doesn't seem like the LGTM check seems to be working?

LGTM

@Aweary it looks like there's still some configuration we need to do with it to add you guys. i'll see if @ljharb can finish that today. thanks!

@Aweary turns out that the issue is https://github.com/lgtmco/lgtm/issues/19 - i'll update our MAINTAINERS file in the meantime.

rebased

@koba04 can you rebase please? I think we can merge this afterwards.

@Aweary rebased!

Thanks @koba04!

Thanks for your help 🎉


Add compare and pairLookupID helper functions to graph-ts

Which packages are impacted by your issue?
@graphprotocol/graph-ts
Describe the issue
These are helper functions introduced by @lutter here: https://github.com/lutter/uniswap-v2-subgraph/compare/6ce08d87...7ee852ae that could be used more broadly.
/// Return -1 if id0 < id1, 0 if they are equal and 1 if id0 > id1
function compare(id0: Bytes, id1: Bytes): i32 {
  for (let i = 0; i < id0.length && i < id1.length; i++) {
    if (id0[i] < id1[i]) {
      return -1;
    } else if (id0[i] > id1[i]) {
      return 1;
    }
  }
  if (id0.length < id1.length) {
    return -1;
  } else if (id0.length > id1.length) {
    return 1;
  } else {
    return 0;
  }
}

export function pairLookupID(id0: Bytes, id1: Bytes): Bytes {
  if (compare(id0, id1) < 0) {
    return id0.concat(id1)
  } else {
    return id1.concat(id0)
  }
}

Reproduction
https://github.com/lutter/uniswap-v2-subgraph/compare/6ce08d87...7ee852ae
Steps to Reproduce the Bug or Issue

Write a feature request instead of an issue

Expected behavior
As a subgraph developer, I can import compare and pairLookupID from graph-ts
Screenshots or Videos
No response
Platform

OS: any
NodeJS: any
@graphprotocol/* version(s): latest

Subgraph Manifest
No response
Subgraph GraphQL Schema
No response
Additional context
No response

I see the point for compare, as it's generic enough to be re-used everywhere. The pairLookupID however is very specific and it feels to me it should not be added in the core library, once you have compare, it's good enough and somehow can implement pairLookupID if needed in their own subgraph.

I think pairLookupID should be renamed to something more generic, like orderedConcat or something like that - dealing with pairs of tokens is such a common thing in subgraphs that we should make dealing with them as simple as possible.
The background to these functions is that they come from keeping a mapping (token0, token1) -> pair in a subgraph to avoid contract calls to look that up every time that translation is needed.


[Suggestion] Add an active update option

It would be nice if QualityCompany had an option to update the hotbar actively.
This would fix some issues, like the scrap value not updating after the  GamblingMachineAtTheCompany mod changed it

Hey @TheBlackEntity,
I have added this as a configurable option in v1.5.0 😄
It's disabled by default and if enabled, will update every second.


Quartz Samples: single tap not registering

While using the Map Sketching sample I noticed many of my taps never seemed to register.  When I first noticed I thought maybe drawing mode wasn't correctly activated or drawing was just broken, but after debugging it seems it's an issue with the length of the tap.
My natural tap duration (while first using app) only seemed to result in onSingleTapConfirmed being called about 1/4 of the time.  After noticing that faster taps were more successful, I'm able to tap more quickly and register the tap more consistently but it still fails enough to require a conscious effort to tap quickly.
Looking at the doc, it seems like this could be related to TAP_TIMEOUT, but it doesn't appear that you can change this while making use of DefaultMapViewOnTouchListener.

What Android Version are you using?  Seems the duration for a single tap changed in ICS (4.04) to JellyBean (4.1.x) and above.  ICS uses 125ms for a single tap and JellyBean+ uses 64ms for a single tap.

@n8ebel We are investigating our implementation and will follow up on our findings.

@doneill  I apologize for the VERY delayed comment.  I just noticed the notification for this.  If it still helps I was running on Lollipop.

@n8ebel We are just using the TAP_TIMEOUT valued defined by the Android OS. I will look to reporting the issue to Google.

@n8ebel We provided a fix for this with beta-3, can you verify it works for you?

I am closing as verified.  @n8ebel Please update the issue if you continue to have issues.


[Fun] Support for OpenRCT API build info

Just a funny idea, but if we're gonna play it, this could be useful information since everyone's still on IRC anyway. :3
EDIT: Perhaps I could get myself into this as a plugin. I'll have a look at it.
https://openrct2.com/download
https://openrct2.com/api/get-latest-build

They have and are still updating their website, can't find documentation to API anymore so this idea will be on hiatus.

Yeah they don't seem inclined to add apis any time soon :(

They probably abandoned their API since the whole project can be tracked on GitHub. Since it's possible to use the GitHub addon, I will abandon this idea.


Add lineup view to team details screen

Watch info here: https://proandroiddev.com/building-a-team-lineup-view-on-android-daaf27e3901e
Useful API methods:

Squads: https://www.api-football.com/documentation-v3#tag/Players/operation/get-players-squads
Fixtures lineups: https://www.api-football.com/documentation-v3#tag/Fixtures/operation/get-fixtures-lineups

[ ] Add PlayerAvatarNameView
[ ] Add TeamLineupView with mocked data
[ ] Receive team's last match lineup from API
[ ] Bind received lineup to the TeamLineupView

I can use ShapeableImageView for player avatar


Next integration

Waiting for response from Zeit support
https://spectrum.chat/zeit/now/500-code-internal-missing-response-from-cache~98e3b256-673c-4aa4-9456-116f96d5c3ce

@viktor-yakubiv Docker is deprecated and is supported only in now version one.

@viktor-yakubiv Not sure if you have time for a review. If not feel free to merge. I ended up using @now/next as express app seems to not be fully supported on now platform.


Remove reference to policy on accepting PRs

There is to policy

Good point :) As I don't think we've developed such a policy, better to omit it. Thanks Tom!


Register the dotnet jupyter kernel to use in ADS

Is your feature request related to a problem? Please describe.
Would like .Net kernel as an option like in Jupyter notebooks
Describe the solution or feature you'd like
Want to be able to choose C# or F# as a kernel in notebooks
Describe alternatives you've considered
I use jupyter notebooks and nteract currently with the dotnet kernel. I have dug around the ADS code to see if i can tie it to the dotnet jupyter kernel, but have not had any luck figuring out how to do so.
Additional context
I generally use ADS for pretty much everything but my company is primarily a .Net company so I would like to be able to use C# code instead of Python. I currently have the dotnet Jupyter kernel installed but switch to using Jupyter notebooks or Nteract if i want C#. Doing this makes things more complicated when trying to share with coworkers that also use ADS.

This is on our radar, and I've been working on this as I've had time.

If the dotnet kernel is installed, users can leverage the dotnet kernel in 2 ways, if the following setting is checked:

If users open a previously saved dotnet kernel notebook, ADS should be able to load these kernels
If users go to new notebook, the dotnet kernels won't show up until users select a Jupyter (i.e. any kernel other than SQL) kernel. After that, you should be able to see the dotnet kernels in the dropdown (this bug is why we haven't turned this functionality on by default).

Additional note on Impact - There have been multiple requests to use multiple languages in the same notebook from livesite engineers.


Segfault when closing non-current tabpage and an autocommand makes the tabpage the current one on BufWipeout

Steps to reproduce

Run vim --clean
Source the following file:

tabedit
let s:window_id = win_getid()
topleft new
setlocal bufhidden=wipe
autocmd BufWipeout <buffer> call win_gotoid(s:window_id)
tabprevious
+tabclose

Vim segfaults

Expected behaviour
Vim does not segfault
Version of Vim
8.2.4628
Environment
Operating system: Arch Linux
Terminal: kitty
Value of $TERM: xterm-kitty
Shell: fish
Logs and stack traces
No response

Closing the tabpage fails here:
https://github.com/vim/vim/blob/5e877baf87530d5c4fe4da2c5a6269cf19526c27/src/ex_docmd.c#L6177
but the buffer is already freed, so drawing the tabline causes a segfault.

Steps to reproduce

Run vim --clean
Source the following file:

tabedit
let s:window_id = win_getid()
topleft new
setlocal bufhidden=wipe
autocmd BufWipeout <buffer> call win_gotoid(s:window_id)
tabprevious
+tabclose

Vim segfaults

Expected behaviour
Vim does not segfault

The documentation for BufWipeout does have this warning:
			Don't change to another buffer, it will cause
			problems.

But Vim should not crash.  I'll see if I can think of a crude way to
avoid the crash.
--
Courtroom Quote #19:
Q:  Doctor, how many autopsies have you performed on dead people?
A:  All my autopsies have been performed on dead people.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Update readme

What does this PR do?
This updates the README to be in line with our new format.

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes
Have you signed the CLA already but the status is still pending? Recheck it.

All done


Reapply "Implementation for /exec using websocket"

This commit reapplies PR #120 that was removed by #353. Below is the
original commit message.
inspired by the POC from @chekolyn

Adds a new requirement on websocket-client
Add a new class WSClient that uses WebSocketApp from
the websocket-client.
Make sure we pass Authorization header
Make sure we honor the SSL settings in configuration
Some of the code will get overwritten when we generate
fresh classes from swagger definition. To remind us
added a e2e test so we don't lose the changes
Added a new configuration option to enable/disable failures
when hostnames in certificates don't match

Fixes #58
Fixes #409

@dulek the websocket related code is still there ... under https://github.com/kubernetes-client/python-base/blob/master/stream/ws_client.py

@dims: Oh, so I assume only change to api_client.py is needed?

@dulek api_client.py is an auto-generated file and we should not edit it. Please refer to example here to know how to do exec calls.

Oh. Thanks for pointing it out and sorry for all the fuss!

@dulek You are welcome and no worries. Let me know how your experience went with exec calls. Any improvements to that process would be most welcome.


Video Call is not working

@thisisarsh1 check once video call is not working

working seamlessly @Fareed95

@thisisarsh1 great its working


HRQ decimal point value cannot be specified

What happened?
In HierarchicalResourceQuota, decimal point value cannot be specified.
It's allowed in ResourceQuota.
What did you expect to happen?
Decimal point value can be specified as ResourceQuota
How can we reproduce it (as minimally and precisely as possible)?
For example, this will be invalid.
test-hrq.yaml
apiVersion: hnc.x-k8s.io/v1alpha2
kind: HierarchicalResourceQuota
metadata:
  name: test-hrq
  namespace: test
spec:
  hard:
    limits.cpu: 1.5	# invalid
    limits.memory: 500Mi
    requests.cpu: 1
    requests.memory: 200Mi

$ kubectl apply -f test-hrq.yaml
The HierarchicalResourceQuota "test-hrq" is invalid:
* spec.hard.limits.cpu: Invalid value: "number": spec.hard.limits.cpu in body must be of type integer,string: "number"
* <nil>: Invalid value: "": "spec.hard.limits.cpu" must validate at least one schema (anyOf)
* spec.hard.limits.cpu: Invalid value: "number": spec.hard.limits.cpu in body must be of type integer: "number"

If set limits.cpu: "1.5", it works.

I couldn't understand the details, but at least it seems that ResourceQuota.spec.hard and HierarchicalResourceQuota.spec.hard are not exactly the same.
ResourceQuota.spec.hard
$ kubectl explain --recursive ResourceQuota.spec.hard
KIND:       ResourceQuota
VERSION:    v1

FIELD: hard <map[string]Quantity>:

DESCRIPTION:

HierarchicalResourceQuota.spec.hard
$ kubectl explain --recursive HierarchicalResourceQuota.spec.hard
GROUP:      hnc.x-k8s.io
KIND:       HierarchicalResourceQuota
VERSION:    v1alpha2

FIELD: hard <map[string]Object>:

DESCRIPTION:

We reuse the k8s parsing code in hierarchicalresourcequota_types.go.
(The ResourceQuota's definition is here)
hierarchicalresourcequota_types.go
...
type HierarchicalResourceQuotaSpec struct {
	// Hard is the set of desired hard limits for each named resource
	// +optional
	Hard corev1.ResourceList `json:"hard,omitempty"`
}
...

However, generated CRD defines the HierarchicalResourceQuota.spec.hard as integer or string.
hnc.x-k8s.io_hierarchicalresourcequotas.yaml
          spec:
            description: Spec defines the desired quota
            properties:
              hard:
                additionalProperties:
                  anyOf:
                  - type: integer
                  - type: string

So it might have something to do with the process of converting _types.go  to CRD by controller-gen.
(Maybe it's a CRD constraint?)


cmake: IS_TEST guessing gets thrown off by symlinks

cmake/app/boilerplate.cmake tries to guess if something is a testcase, to define IS_TEST that then is used to automatically bring in somethings
The test gets thrown off if ZEPHYR_BASE is set to PATH1 and the app source is set to PATH2, where part of PATH2 is a symlink to PATH1.
I'd suggest changing the target of the regex match to both get the canonical path name (equivalent to 'readlink -e')

Actually we should not make this depend on some directory, I would rather define IS_TEST in every testcase that needs that instead, i.e.
set(IS_TEST 1)
tests might be somewhere else and not in the directory structure of the project.


ros_tutorials: 1.9.2-1 in 'rolling/distribution.yaml' [bloom]

Increasing version of package(s) in repository ros_tutorials to 1.9.2-1:

upstream repository: https://github.com/ros/ros_tutorials.git
release repository: https://github.com/ros2-gbp/ros_tutorials-release.git
distro file: rolling/distribution.yaml
bloom version: 0.12.0
previous version for package: 1.9.1-1

turtlesim
* Create turtlesim_msgs (#169 <https://github.com/ros/ros_tutorials/issues/169>)
* Contributors: Alejandro Hernández Cordero

turtlesim_msgs
* Create turtlesim_msgs (#169 <https://github.com/ros/ros_tutorials/issues/169>)
* Contributors: Alejandro Hernández Cordero

Holding for an upcoming Rolling sync.


docs: fix simple typo, withou -> without

There is a small typo in 3rdparty/pulseaudio-headers/pulse/volume.h.
Should read without rather than withou.
Semi-automated pull request generated by
https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

Thanks!


Allow "Await Debugger" in V8 at any time, rather than just on startup

In our application we execute a lot of global/system scripts before we get to the "user" scripts, and most of the time its only those later scripts that we care about debugging, and normally only specific methods inside those user scripts, so pausing execution on startup is a little "heavy handed". Currently I am working around this by manually poking the flag in the V8ScriptEngine with reflection:
                var field = engine.GetType().GetField("awaitDebuggerAndPause",
                    BindingFlags.NonPublic | BindingFlags.Instance);

                field.SetValue(engine, true);

This works fine, but thought it would be nice to make this a supported thing to do, so this PR adds a single method to V8ScriptEngine that lets you set this flag on demand. Its a method rather than just setting the property directly because using a property setter feels like the caller has the responsibility to flip it back afterwards, but the script engine does that itself on next execution.
I haven't added any tests for this because I couldn't see how (other than changing the visibility of the field, which felt icky), but its only a 3 line method so hopefully that's ok :)

It also appears that using "Invoke" doesn't check or use the awaitDebuggerAndPause flag, which means I have to "wrap" executing the function and use Execute, from looking at the code I can't see any reason why adding this in would cause problems, I'll do so if you think its ok?

Hi @grumpydev,
Thanks for your contribution!

It also appears that using "Invoke" doesn't check or use the awaitDebuggerAndPause flag

Quite correct. In fact, ClearScript provides many ways to enter V8's interpreter, and most of them do not honor that flag. Exposing it may work in your scenario, but there may be a more robust and generally useful way to provide the behavior you're looking for. We'll take a look.
Thanks again!