fix(controller): Revert prepending ExecutorScriptSourcePath which brought a breaking change in args handling

This reverts commit 64ae33034d30a943dca71b0c5e4ebd97018448bf.
This PR reverts #4492 which changes the way args are passed to a script template. Due to this change we are not able to override args with a docker image and an entrypoint with an exec "$@" in argo workflow 2.12.x.
This is convenient to execute the docker entrypoint of the base image and then execute the script in the workflow. We use it to do some privileged action and then drop those privileges before executing the script passed in the workflow. You can find more information in #4782 with an example to test the behavior that brokes in 2.12.x.
This revert will obviously break the behavior that the author of this commit has intended to introduce so I don't know if reverting is the best things to do...
Resolves #4782

Did you author these changes originally?

Did you author these changes originally?

Did you author these changes originally?

No I didn't. The original author is @ivancili  in PR #4492. You can find an explanation of why this has been introduced in issue #4481. This broke our use of script template as described in this PR and in issue #4782.

Did you author these changes originally?

No I didn't. The original author is @ivancili  in PR #4492. You can find an explanation of why this has been introduced in issue #4481. This broke our use of script template as described in this PR and in issue #4782.

@ivancili would you like to chip it? Would you like to propose a fix so everyone is happy?

@ivancili would you like to chip it? Would you like to propose a fix so everyone is happy?

@alexec @MrFreezeex In my opinion, the correct behavior of a script template should include the ability to pass arbitrary args to the script (one way, or another). The example provided in this issue seems like an incorrect usage to me, though. I would just put the [sh] into command section of the template, or prepare the entrypoint of the base image fully. Nevertheless, I see your point, and I realize my PR introduced a breaking change and it should be fixed, I apologize for the inconvenience.
Here are my proposals on how to fix this:

Add a flag to the script template which indicates whether args should be added before or after the script, notice the flag argsPosition in this example (name and data type of the flag can be further discussed):

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      argsPosition: prepend  # other option is append
      source: |
        echo "This message will be shown!"

Add separate field called sourceArgs, which will then allow users to specify both container args and script args at the same time, without these kinds of problems. Container args will be added before script, and sourceArgs after the script. But in this case you have to be careful in how you write your container image entrypoint/args. Example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      sourceArgs:
        - "Hello"
      source: |
        echo "This message will be shown!"
        echo $1 there                  # prints "Hello there"

Revert my commit and just use Go templates to parametrize the script source (as it were before)

Let me know your thoughts.

@alexec @MrFreezeex In my opinion, the correct behavior of a script template should include the ability to pass arbitrary args to the script (one way, or another). The example provided in this issue seems like an incorrect usage to me, though. I would just put the [sh] into command section of the template, or prepare the entrypoint of the base image fully. Nevertheless, I see your point, and I realize my PR introduced a breaking change and it should be fixed, I apologize for the inconvenience.
Here are my proposals on how to fix this:

Add a flag to the script template which indicates whether args should be added before or after the script, notice the flag argsPosition in this example (name and data type of the flag can be further discussed):

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      argsPosition: prepend  # other option is append
      source: |
        echo "This message will be shown!"

Add separate field called sourceArgs, which will then allow users to specify both container args and script args at the same time, without these kinds of problems. Container args will be added before script, and sourceArgs after the script. But in this case you have to be careful in how you write your container image entrypoint/args. Example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      sourceArgs:
        - "Hello"
      source: |
        echo "This message will be shown!"
        echo $1 there                  # prints "Hello there"

Revert my commit and just use Go templates to parametrize the script source (as it were before)

Let me know your thoughts.

@alexec @MrFreezeex In my opinion, the correct behavior of a script template should include the ability to pass arbitrary args to the script (one way, or another). The example provided in this issue seems like an incorrect usage to me, though. I would just put the [sh] into command section of the template, or prepare the entrypoint of the base image fully. Nevertheless, I see your point, and I realize my PR introduced a breaking change and it should be fixed, I apologize for the inconvenience.
Here are my proposals on how to fix this:

Add a flag to the script template which indicates whether args should be added before or after the script, notice the flag argsPosition in this example (name and data type of the flag can be further discussed):

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      argsPosition: prepend  # other option is append
      source: |
        echo "This message will be shown!"

Add separate field called sourceArgs, which will then allow users to specify both container args and script args at the same time, without these kinds of problems. Container args will be added before script, and sourceArgs after the script. But in this case you have to be careful in how you write your container image entrypoint/args. Example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      sourceArgs:
        - "Hello"
      source: |
        echo "This message will be shown!"
        echo $1 there                  # prints "Hello there"

Revert my commit and just use Go templates to parametrize the script source (as it were before)

Let me know your thoughts.

From my point of view, I think that the sourceArgs would be the best options of the three. Kubernetes users are used to having default commands/args handling and breaking this behavior in argo workflow would be a bit weird. This also would be a non breaking change as we would add a new field with a totally different behavior.

@alexec @MrFreezeex In my opinion, the correct behavior of a script template should include the ability to pass arbitrary args to the script (one way, or another). The example provided in this issue seems like an incorrect usage to me, though. I would just put the [sh] into command section of the template, or prepare the entrypoint of the base image fully. Nevertheless, I see your point, and I realize my PR introduced a breaking change and it should be fixed, I apologize for the inconvenience.
Here are my proposals on how to fix this:

Add a flag to the script template which indicates whether args should be added before or after the script, notice the flag argsPosition in this example (name and data type of the flag can be further discussed):

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      argsPosition: prepend  # other option is append
      source: |
        echo "This message will be shown!"

Add separate field called sourceArgs, which will then allow users to specify both container args and script args at the same time, without these kinds of problems. Container args will be added before script, and sourceArgs after the script. But in this case you have to be careful in how you write your container image entrypoint/args. Example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test-args-script
spec:
  entrypoint: test
  templates:
  - name: test
    script:
      image: mrfreezeex/test-argow-script:v1
      args: [sh]
      sourceArgs:
        - "Hello"
      source: |
        echo "This message will be shown!"
        echo $1 there                  # prints "Hello there"

Revert my commit and just use Go templates to parametrize the script source (as it were before)

Let me know your thoughts.

From my point of view, I think that the sourceArgs would be the best options of the three. Kubernetes users are used to having default commands/args handling and breaking this behavior in argo workflow would be a bit weird. This also would be a non breaking change as we would add a new field with a totally different behavior.

I updated my PR to add sourceArgs instead of reverting the commit.

I updated my PR to add sourceArgs instead of reverting the commit.

Since https://github.com/argoproj/argo/pull/4492 introduced a regression/change in behavior, it should be reverted. If there is confusion about how script templates work, we should document the behavior better rather than implement additional knobs, especially since there are alternatives to achieve the desired use case. Can we simplify this PR to just a revert of https://github.com/argoproj/argo/pull/4492?

Since #4492 introduced a regression/change in behavior, it should be reverted. If there is confusion about how script templates work, we should document the behavior better rather than implement additional knobs, especially since there are alternatives to achieve the desired use case. Can we simplify this PR to just a revert of #4492?

I just did that but for some reasons now a test is failing :
    --- FAIL: TestFunctionalSuite/TestDeletingRunningPod (44.63s)
Error:         functional_test.go:61: timeout after 30s waiting for condition to be done

I don't think that's something related to this code change but I retried It once already... Do you know if this test can be a bit flaky sometimes ?

TestDeletingRunningPod is broken

@ivancili we've reverted your commit because it was a breaking change that resulted in a regression. Would you like to consider suggesting a new way to do this that is non-breaking?

Hi guys @alexec @ivancili @MrFreezeex ,


[feature_request]: name of generated PDF should be exactly same as being set in title without any manipulation

What is missing in the project?
Name of generated PDF should be exactly same as being set in title without any manipulation . Currently spaces , dot and hyphen in title are being replaced by underscore in generated PDF name . We have requirement to keep to it as it as it is being set in title .
Solution?
No response

I agree, actually I don't remember exactly why I had put this behavior. but it would make more sense to keep the responsibility on user side and that no changes should be made by the lib.

@pankajgupta1206 feature released as part of the 0.0.8.

Thanks Jordan for the help.


Update pyarrow dependency

Only a WIP canary to check satisfiability
https://github.com/single-cell-data/TileDB-SOMA/issues/1926

@jdblischak this is in draft and incomplete. I misread the notification. Affected ranges are 0.14.0 to 14.0.0. So I need to modify the pin. Also, pyarrow 14 doesn't work with Python 3.7. @thetorpedodog pointed out a hotfix option elsewhere. I need to circle back to this today after meetings.
Also: @bkmartinjr has already verified that tiledbsoma does not use the codepath within pyarrow that's vulnerable. So, our bumping our dependency is a good idea, and good optics, but not drop-everything-do-it-now.

caveat: I am only approving the strategy. We would need to bump the build number before merging

@jdblischak I think I want this as a trial balloon only, just to check for buildability, and not try to merge until tiledbsoma 1.6.0 which will be happening very soon, as core 2.18.0 has already been tagged.

Commit https://github.com/TileDB-Inc/tiledbsoma-feedstock/pull/63/commits/21fe23d54f9a7c602f2cf77fafd80c72892ba89a implements the plan at https://github.com/single-cell-data/TileDB-SOMA/issues/1926#issuecomment-1821208184

ubuntuip-172-31-85-136[tiledbsoma-feedstock] conda smithy rerender --commit auto
...
INFO:conda_smithy.configure_feedstock:No changes made. This feedstock is up-to-date.

Closing as this was just a pre-tag canary -- thank you @jdblischak !


(WIP) Multi-EVE network test

Signed-off-by: Oleg Sadov<EMAIL_ADDRESS>

@sadov is this PR still make sense, provided that EVE SDN was introduced and eden code base was recently changed? Or can we close it? Maybe @giggsoff can give any context on this PR?

@uncleDecart As far as I remember, this is a very old PR about checking the EVEs connectivity. He remained in the WIP status about 2 years ago for a reason that I do not remember now. Maybe today this can be done in a more elegant way.


Unhandled exception when starting RoslyPad

Just installed RoslynPad 14.1 on Windows 7, and I get:
[Main Instruction]
Unhandled Exception

