'Build failed' when fetching metadata for some plugins.

Jenkins and plugins versions report

Environment

Paste the output here

What Operating System are you using (both controller, and any agents involved in the problem)?
WSL2
Reproduction steps
I have a plugins.txt file which lists tons of plugins.
job-poll-action-plugin is part of that list.
java -jar plugin-modernizer-cli/target/jenkins-plugin-modernizer-999999-SNAPSHOT.jar --plugin-file plugins.txt --recipes FetchMetadata
I don't have any log available in the logs directory.
If I launch directly for this plugin, not using a list, I get an error in the logs.
java -jar plugin-modernizer-cli/target/jenkins-plugin-modernizer-999999-SNAPSHOT.jar --plugins vagrant --recipes FetchMetadata
Starting Plugin Modernizer
Skipping fork for plugin vagrant as only metadata is required
Skipping sync for plugin vagrant as only metadata is required
Fetching plugin code locally vagrant...
Plugin processing error. Check the logs at logs/vagrant.log
*************
Plugin: vagrant
Error: Plugin processing error. Check the logs at logs/vagrant.log
*************
Plugin Modernizer aborted.

The logs are:
2024-08-22T12:09:16.044Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Scanning for projects...
2024-08-22T12:09:18.653Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] The requested profile "consume-incrementals" could not be activated because it does not exist.
2024-08-22T12:09:18.654Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] The requested profile "might-produce-incrementals" could not be activated because it does not exist.
2024-08-22T12:09:18.855Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:18.857Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] -------------------< org.jenkins-ci.plugins:vagrant >-------------------
2024-08-22T12:09:18.859Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Building vagrant 1.0.3-SNAPSHOT
2024-08-22T12:09:18.860Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]   from pom.xml
2024-08-22T12:09:18.860Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --------------------------------[ hpi ]---------------------------------
2024-08-22T12:09:18.943Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] Parameter 'showDeprecation' is unknown for plugin 'maven-hpi-plugin:1.106:validate (default-validate)'
2024-08-22T12:09:18.975Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] Parameter 'showDeprecation' is unknown for plugin 'maven-hpi-plugin:1.106:insert-test (default-insert-test)'
2024-08-22T12:09:18.983Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] Parameter 'showDeprecation' is unknown for plugin 'maven-hpi-plugin:1.106:test-hpl (default-test-hpl)'
2024-08-22T12:09:18.984Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] Parameter 'showDeprecation' is unknown for plugin 'maven-hpi-plugin:1.106:resolve-test-dependencies (default-resolve-test-dependencies)'
2024-08-22T12:09:19.003Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:19.004Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] >>> rewrite:5.39.0:run (default-cli) > process-test-classes @ vagrant >>>
2024-08-22T12:09:20.280Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:20.281Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- hpi:1.106:validate (default-validate) @ vagrant ---
2024-08-22T12:09:20.685Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:20.686Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- enforcer:1.0.1:enforce (enforce-maven) @ vagrant ---
2024-08-22T12:09:20.813Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:20.814Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- enforcer:1.0.1:display-info (display-info) @ vagrant ---
2024-08-22T12:09:20.817Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Maven Version: 3.9.9
2024-08-22T12:09:20.820Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] JDK Version: 17.0.12 normalized as: 17.0.12
2024-08-22T12:09:20.822Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: <IP_ADDRESS>-microsoft-standard-wsl2
2024-08-22T12:09:20.824Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:20.824Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- localizer:1.14:generate (default) @ vagrant ---
2024-08-22T12:09:23.003Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:23.004Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- resources:2.5:resources (default-resources) @ vagrant ---
2024-08-22T12:09:23.124Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [debug] execute contextualize
2024-08-22T12:09:23.141Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Using 'UTF-8' encoding to copy filtered resources.
2024-08-22T12:09:24.685Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Copying 27 resources
2024-08-22T12:09:36.893Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO]
2024-08-22T12:09:36.927Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] --- compiler:2.5:compile (default-compile) @ vagrant ---
2024-08-22T12:09:37.706Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Compiling 8 source files to /mnt/c/support/users/gsoc/plugin-modernizer-tool/test-plugins/vagrant/target/classes
2024-08-22T12:09:38.341Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] -------------------------------------------------------------
2024-08-22T12:09:38.342Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] COMPILATION ERROR :
2024-08-22T12:09:38.342Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] -------------------------------------------------------------
2024-08-22T12:09:38.343Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] error: Source option 5 is no longer supported. Use 7 or later.
2024-08-22T12:09:38.344Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] error: Target option 5 is no longer supported. Use 7 or later.
2024-08-22T12:09:38.345Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] 2 errors
2024-08-22T12:09:38.346Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] -------------------------------------------------------------
2024-08-22T12:09:38.346Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] ------------------------------------------------------------------------
2024-08-22T12:09:38.347Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] BUILD FAILURE
2024-08-22T12:09:38.347Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] ------------------------------------------------------------------------
2024-08-22T12:09:38.359Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Total time:  22.382 s
2024-08-22T12:09:38.360Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] Finished at: 2024-08-22T14:09:38+02:00
2024-08-22T12:09:38.361Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [INFO] ------------------------------------------------------------------------
2024-08-22T12:09:38.361Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] The requested profile "consume-incrementals" could not be activated because it does not exist.
2024-08-22T12:09:38.362Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [WARNING] The requested profile "might-produce-incrementals" could not be activated because it does not exist.
2024-08-22T12:09:38.363Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5:compile (default-compile) on project vagrant: Compilation failure: Compilation failure:
2024-08-22T12:09:38.363Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] error: Source option 5 is no longer supported. Use 7 or later.
2024-08-22T12:09:38.364Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] error: Target option 5 is no longer supported. Use 7 or later.
2024-08-22T12:09:38.365Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] -> [Help 1]
2024-08-22T12:09:38.365Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR]
2024-08-22T12:09:38.366Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
2024-08-22T12:09:38.366Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] Re-run Maven using the -X switch to enable full debug logging.
2024-08-22T12:09:38.367Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR]
2024-08-22T12:09:38.367Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] For more information about the errors and possible solutions, please read the following articles:
2024-08-22T12:09:38.368Z [INFO] [Thread=StreamPumper-systemOut] - i.j.t.p.core.impl.MavenInvoker # [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
2024-08-22T12:09:38.471Z [ERROR] [Thread=main] - i.j.t.p.core.impl.MavenInvoker # Build fail with code: 1
2024-08-22T12:11:12.148Z [ERROR] [Thread=main] - i.j.t.p.core.model.Plugin # Plugin processing error. Check the logs at logs/vagrant.log
io.jenkins.tools.pluginmodernizer.core.model.PluginProcessingException: Failed to get repository
	at io.jenkins.tools.pluginmodernizer.core.github.GHService.getRepositoryFork(GHService.java:106)
	at io.jenkins.tools.pluginmodernizer.core.model.Plugin.getRemoteForkRepository(Plugin.java:567)
	at io.jenkins.tools.pluginmodernizer.core.github.GHService.checkoutBranch(GHService.java:438)
	at io.jenkins.tools.pluginmodernizer.core.model.Plugin.checkoutBranch(Plugin.java:502)
	at io.jenkins.tools.pluginmodernizer.core.impl.PluginModernizer.process(PluginModernizer.java:119)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at io.jenkins.tools.pluginmodernizer.core.impl.PluginModernizer.start(PluginModernizer.java:67)
	at io.jenkins.tools.pluginmodernizer.cli.Main.run(Main.java:205)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2030)
	at picocli.CommandLine.executeHelpRequest(CommandLine.java:2016)
	at picocli.CommandLine.executeHelpRequest(CommandLine.java:1987)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2272)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at io.jenkins.tools.pluginmodernizer.cli.Main.main(Main.java:45)
Caused by: org.kohsuke.github.GHFileNotFoundException: https://api.github.com/repos/gounthar/vagrant-plugin {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/repos#get-a-repository","status":"404"}
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:737)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:480)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GHRepository.read(GHRepository.java:142)
	at org.kohsuke.github.GitHub.getRepository(GitHub.java:684)
	at io.jenkins.tools.pluginmodernizer.core.github.GHService.getRepositoryFork(GHService.java:104)
	... 14 common frames omitted
Caused by: java.io.FileNotFoundException: https://api.github.com/repos/gounthar/vagrant-plugin
	at org.kohsuke.github.GitHubConnectorResponseErrorHandler$1.onError(GitHubConnectorResponseErrorHandler.java:79)
	at org.kohsuke.github.GitHubClient.detectKnownErrors(GitHubClient.java:504)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:464)
	... 19 common frames omitted

Could the error be linked to the fact the plugin is super old, declaring Java source file compatibility with Java 5?
Expected Results
No error.
Actual Results
Skipping fork for plugin job-poll-action-plugin as only metadata is required
Skipping sync for plugin job-poll-action-plugin as only metadata is required
Fetching plugin code locally job-poll-action-plugin...
Collecting metadata for plugin job-poll-action-plugin... Please be patient
Build failed
Done

Anything else?
No response
Are you interested in contributing a fix?
No response

Yea it's some particular case we need to manage before trying anything.
In case of the vagrant plugin is because of the java.version 7
It's probably even Maven not supporting build of such project
error: Source option 5 is no longer supported. Use 7 or later.

