[SPARK-32100][CORE] Add WorkerDecommissionExtendedSuite

What changes were proposed in this pull request?
This PR aims to add WorkerDecomissionExtendedSuite for various worker decommission combinations.
Why are the changes needed?
This will improve the test coverage.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the Jenkins.

cc @dbtsai and @holdenk

Merged build finished. Test PASSed.

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

Test build #124518 has started for PR 28929 at commit 6baeb89.

Test build #124519 has started for PR 28929 at commit 6bc677e.

Merged build finished. Test PASSed.

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

Merged build finished. Test PASSed.

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

Test build #124521 has started for PR 28929 at commit 8ef7df8.

Merged build finished. Test PASSed.

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

Test build #124521 has finished for PR 28929 at commit 8ef7df8.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class WorkerDecommissionExtendedSuite extends SparkFunSuite with LocalSparkContext

Merged build finished. Test FAILed.

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

Merged build finished. Test PASSed.

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

Test build #124522 has started for PR 28929 at commit 3da70ec.

Test build #124518 has finished for PR 28929 at commit 6baeb89.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class WorkerDecommissionExtendedSuite extends SparkFunSuite with LocalSparkContext

Merged build finished. Test FAILed.

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

Test build #124519 has finished for PR 28929 at commit 6bc677e.

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

Merged build finished. Test PASSed.

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

LGTM, better test coverage for stuff in core is good :) Thanks @dongjoon-hyun :)

Thank you, @holdenk !

All Scala/Java/PySpark test passed, current R tests are running.
Merged to master for Apache Spark 3.1.0.

Test build #124522 has finished for PR 28929 at commit 3da70ec.

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

Merged build finished. Test PASSed.

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

Wait .. the SPIP hasn't technically passed yet ...

Let's make it pass quickly first so we don't have to block all these APIs. I am supportive of the SPIP FWIW.

This is not an API change just increases test coverage on already merged code. I’ll bring the SPIP to a vote this week, just been dealing with resolving some misunderstandings first.

Yeah, I just removed as I thought it's unnecessary to raise an issue here; but if we should technically speak, SPIP wasn't passed. It's odds to merge related PRs. We should technically more think about reverting the other codes rather than merging more codes when the SPIP is in progress.
I guess it's practically fine - and that's why I just decided to remove the comments but technically I don't think this is right.


Move a EllipseArc will get wrong result

Here is the code:
Ellipse earc = new Ellipse(Vector2.Zero, 10, 5)     //pic1
            {
                StartAngle = 0,
                EndAngle = 180,
                Rotation = 180
            };

earc.TransformBy(Matrix4.Translation(5, 0, 0));      //pic2

pic1
I draw a semi ellipse

pic2
After move the semi ellipse direction changed

For the time being and before I upload a fix for it. You can, instead, create the ellipse arc from 180 to 0 with 0 rotation.


Use a pool of hashers

In the current codebase, a new hasher is allocated every time a hash needs to be computed. Use the pool from geth instead.

We're no longer hashing commitments. Closing.


Import and re-org to previously validated payload

Adds the following scenario:

Genesis <- P1 <- P2 <- P3 <- P4
EL starts with head: P4, safe: P3, finalized: P2
newPayload(P3)

EL returns {status: VALID, latestValidHash: P3.blockHash}

forkchoiceUpdated(head: P3, safe: P2, finalized: P1)

EL returns {status: VALID, latestValidHash: P3.blockHash}

cc @marioevz

We have something very similar here: https://github.com/ethereum/hive/blob/ee8d44878b25fa3dec59e2536977af8a44b345dd/simulators/ethereum/engine/enginetests.go#L1091
The main difference is that the second fcU is forkchoiceUpdated(head: P3, safe: P3, finalized: P3), then the test proceeds to build on top of P4 and continue.

We have something very similar here: https://github.com/ethereum/hive/blob/ee8d44878b25fa3dec59e2536977af8a44b345dd/simulators/ethereum/engine/enginetests.go#L1091
The main difference is that the second fcU is forkchoiceUpdated(head: P3, safe: P3, finalized: P3), then the test proceeds to build on top of P4 and continue.

Great! IMO, it's better if these three fields reference different blocks, or at least head and safe are equal while finalized should normally be behind. I will mark this test as done then with a link that you have posted


Filter inline_css

Hi I'm using this great Library on a bigger Project so I was missing the filter "inline_css"
For all of you, also needing this filter:
It was very Simple tanks to the Automattic/juice library
import juice from "juice";

Twig.extendFilter("inline_css", function (value, params) {
      let html = juice(value);
      return html;
});

If this should work in a browser (I render twig templates completely client side) then you should use:
import juice from "juice/client";

And you should replace some libraries juice is using in tsconfig.json:
"compilerOptions": {
   "paths": {
      "stream":[
        "node_modules/stream-browserify"
      ],
      "cheerio": [
        "node_modules/cheerio-without-node-native"
      ]
   }
}

Due to some Bugs "cheerio-without-node-native" can only be used in version "^0.20.2" for now.
Hope this is helpful for someone.

As mentioned in the TwigPHP documentation this filter is not part of core Twig, but is available as an extension. For this reason, I don't think it should be included in core twig.js. It could possibly added as an external extension at some point.


Roll Flutter Engine from 2b5961cbc40d to c7cea7b0b225 (1 revision)

