GUI Display on Windows

Running on Linux, a user may run into the following issue:
(delta-e-utils) tniet@SRYE-5143-01L:~/repositories/delta-e-utils$ python3 input.py
Traceback (most recent call last):
  File "/home/tniet/repositories/delta-e-utils/input.py", line 482, in <module>
    FormUI()
  File "/home/tniet/repositories/delta-e-utils/input.py", line 144, in __init__
    self.window = tk.Tk()
                  ^^^^^^^
  File "/home/tniet/miniconda3/envs/delta-e-utils/lib/python3.11/tkinter/__init__.py", line 2326, in __init__
    [self.tk](http://self.tk/) = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: no display name and no $DISPLAY environment variable

The solution may be helpful for resolving the issue. It will be okay in instructions to just describe to the user what to install, we just need the steps

I apologize for any inconvenience caused. Unfortunately, I could not reproduce the reported issue as I am currently operating on a non-Windows platform and do not have access to a Windows machine. However, I am optimistic that the updated executable should effectively address this issue on Windows systems.


tlf_edit_history: some fixes

Some things I noticed when trying to use this on real data:

Without caching, reading it through the file system is awful.  So this allows us to cache it for up to a minute.
Some (hopefully) old conflict resolution bugs didn't always properly mark block pointers as removed, and crChains.getPaths() weren't properly removing those chains.
If a file was created, but only has a setAttrOp, its createOp would get skipped and then it would never be added a notification since there was no syncOp.

lgtm

CI passed, but github wouldn't accept the API call saying that.


New version: Dell.CommandUpdate.Universal version 5.1.0

Created by 🥟 Dumplings.

Resolves #138899

Microsoft Reviewers: Open in CodeFlow

Hi @SpecterShell,
unfortunately we must block this, as we can't validate the installation of the software.
Please see discussion (https://github.com/microsoft/winget-pkgs/issues/115475) for this

Hi @SpecterShell,
This manifest adds Apps and Features entries that aren't present in previous PR versions. These entries should be added to the previous versions, or removed from this version.
(Automated response - build 876.)

Hi @ SpecterShell, unfortunately we must block this, as we can't validate the installation of the software. Please see discussion (#115475) for this

Hi @thmeyer-msft,
This package appears to have passed validation. Why should it be blocked?


Ion-tabs work wrong in full screen mode

Ionic version:  (check one with "x")
[ ] 1.x
[x] 2.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

I use video and ion-tabs in my app.When the video becomes full screen, the ion-tabs at the bottom also  worked, although the icons disappear.
Expected behavior:

When switching element to full screen mode, ion-tabs will completely disappeared and not worked.
Steps to reproduce:

1.Change video to full screen mode.
2.Click the zone of ion-tabs.
Related code:
IonicModule.forRoot(MyApp, {
    tabsHideOnSubPages: true
})

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.4.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.9.4
Xcode version: Not installed
insert the output from ionic info here

Do you have a plunker, screenshot?
What are you using? Windows app, browser (which browser)?

Briefly ,I developed the system on WIN7, and packaged it to android app to run. Besides , I added a plugin which called cordova-plugin-crosswalk-webview while packaging.
When running “ionic serve” on chrome 54.0.2840.99 m (64-bit) and the video fills the screen, the icon-tabs will still in the bottom.

On the other hand, When ionic is running on a android phone platform and the video fills the screen, the icon-tabs disappeared and video control does not worked. Meanwhile ,the app will switch to ‘home tab’ page when I click the PLAY button.

Briefly ,I developed the system on WIN7, and packaged it to android app to run. Besides , I added a plugin which called cordova-plugin-crosswalk-webview while packaging.
When running $B!H(Bionic serve$B!I(B on chrome 54.0.2840.99 m (64-bit) and the video fills the screen, the icon-tabs will still in the bottom.
On the other hand, When ionic is running on a android phone platform and the video fills the screen, the icon-tabs disappeared and video control does not worked. Meanwhile ,the app will switch to $B!F(Bhome tab$B!G(B page when I click the PLAY button.
Do you have a plunker, screenshot?
What are you using? Windows app, browser (which browser)?

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/driftyco/ionic/issues/10132#issuecomment-274326653, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AS91vKSkkiQoq0PVg7kCXUM7ZQCVNizbks5rU0SsgaJpZM4LqTf_.

Thanks for your reply!
Briefly ,I developed the system on WIN7, and packaged it to android app to run. Besides , I added a plugin which called cordova-plugin-crosswalk-webview while packaging.
When running $B!H(Bionic serve$B!I(B on chrome 54.0.2840.99 m (64-bit) and the video fills the screen, the icon-tabs will still in the bottom.
[image1.PNG][image2.PNG]
On the other hand, When ionic is running on a android phone platform and the video fills the screen, the icon-tabs disappeared and video control does not worked. Meanwhile ,the app will switch to $B!F(Bhome tab$B!G(B page when I click the PLAY button.
[image3.PNG]
Do you have a plunker, screenshot?
What are you using? Windows app, browser (which browser)?
$B!=(B
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/driftyco/ionic/issues/10132#issuecomment-274326653, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AS91vKSkkiQoq0PVg7kCXUM7ZQCVNizbks5rU0SsgaJpZM4LqTf_.

Related: https://github.com/driftyco/ionic/issues/10143

I see the same issue with 2.0.1.

Current workaround for me is to set the following:
.ion-page,ion-tab{
contain:none !important
}

Same bug exists for ionic 3+ on android. @shawnlan 👍

Facing same issue with ionic 3.5.0. Lastest tab button is pressed and navigation is performed when video is in full screen when switching to minimize mode as both minimize button and last tab button seem to be overlapping each other. Still a bug? Any plan to fix or should i go with a workaround?
Thanks in advance

This is the screenshot from the Chrome Remote Debugging. The tab button isn't visible but for an unknown reason the button captures click events, so I cannot use Video Controls buttons.

hi have you fixed the problems video controls bar in fullscreen mode on android

Just wanted to bump the thread.
$ ionic info
cli packages: (C:\Users\\AppData\Roaming\npm\node_modules)

    @ionic/cli-utils  : 1.19.1
    ionic (Ionic CLI) : 3.19.1

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 3.1.8
    Cordova Platforms  : android 7.0.0 ios 4.3.1
    Ionic Framework    : ionic-angular 3.9.2

System:

    Node : v8.9.4
    npm  : 5.6.0
    OS   : Windows 10

Environment Variables:

    ANDROID_HOME : not set

Misc:

    backend : pro

I'm using video.js in my Ionic app, which is simply a wrapper for the HTML5 video element. When in video fullscreen, tabs are still showing at the bottom.

Any progress on this issue? I am seeing the same thing using Ionic 3.

on android
video in full screen on my media tab

user cannot get out of full screen mode because clicking the icon to do so in the video player doesn't work, ionic just navigates to the tab that is hidden behind it

any Progress on this issue. Facing same issue when full screen mode is open control is not clickable.

Still a problem with Ionic 3 on Android. In my case the tabs are still visible when in fullscreen. The fix by https://github.com/ionic-team/ionic/issues/10132#issuecomment-282454472 works but should be properly fixed.


Add a Gradle 4.x upgrade chapter

This is a provisional chapter that will hopefully evolve. It covers everything I thought was appropriate from the various release notes.
A few question marks remain:

Whether to mention the dependency lock scheme, since there is still no migration guide from the Nebula plugin
The "From " headings don't seem useful. I'm leaning towards just having headings containing the version number that the corresponding changes were introduced in. So instead of "From 4.3", we would have "4.4".

The nature of some of the content means that the guide needs reviewing and potentially updating every time a new version of Gradle is released until 5.0 comes out.

@pledbrook I hope you don't mind and our work doesn't conflict, but I went ahead and rebased this atop all the latest docs changes and fixed everything up here: https://github.com/gradle/gradle/pull/6165 — should we continue with that PR?

I have a bunch of changes locally — including fixes for links to fit with the recent doc changes — that I haven't pushed yet because I haven't quite finished with them. I'll work on those today and then compare the result to #6165.

Bah, sorry for the duplicate work then. I used your api: link transformer, but ended up with about 9 broken links to fix. Of course there were other non-API links to fix and samples etc.

Interesting that you encountered 9 broken API links using the same script. They all worked for me. Wonder what the difference was. Perhaps I'd already fixed the link to begin with. Do you know what was broken about them? Just wondering if something needs fixing in the script.

@oehme I've addressed your feedback in #6165. Please follow up there.
@eriwen I'm closing this pull request to avoid confusion.


Fix #87: add fs.fsync()

Finishing work begun by @kwkofler in https://github.com/filerjs/filer/pull/176.

Codecov Report

Merging #593 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #593      +/-   ##
==========================================
+ Coverage   86.24%   86.28%   +0.03%
==========================================
  Files          16       16
  Lines        1781     1786       +5
==========================================
+ Hits         1536     1541       +5
  Misses        245      245

Impacted Files
Coverage Δ

src/filesystem/interface.js
92.71% <ø> (ø)
:arrow_up:

src/filesystem/implementation.js
83.15% <100%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

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


[Typescript] @material/lab ToggleButton type attribute typing needs to be updated

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
TypeScript to compile my react code.
Current Behavior 😯
Exact same issue as described HERE except it is occurring for the @material-ui/lab package.
../../../node_modules/@material-ui/lab/ToggleButton/ToggleButton.d.ts(6,18): error TS2430: Interface 'ToggleButtonProps' incorrectly extends interface 'Pick<ButtonBaseProps, "media" | "color" | "hidden" | "style" | "disabled" | "form" | "title" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | ... 269 more ... | "TouchRippleProps"> & StyledComponentProps<...> & { ...; }'.
  Type 'ToggleButtonProps' is not assignable to type 'Pick<ButtonBaseProps, "media" | "color" | "hidden" | "style" | "disabled" | "form" | "title" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | ... 269 more ... | "TouchRippleProps">'.
    Types of property 'type' are incompatible.
      Type 'string | undefined' is not assignable to type '"reset" | "button" | "submit" | undefined'.
        Type 'string' is not assignable to type '"reset" | "button" | "submit" | undefined'.

Steps to Reproduce 🕹
NA
Context 🔦
Build dope stuff
Your Environment 🌎
<EMAIL_ADDRESS>@types/react@latest
typescript@latest

Here's a PR fixing https://github.com/mui-org/material-ui/pull/15202 🙂

It's fixed in v4.0.0-alpha.


Add DS918+ to compatibility list

The amd64 package worked great.

Nice! Thank you for reporting back :)


Added CONTRIBUTING.md

Added CONTRIBUTING.md. Moved environment setup from README.md to the contributing doc. Link to contributing added to README.md. Note that this should also show up in link form when someone creates a new issue or pull request.

I am against moving how to install from the readme. I like it that everybody is contributing in their own way. Lets not start telling people what to do. So I am for closing this PR.

I suppose i didn't look at it from that point of view. I was looking at it more from the angle of helping newcomers in the community. After all the ember community is highly opinion based.
I wouldn't say that the contributing doc tells anyone explicitly what to do other than possible good practice. In fact it encourages coming up with new ways to help out.
Perhaps instead of killing it we modify it?


Update changelog after new release 2.13.0

Summary
I've already updated the release page to contain this changelog -> https://github.com/barryvdh/laravel-ide-helper/releases/tag/v2.13.0
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[x] Misc. change (internal, infrastructure, maintenance, etc.)

Checklist

[ ] Existing tests have been adapted and/or new tests have been added
[x] Add a CHANGELOG.md entry
[ ] Update the README.md
[ ] Code style has been fixed via composer fix-style

Thanks!


Support for PT 2 - PJRT runtime

Neuron SDK has released beta support for PyTorch 2.0 in the 2.15 release with a new PJRT runtime. This needs to be supported by Optimum Neuron if running with PT 2.0

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!


Running tests in parallel using a docker container errors due to multiple processes accessing the same .tar file

When trying to run tests in parallel using a custom docker file using the ImageFromDockerfileBuilder to build the image, the processes try to access the same .Tar file.
To Reproduce
Steps to reproduce the behavior:

Create project with Xunit
Add 2 test classes
Build the image from custom docker file
Run all the tests Xunit should run the tests in parallel by default.

Create multiple of the same docker container, one for each Xunit test class and run the tests against the relevant container.

Windows 10
Dotnet 6
Xunit 2.4.1
Testcontainers 2.1.0

This is my practice project:
https://github.com/haridasnykiel/TryTestContainers/tree/main/Weather.API.IntegrationTests

You have to build the image first, then reuse the id. I assume you do not await the task and build the image twice, see:
https://github.com/testcontainers/testcontainers-dotnet/blob/f7c0fc6bed67d706ad03c2d89ca19767b323ed92/tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs#L82

Thanks for that, yea I realise my example is in a private repo. Your suggestion has given me an idea, Ill try it first.
FYI - I am building the image and waiting for the task to complete, I think I have it in the wrong place.

I am also experiencing this issue. I need to create an image for the sql database that publishes the dacpac to server as part of the image build. So for each test class this image will be built and used to create the database container. However, every time I try to run these in parallel I get this issue. I'm not entirely sure how to get around it. Our test set up is rather complex and uses multiple containers. I have been trying to get this to work for a while now. Any advice would be very appreciated.

Make sure you are building the image just once and reuse the id.

Yes, I use xUnit. That will solve the problem, using collection definition. I am working on someone else's test set up and it's very over engineered and complex. I will rewrite and implement this. I can't thank you enough for your time and help. This package is great.

Re-using the image instance worked for me thanks.


Update version number automatically in content

In v2 we have many reference to the current version number and we want from now on to only specify specific version number. But there are multiple instance of the version in the markdown: we need to update that automatically in the release process.

Can we have something like {{ VERSION }} in markdown, and if metalsmith does not have that feature yet, we can simply .replace('{{ VERSION }}', theActualVersion)  in the build, right?

MetalSmith being very flexible we can add that to the pipeline :) 👍

This one is too painful to wait for 2.1. Moving it to 2.0.x


Using armeria grpc client in spring mvc can't propagate trace context

We have a spring-mvc application. It uses spring-cloud-sleuth for distributed tracking. We also use Ameria's Client to call our backend Ameria Grpc service.
Expect:
Tracing should work good, Ameria's client should use the same trace of spring mvc's request.
But in fact:
Ameria's client create a new trace.
More info:
some code:
    @Bean
    RecommendServiceGrpc.RecommendServiceBlockingStub recommendServiceBlockingStub(
            Tracing tracing
    ) {

        return new ClientBuilder("gproto+http://group:ai-recommend-v2/")
                .decorator(HttpTracingClient.newDecorator(tracing))
                .build(RecommendServiceGrpc.RecommendServiceBlockingStub.class);
    }
    @Bean
    CurrentTraceContext.Builder sleuthCurrentTraceContextBuilder() {
        return RequestContextCurrentTraceContext.newBuilder();
    }

warning in log:
2019-05-14 15:35:50.425  WARN [,,,] 34541 --- [nio-8081-exec-1] .a.c.t.RequestContextCurrentTraceContext : Attempted to propagate trace context, but no request context available. Did you forget to use RequestContext.contextAwareExecutor() or RequestContext.makeContextAware()?

We tried to customize the executor of tomcat, but the application would throw RequestContext unavailable when starting up.
    @Bean
    WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatServletWebServerFactoryWebServerFactoryCustomizer() {
        return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
            @Override
            public void customize(TomcatServletWebServerFactory factory) {
                factory.addConnectorCustomizers(
                        new TomcatConnectorCustomizer() {
                            @Override
                            public void customize(Connector connector) {
                                ProtocolHandler handler = connector.getProtocolHandler();
                                if (handler instanceof AbstractProtocol) {
                                    AbstractProtocol protocol = (AbstractProtocol) handler;
                                    protocol.setExecutor(
                                            RequestContext.current().makeContextAware(
                                                    protocol.getExecutor()
                                            )
                                    );

                                }
                            }
                        }
                );

            }
        };
    }

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is java.lang.IllegalStateException: RequestContext unavailable
.....
Caused by: java.lang.IllegalStateException: RequestContext unavailable
	at com.linecorp.armeria.common.RequestContext.current(RequestContext.java:75)

It sounds like you are using the normal spring-mvc tomcat server with an armeria client. Out of curiosity, have you thought about using armeria's native support for spring-mvc? Then the tracing should work without worrying about where the context is coming from, and you'd probably get better performance / HTTP/2 support for free.
https://github.com/line/armeria/tree/master/examples/spring-boot-tomcat
But in the case that spring is the server, it is setting up trace contexts while armeria's RequestContextCurrentTraceContext assumes armeria is setting up trace contexts. We usually use RequestContext for trace propagation since armeria code tends to be asynchronous and switch threads, and propagating the context in a single ThreadLocal often doesn't work. But I guess when adding an armeria client to a blocking server, this isn't a case that would happen much in practice. I think we can relax our current ensureScopeUsesRequestContext check to log instead of throw - for highly asynchronous servers, it would still be problematic not to use the request context state, but for simple blocking ones it could still work.
/cc @adriancole

Thanks for your response.
Yes, we could migrate this application to Armeria, however, It would be better if there's another solution without migrating because we have some other services, those maybe not easy to migrate.

I agree with @anuraaga worth a try first.


Wikipedia recipe

wikipedia recipe

Pre-flight Checklist
Please ensure you've completed all of the following.

[ ] I have read the Contributing Guidelines for this project.
[ ] I agree to follow the Code of Conduct that this project adheres to.

Description of Change

This is a proposal for a new recipe for easy access to Wikipedia. It accesses the general Wikipedia site (wikipedia.org).
Notice: I created the recipe manually based upon existing recipes. I did not follow the guide outlined here: https://github.com/ferdium/ferdium-recipes/blob/main/docs/integration.md because it somehow does not work on my Linux computer and presents errors. However based on the examples I used I believe the recipe is correct. If it is not please let me know.

I’d just name it “Wikipedia” rather than “Wikipedia The Free Encyclopedia”.

@victorbnl  “Wikipedia The Free Encyclopedia” is the official name of the project which is also included on any Wikipedia site. This is the same as in your Perplexity recipe. That site is usually referred to as "Perplexity". Your recipe names it (correctly) Perplexity AI.

Perplexity is referred to as “Perplexity AI” at least in the tab title.
On Wikipedia’s home page, the tab title is “Wikipedia”. As for the logo, “The Free Encyclopedia”, by its style, looks to me more like a subtitle than a part of the name.
Also if you go to Wikipedia’s “About” page, it is referred to as “Wikipedia, the free encyclopedia” once and “Wikipedia” more than ten times. That makes me think that in the first occurence, the “the free encyclopedia” part was not part of the name but just an explanation of what it is.
However I would like to know where you saw it as the official name of the project.

I ran it through Perplexity, which tells that the official name is just "Wikipedia", also the official logo is the one that I've included in the recipe. So it remains a mystery why all wikipedia sites have the phrase "The Free Encyclopedia" (or the localized version of it) in the logo and apparently do not display the official logo.
Anyway, I've changed the recipe to display just "Wikipedia" and I've made it possible to add a custom url because I prefer the localized version of my country instead of the general site. Because there are 300+ localized sites hardcoding them in the recipe is not really an option.

This version bump right from 1.0.0 to 1.2.2 looks strange and is useless but I don’t know if this is a problem. I don’t think it is technically, but let’s see what say the developers. Other than that it looks good to me.

Thanks, for your input.
Going from the previous version to the current version I've made (in my opinion) two larger changes and two smaller changes. Hence the version bump to 1.2.2. During my tests not everything worked as expected so some things are changed twice. I did not commit the intermediate versions.
I don't really care about the version number so I'll leave it to the developers to decide what it should be if the recipe is going to be accepted.

The thing is your changes do not really matter because you are adding a recipe, and you made the changes locally. The version number is used so that clients know when to update the recipes. However here there is nothing to update, because nobody has the Wikipedia recipe yet, so you could as well have not increased the version number at all. Similarly when doing multiple local changes, it’s enough to increase the version number only once as it will update everyone’s recipe.
Nevertheless it is only my take on it, maybe developers will agree with increasing the version number on every local change and even for new recipes, so please correct me if I’m wrong.

@SpecialAro Per your request I've changed the version to 1.0.0

Thank you @meiphoo7-Mae !

@SpecialAro
Just checking...
Can I delete this (temporary) repository?

My bad @meiphoo7-Mae. I thought I've approved and merged it already. Doing it now! Thank you!

Thanks, I'll keep the repository active.

@allcontributors-bot - please add @meiphoo7-Mae for code

@all-contributors - please add @meiphoo7-Mae for code


flex: 0 1 auto causes a "Failed to parse declaration" error

the default value for the flex shorthand (0 1 auto) fails to be parsed by css-to-react-native when passed through styled-components
repro case:
import { styled } from 'styled-components/native'

const MyComponent = styled.View`
  flex: 0 1 auto;
`

seems as if https://github.com/styled-components/css-to-react-native/blob/master/src/transforms/flex.js#L33 may hold the key here. Perhaps
  function matchesLengthOrAuto(tokenStream){
    return tokenStream.matches(LENGTH) || tokenStream.matches(AUTO);
  }
  else if (flexBasis === undefined && matchesLengthOrAuto(tokenStream)) {
// ...

could be a workable solution.


Should MVM deployment allow a custom app.yaml without selecting a custom Dockerfile?

Or vice versa.
Currently, if the user attempts this, the deploy will fail with an exception (filenotfound for the config file that was not specified).

One option is to allow the user to select one of the custom configs but not the other (and fall back on the default option for the one that was not selected).
The other option is to show an error message - i.e. if the user selects 'Custom' then he must select both and app.yaml and a Dockerfile.
I'm in favor of the later option.

I like the later option. There is already a 'Generate...' button for each of the config files, and clicking it will auto-fill the input text box.

Let's just not validate the app.yaml and Dockerfile configuration.  If they
screwed up gcloud can complain.
On Tue, Mar 29, 2016 at 2:28 PM, Chanseok Oh<EMAIL_ADDRESS>wrote:

I like the later option. There is already a 'Generate...' button for each
of the config files, and clicking it will auto-fill the input text box.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/gcloud-intellij/issues/554#issuecomment-203039131


multi videos

Fix #905

a couple of tests are failing due to an import error:
No module named 'tenacity.asyncio'

any idea what could be causing this @CodyCBakerPhD @h-mayorquin ?

Looks like a known issue with tenacity as of 2-6 hours ago: https://github.com/langchain-ai/langchain/issues/22972

fix LGTM; can you add some tests then this is good to go?

Tests look good @luiztauffer
Thanks
One last note from Heberto to resolve then good to go

@h-mayorquin I'm not sure how much more explanation would be needed there, do you think this is good enough now?

that was a typo, thanks @weiglszonja !
@h-mayorquin how about now? Otherwise, yeah, I'd be happy to review a PR on that. That argument basically changes the key name for the metadata entry for that specific data interface within the converter context

that was a typo, thanks @weiglszonja ! @h-mayorquin how about now? Otherwise, yeah, I'd be happy to review a PR on that. That argument basically changes the key name for the metadata entry for that specific data interface within the converter context

OK, check https://github.com/catalystneuro/neuroconv/pull/928 to see if I get your intent right.


[feat]: embassy container init

Prerequisites

[X] I have searched for existing issues that already suggest this feature.

Describe the Feature Request
Given that we have the long running docker containers, we noticed that we didn't have the correct solution during the kill. Instead of know what procresses we created for the main exec, we just sent in the assasin that kills himself.
Describe the Use Case
We would like to be able to know:

[ ] What procresses where created/ ended
[ ] Ability to end them

Describe Preferred Solution
Something similar to any other init system. We need to start the exec on the long running container. We could send the command, and start it via a subprocess.
Then when it finishes we will need to know, or if it errored.
We need to track and store the logging.
Describe Alternatives
No response
Anything else?
No response

dup #1785


Styles export

Before styles was removed, I used it to remove all styled-system props from elements (blacklist) with the help of clean-element.
Ho to do it now?  Only to list them one by one ...

I understand that I can use the @styled-system/should-forward-prop package


how to publish json struct to pubsub

how to publish json struct to pubsub
i'm using publish with json struct but got error
is not type of *bytes.Frame or proto.Message
please help

You need to change your broker codec to json marshaler

I will default it to json


Vapoursynth script support

Avisynth and Vapoursynth are frameservers with a plugin system that allows very flexible per-frame manipulation of videos for various purposes:
See: http://avisynth.nl/index.php/External_filters

3 Restoration Filters

3.1 Anti-aliasing
3.2 Chroma correction
3.3 Debanding
3.4 Deblocking
3.5 Dehaloing
3.6 Deringing & Mosquito Noise
3.7 Deinterlacing
3.8 Duplicate Frame Detectors
3.9 Fieldblending and Frameblending removal
3.10 Film Damage correction
3.11 Frequency Interference removal
3.12 IVTC & Decimation
3.13 Ghost Removal
3.14 Logo Removal
3.15 Luma Equalization
3.16 Rainbow & Dot Crawl Removal
3.17 Stabilization

4 Denoisers

4.1 Spatial Denoisers
4.2 Temporal Denoisers
4.3 Spatio-Temporal Denoisers

5 Adjustment Filters

5.1 Averaging/Layering/Masking
5.2 Blurring
5.3 Borders and Cropping
5.4 Colourspace Conversion
5.5 Effects
5.6 Field Order
5.7 Frame Rate Conversion
5.8 Frame Replacement/Range Processing
5.9 Levels and Chroma
5.10 Line Darkening
5.11 Resizers
5.12 Sharpeners
5.13 Rotation/Shear/Skew/Perspective
5.14 Subtitling
5.15 Transitions

6 Other Filters

6.1 Debugging/Diagnostic Filters
6.2 Edge Detection
6.3 Export Filters
6.4 Import Filters
6.5 Meta-Filters
6.6 Multipurpose Filters
6.7 Scene Change Detection
6.8 Support filters
6.9 Deepcolor Filters
6.10 3D Filters
6.11 Libraries

Those filters can then be combined in an user script for specific purposes (improving compressibility, dealing with Inverse Telecine or interlacing, deshaking, denoising, supersampling, improving videos from old cameras or VHS, removing the "edge enhancement" that is common place in some DVDs).
Avisynth is Windows-only and development has stalled but Vapoursynth its spiritual successor (and a pun about Avisynth being vaporware) is written in Python and most of the community has ported important Avisynth plugins to it: https://github.com/vapoursynth/vapoursynth.
Example wrappers in other languages:

C++: https://github.com/sekrit-twc/vsxx,
Rust: https://github.com/YaLTeR/vapoursynth-rs

Note that mencoder and x264 both can be build with avisynth/vapoursynth input support.
For example a non-trivial Vapoursynth script to deal with the following compression artifacts:

Ringing
Staircase noise
Blockiness

https://github.com/IFeelBloated/Oyster
Community forum for both: http://forum.doom9.org/forumdisplay.php?s=1862ef90a6538ce2f8e5e3fb4e8e7ba1&f=67
Supporting Vapoursynth as a backend would bring VidGear a lot of additional video processing capabilities that are unmatched by just OpenCV and FFMpeg. Furthermore all the in-depth knowledge that has been accumulated in the past 20 years in the video encoding community could be reused in VidGear.

Avisynth and Vapoursynth are frameservers with a plugin system that allows very flexible per-frame manipulation of videos for various purposes:
See: http://avisynth.nl/index.php/External_filters
Those filters can then be combined in an user script for specific purposes (improving compressibility, dealing with Inverse Telecine or interlacing, deshaking, denoising, supersampling, improving videos from old cameras or VHS, removing the "edge enhancement" that is common place in some DVDs).

@mratsim Wow, this is huge. Thanks for the Nicely elaborated & detailed insight.

For example a non-trivial Vapoursynth script to deal with the following compression artifacts:
Ringing
Staircase noise
Blockiness
https://github.com/IFeelBloated/Oyster

I mean wow, those results are awesome in the given repository link. But, Does these processes will also work for memory-constrained devices? Also, are we able to put out real-time performance with vapoursynth library?

Example wrappers in other languages:
C++: https://github.com/sekrit-twc/vsxx,
Rust: https://github.com/YaLTeR/vapoursynth-rs
Community forum for both: http://forum.doom9.org/forumdisplay.php?s=1862ef90a6538ce2f8e5e3fb4e8e7ba1&f=67

Awesome, this will be helpful. But, Is there's any python wrapper already implemented somewhere else? tho any additional related python reference/examples would be amazing if possible.

Avisynth is Windows-only and development has stalled but Vapoursynth its spiritual successor (and a pun about Avisynth being vaporware) is written in Python and most of the community has ported important Avisynth plugins to it: https://github.com/vapoursynth/vapoursynth.
Supporting Vapoursynth as a backend would bring VidGear a lot of additional video processing capabilities that are unmatched by just OpenCV and FFMpeg.

Thanks for sharing this info. An initial glance into Vapoursynth library documentation, I think implementing it as a backend for vidgear is definitely possible, but with numerous challenges ahead. For now, I'm adding this feature to the next milestone and already have started working on it. Luckily, If everything went easy, I'll post an update or roll out PR related to this enhancement in upcoming days. Kindly stay tuned.

Vapoursynth is Python ;), AFAIK everything needed is here: https://github.com/vapoursynth/vapoursynth/tree/master/src/cython

Vapoursynth is Python

@mratsim yeah i knew that. The primary reason i asked for a existing python API wrapper was to see how to handle vapoursynth installation of mutliple OSes through python directly. Because looking through its documentation, the pypi installation seems to install python API only which is useless without main library. Also, what we can see from issue section of this library is that many people are having trouble building this library on their machines. Btw, Do we have any static builds available for vapoursynth library?

In terms of performance, it depends on the plugins, those with GPU backend like https://github.com/pinterf/FFT3dGPU are really fast. Those implemented in C or Assembly depend on the implementation and the heaviness of the computation, and those implemented in Python are slow for obvious reasons ;).For example FFT3d (https://github.com/Klimax/FFT3DFilter/blob/master/FFT3DFilter.cpp) was notoriously slow back in 2004 when it was released but since then fftw had numerous SIMD (including ARM Neon) and multithreading improvement and now processors have decent L1 and L2 cache which makes it much easier for software to use optimize for.

Thanks for this valuable information. I'll add it to the wiki docs later when this enhancement is merged.

Unfortunately I use Linux (and Arch) as my main machine to have sane shared library management, so I never explored that options.
A quick Google search brought me to: https://github.com/DeadSix27/python_cross_compile_script/issues/61 and https://forum.doom9.org/showthread.php?s=34450361102aeecbca2d2d545978f7ba&p=1840806#post1840806 and looking into the repo there is a static build commit: https://github.com/vapoursynth/vapoursynth/commit/519b61dba35a5c83cb1dba89d7ec2f2eef41e398

A quick Google search brought me to: DeadSix27/python_cross_compile_script#61 and https://forum.doom9.org/showthread.php?s=34450361102aeecbca2d2d545978f7ba&p=1840806#post1840806 and looking into the repo there is a static build commit: vapoursynth/vapoursynth@519b61d

Thanks. I'm thinking of building pre-compiled binaries for each platform and then auto-set them up inside vidgear, as a newbie won't be able to compile it properly.

@mratsim the  vapoursyth's SIL Open Font License 1.1 license that emphasis "Same license " condition and other restrictions, and non-maintained VapourSynth packages for Linux environments, plus slow development in recent year are some major roadblocks for adopting this library for vidgear. On top of everything, a very simple task of installing this library is too tedious, buggy and thereby non-ideal with easy-to-use vidgear library, where our goal is to simplify things. In contrast, there are many examples such as ZMQ and FFmpeg itself, that provide easy, straightforward installation of their binaries on every platform.  I think we should wait for the vapoursyth project to mature further and finally fix these problems, and then we can plan of adding this feature into vidgear.

I understand the packaging reasons.
Regarding SIL I think there is a misunderstanding though, the SIL Open Font license is a font license, not a code license and it only applies to the terminus font that is shipped here: https://github.com/vapoursynth/vapoursynth/blob/9e193706ca13a2f7efbb0c612e148628f2c86601/src/core/ter-116n.h
Terminus is also a quite popular font that is available as a package in many distros.
SIL is a big as Apache or GPL in the open-source font world.

the SIL Open Font license is a font license, not a code license and it only applies to the terminus font

@mratsim Is source-code license something else? Is it due to Terminus font, they have to adopt this license as a whole? If that's the case then they should have gone with Dual licensing. Tho' the real turn off point was there's no true effort being made by project devs in providing easy access to these binaries to the users. No doubt vapoursyth is awesome at what it does, but right now if you need this library, you've to compile everything from scratch yourself that's not ideal for most of the people. Moreover, the issue count is really huge on that library and every next issue is related to failing to compile it properly.


Replace sae_visualization code with dependency on sae_vis repo.

We were previously using some copied code, but should update to importing Callum's new codebase here.
To do:

[ ] Get Feature Dashboard Runner working with SAE's trained via this code base.
[ ] Scope out any possible mismatches between our SAEs and those supported by sae_vis.

done.


Minor span tracing improvements

Don't set observer null when ending span
Encapsulating the entire span in a state containing the observer and span and setting it null on end() prevents the creation of subspans after the span has ended.

Add getObserver to SpanBuilder

Switch span tracing APIs to use kj::ConstString

Why do we need to be able to create subspans after the span has ended? I think the original design expected that would never happen.

There's nothing saying it's invalid, and you can technically do it today by making a separate SpanParent to make the child instead of the SpanBuilder after it's ended. I guess I intended it more as a consistency thing.

A real example would probably be something like, operation A spawns operation B, but operation A actually ends before operation B has technically "started" because of runtime shenanigans.


adding "client typing" sockets that emit to operator (#21)

hmm I don't know why the formatting is all messed up...

maybe install atom's go formatter? Vscode's go plugin is also top notch

oops I will fix the build

approach not needed


skill calculator: Add creation and burning of pyre logs & update agility in line with Project Rebalance: Skilling

Co-authored by: @DapperMickie<EMAIL_ADDRESS>Close #17780
Add creation and burning of pyre logs, along with Morytania elite bonus.

Added in ac566dcb1f96f9224284a1d5cbddec7bd796cd6c, 376713ad3a552a58ff3bc1344c38d45184973de0, and 240b74c0af284a5d7e294ee0c19e4c6ae0027577


Bug: cppwinrt does not support chinese path

Version
2.0.230225.1
Summary
As title suggest
Reproducible example
1. On a chinese version of windows, create a username that has Chinese characters.
2. Create a C++ UWP project, update cppwinrt nuget if necessary.
3. Compile.

Expected behavior
Compiles fine
Actual behavior
已启动生成...
1>------ 已启动生成: 项目: BlankApp1, 配置: Debug x64 ------
1>cppwinrt : error Path 'C:\Users\涓枃鐢ㄦ埛\source\repos\BlankApp1\x64\Debug\Merged\BlankApp1.winmd' is not a file or directory
1>C:\Users\中文用户\source\repos\BlankApp1\packages\Microsoft.Windows.CppWinRT.2.0.230225.1\build\native\Microsoft.Windows.CppWinRT.targets(848,9): error MSB3073: 命令“"C:\Users\中文用户\source\repos\BlankApp1\packages\Microsoft.Windows.CppWinRT.2.0.230225.1\build\native\..\..\bin\"cppwinrt @"x64\Debug\BlankApp1.vcxproj.cppwinrt_comp.rsp"”已退出，代码为 1。
1>已完成生成项目“BlankApp1.vcxproj”的操作 - 失败。
========== 生成: 0 成功，1 失败，0 最新，0 已跳过 ==========
========= 生成 开始于 11:40 AM，并花费了 00.643 秒 ==========

From this log, You can see cppwinrt.exe does not handle the path correctly, while msbuild.exe does

Additional comments
Windows 10 1809
Does NOT enable the beta UTF-8 support in language settings, because normal user won't have this enabled.

Thanks for reporting! Fix is here: #1307

Using UTF-8 codepage manifest won't help OP here though, since it is supported in v1903+.

Officially Windows 10, Version 1809 (Build 17763) has been out of the support lifecycle for 2-3 years.
https://learn.microsoft.com/en-us/lifecycle/products/windows-10-home-and-pro
https://learn.microsoft.com/en-us/lifecycle/products/windows-10-enterprise-and-education
Windows Server 2019 is Build 17763 so that's really the only currently supported scenario for it. Mainstream support ends in ~7 months.
https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2019


On-demand DNS fetching

Yush G, [2024-02-25 08:37]
would be nice to have on demand fetching — that way we could even have like, a ratelimited reload button on the corner of each record, that people could double check that that dkim key is still the case rn

Also add a 10 sec cooldown

Olof, [2024-02-25 08:41]
should we also do re-fetching from DNS when someone uploads an already known domain/selector-pair?
(note that then, popular domains such as twitter, will be re-fetched all the time, as almost everyone has them in their inbox)
Yush G, [2024-02-25 08:48]
yeah maybe we can have a 1hr cooldown for the email uploads and a 10 sec cooldown for the refresh button?


[Swift 4.2] Updated Minimum Edit Distance Playground for Swift 4.2

Checklist

[x] I've looked at the contribution guidelines.
[x] This pull request is complete and ready for review.

Description
Updated Minimum Edit Distance Playground for Swift 4.2. Only change was removed deprecated String.characters usage.
For issue #748.

Thanks for the update 😄


Fixissue8076branch

Summary
A Google search for "qiskit barrier" is not informative and leads one to the API reference (https://qiskit.org/documentation/stubs/qiskit.circuit.library.Barrier.html) where there is still no explanation. It was proposed that this be updated by a much more useful description on StackExchange (https://quantumcomputing.stackexchange.com/questions/8369/what-is-a-barrier-in-qiskit-circuits/8371#8371).
Details and comments

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: faraimazh:x: Farai Mazhandu (Local Admin)Farai Mazhandu (Local Admin) seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

hi @faraimazh are you still working on this?

closing this as contributor is unresponsive, we can reopen at a later date if the return 😄


Reply To Posts*

User can reply to a post, although no reply is shown form resets and closes if successful, will implement further when I add the post specific page and create replies.


Safari HLS MP4 profil switch

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
Demo page
Can you reproduce the issue with our latest release version?
N/A
Can you reproduce the issue with the latest code from master?
N/A
Are you using the demo app or your own custom app?
Demo
If custom app, can you reproduce the issue using our demo app?
N/A
What browser and OS are you using?
Safari 12.1.2 (14607.3.9) macOS 10.14.6
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A
What are the manifest and license server URIs?
The 2 demo example for Live HLS MP4
(Shaka Player History and Clear, Live HLS)
What did you do?
Start the player
What did you expect to happen?
To have the possibility to change the resolution.
What actually happened?
The resolution button is not display and if the player change the resolution by itself, the video freeze.

@joeyparrish it's the src= thing, isn't it?
Here is the best I remember about the way it works, I tagged Joey who worked on the implementation, so he can come and set things straight if give you a goofy explanation :)
Safari has it's own implementation when it comes to hls and does not have great support for Media Source Interface, which is what we interact with in other supported browsers.
If we see an hls manifest, we just give it to Safari to do its own thing, and don't really have control over which tracks it plays, hence the lack of the resolutions button: we can't tell Safari what to play.
The fact that the Shaka livestream hangs after the first few seconds is an unrelated problem - the stream itself is down at the moment :(

Yes, the Shaka Player History live stream is down.  I told @vickymin13 somebody would notice eventually.  :-D
We don't use src= for all HLS on Safari.  We use src= for all playback on iOS, though, where MediaSource doesn't exist.  For desktop Safari, we can still use MediaSource, so we prefer that, IIRC.

@ismena just corrected me privately: this is using src= for HLS on desktop Safari after all.  I must have misremembered the logic for choosing between src= and MediaSource on desktop Safari.

Here's #2116 to look into using MediaSource on desktop Safari.

Ok, thanks,
Hls.js find a way to allow the user to change resolution, using a similar solution is possible ?

Hls.js find a way to allow the user to change resolution, using a similar solution is possible ?

hls.js is parsing the HLS manifest and playing it back using MediaSource.  That is what we do for other platforms and browsers, but we default to using native src= on Safari for FairPlay support.  That is what #2116 is trying to change.  You can force us to use the MediaSource version with:
player.load('manifest.m3u8', null, shaka.hls.HlsParser);

Now there is a configuration to not use src= on Safari.  You can set the streaming.useNativeHlsOnSafari configuration to false to be able to select tracks; but this won't work if you want to play FairPlay content.
Does this answer all your questions?

Yes, thanks a lot, I close the issue


Fix frontend-side route conflicts

Motivation:
Our frontend-side router has conflicts like:

/:projectName/new vs. /:projectName/:repoName when repoName is new
/projects vs. /:projectName when projectName is projects

Modifications:

Make sure all entity paths have the form of
/projects/:projectName/repos/:repoName
Clarify the type of the entity being created

new -> new_project, new_repo or new_file

Result:

Fixes #270
A user can create and access a repository whose name is new, list,
files, etc, from the web UI.
A user can create and access a project whose name is projects,
metadata, etc, from the web UI.
URLs of the entities in the web UI have been changes in an incompatible way.

Note: The server-side HTTP API remains unaffected.

/cc @occho

Thanks, reviewers.


cannot replace to ${1} when using regex to replace

VSCode Version: Code 1.15.1 (41abd21afdf7424c89319ee7cb0445cc6f376959, 2017-08-16T18:07:25.676Z)
OS Version: Windows_NT x64 10.0.14393
Extensions:

Extension
Author (truncated)
Version

cpptools
ms-
0.12.3

csharp
ms-
1.12.1

Steps to Reproduce:
1.replace string 'a' with search pattern (a) to ${1}, the expected result is 'a', but indeed is '${1}'
2.

Reproduces without extensions: Yes/No

Is this a feature we've supported before, or a new feature request?

use $1, not ${1}


parameter value is missing in the line 171

Hi @robinsh, would you review the proposed changes? Thanks.

@v-shills I no longer work on Storage. Can you please assign to @tamram instead?

@tamram - Would you review the proposed changes? Thanks

@sign-off This looks right to me, and Tamra isn't responding, so let's merge it.
@leowumsft Thanks for your contribution.

@robinsh @leowumsft - thank you.


Download parallelism and concurrency

I have just recently started downloading bigger batches of videos.
This resulted in couple of simple features which might be introduced to significantly improve performance of the software:

Downloading videos simultaneously - This might be useful due to the current processing pipeline used within the software which is Download -> convert (if I understand correctly). Instead of that if there would be a way to download 3 videos at a time it would improve the use with higher bandwidth networks.
Downloading next video when the one that was downloaded is processing. Currently the bottleneck within software is happening when a video has downloaded and needs to be processed which slows down the overall capability of downloading bigger batches of content.
Batch download all the videos added to the search section of the software with custom settings or with default settings which are the source (highest) for every added video.

Overall the software works perfectly and is state of the art. Unfortunately I am more familiar with Python than C# so I am unable to effectively help in the regards mentioned above.
I hope this helps!

This will be all possible when #46 is done.
Parallel download is already implemented but not obvious. A single VOD consists out of let's say 11000 parts. All those parts are downloaded in parallel batches of 10 at a time. So downloading multiple VODs "in parallel" does not improve download speed since the count of parallel batches would stay the same.


References to APIs are replaced with code blocks

Describe the bug
References to APIs are replaced with code blocks.
To Reproduce
Steps to reproduce the behavior:

Go to https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.unittesting.assert.throwsexception
See error

Expected behavior
Clickable links, not code blocks.
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Browser: Chromium based

This issue was moved to dotnet/dotnet-api-docs#4520

This issue is not actually in the dotnet/dotnet-api-docs repo, so I'm reopening it here. The fix will need to be made in the API source code. FYI @gregvanl .

The source code is probably using a code tag instead of c.


Help With Tweaking The Default Minimal Mistakes Layout

goal: I want to be able to override layout factors in my page. Example: I could create more space between the sticky sidebar element and the article element on both articles and the about page.
tools:
Chrome Version 113.0.5672.93 (Official Build) (64-bit)
VS Code
blog-in-a-box based project with no significant changes, only typical customization of _config.yaml and the below added files for stylesheets
existing:

desired:

I was able to achieve the above using the modification to the css pictured in the 'desired' image. the new portion added to the .archive class was padding 0 3rem !important;
what I've tried so far:
reading through this guide https://mmistakes.github.io/minimal-mistakes/docs/stylesheets/ and attempting to follow the instructions under "Customizing" section. I tried creating a copy of main.scss first and then saw this note:
*Note*: To make more extensive changes and customize the Sass partials bundled in the gem. You will need to copy the complete contents of the _sass directory to <your_project> due to the way Jekyll currently reads those files.

since for this particular change I want to be modifying the .archive class and that has its own partial, I expect I needed to copy over the whole _sass/ directory. Here is a screenshot of my vscode project explorer, to show what I have done to structure the directories within my project:

So I'm doing this now. in the _sass/_archive.scss partial, I have added that padding line:
.archive {
  margin-top: 1em;
  margin-bottom: 2em;
  padding 0 3rem !important;

  @include breakpoint($large) {
    float: right;
    width: calc(100% - #{$right-sidebar-width-narrow});
    padding-right: $right-sidebar-width-narrow;
  }

  @include breakpoint($x-large) {
    width: calc(100% - #{$right-sidebar-width});
    padding-right: $right-sidebar-width;
  }
}

but when I am doing localdev I am not seeing this style show up when I inspect the page with chrome dev tools.

I figured it out.
Minimal mistakes is assuming you're operating from the root of the repository. But one trade-off we had to make for GitHub pages is that everything in blog-in-the-box is in the docs subfolder.
So, your overrides weren't overriding because the file wasn't in the right spot.
Submitted https://github.com/nsubordin81/blog.synapseflux.com/pull/3, which should fix the problem. We can close this once that's confirmed (though my local preview showed the change as expected)

Oh that makes total sense! Wow good catch, thank you thank you thank you! That not only solves this particular change but now I can override anything in the way the theme describes. Sa-weet. Going to approve and merge the pr before closing this out, probably tomorrow or Monday, doing all this typing on my 🤳


on-page-changed called twice with 2 controls on the page

I have 1 collection that uses 2 controls (1 on top of the table, 1 on the bottom of the table). The 2 controls are for the same collection.  My issue is that the on-page-change event gets called twice when I click on a page #.  When I remove one of the controls it works fine, but I need to have both controls on the page.  Thoughts?

I realize this is an old issue, but perhaps you could add a note to the README about this?
I ran into this same issue and was puzzled until I eventually stumbled upon this issue.

@craigcabrey Just took another look at this and realized that you can also just remove the on-page-change attribute from one of the pagination controls directives, and it should fix the double callback issue.
Not sure if it is a frequent enough issue to warrant going in the readme. On reflection it almost seems expected that specifying the callback in two locations leads to it being called twice (yes, I know that things are easier to understand "on reflection" ;) )
In any case, this issue is well-named and hopefully who run into this will search the issues and find this without too much trouble.

Working fine when removed on-page-change from one directive.
Thanks,


[type:fix] Fix kafka dependency management

Fix kafka dependency management.

@yu199195  Currently ，kafka dependency is overwrited by spring-boot-dependencies and 3.2.0 is not worked.

Codecov Report

Merging #5002 (2dd0df1) into master (9b5b844) will decrease coverage by 0.14%.
Report is 1 commits behind head on master.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #5002      +/-   ##
============================================
- Coverage     64.04%   63.91%   -0.14%
+ Complexity     8561     8538      -23
============================================
  Files          1208     1208
  Lines         35899    35886      -13
  Branches       3217     3213       -4
============================================
- Hits          22992    22935      -57
- Misses        11059    11098      +39
- Partials       1848     1853       +5

see 25 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@moremind PTAL.


Embed of remote Jupyter out-of-band output resolves incorrectly

Consider this deployment of a MyST site using Jupyter Notebooks:
https://agoose77.github.io/myst-notebook-demo/plot
As of writing, it publishes a plot:

If we embed this into a local MyST server, MyST appears to re-write the embedded output.data.data."image/png".path to resolve against the local content server, which breaks the URL.

From a cursory glance at our source code, I think we're rewriting all Output nodes, even if they're embedded. I don't have an immediate answer as to what to do here, it will take some thought about what embed means with respect to whether it should actually embed the AST or just pull in a placeholder. (I suspect there is an obvious clear answer of the former)

Looking at this briefly before AGU, I think this is probably a policy choice -- does the embed node represent "context" for the leaf outputs? I.e. pros/cons of using only the remoteBaseUrl on the embed node to resolve inputs in the leaves of the embed.
One con is that transforms then need to understand embeds even in trivial cases. A solution to this would be to post-process embeds at build time to ensure image paths are "absolute".
Secondly, should the front-end just ignore the AST in favour of pulling in the latest changes from the embedded source?


See if scope k8s client can access the api server from inside a pod using service account

May have issues as it's in the host namespace

This is needed to simplify running Scope in Kubernetes.

A couple of remarks:

If this works, we can automatically enable k8s support when run inside a pod without requiring any flags. If scope can access the service account then enable k8s support.

We should deal with replicated k8s reports from the Scope probes. Initially, the simplest way is to let all probes and let merging implicitly take care of deduplication but this will put a lot of pressure in the API Server of big kubernetes clusters.


Add -fvisibility=default compiler flag

Stop the flood of compiler warnings on Mac:
ld: warning: direct access in function 'fmt::v7::appender fmt::v7::detail::write<char, fmt::v7::appender, unsigned long long, 0>(fmt::v7::appender, unsigned long long, fmt::v7::basic_format_specs<char> const&, fmt::v7::detail::locale_ref)' from file '/usr/local/lib/libfmt.a(format.cc.o)' to global weak symbol 'fmt::v7::detail::basic_data<void>::left_padding_shifts' from file '/usr/local/lib/libfolly.a(Singleton.cpp.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

See https://stackoverflow.com/questions/9894961/strange-warnings-from-the-linker-ld and https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

I think these flags have to be set when installing fmt, I am going to try that out and see if it works..

@kgpai Thank you for looking into this.


Multiple Languages support

Thank you, but I don't have the time or energy to support this and keep it up to date.


Setup Prettier with ESLint integration

Open for suggestions if this is not desired, but I personally find it very useful to have a project with Prettier configured with ESLint integration.
It seems some code has the comma dangle option enabled, I'm happy to add that into the prettier config and rerun the fixes. I have added the trailingComma option and fixed all the code around this config.

@josemarluedke awesome, I put this off way too long 😬 thank you! :v:

@josemarluedke btw feel free to add yourself to the readme contributors list in your next PR!


No need to chdir to the target directory for creating the symlink.

This resolves #15

@jrafanie there you go.

:+1:


login with --service-principal results in following error:

Certificate was provided in .cer then converted to .pem using openssl and java keytool and results into following error.
This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az login
Errors:
The command failed with an unexpected error. Here is the traceback:
Could not deserialize key data. The data may be in an incorrect format or it may be encrypted with an unsupported algorithm.
Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\jwt/algorithms.py", line 256, in prepare_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/primitives/serialization/base.py", line 18, in load_pem_private_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/backends/openssl/backend.py", line 1244, in load_pem_private_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/backends/openssl/backend.py", line 1475, in _load_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/backends/openssl/backend.py", line 1517, in _handle_key_loading_error
ValueError: Could not deserialize key data. The data may be in an incorrect format or it may be encrypted with an unsupported algorithm.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 657, in execute
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 720, in _run_jobs_serially
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 691, in _run_job
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 328, in __call__
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 121, in handler
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/profile/custom.py", line 145, in login
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/_profile.py", line 160, in login
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/auth/identity.py", line 147, in login_with_service_principal
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/application.py", line 1589, in acquire_token_for_client
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/oauth2.py", line 735, in obtain_token_for_client
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/oidc.py", line 115, in _obtain_token
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/oauth2.py", line 754, in _obtain_token
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/oauth2.py", line 200, in _obtain_token
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/assertion.py", line 63, in __call__
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/assertion.py", line 42, in <lambda>
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal/oauth2cli/assertion.py", line 115, in create_normal_assertion
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\jwt/api_jwt.py", line 63, in encode
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\jwt/api_jws.py", line 110, in encode
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\jwt/algorithms.py", line 258, in prepare_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/primitives/serialization/base.py", line 23, in load_pem_public_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/backends/openssl/backend.py", line 1274, in load_pem_public_key
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\cryptography/hazmat/backends/openssl/backend.py", line 1517, in _handle_key_loading_error
ValueError: Could not deserialize key data. The data may be in an incorrect format or it may be encrypted with an unsupported algorithm.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az login --service-principal -u {} -p {} --tenant {}

Expected Behavior
Environment Summary
Windows-10-10.0.19041-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.30.0 *

Extensions:
azure-devops 0.20.0

Additional Context

@jiasli for awareness

I also have this issue. I downloaded the certificate using  azure cli
az keyvault certificate download --file cert.pem --vault-name {} --name {}
and then
az login --service-principal --username $servicePrincipalId --tenant $tenantId --password cert.pem
And got the exact same error

@majorsmann, please share what your certificate looks like without the credential value. According to https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli#certificate-based-authentication, it should look like
-----BEGIN PRIVATE KEY-----
myPrivateKeyValue
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
myCertificateValue
-----END CERTIFICATE-----

@elqian, certificate downloaded by az keyvault certificate download doesn't have the private key part:
> az keyvault certificate download -h

Command
    az keyvault certificate download : Download the public portion of a Key Vault certificate.
        The certificate formatted as either PEM or DER. PEM is the default.

Please see https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli#retrieve-certificate-from-key-vault

I now use the following:
az keyvault secret download --file cert.pfx --encoding base64 -n name --vault-name vaultName  && \openssl pkcs12 -in cert.pfx -passin pass: -out cert.pem -nodes
az login --service-principal --username $servicePrincipalId --tenant $tenantId --password cert.pem
now I get an error of "ERROR: AADSTS700027: Client assertion contains an invalid signature. [Reason - The key was not found.,"
Do you know what's the root cause?
Thank you!
Elisa
From: Jiashuo Li @.>
Sent: Saturday, April 2, 2022 5:43 AM
To: Azure/azure-cli @.>
Cc: Elisa Qian @.>; Mention @.>
Subject: Re: [Azure/azure-cli] login with --service-principal results in following error: (Issue #21376)
@elqianhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Felqian&data=04|01|Elisa.Qian%40microsoft.com|5138f79ec1b943f3727608da14a65c9d|72f988bf86f141af91ab2d7cd011db47|1|0|637845001999758679|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=yVttNazCFW3FU%2FAw%2B%2F0YFQ7ArCCmd00YZFzxkiH8Z10%3D&reserved=0, certificate downloaded by az keyvault certificate download doesn't have the private key part:

az keyvault certificate download -h

Command
az keyvault certificate download : Download the public portion of a Key Vault certificate.

    The certificate formatted as either PEM or DER. PEM is the default.

Please see https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli#retrieve-certificate-from-key-vaulthttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcli%2Fazure%2Fcreate-an-azure-service-principal-azure-cli%23retrieve-certificate-from-key-vault&data=04|01|Elisa.Qian%40microsoft.com|5138f79ec1b943f3727608da14a65c9d|72f988bf86f141af91ab2d7cd011db47|1|0|637845001999808665|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=nZ0%2FSoe9u0gLOQfTHeHeplIIlIi%2BDpKdRLRaQO5t4Ro%3D&reserved=0

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-cli%2Fissues%2F21376%23issuecomment-1086632229&data=04|01|Elisa.Qian%40microsoft.com|5138f79ec1b943f3727608da14a65c9d|72f988bf86f141af91ab2d7cd011db47|1|0|637845001999808665|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=cg6vYG4XNZ5G3lXG2Axs3qUU4wqTqQTojj%2B5XUrCYK8%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAYQWVONGFM24IPLTQCWRYEDVDA6GLANCNFSM5O7V3KPQ&data=04|01|Elisa.Qian%40microsoft.com|5138f79ec1b943f3727608da14a65c9d|72f988bf86f141af91ab2d7cd011db47|1|0|637845001999808665|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=SP2e80pT1W9QRPYrtudhbpdk5Hs0zd7nli0pk%2BB61nk%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

@elqian, this is because the certificate you used is not added to the Certificates & secrets setting of the service principal.
For example, when no certificate is added to a service principal:

Logging in with a certificate will result in error:
> az login --service-principal --username eb81c7c5-729c-4884-9fa0-343c4badd294 --password C:\Users\name\tmpk5xurg_u.pem --tenant 54826b22-38d6-4fb2-bad9-b7b93a3e9c5a
AADSTS700027: Client assertion contains an invalid signature. [Reason - The key was not found., Thumbprint of key used by client: 'E1971492F364D2618F8485042B8E44B10A79929C', Please visit the Azure Portal, Graph Explorer or directly use MS Graph to see configured keys for app Id 'eb81c7c5-729c-4884-9fa0-343c4badd294'. Review the documentation at https://docs.microsoft.com/en-us/graph/deployments to determine the corresponding service endpoint and https://docs.microsoft.com/en-us/graph/api/application-get?view=graph-rest-1.0&tabs=http to build a query request URL, such as 'https://graph.microsoft.com/beta/applications/eb81c7c5-729c-4884-9fa0-343c4badd294'].
Trace ID: cdc89483-3de1-47bf-a481-07b480f8f400
Correlation ID: a8eb8606-d61e-49e4-817b-0dfab6cc6e6c
Timestamp: 2022-04-04 12:28:46Z


[FEATURE]

In China, Baidu's Wenxin Yiyuan is also very popular. I hope to support Wenxin Yiyuan. The link to Wenxin is as follows: https://yiyan.baidu.com/

Hi, is this what you are looking for? https://github.com/langchain4j/langchain4j/pull/499

Has been released in 0.26.1.
Feel free to reopen this issue if needed.


add README.md

Added a new nice splot README.md
This has to be updated once splot is released and all final dependencies, install links etc are set.
TODO:

[x] add nice visualisations
[x] update dependencies
[x] update installation description
[x] add support channels (Gitter?)

This is ready to merge even if blocked, since I only add Documentation and no code


MaxSupportedMinClientVersion update.

6.5 version of the client was published. Bumping the constant and updating tests.

@joelverhagen that was the plan, I want to roll it out ASAP.


Add support for streaming values to clients

Before this patch, we would buffer values into memory and then dump them out to the client. This is obviously not great for performance.
This PR fixes that, so we stream values either of disk or from peers. In the process, it cleans up some lurking issues with proxying:

Headers like If-Not-Modified weren't being passed back to peers
The X-Sequins-Proxied-To header wasn't always set correctly
The X-Sequins-Version header should be set to the peer's version, even if it's not the one we asked for

Unfortunately, this means we can't easily do range queries. This PR removes that functionality rather than hack around it, as well as removing functionality for If-Not-Modified (which we could add back later with some more comprehensive thought towards caching and Etags).

r? @kitchen
This is best reviewed commit-by-commit.

by "range queries" you mean http range requests, yea? Not "range queries" in the sequins usage of the term (to return a range of keys/values based on a query)

Sorry, yes, I mean http range requests.

cc @zenazn - would love some feedback on the go-specific bits (sync.Pool, context)

How do you know this is faster / less resource intensive? Is it possible to phrase the improvement as a benchmark, in order to prevent future regressions?
(Also, is it possible to write tests that exercise each of the bugs we've found, just to make sure they don't happen again?)

How do you know this is faster / less resource intensive? Is it possible to phrase the improvement > as a benchmark, in order to prevent future regressions?

Speed isn't really my goal here, although it's not hard to imagine how this would be faster and less memory-intensive for very large values. The two performance improvements that are secondary goals here - memory usage over an extended period and variability of latency - are really hard to measure with a benchmark.

kk; I mostly just wanted to check up on something you wrote in the PR description:

...This is obviously not great for performance.
This PR fixes that...

If that's not a concern, carry on!

(going to reopen against master)


multiple files under script/

Hi! I really like this repo as it helps people get started faster.
Just a note, putting more than one file under scripts/ will lead to issues. For example in the controlnet repo, they are stuck with dozens of files that all get executed multiple times because the webui will compile and run each of them. It's not possible to remove the files themselves (but it's possible to move the content of the files presumably) because other extensions depend on these to be placed exactly at that location.
A better project structure is to create a custom directory named i.e. lib_[extension_name] and then import from that directory the python modules you need to keep things tidy.
See for example how I did it for one of my extension:
https://github.com/ljleb/prompt-fusion-extension
See more tips here:
https://github.com/vladmandic/automatic/wiki/Extensions#common-mistakes

Appreciate the comment here as I am just getting started trying to build an AlwaysOn extension.  I will update my repository the way you have described here.
While I'm here -- any idea why I can't get my extension to hit any breakpoints on Generate, either in the run() or process() functions I have defined (the latter I modeled after other working extensions whose breakpoints are hit properly).  I am using basically the lightly modfied code from this repo and my accordian is showing up properly in the UI...
Thanks!

If you have a link to some code I can have a look. Otherwise you can hop in auto's discord server and ask for help there I think!

I found the problem -- I hadn't passed all the parameters from the UI into the run() and process() functions.  Didn't know about the discord server -- will definitely join there!
Thanks.

Can't find the discord server -- do you have a link?  thx
I've made progress with my extension but I'm trying to get metadata info from an image a user has place in ControlNet.  I can get the image from the script but I suspect that it's the preprocessor image and anyway it's in a NumPy format that does not play nice with the image class. I'm not even sure what I'm trying to do is possible and I'd like to chat with other devs about it, because I'm thinking there may be some workarounds for what I'm trying to do.

here you go:
https://discord.com/invite/Zw69ExBg


portman/newman not returning nonzero exit code when using "abortOnFailure"=false

I am running in a Jenkins pipeline and am seeing "collection run completed" when the run actually has failed tests. Why is the exit code not coming back correctly w/ an error? I have "abortOnFailure" set to false so that I can run the entire collection w/ tests before failing the pipeline stage. I can see in the console that newman/portman is reporting "Collection run completed" instead of what I would expect from Newman's docs which should throw "collection run encountered an error", which I expect would throw a non-zero exit code.

@thim81 @nicklloyd ?

I had to write a custom workaround for this - I published results as junit, published them in jenkins using the junit plugin, and then parsed the # of failed tests. If >0, I set the build to failed. It would be cleaner if portman could correctly pass back a nonzero exit code when there are failed tests even when the run completes. Any updates on this?

@chyde80 Can you try this PR, that should provide a better exit code?
https://github.com/apideck-libraries/portman/pull/530

@chyde80 did you had the chance to test the PR?

I don't have a good way to test it until you merge that change - I don't see the hurt in merging it :-)


Proposal: graceful sidecar support

Expected Behavior
Pods injected with sidecars run to completion.
Actual Behavior
They typically fail because the sidecar is not ready and the steps depend on it. If the steps succeed, the pod does not exit because the sidecar is not killed.
Proposal
Use Cases:

Environments that require injected sidecars for pods to interface with the network correctly. Concrete example: we use clusters that have do not have internet access and direct all internet bound access through one cluster that does have it via istio (i.e. using envoy proxies)
CI testing across multiple steps that requires a shared resource, e.g. a local test database.

Requirements:
The solution must handle both automatically injected sidecars and user-specified ones (via some yet to be determined configuration). To be clear, this proposal does not cover how a user might specify sidecars for Tekton to startup, instead it only offers a solution for how to manage sidecars, both injected and manually specified.
Implementation Details:
See https://github.com/tektoncd/pipeline/pull/728 for a POC. We are currently running this successfully with injected istio sidecars. Note that the PR is very wip and a true POC - it's not very clean, has no tests and is likely not production ready. With that said, feedback on the implementation would be appreciated.
At a high level we need to solve two problems with sidecars:

Wait until the sidecars are ready before running steps.
Kill the sidecars once all steps have terminated (due to success or failure)

For 1/ we can leverage the entrypointer by modifying it to (optionally) wait until the wait_file not only exists but has a non-zero size. Then we can set the first step in the TaskRun's wait_file to a downward projected volume from an annotation. The controller can then set this annotation to a non-empty value once it observes that all containers in the pod are ready.
For 2/ we have three options:

Use a shared process namespace and a final container that kills all other containers that are still alive.
Remote exec into the remaining containers and kill 1.
Update the pod's spec changing the image for all sidecar containers to the nop image. This will cause the kubelet to trigger a restart of the container, which will immediately exit either because the nop image successfully runs or fails because it tries to run a command that the nop image does not have. Either way, we simply ignore the final result of sidecars for TaskRun status purposes.

Downsides for each approach:

Introduces security implications of using a shared process namespace across containers. It can also break containers that expect to be run as the first process.
Does not execute container lifecycle hooks (i.e. pre-stop) and effectively requires re-implementing the kubelet's graceful kill logic ourselves. It also requires giving fairly powerful permissions to the controller, that is, in the very least, the ability to exec into any container in a namespace where pipelines run.
Is a bit of a hack, but is the only way to update a pod spec to force a container to be killed by the kubelet using the same logic it would use when deleting a pod. Otherwise, the downsides are that it could be confusing to the user to see sidecars always restarted once and subsequently failing.

Personally, I'm partial to 3/ and the POC implements it that way since it's actually rather simple to add, though 2/ seems reasonable as well.
Alternatives:
In order to solve the first problem we need a way to suspend execution of the TaskRun until the sidecars are ready. There are effectively two ways to do this, assuming we've suspended the execution on startup,

Externally signal to the suspension mechanism (e.g. the entrypointer) that it's time to proceed (proposed above)
Check if we're ready to run from within the suspension mechanism.

The downside of 2/ is that afaik there's no way to achieve this without elevated permissions of some sort, whether that's RBAC authorization to fetch the pod status that we're running as or access to the docker daemon to check the status of other containers, etc. etc.
Three options were given above for solving the second problem, so they will not be repeated here.

Wait until the sidecars are ready before running steps.
Kill the sidecars once all steps have terminated (due to success or failure)

Oh this is awesome - I have some sidecar related plans I need to propose soon and I'll need this as well :pray::pray::pray: (plus did NOT anticipate handling this haha)

For 1/ we can leverage the entrypointer by modifying it to (optionally) wait until the wait_file not only exists but has a non-zero size. Then we can set the first step in the TaskRun's wait_file to a downward projected volume from an annotation. The controller can then set this annotation to a non-empty value once it observes that all containers in the pod are ready.

Brainstorming other ideas:

Make the entrypointer binary responsible
Make an (init ?) container repsonsible for this <-- could be cool?

For 2/ we have three options:

More brainstorming:

Could we impose an interface on the sidecar containers, e.g. that they need to stop themselves in such-and-such circumstances, or do we need to be able to support off the shelf (istio?) arbitrary sidecars?
Have the TaskRun controller decide when execution is done and stop the entire pod

Personally, I'm partial to 3/ and the POC implements it that way since it's actually rather simple to add, though 2/ seems reasonable as well.

My preference of these options is 2/ over 3/ simply because 2/ leaves the pod spec in the state that reflects what it was actually doing, but happy to hear a 3rd opinion here

The downside of 2/ is that afaik there's no way to achieve this without elevated permissions of some sort, whether that's RBAC authorization to fetch the pod status that we're running as or access to the docker daemon to check the status of other containers, etc. etc.

Would we be able to use the downward api for this?
If we could, I'm tempted to suggest:

Handle issue 1/ with an init container that uses the downward api to determine if the sidecars are ready
Handle issue 2/ by removing the pod via controller when execution has finished (i.e. all steps have completed)

What do you think @dicarlo2 ?
p.s. https://github.com/kubernetes/kubernetes/issues/65502 looks relevant though during a quick scan I didn't see anything that would help us :thinking:

Handle issue 1/ with an init container that uses the downward api to determine if the sidecars are ready

Just realized this won't work b/c the sidecars won't start until the init containers are done :woman_facepalming:
Maybe the same thing with a container? I guess the question is whether it's simpler to have the controller take care of this (via writing to a volume as you are suggesting @dicarlo2 ) or have a container in the pod take care of it. I'm torn but leaning toward container in the pod :thinking:

Make the entrypointer binary responsible

Yup - I think this makes the most sense for waiting for sidecars to be ready and is the approach implemented in #728.

Could we impose an interface on the sidecar containers, e.g. that they need to stop themselves in such-and-such circumstances, or do we need to be able to support off the shelf (istio?) arbitrary sidecars?

Ideally we'd support off the shelf arbitrary sidecars, it's probably the most user-friendly and likely easiest to configure. E.g. for istio, we could certainly wrap the istio proxy with logic to make it conform to a sidecar interface as well as only use that specially wrapped image in the namespace that we're running tekton pipelines in, but that kind of customization would definitely fall under the advanced users only category (at least for istio).

Have the TaskRun controller decide when execution is done and stop the entire pod

Is there a way to stop the pod without deleting it?

My preference of these options is 2/ over 3/ simply because 2/ leaves the pod spec in the state that reflects what it was actually doing, but happy to hear a 3rd opinion here

Yea, this is probably the right way forward. Originally I was thinking that giving the tekton controller the ability to exec arbitrarily into pods would be a security issue, but thinking about it a bit more the controller can already create arbitrary pods, so I don't think giving it the ability to exec in and kill containers changes the security profile.
To summarize:

We should definitely use the downward api with an annotation to signal to the entrypointer binary to start the first step in the pipeline once the tekton controller has determined that all sidecars are ready. (See #728 for implementation of this)
We should let the tekton controller either
a. delete the pod once all TaskRun steps are complete
b. exec into the remaining containers and kill them

2a. is easier to implement and likely cleaner since we don't have to worry about killing all processes, and any other issues I'm not thinking of when it comes to clearing out a running container. With that said, we'd have to wait until tekton provides a log archival solution since the pod will be deleted and the logs will not be (easily) accessible.
FWIW, we've been running with #728 for a few weeks now and it works pretty flawlessly, for our use-case anyways (istio sidecars). The main downside of course is that the sidecars/pod status is a bit strange since it will always have 1 restart, but we never manually inspect the resulting pods so it's a bit of a non-issue for us. See below for an example (all of these pods successfully exited, i.e. the TaskRun's final status is success):

Also, just fyi, I'll be relatively available to tackle implementing whatever solution we land on for the next week or two. (I.e. I won't disappear again for 7-10 days 😅)

Make the entrypointer binary responsible
Yup - I think this makes the most sense for waiting for sidecars to be ready and is the approach implemented in #728.

My bad, I didn't provide enough detail about what I was thinking here: I was thinking instead of having the controller responsible for knowing when the sidecars are ready, have the entrypoint binary do it - but looking at your implementation in #728, I think the direction you've gone is better.
I was thinking originally that having the controller be responsible for paying attention to the sidecars was complex, but looking at #728 it actually seems pretty slick :D

Ideally we'd support off the shelf arbitrary sidecars, it's probably the most user-friendly and likely easiest to configure.

kk sounds good!

Is there a way to stop the pod without deleting it?

Ah good point :(

With that said, we'd have to wait until tekton provides a log archival solution since the pod will be deleted and the logs will not be (easily) accessible.

I'm gonna get on this asap - and probably we'll implement this with a sidecar, so I guess we have a bit of a chicken and egg situation XD

To summarize:

We should definitely use the downward api with an annotation to signal to the entrypointer binary to start the first step in the pipeline once the tekton controller has determined that all sidecars are ready. (See #728 for implementation of this)
We should let the tekton controller either
a. delete the pod once all TaskRun steps are complete
b. exec into the remaining containers and kill them

I totally agree! I think a lot of this back and forth was me wrapping my head around your solution, so apologies for the delay, it seems really solid :D
As for whether 2a or 2b are better, if we feel like we can figure out how to generically kill the remaining containers I think I lean toward 2b after all, but probably they are equally good and we should just pick one and go with it :D

Also, just fyi, I'll be relatively available to tackle implementing whatever solution we land on for the next week or two.

Awesome!!

(I.e. I won't disappear again for 7-10 days :sweat_smile:)

haha no worries at all XD Super excited to have you contributing in general :sunglasses:

Oh yeah one more question: @dicarlo2 as part of this work are you also interested in extending the Task spec to include support for defining sidecars? No worries if not, once we have this we can add that in a later iteration :)

I totally agree! I think a lot of this back and forth was me wrapping my head around your solution, so apologies for the delay, it seems really solid :D

No worries! I've always found it a bit more difficult to work through proposals entirely remote, through text only no less, so I totally understand.

As for whether 2a or 2b are better, if we feel like we can figure out how to generically kill the remaining containers I think I lean toward 2b after all, but probably they are equally good and we should just pick one and go with it :D

Cool, sounds good, I'll take a look at what it will take to implement 2b.

I won't disappear again for 7-10 days

He says then disappears again for 10 days  😅

as part of this work are you also interested in extending the Task spec to include support for defining sidecars?

Definitely interested, we'll just have to see how much time I can devote to it. As a first iteration I'll implement without though.

He says then disappears again for 10 days 😅

lol happens to the best of us XD

Cool, sounds good, I'll take a look at what it will take to implement 2b.

So I started implementing 2b and realized we actually can't use this approach because there's no guarantee the container has a binary capable of killing other processes available. I.e. it's not guaranteed that the container will have kill or equivalent. So we either delete the pod entirely or use the third solution I mentioned in the original proposal.

Thanks for the update about implementation 2b.  I'm going to start picking up work on sidecar support once I'm done with TaskRuns in resource constrained environments and this is v useful info.

So I started implementing 2b and realized we actually can't use this approach because there's no guarantee the container has a binary capable of killing other processes available. I.e. it's not guaranteed that the container will have kill or equivalent.

Ah makes sense, nice find @dicarlo2 !!

So we either delete the pod entirely or use the third solution I mentioned in the original proposal.

Both options seem to have some downsides and personally I don't feel like either is immediately more appealing, so I think we should just go with one and see what happens :D

Both options seem to have some downsides and personally I don't feel like either is immediately more appealing, so I think we should just go with one and see what happens :D

I take it back - after seeing demos of the cli tool @vdemeester + co are working on, and the dashboard that @skaegi + co are working on, I think deleting the pods (and the logs with them) is not the best option (even once we do have log persistence).
So let's use the third option and overwrite the spec with the nop image?

So let's use the third option and overwrite the spec with the nop image?

SGTM, in that case the POC I have is pretty much the full implementation - it just needs to be cleaned up, tested and probably properly abstracted (I just kinda stuck the logic in as quickly and hackily as possible)

Sounds perfect @dicarlo2 !! :D

Hey, have you looked at the sidecars containers KEP for Kubernetes? I would be interested to see if you think it would solve this issue for you, tracking issue: https://github.com/kubernetes/enhancements/issues/753 (design doc).

Now that we've agreed on the implementation details of the proposal (and it's already most of the way done in the PR! :tada: thanks @dicarlo2 ) I'm going to close this issue and carry on with the remaining TODOs in https://github.com/tektoncd/pipeline/issues/926
@Joseph-Irving I've read over the sidecar KEP. In principal it does seem applicable to this use case.  Given its current status I'm not sure it buys us much right now but thanks for keeping us posted on it.  Feel free to ping me on tekton's slack (user Scott) if you want to discuss further.


pulse_id type casting inconsistency

While checking out why I am getting numpy.exceptions.DTypePromotionError: field titles of field 'pulse_id' mismatch I found this error with Henning and after changing the casting to be consistent it seems to have vanished.

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

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.434%

Totals

Change from base Build<PHONE_NUMBER>6:
0.0%

Covered Lines:
2557

Relevant Lines:
3179

💛  - Coveralls