https://maven.apache.org/docs/3.9.0/release-notes.html#overview-about-the-changes
Minimum Java version to use with Maven 3.9.0 is raised to Java 8.
For the job-poll-action is because of the HTTP URL
maven-default-http-blocker (http://<IP_ADDRESS>/): Blocked mirror for repositories: [repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/,

So 2 things blocked by some recent maven version.
We need to think how to manage those use cases

I've tried lots of things with the vagrant plugin.
Launching mvn commands with OpenRewrite recipes in the hope of getting the plugin to compile did not work, even when using old versions of Java locally.
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.migrate.UpgradeToJava8 -Drewrite.exportDatatables=true
Launching our recipes of course failed.
Launching the moderne mod tool also failed because it could not build an LST.
What almost worked is following the famous "Upgrade a plugin" tutorial and combine these two "recipes":

Update parent POM
Update Jenkins version

I said "almost" because, in the end, a class needed for the tests was missing: java.lang.ClassNotFoundException: hudson.slaves.CommandLauncher.
mvn clean install -DskipTests failed later on, because of a spotbugs redundant null check.
After modifying the Java method, the plugin finally compiled.
diff --git a/pom.xml b/pom.xml
index 48f97bf..18d2a1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,15 +3,13 @@
   <parent>
     <groupId>org.jenkins-ci.plugins</groupId>
     <artifactId>plugin</artifactId>
-    <version>1.554.1</version>
+    <version>4.88</version>
     <relativePath />
   </parent>

What insight can we get from these attempts?
Not all plugins can be automatically upgraded, some manual intervention may be needed.
We may have a few recipes to write to mimic the tutorial's first actions.
We may have to use something else than Maven for the very first automatic steps in case of a vastly outdated plugin.


Hosts don't share networks even when backed by the same datastore.

I've set up two Docker daemons with libnetwork, backed by an etcd datastore (hardcoded in my testing version).
Creating a network on one host does not result in the network being displayed on the second host docker network ls.  (I've verified network objects are being written to etcd.)
Creating a network on the second host with the same name as used by the first host results in a different network UUID.
Is the function to have libnetwork read the datastore for existing networks implemented?  Has it been tested on datastores other than etcd?

@spikecurtis can you try consul and confirm if this is a datastore specific or issue in libnetwork ?
(I have tested it using consul. fyi)

CC @tomdee

I tested with consul and hit the same problem.

@tomdee which driver are you guys checking this against ?

@mavenugo Remote driver with our own Calico driver backing it.
I also tried creating a standard bridge-driver network, and it wasn't persisted across the hosts either.

@spikecurtis bridge-driver is a local driver and hence it wont use the datastore.
Can you share the libnetwork.toml that you use to pass the configuration to dnet ?

@mavenugo I hardcoded config in Docker, since the goal was to do some system testing with Calico.
from daemon_unix.go
func initNetworkController(config *Config) (libnetwork.NetworkController, error) {

	// SpikeCurtis HACK:  force use of etcd datastore.
	controller, err := libnetwork.New(netconfig.OptionKVProvider("etcd"),
		                              netconfig.OptionKVProviderURL("<IP_ADDRESS>:2379"))
	if err != nil {
		return nil, fmt.Errorf("error obtaining controller instance: %v", err)
	}

@spikecurtis so you are building on top of #13441 ?

@mavenugo Yeah, until something gets merged to master we can use.


HLA allele frequency by phenotype/disease

Hi authors,
Is it possible to calculate the HLA frequencies per phenotype (i.e. disease) from the total?
I would like to create a figure for this.
Kind regards

Hi BioinformaNicks
I think this is provided in runMiDAS output?
From the tutorial:

Is this what you had in mind?

Hi BioinformaNicks
I think this is provided in runMiDAS output? From the tutorial:

Is this what you had in mind?

Hi mcjmigdal,
While this would indeed technically work, this would only be after running the association analysis with pre-set thresholds.
It could be useful to have an extra argument to getFrequencies() that could specificy a 'split-by', and the output would be two rows of for example A*03:01 with a count per phenotype and a frequency of the total (or within-phenotype?)?

@BioinformaNicks the code that calculates 'HLA frequencies per phenotype' for runMiDAS output is actually wrapped in an internal function called runMiDASGetVarsFreq. It was not intended to be a user-level function, but I think you can give it a try :cowboy_hat_face:
runMiDASGetVarsFreq works with MiDAS objects so it can be used after creating one, but prior to running the actual analysis. It has a manual page in case you need it. You can try the following:
library(midasHLA)
dat_pheno <-
  read.table(
  file = system.file("extdata", "MiDAS_tut_pheno.txt", package = "midasHLA"),
  header = TRUE
  )
dat_HLA <-
  readHlaCalls(
  file = system.file("extdata", "MiDAS_tut_HLA.txt", package = "midasHLA"),
  resolution = 4
  )
HLA <- prepareMiDAS(
  hla_calls = dat_HLA,
  colData = dat_pheno,
  experiment = "hla_alleles"
 )
freqs <- midasHLA:::runMiDASGetVarsFreq(HLA, 'hla_alleles', 'disease')
head(freqs)

# the result is a data.frame and should look like this
# term Ntotal Ntotal.percent N(disease=0) N(disease=0).percent N(disease=1) N(disease=1).percent
# A*01:01    236         11.80%          116               11.60%          120 12.00%
# A*01:02      2          0.10%            0                0.00%            2 0.20%
# ...

Let me know how it goes. If it is useful we could consider exposing it to user interface.


.quack - Procedural Duck Generator!

Description
A command to fetch a random duck from QuackStack.
https://github.com/python-discord/quackstack
Proposed Implementation
This command can be called in two ways:

With .quack, you simply get a completely random duck. Different every time.
By using .quack <seed>, you'll get a duck that's always the same if the seed is the same.

Is this blocked?
Probably. We need to get Quackstack to a more finished state before it will be possible to do this issue. If you're wondering if this issue is blocked, check if we've completed the Quackstack v1.0.0 milestone.
Would you like to implement this yourself?

[ ] I'd like to implement this feature myself
[x] Anyone can implement this feature

Hey, I'd like to take this up (see #693 lol)

Hey @lemonsaurus I'd love to take this!

@Kronifer vco is interested in taking this as shown above, but on top of that this issue is currently blocked pending futher development on QuackStack, there are a few things we need to do before we should slot it into a production application.
You are welcome to contribute to quackstack though, and I'm sure that if you ask in #dev-contrib then you can find out what needs to be done to get that project into a more ready state.

alright, sounds good joe, ive been looking into the readme

Stalled because of quackstack

If we decide to use the quackstack API, there shouldn't be any reason to stall this issue and it can be worked on. Otherwise, if we decide to use quackstack via a PyPI package and generate the duck images ourselves, we would need to wait for python-discord/quackstack#52.
There are downsides to both of them, if we use the API, anyone wanting to run the quack command on sir-Lancelot would need to have the API running and if we decide to use the PyPI package and generate the image ourselves, it would be consuming unnecessary memory.

I think we should wait for quackstack to be contained within a package.

Does quackstack not support api requests from the public? I don't understand why someone would need a version of quackstack running locally.

🤦🏾 You are right.

It would be nice to have sirlance use the internal cluster route in production, but then use the public api endpoint for local dev, just to save egress/ingress from the cluster

If we have those public API requests, that solves all our problems. Let's just go with that for now.

Whoever wants to pick this issue up, you're free to do so. Ping a core dev and we'll assign.
You can find all the docs stuff here: https://quackstack.pythondiscord.com/docs.

@Xithrius I'll take this on

@Kronifer Very well.


When previewing, I get "use of unresolved identifier 'Process'"

This only happens when previewing, and not when running the actual app. Unfortunately, I can't preview anywhere in the app now. iOS, SwiftUI

Hi @kenmueller,
Thank you very much for reporting the issue. There was a problem on having SwiftLint and Swiftformat as a dependency of the library, they made the previews to fail like you were describing.
Please, do a pod update or update your package so you can get it updated.
Thanks!


Memory leak when locking screen with -l flag

See relevant image.
I generated the image from a jpg. It is 5.7mb if that helps.
http://i.imgur.com/lp7TTJr.png

Seems like issue with i3lock itself, please consider making issue on i3lock github itself.
Does it happens everytime or with larger images itself?


Fix hover and dismissOnClickOutside handling

Proposed Changes

Do not override pressOwner on second simultaneous Press event (second touch or second button);
Update hover state (send Enter/Exit events) on Release event. It allows to send missing event if updating during Move was blocked by pressOwner;
Replace onClickOutside to onOutsidePointerEvent to allow specify filtering by event type or by specific mouse button;
Dismiss Popup and Dialog only on mouse primary button click;
Dismiss Dialog on Release instead of Press event;

Testing
Test: run tests from PopupTest and DialogTest
Issues Fixed
Fixes https://github.com/JetBrains/compose-multiplatform/issues/3349

Let's split it once again to make review easier


Factorial of a number in 3 ways

🚀 Implementation of factorial of a number in 3 ways using C and C++.
I can implement factorial of a number in three ways i.e. using Dynamic Programming (Bottom up and top down approach) and an improved version.
Have you read the Contributing Guidelines on Pull Requests?
Yes
Motivation
I want to do it under GSSoc'21.
Pitch
All the 3 implementations have their own benefit i.e. lesser recursive calls, memory management etc.

/assign

All the implementation is merged!


Fix tables data loading jerk

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: braginini:white_check_mark: saroojbkhari:x: saroojbukhari2022You have signed the CLA already but the status is still pending? Let us recheck it.


React and Leaflet.TimeDimension

Hi,
Has anyone try to use Leaflet.TimeDimension with React? I will really appreciate any help on how to do this.
Thank you :-)

Don't have time for a full explainer, but here is some code that I've written. Warning: it's not the most elegant code, but the problem with leaflet & react is that react wants to manage all that is DOM, and Leaflet interferes with that.
https://github.com/murb/exons-client/blob/master/src/components/MapComponent.jsx
Note, there are some quite project specific things going on here, but maybe you can follow what is happening.

Thank you murb for your answer. I will look into it now.
Did you try this library with Angular? I am thinking to use it for mobile app development.
Thanks again

Thank you for your help again. I really appreciate it.

@murb would I be able to take a look at the code you linked earlier? Seems the link is broken

@benjamineac this is the code at the time it was still in the open:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Leaflet from 'leaflet';
import 'leaflet.nontiledlayer';
import 'leaflet-timedimension';

class MapComponent extends Component {
  constructor (props) {
    super(props);
    this.initializeMap = this.initializeMap.bind(this);
    this.dimensionSummary = '';
  }

  initializeMap (props) {
    if (this.currentMap) { this.currentMap.remove(); }

    const { timeInterval, zoom, centerLatLon, timeDimensionControl, geovisActions, dispatch } = props;

    this.currentMap = Leaflet.map('map-8d7b0efd-96bb-4b8f-8ccd-936edbeac503', {
      buffer: 20,
      crs: Leaflet.CRS.EPSG3857,
      timeDimension: true,
      timeDimensionOptions: {
        timeInterval: timeInterval,
        period: 'PT5M'
      },
      timeDimensionControlOptions: {
        position: 'bottomleft',
        playerOptions: {
          minBufferReady: 4,
          transitionTime: 500
        }
      },
      timeDimensionControl: timeDimensionControl
    }).setView(centerLatLon, zoom);

    Leaflet.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
      attribution: '© OpenStreetMap contributors'
    }).addTo(this.currentMap);
    this.currentMapLayers = Leaflet.layerGroup();
    this.currentMapLayers.addTo(this.currentMap);
    this.currentMapHotSpotLayers = Leaflet.layerGroup();
    this.currentMapHotSpotLayers.addTo(this.currentMap);

    this.currentLinesLayers = Leaflet.layerGroup();
    this.currentLinesLayers.addTo(this.currentMap);

    window.leafletMap = this.currentMap;
  }

  componentDidMount () {
   this.componentWillUpdate(this.props);
  }

  componentWillUpdate (nextProps) {
    const { layers, hotSpots, geovisActions, dispatch, wmsDimensions, timeDimensionControl, focus } = nextProps;
    if (
      nextProps.viewName !== this.props.viewName ||
      nextProps.timeDimensionControl !== this.props.timeDimensionControl ||
      typeof this.currentMap === 'undefined'
    ) {
      this.initializeMap({
        timeDimensionControl: timeDimensionControl,
        timeInterval: nextProps.timeInterval,
        zoom: nextProps.zoom,
        centerLatLon: nextProps.centerLatLon
      });
      this.lastUpdatedMapLayersAt = 0;
    }

    if (this.currentMapHotSpotLayers) this.currentMapHotSpotLayers.clearLayers();

    const defaultIconOptions = {
      iconUrl: '/marker-blue.png',
      iconSize: [25, 43],
      iconAnchor: [12, 43],
      popupAnchor: [-3, -76],
      shadowUrl: '/marker-shadow.png',
      shadowSize: [31, 21],
      shadowAnchor: [0, 21]
    };

    const defaultIcon = Leaflet.icon(
      defaultIconOptions
    );

    const selectedIcon = Leaflet.icon(
      Object.assign(defaultIconOptions, { iconUrl: '/marker-lightblue.png' })
    );

    hotSpots.forEach((hotspot) => {
      const selected = focus && hotspot.dataUrl === focus.dataUrl;
      const marker = Leaflet.marker(hotspot.centerLatLon, {
        icon: (selected ? selectedIcon : defaultIcon), alt: hotspot.name, title: hotspot.name
      });
      marker.on('click', () => {
        dispatch(geovisActions.setFocus(hotspot));
        dispatch(geovisActions.fetchTimeseries({ url: hotspot.dataUrl }));
      });
      marker.addTo(this.currentMapHotSpotLayers);
    });

    let newDimensionSummary = '';
    for (const dimension in wmsDimensions) {
      newDimensionSummary = newDimensionSummary + dimension + wmsDimensions[dimension];
    }
    // every 5 min is ok for maplayers
    const mapLayerRefreshNeeded = (new Date()).getTime() - this.lastUpdatedMapLayersAt > 1000 * 60 * 1;
    if (mapLayerRefreshNeeded || newDimensionSummary !== this.dimensionSummary) {
      this.lastUpdatedMapLayersAt = (new Date()).getTime();
      this.dimensionSummary = newDimensionSummary;
    } else {
      return false;
    }

    if (this.currentMapLayers) this.currentMapLayers.clearLayers();

    layers.forEach((layer) => {
      const variableWMSLayer = layer.wmsLayer.match(/\{(.*)\}/);

      const wmsLayer =  (variableWMSLayer) ? layer.wmsLayer.replace(variableWMSLayer[0], wmsDimensions[variableWMSLayer[1]]) : layer.wmsLayer;

      let layerOptions = {
        layers: wmsLayer,
        styles: layer.styles,
        format: 'image/png',
        opacity: (layer.opacity ? layer.opacity : 1),
        transparent: true,
        tileSize: 1500,
        updateWhenIdle: false,
        updateWhenZooming: false,
        updateInterval: 600
      };
      for (const dimension in wmsDimensions) {
        layerOptions[`DIM_${dimension}`] = wmsDimensions[dimension];
      }

      const llayer = (layer.timeLayer) ? Leaflet.timeDimension.layer.wms(Leaflet.tileLayer.wms(layer.wms, layerOptions)) : Leaflet.nonTiledLayer.wms(layer.wms, layerOptions);

      llayer.addTo(this.currentMapLayers);
    });

    dispatch(geovisActions.fetchMapMetaData(layers[0], nextProps.focusLatLon, wmsDimensions));
  }

  render () {
    return (

    );
  }
}