https://github.com/flutter/engine/compare/2b5961cbc40d...c7cea7b0b225
2023-09-11<EMAIL_ADDRESS>Roll Skia from 787b61f00100 to 2fa311521fb2 (1 revision) (flutter/engine#45642)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


"zoom in to look for stops" incorrectly displayed on app startup

I live in an area with no stops in the default zoom radius so when I open the app I incorrectly get the message "zoom in to look for stops" when it should either say something like no stops here or have no message at all.
/cc @ksslng

Core issue is fixed. Secondary issue remains, and will hopefully be fixed in 2.5.


Clean up any deploytarget configurations when removing projects

This PR implements logic to ensure that any deployTargets are cleared up when a project is removed.  Less likely to be an issue in production, but in testing or local this resulted in projects incorrectly assuming that they had deploytargets configured.

sorry for crossed PRs there, nice pickup


Issue #60: Use cluster dropdown which retrieves all clusters in all zones

See #60: Removes the zone dropdown, and consequently the entire ComputeClient because it is no longer required to retrieve and verify clusters.

Don't have anything to add outside of Craig's comments. So otherwise, LGTM.

Yikes, I just merged in #50, so there are some merge conflicts.

Update on this: I am significantly reducing the scope of this PR to focus only on the cluster dropdown and instead treating the zone dropdown as an optional value in the form that serves as a filter.
I'm moving some of these changes into a separate PR which will address the Zone -> Location refactoring separately on top of the cluster dropdown changes

Final run of mvn verify because this build could take a while.
To github.com:stephenashank/google-kubernetes-engine-plugin
   73398ce..9828cb6  feature/issue60clusterdropdown -> feature/issue60clusterdropdown
stephenshank@stephenshank:~/Documents/temp/google-kubernetes-engine-plugin$ mvn verify
[INFO] Scanning for projects...
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:3.3 is missing, no dependency information available
[WARNING] Failed to build parent project for org.jenkins-ci.plugins:google-kubernetes-engine:hpi:0.5.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Google Kubernetes Engine Plugin 0.5.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-hpi-plugin:3.3:validate (default-validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M2:display-info (display-info) @ google-kubernetes-engine ---
[INFO] Maven Version: 3.5.2
[INFO] JDK Version: 1.8.0_181-google-v7 normalized as: 1.8.0-181
[INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: 4.19.28-2rodete1-amd64
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (display-info) @ google-kubernetes-engine ---
[INFO] Ignoring requireUpperBoundDeps in com.google.guava:guava
[INFO]
[INFO] >>> maven-javadoc-plugin:3.1.0:javadoc (validate) > generate-sources @ google-kubernetes-engine >>>
[INFO]
[INFO] --- maven-hpi-plugin:3.3:validate (default-validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M2:display-info (display-info) @ google-kubernetes-engine ---
[INFO] Maven Version: 3.5.2
[INFO] JDK Version: 1.8.0_181-google-v7 normalized as: 1.8.0-181
[INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: 4.19.28-2rodete1-amd64
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (display-info) @ google-kubernetes-engine ---
[INFO] Ignoring requireUpperBoundDeps in com.google.guava:guava
[INFO]
[INFO] --- xml-format-maven-plugin:3.0.7:xml-format (validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- tidy-maven-plugin:1.1.0:pom (validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- maven-localizer-plugin:1.24:generate (default) @ google-kubernetes-engine ---
[INFO]
[INFO] <<< maven-javadoc-plugin:3.1.0:javadoc (validate) < generate-sources @ google-kubernetes-engine <<<
[INFO]
[INFO]
[INFO] --- maven-javadoc-plugin:3.1.0:javadoc (validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- xml-format-maven-plugin:3.0.7:xml-format (validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- tidy-maven-plugin:1.1.0:pom (validate) @ google-kubernetes-engine ---
[INFO]
[INFO] --- maven-localizer-plugin:1.24:generate (default) @ google-kubernetes-engine ---
[INFO]
[INFO] --- fmt-maven-plugin:2.8:format (default) @ google-kubernetes-engine ---
[INFO] Processed 30 files (0 reformatted).
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ google-kubernetes-engine ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 20 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ google-kubernetes-engine ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/classes
[INFO]
[INFO] --- access-modifier-checker:1.16:enforce (default-enforce) @ google-kubernetes-engine ---
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.17:check (check) @ google-kubernetes-engine ---
[INFO] Resolved signature org.codehaus.mojo.signature:java18 version as 1.0 from dependencyManagement
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO]
[INFO] --- maven-hpi-plugin:3.3:insert-test (default-insert-test) @ google-kubernetes-engine ---
[INFO]
[INFO] --- gmaven-plugin:1.5-jenkins-3:generateTestStubs (test-in-groovy) @ google-kubernetes-engine ---
[INFO] No sources found for Java stub generation
[INFO]
[INFO] --- maven-antrun-plugin:1.3:run (createTempDir) @ google-kubernetes-engine ---
[INFO] Executing tasks
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ google-kubernetes-engine ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 11 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ google-kubernetes-engine ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 17 source files to /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/test-classes
[INFO]
[INFO] --- maven-hpi-plugin:3.3:test-hpl (default-test-hpl) @ google-kubernetes-engine ---
[INFO] Generating /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/test-classes/the.hpl
[INFO]
[INFO] --- maven-hpi-plugin:3.3:resolve-test-dependencies (default-resolve-test-dependencies) @ google-kubernetes-engine ---
[INFO]
[INFO] --- gmaven-plugin:1.5-jenkins-3:testCompile (test-in-groovy) @ google-kubernetes-engine ---
[INFO] No sources found to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.20.1:test (default-test) @ google-kubernetes-engine ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running InjectedTest
[INFO] Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.655 s - in InjectedTest
[INFO] Running com.google.jenkins.plugins.k8sengine.ClusterUtilTest
[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 s - in com.google.jenkins.plugins.k8sengine.ClusterUtilTest
[INFO] Running com.google.jenkins.plugins.k8sengine.CredentialsUtilTest
[INFO] Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.296 s - in com.google.jenkins.plugins.k8sengine.CredentialsUtilTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubeConfigTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.376 s - in com.google.jenkins.plugins.k8sengine.KubeConfigTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderClusterTest
[INFO] Tests run: 22, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.751 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderClusterTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderMetricsLabelTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.116 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderMetricsLabelTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderNamespaceTest
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderNamespaceTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderTest
[INFO] Tests run: 37, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.082 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderTest
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesVerifiersTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 s - in com.google.jenkins.plugins.k8sengine.KubernetesVerifiersTest
[INFO] Running com.google.jenkins.plugins.k8sengine.client.ClientFactoryTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.302 s - in com.google.jenkins.plugins.k8sengine.client.ClientFactoryTest
[INFO] Running com.google.jenkins.plugins.k8sengine.client.CloudResourceManagerClientTest
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.219 s - in com.google.jenkins.plugins.k8sengine.client.CloudResourceManagerClientTest
[INFO] Running com.google.jenkins.plugins.k8sengine.client.ComputeClientTest
[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.121 s - in com.google.jenkins.plugins.k8sengine.client.ComputeClientTest
[INFO] Running com.google.jenkins.plugins.k8sengine.client.ContainerClientTest
[INFO] Tests run: 17, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.209 s - in com.google.jenkins.plugins.k8sengine.client.ContainerClientTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 152, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-license-plugin:1.7:process (default) @ google-kubernetes-engine ---
[INFO] Generated /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine/WEB-INF/licenses.xml
[INFO]
[INFO] --- maven-hpi-plugin:3.3:hpi (default-hpi) @ google-kubernetes-engine ---
[INFO] Generating /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine/META-INF/MANIFEST.MF
[INFO] Checking for attached .jar artifact ...
[INFO] Generating jar /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine.jar
[INFO] Building jar: /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine.jar
[INFO] Exploding webapp...
[INFO] Copy webapp webResources to /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine
[INFO] Assembling webapp google-kubernetes-engine in /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine
[INFO] Generating hpi /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine.hpi
[INFO] Building jar: /usr/local/google/home/stephenshank/Documents/temp/google-kubernetes-engine-plugin/target/google-kubernetes-engine.hpi
[INFO]
[INFO] --- maven-jar-plugin:3.1.1:test-jar (maybe-test-jar) @ google-kubernetes-engine ---
[INFO] Skipping packaging of the test-jar
[INFO]
[INFO] --- maven-failsafe-plugin:2.20.1:integration-test (default) @ google-kubernetes-engine ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderPipelineIT
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 42.229 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderPipelineIT
[INFO] Running com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderIT
[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 68.822 s - in com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilderIT
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 12, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] >>> spotbugs-maven-plugin:3.1.10:check (spotbugs) > :spotbugs @ google-kubernetes-engine >>>
[INFO]
[INFO] --- spotbugs-maven-plugin:3.1.10:spotbugs (spotbugs) @ google-kubernetes-engine ---
[INFO] Fork Value is true
[INFO] Done SpotBugs Analysis....
[INFO]
[INFO] <<< spotbugs-maven-plugin:3.1.10:check (spotbugs) < :spotbugs @ google-kubernetes-engine <<<
[INFO]
[INFO]
[INFO] --- spotbugs-maven-plugin:3.1.10:check (spotbugs) @ google-kubernetes-engine ---
[INFO] BugInstance size is 0
[INFO] Error size is 0
[INFO] No errors/warnings found
[INFO]
[INFO] --- maven-failsafe-plugin:2.20.1:verify (default) @ google-kubernetes-engine ---
[INFO]
[INFO] >>> findbugs-maven-plugin:3.0.1:check (default) > :findbugs @ google-kubernetes-engine >>>
[INFO]
[INFO] --- findbugs-maven-plugin:3.0.1:findbugs (findbugs) @ google-kubernetes-engine ---
[INFO]
[INFO] <<< findbugs-maven-plugin:3.0.1:check (default) < :findbugs @ google-kubernetes-engine <<<
[INFO]
[INFO]
[INFO] --- findbugs-maven-plugin:3.0.1:check (default) @ google-kubernetes-engine ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:30 min
[INFO] Finished at: 2019-05-10T15:17:51-07:00
[INFO] Final Memory: 102M/970M
[INFO] ------------------------------------------------------------------------


[CogV2] Bot rewrite and various useful commands

After creating your pull request, tick these boxes if they are applicable to you.

[x] My changes does not conflict with the review branch (the latest developmental version)
[x] My changes can be run on Python 3.5.3 or higher (except Python 3.8)
[ ] I have tested my changes

This PR does not target review branch as this is a breaking change and rhino suggested this https://discordapp.com/channels/129489631539494912/157598062020132865/633230797729562634
Description
It is kinda hard to manage all those branches and solving merge conflicts when merging them together so I just combine all these things together, for easier reviewing and creating a lot less hassle when fixing something. Nearly all of the features are completed anyway so there is no point in keeping separate branches.
This PR combines: #1938, #1917, #1916, #1915, #1904
CORE
At the core, this PR changes how the bot works to

Utilize discord.ext cogs, which allow us to isolate failures if it were to happen.
Have the bot rely less on setting members of the data model (where sensible) and use newly provided functions to interact with it instead. This encourages code reusability and reduces potential bugs

This PR breaking change is that it changes several models related to player and playlists for ease of usage in the future; hence, data saved in the data folder will be incompatible. There are checks for the version of the data file to prevents incompatible saves but conversion script are currently NOT provided.
The player got reworked and have some states removed. Check the implementation for details.
If there is no entry in the playlist, the player would now poll the playlist at an interval for next entry rather than stopping itself.
Playlists got reworked and now do not take raw urls and make entries inside itself. It relies on entries added to it instead. It can also be named.
Playlists are now objects which are in control of caching instead and hence, can be set to cache multiple entries in the list before the player pulls it out. However, there is no option to change this from the default number (1) as of yet. Check the implementation for details.
Downloader got reworked and now uses its internal loop which it got when it is instantiated instead. Check the implementation for details.
Entries have dedicated functions to create them. Check the implementation for details.
Aliases are now being specified in .ini file so that it is uniform for all configuration files.
Due to the implementation of the cog loader (copied from my ModuBot), the run script has been modified.
UPDATING, RESTARTING AND SHUTTING DOWN
With the update command, you can now update the bot through Discord. This should reduce the pain for people who host the bot when a new update rolled out.
Restart command now reloads the bot script correctly (for the most part). Most of the updates will likely work without you needing to actually rerun the script.
Windows users can now close the bot window using the x button if they have pywin32 installed.
LOCAL FILE (#1938)
This PR allows users to queue local files, with the owner having the ability to specify which folder should be visible to the users, so that important video/audio files were not accidentally queueable.
configurations in this category:
[Locals]

AllowQueueingLocal - determines whether queueing local files would be allowed
LocalOnlySpecifiedDir - determine whether users need to enter a full path to the local file. This could prevent someone from accidentally queueing local files.
LocalDir - limits queueing local files to these directories

commands in this category:

lib - List all files in the local folder which could potentially be played.

PLAYLIST (#1917)
This PR allows one server to hold multiple playlists, allowing moderators to queue some stuff up for hot-swapping later when needed.
configurations in this category:
Nothing new in this category
commands in this category:

playlist - group command

list - list all playlists in the server
add - add playlist with specified name
append - append the specified playlist's entries to current server's queue
remove - remove playlist with the specified name
swap - swap current server's playlist with the one specified
from_url - generate a playlist from specified URL and named it as specified

removeen - remove entries in the specified playlist
peek - list entries in the specified playlist
fromfile - generate a playlist from .txt file with the same format as _autoplaylist.txt and named it as specified

AUTOPLAYLIST (#1727 -> #1911 -> #1917)
I realized that having one autoplaylist is not ideal for the bot that might be hosted for multiple servers. This PR allows servers to specify some of the playlists as autoplaylists, independently for each server (This also means that some entry might be a local file or even a stream). Autoplaylist can play in 2 modes:

merge: merge autoplaylists when playback
toggle: use the toggleplaylist command to toggle between them

commands in this category:
(TO BE WRITTEN)
CAPTION (#1916)
Allows users to get the caption of the queued track (if the service have one)
commands in this category:
(TO BE WRITTEN)
WEBAPI (#1776 -> #1904)
This cog introduces a way for the bot to communicate with other programs (even those which are hosted elsewhere) securely, allowing us to develop other programs that utilize the bot independently (such as GUI program for managing the bot). This cog was originally meant to be a demonstration of the cog loading/unloading mechanism. This cog is disabled by default.
commands in this category:
(TO BE WRITTEN)
OTHER SMALL FEATURES

Added permission SummonNoVoice that allows the user with this permission to automatically summon the bot if they used play or stream but the bot is not in any voice channel. (#1915)
Allow users to prepend entries using playnext command. (#1776 -> #1904)
Allow users to appnd or prepend currently playing entry using replay command. (#1904)
(TO BE WRITTEN)

Related issues (if applicable)

This is epic


Issues with Atom integration

I've been using Juno on and off for a while now (from before the move to Atom), and I've had success in using the Juno IDE alongside Atom; however, after recent upgrades (macOS Sierra, Julia v0.5, and an Atom re-install), simply using apm install uber-juno seems to have no effect. Have any others experience similar behavior?

That should be apm install uber-juno (or you could use the package installation GUI from inside Atom).

My bad on the type -- now fixed. I am using apm install; otherwise, I'd probably get some kind of obvious error message...

uber-juno stores a config setting so that it only runs once. If you go into the uber-juno settings you may see a box that you can untick, then restart?

Ok, good to know. Tried that, and everything seems to be working fine now. I definitely was not clear on how uber-juno worked. @MikeInnes - I guess in case of future errors, it's probably best to just install ink and julia-client regularly via apm?

You should get notified of updates via Atom so unless you have a clean install, using apm shouldn't be necessary. But yeah updating everything is a good way to go if there are issues.


Defined key "r" for reseting view params on viewer.

Makes resetting view easy, by bringing centre, eye and up values to the default.

Thanks. That's a nice clean patch, and a desired feature.


Add Custom Port Method

Add Custom Port Method
添加可自定义Server端口功能

Hey @libobjc Can you merge this PR? If you found anything wrong, please comment otherwise please merge it.
Our you can add me to the project I will merge it.

3.0 supported.


Optimize performance of get_events

The get_events Tornado endpoint is our highest-traffic endpoint, so something well worth optimizing.  In https://chat.zulip.org/#narrow/stream/3-backend/topic/profiling.20get_events/near/816856 I describe a bunch of profiling I did to figure out where the time is going, resulting in several commits being merged.  Here's some summary details on where the time is going (all profiled in a local development environment):

The actual view function code for get_events_backend only takes 250us to run, which is great!
~300us is spent in the has_request_variables wrapper
1400us is spent in rate-limiting code, which is tracked at #13913.
350us+ inprocess_client.  The thread in Zulip has a number of thoughts on optimizing this; the biggest win is likely to come from debouncing the RabbitMQ writes to not be 1/request, since those seem to take 200us+ even with RabbitMQ running on localhost.  Some design work is likely required here, but the semantics we probably want are "process_user_activity writes a local-memory data structure and also causes a timer to be set to send the data to RabbitMQ in 5 seconds if such a timer isn't already running".  This would have the effect of at most delaying UserActivity logging by 5 seconds, while in a high-traffic environment processing hundreds of requests per second, it'd turn 200us/request of RabbitMQ work into ~200us/(100+ requests), which is negligible.
300us in our logging middleware.  This is dominated by logger.info; I'm not sure if there's anything to be done here (would need to profile that code path inside Django specifically).  Certainly 250us to log a line of output after it's been constructed feels really high to me.
630us in CommonMiddleware addressed in 229090a3a58de15eb2a76a8e513fa5d9a190170c~~.  I'm leaving a note here that we should look into extending this change to address all API endpoints; we'll want to test that doing so doesn't break anything, but I think it shouldn't, because those redirects would have been useless as none of our API endpoints end with /.
370us in LocaleMiddleware.process_request, setting up translations (likely runs twice per get_events request).  We may want to look at whether we can disable i18n for this code path.
~300us for Tornado to write the HTTP response over the wire (probably unavoidable)
~300us to convert a Tornado request into a Django HttpRequest (run twice; may be possible to optimize by copying the HttpRequest object after making it the first time, rather than making a request a second time?  Unclear.)
~80us to check authentication (mostly a single memcached query) -- likely hard to optimize.
Likely 1000us or more of time in Django-internal places I haven't profiled that we're also unlikely to be able to optimize a lot.

It's be a significant improvement to Zulip's backend scalability if we can optimize the larger line items here, which makes this particular case very different from basically anything else (where microseconds are not worth thinking about).

@zulipbot claim

Finishing up my exams and pushing a PR for this by this week.
@zulipbot


Mat-Form-Field not rendering properly

### Github repository url : Utsav-Sharma33/material
I added a mat-form-field tag in my component but it is not rendering correctly. When not focussed, float-label is not showing. But on selection of matInput input tag , float label is showing. I am attaching screenshots.
`
const mat_modules = [
MatFormFieldModule, MatInputModule, MatIconModule
]
const components = [
FormFieldComponent,
]
@NgModule({
declarations: [
...components
],
imports: [
CommonModule,
...mat_modules
],
exports: [
...components
]
})
export class ComponentsModule { }
`

Closing as duplicate of https://github.com/angular/components/issues/22554


Can't resolve component from addon consumed by engine consumed by app

I have a basic engines test app here: https://github.com/JackieChiles/et-app. The app consumes an engine (https://github.com/JackieChiles/et-engine) which in turn consumes an addon (https://github.com/JackieChiles/et-addon) and uses et-component from that addon. The following work:

Rendering et-component in et-app: https://github.com/JackieChiles/et-app/blob/master/app/templates/application.hbs#L6
Rendering et-component in et-engine's dummy app: https://github.com/JackieChiles/et-engine/blob/master/tests/dummy/app/templates/application.hbs#L1
Rendering et-en-component (lives in et-engine directly) in et-app through a template in the engine: https://github.com/JackieChiles/et-engine/blob/master/addon/templates/et-template.hbs#L5

But I haven't been able to get et-component to render in et-app though a template in the engine at all: https://github.com/JackieChiles/et-engine/blob/master/addon/templates/et-template.hbs#L2
I do see et-addon/components/et-component/component and et-app/components/et-component/component in the resolver's module names list when Ember tries to render that component, but it's looking for et-engine/components/et-component/component.
Is there a piece that I'm missing or is this a possible bug/gap?

Yeah I'm having the same issue :\ Seems like we should be able to just do something like:
export default Engine.extend({
  modulePrefix: 'registration-engine',
  Resolver,

  dependencies: {
    services: [ 'store' ],
    components: [ 'transition-group', 'one-way-controls', 'some-other-component' ]
  }
});

@timkendall such functionality is currently being discussed in #58

https://github.com/JackieChiles/et-engine/blob/master/package.json#L40 is incorrect, if your engine depends on a given external addon it must be listed in dependencies (not devDependencies).
I proposed https://github.com/JackieChiles/et-engine/pull/1 to show what I mean.

@JackieChiles  Also make sure that you modified your index.js in the root of your project like it says in the README. That was something I missed lol

I think that PR + wrapping index.js (which I believe et-engine was doing) should resolve this.  I'm going to close, but am happy to reopen if that doesn't fix...

@rwjblue That PR fixed the issue, thanks! I could have sworn I tried that at some point before, but it seems not.

@timkendall Currently of course only services are supported as engine dependencies, but as already mentioned I believe injecting other types is being discussed. But, the PR that fixed the issue for me makes sense: making the engine's addons dependencies instead of devDependencies allows them to propagate down to whatever app consumes the engine. Hope this thread helped you!


Pasting some string within double quotes should escape the pasted string

Description:
We as programmers usually expect the IDE to escape the text we paste within double quotes.
Describe your problem(s)
Describe your solution(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Moved to https://github.com/wso2/ballerina-plugin-vscode/issues/95


IT IS RUNNING TOO SLOW

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

Thanks for creating this issue! We figured it's missing some basic information, such as a version number, or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!


[Helm] Added paths value in values.yaml and Service type templating.

Needed when creating an ingress an missing in the example values.yaml.
Thanks for the project!
Regards,
Diego

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Diego Naya Lazo seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@diegonayalazo Could you sign the CLA when you get a chance.

Hi @ibrahimkk-moideen  , even though I signed it, it appears unsigned, is there a way to reset it?

Thanks I will start from scratch. Thanks for the email obfucastion. Would you mind deleting my whole email address even if scrubbed? Much appreciated

Thank you and done!


Add hotkeys to the mrgnlend experience

Make it laser fast for users to move through the mrgnlend experience without requiring a mouse - Superhuman style.

Hi, I'd like to work on this.


unable to debug java project

Expected behavior
should be able to debug successfully
Actual behavior
getting below error:
Running tool: gauge run /Users/work/structureLogs/java/javaPro/specs/example2.spec:12 --simple-console --hide-suggestion
Listening for transport dt_socket at address: 63921
ERROR: transport error 203: timed out waiting for connection
JDWP exit error JVMTI_ERROR_NONE(0): could not connect, timeout or fatal error [transport.c:326]
Error ----------------------------------

[Gauge]
Failed to start gauge API: Timed out connecting to <IP_ADDRESS>:63925

Get Support ----------------------------
	Docs:          https://docs.gauge.org
	Bugs:          https://github.com/getgauge/gauge/issues
	Chat:          https://gitter.im/getgauge/chat

Your Environment Information -----------
	darwin, 1.0.6.nightly-2019-08-26, 756d578
	csharp (0.10.6), dotnet (0.1.2), html-report (4.0.8), java (0.7.3), js (2.3.6), python (0.3.6), ruby (0.5.3), screenshot (0.0.1), spectacle (0.1.3), xml-report (0.2.1)
Error: Tests failed.

Steps to reproduce

create a  java project
open it in vs-code
debug any  of the step

Gauge version
Gauge version: 1.0.6.nightly-2019-08-26
Commit Hash: 756d578

Plugins
-------
java (0.7.3.nightly-2019-08-26)

This issue has been verified and found fixed.
Tested version:
Gauge version: 1.0.6.nightly-2019-08-26
Commit Hash: 756d578
java (0.7.3.nightly-2019-08-27)


adding pmIgnore to marker does not get ignored by geoman

When using pmIgnore on a marker it is not ignored by Geoman.
If you try to add any shape and move it over the marker you will see that it snaps to the marker which is pmIgnore: true
In my own project I loaded Geoman like specified in the docs.
import L from 'leaflet';
import '@geoman-io/leaflet-geoman-free';
Try to add a shape on the jsfiddle over the marker and it will snap
https://jsfiddle.net/k4y25ht3/1/

Add snapIgnore: true to the options of the layer.
L.marker([58.970471,5.730373], { pmIgnore: true, snapIgnore:true }).addTo(map);

Let me know if it works.
@codeofsumit and others: should be snapping disabled if pmIgnore is true?

Add snapIgnore: true to the options of the layer.
L.marker([58.970471,5.730373], { pmIgnore: true, snapIgnore:true }).addTo(map);

Let me know if it works.
@codeofsumit and others: should be snapping disabled if pmIgnore is true?

It worked in the jsfiddle, ill try in my project tommorrow, thankyou!
And; I would expect it to be unsnappable if pmIgnore: true, as pm "ignore" should mean it is 100% "removed" from geoman in my opinion


Stop polluting peoples npm install logs.

The postinstall messages are opt-out option which is absolutely wrong. Output produced by this script is an unwanted (uninvited) message which usually called SPAM. This behavior is not GDPR compliant.
Opt-in option would mean that an admin should setup a variable to receive the output. This option would be GDPR compliant.
I am sure you would like to avoid a GDPR complain against Opencollective.

This package is just a tool that is made available to maintainers. It's their decision to add that to their package or not. Also, most of the time, the messages are generated by something else than the present tool.
There is effectively a discussion in the community about this practice, seems most users effectively don't like it. However, many Open Source maintainers feels it's necessary to create awareness about their fundraising strategy.
I personally feel there is currently a momentum to create a replacement for these post-install messages, see latest discussion here: https://github.com/npm/cli/pull/187. The Open Collective team see these discussions and ideas very favorably.
As for the GDPR aspect of it, I think you have a misunderstanding of what is GDPR, I invite you to read more about it: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation Basically, it's about the protection of personal data, nothing else.
In the end, this is a problem that needs to be solved by the community as a whole. Open Collective is just an humble member of the community and we're looking forward to implement and support replacements to these post-install messages when they will exists.

Thank you for the fast reply. I'm glad that there is awareness and support to stop this misbehavior.
You are right, if we consider this repository on it's own as a tool made available to developers than it is not a GDPG related issue, but if one considers this repository as a part of Open Collective business model than the situation might look totally different. I do not want to start a legal battle here but to warn you about possible consequences.
The fact remains: the messages are a form of SPAM. If you do not wish to remove them willingly then the community will help you, one or another way, to correct your mistake.

I don't see any new point in your answer, so I'm closing the issue.
Feel free to engage in the community if you have any ideas on how to solve this aspect of open source sustainability.
I'm personally not a fan of these postinstall messages, and I hope we'll find a better solution in the close future.
Final note: I noticed your issue on https://github.com/maticzav/graphql-shield/issues/464. This is one example where the package maintainer is not even using the opencollective-postinstall tool. Also, saying Open Collective is a "suspicious organization (involved in) criminal activity" is a serious claim to make. I invite you to document you more on the subject. Happy to answer at<EMAIL_ADDRESS>if you have any question.


[ML] Remove erroneous warning that test configs are used in documentation

Description
Some of our test configs have a warning asking for the Docs and Samples team to be alerted when making changes to those files.
These files are not actually in use, and can be freely edited.
This PR removes the warning from those files.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Support more generic scan_op in device_scan

Will cub support using more generic scan_op such as T1 operator()(T1 &a, T2 &b) ? The use case is to scan on an array of structs and calculate based on structs' members.
Is there any suggestion on implementing such a primitive?

Is there any suggestion on implementing such a primitive?

A common pattern to resolve the situation you are describing is to use a cub::TransformInputIterator and/or thrust::transform_output_iterator. If you're able to provide more details of what exactly you're trying to achieve, we may be able to assess whether that could work in your case and provide more guidance on how the iterators could be applied.

Closing as @elstehle's answer will work currently, and @senior-zero covered a future improvement in this area. Let us know if you have any other questions about this.


fix: use registerPlugin function (remove deprecated func call)

issue #36
It might be breaking changes for capacitor 2.x plugin user.

Thanks for pull request. But we prepare https://github.com/capacitor-community/facebook-login/pull/32/files
Please handle to target this.


ITV/ITV4 <=> ITV Hub apparently use geo-restriction on youtube-dl

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.06.25. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.06.25

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
E:\>youtube-dl -F https://www.itv.com/hub/isle-of-man-tt/1a7918a0129 -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', 'https://www.itv.com/hub/isle-of-man-tt/1a7918
a0129', '-v']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2018.06.25
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-86723-g3b3501f, ffprobe N-86723-g3b3501f, rtmpdum
p 2.4
[debug] Proxy map: {}
[debug] Using fake IP <IP_ADDRESS> (GB) as X-Forwarded-For.
[ITV] 1a7918a0129: Downloading webpage
[ITV] 1a7918a0129: Downloading XML
WARNING: Unable to download XML: HTTP Error 503: Service Unavailable
[ITV] 1a7918a0129: Downloading JSON metadata
[ITV] 1a7918a0129: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug
 . Make sure you are using the latest version; type  youtube-dl -U  to update. B
e sure to call youtube-dl with the --verbose flag and include its complete outpu
t.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\bu
ild\youtube_dl\YoutubeDL.py", line 792, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\bu
ild\youtube_dl\extractor\common.py", line 501, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\bu
ild\youtube_dl\extractor\itv.py", line 259, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\bu
ild\youtube_dl\extractor\common.py", line 1281, in _sort_formats
youtube_dl.utils.ExtractorError: No video formats found; please report this issu
e on https://yt-dl.org/bug . Make sure you are using the latest version; type  y
outube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and
include its complete output.

---

### Description of your *issue*, suggested solution and other information

Explanation of your *issue* in arbitrary form goes here. Please make sure the [description is worded well enough to be understood](https://github.com/rg3/youtube-dl#is-the-description-of-the-issue-itself-sufficient). Provide as much context and examples as possible.
If work on your *issue* requires account credentials please provide them or explain how one can obtain them.
So since one week I can't download any video from ITVHub (essentialy itv4).
First the itv4 server's answer was:
"E:\>youtube-dl -F https://www.itv.com/hub/isle-of-man-tt/1a7918a0129
[ITV] 1a7918a0129: Downloading webpage
[ITV] 1a7918a0129: Downloading XML
WARNING: Unable to download XML: HTTP Error 503: Service Unavailable
[ITV] 1a7918a0129: Downloading JSON metadata
[ITV] 1a7918a0129: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug.
Make sure you are using the latest version; type  youtube-dl -U  to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output."

OK so that mean that no request was found: geo-restriciton ? server down ?
I tried different urls on itvhub with the same result: no m3u8 extraction so no format found !
As i read many issues on itv I thought this could be a geo-restriction resulting on a security change.
So I tried with a free UK proxy (like I do with bbc get_iplayer) and that worked but with many retries (proxy settings ? communication with the itv server ?):
E:\>youtube-dl -F "https://www.itv.com/hub/isle-of-man-tt/1a7918a0129" --proxy <IP_ADDRESS>:80
[ITV] 1a7918a0129: Downloading webpage
[ITV] 1a7918a0129: Downloading XML
WARNING: Unable to download XML: HTTP Error 503: Service Unavailable
[ITV] 1a7918a0129: Downloading JSON metadata
[ITV] 1a7918a0129: Downloading m3u8 information
[info] Available formats for 1a7918a0129:
format code  extension  resolution note
hls-136      mp4        audio only  136k , mp4a.40.2@128k
hls-582      mp4        512x288     582k , avc1.64001F@ 420k, 25.0fps, mp4a.40.2@128k
hls-770      mp4        512x288     770k , avc1.64001F@ 597k, 25.0fps, mp4a.40.2@128k
hls-1068     mp4        896x504    1068k , avc1.64001F@ 879k, 25.0fps, mp4a.40.2@128k
hls-1353     mp4        896x504    1353k , avc1.64001F@1148k, 25.0fps, mp4a.40.2@128k
hls-1637     mp4        896x504    1637k , avc1.64001F@1416k, 25.0fps, mp4a.40.2@128k (best)
Now it appears that ITVHub changed the security settings in order to block "x-forwarded fake url"
i.e. "Using fake IP <IP_ADDRESS> (GB) as X-Forwarded-For."
So I was able to DL using "E:\>youtube-dl -f hls-1637 https://www.itv.com/hub/isle-of-mantt/1a7918a0129 --proxy <IP_ADDRESS>:80
[ITV] 1a7918a0129: Downloading webpage"
BUT the DL  stopped after ~3% cause the free proxy is not "stable" i.e. "time out".
The solution while waiting for the dev to fix this geo-restriction is to test with a free trial UK VPN cause the video i want to DL  ended tonight !
So the alternative solution is to bypass the geo-restriction by using a relaible uk proxy / vpn.

It's geo restricted now.

The code of Youtube-dl will be modified or not ?

Modified for what?

To work like it was until the last week.

Again: it's a true geo restrstion now. It can't by bypassed.

what is the difference now <=> "true geo restriction" ?

This is, in essence, a duplicate of https://github.com/rg3/youtube-dl/issues/15925; the ITVHub people have  killed the legacy API that used to provide non-geofenced RTMPE streams (for some of their offerings, mostly older stuff) and that change was the root cause of  https://github.com/rg3/youtube-dl/issues/16780); overseas users are now confronted with the "predicament" I talked about in https://github.com/rg3/youtube-dl/issues/15925#issuecomment-375161089, having to resort to full-blown geo-location spoofing methods 😞 ...


Authentication to keystone fails

I am trying to deploy swiftacular.   Everything runs smoothly until the step to create a service keystone tenant  where it fails with the error :
TASK: [authentication | create service keystone tenant] ***********************
failed: [swift-keystone-01] => {"failed": true}
msg: exception: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to https://<IP_ADDRESS>:35357/v2.0/tenants)

FATAL: all hosts have already failed -- aborting

Everything else works as intended.
Yet, if I do a wget on the host, I can see that it does answer.
vagrant@swift-keystone-01:~$ wget --no-check-certificate https://<IP_ADDRESS>:35357/v2.0/tenants
--2016-02-24 13:45:40--  https://<IP_ADDRESS>:35357/v2.0/tenants
Connecting to <IP_ADDRESS>:35357... connected.
WARNING: cannot verify <IP_ADDRESS>'s certificate, issued by `/C=US/ST=Unset/L=Unset/O=Unset/CN=<IP_ADDRESS>':
  Unable to locally verify the issuer's authority.
    WARNING: certificate common name `<IP_ADDRESS>' doesn't match requested host name `<IP_ADDRESS>'.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
vagrant@swift-keystone-01:~$

I did use the SWIFTCLIENT_INSECURE shell variable.  Adding -vvv does not really help.  Any idea ?

Ugh, looking back at this I see how poorly I wrote this. Sorry.
I'm wondering which keystone_user module is being used? The one that comes with swiftacular or are you getting it from somewhere else? If somewhere else it'd need to support insecure.

I have a .library directory that contains the keystone_user.  I would guess that thats the one being used.  Notice that the calls immediately before work just fine (the one calling keystone_service).
Any way to debug that ?  The logs on the keystone server are not very helpful.
Simon Pierre

Le 24 févr. 2016 à 16:57, curtis<EMAIL_ADDRESS>a écrit :
Ugh, looking back at this I see how poorly I wrote this. Sorry.
I'm wondering which keystone_user module is being used? The one that comes with swiftacular or are you getting it from somewhere else? If somewhere else it'd need to support insecure.
—
Reply to this email directly or view it on GitHub https://github.com/ccollicutt/swiftacular/issues/33#issuecomment-188470501.

Oh,
I did try it with and without the SWIFTCLIENT_INSECURE variable.
Simon Pierre
I am running on
macosx 10.11.3
ansible 1.9.4
Vagrant 1.7.4
Virtual box 5.0.14r105127
Simon Pierre

Le 24 févr. 2016 à 16:57, curtis<EMAIL_ADDRESS>a écrit :
Ugh, looking back at this I see how poorly I wrote this. Sorry.
I'm wondering which keystone_user module is being used? The one that comes with swiftacular or are you getting it from somewhere else? If somewhere else it'd need to support insecure.
—
Reply to this email directly or view it on GitHub https://github.com/ccollicutt/swiftacular/issues/33#issuecomment-188470501.

Yeah but it's the first task using the keystone_user module. The prior tasks are keystone_service.

We agree.

Le 24 févr. 2016 à 17:47, curtis<EMAIL_ADDRESS>a écrit :
Yeah but it's the first task using the keystone_user module. The prior tasks are keystone_service.
—
Reply to this email directly or view it on GitHub https://github.com/ccollicutt/swiftacular/issues/33#issuecomment-188494473.

Could it be that by default, now days, apt-get will install liberty and the installation defers somewhat with what you did at the time ?  For example, the url seems to be (http://controller:35357/v3) no.  Or we need to create a project before we add user ? http://docs.openstack.org/liberty/install-guide-ubuntu/keystone-users.html

I suppose it's possible. I'm pretty sure ubuntu sticks with the default openstack version being the original version deployed with that particular ubuntu release, and that to get newer openstack releases you need to enable that archive specifically.

You are right, its havana which is installed.

Le 25 févr. 2016 à 16:14, curtis<EMAIL_ADDRESS>a écrit :
I suppose it's possible. I'm pretty sure ubuntu sticks with the default openstack version being the original version deployed with that particular ubuntu release, and that to get newer openstack releases you need to enable that archive specifically.
—
Reply to this email directly or view it on GitHub https://github.com/ccollicutt/swiftacular/issues/33#issuecomment-188991842.

I can run the command by hand on the identity server and it works well.
I exported two variables :
OS_SERVICE_TOKEN=blablaredacted
OS_SERVICE_ENDPOINT=https://<IP_ADDRESS>:35357/v2.0

as prescribed here http://docs.openstack.org/icehouse/install-guide/install/apt/content/keystone-users.html.
Then I can run the command to add a tenant or a user :
root@swift-keystone-01:~# keystone --insecure tenant-create --name=admin --description="Admin Tenant"
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |           Admin Tenant           |
|   enabled   |               True               |
|      id     | ee64e124bdfb42feaa6be39a5a875ba1 |
|     name    |              admin               |
+-------------+----------------------------------+
root@swift-keystone-01:~# keystone --insecure  user-create --name=admin --pass=CHANGEME<EMAIL_ADDRESS>WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+------------------------------------+
| Property |               Value                |
+----------+------------------------------------+
|  email   |<EMAIL_ADDRESS>|
| enabled  |                True                |
|    id    |  e5db74a5c2e845ff88e5688092556d1c  |
|   name   |               admin                |
+----------+------------------------------------+
root@swift-keystone-01:~#

And they works just fine.  I have installed python using brew.  It calls the brew versions now (well according to which) and yet I still get the message :
TASK: [authentication | create service keystone tenant] ***********************
failed: [swift-keystone-01] => {"failed": true}
msg: exception: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to https://<IP_ADDRESS>:35357/v2.0/tenants)

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************

Which uses the same endpoint as my environment varible.  Here is the task from the playbook :
- name: create service keystone tenant
  keystone_user: token={{ keystone_admin_token}} tenant=service tenant_description="Service Tenant" endpoint="https://<IP_ADDRESS>:35357/v2.0"

I get the exact same message if I remove the --insecure flag when running on the identity server :
root@swift-keystone-01:~# keystone  tenant-create --name=admin --description="Admin Tenant"
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
<attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to https://<IP_ADDRESS>:35357/v2.0/tenants)
root@swift-keystone-01:~#

If I load python, the brew one or the mac one, the keystoneclient.v2_0 always is the apple one.  But it seems to support the insecure flag if I look at the code :
> python
Python 2.7.11 (default, Feb 26 2016, 10:49:13)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import keystoneclient.v2_0
>>> keystoneclient.v2_0.__file__
'/Library/Python/2.7/site-packages/keystoneclient/v2_0/__init__.pyc'
>>>

I have tried with both SWIFTCLIENT_INSECURE set or unset.
Finally, I have check that token is the same in the groupe_vars/all and in my environment variable.
What else can I do or test ?  Any help would be welcome.

I believe I hacked the keystone_user in the library of swiftacular to use insecure. Double check that is the module being used.

Please check that swift-ansible-modules/keystone_user is included:
$ grep library ansible.cfg
library = ~/swiftacular/library/
./library/
├── openstack
│   ├── cinder_manage
...
│   ├── README.md
│   └── tests
...
└── swift-ansible-modules
└── keystone_user

Yes it is.    But my problem got worse since I installed python with brew and rebooted.  Now, even the keystone_service will not work anymore.
I got tired and replace everything by shell command using the command module.  I know this is not the way to go as I have lost idempotency, but I needed to move forward.  I will try to update that role with the newer os_project and  os_users.  I still have to figure out a few things like connecting using the --insecure flag and roles management.

Small update.
I added spurious python line and I could confirm that the keystone_service module from the library directory of swiftacular was indeed used correctly.  I guess it was not working correctly because of some weird interaction between environment variable and the clouds.yml file.
As for the keystone_user, file, the same test reveal that the file from the library was not used but the one from the brew python installation.
I moved the file out of
/usr/local/Cellar/ansible/1.9.4/libexec/lib/python2.7/site-packages/ansible/modules/core/cloud/openstack
to /tmp and there you go.  It seems to work.
How can I force ansible to use the module in the library without removing the bundled version ?

I think you could rename it, and change the name used in the playbook/task.

I'm sorry you're having so much trouble with this, unfortunately I don't have much time to take a look. This code is getting quite old.

Your code is fine.  I have suffered from the problem that ansible is supposed to solve once and for all.  Different versions.
My last question really has to do with forcing ansible to use a specific version of a module.  I had to removed the bundled version of brew for the script to run.
On my way to use your script with Liberty now.  Thanks for your work, it really has bootstrap my work.

Ok great, best of luck. :)

I had this same problem -- I ended up having to rename 'keystone_user' to something else so that it would work. Maybe this needs to become "official" in this repo, so that it doesn't happen to anyone else?


Unable to use HugetlbSysAllocator

I'm linking a program against libtcmalloc.a and at runtime I've set TCMALLOC_MEMFS_MALLOC_PATH to the location of a hugetlbfs mounted filesystem, and yet when I call MallocExtension::instance()->GetSystemAllocator() I get the default system allocator. Furthermore, when I load the binary into gdb I can't actually find the symbols for HugetlbSysAllocator.
Are there special options in the tcmalloc build to link against it?

Check if your compiler defines __linux.

__linux is defined, and it looks like the symbols are defined in libtcmalloc.a, but they are not present in my final binary which is linked against libtcmalloc.
Searching for the HugetlbSysAllocator in the .a file yields the following:
0000000000000770 T HugetlbSysAllocator::Initialize()
00000000000002b4 T HugetlbSysAllocator::AllocInternal(unsigned long, unsigned long*, unsigned long)
0000000000000000 T HugetlbSysAllocator::Alloc(unsigned long, unsigned long*, unsigned long)
0000000000000000 W HugetlbSysAllocator::HugetlbSysAllocator(SysAllocator*)
0000000000000000 W HugetlbSysAllocator::HugetlbSysAllocator(SysAllocator*)
0000000000000000 W HugetlbSysAllocator::~HugetlbSysAllocator()
0000000000000000 W HugetlbSysAllocator::~HugetlbSysAllocator()
0000000000000000 W HugetlbSysAllocator::~HugetlbSysAllocator()
0000000000000000 V typeinfo for HugetlbSysAllocator
0000000000000000 V typeinfo name for HugetlbSysAllocator
0000000000000000 V vtable for HugetlbSysAllocator

I see now. That is because nothing is explicitly pulling those symbols into larger binary. That's how static linking works. Only pulling .o files from archive that are "needed". You can do some hack to refer to one of symbols to this file for now. I'll think about doing it righter.


Bad download link

Hello !
The download link for standalone binaries of Kapacitor is wrong (on https://influxdata.com/downloads/)
wget https://s3.amazonaws.com/influxdb/kapacitor-0.2.3_linux_amd64.tar
tar xvf kapacitor-0.2.3_linux_amd64.tar

Should be
wget https://s3.amazonaws.com/influxdb/kapacitor-0.2.3-1_linux_amd64.tar
tar xvf kapacitor-0.2.3-1_linux_amd64.tar

Thanks this should be fixed today.


[scripts/posh-vcpkg] Change TabExpansion to Register-ArgumentCompleter

Fixes for https://github.com/microsoft/vcpkg/issues/38184
The function TabExpansion is not supported by PowerShell 7.4.0, which breaks the posh-vcpkg.psm1 for vcpkg integrate powershell.
Use Register-ArgumentCompleter instead of TabExpansion to fix it.
Change

vcpkg-init

Move posh-vcpkg module to non-version directory

posh-vcpkg

Update posh-vcpkg.psd1 minimum version from 5.0 to 5.1
Replace intercepting TabExpansion with Register-ArgumentCompleter

pipeline

Import module Pester for e2e tests

e2e

Add end-to-end-tests-dir/autocomplete-posh-vcpkg.ps1
Add e2e-specs/autocomplete-posh-vcpkg.Tests.ps1

Test
Test passes locally on

PowerShell 7.4.2 with Pester 5.6.1 on Linux
PowerShell 7.4.3 with Pester 5.6.1 on macOS
PowerShell 7.4.6 with Pester 5.6.1 on Windows
Windows PowerShell 5.1 with Pester 5.6.1 on Windows

PowerShell ignore minus(-) string before Core PowerShell/issues/2912

WIP

[ ] autocomplete-posh-vcpkg.ps1

Thanks for the improvement!


Pulsar SQL: support user defined indexes

Is your feature request related to a problem? Please describe.
Currently, there is no index used to query topic using presto.  __publish_time__ can be considered as index because of ledger storage way but it's not a real one.
Describe the solution you'd like
AvroSchema used to insert to topic should comes with a indexes definition. Since then, we should be able to have managedledger for indexes referencing classical managedledgers or messageid? And then configure pulsar presto impl to use user defined indexes from schema. (This is a suggestion to initialize the discussion, as @jerrypeng and I discussed it's a large discussion to have).
Describe alternatives you've considered
There are probably multiples ways to do it, feel free to suggest your pov.
Additional context
Reduce the query runtime.

how can we handle it on offloaded parts?

@KannarFr
The indexes can be built in a background process using the approach that was used for compaction. The "compacted" ledger is essentially an "index" to the original data.
The index maintains some forms of mapping between "keys" to the "offsets" to the original data. The "offset" is essentially the message-id which is referencing a ledger and an entry id. It doesn't matter if a ledger is in the bookkeeper or already offloaded to the tiered storage.

@sijie
Ok, about the indexes definition, what do you think about the definition approach using avroschema to define indexes?

Are you talking about adding the index definition into schema definition? Or using Avro schema specification for describing the indexes?

Adding the index definition into schema definition but maybe it is not the best to do. I'm asking your opinion.

I don't think it is a good idea to add an index definition to the schema definition. The schema definition defines the structure of the original data. The index definition depends on the schema definition but it is different from the original data. So the index definition should be associated with the storage that is used for storing the index data. For example, if we are using another managed ledger for storing the index, then the index definition should be the schema definition of the managed ledger. Does that make sense?

I think user-defined indexes are very important for Pulsar SQL, it could be able to be the real way that we can use pulsar as a database. I think it will make pulsar more popular.
And I agree to define user-defined indexes individually. we can extend "pulsar-admin topic" to manage indexes, to create, read, update, delete, reIndex them.
Can we discuss more and push it forward?

I think user-defined indexes are very important for Pulsar SQL, it could be able to be the real way that we can use pulsar as a database. I think it will make pulsar more popular.
And I agree to define user-defined indexes individually. we can extend "pulsar-admin topic" to manage indexes, to create, read, update, delete, reIndex them.
Can we discuss more and push it forward?

@pointearth @sijie How do you imagine the index composition regarding ledgers? As the first implementation, regarding pub/sub system, timestamp index-based would be a good start. I think we should first be able to auto-create an index per topic like:
Map<Date, LedgerId>

Or maybe
Map<Date, List<PreviousLedgerId, LedgerId, NextLedgerId>>

WDYT?

And where/how we store this index?

I know querying with timestamp is very fast, because data in bookKeeper save timestamp as key.
My suggestion is to create a non-clustered index, based on the key in bookKeeper, for example:
If we want to create an index on the field name, We can create indexItem as
map[name, List<publish_time>]
Can you supply some describe the source code around this? and then we can discuss it again.

Can we store it in bookKeeper? and it may be able to start when the presto enhancement switching is open.

Is there any progress on this issue?
Being able to support indexes in Pulsar Sql will be a very meaningful feature.
One way is to support it natively, and the other way I think it can be achieved through tiered storage. For example, combined with the data lake, with the help of Apache Hudi and so on.
I saw some articles about the combination of hudi and pulsar, is there any progress?
@sijie


currently only allow one main.go

I have tried to compile multiple .go files with make & make test and throw a error instead  if I use go run main.go my_other_code.go work ok, so I think is a matter of make stript.
Thanks

It might be worth creating a new package for your code. That was what I had in mind. Otherwise, you can modify the makefile to include your additional files.

thanks I have modified only was for alert for future release.

I have no specific plans to address this.


clustermesh: allow waiting for the CiliumClusterConfig to appear when required

Reporting the description of the first commit for convenience:
857060bbcf07 ("clustermesh: Introduce CiliumClusterConfig") introduced
the CiliumClusterConfig, which the clustermesh-apiserver stores into the
kvstore during startup, and the remote cilium agents read when connecting
to new clusters. Cilium agents tolerate the possible lack of the cluster
configuration, to account for backward compatibility.

This process currently suffers from the possibility of a race condition,
because the agents might connect to the kvstore before that the cluster
configuration has been actually written. Although as of today it doesn't
raise particular concerns given that it is only used for sanity checks,
the issue will be more serious when depending on the information therein
contained to tune the behavior. One such case concerns the upcoming
kvstoremesh approach (caching the information of remote clusters in
the local kvstore), which leverages different prefixes for separation
(hence requiring the cluster config to be present for disambiguation)
and increases the race condition window (since the cluster configuration
of new clusters would be written at runtime rather than on startup).

This commit introduces a new well-known key (`cilium/.has-cilium-config`)
that, when present, conveys that the cluster configuration will be
eventually created, and remote clusters shall wait until it is present
rather than falling back to the legacy approach. This key will be
created by the clustermesh-apiserver init container, ensuring that it is
always present when etcd is exposed to the remote agents.

Alternative approaches that have been considered, but discarded because
they would solve the problem for vanilla clustermesh but not for
kvstoremesh include:
* Setting the CiliumClusterConfig in the clustermesh-apiserver init
  container rather than during the initialization phase.
* Leveraging a readiness probe to set the clustermesh-apiserver as ready
  only once the initialization phase completed, and the configuration
  has been written.

Another possibility might involve being strict and making the cluster configuration mandatory starting from v1.14. This looks a no-go to me though, because:

It would prevent a cluster Cilium v1.14 to mesh with another running Cilium v1.12 (I couldn't find any official documentation about the maximum supported skew in the clustermesh scenario to say whether this is acceptable or not).
AFAIK. we are not currently setting the cluster configuration when the clustermesh-apiserver is not used (i.e., Cilium is run with the kvstore backend). In this scenario, even a cluster running Cilium v1.13 would be incompatible (unless the cluster config is created manually before upgrading the other clusters).

/cc @YutaroHayakawa, @marseel, @aanm, @joestringer for opinions.

clustermesh: allow waiting for the CiliumClusterConfig to appear when required

/test

Force-pushed to rebased onto main and fix a conflict.

/test

/ci-eks

Removing the ready-to-merge label while addressing the above suggestion.

Rebased onto main to pick the last changes and allow the Cilium Runtime checks to run successfully.

/test

/test-1.16-4.19


materialdesign - Top App Bar: special binding „local_*“

Describe the bug
I am still looking for the best configuration of a user independent navigation. With the input of @cdellasanta a working variant could be published here. But currently there is the following error on every click on the navigation:
State "local_navigation" has no existing object, this might lead to an error in future versions
Is there any way to find out if this error comes from the binding "local_*", from the "top app bar navigation“ or from the "view in widget 8"?
Versions:
Adapter version: material design widgets v0.5.6
JS-Controller version: v3.2.16
Node version: v12.22.1
VIS Adapter version: v1.3.8

State "local_navigation" has no existing object, this might lead to an error in future versions

Mostly this error is shown if there is something wrong with the datapoint. Try to delete it and recreate it, perhaps the error message will be gone.

Is there any way to find out if this error comes from the binding "local_*", from the "top app bar navigation“ or from the "view in widget 8"?

This error has nothing to do with one of these two widgets, i think ;-)

Describe the bug
I am still looking for the best configuration of a user independent navigation. With the input of @cdellasanta a working variant could be published here. But currently there is the following error on every click on the navigation:

Yesterday i also discovered this new feature and did some test. But my result was that values still written to the the datapoint.
My plan is to analyse deeper the code behind this at the vis adapter.
I think discussion for this would be better in the forum directly than on github. Is certainly also interesting for many other users.
Can you open a new Topic and invite me, please?

Thank you for your support. Much appreciated!
https://forum.iobroker.net/topic/45215/special-binding-local_

see iob forum for more infos


Preparation for immutable objects

Right now it is not possible to modify an immutable object using prepare. For instance, I might want to do this (as a contrived example):
$injector->prepare('Zend\Diactoros\Response', function (&$response) {
    $response = $response->withHeader('X-API-Version', 'v2.1');
});

Attempting this will currently produce the following error:
Warning: Parameter 1 to {closure}() expected to be a reference, value given
Because reflection is used to execute the closure, it is not possible to use references.
What is the best way to handle immutable preparation?

Hmm, looks like you're trying to tell the injector to, when it encounters an instance of Zend\Diactoros\Response, inject an altered version of it (with the header). Have you considered instantation delegation for this (basically, a factory).
This way your implementation doesn't know about the injector.
$apiResponseFactory = function() use ($response) {
    return $response->withHeader('X-API-Version', 'v2.1');
};

$injector->delegate('Zend\Diactoros\Response', $apiResponseFactory);

Just a suggestion. This might not work for you as it'll need to be in the same context as where you get the $response object.
An alternative would be to grab the injector in the $apiResponseFactory and use that to change the already shared $response. Or maybe that's complete rubbish! Perhaps @rdlowrey can chime in here :-)

This is a sane use-case. There are a couple of options to "fix" prepare() so that this works ... I think the easiest is just to have it check the return value of the prepare callable with an instanceof and if it matches the expected class type internally replace the old instance with the newly returned instance.
This would be safe for BC as the return value from prepares wasn't previously meaningful. Can anyone think of any drawbacks to that approach that I may be missing?

@rdlowrey I like that solution very much.

Okay, great. I'll try to implement/test/tag that change today. Will post updates here as they happen.

The prepare() method change looks much better, I really like that :+1:

I've pushed the mentioned change up to master. @shadowhand if you can confirm that works as you expect (you can probably just verify by looking at the new test cases) I will go ahead and tag 1.1.0

This capability is available as of 1.1.0

:+1:


Place Peer info in listview in Windows forms

Hey hey!
I would just like to know how I can place peer information into a listview for Windows forms please? :)
First of all, can I use manager.PeerConnected += Manager_PeerConnected; to get the info?
Secondly how do I then go about about adding the info for each peer into the list view, like peer IP, upload speed, download speed etc?
thanks!

So i managed to get it this far..
private async void Manager_PeerConnected(object sender, PeerConnectedEventArgs e)
        {

                foreach (PeerId peer in await manager.GetPeersAsync())
                {
                    string[] row = { peer.ClientApp.Client.ToString(), peer.Monitor.UploadSpeed.ToString(), peer.Monitor.DownloadSpeed.ToString(), peer.Monitor.DataBytesUploaded.ToString(), peer.Monitor.DataBytesDownloaded.ToString() };
                    var listViewItem = new ListViewItem(row);
                    listView1.Items.Add(listViewItem);
                }

        }

Seems to be showing up in my listview, but I have no idea how to refresh these values and also to remove the no longer connected peers hahaha. Any help will be much appreciated as always!
Also, I don't see an option to for peer IP address? (client address)

Updating the list on every peerconnected event is a bit overkill, what I do is just call getpeersasync() on a timer (once every second or so) and update the list then.

Speed conversion:
https://gist.github.com/jpmikkers/39caa99e930542dedc7c

Thanks so much! That conversion seems to work!
So now I just need to figure out a way to update/refresh the stats and stop it from creating duplicates I guess..
I also probably only want it to show leachers and not the seeders as well..

If you keep the result from the previous call to GetPeersAsync(), it's easy to work out which peers disappeared, and you should remove the corresponding lines from your listview. By the way, at this point your questions are more about 'how to do WinForm' so perhaps you can retire this issue as resolved ?

Yeah sorry I am a complete noob here. So you lost me already there, but I'm using another alternative way to update the list view now. I am clearing the list with listView1.Items.Clear(); before populating it again hahaha.
private async void getpeers_timer_Tick(object sender, EventArgs e)
        {
            listView1.Items.Clear();
            foreach (PeerId peer in await manager.GetPeersAsync())
            {
                string[] row = { peer.Uri.Host, ConvertSpeed(peer.Monitor.UploadSpeed), ConvertSpeed(peer.Monitor.DownloadSpeed), Convertbytes(peer.Monitor.DataBytesUploaded), Convertbytes(peer.Monitor.DataBytesDownloaded), peer.BitField.PercentComplete.ToString("F") + "%" };
                var listViewItem = new ListViewItem(row);
                listView1.Items.Add(listViewItem);
            }
        }

I'm running this on a timer of 5 seconds. Will this cause problems to run the GetPeersAsync() every 5 seconds?
If not, well then I guess I will just use it like this for now.
I am having issues though and I think it might be since I started added this list view thing.
I am seeding all the time, but new leachers do not download from my application anymore. :(
To be more specific, I only saw one leacher download from me and he/she was using Deluge. Any other bittorrent client and even my own application won't download from my seeding application.
Is there a way to force it to use certain trackers perhaps or does it load the trackers automatically from the torrent file as it was created? (torrent file was created in qBittorrent)

I have a feeling it has something to do with the downloading side seeing as the seeding side does seem to work when i download from other clients.
If you guys are at all able to tell me if this is the correct why to start a download and making sure it finds all the seeders then that will be great :) So sorry for being such a noob, i should probably just go study to a a developer. This is just a side hobby thing for me which i enjoy way too much!
private Thread downloadthread;

        private void downloadThreadStart()
        {
            downloadthread = new Thread(Updater);
            downloadthread.IsBackground = true;
            downloadthread.Start();
        }

        public async void Updater()
        {
            MethodInvoker StartingDownload = delegate
            {
                try
                {
                    label1.Text = "Checking files..please wait...";
                }
                catch (Exception)
                {

                }
            };

            //Download torrent file first
            startTorrentFileDownload();

            try
            {
                // Give an example of how settings can be modified for the engine.
                var settingBuilder = new EngineSettingsBuilder
                {
                    // Allow the engine to automatically forward ports using upnp/nat-pmp (if a compatible router is available)
                    AllowPortForwarding = true,

                    // Automatically save a cache of the DHT table when all torrents are stopped.
                    AutoSaveLoadDhtCache = true,

                    // Automatically save 'FastResume' data when TorrentManager.StopAsync is invoked, automatically load it
                    // before hash checking the torrent. Fast Resume data will be loaded as part of 'engine.AddAsync' if
                    // torrent metadata is available. Otherwise, if a magnetlink is used to download a torrent, fast resume
                    // data will be loaded after the metadata has been downloaded.
                    AutoSaveLoadFastResume = true,

                    // If a MagnetLink is used to download a torrent, the engine will try to load a copy of the metadata
                    // it's cache directory. Otherwise the metadata will be downloaded and stored in the cache directory
                    // so it can be reloaded later.
                    AutoSaveLoadMagnetLinkMetadata = true,

                    AllowLocalPeerDiscovery = true,

                    MaximumConnections = 300,

                };

                var torrent = await Torrent.LoadAsync(torrentfile);
                dhtEngine = new DhtEngine(new IPEndPoint(IPAddress.Any, 0));
                TorrentEngine = new ClientEngine(settingBuilder.ToSettings());
                manager = await TorrentEngine.AddAsync(torrent, installdir);
                manager.TorrentStateChanged += Manager_TorrentStateChanged;

                label1.Invoke(StartingDownload);

                await dhtEngine.StartAsync();
                await manager.StartAsync();
                await manager.LocalPeerAnnounceAsync();
                await manager.DhtAnnounceAsync();

            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message + "\r\n" + e1.StackTrace);
            }

        }


Re-introduce requirements inference in the SDK

Describe your changes and why you are making these changes
This should clean up our requirements story across op, metric, and checks. Now, the user can supply the following for requirements:

A path to the requirements.txt file to use. (string)
A list of pip requirements specifiers (eg, ["transfomers"]) (list of strings)
If neither of those are provided, we'll look for "requirements.txt" in the same directory as the decorated function.
If all of those fail, we'll use inference with pip freeze.

Adds this inference at the top level, so a user can do aqueduct.infer_requirements() and get a list of pip requirements specifiers back.
Also adds some argument validation to the decorator.
Adds a special requirements test suite to our integration tests, which will be triggered only with the --requirements cmd line flag.
Related issue number (if any)
ENG-1217
Checklist before requesting a review

[x] I have created a descriptive PR title. The PR title should complete the sentence "This PR...".
[x] I have performed a self-review of my code.
[ ] I have included a small demo of the changes. For the UI, this would be a screenshot or a Loom video.
[x] If this is a new feature, I have added unit tests and integration tests.
[x] I have run the integration tests locally and they are passing.
[x] I have run the linter script locally (See python3 scripts/run_linters.py -h for usage).
[ ] All features on the UI continue to work correctly.
[ ] Added one of the following CI labels:

run_integration_test: Runs integration tests
skip_integration_test: Skips integration tests (Should be used when changes are ONLY documentation/UI)

I think this looks good to me @kenxu95. @hsubbaraj-spiral, your concerns about package size is valid, but it's hard to say without knowing what the user has installed on their machine. It could be a few MB or 10s of GB. I think we should go ahead and merge this for now and then optimize performance once we hear complaints about this in the future.


[release-0.12] Update fastapi to 0.109.1 and Support ray 2.10

What this PR does / why we need it:
#3541
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

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

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

Update fastapi to 0.109.1 and Support ray 2.10

/lgtm
/approve


npm install --dev gives peerinvalid The package chai does not satisfy its siblings' peerDependencies requirements!

npm install --dev I believe is needed to run the tests? If so it cannot succeed:
875 error peerinvalid The package chai does not satisfy its siblings' peerDependencies requirements!
876 error System Darwin 15.2.0
877 error command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--dev"
878 error cwd /work/karma
879 error node -v v0.10.38
880 error npm -v 1.4.28
881 error code EPEERINVALID
882 verbose exit [ 1, true ]

Any suggestions?

Try updating your npm version

Thanks!  I updated my node install to 4.2.4 and I got a different -- but still failing -- result:
Darwin 15.2.0
npm ERR! argv "/Users/johnjbarton/.nvm/versions/node/v4.2.6/bin/node" "/Users/johnjbarton/.nvm/versions/node/v4.2.6/bin/npm" "install" "--dev"
npm ERR! node v4.2.6
npm ERR! npm  v2.14.12
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!

Another idea?
(BTW does this mean that in effect node 0.10 is no supported for dev?  Fine by me but just want to know)

To get a full setup running try doing this
$ rm -rf node_modules
$ npm install
$ rm -rf node_modules/karma
$ cd node_modules
$ ln -s ../ karma
$ cd ../

You can safely ignore those peerdep warnings after that if npm installed everything.

Thanks, that worked (I got an error from ghooks but I think it's previously set up).
Should I send a PR with these instructions in making-changes?
npm test  fails after bringing up a chrome window that says Karma Starting:
Running "test:client" (test) task
Running /work/karma/bin/karma start test/client/karma.conf.js --single-run --no-auto-watch --reporters=dots
22 01 2016 10:38:12.512:INFO [framework.browserify]: bundle built
22 01 2016 10:38:12.521:INFO [karma]: Karma v0.13.19 server started at http://localhost:9876/
22 01 2016 10:38:12.526:INFO [launcher]: Starting browser Chrome
22 01 2016 10:38:14.285:WARN [web-server]: 404: /work/karma/static/karma.js
22 01 2016 10:39:02.513:WARN [launcher]: Chrome have not captured in 50000 ms, killing.
22 01 2016 10:39:02.858:INFO [launcher]: Trying to start Chrome again (1/2).
22 01 2016 10:39:03.979:WARN [web-server]: 404: /work/karma/static/karma.js
22 01 2016 10:39:52.842:WARN [launcher]: Chrome have not captured in 50000 ms, killing.
22 01 2016 10:39:53.150:INFO [launcher]: Trying to start Chrome again (2/2).
22 01 2016 10:39:54.228:WARN [web-server]: 404: /work/karma/static/karma.js
22 01 2016 10:40:43.137:WARN [launcher]: Chrome have not captured in 50000 ms, killing.
22 01 2016 10:40:43.414:ERROR [launcher]: Chrome failed 2 times (timeout). Giving up.
[Error]
Fatal error: Client unit tests failed.
npm ERR! Test failed.  See above for more details.

grunt browserify is needed to create ./static/karma.js

Also for future reference, the ghooks error I saw did cause a problem. Somehow the commit hook was sym linked to node_modules/grunt-conventional-changelog/lib/validate-commit-msg.js. rm on that hook and npm install fixed it.


Dynamic island

@JenyaFTW, fix the dynamic src imports for images in frontend/components/ActionButton.vue and frontend/components/IslandButton.vue


Feature/core/update failover logic

https://github.com/WalletConnect/WalletConnectKotlinV2/assets/3485185/b59b0e2c-e467-4573-999d-251f66d8d032

Screen.Recording.2024-04-11.at.11.23.07.PM.mov

Can you show logcat too? It should show the endpoint update, right?

@jakubuid updated video with logcat

Here's the failover with throttiling
https://github.com/WalletConnect/WalletConnectKotlinV2/assets/3485185/46bd7b12-cd6d-4f03-ac96-8fa629307ae9


chore: add word 'Masa' into team Dictionary

Description
add word 'Masa' into team dictionary. fix warning for spell checking.
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation

@zhenlei520 PTAL

After confirmation, it is finally determined not to adjust the directory structure. For the problem of inconsistent namespaces of some classes, disable checking of namespaces. This is also the most used solution at present.
// ReSharper disable once CheckNamespace


GenericExceptionsCaught  and  GenericExceptionsCaughtFixed are functional different..

The Fixed version should  look like this to be functional equal:
 public GenericExceptionsCaughtFixed(string inFile, string outFile) {
            try {
                inStream = File.Open(inFile, FileMode.Open);
            }

            // Fix the first violation by catching a specific exception.
            catch (ArgumentNullException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (ArgumentOutOfRangeException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (ArgumentException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (PathTooLongException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (DirectoryNotFoundException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (UnauthorizedAccessException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (FileNotFoundException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (IOException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            } catch (NotSupportedException ex) {
                Catch_GenericExceptionsCaughtFixed_OpeningInFile(inFile);
            }

            try {
                outStream = File.Open(outFile, FileMode.Open);
            }

            // Fix the second violation by re-throwing the generic
            // exception at the end of the catch block.
            catch {
                Console.WriteLine("Unable to open {0}.", outFile);
                throw;
            }
        }

        private void Catch_GenericExceptionsCaughtFixed_OpeningInFile( string inFile) {
            Console.WriteLine("Unable to open {0}.", inFile);
        }
    }

As long there is not a general  System.IO.FileOpenException .  people will continue to use   catch (Exception ex)
We could implement this ourselves by wrapping every File.Open in a single custom funtion.  but then we would have to wrap the entire .net framework.

Documentdetails
⚠ Dit gedeelte niet bewerken. Het is vereist om problemen te koppelen tussen docs.microsoft.com en GitHub.

ID: d89b0f64-db03-af39-fdf7-ccb31c9ae01b
Version Independent ID: 95c4aac2-4e98-240b-54e5-64981ab68cec
Content: CA1031: Do not catch general exception types - Visual Studio
Content Source: docs/code-quality/ca1031.md
Product: visual-studio-windows
Technology: vs-ide-code-analysis
GitHub Login: @jillre
Microsoft Alias: jillfra

This looks correct to me, but would clutter the code example quite a bit. I'm updating the doc with extra comments to resolve this.


multi slot transclusion as attribute

Hello,
in 1.4.7 I was able to use multi slot transclusion like:

    Lorem Ipsum

But after upgrading to 1.5.0 it fails, works only like this:

  <my-slot>
    Lorem Ipsum
  </my-slot>

I consider it to be a bug.

Multi slot transclusion has only been available in 1.5.x, starting with beta.2. I'm not sure where your issue comes from. The API that landed in 1.5.0 is stable. We did some changes during the beta / rc releases, but what landed in 1.5.0 is final.

You are correct, about it not being there for 1.4.8. Probably assumed it to work as we had ng-multi-transclude attached before.
Can this be changed to feature request, to support attributes as slot names?

Can you please open a new issue for that? We considered this briefly, but it was considered unneeded for most use cases. So make sure to add your use case / why you need slots with attribute lookup.


Update to three-pathfinding 0.7.0

This is interesting to us because of the performance fix mentioned here: https://github.com/donmccurdy/aframe-extras/pull/237#issuecomment-414082549
The churn in package-lock.json is I think caused because I have a new version of npm, and shouldn't have any material changes (i.e. no other versions changed, only requires metadata.)

Thanks! This all looks good but just to simplify could you omit package-lock.json ? I'll just bump it on the next release.

Yep, thanks — just the bump in package.json is enough. :)

OK, will do.
On Wed, Aug 29, 2018, 20:26 Don McCurdy<EMAIL_ADDRESS>wrote:

Yep, thanks — just the bump in package.json is enough. :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/donmccurdy/aframe-extras/pull/262#issuecomment-417177901,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaKXVs6HcNRwNa4TP2UAe0IFuPbXV7nks5uV1tfgaJpZM4WSqku
.

Obsoleted by https://github.com/donmccurdy/aframe-extras/pull/263.