[Content]
System.MissingMethodException: Method not found: 'Void RoslynPad.ExecutionPlatform..ctor(System.String, System.String, System.Collections.Generic.IReadOnlyList`1<RoslynPad.PlatformVersion>, System.Runtime.InteropServices.Architecture, System.String, System.String, Boolean)'.
   at RoslynPad.PlatformsFactory.<GetExecutionPlatforms>d__0.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)
   at RoslynPad.UI.OpenDocumentViewModel..ctor(IServiceProvider serviceProvider, MainViewModelBase mainViewModel, ICommandProvider commands, IAppDispatcher appDispatcher, ITelemetryProvider telemetryProvider)
   at lambda_method(Closure , LifetimeContext , CompositionOperation )
   at System.Composition.Hosting.Core.CompositionOperation.Run(LifetimeContext outermostLifetimeContext, CompositeActivator compositionRootActivator)
   at System.Composition.Hosting.Core.LifetimeContext.TryGetExport(CompositionContract contract, Object& export)
   at System.Composition.CompositionContext.GetExport(CompositionContract contract)
   at RoslynPad.UI.SystemCompositionServiceProvider.GetService(Type serviceType)
   at RoslynPad.UI.ServiceProviderExtensions.GetService[T](IServiceProvider serviceProvider)
   at RoslynPad.UI.MainViewModelBase.CreateNewDocument()
   at async RoslynPad.UI.MainViewModelBase.OpenAutoSavedDocuments(?)
   at async RoslynPad.UI.MainViewModelBase.InitializeInternal(?)
   at async RoslynPad.UI.MainViewModelBase.Initialize(?)