MapComponent.propTypes = {
  viewName: PropTypes.string,
  timeDimensionControl: PropTypes.bool,
  geovisActions: PropTypes.object,
  dispatch: PropTypes.func
};

export default MapComponent;


Terminal lose focus in scenes with other input nodes

I'm using the Terminal node in a scene together with some LineEdit nodes.
When the focus is on the terminal, focus will switch to other LineEdit nodes after pressing some keys (KEY_UP, KEY_DOWN, KEY_TAB).
In terminal.gd I've changed:
func _gui_input(event):
	_native_terminal._gui_input(event)

	if event is InputEventKey and event.pressed:
		# Return to bottom of scrollback buffer if we scrolled up. Ignore modifier
		# keys pressed in isolation or if Ctrl+Shift modifier keys are pressed.
		if (
			not event.scancode in [KEY_ALT, KEY_SHIFT, KEY_CONTROL, KEY_META, KEY_MASK_CMD]
			and not (event.control and event.shift)
		):
			_native_terminal.sb_reset()

	_handle_mouse_wheel(event)
	_handle_selection(event)

with this:
func _input(event):
	if has_focus():
		_native_terminal._gui_input(event)

		if event is InputEventKey and event.pressed:
		# Return to bottom of scrollback buffer if we scrolled up. Ignore modifier
		# keys pressed in isolation or if Ctrl+Shift modifier keys are pressed.
			if (
				not event.scancode in [KEY_ALT, KEY_SHIFT, KEY_CONTROL, KEY_META, KEY_MASK_CMD]
				and not (event.control and event.shift)
			):
				_native_terminal.sb_reset()
			if event.scancode in [KEY_DOWN, KEY_UP, KEY_TAB]:
				get_tree().set_input_as_handled()

		_handle_mouse_wheel(event)
		_handle_selection(event)

This code solves the focus switch problem, but it is not the right fix because from my tests sometimes it causes some key press to be lost.

Hi @ConteZero, thanks for reporting this. I can reproduce the issue in this scene:

Can you try with this code instead and let me know if it fixes the problem:

func _gui_input(event):
	_native_terminal._gui_input(event)
	if event is InputEventKey and event.pressed:
		# Return to bottom of scrollback buffer if we scrolled up. Ignore modifier
		# keys pressed in isolation or if Ctrl+Shift modifier keys are pressed.
		if (
			not event.scancode in [KEY_ALT, KEY_SHIFT, KEY_CONTROL, KEY_META, KEY_MASK_CMD]
			and not (event.control and event.shift)
		):
			_native_terminal.sb_reset()

		if event.scancode in [KEY_LEFT, KEY_UP, KEY_RIGHT, KEY_DOWN, KEY_TAB]:
			accept_event()

	_handle_mouse_wheel(event)
	_handle_selection(event)

I can confirm that your code fixes the problem.
Thanks, your addon is really great!

I also encountered another problem, but I don't know if it can be related to this one.
With the same setup (scene with Terminal,Pty and other input nodes) if I execute a command with sudo the terminal screen do not show the command output, to force a refresh I need to press a key or click on other input field to switch focus.
The same command executed without sudo works as expected, the screen show the output.
ping www.google.com works
sudo ping www.google.com doesn't work


Failure parsing group steps

It seems there is not support for group steps. If I try to run a pipeline with a group step locally, I get an error like it's trying to interpret it as a command step.

🚨 Error: The command phase has no command to execute. Provide a command field in your step configuration, or define a command hook in a step plug-in, your repository .buildkite/hooks, or agent hooks-path.

Here's a minimal reproduction
bk run <(cat <<EOF
steps:
  - group: "Some group"
    steps:
      - label: "Hello"
        commands: "echo hello"
      - label: "World"
        commands: "echo world"
EOF
)

👍🏻 +1 Can confirm I'm seeing this locally as well.

Also affects me :( Any workarounds for now?

The local run isn't in 3.0.0 and we don't currently have a view to add it in; as has been seen, keeping it in line with the ongoing changes in the agent can mean it falls out of sync. We'll be looking at alternative approaches to using local run.


Blinking cursor prevents battery usage from dropping to 0.0 when window is no longer visible

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
This is very minor, but if Zed has no visible windows Activity Monitor still reports Zed using a small amount of battery.
If all Zed tabs are closed (to ensure there's no visible blinking cursor) the battery usage drops to 0.0, which indicates rendering the blinking cursor prevents the battery usage from going to 0.
Most other programs with blinking cursors have their battery usage drop to 0.0 when not visible.
Environment
Zed: v0.77.3 (stable)
OS: macOS 13.2.1
Memory: 16 GiB
Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
No response

+1, Lots of programs stop blinking cursors when they lose focus. This also (unintentionally?) serves as a slight indicator for which window is focused.

The fix comes in Zed 0.102


feat(meta): fix bug of lease

Signed-off-by: Little-Wallace<EMAIL_ADDRESS>I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
close https://github.com/singularity-data/risingwave/issues/3398
and add test for lease.
Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)

cc @vdnhi for hitting this.


Add Infectious ( Piano Version ) by Tobu, 7obu, AsdKeys

Song Name
Infectious ( Piano Version )
Artist Name
Tobu, 7obu, AsdKeys
Source
Youtube
Youtube Link
g_jEGcjpiyk
Direct File Link
No response
Song ID
593702
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 4363865

reject
doesn't sync with the level


Write IntrAdd to desc fields

Hi,
This is the only not ported feature of Java Based version to the new one.
This is important for NA market especially for SEL and also SEL projects in Europe.
It is popping up so often nowadays.
I think you know the details.
Thanks!
Best Regards

You are right this is botherin me as well. I see if I can squese that in.

I have closed #127 as this issue is very close to this. This is the text within:
Hi,
You might recognize this feature that when @JakobVogelsang implemented it for SEL.
The same request popped up for ABB. See snipped from SCL below;

<Inputs>
<ExtRef iedName="REF620" ldInst="LD0" prefix="MV" lnClass="GAPC" lnInst="1" doName="Ind3" daName="stVal" intAddr="01-0C-CD-01-00-02,0002,1,
**GOOSERCV_BIN.3.I1,300,0,GOOSERCV_BIN**,Dynamic" serviceType="GOOSE" srcLDInst="LD0" srcCBName="gcbGooseBS_1" />
[Omicron_2.zip](https://github.com/openscd/open-scd/files/5988441/Omicron_2.zip)

<ExtRef iedName="REF620" ldInst="LD0" prefix="MV" lnClass="GAPC" lnInst="1" doName="Ind3" daName="q" serviceType="GOOSE" srcLDInst="LD0" srcCBName="gcbGooseBS_1" />

This feature will be very well reacted by ABB.

Thanks!
Burak


KeyError at exception_handler in auth.py

Stack trace from AppInsights:
[
  {
    "parsedStack": [
      {
        "assembly": "Unknown",
        "method": "_fetch_team_members",
        "level": 10,
        "line": 121,
        "fileName": "/app/opwen_email_server/services/auth.py"
      },
      {
        "assembly": "Unknown",
        "method": "<genexpr>",
        "level": 9,
        "line": 74,
        "fileName": "/app/opwen_email_server/services/auth.py"
      },
      {
        "assembly": "Unknown",
        "method": "__call__",
        "level": 8,
        "line": 74,
        "fileName": "/app/opwen_email_server/services/auth.py"
      },
      {
        "assembly": "Unknown",
        "method": "__call__",
        "level": 7,
        "line": 23,
        "fileName": "/app/opwen_email_server/services/auth.py"
      },
      {
        "assembly": "Unknown",
        "method": "wrapper",
        "level": 6,
        "line": 226,
        "fileName": "/usr/local/lib/python3.7/site-packages/connexion/decorators/security.py"
      },
      {
        "assembly": "Unknown",
        "method": "get_authorization_info",
        "level": 5,
        "line": 127,
        "fileName": "/usr/local/lib/python3.7/site-packages/connexion/decorators/security.py"
      },
      {
        "assembly": "Unknown",
        "method": "wrapper",
        "level": 4,
        "line": 322,
        "fileName": "/usr/local/lib/python3.7/site-packages/connexion/decorators/security.py"
      },
      {
        "assembly": "Unknown",
        "method": "wrapper",
        "level": 3,
        "line": 48,
        "fileName": "/usr/local/lib/python3.7/site-packages/connexion/decorators/decorator.py"
      },
      {
        "assembly": "Unknown",
        "method": "dispatch_request",
        "level": 2,
        "line": 1935,
        "fileName": "/usr/local/lib/python3.7/site-packages/flask/app.py"
      },
      {
        "assembly": "Unknown",
        "method": "full_dispatch_request",
        "level": 1,
        "line": 1949,
        "fileName": "/usr/local/lib/python3.7/site-packages/flask/app.py"
      },
      {
        "assembly": "Unknown",
        "method": "exception_handler",
        "level": 0,
        "line": 177,
        "fileName": "/usr/local/lib/python3.7/site-packages/applicationinsights/flask/ext.py"
      }
    ],
    "outerId": "0",
    "message": "data",
    "type": "KeyError",
    "id": "1"
  }
]

This does not reproduce. May have been an issue with the Github API as per Shaun's investigation.


Revert "Merge pull request #55 from keybase/david/docker-build-verify-pgp"

This reverts commit 79a7d866fe13f2f6cb2d30c866dd47cdec0acc67, reversing
changes made to a08fe3681bcddc88350a6426dc43e60824cf523a.
Some people are reporting that the gpg fails for them. It works locally and in CI but reverting for now.
cc: @xgess Just merging this to fix for someone since it is just a revert

:+1:


Duplicate documents returned on alias scan

I have an alias that points to several indices. After scanning this alias, I had ~50% more records than where actually indexed. After some research I think I found the issue.
Example of all indices pointed to by my alias. ABC are machines and the numbers represent shards...
               A                  B                 C
index-x        0                  1                 2
index-y        0                  2                 1

When ES-Haddop resolves it's input splits, it does generate two separate splits for index-x-0 and index-y-0, but when the actual scan happen, it appears to use the preference API to select the shard. That would work if it sent the resolved index along too but it sends the alias name instead. Thus, the readers scan table-x-0 AND table-y-0.
This issue was greatly multiplied in my environment because many indices had the same shard number on the same node.
edit: changed wording from "tables" to "indices"

Can you please confirm if I understand correctly - the alias is resolved properly to its respective shards (in this case shards for x and y) however when it sends the requests (in this case two splits for x and two for y) it still uses the alias which means when reading x, the y shards locally residing will be used as well and the same thing will happen for y.
Correct?

I think you got it. I am pretty sure that if you just persisted that index name with the shard input split and use the resolved index names directly, the bug would be solved.

@aewhite Hi, I've managed to reproduce the bug and pushed a fix for it in master and 2.x. Can you please try the 2.1 dev build, it is already up in the Maven repo.
Thanks!

The current 2.1 dev build fails with the following exception...
2015-01-28 01:40:07,020 FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected
	at org.elasticsearch.hadoop.mr.EsInputFormat.createRecordReader(EsInputFormat.java:440)
	at org.elasticsearch.hadoop.mr.EsInputFormat.createRecordReader(EsInputFormat.java:64)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:644)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:330)
	at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:415)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
	at org.apache.hadoop.mapred.Child.main(Child.java:262)

Sorry about that - it's fixed now in master and a new build has been pushed.

Better but I'm still seeing more documents exported than exist in ES by about 10%. I'll start digging but it might take a while given our dataset size and ES/cluster setup.

I think it's picking up replicas where their shard number overlaps with a primary shard of the same number from another index.

@aewhite Hi, I've pushed a fix in master and the associated version in Maven. It took significantly longer than expected since a improvement in elasticsearch is needed (see elasticsearch/elasticsearch#9483). That might be available in 1.5 but until then, the solution is a best effort - when dealing with aliases or multiple indices (foo,bar,tar - and any of them can be an alias), es-hadoop tries to see if there's any combination of nodes where shards (with the same id) do not overlap. If there is one, it will use it - if not it will disable parallelism and do only one request.
With the fix in Elasticsearch, the parallelism would not be reduced but rather increased (since it will result in a task/worker/query for each shard in each index. If the alias points to 3 indices, that would result in 3x more queries than today).
Can you please try the latest dev version and report back? Thanks!

@aewhite Any update? did you manage to try out the latest snapshot?

Sorry, I have not and it's going to be difficult to test now due to topology changes and other priorities. We now have fewer smaller indices and fewer shards in general.
Since we needed a workaround for a production release, we ended up submitting parallel jobs to Hadoop, one per physical index.
That said, I did review your changes and they look promising but unfortunately I'm not in a position to replicate the original problem easily.

This fix has worked for me.
Before this fix, the difference between the number of results from a regular ES query and the RDD started to deviate exponentially the more indices I queried (e.g. for 1 index the numbers were the same, for 2 indices the RDD containing exactly twice as many results, for 3 indices there were more than triple the number of results).
After the fix, the number of results were the same no matter how many indices I queried.

@rjhdeboer Glad to hear it!

Closing the issue.


Language support (Feature request)

Language support would be nice to have. And when looking at "Accessibility improvements #3210" this opens the perfect opportunity for this.
Work with WCAG requires title and alt attributes. All these text strings needs to be added. Why not put all these text strings in a common file and make additions for language?

Can you be more specific?

First a small correction. WCAG does not need title AND alt attributes. There are several techniques to pass WCAG validation.
But I'll give you an example.
Go to:
http://leafletjs.com/
On the first page there is a map with a pin and a small "popup" window. In the upper right corner there is a close button "X". To make that close button WCAG compliant you'd need to add (something like) a aria-label attribute (or title attribute).
Lets say that aria-label="Close" will be good enough for this. That text string can be added to the code in two ways, hard coded or via a variabel defined in a language.js file.
If you have a multi language site you'd want to have the option to have German, Swedish or . Something like this example: getTranslatedString("leaflet.close.button", "en-uk") or getTranslatedString("leaflet.close.button", leaflet.lang) (leaflet.lang being global and easily changeable on the fly, if a user changes language)
If work with "Accessibility improvements #3210" is going to be done. This would be an perfect opportunity to implement multi language support as well.

Currently the convention for this is passing text as options of a particular class. Examples with zoom control: https://leafletjs.com/reference-1.3.2.html#control-zoom
We have no plans to introduce a more sophisticated i18n system to keep things simple.


join 3 layers of dirrenent zooms into one mbtile

I have 3 .geojsons of water_polygon. I would like megre them for one mbtile file for 3 different zooms.
When I use
tile-join -pk -o water.mbtiles  water_1.mbtiles water_2.mbtiles water_3.mbtiles
I have water.mbtiles that consists from 3 layer on preview, but I need to have just one layer on preview. I tryed use -l tag, but it doesn't help me.

This will be fixed in https://github.com/felt/tippecanoe/pull/131


feat: OS Module Improvements

Description of changes
Added most of the methods of the OS module.

os.cpus()
os.devNull
os.endianness()
os.freemem()
os.getPriority()
os.homedir()
os.hostname()
os.loadavg()
os.machine()
os.networkInterfaces()
os.setPriority()
os.totalmem()
os.uptime()
os.userInfo()

Checklist

[x] Created unit tests in tests/unit and/or in Rust for my feature if needed
[x] Ran make fix to format JS and apply Clippy auto fixes
[x] Made sure my code didn't add any additional warnings: make check
[x] Added relevant type info in types/ directory
[x] Updated documentation if needed (API.md/README.md/Other)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for the PR 🙌I think some changes are required for performance reasons: Read recommendations here: https://docs.rs/sysinfo/latest/sysinfo/#good-practice--performance-tips Also disable threading as it will introduce contagion with tokio

I think I've narrowed down the sysinfo function flags so I can avoid multithreading problems.
To improve performance, we would like to “define it once and use it again” as described on the web site, but this is not working. In this use case, I believe that Systems and Networks are the target, is the approach of using lazy_static correct?

I would have a small ask/idea, could we create feature flags for the various categories of APIs.
Something like statistics, network, etc. All enabled by default obviously.
The goal is that in restricted use-cases you might want to limit the APIs offered to the client code.
I get that the user of the module could code it's own module if they want full control, but that would be a middle ground.

I would have a small ask/idea, could we create feature flags for the various categories of APIs. Something like statistics, network, etc. All enabled by default obviously. The goal is that in restricted use-cases you might want to limit the APIs offered to the client code. I get that the user of the module could code it's own module if they want full control, but that would be a middle ground. Thoughts @richarddavison?

This could be a good reference: https://github.com/rscarson/rustyscript?tab=readme-ov-file#crate-features

Thats even more precise then that for the os module. It is more akin to http1, http2, compression-rust, compression-c I added in the http module

Thank you all for your ideas.
https://github.com/awslabs/llrt/blob/1b967873ad244c827716f2a98f98b868a0a72959/modules/llrt_http/Cargo.toml#L14-L21
I was rather thinking that the following flags would be preferable, with reference to the above.

Allow feature flags in sysinfo to be transparently set.
However, the default is no flag specification, and it should be an opt-in method of addition.
In LLRT, all feature flags should be specified.

We have implemented feature flags for statistics and network. I think I can further optimize by creating flags such as infomation and collecting all the remaining sysinfo calls. Please let me know what you all think.