Contents of C:\Program Files\dotnet\shared:
- Microsoft.AspNetCore.All
  - ... [gues you don't need these]
- Microsoft.AspNetCore.App
  - ... [gues you don't need these]
- Microsoft.NETCore.App
  - 2.0.3
  - 2.0.5
  - 2.0.6
  - 2.0.7
  - 2.0.9
  - 2.1.0
  - 2.1.1
  - 2.1.2
  - 2.1.3
  - 2.1.4
  - 2.1.5
  - 2.1.6
  - 2.1.7
  - 2.1.8
  - 2.1.9
  - 2.2.1
  - 2.2.2
  - 2.2.3
  - 2.2.4

I came across #266 which appears to be the same issue, but I do have .NET Core 2.2 installed already.

#266 is not the same issue.
Missing method can only happen if you have older RoslynPad assemblies mixed with newer ones. I suggest you clean up your installation/build folders.

@aelij this was a totally clean installation from the download on the RoslynPad website, so no old assemblies.
I recently install it on Windows 10, and it works just fine, so presumably some kind of incompatibility with Windows 7? Note I have VS installed and use it as a dev machine, so other dotnet and dotnet core apps work as expected.
Should this be reopened?

@cocowalla I don't see how a MissingMethodException for a RoslynPad type could happen on a completely clean install.
I'll keep this closed unless you can provide a full repro.

BTW, do you have .NET 4.6.2 installed there? Might be the cause.

@aelij
Thanks for that.
I'm not sure what you're expecting here, but the steps to reproduce:

Find a Windows 7 machine
Install .NET Core
Install the latest version of RoslynPad
Start RoslynPad

I don't see how a MissingMethodException for a RoslynPad type could happen on a completely clean install.

Well, it does! I even tried downloading it again, in case the archive was somehow corrupt.
Perhaps there is some kind of dependency (transitive or direct) on a missing Visual C++ Redistributable, or something like that?

BTW, do you have .NET 4.6.2 installed there? Might be the cause.

Yes, as well as .NET 4.7.1. I'll install .NET 4.7.2 and see if it makes any difference.

Yes - installing .NET 4.7.2 has fixed this issue!
Perhaps something in ExecutionPlatform relies on a method/class not available before 4.7.2?


[WIP] Adding more test cases for upsert and doRequest

This change is

Coverage remained the same at 93.284% when pulling f7adede12b9bf83761903904c7805a81bcf08011 on prashant/adding-tests into 62ae0fe30f8d9a6a50a7f7aca1b7d69058c87bae on master.


ImportError: cannot import name 'xla_data_pb2' - Jax, Broken on Colab after current release

I use jax via trax, and today I got an error AttributeError: 'jaxlib.tpu_client_extension.TpuExecutable' object has no attribute 'ExecutePerReplica'
normally jax in Colab I install it using:
!pip install --upgrade -q jax

import requests
import os
if 'TPU_DRIVER_MODE' not in globals():
  url = 'http://' + os.environ['COLAB_TPU_ADDR'].split(':')[0] + ':8475/requestversion/tpu_driver0.1-dev20191206'
  resp = requests.post(url)
  TPU_DRIVER_MODE = 1

# The following is required to use TPU Driver as JAX's backend.
from jax.config import config
config.FLAGS.jax_xla_backend = "tpu_driver"
config.FLAGS.jax_backend_target = "grpc://" + os.environ['COLAB_TPU_ADDR']

However, when I saw there has been a new release I rolled back to the old one. After doing that via !pip install --upgrade -q jax==0.1.39  jaxlib===0.1.39 I started getting ImportError: cannot import name 'xla_data_pb2' on import config from jax which I fixed temporarily by doing url = 'http://' + os.environ['COLAB_TPU_ADDR'].split(':')[0] + ':8475/requestversion/tpu_driver_nightly'. However, then I started getting an error on import jax instead
I tried doing !pip upgrade pip but the best I could reach is ImportError: cannot import name 'xla_client' on import jax
And again, I can install the current jax but that doesn't work with my version of trax, and I cannot install the older version of jax anymore at all.

We have just released jaxlib 0.1.41 yesterday, perhaps the Colab backend is not picking up that version?
Can you try:
!pip install --upgrade -q jax jaxlib
from jax import version as jax_version
print(jax_version.__version__)
from jaxlib import version as jaxlib_version
print(jaxlib_version.__version__)

I get 0.1.59 and 0.1.41.
Note that jax and jaxlib use separate version numbers, it is not correct to use !pip install --upgrade -q jax==0.1.39 jaxlib===0.1.39

I get the same, however, trax doesn't work properly with the current version. I specifically went with 0.1.39 because they are both versions for both. What versions can you recommend? Note - it was working on the weekend without pinning, just --upgrade jax jaxlib.

Hmm... There might still be an issue here. I think we might need to make a new jax release.
Can you try with the jaxlib 0.1.41 and

jax 0.1.59 (current) --- this does not work?
and then from github head --- this should work?

pip uninstall jax
pip install --upgrade -q git+https://github.com/google/jax

Thanks!

!pip uninstall jax
!pip install --upgrade -q git+https://github.com/google/jax
!pip install --upgrade jaxlib

The current master index works with trax properly, while using the most recent version of jaxlib.

Thanks! That answers the question: we just need to make a new jax release. I'll do that.

Done. I released jax v0.1.60 to pypi, which should fix the problem. Hope that helps!

I can confirm, it works as expected with the most recent versions of jax and jaxlib from pip.


A dot name structure assignment is illegal when the structure is empty.

https://openneuro.org/datasets/ds000224/versions/00001/logs/SPM%2Fdefault%2Fda15ae7a-9bc7-4a67-819f-9388aca41516
Execution failed: /opt/spm12/spm_BIDS_App.m
A dot name structure assignment is illegal when the structure is empty.  Use a subscript on the structure.
Error in spm_BIDS (line 97)
Error in spm (line 1210)
Error in spm_standalone (line 115)

I couldn't reproduce this. The one way I can think of that would generate such error would be if participants.json was present but not participants.tsv, which is not the case in this dataset. Could something have happened to the dataset during the execution of the job?

Closing this report as issue could not be reproduced. Please reopen if necessary.


SignOutContext needs AuthenticationProperties

https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNet.PipelineCore/Security/SignOutContext.cs
Compare:
http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin/Security/AuthenticationResponseRevoke.cs
This was a late addition to Katana. WsFed & OIDC have need for sign-out properties in order to customize single-signout redirects.
Also update HttpResponse.SignOut(...).

https://github.com/aspnet/HttpAbstractions/commit/58c45cd379774cf1fd683a12465cb52094b7193d


Fix for deadlock when seek fails

When the seek fails the m_SeekCompleteInternalEvent is not emited and blocks the thread.

Hi Francisco,
Apologies for the long delay, we'll be more responsive in the future.
I looked at your fix it seems reasonable, so I cherry-picked it, and added another commit on top of it, so that seeking failures are reported:  https://github.com/occipital/OpenNI2/commit/3f776fba9ae5f411444631710cba140203189413
Both are pushed to the develop branch. Let me know if that works for you.
Last but not least, I unfortunately did not exercise the failure code path. How do you actually trigger the seeking failures on your side? I'd like to reproduce it too.

I was doing some unit cases where I had to extract frame per frame. I'll have to dig to get that code back, but I was pausing and seeking to a specific frame. I'll update this issue if I manage to extract that code. I don't think your commit is enough to fix this.

Oh, I didn't see that my commit was there too.

Cool! Keep us posted!

float speed = -1;
oniDeviceSetProperty(device, ONI_DEVICE_PROPERTY_PLAYBACK_SPEED, &speed, sizeof(speed));

for(int frame = 0;frame<100;frame++){
   OniSeek seek;
   seek.frameIndex = frame;

   seek.stream = depthStream;
   oniDeviceInvoke(device, ONI_DEVICE_COMMAND_SEEK, &seek,sizeof(seek));
   seek.stream = rgbStream;
   oniDeviceInvoke(device, ONI_DEVICE_COMMAND_SEEK, &seek,sizeof(seek));

   // Wait for frame in the callbacks
}

The code is something like this, the wait for frame in the callbacks it's in some custom wrappers that make the interface synchronic.


Web version suggestions and errors

Web version suggestions and errors
Hello,
I have encountered some problems while using rvc web. Firstly, there are some errors when using the batch inference feature:
PS: I am using Brave browser which is based on the chrome core.

When using batch inference, if there are .flac files in the input folder, the inference result shows the file extension as .flac. However, these files are actually in wav format. I had to rename the file extension to .wav in order to play them in Foobar.
After completing batch inference, when I added other audio files to the input folder and clicked "convert" again, rvc web couldn't find the new files with .wav format. I am not sure if this is related to browser cache.
Switching models by using the up and down arrow keys in the combo box for selecting inference models can cause a model to freeze at a certain point. Even after uninstalling the sound, I still couldn't change to another model. I had to restart the entire web page. I suggest adding a "load" button to load the model only when clicked.
Further suggestions:
It would be helpful to have a browse button for selecting files and folders on the web inference page, instead of manually typing in the path.
It would be convenient if rvc web could save my previous parameter settings when I close the webpage or provide a feature to save templates for repeated use.
It would be useful to have a "download" button designed in the same way as the "convert" button after completing the conversion for an input file. The existing download button is almost unnoticeable for screen readers.
Thank you!

Good idea.


Angular 9/Ivy + i18n: Empty main.js.map when built in watch mode

🐞 bug report
Affected Package
The issue is caused by Ivy.
Is this a regression?
Yes, the previous version in which this bug was not present was: Angular 8
Description
In Angular 9 when building a localized bundle in watch mode with, e.g.,
ng build --configuration=de --watch the created main.js.map SourceMap is just an empty object.
Not sure if this is a bug or just a missing feature, but I couldn't find any documentation about it.
When Ivy is disabled in tsconfig.json the SourceMap is built as expected. The problem also doesn't occur with ng serve.
🔬 Minimal Reproduction
See https://github.com/mkemmerling/angular9_i18n_build_watch
This is just a minimal 'repro-app' with i18n configuration as described in the Angular docs.
To reproduce the error run ng build --configuration=de --watch and inspect the empty main.js.map SourceMap in dist/repro-app/de.
🌍  Your Environment
Angular Version:

Angular CLI: 9.0.1
Node: 13.8.0
OS: darwin x64

Angular: 9.0.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.1
@angular-devkit/build-angular     0.900.1
@angular-devkit/build-optimizer   0.900.1
@angular-devkit/build-webpack     0.900.1
@angular-devkit/core              9.0.1
@angular-devkit/schematics        9.0.1
@angular/cli                      9.0.1
@ngtools/webpack                  9.0.1
@schematics/angular               9.0.1
@schematics/update                0.900.1
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

Thanks for reporting this issue. This issue is now obsolete due to changes in the recent releases. Please update to the most recent Angular CLI version.
If the problem persists after upgrading, please open a new issue, provide a simple repository reproducing the problem, and describe the difference between the expected and current behavior.

I can confirm that the problem is gone in Angular 9.1.7. Thanks for fixing!


[Feature Request] DrawingAreas should be threadsafe.

Background
Similar to #55. In addition, it would be nice to make use of multiple cores when rendering real time sub-graphs.

What is the feature ?

When doing:
let root = BitMapBackend::with_buffer(&mut texture.data, texture.dimension).into_drawing_area();
let (upper, lower) = root.split_vertically(300);

It would be nice if upper and lower could be used from separate threads to render both sub-graphs in parallel, since they should not share any overlapping area.

Why do you need the feature ?
What is the use case ?

See above, to improve multi-core utilization when doing software rendering of real time graphs.
Addition Information
Plotters should not do the multithreading itself and should remain lightweight. Instead, I as the API user want to be in charge which threading library I use, e.g., when rendering sub-graphs.

Ideally this feature should work with #54.
Now that I think about it, this might be really hard to implement efficiently, since it would probably require either:

splitting a mutable borrow of the backing array between multiple threads (which might work for vertical stacking but probably not for horizontal ones as the arrays are not continuous anymore)
synchronizing access to the backing array, which costs performance.

Hi,
That's a really nice suggestion and I think it's really good to have it.
Particularly, I think splitting the buffer based on drawing region may have the following issue:

As you mentioned. The memory region may not be consecutive, for example we have a region that handles from (100, 100) to (200, 200), Since the image buffer is stored as a 2D array, it's not easy to have a reference like that.
The drawing area may overlaps, so there's no thread safety guarantee.

Also if we synchronizing the access per pixel, that will be very expensive.
So that I am thinking is, for sure we need synchronizing threads to manipulate the image buffer. What we can improve it is to use a buffer that caches the modification in drawing area and later we acquire the lock once and put all pixels to the same one.
In fact, I am thinking about could we have an bitmap element.
Basically each thread just render a different in-memory image. And after that one thread convert all the in-memory image into bitmap elements and paste it on the main buffer ?
As long as it reduce the synchronized operations, it might be good.
Ideally, we should have a pixel granularity lock, but it seems hard to have one based on the image crate.
So any thoughts?

I believe Rayon create has some of needed functionality.
вт, 15 окт. 2019 г., 22:30 Hao Hou<EMAIL_ADDRESS>
Hi,
That's a really nice suggestion and I think it's really good to have it.
Particularly, I think splitting the buffer based on drawing region may
have the following issue:

As you mentioned. The memory region may not be consecutive, for
example we have a region that handles from (100, 100) to (200, 200), Since
the image buffer is stored as a 2D array, it's not easy to have a reference
like that.
The drawing area may overlaps, so there's no thread safety
guarantee.

Also if we synchronizing the access per pixel, that will be very expensive.
So that I am thinking is, for sure we need synchronizing threads to
manipulate the image buffer. What we can improve it is to use a buffer that
caches the modification in drawing area and later we acquire the lock once
and put all pixels to the same one.
In fact, I am thinking about could we have an bitmap element.
Basically each thread just render a different in-memory image. And after
that one thread convert all the in-memory image into bitmap elements and
paste it on the main buffer ?
As long as it reduce the synchronized operations, it might be good.
Ideally, we should have a pixel granularity lock, but it seems hard to
have one based on the image crate.
So any thoughts?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/38/plotters/issues/56?email_source=notifications&email_token=ACPXFN52QA3WOW4B5HIAGVLQOYK6HA5CNFSM4JA76AM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBJ6JIY#issuecomment-542368931,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPXFN4SBOLQNO3JX7SXWF3QOYK6HANCNFSM4JA76AMQ
.

I believe Rayon create has some of needed functionality.

It really depends on what we want to do. If we just do the bitmap element, which allows background rendering and then paste to foreground, then nothing much needs to be changed.
However, if we want to make a real thread safety guarantee, we may need many things to think about.

I think how to implement this depends a bit on the overarching values to address. In this scope mine would be, in order of priority:

control (I can precisely draw what I want, when and how I want it)
lightweight (few dependencies, low compile time, does not interfere with my own dependencies)
single-threaded speed (more common use case than multi-threaded)
multi-threaded speed

From that angle I would want:

generally speed, but not at the expense of being lightweight (e.g., I'd prefer not to have a default Rayon integration as that might interfere with being lightweight, and even control if there is a version e.g., with rayon-core)
multi-threaded speed, but not at the expense of making single-threaded speed significantly lower. I'd be willing to trade a bit, but not very much.

Basically each thread just render a different in-memory image. And after that one thread convert all the in-memory image into bitmap elements and paste it on the main buffer ?
As long as it reduce the synchronized operations, it might have OK performance.

This sounds like an interesting idea to hack with different image sizes / graphs, to see how much time plotting usually takes today, and how long image assembly would be, to get a ballpark figure.

Alright, I did a small experiment:

Rendering the x^2 curve in 640x480 to a BitMapBackend
Splitting the canvas into two horizontal subgraphs and rendering the curves individually
Simulating blitting a horizontal half-buffer line-by-line into a larger buffer.

With grid
test sine_640_480                                  ... bench:   4,505,700 ns/iter (+/- 200,020)
test sine_640_480_2_horizontal_subgraphs_draw_both ... bench:   5,087,750 ns/iter (+/- 184,736)
test sine_640_480_2_horizontal_subgraphs_draw_one  ... bench:   2,454,890 ns/iter (+/- 85,392)
test sine_640_480_2_horizontal_subgraphs_fake_blit ... bench:     331,725 ns/iter (+/- 6,994)

Thoughts:

These are ballpark numbers, esp. the blitting has allocation cost mixed in
Drawing two subgraphs at the given resolution takes 5ms on one thread. Parallel drawing and blitting would rather be in the 2.4 + 0.3 ms = 2.7ms area
For a graph as complex as these ones (I'd guess drawing the background grid is the most expensive part), there would be a clear benefit of parallelizing and then copying.
Also, I just realize the name sine_ is wrong, should be called x_square_ :)

Same experiment without the grid
test sine_640_480                                  ... bench:   2,973,837 ns/iter (+/- 134,352)
test sine_640_480_2_horizontal_subgraphs_draw_both ... bench:   2,998,700 ns/iter (+/- 475,909)
test sine_640_480_2_horizontal_subgraphs_draw_one  ... bench:   1,436,110 ns/iter (+/- 69,206)
test sine_640_480_2_horizontal_subgraphs_fake_blit ... bench:     333,900 ns/iter (+/- 29,314)

Without the grid, 320x240
test sine_320_240                                  ... bench:     925,335 ns/iter (+/- 8,680)
test sine_320_240_2_horizontal_subgraphs_draw_both ... bench:   1,063,720 ns/iter (+/- 85,561)
test sine_320_240_2_horizontal_subgraphs_draw_one  ... bench:     904,630 ns/iter (+/- 17,451)
test sine_320_240_2_horizontal_subgraphs_fake_blit ... bench:      36,906 ns/iter (+/- 1,035)

Even then, this drawing into separate buffers and blitting once done seems totally worth it. However, it would be nice not paying the extra cost of blitting + allocation, unless I actually want to pay it, using the threading library of my choice.

Hi @ralfbiedert ,
Just implemented the BitMapElement and try your benchmark quickly, sees a speedup. But lower than estimated. My guess is the thread synchronization overhead.
test sine_640_480                                      ... bench:   4,069,858 ns/iter (+/- 176,661)
test sine_640_480_2_horizontal_subgraphs_draw_and_blit ... bench:   3,227,221 ns/iter (+/- 536,819)
test sine_640_480_2_horizontal_subgraphs_draw_both     ... bench:   4,561,579 ns/iter (+/- 276,693)
test sine_640_480_2_horizontal_subgraphs_draw_one      ... bench:   2,291,869 ns/iter (+/- 94,406)
test sine_640_480_2_horizontal_subgraphs_fake_blit     ... bench:     260,334 ns/iter (+/- 22,001)
test sine_640_480_2_vertical_subgraphs_draw_and_blit   ... bench:   3,217,974 ns/iter (+/- 924,244)

Check the dev branch if you want to try this.
And this is one of the new benchmark I added
#[bench]
fn sine_640_480_2_horizontal_subgraphs_draw_and_blit(b: &mut Bencher) {
    let dim = (640 as u32, 360 as u32);
    let mut buffer = vec![0; (dim.0 * dim.1 * 3) as usize];

    let mut root = BitMapBackend::with_buffer(&mut buffer, dim).into_drawing_area();
    let (mut left, mut right) = root.split_horizentally(320);

    b.iter(|| {
        let plots:Vec<_> = [left.dim_in_pixel(), right.dim_in_pixel()]
            .par_iter()
            .map(|(w,h)| {
                let mut element = plotters::element::BitMapElement::new((0,0), (*w,*h));
                {
                    let left = element.as_bitmap_backend().into_drawing_area();
                    left.fill(&WHITE).unwrap();
                    let mut chart = ChartBuilder::on(&left)
                        .caption("y=x^2", ("Arial", 50).into_font())
                        .margin(5)
                        .x_label_area_size(30)
                        .y_label_area_size(30)
                        .build_ranged(-1f32..1f32, -0.1f32..1f32)
                        .unwrap();

                    chart.configure_mesh().draw().unwrap();

                    chart
                        .draw_series(LineSeries::new(
                            (-50..=50).map(|x| x as f32 / 50.0).map(|x| (x, x * x)),
                            &RED,
                        ))
                        .unwrap()
                        .label("y = x^2")
                        .legend(|(x, y)| Path::new(vec![(x, y), (x + 20, y)], &RED));

                    chart
                        .configure_series_labels()
                        .background_style(&WHITE.mix(0.8))
                        .border_style(&BLACK)
                        .draw()
                        .unwrap();

                }
                element
            })
        .collect();

        left.draw(&plots[0]).unwrap();
        right.draw(&plots[1]).unwrap();

        root.get_base_pixel()
    }); // `black_box` prevents `f` from being optimized away.
}

Hello @ralfbiedert ,
After working for a while on this, I just want to let you know some updates:

As I previously mentioned, the draw and blit is currently supported.
Worked on the benchmark for a while and finally makes the bitmap backend 8 times faster.
After think for a while, I don't think I am going to add inplace parallel rendering to the crate. But this can be done in this way: https://github.com/38/plotters/blob/3a17f8b7a3e6d1c2ae1d2c40f584313f491251c6/benches/benches/parallel.rs#L106

For the last update, I think the major problem is partially mutable borrow a vector seems to be unsafe anyway. So as a crate maintainer, I think it's important to not leaking the unsafe behavior to the safe rust code.
Since image crate requires the container to be anything that impls DerefMut. So we have to do make it mutably partial borrowed, but the problem is what if the thread code later moved one part of the buffer?
Plus the limit of trait bound, borrow a mutable reference is the only way we can feed it into image crate.
So what I am thinking is like the code in my benchmark:
            let mut buffer = vec![0u8; (W * H * 3) as usize];
            let (upper, lower) = unsafe {
                let upper_addr = &mut buffer[0] as *mut u8;
                let lower_addr = &mut buffer[(W * H * 3 / 2) as usize] as *mut u8;
                (
                    std::slice::from_raw_parts_mut(upper_addr, (W * H * 3 / 2) as usize),
                    std::slice::from_raw_parts_mut(lower_addr, (W * H * 3 / 2) as usize),
                )
            };

            [upper, lower]
                .par_iter_mut()
                .for_each(|b| draw_plot(&BitMapBackend::with_buffer(*b, (W, H / 2)).into_drawing_area(), 2.0));

So would you mind share you idea on this?
Thanks!

Worked on the benchmark for a while and finally makes the bitmap backend 8 times faster.

This is awesome!

After think for a while, I don't think I am going to add inplace parallel rendering to the crate.

Although I think a "any layout" parallel story would be nice, I can see the overhead this might bring. Thanks for investigating!

So what I am thinking is like the code in my benchmark:

I submitted a PR, I think this can be simplified and made safe as:
let (upper, lower) = buffer.split_at_mut((W * H * 3 / 2) as usize);

Glad you confirmed the performance improvement.

Although I think a "any layout" parallel story would be nice, I can see the overhead this might bring. Thanks for investigating!

Thanks for the suggestion. You PR just remains me. I wasn't realize there's split_at_mut function which is safe. I just realized I was previously wrong that a mutable reference can be dropped by the worker thread.  As long as the guest thread is holding just a mutable reference, the worst thing it can do is just swap the content but cannot simply move the content and invalidate the buffer. So it should be still safe.
So I think my argument on introducing any unsafe behavior into safe code isn't the case.
If this is the case, I am really happy to have the feature.

Seems we have investigave and impled things suggested under this one. Closing the issue for now. Feel free to reopen it if there's anything else. Thanks


added a new prop to disable the embedded input element of a SimpleSelect

By disabling the input element within a simple select, it is possible to use react-selectize for select elements where at least one value has to be selected.
Sometimes it is simply not desired, that the user can input text.

Thanks
To extend the idea further, I have added inputProps prop (to both Simple & MultiSelect components) that allows you to set any attribute on the embedded input element, in this case:
<SimpleSelect inputProps = {{disabled: true}}/>

Cool thanks! :+1:

Released in 0.8.0
On second thought, i think a better way to disable the search input is to simply to set the search prop to an empty string:
<SimpleSelect search = "" />

(this is the same as setting the value prop on a React.DOM.input element without providing an onChange callback & updating the state inside it)
benefits of this approach:

you get navigate using the arrow keys, select by pressing the return key & delete by hitting backspace   i.e. it doesn't block the keyDown listener.
doesn't affect focus & blur

I did a quick check, but I couldn't get your solution working. The text field was changeable as before, even though I added the following props:
{ search: '', onSearchChange: function() {console.log('check')}, }
onSearchChange does not seem to be called, but I don't think, that I have done something wrong at this point.

here is a pen that illustrates the idea
http://codepen.io/furqanZafar/pen/KVEgqv

But you can still select a value and press backspace

hmm. At the end both approaches seem like a hack, i guess this mode should be rethought and implemented within SimpleSelect.

What about an option to disable the backspace event? That would be a solution to my problem. And it would still be possible to focus and use the arrow keys.


Issue #370. Menu back is broken in IE9.

Adding class mn-hidden to the currently closing panel.

Please ignore the format changes. The atom editor did that changes automatically. The only important change is in line 151

I still wonder why IE9 would break because of that. But if it works, I'll merge this pull request (including the format changes :) )

Got it. I'll change my code.

Hi, @FrDH!
I added a function to check if browser supports css transitions.
I put this check in _c.supportsTransition variable to avoid multiple checks.

Nice one, except that _c is used for storing prefixed classnames(, _d for data-attributes and _e for events).
I'd use $.mmenu.support. It is intended for storing feature detection, much like the deprecated jQuery.support used to do.
To avoid multiple checks, could you also first check if Modernizr is available and if so, use their test?
if ( Modernizr && Modernizr.csstransitions ) { return true; }
else if ( ... )

Thanks again

Got it. Sorry about the wrong use of _c global. I'm working on it right now.

Hi, @FrDH!
I moved and renamed_c.supportsTransitions to $mmenu.support.csstransition. Also, I put a test checking if Modernizr is referred and then I use his test.
I apologize for my code. I'm not familiarized with JS.

Can't automatically merge it via Git, but I'll manually implement the fix in the next version.
Thanks a lot :)

I believe the issue is fixed now, thanks a lot!


ARM support

Is your feature request related to a problem? Please describe.
Unable to run grafana-operator on raspberry pi clusters
Describe the solution you'd like
Ideally multiarch image containg following architectures:

linux/386
linux/amd64
linux/arm
linux/arm64

Existing solutions
Base image you are using is already multiarch so it should be quite easy to add other architectures as well.
Thanks for consideration

The PR for this (https://github.com/grafana-operator/grafana-operator/pull/311) has been reverted, we should look into it again.


EgressIP not applying - antrea-egress0 interface down

Describe the bug
After creating an Egress Object and applying the right label to the pod, pod can not access anything. The EgressIP does not appear as as an assigned IP on any interface on the server.
To Reproduce
apiVersion: crd.antrea.io/v1alpha2
kind: Egress
metadata:
  name: 192-168-254-100
spec:
  appliedTo:
    podSelector:
      matchLabels:
        extip: 192-168-254-100
  egressIP: <IP_ADDRESS>
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test
    extip: 192-168-254-100
  name: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - image: busybox:1.28
        name: busybox
        args:
        - /bin/sh
        - -c
        - 'sleep 3600'

Expected
The IP should be assigned to the server and the POD should SNAT to that IP.
Actual behavior
No ip assigned and pod with no connectivity outside the cluster.
Versions:
Please provide the following information:

Antrea version (Docker image tag):  antrea-ubuntu:v1.2.0
Kubernetes version (use kubectl version): v1.21.7+k3s1
Linux kernel version on the Kubernetes Nodes (uname -r): 5.11.0-44-generic

Additional context
Antrea controller log shows:
I0109 17:33:59.415009       1 controller.go:477] Processing Egress 192-168-254-100 ADD event with selector ({&LabelSelector{MatchLabels:map[string]string{extip: 192-168-254-100,},MatchExpressions:[]LabelSelectorRequirement{},} nil []})
antrea-egress0 interface looks like down.
antrea-egress0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default

I missed this detail in the docs:
If only egressIP is specified, Antrea will not manage the assignment of the IP and it must be assigned to an arbitrary interface of one Node manually.
Closing...


Declare tensorflow in package dependencies

Because each time i do just pip install keras, i get met with No module named 'tensorflow', i'd rather just that keras would declare this in dependencies, and have it auto-pull along everything else.

@ShadowJonathan To use Keras, please make sure that you need to have the TensorFlow package installed.
Once TensorFlow is installed, you can import Keras via:
from tensorflow import keras

Please see the details here and let us know if it helps?
Thank you!

I'm already using keras, but then why is keras published as an independent package on pypi?

Hi @ShadowJonathan, As you can see here, it says

TensorFlow Keras is an implementation of the Keras API that uses TensorFlow as a backend.

When Tensorflow is installed,It is easy to use Keras library. Thank you!

Yes, so can tensorflow be added to keras's package dependencies, so it's automatically installed in when I do pip install keras?

Hi @ShadowJonathan, Keras is added to Tensorflow package. If you want to use Tensorflow and Keras together. We recommend you to install Tensorflow.
!pip install tensorflow
import tensorflow as tf
from tensorflow import keras

Then why is keras published as an independent package to pypi?

Hi @ShadowJonathan, We can use Keras alone without any hurdles. But you can’t use Tensorflow, if you installed pip install keras library.
pip install keras
import keras

@gadagashwini that's what this issue is about; as soon as I do that (without manually installing tensorflow) I get the error that a tensorflow package isn't installed.
My question is; shouldn't tensorflow be one of the package dependencies on the keras package on pypi, so that it is automatically installed when someone does pip install keras?

Hi @ShadowJonathan, Yes tensorflow is one of the Dependencies of the Keras package.
As soon as w install keras pip install keras, it doesn’t install Tensorflow. We need to manually install tensorflow. Thank you!

Yes tensorflow is one of the Dependencies of the Keras package.

As soon as w install keras pip install keras, it doesn’t install Tensorflow.

...thus, it is not a dependency?
I'm talking about pip dependencies, if tensorflow is a dependency of the keras package, then why is it not declared in any setup.py or the likes, so that it is included in the METADATA file on pypi?

A quick lesson on pypi packages, it includes some files which contain metadata about the package itself, one of them is the file METADATA, which contains dependency information.
An example with the requests library is here, where the METADATA file contains the following lines;
Requires-Dist: | urllib3 (<1.27,>=1.21.1)
Requires-Dist: | certifi (>=2017.4.17)
Requires-Dist: | chardet (<5,>=3.0.2); python_version < "3"
Requires-Dist: | idna (<3,>=2.5); python_version < "3"
Requires-Dist: | charset-normalizer (~=2.0.0); python_version >= "3"
Requires-Dist: | idna (<4,>=2.5); python_version >= "3"
Requires-Dist: | PySocks (!=1.5.7,>=1.5.6); extra == "socks"
Requires-Dist: | win-inet-pton; (sys_platform == "win32" and python_version == "2.7") and extra == "socks"
Requires-Dist: | chardet (<5,>=3.0.2); extra == "use_chardet_on_py3"
Provides-Extra: | security
Provides-Extra: | socks
Provides-Extra: | use_chardet_on_py3

These are the lines that pip looks at to find more packages.
In this case, all i'm asking is for the release flow to be altered so that tensorflow is listed as one of those dependencies.
If you take a look at the keras package here, you can see that there's absolutely no dependency declared, not even tensorflow.

The whole request of this issue is to get tensorflow to get added to the package metadata on pypi, so it is automatically installed, when someone does pip install keras.
If this is not possible, please explain to me why this is.

Hi @ShadowJonathan,
TensorFlow Keras is an implementation of the Keras API that uses TensorFlow as a backend.. Thank you!

@gadagashwini then why is tensorflow not included as a declared dependency in pypi?

Hi @ShadowJonathan,
TensorFlow Keras is an implementation of the Keras API that uses TensorFlow as a backend.. Thank you!

I think this whole issue is a misunderstanding.
It is clear that this is building on top of tensorflow.
The issue here is that if someone wants to run
pip install keras

on a fresh system. No tensorflow installed whatsoever, then keras will fail running.
This is solvable if you make tensorflow is made a direct dependency in the code you publish instead of just adding a note.
As @ShadowJonathan says you can add it to https://github.com/keras-team/keras/blob/master/requirements.txt just like pandas for example which is a mandatory dependency for keras just like tensorflow is.
That would make pip install usable on a fresh system.
I hope this lifts the confusion?

As @ShadowJonathan says you can add it to https://github.com/keras-team/keras/blob/master/requirements.txt just like pandas for example which is a mandatory dependency for keras just like tensorflow is.

No, that wont help, as that file seems to be just for development resources, there's no setup.py where this can easily be inserted, and the build system is totally alien to me.

Hi @ShadowJonathan, Request you to take a look at the Keras release notes here. From Keras v2.3.0, most of the Keras features are merged into Tensorflow.

This release brings the API in sync with the tf.keras API as of TensorFlow 2.0. However note that it does not support most TensorFlow 2.0 features, in particular eager execution. If you need these features, use tf.keras.

Thank you!

Hi @ShadowJonathan, Request you to take a look at the Keras release notes here. From Keras v2.3.0, most of the Keras features are merged into Tensorflow.

This release brings the API in sync with the tf.keras API as of TensorFlow 2.0. However note that it does not support most TensorFlow 2.0 features, in particular eager execution. If you need these features, use tf.keras.

Thank you!

You still dont seem to understand the problem here. This is not solving the issue or even talking about the issue. The issue is about something completely other than what you are replying here.

@gadagashwini please take more than 10 seconds to look at this problem.
I'm asking either;

if tensorflow could be added as a declared dependency to the keras, package, so it may be downloaded automatically if people install keras stand-alone, that keras does not assume people have already installed it.
or, why keras exists as an independent package, and/or if the plan is to eventually deprecate it in favour of tensorflow

Note that keras can't declare tensorflow in its dependency. Keras is part of the TF API, and TF uses keras as its dependency package to populate tf.keras API name space. It will be a circular dependency if we add TF to keras's dependency list.
PIP install keras is only expected for local dev use case, where user can install other required dependency via the requirements.txt in the keras repo. For normal API usage, user should only access keras via PIP install tensorflow.
For more reason about why keras is a standalone package, please see https://github.com/tensorflow/community/blob/master/rfcs/20200205-standalone-keras-repository.md

@qlzh727 thank you for the coherent response.
I'm satisfied with the answer, but i still want to point out that that RFC says "with TensorFlow as a dependency."
And, that none of that is noted in the pypi project readme, or the readme of this repository. Nowhere does it say that the intended usage is for this to be a "local dev usecase", both readmes position it as such that it is "just" a regular API.


EVESSO Install

The Current codebase does not do the proper DB Build on Mysql for EVESSO
It just never makes the DB/Tables, had to make then by hand

Sorry for the super-long delay in getting to his, but MySQL support with EVE SSO authenticatin should work as intended now.


DOC: Add documentation on executable content options

Add docs on how to write:

[ ] Python-based Jupyter Notebooks
[ ] R-Markdown

@mgrover1 could you link to one of the examples you shared during HTH? I'm interested in using myst's capability for executable content in another project and would love a reference.

@MathewBiddle - here is a link to the myst docs directly!
https://mystmd.org/guide/notebooks-with-markdown


Bug: babel.generated is not a function

I try to follow docs from this section https://github.com/rollup/rollup-plugin-babel#running-babel-on-the-generated-code
But babel.generated not exists:
rollup.config.js
// ...
import babel from 'rollup-plugin-babel';

const plugins = [
  // ...
  babel.generated({
    presets: ['@babel/env']
  }),
  // ...
];

$ rollup -c -w
[!] TypeError: babel.generated is not a function
TypeError: babel.generated is not a function
    at Object.<anonymous> (/project/rollup.config.js:23:9)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.require.extensions.(anonymous function) [as .js] (/project/node_modules/rollup/dist/bin/rollup:818:24)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at rollup_js.rollup.then.then (/project/node_modules/rollup/dist/bin/rollup:825:32)

package.json:
{
  // ...
  "devDependencies": {
    "rollup": "^1.27.5",
    "rollup-plugin-babel": "^4.3.3",
     // ...
  }
}

I ran into the same trap.
This is a rather new functionality (7 hours old) and there is just no new release on npm... yet.

Yes, sorry for that - I guess we should add an unreleased label to this for the time being. I'm going to move things forward to get this released as soon as possible, but it might take a few days.

@gingur I'm going to cut a new alpha v5 release this week so stay tuned.

It looks like v5.0.0-alpha.0 was released on top of an 11 month old comment :confused:

Yep,
$ npm list | grep rollup-plugin-babel
<EMAIL_ADDRESS>
Still gives
[!] TypeError: babel.generated is not a function

As you can see here https://www.npmjs.com/package/rollup-plugin-babel/v/5.0.0-alpha.0 this version is a year old and has nothing to do with the current implementation on master.

I've just published new rollup-plugin-babel@next (5.0.0-alpha.1) with this feature included - please give it a try.


HOSTING-427 executor display plugin

Description
For this HOSTING request: https://issues.jenkins-ci.org/browse/HOSTING-427
(I thought this was done as part of hosting ticket resolution...?)
https://github.com/jenkinsci/blueocean-executor-info-plugin
Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[x] Add link to resolved HOSTING issue in description above

For a new permissions file only

[x] Make sure the file is created in permissions/ directory
[x] artifactId (pom.xml) is used for name (permissions YAML file).
[x] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[x] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[ ] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[ ] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[ ] All newly added users have logged in to Artifactory at least once

cc @kzantow

@michaelneale

I thought this was done as part of hosting ticket resolution

Where did you specify a list of Jenkins LDAP users to authorize as uploaders? 😉
Besides that, our tools simply can't. Feel free to contribute: https://github.com/jenkins-infra/ircbot

I AM THE COPY PASTE KING


the debugger is opened only for the first error

If you get a halt/error when running some code, you get a debugger open. But if you press continue and then you get a second halt/error, you get no feedback from webside. Like in this example:
self halt yourself.
self halt foo

Fixed.

Fixed.


Added option --preserve-numeric-ids to tools/spirv-as

Options --preserve-numeric-ids or SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS preserve original numeric ids during compilation.

Squashed, typo fixed, and pushed into master as b173d1c3c


Incorrect simulator is connected by ios.profile(udid)

Current Behavior
When udid is set to ios.profile, simulator is launched correctly, but then connected to another simulator.
Expected Behavior
The simulator designated by ios.profile(udid) is connected.
Cause
Incorrect fallback on "by model" block.

Fixed
https://github.com/ldi-github/shirates-core/releases/tag/4.1.1


Swift apps not building in CI, standard libraries not found "error: header 'stdarg.h' not found"

examples/platform_channel_swift isn't building on CI, it can't seem to find the standard libraries in build_test
            PrecompileSwiftBridgingHeader normal armv7 (in target 'Runner' from project 'Runner')
...         /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.6.sdk/usr/include/module.modulemap:118:11: error: header 'stdarg.h' not found
               header "stdarg.h" // note: supplied by the compiler

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8860189854268075984/+/steps/run_test.dart_for_build_tests_shard_and_subshard_0/0/stdout
Started on https://github.com/flutter/flutter/commit/af1c629def7ac38b2428ac1837e8c6a3ec98b547 which isn't related.
Same issue on tool_test building mac app integration_tests/flutter_gallery (also Swift)
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8860189984899554176/+/steps/run_test.dart_for_tool_tests_shard_and_subshard_integration/0/stdout

\cc @godofredoc @keyonghan can we roll back https://flutter-review.googlesource.com/c/recipes/+/9460 ?

Seems related to https://flutter-review.googlesource.com/c/recipes/+/9460

Reverted: https://flutter-review.googlesource.com/c/recipes/+/9480

Setting as P1 as the change was reverted.

Here is the fix to force the drone to use the flutter package instead of the chromium one:
https://flutter-review.googlesource.com/c/recipes/+/9481


Add links to DOI, pURL, SWHID, Handle

code state: d447c22d3bf175dea68f0cf917c53f743d9efe1b

I went ahead and used https://www.dpconline.org/handbook/technical-solutions-and-tools/persistent-identifiers. Another option would be to use the wikipedia page, although it doesn't list Handle https://en.wikipedia.org/wiki/Persistent_identifier

I would like to close this issue, what do you think @tom-h?

Actually, it would be good to point to something that includes SWHIDs. Maybe this: https://doi.org/10.15497/RDA00053  ...it's not a very consumable resource.

Instead of https://doi.org/10.15497/RDA00053, I've updated the wiki page to include SWHIDs

Hehe, fine :-)


Feature/api documentation

We don't need the request/response stuff in the documentation as it's in the types right below the comments. Furthermore, we do need the identity documentation and more texty stuff. Also use /// instead of /* https://doc.rust-lang.org/rust-by-example/meta/doc.html


Ownership Reference

Fixes  https://github.com/numaproj-labs/numaplane/issues/65
Modifications
ApplyOwnershipReference method has been added and called in the syncer.go to apply the ownership reference to kubernetes manisfests
Verification
Unit tests Have been added to check for both yaml and json mainfests
Three cases have been covered adding the ownership reference to
1- yaml
2- json
3- Updating the existing ownership reference
For Yaml
[ApplyOwnershipReference](https://github.com/numaproj-
labs/numaplane/blob/feat/ownerReference/internal/shared/kubernetes/kubernetes_test.go#L71) has been added to check if ownership reference gets applied for yaml
And
For Json
These unit tests checks  if the method correctly adds  an ownerReferences field to a Kubernetes Deployment resource, indicating ownership by a GitSync custom resource. The test verifies the modified resource string and asserts there are no errors.
For  Updating the existing ownership reference -
This function tests the ApplyOwnershipReference method to ensure it correctly appends an ownership reference to an existing list of owner references in a Kubernetes Pod resource. It verifies that the GitSync custom resource is added without affecting existing owner references and checks that the modified resource string is correct, asserting no errors.

Closed because the commit history got messed up due to rebasing to fix DCO sign off  ,raised a new PR -https://github.com/numaproj-labs/numaplane/pull/156


Please Help! -- Error: System.HttpResponse[Status=Temporary Redirect, StatusCode=307]

I am getting this error and cannot find where/how to fix this.... The configuration appears to be correct per the setup instructions, I checked the source and action related to the configurations and those all look right... so I'm at a complete loss here and would greatly appreciate some help fixing it.
Below is the error.
_Phase: EXECUTE
Message: Invoke Action Error: System.HttpResponse[Status=Temporary Redirect, StatusCode=307]
The URL has moved here
System.HttpRequest[Endpoint=callout:Mass_Action/services/data/v47.0/actions/custom/flow/Request_Countdown, Method=POST]
{_

I work with Kate and wanted to ask a follow up question to Douglas and team. Does the 'Mass Action' Named Credential access Salesforce as a Guest User? Salesforce pushed out a series of Security updates recently and we've noticed some unexpected behavior with our Guest Users and are wondering if it also could be causing the problems Kate and our team is witnessing above.


Setting data in an element using JS and jQuery trigger is different in v.2.1.1

Let's say you have a text field whose value must be set dynamically based on other events (e.g. a hidden field where user cannot type in). Changing the hidden input value (e.g. $('#elem').val('x')) does not suffice for templates:forms to validate the value and include it into the form values in the action function.
In version 1.4 I had addressed this by triggering a validation event on the field, e.g. $('#elem').trigger('onkeyup');
With version 2.1.1 that doesn't seem to work anymore. Can you please advise if there's a better approach that can be used to address that scenario in the latest version?
Thanks

If you can give me the code you're using for this, I will test it out locally. I think the simplest way to do this is to pass the value in with the (reactive) initial data and set the option passThroughData: true for the hidden form element. But your method should also work.

While working on isolating the code to copy/paste here I notice that the trigger event works but with the new version I need to set the value before triggering the event. That suggests that there may be something related with the initial value of the field. I will investigate further and post an update later.
As for the other method you suggest (use passThroughData), I guess it could be useful to mention it in the new docs, I guess it's something quite common that can help others as well.
Thanks again for your prompt answers.

After fixing the initial value the field value the trigger event seems to work properly. For now let's close this issue: if I happen to notice anything unexpected I'll let you know.
Thanks.


Looking for a converter for XBTIT FM

Looking for a converter to bring my site, thesceneplace.com, which runs XBTIT FM 3.1, to this code. I need to bring my user base, and would LOVE to bring my 50 K torrents over too, but the users are a MUST. Can anyone help or point me in the right direction? I LOVE this code, and would like to represent the hard work that has gone in to it, and bring this code to the community.

It may be a lot of work. I'm not sure if GazellePW is compatible enough with XBTIT.
Maybe xbtit-to-unit3d and gazelle-to-unit3d can help and inspire you.


[Queue] change param

Change function param, return error code when getting queue len.

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #218. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

:octocat: cibot: @jaeyun-jung, src/libnnstreamer-edge/nnstreamer-edge-internal.c includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.


Audient.Sono version <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.1 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Audient calls the version 4.2.1a instead of <IP_ADDRESS> but I believe winget expects numbers for the version?

I added the requirement for interactive installation in my installer manifest PR but
winget install --manifest .\manifests\a\Audient\Sono\<IP_ADDRESS>\

does not trigger an interactive installation and instead fails with exit code 2 - is that related to https://github.com/microsoft/winget-cli/issues/910?
The executable seems not to respond to command line parameters so I do not know how to make it unattended.

The link comes from https://audient.com/products/audio-interfaces/sono/downloads/. It is similar to https://github.com/microsoft/winget-pkgs/pull/60122.

@ItzLevvie thank you for the review!
Could you please help me with my question about the interactive mode required to make the installer succeed?
I put interactive as the only supported mode but winget still tries to install it silently unless I specify -i.
In the case it tries to install silently, it will install the drivers without the accompanying tools, and it will exit with exitcode 2 (I did not see additional info).

InstallModes: currently doesn't do anything in WinGet.
When I installed this application on a clean install of Windows 11 it didn't exit with %ERRORLEVEL% of 2 and installed fine.

I found out that likely it crashed because of Controlled folder access - Windows blocked the installer from creating a folder in the Documents folder:

After allowing that action, the installation succeeded without an errorcode. ✅

I had some questions left (sorry - I'm new to creating these manifests)
As for the output of your terminal - I see it recognizes the three components it installed:

the driver
the control app
another app from Two Notes (Torpedo Remote)

I do not get that output on my console - do you have a newer version of winget maybe? Or do you use a parameter I don't know about?
Is there a way to tell winget how to deal with those components? Can I give those components a specific Package Identifier?
The reason I'm asking this is because I would like to package the 3rd component (Torpedo Remote) separately as updated versions are offered separately from https://www.two-notes.com/en/torpedo-series/torpedo-remote/.

I do not get that output on my console - do you have a newer version of winget maybe? Or do you use a parameter I don't know about?

Levvie uses a custom script for testing pull requests. The best equivalent which is available right now is the SandboxTest.ps1 script

Is there a way to tell winget how to deal with those components? Can I give those components a specific Package Identifier?

The best way is to create a manifest for those additional packages so that they can be matched and upgraded as their own package

@Trenly thanks!

The best way is to create a manifest for those additional packages so that they can be matched and upgraded as their own package
Created a manifest for Torpedo Remote at https://github.com/microsoft/winget-pkgs/pull/68221 and updated it using the manifest.

It installed correctly but winget list still shows the incorrect Package Name and Id (it lists Package Id as Remote5). Maybe that will be fixed when the manifest is merged in the repo and the winget index is updated?

@wingetbot waivers Add Validation-Domain


fix(versions): update Activiti/activiti-cloud-api versions into develop

UpdateBot pushed maven dependency: org.activiti.dependencies:activiti-dependencies to: 7.1.188

UpdateBot commands:
updatebot push-version --kind maven org.activiti.dependencies:activiti-dependencies 7.1.188 org.activiti.api:activiti-api-dependencies 7.1.188 org.activiti.core.common:activiti-core-common-dependencies 7.1.188


Meeting Agenda - 2022-12-14

Microsoft Teams Meeting Link
Agenda

Update CLA bot
Update Signing Service
Other business

Is the meeting time still 12PM PT / 3PM ET? Wondering if the calendar item I have is up-to-date.

Yes the meeting is in 75 minutes


[BUG] - Let's encrypt cert generation failure

Describe the bug
Trying to acquire a TLS cert from certbot results in
stderr: |-
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
live directory exists for { domain }
The problem occurs when running the task Generate or renew certificate with certbot.
Most probably because of the task Ensure target directory exists that runs beforehand and creates the /etc/letsencrypt/live/{ domain } directory.
Subsequent runs of the playbook (and more specifically the 'tls' tag) results in the task Ensure bbb_ssl_cert exists failing with:
fatal: [bbb1.ellak.gr]: FAILED! => changed=false
msg: file (/etc/letsencrypt/live/{ domain }/fullchain.pem) is absent, cannot continue
path: /etc/letsencrypt/live/{ domain }/fullchain.pem
state: absent
And the directory /etc/letsencrypt/live/{ domain }-001 gets created instead.
This behavior was introduced with the merge of #246.
The fix should be to remove the task Ensure target directory exists from tasks/certificate.yml and (if needed) add it in tasks/certificate-custom.yml
Ansible version
ansible 2.10.6
config file = None
configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/ansible/.local/lib/python3.7/site-packages/ansible
executable location = /home/ansible/.local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]

Hi @ChrisKar96,
Interesting behavior of letsencrypt. I don't use it, so I have to ask:
Let's assume the ssl-target-directory does not exist. Then, in a first run, letsencrypt would create it and put certs into it. Will it fail after that in a subsequent ansible-run also, since the directory is existing now?

The certificate-letsencrypt task runs a certbot command, so I'm absolutely positive that it will not fail in subsequent runs. That said, my tests for submitting this issue resulted in my domain getting rate limited some days by letsencrypt, so I haven't been able to test my solution yet. I submitted the untested PR that probably fixes the behavior of letsencrypt and I will need a review from someone who uses external certs, to be sure that fixing one functionality doesn't break the other.

I quess that certbot assumes that its config must be present in the directory if the directory itself exists. That would make sense and explain the behavior. So, no directory is fine (first run) and a directory with config is also fine (subsequent run) but directory without config is an error.


ModuleNotFoundError: No module named 'paddle'

(chatbot) root@sambot:/home/samni/chatbot/AntiFraudChatBot-test# python dialog.py
Traceback (most recent call last):
File "dialog.py", line 28, in
import paddlehub as hub
File "/home/samni/anaconda3/envs/chatbot/lib/python3.7/site-packages/paddlehub/init.py", line 18, in
import paddle
ModuleNotFoundError: No module named 'paddle'
(chatbot) root@sambot:/home/samni/chatbot/AntiFraudChatBot-test# pip install paddle
Collecting paddle
Using cached paddle-1.0.2.tar.gz (579 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
Traceback (most recent call last):
File "", line 36, in
File "", line 34, in
File "/tmp/pip-install-bx1hmi2i/paddle_1fbbf321c159451885d56f4885f29927/setup.py", line 3, in
import paddle
File "/tmp/pip-install-bx1hmi2i/paddle_1fbbf321c159451885d56f4885f29927/paddle/init.py", line 5, in
import common, dual, tight, data, prox
ModuleNotFoundError: No module named 'common'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
请问这个问题如何解决 谢谢

Python 3.7.15 (default, Nov 24 2022, 21:12:53)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.

import paddlehub
Illegal instruction (core dumped)


Followed the guide, I see no analytics data. Help?

Also not sure why I am redirected to a page with no content! (this one).
I followed the steps for an iOS build on Unity 2019.1.5f1, and all the SDKs are installed ok, App Center Behavior game object is ok and it is there when running the game. Still, no data shown back in appcenter.
Help!
Thanks.

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

ID: 64bf6eee-8421-34eb-a50e-78132fa8d45f
Version Independent ID: 99cb3da9-7d74-8648-a438-de3849bd6a2c
Content: Unity SDK Troubleshooting - Visual Studio App Center
Content Source: docs/sdk/troubleshooting/unity.md
Service: vs-appcenter
GitHub Login: @jwhiteDev
Microsoft Alias: jawh

@fermelone that's because we wanted to publish troubleshooting information, but don't have any yet. When we have some, we'll add it to the page.
If you're having trouble making something work, please open an issue with our support team. App Center support is provided directly from within the App Center portal. Any time you need help, just click the blue chat button in the lower-right corner of any page and our dedicated support team will respond. For additional information, see the App Center Help Center.


cn_salmon Error:arguments implying differing number of rows

Hi, I'm running CellNet following the Nature Protocols paper, after downloading the example data from srp059670, I tried cn_salmon(stQuery) command, however error occured as followed:
determining read length.
Trimming reads.
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 21, 22
Then I tried to read the function of cn_salmon in your code, however I still didn't fix the bug, it seems to me that the program is reporting error since the number of the samples in the sample table is incoherent with the files in the working directory, which is not true in my circumstances, so what should I do next? Thanks!

Hi,
Thanks for your interest in using CellNet. Are you running this on AWS? Which branch are you using? Can you share the precise steps have taken up to the error?

Hi, I am running on my own MacBook Pro.
library(devtools) install_github("pcahan1/CellNet", ref = "rpackage") library(CellNet) setwd("./Bioinformatics/CellNet") cn_setup(local = TRUE) iFileMouse <- "salmon.index.mouse.122116.tgz" fetchIndexHandler(destination = "ref/", species = "mouse", iFile=iFileMouse) download.file("https://s3.amazonaws.com/CellNet/rna_seq/mouse/examples/SRP059670/st_SRP059670_example.rda",               "st_SRP059670_example.rda") stQuery <- utils_loadObject("st_SRP059670_example.rda") stQuery <- cn_s3_fetchFastq("CellNet","rna_seq/mouse/examples/SRP059670",stuQuery,fname="fname", compressed="gz") pathToSalmon <- "/Users/danliu/miniconda2/pkgs/salmon-0.7.2-0/bin" expList <- cn_salmon(stQuery, refDir = "ref/",                      salmonIndex = iFileMouse,                      fname<-paste0("expList_SRP059670_example.rda"),                      salmonPath = pathToSalmon)
Strange enough, after downloading all the fastq files, R program itself would not decompress the fastq files, so I gzip all the fastq files in the console, and then run the cn_salmon() function, which return the error metioned above, implying wrong number of file numbers. And then I tried to remove one of the fastq.gz files under the working directory, and rerun the cn_salmon() function, which return the error saying differing number of rows: 21, 20
Wish I had clarified my problem for you.

Hi, I am running on my own MacBook Pro.
The code is listed below as:
'library(devtools)
install_github("pcahan1/CellNet", ref = "rpackage")
library(CellNet)
setwd("./Bioinformatics/CellNet")
cn_setup(local = TRUE)
iFileMouse <- "salmon.index.mouse.122116.tgz"
fetchIndexHandler(destination = "ref/", species = "mouse", iFile=iFileMouse) download.file("https://s3.amazonaws.com/CellNet/rna_seq/mouse/examples/SRP059670/st_SRP059670_example.rda", "st_SRP059670_example.rda")
stQuery <- utils_loadObject("st_SRP059670_example.rda")
stQuery <- cn_s3_fetchFastq("CellNet","rna_seq/mouse/examples/SRP059670",stuQuery,fname="fname", compressed="gz")
pathToSalmon <- "/Users/danliu/miniconda2/pkgs/salmon-0.7.2-0/bin"
expList <- cn_salmon(stQuery, refDir = "ref/", salmonIndex = iFileMouse, fname<-paste0("expList_SRP059670_example.rda"), salmonPath = pathToSalmon)'
Strange enough, after downloading all the fastq files, R program itself would not decompress the fastq files, so I gzip all the fastq files in the console, and then run the cn_salmon() function, which return the error metioned above, implying wrong number of file numbers. And then I tried to remove one of the fastq.gz files under the working directory, and rerun the cn_salmon() function, which return the error saying differing number of rows: 21, 20
Wish I had clarified my problem for you.

Thanks for providing that information.  I'll look into this...

Can CellNet deal with pseudo counts by the Salmon rather than fastq files?

Hi,
Can you try running with out latest version (https://github.com/pcahan1/CellNet/tree/v0.2.2) instead of the one listed in the protocols:

install_github("pcahan1/CellNet", ref = "v0.2.2")

I am running into the same problem. I am running CellNet on my university's cluster. I believe the issue is the fastq_trim function, specifically in the line that specifies nnames.
nnames <- paste(unlist(strsplit(fnames, ".fastq")), "_trimmed.fq", sep = "")
The files i am working with are gzipped. it appears that since the files I have end in .gz, the strsplit function splits each file name in the middle, after fastq, instead of splitting the fnames string into file names after fastq.gz. The result is that nnames ends up with an additional row, causing the error.
I unzipped my files and ran cn_salmon and did not get the error.

I also got the error.Can you tell me how to solve this problem?Very thanks.

We have now created a web application that takes as input an expression matrix (counts, TPM, or FPKM), and sample meta-data, and performs CellNet analysis. Additionally, this tool includes analysis of many state-of-the-art differentiation protocols, so that you can benchmark your results against those commonly used methds:
https://cahanlab.org/agnosticCellNet_web/


There is still marbel without color

Why we get this random color ?

try a fi whit while (num == 0) generateNewNum


PHP 8 attributes and single_space_after_construct

Bug report
Hello, I know PHP-CS-Fixer is not fully compatible with PHP 8 but I found a strange behavior with PHP 8 attributes when single_space_after_construct is used (PHP8 attribute support is added in #5284)

PHP version: 8.0.0
PHP CS Fixer version: 2.17.3
Configuration : Only single_space_after_construct rule is enabled (with default configuration)

Code snippet that reproduces the problem
Original file :
<?php

declare(strict_types=1);

namespace App\Entity;

use App\Attribute\MyAttribute;
use App\Attribute\MyAttribute2;

#[MyAttribute()]
class Class2
{
   #[MyAttribute2]
   private $id;
}

PHP-CS-Fixer suggestion :
   1) src/Entity/Class2.php (single_space_after_construct)
      ---------- begin diff ----------
--- Original
+++ New
@@ @@

-#[MyAttribute()]
-class Class2
+#[MyAttribute()] class Class2
 {
-    #[MyAttribute2]
-    private $id;
+    #[MyAttribute2] private $id;
 }

      ----------- end diff -----------

thanks for reporting!


Add ServiceRequestContextCaptor.isEmpty()

Motivation:
ClientRequestContextCaptor has isEmpty() but ServiceRequestContextCaptor doesn't.
Modifications:

Add ServiceRequestContextCaptor.isEmpty()

Result:

Closes #4757

Thanks, @mitrofmep! Let me merge this once the build passes.


virtcontainers: apply devices constraints

Apply devices constraints to the container in the virtual machine
Depends-on: github.com/kata-containers/agent#352
fixes #656
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

@devimc Lets verify this change works with device passthrough.

@amshinde do you know if currently we have a device passthrough test?
https://github.com/kata-containers/tests/blob/master/integration/docker/run_test.go#L85-L138

Hi, is there any difference in the use of docker command by using device constrain? I use following command to enable INTEL GPU device support, with this commit added in, the GPU device node "/dev/dri/card0" and "/dev/dri/renderD128" can be seen in container, but returns error if open() the device node. Without this commit, everything works well.
What changes do I have to make in the command line to adapt to device constrains?
docker run -it --runtime=kata-runtime --rm  --device=/dev/vfio/0  -v /dev:/dev  ubuntu /bin/bash

@xindazhao this patch is to honour the devices cgroup, for example if you want to grant access to /dev/dri/card0 then you have to use --device /dev/dri/card0 in the command line. The problem with vfio devices is that once they are unbind'd from the host other devices like --device /dev/dri/card0 are no more visible, hence docker run --runtime kata-runtime --device /dev/dri/card0 -it --rm ubuntu bash fails with following error  docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/dri/card0": no such file or directory.
@xindazhao I have some ideas to fix the issue your are facing, is there a way to know which devices were bind'd or are part of a vfio device?, for example if you passthrough /dev/vfio/0, how I can identify that /dev/dri/card0 and /dev/dri/renderD128 were created because of /dev/vfio/0 was attached?

There is no direct relationship between the VFIO node and GPU device node. In the GVT-g (VFIO Mdev) scenario, multiple virtual GPUs share a physical GPU. We append different VFIO nodes (/dev/vfio/0, /dev/vfio/1 /dev/vfio/2 ....) to the docker command line, but in the guest VM, all the GPU device nodes that you see might be the same "/dev/dri/card0" and "/dev/dri/renderD128"

@devimc what's the story on this PR? What is the blocker to make CI passing so that we can move to a mergeable state?

if device constrains are applied, we'll face issues with vfio devices see https://github.com/kata-containers/runtime/pull/701#issuecomment-419443916


BLM Rotation

hi, I was wondering what level is the BLM rotation is at and will you be working on that for the next supported class?

Outdated.


Cloudflare API Token Authentication Support

Updated Plugin as follows:

Added support for Cloudflare API Token Authentication.  This is the more secure method of authenticating since it allows you to set authorization controls versus using a global API Key that has full account access.  This change is designed to be backwards compatible with using API Key Authentication so that it does not break any existing deployments on Netlify.

Moved Environment verification checks to onEnd since calling utils.build.failBuild within onPreBuild does not prevent onEnd from firing.

Thank you for the PR; this looks fine- merging!

I've published v1.1.0 to npm.
Can I ask you to please open a pull request on Netlify's plugin directory here:
https://github.com/netlify/plugins/edit/master/plugins.json - checking it meets the requirements. It would be a great help.

Hi @chrism2671,
I would be happy to do so.
Regards,
@nikduvall

PR-119 created to update the Netlify plugin.json file.


Chewie throws PlatformException

From a web page (DeltaBit) i retrive a video link and use it into Chewie  as so:
 this._videoController = VideoPlayerController.network(super.widget.url);
 this._chewieController = ChewieController(
     videoPlayerController: this._videoController,
     autoPlay: true,
     showControls: true,
     autoInitialize: true,
     fullScreenByDefault: true,
     allowFullScreen: false,
 );

but i get a PlatformException exception with this error:
Exception has occurred.
PlatformException (PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to https://delta32.fastcdn.stream/axt5n64yckszjk5wrxbtijjdppvnmnhfrasho3klivstky66zyxsrk2dadpq/v.mp4, null))

this is the DeltaBit page:
https://deltabit.co/a4tf265cpvhk
with other video link it works since i've added
android:usesCleartextTraffic="true"
to the manifest

repleacing https with http in the url in some way solved the problem.


React flow edges are not getting mounted on UI if browser zoom level is reduced to 80%, 90% or increased to 110%

What platform were you using when you found the bug?

React Flow : 11.10.1
Browser and version: Chrome 127.0.6533.89
OS and version: MacOS - 12.7.1

Live code example
No response
Describe the Bug
Firstly, Thanks for such nice library.
I am using react-flow in my application with custom edge and custom node for drawing graphs.
I am facing bit strange issue, where edges are not getting mounted when browser zoom level is changed before mounting/launching graph.
This is only happening when there are too many nodes and edges are present on the graph and browser zoom levels is set to 80%, 90% or 110%
Its working fine if graph level is set to 75%, 100%(default), 125% or 150%.
Steps to reproduce the bug or issue
Having graph with custom node and edges.

Set browser zoom level to 80%, 90% or 110% before mounting graph.
Launch or mount the graph by visiting particular page. Graph must have large number of nodes and edges.
Issue-  Graph edges are getting mounted. Application is not even executing/calling the custom edge component code.

Expected behavior
Graph edge should be visible even for other zoom levels
Screenshots or Videos
No response
Additional context
No response

I cannot reproduce this on my end. Can you create a codesandbox via new.reactflow.dev/ts with a reproduction?

Sure @peterkogo. Will prepare some example on codesandbox to reproduce this scenario, and will provide it within 2-3 days.
Thanks

Please re-open with a codesandbox or repo.


HTML refactoring

Hey girls, @cterrasid and me have done some improvements on the HTML structure, specially:

Add labels content to the colors' section.
Add .visually-hidden class so they are accessible though not visible.
Solve some indentation problems


[QUESTION] - How to send event to a component?

Before migrating, I have below code:
// this is to keep the state of library
            let event: Event = Event::Key(KeyEvent {
                code: KeyCode::Down,
                modifiers: KeyModifiers::NONE,
            });
            self.view.on(event);

This code is specially used when delete an item from tree. After migrating, I can generate the same event as below:
let e: Event<NoUserEvent> = Event::Keyboard(KeyEvent {
                code: Key::Down,
                modifiers: KeyModifiers::NONE,
            });

But as there is no view, how should I send this message? Thanks.

There are other ways to get around the problem, but none of them injecting events this way. This is no more possible by design, since it's not the way it should be done in my mind.

If you're remounting the tree at erach update, the new TreeView component allows you to provide the initial node, so you can always create a function which calculates the new node when deleting one (basically Orange trees already provides all the methods you need to do so).

If you're using the Update to get the new tree, you can access to the states, as described here https://github.com/veeso/tui-realm-treeview

The dirty way: you can create a Port which has a member of type Arc<RwLock<Option<Event>>> that you can write from your application whenever you need to inject an event. In this case, it should be better to use Custom events (so, instead of NoUserEvent you'll have your events) and subscribe the tree to that kind of event, in order to perform the same task.
pub struct EventInjector {
  ev_jar: Arc<RwLock<Event<MyUserEvent>>>>,
}

impl Poll<MyUserEvent> for EventInjector {
 ...
}

Thanks for pointing me to the right direction.
I finally work option 1 out like this:
                // // this is to keep the state of playlist
                self.reload_tree();
                let tree = self.tree.clone();
                if let Some(new_node) = tree.root().node_by_route(&route) {
                    self.sync_library(Some(new_node.id()));
                } else {
                    //special case 1: old route not available but have siblings
                    if let Some(last) = route.last_mut() {
                        if last > &mut 0 {
                            *last -= 1;
                        }
                    }
                    if let Some(new_node) = tree.root().node_by_route(&route) {
                        self.sync_library(Some(new_node.id()));
                    } else {
                        //special case 2: old route not available and no siblings
                        route.truncate(route.len() - 1);
                        if let Some(new_node) = tree.root().node_by_route(&route) {
                            self.sync_library(Some(new_node.id()));
                        }
                    }
                }


The DatePicker for UTC time format is showing the day before

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info

Package Name And Version<EMAIL_ADDRESS>System: Ubuntu
Browser: chrome91.0.4472.164
Reproduction Link: https://codesandbox.io/s/goofy-wood-nt9rh3?file=/src/App.js

What is expected?
The UTC format time should be translated to local time I think. If I set "2022-03-22T20:11:59Z" as value of DatePicker, I should see "2022-03-23 04:11:59" instead of "2022-03-22 20:11:59".
Steps to reproduce
set a UTC time for DatePicker value e.g. "2022-03-22T20:11:59Z".

Do not set string value, use Date or timestamp


requirements.txt error

When ever I try setup.bat I always get “Could not open requirements file; [Errno 2] No such file or directory: ‘requirements.txt’”. Please help. Also my requirements.txt is just a link so I supposed to change it to something else or leave it and input something else other than setup.bat?

You're supposed to download and extract all the contents locally. Not just
run it from there zip, which is what you're doing probably.


⚠ Bofrost.be has degraded performance

In 41c1d7b, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1986 ms

Resolved: Bofrost.be performance has improved in 054732d.


Please consider not adding extra global margins to sidebars

This doesn't contribute much to the design and it makes some posts get even longer vertically due to wasted space.

This a stylistic choice. I feel that the default Foundry interface lacks a lot of white space. I might add a compact version of the UI in the future, and if I do, I'll remove the extra padding.

Okay, I will have to Custom CSS this for now. Since this issue will stay unresolved until Settings are introduced, maybe keep it open or give it a Future Improvement tag, to make sure these aren't fully forgotten?

Fair point. I'm still figuring out how to use this thing. Btw, you might want to either add a padding-top: 15px to windows with tabs or margin-top: 0 to nav.sheet-tabs:first-child.

Thank you!


Headless mode throws NoSuchElementException exception

What are you trying to achieve? (Expected behavior)
I want to select the elements in the headless mode
What do you get instead? (Actual behavior)
The program throws NoSuchElementException exceptions saying "Unable to locate element". If I remove headless option, then everything works fine, but this involves a browser window. I need a headless one.
How could the issue be reproduced? (Steps to reproduce)
<?php

require 'vendor/autoload.php';

use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Exception\NoSuchElementException;
use Facebook\WebDriver\Exception\TimeOutException;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\WebDriverExpectedCondition;

$host = 'http://localhost:4444/wd/hub';

$options = new ChromeOptions();
$options->addArguments(['--headless', '--disable-gpu', '--window-size=1200,1100', '--no-sandbox']);
$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host, $caps);
$driver->get('https://www.olx.ua/obyavlenie/ischu-sozhitelnitsu-IDDW6ub.html');

$driver->wait(10); // This line is ignored by the webdriver, idk why

$driver->findElement(WebDriverBy::cssSelector('.contact-button > span.spoiler'))->click();
// Some job here
$driver->quit();

Details

Php-webdriver version: 73.0.3683.68
PHP version: 7.3
Selenium server version: Selenium build info: version: '3.9.1', revision: '63f7b50'
Operating system: Windows 10
Browser used + version: Chrome 73

Does $driver->wait(10); even work without ->until($condition)?

Forgot to close the issue. The target website banned me because of “Headless” user-agent. I’ve replaced the header and everything is working now.

Still, according to docs calling wait() only constructs an instance of WebDriverWait but it does nothing unless you call until() on it:
    /**
     * Construct a new WebDriverWait by the current WebDriver instance.
     * Sample usage:
     *
     *   $driver->wait(20, 1000)->until(
     *     WebDriverExpectedCondition::titleIs('WebDriver Page')
     *   );
     *
     * @param int $timeout_in_second
     * @param int $interval_in_millisecond
     * @return WebDriverWait
     */