We have implemented feature flags for statistics and network. I think I can further optimize by creating flags such as information and collecting all the remaining sysinfo calls. Furthermore, for [get|set]Priority, it may be better to have a separate flag such as priority.
Or should feature flags be created on a more granular basis? Please let me know what you all think.

Since there seems to be no particular request, I would like to conclude the implementation of feature flags for now. And I think we have done what we should have done with this PR.


bug: pointer being freed was not allocated

Bug: running our test suite using native on blockifier yields:
stEIP1559-360983995c1e0aa5(21161,0x16bf1b000) malloc: *** error for object 0x60000d596060: pointer being freed was not allocated
stEIP1559-360983995c1e0aa5(21161,0x16bf1b000) malloc: *** set a breakpoint in malloc_error_break to debug

Repro with LLVM19

Sequencer fork: https://github.com/kkrt-labs/sequencer/pull/1/files - Added serde logic for contract classes (unrelated to native) -  mostly based on Nethermind's native integration branch and uses LLVM19 branch
EF-Tests: our Ethereum test vector runner: Using ContractExecutor to compile Sierra to Native https://github.com/kkrt-labs/ef-tests/pull/763 and uses LLVM19 branch

Repro:
clone ef-tests, ensure correct branch git checkout feat/cairo-native
make
make setup-kakarot
cargo test test_baseFeeDiffPlaces_d0g0v0_Cancun --features v1,native -- --nocapture (with LLVM19)
Expected behavior:
No unexpected crash

UPDATE:
I updated native to use update-llvm19
Now, https://github.com/lambdaclass/cairo_native/issues/806 yields the same error, when running
cargo test test_baseFeeDiffPlaces_d0g0v0_Cancun --features v1,native -- --nocapture
stEIP1559-ef029f0211f7289b(4664,0x16dedf000) malloc: *** error for object 0x60000f968760: pointer being freed was not allocated
stEIP1559-ef029f0211f7289b(4664,0x16dedf000) malloc: *** set a breakpoint in malloc_error_break to debug

Sequencer fork now uses update-llvm-19 branch
EF-Test repo now uses update-llvm-19 branch

fixed by https://github.com/lambdaclass/cairo_native/pull/812 I believe


no-start flag ignored in cf-push APP --no-start

Command
cf push ref-app --no-start --no-manifest -p /tmp/deployer-apps/cf-env

What occurred
$ cf push ref-app --no-start --no-manifest -p /tmp/deployer-apps/cf-env
Updating app ref-app in org ORG / space SPACE as<EMAIL_ADDRESS>OK

Uploading ref-app...
Uploading app files from: /tmp/deployer-apps/cf-env
Uploading 122.3K, 13 files
Done uploading
OK

Stopping app ref-app in org ORG / space SPACE as<EMAIL_ADDRESS>OK

Starting app ref-app in org ORG / space SPACE as<EMAIL_ADDRESS>-----> Downloaded app package (864K)
-----> Downloaded app buildpack cache (4.2M)
-------> Buildpack version 1.6.24
       Downloaded [file:///var/vcap/data/dea_next/admin_buildpacks/abc123/dependencies/https___buildpacks.cloudfoundry.org_concourse-binaries_bundler_bundler-1.12.5.tgz]
-----> Compiling Ruby/Rack
       Downloaded [file:///var/vcap/data/dea_next/admin_buildpacks/abc123/dependencies/https___buildpacks.cloudfoundry.org_concourse-binaries_ruby_ruby-2.3.1-linux-x64.tgz]
-----> Using Ruby version: ruby-2.3.1
-----> Installing dependencies using bundler 1.12.5
       Downloaded [file:///var/vcap/data/dea_next/admin_buildpacks/abc123/dependencies/https___buildpacks.cloudfoundry.org_ruby_binaries_cflinuxfs2_libyaml-0.1.6.tgz]
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
       Using rack 1.5.2
       Using tilt 1.4.1
       Using json_pure 1.8.1
       Using bundler 1.12.5
       Using puma 2.9.1
       Using rack-protection 1.5.2
       Using sinatra 1.4.4
       Bundle complete! 3 Gemfile dependencies, 7 gems now installed.
       Gems in the groups development and test were not installed.
       Bundled gems are installed into ./vendor/bundle.
       Bundle completed (0.33s)
       Cleaning up the bundler cache.

-----> Uploading droplet (22M)

1 of 1 instances running

App started

OK

App ref-app was started using this command `rackup -p $PORT`

Showing health and status for app ref-app in org ORG / space SPACE as<EMAIL_ADDRESS>OK

requested state: started
instances: 1/1
usage: 500M x 1 instances
urls: MY_URL, MY_URL2
last uploaded: Thu Feb 2 18:46:23 UTC 2017
stack: unknown
buildpack: ruby 1.6.24

     state     since                    cpu    memory          disk          details
#0   running   2017-02-02 10:46:59 AM   0.0%   48.1M of 500M   83.9M of 1G

What you expected to occur
no start
CLI Version

$ cf version
cf version 6.19.0+b29b4e0-2016-06-08
CC API Endpoint Version
API version: 2.62.0

CF Trace

Platform & Shell Details

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.4 (jessie)
Release:        8.4
Codename:       jessie

Any other relevant information

Hi @erjoalgo
We released cf CLI 6.19.0 in June 2016. In the releases after that, we redid all our command parsing logic.
I cannot reproduce your issue using your command line on the latest version, so I suspect we fixed it.
Please try on the latest version.
Regards,
Dies Koper
CF CLI PM

Sorry for the noise, I didn't notice this output was part of a script which does a separate cf start in a later step.

Thanks for the update, you really had me scratch my head on this one!


run issue

Hello, your pytorch version cldice cannot run successfully. Can you republish a pytorch version cldice in your free time?

Hi, can you please share your code/snippet so we can reproduce your error? or can you provide us the exact error?

Hi, can you please share your code/snippet so we can reproduce your error? or can you provide us the exact error?

Hello, when I run the pytorch version, I get a lot of negative numbers. I think it's because I didn't use softmax to normalize y_pred. The current loss performance looks okay, but the training has not been completed yet, thank you very much for this job.


Pacman dependency issue: pipewire-pulse vs. pulseaudio

When trying to update the system, I got the following  error message:
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing pipewire-pulse (1:1.2.2-1) breaks dependency 'pulseaudio' required by musikcube

Here's the system:
OS: Garuda Linux Bird of Prey x86_64
Host: 20QFCTO1WW ThinkPad X1 Yoga 4th
Kernel: 6.10.2-zen1-1-zen
Uptime: 8 mins
Packages: 3021 (pacman)
Shell: fish 3.7.1
Resolution: 3840x2160
WM: i3
Theme: Breeze [GTK2/3]
Icons: breeze [GTK2/3]
Terminal: alacritty
Terminal Font: FiraCode Nerd Font Mono
CPU: Intel i5-8265U (8) @ 3.900GHz
GPU: Intel WhiskeyLake-U GT2 [UHD Graphics 620]
Memory: 3923MiB / 15643MiB

Let me know if you have questions. I'd hate to have to remove the package in order to be able to keep updating my sysem.

I would probably remove it and download the precompiled version from the releases page. I've never installed musikcube using pacman or paru/yay/etc from AUR.

is there any precompiled version for arch linux?

is there any precompiled version for arch linux?

I just downloaded compressed tar, unpack to /opt and create symlinks to the $PATH directory:
$ pushd /usr/bin
$ sudo ln -s /opt/musikcube/musikcube
$ sudo ln -s /opt/musikcube/musikcubed
$ popd

There are not pacman dependencies but need to update manually (not so often)


Code / documentation mismatch w.r.t. CSS colors in styles

Style functions used to be able to specify hsla() CSS colors (previously working in my app using 3.7) .   OL6 doesn't support this and throws exception 14, despite the documentation for that error saying "Valid colors are all CSS colors".

hsla fill is working here https://codesandbox.io/s/vector-layer-407b2

I'll see if I can reduce my code to a suitable test case, then.


Detect cycle in an undirected graph (GFG)

Aim

Details
I would like to solve Detect cycle in an undirected graph  in C++ under LGMSOC'21
Programming language

[ ] C
[x] C++
[ ] Java
[ ] Python

@ravikr126 Kindly assign me this issue under LGMSOC'21


Support for Authentication

Would be awesome to specify who can access the web service (specific account/group)

I'm tracking this in https://github.com/PowerShell/Polaris/issues/15 let me know if you see otherwise.
Thanks!


added BasicInput  cpp sample code

This pull requests adds the cpp code for the BasicInput Sample.

Merged into staging repo. Closing this PR.


Oracle Procedures/Packages Debug

Hi there!
I am starting to use more and more this great tool in replacement for SQL Developer... congratulations! You guys are doing a great job!
But... is there any plan to support package debug since this is a key feature on enterprise environments?
Thanks in advance!

We going to do this right after PostgreSQL debugger (https://github.com/dbeaver/dbeaver/wiki/PGDebugger) will be included in standard CE distribution (right now it is in beta testing).
Then we'll do the same for Oracle and probably some other databases.

HI what's the status of a oracle debugger for dBeaver?

Not only Oracle, but many other databases also need the debugging function. It is recommended to have a document that allows developers to develop the debugging function of their own databases. That would be very good

Is there any update or progress ?

I'm curious about updates/progress on this as well.


[Bug]: Error messages in templates

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Errors seen across templates
Customer Support Dashboard - Shows 404 error. And upon clicking on Add selected pages throws error

Marketing Dashboard

Discord Bot for GitHub Updates

Meeting Scheduler

Fund Raising CRM

Steps To Reproduce

Open any application
Click on Add page from Template
Add the above mentioned templates

Public Sample App
No response
Environment
Release
Issue video log
No response
Version
Cloud

A duplicate of the prod version has been created on release and the appUrl has been updated. The template has also been updated in prod and a new JSON file has been uploaded. This fixes all the issues on release and prod.


Kiosk: fixing time=0 bug

For the time flag, I made sure that the user couldn't specify higher than 240, but didn't check the floor. The regex allows the time=0 to pass through, and right now, it makes the UI kinda freak out. It wasn't apparent to me whether or not it was making a lot of requests to the backend at the time, but either way, it's something to be fixed.
We don't want time=0 to be possible, so I've made it so that if time=0 is specified, it will just resort to the default.
One thing to note as this change will still allow time entries like 024 or any number that starts with 0 or 00. It will just take the value of the first non-zero numbers. For example, 024 just resulted in a 24 hour code. Something like 001 will just result in an hour long code.
I know we can limit this with the regex by making it so leading zeros aren't valid; this will just make the timeout the default 30 minutes.
I don't have a strong preference for one over the other, but the zero check is  the first solution I thought of.

You mention this is a user supplied value. Can it be negative? Can it parse to NaN?

You mention this is a user supplied value. Can it be negative? Can it parse to NaN?

@eanders-ms, no, it can't be negative because of the regex. If the user passes in something like -1 or (x+5) or anything that is not a number after the equal sign first, it will be viewed as an invalid entry. If a user input something like time=0-1, the regex would only take the 0.


Support cuDNN RNN

I'm now making a wrapper function of cuDNN's RNN. We need to discuss more about its interface.
fix #1146

Hi,
Although I've just started to use your code, this is the first feedback from Alpaca:
It's good if there is a method to load models of LSTM layer. Since users already have many (serialized) model files of LSTM layer, we're glad if NStepLSTM layer can load/save the model as the same format with LSTM layer.
Do you have a plan to implement the feature? (Or, I think that we can implement it.)

OK, i'm making a link version of this function and a method to load parameters from the old LSTM models.
This function is very very complicated. We need more discussion about its interface (please see its test case).

Thank you for your reply! we're happy to hear that you're already implementing the feature. I will check its test cases after that you upload them here.

This PR includes #1262 . Please merge #1262 first.

I need to discuss compatibility with the original LSTM link.

Thank you for your great work! I'm looking forward to try it again. Also I'd like to read the loading functions from (previous/non-cuDNN) LSTM model files. I'll feed back the results later.
By the way, I've roughly tried to find out the loading function but I couldn't. Would you mind my asking you the name of the function? Thank you!

I pulled this PR down, but couldn't manage to install it. If it works, I can give feedback. Got errors like:
    cupy/cuda/cudnn.cpp:12026:97: error: expected ‘)’ before ‘__pyx_v_rnnDesc’
       __pyx_v_status = cudnnRNNBackwardData(((cudnnHandle_t)__pyx_v_handle), ((cudnnRNNDescriptor_t)__pyx_v_rnnDesc), __pyx_v_seqLength, ((cudnnTensorDescriptor_t *)__pyx_v_yDesc), ((void *)__pyx_v_y), ((cudnnTensorDescriptor_t *)__pyx_v_dyDesc), ((void *)__pyx_v_dy), ((cudnnTensorDescriptor_t)__pyx_v_dhyDesc), ((void *)__pyx_v_dhy), ((cudnnTensorDescriptor_t)__pyx_v_dcyDesc), ((void *)__pyx_v_dcy), ((cudnnFilterDescriptor_t)__pyx_v_wDesc), ((void *)__pyx_v_w), ((cudnnTensorDescriptor_t)__pyx_v_hxDesc), ((void *)__pyx_v_hx), ((cudnnTensorDescriptor_t)__pyx_v_cxDesc), ((void *)__pyx_v_cx), ((cudnnTensorDescriptor_t *)__pyx_v_dxDesc), ((void *)__pyx_v_dx), ((cudnnTensorDescriptor_t)__pyx_v_dhxDesc), ((void *)__pyx_v_dhx), ((cudnnTensorDescriptor_t)__pyx_v_dcxDesc), ((void *)__pyx_v_dcx), ((void *)__pyx_v_workspace), __pyx_v_workSpaceSizeInBytes, ((void *)__pyx_v_reserveSpace), __pyx_v_reserveSpaceSizeInBytes);
                                                                                ^
    cupy/cuda/cudnn.cpp: In function ‘PyObject* __pyx_f_4cupy_4cuda_5cudnn_RNNBackwardWeights(size_t, size_t, int, size_t, size_t, size_t, size_t, size_t, size_t, size_t, size_t, size_t, size_t, size_t, size_t, int)’:
    cupy/cuda/cudnn.cpp:12398:79: error: ‘cudnnRNNDescriptor_t’ was not declared in this scope
       __pyx_v_status = cudnnRNNBackwardWeights(((cudnnHandle_t)__pyx_v_handle), ((cudnnRNNDescriptor_t)__pyx_v_rnnDesc), __pyx_v_seqLength, ((cudnnTensorDescriptor_t *)__pyx_v_xDesc), ((void *)__pyx_v_x), ((cudnnTensorDescriptor_t)__pyx_v_hxDesc), ((void *)__pyx_v_hx), ((cudnnTensorDescriptor_t *)__pyx_v_yDesc), ((void *)__pyx_v_y), ((void *)__pyx_v_workspace), __pyx_v_workSpaceSizeInBytes, ((cudnnFilterDescriptor_t)__pyx_v_dwDesc), ((void *)__pyx_v_dw), ((void *)__pyx_v_reserveSpace), __pyx_v_reserveSpaceSizeInBytes);
                                                                                ^
    cupy/cuda/cudnn.cpp:12398:100: error: expected ‘)’ before ‘__pyx_v_rnnDesc’
       __pyx_v_status = cudnnRNNBackwardWeights(((cudnnHandle_t)__pyx_v_handle), ((cudnnRNNDescriptor_t)__pyx_v_rnnDesc), __pyx_v_seqLength, ((cudnnTensorDescriptor_t *)__pyx_v_xDesc), ((void *)__pyx_v_x), ((cudnnTensorDescriptor_t)__pyx_v_hxDesc), ((void *)__pyx_v_hx), ((cudnnTensorDescriptor_t *)__pyx_v_yDesc), ((void *)__pyx_v_y), ((void *)__pyx_v_workspace), __pyx_v_workSpaceSizeInBytes, ((cudnnFilterDescriptor_t)__pyx_v_dwDesc), ((void *)__pyx_v_dw), ((void *)__pyx_v_reserveSpace), __pyx_v_reserveSpaceSizeInBytes);
                                                                                ^
    error: command 'gcc' failed with exit status 1

Thank you for trying to use the patch. Which version of cuDNN do you use? cuDNN >=5.0 is required, and I recommend v5.1 RC because v5.0 has a bug I heard.

@unnonouno Yep, cuDNN 5.1 compiles now. Thanks!

TestNStepLSTM running time is too long (30sec on my environment).
Do you have improve idea?

Is this PR essentially ready to use? What led it to be dropped from 1.12.0?

I've been testing this PR and found an issue with using only the last output. For example, hy, cy, ys = self.rnn(h, c, frames) but then we only calculate loss using ys[-1]. This can arise when creating an encoder-decoder network such as with neural machine translation. Only using one of the outputs results in an error in the backward phase.

LGTM!


discord update to 0.0.17

Checklist

[X] Checked the nixpkgs master branch

[X] Checked the nixpkgs pull requests

Project name
nix search name: discord

current version: 0.0.16
desired version: 0.0.17
Notify maintainers

maintainers:
@ldesgoui
@MP2E
@devins2518
Note for maintainers
Please tag this issue in your PR.

Already fixed in #160499.

You can check what branches the update is available on using this link: https://nixpk.gs/pr-tracker.html?pr=160499


Standardize usage of FileProperty

I know this is already a big PR, but maybe we could consider adding some more guidance in the documentation as to how to specify FileProperty ? Currently we have only this: https://github.com/mlcommons/croissant/blob/main/docs/croissant-spec.md
but without any examples...

Done. I just added an example in docs/croissant-spec.md.


Broken Spread operator, it makes a shallow copy (new reference) instead of deep copy (whole new object).

I was trying to make a deep copy of a list of lists using spread operator and it did not work, any explanations about reasons?
I tested it with ordinary lists and it worked perfectly, so what is happening?

my dart SDK version is 2.13.4 (stable).
i'm using windows 10.

Working as intended. The spread operator was never intended for creating deep copies.
The spread operator takes the elements of the list (or iterable) being spread and makes them elements of the new list. It works exactly the same, no matter what those elements are.
It's not copying anything. It is injecting the elements, whatever they are, of one collection into another collection.
It's generally impossible to make a deep copy of Dart objects because you can only create an object of a type that you know the constructor of at compile-time (and even then, some objects just can't be meaningfully copied). It's technically possible to recognize when the elements being spread are themselves list and create new lists for those, but it is very risky. If the list is a Uint8List, making a copy when spreading might not be what you want, and making a plain List is almost certainly not what you want.
Doing a deep copy by default, even if only when possible (which is rarely), is not something we want. It's too hard to control, and you'd need a way to turn it off when you do want a shallow copy.
If you do want a deep copy of a list of lists, you have to write it:
 var tmp = [for (var element in list) [...element]];
 // or, going old-style,
 var tmp = list.map((e) => e.toList()).toList();


ruff: Add check argument (mandatory since 0.5.0)

As per the ruff 0.5.0 changelog:

The following deprecated CLI commands have been removed:
ruff <path>; use ruff check <path>

none-ls-extras.nvim is still using the deprecated CLI syntax.
Without the check argument , diagnostics.ruff and format.ruff builtins will fail with the following error in debug logs:
...none-ls.nvim/lua/null-ls/helpers/generator_factory.lua:207: error output: error: `ruff <path>` has been removed. Use `ruff check <path>` instead.

This PR adds the check argument.

Closes #14


Command+ Tab does not open new tab

Command + Tab does not open a new tab for me instead it reloads the existing tab

@designMoreWeb I think you confused this project with Zeit's HyperTerminal. Cheers.


[analyzer] Wrong error in case of member conflict in augmenting library

Test https://github.com/dart-lang/co19/blob/master/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07.dart fails because of this issue. Error is reported on the last empty line of the _lib file
$ python3 tools/test.py -n analyzer-asserts-linux co19/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07
No build targets found.
Test configuration:
    analyzer-asserts-linux(architecture: x64, compiler: dart2analyzer, mode: release, runtime: none, system: linux, enable-asserts, use-sdk)
Suites tested: co19

FAILED: dart2analyzer-none release_x64 co19/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07
Expected: Pass
Actual: MissingCompileTimeError

--- Command "dart2analyzer" (took 02.000782s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/dart-sdk/bin/dart out/ReleaseX64/gen/dartanalyzer.dart.snapshot -Dtest_runner.configuration=analyzer-asserts-linux --enable-experiment=macros --ignore-unrecognized-flags --packages=/home/sgrekhov/Google/dart-sdk/sdk/.dart_tool/package_config.json --format=json /home/sgrekhov/Google/dart-sdk/sdk/tests/co19/src/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07.dart

static error failures:
- Unexpected error at tests/co19/src/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07_lib.dart line 28, column 21, length 3: COMPILE_TIME_ERROR.CONFLICTING_FIELD_AND_METHOD

--- Re-run this test:
python3 tools/test.py -n analyzer-asserts-linux co19/LanguageFeatures/Augmentation-libraries/augmenting_types_A06_t07
[00:03 | 100% | +    0 | -    1]

=== 0 tests passed, 1 failed ===

@scheglov


feat(config): make data prefix toggleable

fixes #51

Hi, can you review those suggestion according to this issue comment: https://github.com/ncarlier/webhookd/issues/51#issuecomment-1028696437
The idea is to activate/deactivate SSE support.


Use react-vapor Svg component in the demo

Proposed Changes
The entire "styles" section of the demo was using a custom Svg component to display icons in the demo. Now the whole demo uses the Svg component from react-vapor.
Potential Breaking Changes
None, it only affects the demo.
Acceptance Criteria

[x] The proposed changes are covered by unit tests
[x] The potential breaking changes are clearly identified
[x] README.md is adjusted to reflect the proposed changes (if relevant)

Codecov Report

Merging #1228 into ADUI-4690/use-side-navigation-in-demo will not change coverage.
The diff coverage is n/a.

@@                          Coverage Diff                           @@
##           ADUI-4690/use-side-navigation-in-demo    #1228   +/-   ##
======================================================================
  Coverage                                  99.56%   99.56%
======================================================================
  Files                                        354      354
  Lines                                       8932     8932
  Branches                                    2117     2117
======================================================================
  Hits                                        8893     8893
  Misses                                        39       39

Continue to review full report at Codecov.

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


Handle array access syntax on strings with emoji

Emojis pose a problem for array-like access of a string. If you try to
grab one register you'll get am error: "You can't cut a surrogate in two in
an encoding that is not UTF-16 (IndexError)"
Calling split(''), which splits the string into array of characters, works
correctly even with emojis. So to make this method work as expected for
strings, first split it then join.

I'm nervous about overriding String#[], but not opposed.  Maybe we could add some more specs in there, to make sure the default behavior is "as expected?"  (I didn't look in the existing specs to see if those are already tested, I just looked at the diff)

Few questions:

How is the performance compared to vanilla String#[]?
Have you considered adding a new method (e.g. utf8_char_at, or maybe just at)?
Maybe it's a good idea to subclass String instead (UTF8String?) and then override the [] operator?
Shouldn't this be fixed in RubyMotion instead?

@tkadauke can't speak to the performance of it except to say that I've been using it in production for a few months now with no complaints. Do you have any specific tests you'd like to perform on it?
I'm a proponent of the "it should just work" principle, so I'd be opposed to making this its own method. In doing so you're forcing people to know if a string may contain an emoji at any point rather than just making sure they're always safe.
It'd be perfectly reasonable for this to be handled by RubyMotion itself (indeed probably preferred), but I happen to have an inside track to fix it here so thought I'd propose. 😁

Sorry to not get back to you in a long time. It just occurred to me that as a compromise, we can make this opt-in. E.g. we can have a class method on String like:
class String
  def self.enable_emoji_support
    @@emoji_support = true
  end

  def [](*args)
    return bracket_access_original(*args) unless @@emoji_support
    # ...
  end
end

The reason for that is a behavior change in getting the n-th character from a string can lead to catastrophic results. Ruby was plagued with this ever since Unicode encodings became popular.


INTEXT-216: KafkaProducerContext.beanName as null

JIRA: https://jira.spring.io/browse/INTEXT-216
Having the default value for the NamedComponent contract (beanName)
doesn't allow us to override (generate) the unique bean name for the component.
Clean up KafkaProducerContext.beanName to null by default.
Cherry-pick to 1.3.x

I found it as so simple fix that I'm going to merge it myself.
To save some time.
Review and objections are welcome, of course. But yes: already on the commit in the master...


Pick required language only.

I was surprised that all the languages are inside my js bundle.

It would be great to have English by default and load additional language when Validator.useLang(...) triggered.

I run into the same problem, in that in the final bundle, about 7.6K gzipped is taken up by these unused language files:

Does anyone have any clue how to exclude the files from being included? I am using webpack2 for packaging.

A workaround for those in the same shoe: use webpack IgnorePlugin to include only the necessary language file. For example, to include English only, add the line to webpack configuration file:
new webpack.IgnorePlugin(/^\.\/(?!en)(.+)$/, /validatorjs\/src\/lang/),

@hongyuan1306 This works like a charm. I guess this issue can be closed now. What do you think? @skaterdav85 @garygreen

Yeah there's various ways to exclude the lang from the bundle. By default it should only include english. Webpack may include all of them though because of the "wildcard" include so you can use ContextReplacementPlugin - this is what I'm currently using:
new webpack.ContextReplacementPlugin(/validatorjs[\/\\]src[\/\\]lang/, /en/),

All these is a workaround not a solution.
There must be a way not to have these modules in the first place.

All these is a workaround not a solution.
There must be a way not to have these modules in the first place.

@mixtur We welcome any input or PRs to address this issue.  In the meantime, there are a number of viable solutions supplied around using webpack.   When preparing a solution, keep in mind that it needs to work against all the supported languages.  Default to US only is not a viable solution as we have a large international user base and their preferred languages need to be taken into consideration

@garygreen

Yeah there's various ways to exclude the lang from the bundle. By default it should only include >
english.

While I can appreciate your statement, assuming English default is not the desired solution as we have a large international user base, and defaulting to English just won't work.  As I have mentioned to others, I am open to ideas of how this can be handled.

Will date-fns solution be ok for you? They explicitly import locale, and then pass it to every call. I believe in your case it may be easier because you only need to create Validator object with locale once.

@mikeerickson I agree it's not ideal to assume everyone wants English as the primary language - though that's just how it was implemented by myself years ago as it was the logical decision to include it as the main language and then any additional languages can be included seperately as desired.
Of course the ideal scenario is to support custom builds of some kind so developers can set their primary language, but it's not clear how to achieve this with our current build system using Grunt + Browserify. If we switched to a modern bundler it maybe easier with code splitting, etc. I think the ideal solution would be to have a new way validatorjs can be import ed to your bundle without any languages and then import the languages specially that you want to support.
It's tricky to get this all working in the browser, node, bundlers etc so any PRs/suggestions are welcome.

Will date-fns solution be ok for you? Whe you use date-fns you must explicitly import locale, and then pass it to every call

This sounds like what I'm thinking too.

Thanks for the regex solution @hongyuan1306
It works. Now that we're a few years later, with webpack 5, the syntax is slightly different.
Leaving it here for anyone that might need this in the future:
new webpack.IgnorePlugin({
    resourceRegExp: /^\.\/(?!en)(.+)$/,
    contextRegExp: /validatorjs\/src\/lang/
}),

@pepijnolivier FTR, this is based on the official documentation --> https://webpack.js.org/plugins/ignore-plugin/#using-regular-expressions . Definitely not a hack or sth one could not figure out :wink:


getParsedTransaction doesn't work at localnet

getParsedTransaction doesn't work at localnet. It returns null. It should return confirmed or finalized transaction result.
My Versions

anchor-cli 0.30.1
solana-cli 1.18.15 (src:767d24e5; feat:4215500110, client:SolanaLabs)

You need to confirm the transaction with at least confirmed commitment level before you can fetch it. Also, this is not an Anchor issue.


[0.62.0-rc.1] Catalyst macOS build issue typedef redefinition with different types

React Native version:
System:
    OS: macOS 10.15.2
    CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
    Memory: 52.18 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 13.7.0 - /var/folders/2d/y3l4yzcj0pz9r62r554t2nqr0000gn/T/yarn--1579780584922-0.8762400095093377/node
    Yarn: 1.21.1 - /var/folders/2d/y3l4yzcj0pz9r62r554t2nqr0000gn/T/yarn--1579780584922-0.8762400095093377/yarn
    npm: 6.13.6 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
    Android SDK:
      API Levels: 23, 25, 26, 27, 28
      Build Tools: 23.0.1, 26.0.3, 27.0.3, 28.0.3
      System Images: android-28 | Intel x86 Atom, android-28 | Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8<IP_ADDRESS>00203
    Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.11.0 => 16.11.0
    react-native: 0.62.0-rc.1 => 0.62.0-rc.1

Steps To Reproduce

Create a new project npx react-native init SandboxProject_62 --version 0.62.0-rc.1
Enable macOS target in xcode
Build

Describe what you expected to happen:
Successful build for macOS target
Errors
[...]/SandboxProject_62/ios/Pods/Headers/Private/Flipper-Folly/folly/portability/Time.h:51:17:
Typedef redefinition with different types ('uint8_t' (aka 'unsigned char') vs 'enum clockid_t')

If I comment out this line, Flipper-Folly build does seem to pass but I end up with an OpenSSL linking error:
ld: in [...]/SandboxProject_62/ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a(cryptlib.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '[...]/SandboxProject_62/ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a' for architecture x86_64

Would be really awesome to have a working macOS target for the 0.62 release as everything seems to be pretty ready.

FYI this bug still exists in the latest 0.62.0-rc.2 release

FYI this bug still exists in the latest 0.62.0-rc.3 release

Hi @mgcrea,
Have you had any success since posting this? I'm having the same problem and got stuck at libcrypto.a error.

@0xmtn @mgcrea I fixed this with updating my iOS Deployment Target Build setting in my app to be 9.0 and my platform :ios '10.0' to be platform :ios '9.0' in my ios/Podfile :
Change this:
ios/Podfile
platform :ios '10.0'

to this:
ios/Podfile
platform :ios, '9.0'

Don't forget to npx pod-install from the root of your project afterwards.
I guess this means flipper-folly doesn't like iOS version 10 as a deployment target...


A descriptive error message is needed when the delete operation for a VLAN fails.

Environment

Product Name: rSeries 5800 / VELOS CX410
Base OS: F5OS
Base OS Version: 1.5.0-5781 / 1.6.1-19136

Is your feature request related to a problem? Please describe.
A VLAN is created on the F5OS device and assigned to a Tenant device. When this VLAN is deleted from the Host device, the delete operation fails and the following error is retrieved "illegal reference 'fdb mac-table entries entry XX:XX:XX:XX:XX:XX XX tag_type_vid vlan'". This error is expected however the error message here does not describe the actual cause of the issue. Hence, a more descriptive error message would help the user identify and resolve the issue further.
Describe the solution you'd like
To have a more descriptive error message would help the user identify and resolve the issue further.

@selinaarokiaswamy-GSLAB how is this a AS3 on Classic issue? Please submit a issue to the F5OS group. Closing


unknown time zone

Unexpected error: unknown time zone Etc/GMT+8
ENV: Alpine image, running in Docker, DigidtalOcean
This error appears for some search worlds like 'negate', but it works fine for 'отвергнуть'
(the Russian name for this card). I can't see any correlation between cards and error, but it happens all the time for the same cards.
Also, all worked for my old code with a simple query generator and JSON unmarshal.
Also, all worked well on a local machine, the error appears only in Docker. Probably related to Alpine minimal env without preinstalled tzdata
My code (full):
func FuzzInline(text string) {
	ctx := context.Background()

	client, err := scryfall.NewClient()
	if err != nil {
		log.Println("can't create scryfall client:", err)
		return
	}

	result, err := client.SearchCards(ctx, text, scryfall.SearchCardsOptions{Unique: scryfall.UniqueModeCards, IncludeMultilingual: true})
	if err != nil {
		log.Printf("can't fuzz search for \"%s\": %s", text, err)
		return
	}
	<...>
}

So, now by log looks like this:
2019/09/29 00:45:31 can't fuzz search for "negate": unknown time zone Etc/GMT+8
2019/09/29 00:45:32 can't fuzz search for "negate": unknown time zone Etc/GMT+8

I can try to see if I can find a workaround. If you install the tzdata  package on your alpine in your alpine image does it work?
apk add tzdata

This error appears for some search worlds like 'negate', but it works fine for 'отвергнуть'
(the Russian name for this card). I can't see any correlation between cards and error, but it happens all the time for the same cards.

I am not sure but it might be because certain cards don't have the fields which are date types.

Hmmm so it seems like the possible solutions are:

Everyone who uses the library must install the tzdata package if it is not already installed. The downside of this approach is everyone will need to have tzdata installed.
Date type fields are converted to be string types and not time.Time types. The downside of this approach is time.Time types have nice methods to compare times.
The Date type doesn't try to convert to set the time.Time type to ETC/GMT+8 and instead leaves it in UTC. The downside of this approach is that the times coming from the dates coming from the server are probably not UTC? This might be good enough though?

apk add tzdata

yep, this solved my problem, but I don't like this kind of solutions. Extra deps for unused fields doesn't sound good for me.
IMHO, you have to provide the date as is, without tz change.

Welp, works for me.
Please, check the tz calculation, I'm not sure it's -4h from UTC.


Add IPC Host to "Access-Control-Allow-Origin"-Header

Bug
Description
When you change IPC Host to the IP (like <IP_ADDRESS>) of the server where ASF is running and send an IPC command you are not able to receive the IPC answer because of line 110 in IPC.cs
Line 110 from IPC.cs:
context.Response.AppendHeader("Access-Control-Allow-Origin", "null");
Here we need to change "null" into the IPC Host if its not <IP_ADDRESS>.
Example:
context.Response.AppendHeader("Access-Control-Allow-Origin", "Config.IPC.Host");
or
context.Response.AppendHeader("Access-Control-Allow-Origin", "http://<IP_ADDRESS>");
Expected behavior
Browser should be able to receive IPC answer.
Actual behavior
Browser is blocked from IPC answer because "Access-Control-Allow-Origin" Header is equal to the IP of the server where ASF is running.
Steps to reproduce
Run ASF from server A. Change IPC Host to IP of server A. Send IPC command from client B. ASF will run the IPC command but the answer wont be delivered to client B.

cc @KlappPc - I'm not sure if this won't break your stuff, since you added it the last time. Let me know if changing null to IPCHost suits you.

Wait. (wrote a different comment first ^^)
Just figured out, that what @MrBurrBurr wrote is wrong.
You would need to add the IP of Server B.
Requests from the IPC hosts are always allowed, since thats not cross-origin. At least thats how it's supposed to work. Currently do not have a webserver to test it.
So changing it to IPCHost, would not make the above case work, it would just break the local case.
So probably make that option configurable.
There has to stand the IP of the Server SENDING the request, if and only if it differs from the IPCHost.
Again, at least thats how it's supposed to work.

That's also my understanding.
I feel like just specifying * and calling it a day, since somebody else might come up with a server A and clients B and C. Anything wrong in this?

The only problem with "*" is that ANY website you visit can send commands using javascript (if ASF runs locally).
So even if my ASF is not reachable from the internet someone could send commands if I visit his website.
But I am not sure if that is  problem. Probably sending 100s of !lootall commands to trigger a ban might be the worst case.
But then you still have to run it in server mode, which might not be important for like 99% of users. (Probably changes if a good javascript UI is done.)
If it's configurable, people still can enter "*", but I guess the config is cluttering up much, these days ^^

That's a wrong solution then, but so is everyone else 🤔.
I'm wondering if we can't under any circumstance make it automatic. I thought about specifying client's IPv4/IPv6 in that header but then it wouldn't be any different from your security standpoint either. If nobody comes up with any clever solution then I guess I'll just make it configurable.

Specifiying "*" and adding an "IPCPassword" would probably fix all problems.
So a config option to add a password, that has to be send with each command for it to be valid.
Then it doesn't matter if some is able to send commands (either via a Website your visiting or by getting the IP of your public reachable ASF).
To execute commands they at least have to sniff out transfered data.
But I'm not sure if thats not shooting brids with canonns ;->

I like this solution since it can also benefit normal usage as an extra step, but I'm still not sure if I want to make CORS * by default when IPCPassword will be empty, oh well, gonna add a note to the wiki I guess.

You can check if V<IP_ADDRESS> addresses this properly, as well as if IPCPassword works, since I didn't even bother testing my code before release, I'm that lazy 🙂

@JustArchi I think it should return HTTP 401 unauthorized if password is wrong 😮

Agreed, I'll change it before stable.


The FLTK app is not found in task manager and taskbar when window border is set false

The FLTK app is not found in task manager and taskbar when window border is set false.
I was trying to create a custom title bar after hiding the default title bar (by setting win.set_border(false))
How should I get the app window shown in taskbar, and task manager while keeping default titlebar hidden?
Or is it possible to customize the default titlebar using fltk crate?

Borderless is mostly used for popups/dialogs. If you need it for an app window, you'll have to call platform specific code, which for windows you might want to use the winapi crate.
Basically you'll need to get the main windows raw_handle() which returns an HWND. Get the GWL_EXSTYLE styles, add
WS_EX_APPWINDOW, then call AdjustWindowRectEx with the adjusted values.
Not sure how that's done using Rust.

Thank you. It worked for me. I made a custom window title bar with almost all functionalities.
But stuck at Event(double click) on the title bar to maximize and restore.. Also minimize did not work.. Is there some solutions for that also?

To minimize you need to call window.iconize(). To detect double clicks, you need to handle Event::Push then check event_clicks():
use fltk::{prelude::*, enums::*, *};

fn main() {
    let app = app::App::default();
    let mut win = window::Window::default()
        .with_size(400, 300)
        .with_label("Test");
    let mut frame = frame::Frame::new(0, 0, 400, 40, None);
    frame.set_frame(FrameType::FlatBox);
    frame.set_color(Color::Red);
    win.end();
    win.set_border(false);
    win.show();
    frame.handle(move |f, ev| match ev {
        Event::Push => {
            if app::event_clicks() {
                println!("Double clicked!");
                true
            } else {
                false
            }
        },
        _ => false,
    });
    app.run().unwrap();
}

Also is there a direct method to maximize window while the window border is hidden. Currently I am using win.fullscreen(true) for this.. But it actually works as an alternate method only..

No you'll have to resize the window to position 0, 0 and size app::screen_size().

Thank you very much..

@santokalayil if you don't mind I'd love to take a look at the source code for the app showed in your screenshots. I was thinking about making something similar for my fltk examples repo, as I think a custom window as you've depicted is a pretty common use case. Would like to have the simple app you've shared in this repo. Or if you'd like you could make a PR.

@ hi, I have not completed the titlebar fully.. I actually moved on with whatever I have now for the time being to do the things that are more necessary.. I thought I will come back and do them later.
The basic Idea is to handle all mouse events on frame and buttons which are used to construct titlebar. so far I have done untill this much

Once completed I will send you the code. Or I will send the code here whatever nessessory. Please see a little snippet of my code from here.
`        title_frame.handle(
move |g, ev|
{
            match ev {
            fltk::enums::Event::Enter => {
                g.parent().unwrap().set_color(Color::from_u32(0x990000));
                cls_btn_clone.set_color(Color::from_u32(0xaa0000));
                fltk::app::redraw();
                true
            }
            fltk::enums::Event::Leave => {
                g.parent().unwrap().set_color(bg_color);
                cls_btn_clone.set_color(bg_color);
                fltk::app::redraw();
                true
            }
            fltk::enums::Event::Move => {
                true
            }
            fltk::enums::Event::Released => {
                fltk::app::redraw();
                true
            }
            _ => false,
            }
        }
    );

....
`
This is the basic Idea

Still not getting the idea, I shall share the code right away as incomplete code

@wyhinton Customized TitleBar in action can be found in this following youtube video
https://youtu.be/D0pfY6NUvYM

Hi, @wyhinton, The code is available in the repository. Not completed yet. still uploaded to github.. please take a look at it...

Hi, @MoAlyousef ,
2 doubts:

My app quits when esc key is pressed. I don't know why this happens. I have not done anything to detect keyboard presses and not assigned any functions to quit the app. Why this happens?
I was trying to add the custom made titlebar the functionality of moving the window by holding and dragging the window's custom title bar. I don't know how to implement that functionality.  To simply the complexity of the project, i was using multiple rs files as modules. So I kept the titlebar as pub struct in a module called titlebar. Please help me with some ideas.

Hi
1- That's FLTK's default behavior, it can be overriden:
    win.set_callback(move |_| {
            if app::event() == Event::Close {
                app::quit(); // This basically ignores other callback triggers (including hitting esc)
            }
        });

2- It should be simple, you'll need to handle Event::Drag. Taking the previous example:
use fltk::{enums::*, prelude::*, *};

fn main() {
    let app = app::App::default();
    let mut win = window::Window::default()
        .with_size(400, 300)
        .with_label("Test");
    let mut frame = frame::Frame::new(0, 0, 400, 40, None);
    frame.set_frame(FrameType::FlatBox);
    frame.set_color(Color::Red);
    win.end();
    win.set_border(false);
    win.show();
    frame.handle({
        let mut x = 0;
        let mut y = 0;
        move |f, ev| match ev {
            enums::Event::Push => {
                if app::event_clicks() {
                    println!("Double clicked!");
                } else {
                    let coords = app::event_coords();
                    x = coords.0;
                    y = coords.1;
                }
                true
            }
            enums::Event::Drag => {
                f.window()
                    .unwrap()
                    .set_pos(app::event_x_root() - x, app::event_y_root() - y);
                true
            }
            _ => false,
        }
    });
    app.run().unwrap();
}

Thanks, it worked!