Unable to push to harbor image with http

Environment:

Jib version: 1.5.0
Build tool: Gradle
OS: Mac OSX
Repository:  Harbor

Description of the issue:
I have insecure harbor registry for now and trying to push it and pushing it with property sendCredentialsOverHttp=true but push always times out
Expected behavior:
Should be able to push
Steps to reproduce:
/gradlew jib -DsendCredentialsOverHttp=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample -Djib.console=plain

jib-gradle-plugin Configuration:
jib {
    to {
        allowInsecureRegistries = true
        tags = ['latest', '1.0.0-SNAPSHOT']
        auth {
            username = 'xyz'
            password = 'xyz'
        }
    }
    container {
        ports = ['8080']
        mainClass = "$mainClassName"
        args = ["run", mainVerticleName, "-conf staging.json"]
        jvmFlags = ['-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4j2LogDelegateFactory']
    }

}

Log output:
➜ ./gradlew jib -DsendCredentialsOverHttp=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample -Djib.console=plain
Starting a Gradle Daemon, 1 busy and 1 incompatible Daemons could not be reused, use --status for details

> Task :jib
Authentication over HTTP is enabled. It is strongly recommended that you do not enable this on a public network!

Containerizing application to dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample, dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample, dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample:1.0.0-SNAPSHOT...
Retrieving registry credentials for dockerhub-1003850024.ap-south-1.elb.amazonaws.com...
Getting base image gcr.io/distroless/java:8...
Building dependencies layer...
Building project dependencies layer...
Building resources layer...
Building classes layer...

> Task :jib FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':jib'.
> com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Connect to dockerhub-1003850024.ap-south-1.elb.amazonaws.com:443 [dockerhub-1003850024.ap-south-1.elb.amazonaws.com/<IP_ADDRESS>, dockerhub-1003850024.ap-south-1.elb.amazonaws.com/<IP_ADDRESS>] failed: Operation timed out (Connection timed out)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2m 40s
8 actionable tasks: 1 executed, 7 up-to-date

Additional Information:
Push works fine with docker command-line
docker tag xyz:1.0.0-SNAPSHOT dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/xyz:1.0.0-SNAPSHOT

docker push dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/xyz:1.0.0-SNAPSHOT

Your total build time is reported as 2m40s which doesn't seem long!  Here's a few things to try:

Now that you've pushed with docker, does a jib build succeed?  Jib will now only need to push the unchanged layers, which should generally be much smaller.
Could you try with Jib 1.4.0?  We upgraded our underlying HTTP library, and this would help to identify if there were some other change there.
Lastly, could you please obtain a network trace and post it here?

* Now that you've pushed with docker, does a jib build succeed?  Jib will now only need to push the unchanged layers, which should generally be much smaller.

You mean jibDockerBuild yes it does succeeded

* Could you try with Jib 1.4.0?  We upgraded our underlying HTTP library, and this would help to identify if there were some other change there.

I have tried, same issue

* Lastly, could you please [obtain a network trace](https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#how-can-i-examine-network-traffic) and post it here?

Below is the command i have used
./gradlew jib -DsendCredentialsOverHttp=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample -Djib.console=plain -Djava.util.logging.config.file=logging.properties -DjibSerialize=true --debug

it produces too much logs posting here few which I feel is relevant
20:24:50.127 [DEBUG] [org.gradle.api.Task] TIMING       Building and pushing image
20:24:50.127 [LIFECYCLE] [org.gradle.api.Task] Getting base image gcr.io/distroless/java:8...
20:24:50.127 [DEBUG] [org.gradle.api.Task] TIMING       Pulling base image manifest
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMED        Pulling base image manifest : 2208.0 ms
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMING       Preparing base image layer pullers
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMED        Preparing base image layer pullers : 0.0 ms
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMING       Pulling base image layer sha256:e8d8785a314f385d3675a017f4e2df1707c528c06e7a7989663fdab4900bd8ff
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMED        Pulling base image layer sha256:e8d8785a314f385d3675a017f4e2df1707c528c06e7a7989663fdab4900bd8ff : 0.0 ms
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMING       Pulling base image layer sha256:e005d777a298a3529b1c8cf890883359e050cc966089ce84fea4d17b111907db
20:24:52.332 [DEBUG] [org.gradle.api.Task] TIMED        Pulling base image layer sha256:e005d777a298a3529b1c8cf890883359e050cc966089ce84fea4d17b111907db : 0.0 ms
20:24:52.333 [DEBUG] [org.gradle.api.Task] TIMING       Pulling base image layer sha256:3e010093287c245d72a774033b4cddd6451a820bfbb1948c97798e1838858dd2
20:24:52.334 [DEBUG] [org.gradle.api.Task] TIMED        Pulling base image layer sha256:3e010093287c245d72a774033b4cddd6451a820bfbb1948c97798e1838858dd2 : 1.0 ms
20:24:52.334 [DEBUG] [org.gradle.api.Task] TIMING       Pulling base image layer sha256:4348a160a40abb580b131736924d2f8044f54de5424897885a966c3225a913a2
20:24:52.334 [DEBUG] [org.gradle.api.Task] TIMED        Pulling base image layer sha256:4348a160a40abb580b131736924d2f8044f54de5424897885a966c3225a913a2 : 0.0 ms
20:24:52.334 [DEBUG] [org.gradle.api.Task] TIMING       Preparing application layer builders
20:24:52.335 [DEBUG] [org.gradle.api.Task] TIMED        Preparing application layer builders : 0.0 ms
20:24:52.335 [LIFECYCLE] [org.gradle.api.Task] Building dependencies layer...
20:24:52.335 [DEBUG] [org.gradle.api.Task] TIMING       Building dependencies layer
20:24:52.337 [DEBUG] [org.gradle.api.Task] TIMED        Building dependencies layer : 2.0 ms
20:24:52.337 [LIFECYCLE] [org.gradle.api.Task] Building project dependencies layer...
20:24:52.337 [DEBUG] [org.gradle.api.Task] TIMING       Building project dependencies layer
20:24:52.338 [DEBUG] [org.gradle.api.Task] TIMED        Building project dependencies layer : 1.0 ms
20:24:52.338 [LIFECYCLE] [org.gradle.api.Task] Building resources layer...
20:24:52.338 [DEBUG] [org.gradle.api.Task] TIMING       Building resources layer
20:24:52.339 [DEBUG] [org.gradle.api.Task] TIMED        Building resources layer : 1.0 ms
20:24:52.339 [LIFECYCLE] [org.gradle.api.Task] Building classes layer...
20:24:52.339 [DEBUG] [org.gradle.api.Task] TIMING       Building classes layer
20:24:52.341 [DEBUG] [org.gradle.api.Task] TIMED        Building classes layer : 1.0 ms
20:24:52.341 [DEBUG] [org.gradle.api.Task] TIMING       Building container configuration
20:24:52.341 [LIFECYCLE] [org.gradle.api.Task]
20:24:52.341 [LIFECYCLE] [org.gradle.api.Task] Container entrypoint set to [java, -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4j2LogDelegateFactory, -cp, /app/resources:/app/classes:/app/libs/*, io.vertx.core.Launcher]
20:24:52.341 [LIFECYCLE] [org.gradle.api.Task] Container program arguments set to [run, future.auth.MainVerticle, -conf staging.json]
20:24:52.341 [DEBUG] [org.gradle.api.Task] TIMED        Building container configuration : 0.0 ms
20:24:52.342 [LIFECYCLE] [org.gradle.api.Task] Retrieving registry credentials for dockerhub-1003850024.ap-south-1.elb.amazonaws.com...
20:24:52.342 [DEBUG] [org.gradle.api.Task] TIMING       Retrieving registry credentials for dockerhub-1003850024.ap-south-1.elb.amazonaws.com
20:24:52.342 [INFO] [org.gradle.api.Task] Using to.auth for dockerhub-1003850024.ap-south-1.elb.amazonaws.com
20:24:52.342 [DEBUG] [org.gradle.api.Task] TIMED        Retrieving registry credentials for dockerhub-1003850024.ap-south-1.elb.amazonaws.com : 0.0 ms
20:24:52.342 [DEBUG] [org.gradle.api.Task] TIMING       Authenticating push to dockerhub-1003850024.ap-south-1.elb.amazonaws.com
20:24:52.713 [LIFECYCLE] [org.gradle.process.internal.health.memory.MemoryManager]
20:24:52.713 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:24:52.713 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:24:52.714 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 477626368, Committed: 335544320}
20:24:54.594 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
20:24:54.595 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
20:24:54.595 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
20:24:54.596 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
20:24:54.596 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
20:24:54.596 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
20:24:54.597 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
20:24:57.712 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:24:57.712 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:24:57.712 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 477626368, Committed: 335544320}
20:25:02.712 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:25:02.712 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:25:02.712 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 477626368, Committed: 335544320}
20:25:04.593 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
20:25:04.594 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
20:25:04.594 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
20:25:04.594 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
20:25:04.595 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
20:25:04.595 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
20:25:04.596 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
20:25:07.716 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:25:07.716 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total:<PHONE_NUMBER>4, Free:<PHONE_NUMBER>}
20:25:07.716 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 477626368, Committed: 335544320}
20:24:52.333 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger]
20:24:52.333 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :jib FAILED
20:25:12.347 [DEBUG] [org.gradle.api.Task] TIMED        Authenticating push to dockerhub-1003850024.ap-south-1.elb.amazonaws.com : 20005.0 ms
20:25:12.348 [DEBUG] [org.gradle.api.Task] TIMED        Building and pushing image : 22225.0 ms
20:25:12.348 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Execute buildImage for :jib'
20:25:12.349 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute buildImage for :jib' completed
20:25:12.349 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter] Removed task artifact state for {} from context.
20:25:12.349 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Task :jib'
20:25:12.350 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Task :jib' completed
20:25:12.350 [INFO] [org.gradle.execution.plan.DefaultPlanExecutor] :jib (Thread[Execution worker for ':' Thread 4,5,main]) completed. Took 22.287 secs.
20:25:12.350 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker for ':' Thread 4: released lock on :
20:25:12.350 [DEBUG] [org.gradle.internal.work.DefaultWorkerLeaseService] Worker lease root.1.16 completed (1 worker(s) in use)
20:25:12.350 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker for ':' Thread 4: released lock on root.1.16
20:25:12.350 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 4,5,main]] finished, busy: 22.294 secs, idle: 0.28 secs
20:25:12.351 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 3,5,main]] finished, busy: 0.0 secs, idle: 22.575 secs
20:25:12.351 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':',5,main]] finished, busy: 0.208 secs, idle: 22.367 secs
20:25:12.351 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 5,5,main]] finished, busy: 0.0 secs, idle: 22.575 secs
20:25:12.350 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 6,5,main]] finished, busy: 0.0 secs, idle: 22.574 secs
20:25:12.350 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 7,5,main]] finished, busy: 0.0 secs, idle: 22.574 secs
20:25:12.350 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Daemon worker Thread 2,5,main]] finished, busy: 0.0 secs, idle: 22.574 secs
20:25:12.350 [DEBUG] [org.gradle.execution.plan.DefaultPlanExecutor] Execution worker [Thread[Execution worker for ':' Thread 2,5,main]] finished, busy: 0.049 secs, idle: 22.526 secs
20:25:12.354 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskExecutionGraph] Timing: Executing the DAG took 22.58 secs
20:25:12.356 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Run tasks'
20:25:12.356 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Run tasks' completed
20:25:12.358 [DEBUG] [org.gradle.internal.work.DefaultWorkerLeaseService] Worker lease root.1 completed (0 worker(s) in use)
20:25:12.358 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 2: released lock on root.1
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':jib'.
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: connect timed out
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.  Run with --scan to get full insights.
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
20:25:12.358 [WARN] [org.gradle.internal.featurelifecycle.LoggingDeprecatedFeatureHandler]
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
20:25:12.358 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger]
20:25:12.359 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 23s

And the network trace wasn't captured. It should have logged HTTP request and responses like the sample below. Double-check the path to the logging.properties file and its content.
[DEBUG] TIMED   Authenticating push to gcr.io : 683.0 ms
[INFO] Getting base image mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim...
[DEBUG] TIMING  Pulling base image manifest
Aug 19, 2019 4:01:29 PM com.google.api.client.http.HttpRequest execute
CONFIG: -------------- REQUEST  --------------
GET https://mcr.microsoft.com/v2/dotnet/core/aspnet/manifests/2.1-stretch-slim
Accept: application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.docker.distribution.manifest.v1+json
Accept-Encoding: gzip
User-Agent: jib 1.5.0 jib-maven-plugin Google-HTTP-Java-Client/1.30.0 (gzip)

Aug 19, 2019 4:01:29 PM com.google.api.client.http.HttpRequest execute
CONFIG: curl -v --compressed -H 'Accept: application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.docker.distribution.manifest.v1+json' -H 'Accept-Encoding: gzip' -H 'User-Agent: jib 1.5.0 jib-maven-plugin Google-HTTP-Java-Client/1.30.0 (gzip)' -- 'https://mcr.microsoft.com/v2/dotnet/core/aspnet/manifests/2.1-stretch-slim'
Aug 19, 2019 4:01:29 PM com.google.api.client.http.HttpResponse <init>
CONFIG: -------------- RESPONSE --------------
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 19 Aug 2019 20:01:29 GMT
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Content-Length: 1164
Connection: keep-alive
Access-Control-Expose-Headers: Docker-Content-Digest
Access-Control-Expose-Headers: WWW-Authenticate
Access-Control-Expose-Headers: Link
Access-Control-Expose-Headers: X-Ms-Correlation-Request-Id
Docker-Content-Digest: sha256:8877c07647e44ecac2a38de638d1bcc0ad98f2a44aa0fd01a9a1bc04f7be4f18
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:8877c07647e44ecac2a38de638d1bcc0ad98f2a44aa0fd01a9a1bc04f7be4f18"
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Ms-Client-Request-Id:
X-Ms-Correlation-Request-Id: 3bda3686-b091-42de-8f85-0faeabbd3f7d
X-Ms-Request-Id: 6ded8c7c-0c69-44a9-8840-16ac09262845
Strict-Transport-Security: max-age=31536000; includeSubDomains

Aug 19, 2019 4:01:29 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: Total: 1,164 bytes
Aug 19, 2019 4:01:29 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: {

it produces too much logs posting here few which I feel is relevant

You can attach a file to a comment. Just drag and drop.
Lastly,
        tags = ['latest', '1.0.0-SNAPSHOT']

In your case, latest in jib.to.tags is redundant. jib.to.tags is for additional tags, and the jib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample already implicitly points to latest.

It's  strange a HTTP using 443 port:
`
Execution failed for task ':jib'.

com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Connect to dockerhub-1003850024.ap-south-1.elb.amazonaws.com:443 [dockerhub-1003850024.ap-south-1.elb.amazonaws.com/<IP_ADDRESS>, dockerhub-1003850024.ap-south-1.elb.amazonaws.com/<IP_ADDRESS>] failed: Operation timed out (Connection timed out)
`
To my harbor (on premisses) aways works (https and http), but i'm using a robot account. I'm sending robotAccount and token out of POM (my case), in gitlab-ci command line.
If you pull any base image from this repository, have you the same error?

The network trace wasn't captured. It should have logged HTTP requests and responses like the sample below. Double-check the path to the logging.properties file and its content.
In your case, latest in jib.to.tags is redundant. jib.to.tags is for additional tags, and the jib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample already implicitly points to latest.

I double checked and triple checked the path and logging.properties but still i'm not getting network logs, below is the properties
handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=ALL

# CONFIG hides authentication data
# ALL includes authentication data
com.google.api.client.http.level=CONFIG

below is the gradle command i'm using
./gradlew jib -DsendCredentialsOverHttp=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample -Djava.util.logging.config.file=/path/logging.properties -DjibSerialize=true --debug

Also to isolate the issue, i have downloaded starter project from https://start.vertx.io/ and added jib, even in the starter project no network logs and push is failing.
Attached the sample project, only diff is i have removed username/password, if any of you want to try out i can share my username password for the harbor repo.
jib-demo.zip

I double checked and triple checked the path and logging.properties but still i'm not getting network logs

It must be a misconfiguration. Make sure the file is accessible and readable. Also try an absolute path. For example, you can place the file at /tmp/logging.properties.
BTW, I just noticed that you used a different image reference when tried with docker. The repository in this case was .../sample/xyz.
docker push dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/xyz:1.0.0-SNAPSHOT

However, I see the repository you set to jib.to.image is just ../sapmle (without xyz). Can you try again with -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/xyz (that ends with xyz)?

It must be a misconfiguration. Make sure the file is accessible and readable. Also try an absolute path. For example, you can place the file at /tmp/logging.properties.

Hmm... Gradle seems weird. I am trying it too, but often I don't get network traces either.

BTW, I just noticed that you used a different image reference when tried with docker. The repository in this case was .../sample/xyz.

That was a paste error, i did try with /sample/xyz
./gradlew jib -DsendCredentialsOverHttp=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/xyz -Djib.console=plain -Djava.util.logging.config.file=/tmp/logging.properties -DjibSerialize=true --debug

Also yes i have tried wit absolute path for logging.properties, still no network logs.

Also to note, when I try with AWS ECR it works fine, so it looks like some bug with my harbor instance and maybe because its using http.

Found the issue with network logs, gradle generates log only if i add --no-daemon
./gradlew --no-daemon -Djava.util.logging.config.file=/tmp/logging.properties -DjibSerialize=true jib -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/auth -Djib.console=plain --info

Attaching the logs, from the logs found 401 errors, so tried removing auth block and used helper from docker even that's giving 401, however push in docker works fine.
jib-1.4.log
jib-cred-helper.log
jib.log

@raizoor correctly identified the problem: your registry is serving across HTTP on port 80, and not HTTPS on port 443:
$ curl -i --connect-timeout 10 'https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/'
curl: (7) Failed to connect to dockerhub-1003850024.ap-south-1.elb.amazonaws.com port 443: Operation timed out
$ curl -i --connect-timeout 10 'http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/'
HTTP/1.1 401 Unauthorized
Date: Tue, 20 Aug 2019 18:42:02 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 87
Connection: keep-alive
Server: nginx
Docker-Distribution-Api-Version: registry/2.0
Set-Cookie: sid=b482a0cf516f1e78fdaa64ed8ef40228; Path=/; HttpOnly
Www-Authenticate: Bearer realm="http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/service/token",service="harbor-registry"

{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}

I guess your firewall is configured to leave connections dangling.
See the docs for allowInsecureConnections though we do not recommend this setting on the open internet!

Thanks for the logs. (I prefer raw logs though. You don't have to cut them down yourself.) BTW, I was also facing issues in obtaining network logs with Gradle, so thanks for the tip. But it is still very unpredictable with --no-daemon, so it's puzzling.
Anyways, the reason you get 401 now is probably because you didn't put -DsendCredentialsOverHttp=true this time. However, -DsendCredentialsOverHttp=true is a very bad idea, because anyone on the internet will be able to see and steal your credentials (unless amazonaws.com is in your local internal network, which I don't think it is the case). In any case, I'd be curious to see the logs with -DsendCredentialsOverHttp=true (if you think you are OK with people on the Internet to be able to capture your auth info during experimentation.)
@briandealwis the user has been using allowInsecureRegistries, and I do see that Jib automatically falls back to port 80 after trying 443.

@riyaz Run again with -DsendCredentialsOverHttp=true and attach the same logs.
If  jib automatically falls back to 80, it's not a firewall or network problem.

I have attached logs again, below is the command i have used to build
➜ ./gradlew --no-daemon -Djava.util.logging.config.file=/tmp/logging.properties -DjibSerialize=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/auth -Djib.console=plain --info -DsendCredentialsOverHttp=true --info jib

jib2.log

@chanseokoh see bellow, JIB only sent a HTTPS request
`> Task :jib
-------------- REQUEST  --------------
GET https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/
Accept:
Accept-Encoding: gzip
User-Agent: jib 1.4.0 jib-gradle-plugin Google-HTTP-Java-Client/1.27.0 (gzip)
curl -v --compressed -H 'Accept: ' -H 'Accept-Encoding: gzip' -H 'User-Agent: jib 1.4.0 jib-gradle-plugin Google-HTTP-Java-Client/1.27.0 (gzip)' -- 'https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/'

Task :jib FAILED
:jib (Thread[Task worker for ':' Thread 4,5,main]) completed. Took 23.379 secs.

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':jib'.

com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: connect timed out

Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org`

Just a few follow-ups:

Now that you've pushed with docker, does a jib build succeed? Jib will now only need to push the unchanged layers, which should generally be much smaller.

You mean jibDockerBuild yes it does succeeded

I meant a second ./gradlew jib: I was wondering if the push was timing out during a layer push (#691).  It's not (see below).

@briandealwis the user has been using allowInsecureRegistries, and I do see that Jib automatically falls back to port 80 after trying 443.

That's interesting because when I try reproducing the connection fails due to a java.net.SocketTimeoutException.  Although the configuration is using allowInsecureRegistries, our HTTP fallback only happens on java.net.ConnectionException.  But java.net.SocketTimeoutException is not a subclass of ConnectionException.
$ mvn -Djib.from.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/foo jib:dockerBuild -Djib.console=plain -X  -jib.DallowInsecureRegistries=true
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.019 s
[INFO] Finished at: 2019-08-21T10:54:27-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.2.0:buildTar (default-cli) on project first: connect timed out -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.2.0:buildTar (default-cli) on project first: connect timed out
[...]
Caused by: java.net.SocketTimeoutException: connect timed out
    at java.net.PlainSocketImpl.socketConnect (Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect (SocksSocketImpl.java:392)
    at java.net.Socket.connect (Socket.java:589)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket (SSLSocketFactory.java:542)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket (SSLSocketFactory.java:414)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket (SSLSocketFactory.java:488)
    at org.apache.http.conn.scheme.SchemeSocketFactoryAdaptor.connectSocket (SchemeSocketFactoryAdaptor.java:66)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection (DefaultClientConnectionOperator.java:180)
    at org.apache.http.impl.conn.AbstractPoolEntry.open (AbstractPoolEntry.java:144)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open (AbstractPooledConnAdapter.java:134)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect (DefaultRequestDirector.java:610)
    at org.apache.http.impl.client.DefaultRequestDirector.execute (DefaultRequestDirector.java:445)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute (AbstractHttpClient.java:835)
    at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:83)
    at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:108)
    at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:56)
    at com.google.api.client.http.apache.ApacheHttpRequest.execute (ApacheHttpRequest.java:65)
    at com.google.api.client.http.HttpRequest.execute (HttpRequest.java:1011)
    at com.google.cloud.tools.jib.http.Connection.send (Connection.java:200)
    at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:251)
    at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.callWithAllowInsecureRegistryHandling (RegistryEndpointCaller.java:171)
    at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:161)
    at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:356)
    at com.google.cloud.tools.jib.registry.RegistryClient.pullManifest (RegistryClient.java:202)
    at com.google.cloud.tools.jib.registry.RegistryClient.pullManifest (RegistryClient.java:210)
    at com.google.cloud.tools.jib.builder.steps.PullBaseImageStep.pullBaseImage (PullBaseImageStep.java:232)
    at com.google.cloud.tools.jib.builder.steps.PullBaseImageStep.call (PullBaseImageStep.java:144)
    at com.google.cloud.tools.jib.builder.steps.PullBaseImageStep.call (PullBaseImageStep.java:63)
[...]

Jib currently always tries to connect via HTTPS and only then retries with HTTP when allowInsecureConnections=true.  So @riyaz I think the workaround now is to configure your instance to use HTTPS, or to somehow configure your firewall to properly reject connections to port 443.
@chanseokoh this might be a motivating case for turning allowInsecureRegistries from a true/false to a list of registries as we could just immediately proceed to an HTTP connection.

@riyaz I noticed there is a difference between Jib 1.4.0 and 1.5.0 regarding <allowInsecureRegistries>. Can you try it again with 1.5.0 too and upload a log? This time, please use --stacktrace --debug instead of --info. (After all, I would end up suggesting the same as @briandealwis said to just set up an HTTPS registry, but I need to do some more investigation on 1.4.0 vs 1.5.0 and I need your help.)

@raizoor if you look at the jib-cred-helper.log and jib.log from https://github.com/GoogleContainerTools/jib/issues/1917#issuecomment-523134890, we can check the HTTPS-to-HTTP fallback did happen. I suspect this happens only with 1.5.0 but not with 1.4.0.
Failed to connect to https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/ over HTTPS. Attempting again with HTTP: http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/

> Task :jib
-------------- REQUEST  --------------
GET http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/
Accept:
Accept-Encoding: gzip
User-Agent: jib 1.5.0 jib-gradle-plugin Google-HTTP-Java-Client/1.30.0 (gzip)

curl -v --compressed -H 'Accept: ' -H 'Accept-Encoding: gzip' -H 'User-Agent: jib 1.5.0 jib-gradle-plugin Google-HTTP-Java-Client/1.30.0 (gzip)' -- 'http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/'
-------------- RESPONSE --------------
HTTP/1.1 401 Unauthorized

Regarding no network logs with gradle, --no-daemon seems to work sometime only, if we downgrade the gradle version to 4.10.3 it always works.
Attached the log with 1.5,
./gradlew --no-daemon -Djava.util.logging.config.file=/tmp/logging.properties -DjibSerialize=true -Djib.to.image=dockerhub-1003850024.ap-south-1.elb.amazonaws.com/sample/starter -Djib.console=plain -DsendCredentialsOverHttp=true jib --stacktrace --debug

It was keep on trying for more than 20 mins so I had to abort, typically it takes max 30 seconds to upload my image using docker cli.
jib5.log

My test above used Jib 1.2.0 and I had the same result on 1.4.0.  With Jib 1.5.0 I do see Jib cascading from HTTPS to HTTP.  I see lengthy timeouts though (1m15s or so) on any request though.

@riyaz looked at your last log. No wonder it takes > 20 minutes (with 1.5.0). It is indeed working at least but very inefficient because Jib first tries HTTPS (port 443) before trying HTTP (port 80) for every access to your registry. And this HTTPS-to-HTTP failover can happen only when the HTTPS attempt times out. The log shows that the timeout is about 75 seconds. That is, for every HTTP request Jib makes to your registry, it first has to wait for ~75 seconds. But I do see that the plain http:// is very fast.
22:11:01.880 [INFO] [com.google.api.client.http.HttpTransport] -------------- REQUEST  --------------
GET https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/

22:12:17.265 [INFO] [org.gradle.api.Task] Failed to connect to https://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/ over HTTPS. Attempting again with HTTP: http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/
22:12:17.269 [INFO] [com.google.api.client.http.HttpTransport] -------------- REQUEST  --------------

22:12:17.269 [INFO] [com.google.api.client.http.HttpTransport] curl -v --compressed -H 'Accept: ' -H 'Accept-Encoding: gzip' -H 'User-Agent: jib 1.5.0 jib-gradle-plugin Google-HTTP-Java-Client/1.30.0 (gzip)' -- 'http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/v2/'
22:12:17.484 [INFO] [com.google.api.client.http.HttpTransport] -------------- RESPONSE --------------
HTTP/1.1 401 Unauthorized
Date: Wed, 21 Aug 2019 16:42:17 GMT

22:12:17.500 [INFO] [com.google.api.client.http.HttpTransport] -------------- REQUEST  --------------
GET http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/service/token?service=harbor-registry&scope=repository:sample/starter:pull,push

22:12:17.500 [INFO] [com.google.api.client.http.HttpTransport] curl -v --compressed -H 'Accept: */*' -H 'Accept-Encoding: gzip' -H 'Authorization: <Not Logged>' -H 'User-Agent: jib 1.5.0 jib-gradle-plugin Google-HTTP-Java-Client/1.30.0 (gzip)' -- 'http://dockerhub-1003850024.ap-south-1.elb.amazonaws.com/service/token?service=harbor-registry&scope=repository:sample/starter:pull,push'
22:12:17.586 [INFO] [com.google.api.client.http.HttpTransport] -------------- RESPONSE --------------
HTTP/1.1 200 OK

That said, if you specify the port :80 in your image reference (e.g., ...elb.amazonaws.com:80/sample/...), I bet it will be very fast, as it will attempt the plain HTTP directly. Later you could add an additional tag using whatever means to have the correct name without the port part (:80). Another dirty hack would be to somehow configure your firewall or network so that any connection attempt to amazonaws.com:443 drops immediately as @briandealwis said.
But, I strongly recommend you make the port 443 work as a registry and close the insecure registry at port 80. I'm emphasizing again that by sending credentials over HTTP, anyone in the wild can capture and steal your username and password easily.

I have requested our infra team to setup ssl, meanwhile i have switched to aws ecr for now.

Given that you don't have a secure registry, ECR seems rather the right choice. I would continue using it, at least until you set up SSL.

Regarding no network logs with gradle, --no-daemon seems to work sometime only, if we downgrade the gradle version to 4.10.3 it always works.

Thanks for the info. It's good to know. We are battled too.

@chanseokoh this timeout (75s) have been returned by @riyaz network or JIB?

@raizoor both the default connection timeout and the read timeout are set to 20 seconds by default (configurable with -Djib.httpTimeout), so I'm actually confused why it isn't enforced.

@raizoor both the default connection timeout and the read timeout are set to 20 seconds by default (configurable with -Djib.httpTimeout), so I'm actually confused why it isn't enforced.

I did an investigation, and I think it is the bug in recent Google HTTP Client versions that does not honor the given connection timeout. (Haven't tested read timeout yet.) Jib 1.5.0 is affected, and I am positive that the timeout will work correctly on 1.4.0.

@riyaz we all know what exactly is happening and why. A few issues were identified:

Regression: starting with 1.5.0, -Djib.httpTimeout has no effect due to a bug in Google HTTP Client. I'll file a new issue in this repo to track.
Sometimes, network timeout causes Jib to fall back to non-HTTP requests. This is what happened to you with 1.5.0 (triggered from the above HTTP library bug). We fixed this inconsistency, and the next Jib release will fail right away in case of timeout (#1949). Therefore, you may think Jib 1.5.0 somehow works with allowInsecureRegistries at the moment on your endpoint dockerhub-1003850024.ap-south-1.elb.amazonaws.com, it will stop working at all in future releases.
Performance suffers when using allowInsecureRegistries due to repeated failover. We already have an issue (#946). The issue is a low priority, as we discourage the use of allowInsecureRegistries.

I'll go ahead and close this issue. As I said, ECR seems the right choice at the moment. I would continue using it, at least until you set up SSL. And try to avoid using allowInsecureRegistries.


Deleting published pages

Maybe a silly question, but how one can delete a blog that is already published?
M

@msh855 Depending on whether you want to delete a notebook or a markdown post, you can go to the respective folder.
For notebooks, go to "[reponame]/_notebooks/[postname]", then click on the .ipynb file you want to delete. When the file opens there will be a delete icon on the top right. Click the icon. On the next page, click on "Commit Changes". Your post will be deleted.
For markdown files, go to "[reponame]/_posts/[postname]", then click on the .md file you want to delete. Follow the same instructions as above.

NB: I am writing this comment on all open issues
Thank you for posting this issue, and I'm really sorry I haven't gotten around to fixing this.  All of my time has been focused on nbdev.   In the new version of nbdev, we knew that we wanted to include blogging rather than it being a separate project.  We realized that Quarto, which the new version of nbdev is built on, is much better than fastpages.    Rather than keep this project going, we are recommending that people migrate to Quarto as we think that will be more powerful for users and is a much better tool for blogging.
I've written a detailed migration guide with some tools that will hopefully make the process of switching much easier.  Overall I think it will be worth it for users.
My apologies again for not getting to this issue sooner.  Will close this issue with this PR https://github.com/fastai/fastpages/pull/657, where we are letting people know that we are deprecating this project.  Thanks again for your support and for using fastpages!  🙇🏽


Support basic type conversion builtin functions

Without the following basic type conversion functions
bool()
str()
int()

It's hard to complete many simple tasks. For example, since SeedPython hasn't supported
f'Template string: {variable}'

yet, it's hard to mix strings and numbers in a single output line with the print() function like:
print(f'value = {value}')

Given there is no f'' template string, the following statement can be an alternative way for those cases:
print('value' + str(value))

Supporting basic type conversion functions will enable many possibilities.
BTW, repr() should be another story, which we can consider later, I think.

And, given we have already provided the print() function, we need to consider Python template strings seriously sooner or later:
'Hello, %s' % name

'Hey %s, there is a 0x%x error!' % (name, errno)

'Hey %(name)s, there is a 0x%(errno)x error!' % { "name": name, "errno": errno }

'Hello, {}'.format(name)

'Hey {name}, there is a 0x{errno:x} error!'.format(name=name, errno=errno)

f'Hello, {name}!'

f"Hey {name}, there's a {errno:#x} error!"

This will be a big task. Above all these forms, maybe we can only support one or two of them.


High ram usage with decodint to png high resolution, lossless jpeg recompression

Example image: https://files.catbox.moe/2kdb4f.jxl
source image: https://dolphin-emu.org/m/user/blog/progress-report/2016-november/windwaker35xnative.jpg
has dimensions of 23164x18480, currently decoding this quickly leads to OOM, this was made with lossless jpeg recompression,  I dont have the ram to compress it without using that.

Currently jxl-oxide allocates buffer for the whole image when decoding to image (this means ~5GB of memory for a single three-channel 23164x18480 frame). Maybe we need a streaming decode option...

A few thoughts on this issue:

For some images, it might be inevitable that the memory usage is high; we need to keep full framebuffers if they are used for blending. Optimizing cropped decoding would be helpful in this case (by requesting multiple cropped renders to produce the full image).
Improving caches might help reducing memory usage, but I haven't investigated on this.


Restrict CSP NONCE to correct length

Fixes #55

Coverage remained the same at 100.0% when pulling 6448b075bf660542376aff7c9b55c39e5475c682 on bazzadp:master into cae147574124cfe8fccb1ff78de4bf6c320dd386 on GoogleCloudPlatform:master.

Tox is angry because of coverage, I'm gonna go ahead and merge.

Tox is angry because of coverage, I'm gonna go ahead and merge.

Actually it was complaining about bad comments (missing newlines, too long comment lines...etc.). Had cleaned it up and pushed to this branch but you'd already merged. Want another PR for that?


MINOR: Remove redundant volatile write in RecordHeaders

The JMH benchmark included shows that the redundant
volatile write causes the constructor of ProducerRecord
to take more than 50% longer:
ProduceRecordBenchmark.createProducerRecord  avgt   15  24.136 ± 1.458  ns/op (before)
ProduceRecordBenchmark.createProducerRecord  avgt   15  14.904 ± 0.231  ns/op (after)

Review by @hachikuji


Documentation suggestions

Something that seems to be missing (and I would have found helpful as I was setting up and learning how to use Code) is an overview of the setup steps needed to create a usable code development environment. The documentation is very clear about how to add a debugger, but I had several questions about how to get other things set up. As an example of what I would like to see, this could be added to the Next Steps section near the end of docs/editor/setup. (I'd recommend moving the Additional Tools section after Next Steps section):
Next Steps

Read The Basics - Basic orientation around VS Code
Add a debugger for your programing language (link to Debugger page)
Customize the launch.json and tasks.json files for your development environment and workflow. See (here) for essential information about the syntax and available parameters that can be used in these files. <-- This documentation is badly needed by those of us who aren't familiar with JSON.
Customize launch.json to launch your application and supply command line arguments. (link)
Customize launch.json and tasks.json with a preLaunchTask that can build your application before running it. (link)
Customize tasks.json with a problem matcher to allow stepping through compiler errors and quickly navigating to the error locations in your source code. (link)
Customize for source control (link)
Add an IntelliSense extension to provide "code understanding," highlight syntax errors in your code, help you find definitions of code objects (variables, functions, types...), etc. (link)
Read Editing Evolved which introduces the features of IntelliSense.

(Put the Additional Tools section here.)

This issue was moved to Microsoft/vscode-docs#228

Moved to https://github.com/Microsoft/vscode-docs/issues/228


fixed an error in the code example of Functional Map

Code example that uses the metadata of the Functional Map is, I think than wrong?

Integrated, thanks @kazuhira-r :)


Unicode conversion doesn't work with Linux IBM i Access ODBC driver

When we pass the UNICODESQL=1 connection option, the result works when connecting using the driver on Windows but using the driver in Linux causes the tests that pass in windows to fail in Linux. Until this can be fixed, those test will be skipped.

I'm working on a driver fix for this.

This should be fixed in the latest couple service packs.


non-leader metrics-prometheus-collector eagerly computes metrics

sampler pushes metrics to all collector replicas
non-leader collector computes and calculates metrics, but doesn't publish

/triage accepted

Had to significantly re-work this after thoroughly testing it in a cluster.  We should follow up with some e2e tests that run for ~hours and do things like rolling updates to ensure a proper handoff.  That is a non-trivial task though, and shouldn't block fixing the issue.


Compiling to .app breaks .svg to .png conversion

I'm assuming this has to do with the lack of 'gm' Homebrew which normally can be accessed on a system level. (I have both imagemagick and graphicsmagick installed via brew. See image). I need to find out if there is a way to include these binaries within the .app generated via Electron Packager

Hmmmm 🤔

Would you mind adding to https://www.bountysource.com/

Sorry wrong repo

One idea would be to write a shell script that installs the required binaries and dependencies on the user's machine to circumvent this issue altogether.

That'd be great!


CopyrightStatementsProcessor: Do not use sorted maps / sets in the Result

There is no reason for the in-memory representation to be sorted, so sort
only the "visualizations" for the serialized result in
CopyrightStatementsProcessorTest and the console output in
ListCopyrightsCommand.
Signed-off-by: Sebastian Schuberth<EMAIL_ADDRESS>

Does this PR impact any ordering of the output of any of the reporter implementations like e.g. [1] or maybe more importantly the notice template reporter with the NOTICE templates?
[1] https://github.com/oss-review-toolkit/ort/blob/94de43af0ac8dea417c05b7bcdab797624cd0523/reporter/src/main/kotlin/reporters/CycloneDxReporter.kt#L275

Does this PR impact any ordering of the output of any of the reporter implementations

According to the passing tests, no. And that's probably because insertion order in sets is maintained.

According to the passing tests, no. And that's probably because insertion order in sets is maintained.

What do you think about sorting explicitly also in the reporters (for same reason as for doing so in jackson based serialization)?


Retention policy

The logs in grafana are stored in Prometheus database as of now we need to configure how many days of data we can keep .
I found that this can be done using prometheus  configuration ,Can we have this as a variable we can define?
--storage.tsdb.retention.time flag currently seems to define the retention period
https://prometheus.io/docs/prometheus/latest/storage/

@manishkumar3001 these parameters are part of Prometheus and/or the Compactor component, both of which are managed under https://github.com/philips-labs/terraform-cloudfoundry-thanos . Please open a ticket under that repo.

done


added new badges.

Description

Fixes #
Type of change

[ ] Bug fix (added a non-breaking change which fixes an issue)
[ ] New feature (added a non-breaking change which adds functionality)
[x] Updated documentation (updated the readme, templates, or other repo files)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?

[x] Tested endpoints locally

Checklist:

[x] I have checked to make sure no other pull requests are open for this issue
[x] The code is properly formatted and is consistent with the existing code style
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Screenshots

just added 2 new badges describing, "Made with love and typescript".
pretty small pull request to be honest

The badges don't look bad, but it's also a different style from the rest of the badges in the readme.
Maybe instead it could be made with shields.io to make it go with the Powered by Heroku better, for example,

Let me know what you think.

Oh yea, totally makes sense.
ill modify the pull request to add that I guess.


feat(context): add fetch method for internal requests

Allows a Hono app to make an internal request to itself.
See the discussion here: https://github.com/orgs/honojs/discussions/1675
Author should do the followings, if applicable

[x] Add tests
[x] Run tests
[x] yarn denoify to generate files for Deno

Should I PR to "main" branch or "next" branch?

I'll close this PR now while it's necessary. If you have any idea to contribute, feel free to create your PR again.


Update feature/quota-restrict_staging

Pull Request Test Coverage Report for Build 51

8 of 8 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.08%) to 87.193%

Totals

Change from base Build 49:
1.08%

Covered Lines:
7680

Relevant Lines:
8808

💛  - Coveralls

Pull Request Test Coverage Report for Build 51

8 of 8 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.08%) to 87.193%

Totals

Change from base Build 49:
1.08%

Covered Lines:
7680

Relevant Lines:
8808

💛  - Coveralls


MAYH-0000 ignore DeliverySuccess

hw-kafka-client was changed from returning only on error, to always returning a DeliveryReport. DeliveryReport can either be a DeliverySuccess or DeliveryFailure, so it's bad to always die hard.

👍


Newline in CLI/repl causes a parse error on incomplete statement

When entering a statement in the CLI, limbo currently makes the assumption that the user entered a complete statement, and throws a parse error when entering something like create table users (

Expected behavior:
limbo would buffer the input and evaluate the statement when a ; character is entered. The prompt would change to inform the user they are 'in progress' on a multi-line statement.
e.g.

sqlite dot commands entered during multi-line statements have no effect
EDIT: are interpreted as regular input during this time*
I have a PR ready I can submit, if this is the desired behavior.

@PThorpe92 Let's follow SQLite here. If you have a PR, please do submit it!


Update mc.tokenlist.json Adding GURS

Added meta data for GURS to mc.tokenlist.json
Logo was uploaded and merged in #1153

@cryptofish7 here is proof of the LP Burn. Its value is more than $50k and so it should meet the requirements set forth for listing. Thanks!
https://snowtrace.io/tx/0xe085062025088f10c35d0ff76e73374fe04e51bb6c47df31cc307164e42ce062


Add require_writer decorator to the create_aql_table api endpoint

Once #412 lands, the new require_writer decorator should be added to this new endpoint. Relevant api endpoint:
https://github.com/multinet-app/multinet-server/blob/e88f9d42dae5b62e214ce133fd5c0084d03d26c6/multinet/api.py#L46-L54

Looks like this is done. Can you confirm and close, @AlmightyYakob?

Indeed it is.


FSharp.Core packaged incorrectly

See https://github.com/fsharp/fsharp/issues/741
and https://github.com/fsprojects/Paket/issues/2378
Basically FSharp.Core needs an empty dependency group for net45.
/cc @enricosada

Is this for FSharp.Core 4.1.x?  @KevinRansom was telling me the other day that he wanted to push an update to that package because of the net47 issue.

Yes there was an issue with System.ValueType that has been resolved (well depends on how you look at it). But it basically is still not correct. Let me explain how NuGet works:
Consider you have a project for net47. NuGet tells us that from the two binaries (net45 and netstandard16) it will pick the net45 one.
However from the metadata it will add the netstandard16 dependencies (as it is the best matching dependency group).
To synchronize, FSharp.Core needs an "emtpy" dependency group for net45.
In general a NuGet package should have a dependency group for each contained binary with the correct dependencies for the given binary (=framework in most cases).
The problem is that NuGet and paket will add all the dependencies for netstandard16 while they are not required. The only reason this wasn't noticed as of yet is because netstandard16 is not compatible with <net461.
This brings us back to the discussion about netstandard20 and the reason why @enricosada and myself are telling you we need to include a netstandard20 binary into the package (with an appropriate dependency group obviously). Technically you can use netstandard16 for everything, but the user-experience is much better when you can get rid of all the netstandard packages.
Please re-consider this decision and don't let us write an RCF for this.

@matthid Could you submit a PR(s) for the change(s) you want? The FSharp.Core authoring is fully open source

Specifically https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.2.xxx.nuspec

https://github.com/Microsoft/visualfsharp/pull/3452

See also https://github.com/Microsoft/visualfsharp/pull/3454. Obviously I'm not investing any time in rewriting the build system (the batch scripts) as it probably wouldn't get accepted anyway.

@matthid I'll close this since #3452 has been accepted - thanks!


🐞 - Tour Step dissapears when hovering over matMenu

Which ngx-ui-tour-* package is the source of the bug?
md-menu
Please provide a link to a minimal reproduction of the bug
https://stackblitz.com/edit/angular-wau2z8-qtokex?file=src/app/ui-tour-demo.component.html
Description
When highlighting an item that is displayed as part of a menu the tour will prematurely disappear if you hover over any of the other menu items while the tour is open. As far as I can tell, I can't get it back either.

Click button to open menu.
menu shows and tour step shows.
Hover over menu item
Tour disappears and does not show next steps and can't recover.

see stackblitz: https://stackblitz.com/edit/angular-wau2z8-qtokex?file=src%2Fapp%2Fui-tour-demo.component.html
Angular version
15.2.8
Ngx UI Tour version
10.6.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[ ] macOS
[ ] Windows
[X] Linux
[ ] iOS
[ ] Android

As a workaround you can set closeOnOutsideClick: true.

yes, I saw that option. It does not seem to fix this case. There is no click that is closing it, it's on hover.

Did you set it to true or false? Seems to work for me: https://stackblitz.com/edit/angular-wau2z8-tmjjrs?file=src%2Fapp%2Fui-tour-demo.component.ts

Ah, nope. I set it to false because I didn't want it to close when clicking outside of it. True does seem to eliminate it disappearing on hover, but I'd still like it to only close when clicking an appropriate action inside the step.

Fixed in v10.7.0.
Let me know if it works for you.


Python 2 fork link in README.md is dead

The URL in the README.md for the Python 2 fork does not work.

Removed in 9309a0c.


edit metadata to a project that is already in the Archives

Same rationale as #54 but for the archives, so that the project is correct in both places.
Reasons to update metadata after submission, as a result of a human error. An example for these can be:
Incorrect cell count
Incorrect donor source for a sample

Story sliced the wrong way. Closing, and will re-think this.


Add option to watch List object types

This commit modifies dependentResourceWatcher to
accept List kinds while watching dependent resources.
It also adds test to verify if setWatchOnResource
works for lists.
Reference: https://github.com/operator-framework/operator-sdk/pull/4682
Signed-off-by: varshaprasad96<EMAIL_ADDRESS>Closes: #89

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

34 of 40 (85.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.2%) to 62.216%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/reconciler/internal/hook/hook.go
34
40
85.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/reconciler/internal/hook/hook.go
1
89.86%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
1696

Relevant Lines:
2726

💛  - Coveralls

/lgtm


RUMM-996 Send related RUM ErrorEvent when resource request fails

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #477 (5e91019) into master (0b44dd3) will increase coverage by 0.04%.
The diff coverage is 81.82%.

The diff coverage is 81.82%.


Maintaining parity with Firefox DevTools

In light of easier readability, I swapped around a few colours in order to make life easier. I for one however feel that this theme should stick as close as possible to the Firefox DevTools.
Currently, these are the occurrences (found at time of writing) where it differs

[x] Variable colours

They are red, and should be blue instead
Main occurrences such as JS/TS, S/CSS etc

[x] Property colours

Currently red also, should be green like in CSS

[x] Numbers vs Values

The numbers should be a more vibrant blue than other values such as strings

[x] String Interpolation

I believe it is orange to distinguish - honestly not a big fan of changing it but changing it to match colour of numbers (that deep vibrant blue)

[x] Support.types now a darker grey

[x] CSS pseudos now a darker grey - similar to DevTools but balanced for readability

[x] Correct tab theming for Quantum Light

[x] Correct selection transparency

Guaranteed to release within Q1 2019 with 1.1.x

@compilenix Less differences now aren't there :P (refs: Beta-1.1.x-2), maybe screwed up some highlighting depending on your projects but yay, moving on.. and Happy new year :)


Make Delete Dialog Look Alike

This patch fixes the issue that all three of Opencast's delete dialog
(event, series, batch) do not look alike.
This patch mostly adjust the event delete dialog to look like the series
dialog. It now has one warning less, but the simpler structure adopted
for visual clarity makes it hopefully clearer what is going on and easier
to understand.
Additionally, all three dialog now use a red “Delete” button to confirm
the process, instead of using “Confirm” at some places.

Your pull request should…

[x] have a concise title
[x] close an accompanying issue if one exists
[x] be against the correct branch
[x] include migration scripts and documentation, if appropriate
[x] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

Thanks for the review → merging


[8.x] Enable only-to-others functionality when using Ably broadcast driver

TL;DR
This PR enables the only to others broadcast functionality when using the Ably broadcast driver and the AblyJs frontend client.
Issue
When using the Ably broadcast driver the only to others functionality provided by Laravel does not work when using the AblyJs client on the frontend.
This is because Laravel includes the socketId in the payload array but Ably requires it to be a top-level property called connectionKey.
(source: https://faqs.ably.com/is-it-possible-to-prevent-messages-published-being-echoed-back-to-the-publishing-client)
Fix
This PR refactors the Ably broadcaster to pass a fully-formed Ably Message object to the Ably publish method, where we can also include the socketId as the connectionKey.
Currently,  we pass a string event and an array payload to the publish method, and the Ably Rest client builds the Message object for us, but there is no way to include the connectionKey as a top-level property. (source: https://github.com/ably/ably-php/blob/main/src/Channel.php#L111)
To ensure backwards compatibility, the socket property will remain in the payload array too. It's possible people are working around this missing feature by using that property on the frontend.
With this PR merged, to enable the only to others functionality with Ably, you then only need to set the broadcast event to include the socket ID as per the Laravel docs, and then set echoMessages=false on the frontend when using the AblyJs client. This will prevent echoing messages back to originator.
Thanks
Lee

To add, you also need to configure the axios interceptor. Echo isnt currently fully compatible with Ably. But thats a frontend issue and easily added:
eg:
const broadcaster = new Ably.Realtime({
  ...options,
  echoMessages: false,
});

let interceptorId;
broadcaster.connection.on('connected', () => {
 interceptorId = $axios.interceptors.request.use((config) => {
    const socketId = broadcaster.connection.key;
    if (socketId) {
      config.headers['X-Socket-Id'] = socketId;
    }

    return config;
  });
});
broadcaster.connection.on('suspended', () => {
  if (interceptorId) {
    $axios.interceptors.request.eject(interceptorId);
  }
});

Don't we currently document using Ably via the Pusher JS client and Pusher protocol support enabled on the Ably control panel?

Yea we do. But by using that you miss out on some Ably features in seems. They suggest not doing this too in their docs (obviously lol).
Point 3 under the General header: https://faqs.ably.com/using-the-ably-pusher-protocol-adapter
This PR wont break that functionality though as its purely additive. Just enables the feature for those that choose to go the Ably way in order to get the extra features and security.


Incorrect variable type name when using type casting

What version of Swift are you using (swift --version)?

swift-driver version: 1.45.2 Apple Swift version 5.6 (swiftlang-<IP_ADDRESS>3.62 clang-13<IP_ADDRESS>)
Target: arm64-apple-macosx12.0

What did you do?

Having this code:
MyError.swift:
enum MyError: Error {
	case someError
}

extension NSError {
	static let someError = MyError.someError as NSError
}

and this template:
MyTemplate.stencil
{% for type in types.extensions %}
{% for variable in type.variables %}
{{ variable.typeName }}
{% endfor %}
{% endfor %}

I executed this command:
Pods/Sourcery/bin/sourcery --sources MyError.swift --templates MyTemplate.stencil --output MyError.generated.swift

What did you expect to see?

MyError.generated.swift:
NSError

What did you see instead?

MyError.generated.swift:
MyError

type inference isn't done on AST by SwiftSyntax, I'm building my own inference and that's already complex, just add explicit type to variable definition


Switching to a running kernel never disconnects

Start a jupyter server
Specify it as the jupyter server URI in vscode
Run a cell
Switch to the already running kernel
Switch again
Switch again
Each time you connect it keeps the connection alive.

Eventually you can't switch anymore.

This looks to be a limitation of the api, not sure. Might be able to call IKernelConnection.dispose()

Validated. Now when connecting to the remote machine as I switch back and forth I don't see the old connection any more. There is only the one connection (my own current one) moving between the kernels.


613 rename reduction-cards to types

Sorry, merged prematurely. There is the same issue with TravelClassType as in #637


feat(base): generate new image with version 14.19.0

This adds an image for the latest 14.x maintenance LTS as of now.
The commit here was automatically generated by running: yarn add:base -- 14.19.0 in keeping with the contribution guidelines. Are the formatting changes and shuffling around of some of the contents of Markdown files expected?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

The new image builds correctly locally, but it seems like something is off with the auto-updated circle.yml (I either did something wrong or there's something off in the automation changes in https://github.com/cypress-io/cypress-docker-images/pull/590)

Looks like there were some fixes for the config generation script in https://github.com/cypress-io/cypress-docker-images/pull/595/files . I just recreated the commit with the new version.

@bregenspan sorry to ask, but could you recreate this based off the latest master? I fixed the issue where the README formatting was off. Thanks!

@admah done! I'm not clear why but the generation process keeps removing a readme line for "cypress/base:16.13.2", added that back manually and also filled in the Node/Yarn version details.

@admah done! I'm not clear why but the generation process keeps removing a readme line for "cypress/base:16.13.2", added that back manually and also filled in the Node/Yarn version details.

Thanks for reporting it. I just created #604 to track that issue.


Requesting renaming of images

What is the user problem or growth opportunity you want to see solved?
From my point of view it would be good if users of the app could request renaming of images.
How do you know that this problem exists today? Why is this important?
About the web frontend
Who will benefit from it?
I can request a renaming directly in the app and do not have to do it on the PC
Anything else you would like to add?
No response

Thanks for the idea!
Changing the title of an image should be a rare operation, it is risky as it breaks wikilinks. I would recommend always first checking where the image is in use, which can only be done on the website.
Since readers are mostly shown captions, I think typos can be left in titles.
There might also be backclash from the Wikimedia community if this feature is used without care (especially if editing other peoples' images).
Summary: With our low developers count, I think it is hard to justify the maintenance cost of this.

Thank you for your feedback. I had only thought of a request. The implementation would then be done by an experienced user or admin. It would be enough to simply call the dialog for requesting a renaming via a web browser.
It was just an idea, if it doesn't make sense to you, it's okay.

I had missed that indeed, thanks.
Is there an existing place on Commons for such requests?

I can't say. I have asked an admin.

Does that help you?:
https://commons.wikimedia.org/wiki/Template:Rename


Masking the BarChart in Firefox doesn't work

LineChart works well, but in Firefox the chart disappears because of the mask. Any thoughts?

Hi,
I am experiencing the same problem on firefox and Edge. I appreciate very much that plugin...could you give me any idea to solve that issue ?
Thanks

That's very weird. I couldn't really figure it out yet but I've found that it might be related to the missing bounding box of straight lines. If you offset the bar lines a bit, they will get a bounding box, and the masking seems to work. This might be a SVG bug in Firefox, or it works as specified in the SVG spec, but Chrome implemented it more gracefully.
var chart = new Chartist.Bar('.ct-chart', {
  labels: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
  series: [
    [5, -4, 3, 7, 20, 10, 3, 4, 8, -10, 6, -8]
  ]
}, {
  showArea: true,
  axisY: {
    onlyInteger: true
  },
  plugins: [
    Chartist.plugins.ctThreshold({
      threshold: 4
    })
  ]
});

chart.on('draw', function(context) {
  if (context.type === 'bar') {
    context.element.attr({
      x1: context.x1 - 5,
      x2: context.x2 + 5
    });
  }
});

I am having the same issue with bar graphs in Chrome.
The suggested resolution causes bar's to go a bit haywire:

I ammended to the below and it seems to be working better accross Chrome, Edge, IE (not tested on Firefox):
chart.on('draw', function(context) {
if (context.type === 'bar') {
context.element.attr({
x1: context.x1 - 0.1
});
}
});


Fix coverage percentage

Because it only includes files that are actually loaded. This adds a useful shell script for generating a file that just randomly imports all other files... That file will also be run in the pipeline.
More info on the flutter issue: https://github.com/flutter/flutter/issues/27997

Does this also impact the comments by CodeCov/How does that work?

Does this also impact the comments by CodeCov/How does that work?

yes it does. Codecov gets sent the results of the test run in the pipeline. Since I put that shell script in the pipeline immediately before that step, this will be applied.


Correction for raw affiliation IHRIM — UMR 5317

Correction needed for raw affiliation IHRIM — UMR 5317
raw_affiliation_name: IHRIM — UMR 5317
new_rors: 02wmc6m46
previous_rors: 04795e365
works_examples: W4391312356;W2949378741;W3126341096
contact: 2fab3110159f9a075d3110a55c1cbba6:aa44bfc74c7fb17e67c5de596026 @ ens-lyon.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Plugin breaks the "use_tab_stops" option

From the default sublime settings files:
    // If translate_tabs_to_spaces is true, use_tab_stops will make tab and
    // backspace insert/delete up to the next tabstop
    "use_tab_stops": true,

When this plugin is enabled, that option does not work. When this plugin is disabled, the option is honored.

Can you elaborate what exactly is not working?
I tried it on my machine, and got the following behavior:

Is it different from what you expected? Thanks!

If you have translate_tabs_to_spaces set to true, then when use_tab_stops is true, pressing backspace at the point where a tab was inserted will remove all the spaces inserted for that tab, instead of just a single space character.
For example, if you open a brace and press enter, the next line will auto-indent. Pressing backspace once should remove all spaces inserted for the indentation, instead of only a single space.
When this plugin is installed, that behavior does not work.

This is a known problem.  The issue is that Sublime does not report the buffer changes it makes when it applies its algorithm to backspace.  Therefore we don't know what has changed in the buffer.  We haven't found a way yet to support this setting.  We did just find a way to support any setting for translate_tabs_to_spaces and we are optimistic we'll find a way to efficiently support use_tab_stops.  That is the last remaining setting that we haven't been able to find an efficient solution for (we don't think sending the entire buffer on every backspace is an efficient solution).

@steveluc thanks for the update. I agree about not sending the entire buffer on every backspace.

Is this fixed yet? Because I still encounter this issue.
Thanks!

@Bartzy this is not fixed yet. We will come back to this, though the team is currently short of resources to do this quick. I'll let you know ASAP a fix is merged in, btw a PR is always welcomed :)

@zhengbli Great, thanks!
It's a small annoyance in a rather bug-free setup :)
Why TypeScript breaks this Sublime behavior though?

Possibly related:

odd indentation stuff with copy+paste

can't paste with cmd-v into new file with TS syntax that hasn't been saved yet

paste from context menu works, only cmd-v doesn't.

Any news on this bug?

I'm having the same issue, is it still not easily resolvable?

+1.
Any news ?

I'd almost rather run without the plugin.

I don't know how or why it said i unassigned @zhengbli, did I click somewhere I should not have?

After asking for help with this problem on the Sublime forum, I was informed that I could get proper behavior by ditching the plugin in favor of just installing the Typescript syntax highlighting.

Select menu Sublime Text|Preferences|Browse Packages... to pull up the Sublime Packages/ directory.
Place the syntax highlighting file in Packages/User/.

This suits me fine because I've found the Typescript automatic linting to be a bit flaky.

Surprised to see that this issue is not resolved after 2 years.

Just ran into this bug. Can you use the previous buffer, cursor location and the user's settings to do your own calculation on what the new buffer should be? Failing that, can you debounce sending the entire buffer on backspace so it's not too terrible on efficiency?

Not only does this plugin break the use_tab_stops feature in ST3 for all JavaScript files, but removing the plugin doesn't seem to fix the issue either! I maybe have to uninstall ST3 and reinstall just to get tab stops working again.

I can't believe an issue as big as this, reported 4 years ago is still not fixed?
I can't get tab stop to work properly either with this plugin, and everytime I think it's fixed, I open a ts file then it's broken again... Did anyone find a proper solution ?

I ultimately abandoned Sublime for Typescript work. Visual Studio Code is beautiful for Typescript.

I think this is a covert effort to get everyone on Visual Studio Code. 😉I too was forced to use VS Code. Note: I still switch back to Sublime Text when I’m coding in other languages, but TS seems to only have true support on VS Code.

Heh 😉  and Visual Studio obviously - 👋 I've never really been a sublime user (I jumped from TextMate to Xcode to VS Code) but I can help handle PRs on this repo if folks would help by doing some of the review work.
I'm happy to help get particular PRs merged if they have a few people giving positive reviews in existing ones. It doesn't look like this issue has a corresponding PR from a look over the open ones, but I could be wrong.

I actually found a solution: replace all occurences of use_tab_stops in the plugin itself. In those 4 files:
TypeScriptReact.sublime-settings
JavaScript.sublime-settings
TypeScript.sublime-settings
typescript/libs/view_helpers.py

for me this behavior started after installing the typescript package and persists even after uninstalling.
i installed the package into my st3 build 3211 yesterday and played around for a few hours with a project and then uninstalled.  ever since i've had my spaces-based indentation broken for both delete and insert.
in addition to the backspace behavior described above i'm also having problems with inserting new tabs:  it does not calculate correct number of spaces to insert e.g. if i have a line with one space and hit tab, it inserts 2 spaces for a total of 3 space characters instead of 4.

@SBRK: Thanks so much for your comment. Making this change in typescript/libs/view_helpers.py seems to solve the issue for me: :tada:
https://github.com/microsoft/TypeScript-Sublime-Plugin/blob/3.9.2/typescript/libs/view_helpers.py#L195
  def set_file_prefs(view):
      settings = view.settings()
-     settings.set('use_tab_stops', False)
+     settings.set('use_tab_stops', True)
      settings.add_on_change('typescript_plugin_settings_changed', settings_changed)


WebEnv_search_and_browse 搜索的时候总是出错

Command Status:
"TOOL_CALL_FAILED"
···
{"detail":"Traceback (most recent call last):\n File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions\n yield\n File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 212, in connect_tcp\n sock = socket.create_connection(\n File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection\n raise err\n File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection\n sock.connect(sa)\nOSError: [Errno 99] Cannot assign requested address\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions\n yield\n File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request\n resp = self._pool.handle_request(req)\n File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 262, in handle_request\n raise exc\n File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 245, in handle_request\n response = connection.handle_request(request)\n File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request\n raise exc\n File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request\n stream = self._connect(request)\n File "/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect\n stream = self._network_backend.connect_tcp(**kwargs)\n File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 211, in connect_tcp\n with map_exceptions(exc_map):\n File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit\n self.gen.throw(typ, value, traceback)\n File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions\n raise to_exc(exc) from exc\nhttpcore.ConnectError: [Errno 99] Cannot assign requested address\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File "/app/main.py", line 173, in execute_tool\n result = await result\n File "/app/core/envs/web.py", line 62, in search_and_browse\n pages = [{\n File "/app/core/envs/web.py", line 62, in \n pages = [{\n File "/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py", line 95, in text\n for i, result in enumerate(results, start=1):\n File "/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py", line 123, in _text_api\n vqd = self._get_vqd(keywords)\n File "/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py", line 59, in _get_vqd\n resp = self._get_url("POST", "https://duckduckgo.com", data={"q": keywords})\n File "/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py", line 54, in _get_url\n raise ex\n File "/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py", line 45, in _get_url\n resp = self._client.request(method, url, follow_redirects=True, **kwargs)\n File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request\n return self.send(request, auth=auth, follow_redirects=follow_redirects)\n File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send\n response = self._send_handling_auth(\n File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth\n response = self._send_handling_redirects(\n File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects\n response = self._send_single_request(request)\n File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request\n response = transport.handle_request(request)\n File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request\n with map_httpcore_exceptions():\n File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit\n self.gen.throw(typ, value, traceback)\n File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions\n raise mapped_exc(message) from exc\nhttpx.ConnectError: [Errno 99] Cannot assign requested address\n"}
···

请检查网络连接，该错误并非bug。或者，你可以申请bing api key并使用bing搜索引擎

补充一下，bing搜索确实可以了。但是遇到搜索结果的页面有404的状况就卡住了。
{"detail":"Traceback (most recent call last):\n File \"/app/main.py\", line 173, in execute_tool\n result = await result\n File \"/app/core/envs/web.py\", line 108, in browse_website\n res.raise_for_status()\n File \"/usr/local/lib/python3.10/site-packages/httpx/_models.py\", line 749, in raise_for_status\n raise HTTPStatusError(message, request=request, response=self)\nhttpx.HTTPStatusError: Client error '404 Not Found' for url 'https://www.usnews.com/news/technology-news'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404\n"}

能否提供更详细的日志信息来帮助定位错误？

@ahkimkoo  @luyaxi
{"detail":"Traceback (most recent call last):\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py\", line 10, in map_exceptions\n    yield\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py\", line 212, in connect_tcp\n    sock = socket.create_connection(\n  File \"/usr/local/lib/python3.10/socket.py\", line 845, in create_connection\n    raise err\n  File \"/usr/local/lib/python3.10/socket.py\", line 833, in create_connection\n    sock.connect(sa)\nOSError: [Errno 99] Cannot assign requested address\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py\", line 66, in map_httpcore_exceptions\n    yield\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py\", line 228, in handle_request\n    resp = self._pool.handle_request(req)\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py\", line 262, in handle_request\n    raise exc\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py\", line 245, in handle_request\n    response = connection.handle_request(request)\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py\", line 99, in handle_request\n    raise exc\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py\", line 76, in handle_request\n    stream = self._connect(request)\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_sync/connection.py\", line 124, in _connect\n    stream = self._network_backend.connect_tcp(**kwargs)\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_backends/sync.py\", line 211, in connect_tcp\n    with map_exceptions(exc_map):\n  File \"/usr/local/lib/python3.10/contextlib.py\", line 153, in __exit__\n    self.gen.throw(typ, value, traceback)\n  File \"/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py\", line 14, in map_exceptions\n    raise to_exc(exc) from exc\nhttpcore.ConnectError: [Errno 99] Cannot assign requested address\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"/app/main.py\", line 173, in execute_tool\n    result = await result\n  File \"/app/core/envs/web.py\", line 62, in search_and_browse\n    pages = [{\n  File \"/app/core/envs/web.py\", line 62, in <listcomp>\n    pages = [{\n  File \"/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py\", line 95, in text\n    for i, result in enumerate(results, start=1):\n  File \"/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py\", line 123, in _text_api\n    vqd = self._get_vqd(keywords)\n  File \"/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py\", line 59, in _get_vqd\n    resp = self._get_url(\"POST\", \"https://duckduckgo.com\", data={\"q\": keywords})\n  File \"/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py\", line 54, in _get_url\n    raise ex\n  File \"/usr/local/lib/python3.10/site-packages/duckduckgo_search/duckduckgo_search.py\", line 45, in _get_url\n    resp = self._client.request(method, url, follow_redirects=True, **kwargs)\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_client.py\", line 814, in request\n    return self.send(request, auth=auth, follow_redirects=follow_redirects)\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_client.py\", line 901, in send\n    response = self._send_handling_auth(\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_client.py\", line 929, in _send_handling_auth\n    response = self._send_handling_redirects(\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_client.py\", line 966, in _send_handling_redirects\n    response = self._send_single_request(request)\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_client.py\", line 1002, in _send_single_request\n    response = transport.handle_request(request)\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py\", line 227, in handle_request\n    with map_httpcore_exceptions():\n  File \"/usr/local/lib/python3.10/contextlib.py\", line 153, in __exit__\n    self.gen.throw(typ, value, traceback)\n  File \"/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py\", line 83, in map_httpcore_exceptions\n    raise mapped_exc(message) from exc\nhttpx.ConnectError: [Errno 99] Cannot assign requested address\n"}

遇到类似的问题，一直尝试访问web失败。

请检查网络连接，该错误并非bug。或者，你可以申请bing api key并使用bing搜索引擎

这里所说的网络连接是指需要进行网络代理么？
bing的配置有看到位于node.yml中
bing:
  api_key:  # fill your own key here
  endpoint: https://api.bing.microsoft.com/v7.0/search

同问作者，该bing请求超时的问题是否解决。我在中国大陆也请求不到，我尝试给容器配置DNS但是依旧没有效果。让你感到意外的是，我在我的电脑上可以正常请求bing的api

同问作者，该bing请求超时的问题是否解决。我在中国大陆也请求不到，我尝试给容器配置DNS但是依旧没有效果。让你感到意外的是，我在我的电脑上可以正常请求bing的api

电脑上翻墙了吧

并没有，我是国内的IP。所以我不是很清楚问题出在哪里。但是他却一直在超时，除了配置文件外，我还修改过web.py的关于请求bing的具体执行方法（search_and_browse）中的region参数，将其默认改为zh-CN。不过我确定的是这么改接口可以正常请求，因为我用同样的代码在本地完成了测试，但是通过tool就超时了，很奇怪

是否是因为缺少除了bing的配置外的其他配置信息没有补全导致的?但是这里我已经写了，并且确认api-key为可用的值

Please assign to me

这个报错属于网络问题，建议先在github codespace上部署项目，并再次尝试使用bing搜索能力。
关于github codespace以及详细的部署全流程，我们很快会出一个教程视频，欢迎持续关注


Level 5 Last Test Case

Summary
Hi, my code has this error for level 5 test case 4. I read the previous posts and gathered that .get() should only be called in the SERVE event. However, I have .get() in the WAIT event to update the Server's next available time where I add the customer's service time to the server's initial next available time. I saw a response suggesting that WAIT returns an Optional.empty() and the updated Shop status. But I need to use .get() to update my Server status and therefore the Shop status. Is there a way to get around this? Any other alternative suggestions will also be helpful, thank you!

Can refer to #338. I think the main problem is because the service times are swapped for customer 4 and 5. I solved this problem by using supplier.get() only in the Serve class. Hope this helps!

Can refer to #338. I think the main problem is because the service times are swapped for customer 4 and 5. I solved this problem by using supplier.get() only in the Serve class. Hope this helps!

I realised I didn't need to add the service time in my wait class so I deleted that part and it works now, thank you!

hihi can i just ask was your customer called at each event? so like u only needed to call the customer constructor that takes in the lazy with the value from the input, when it was a serve event?

@bbelleeee Hii sorry for the late reply! But in Simulate5, when I created the Events and added Customers, I used the constructor that had the Lazy. Then for my Events, I called the Customer by using super.getCustomer() which is the same as the previous levels. Only in Serve event I called supplier.get() to add the service time to the Server's next available time.


Reverse sign in TD-error of DQN

This is a little detail. I suggest to change the computation of the TD-error from td_error = q_t_selected - tf.stop_gradient(q_t_selected_target) to td_error = tf.stop_gradient(q_t_selected_target) - q_t_selected in https://github.com/hill-a/stable-baselines/blob/master/stable_baselines/deepq/build_graph.py
I think this would be good because the TD-error is also returned as tensorboard metric directly (so some people will look at it as such). And in the literature, the TD-error is generally written as td_error = tf.stop_gradient(q_t_selected_target) - q_t_selected (i.e. true - predicted). E.g. see https://daiwk.github.io/assets/dqn.pdf (but also in Sutton and Barto it's done this way).

Hello,
I would be in favor of that minor change (unless another maintainer objects) and would appreciate a PR that solves this issue ;)

I was actually looking at the tensorboard and getting kind of confused. Along the same lines, the loss shown in the tensorboard grows together with the episode reward. I would expect the loss to become smaller as the DQN gets better at predicting Q-values (and therefore achieving better episode reward). Am I missing something :) ?

I would expect the loss to become smaller as the DQN gets better at predicting Q-values (and therefore achieving better episode reward). Am I missing something :) ?

Please open another issue.
But it sounds normal, you should take a look at fitted q iteration (ancestor of DQN) to understand why that might be normal ;)


Ensure that Network Name strings are NULL-termianted for client code.

otGetNetworkName() no longer returns a pointer into a beacon message.
Scan results no longer point into a beacon message.

Fixes #365.

LGTM :+1:

👍


Semantics issue

Looks like creating a new Queue does not create separate processes for each worker, it's all still a regular single process node.js process. So you can have set your Queue to have 100 workers, but it's all in a single node.js process.
But in the docs it says:

The basic unit of the queue is the queue worker: the process that claims a task, performs the appropriate processing on the data, and either returns the transformed data, or an appropriate error.

This doesn't really explain how a worker really works in this library. My only guess is that the number of workers dictates the maximum amount of work that can happen concurrently? My beef is that using the word "process" suggests separate node.js processes, but that's not the case? Or is it?

That's not the case - we don't do any child process spawning. Multiple processes requires instantiating multiple Queues in separate processes - the choice of how to implement that is left to the user
I'll change the word 'process' (meaning sequence of steps in this case), I can see how there may be some confusion.


Not able to connect to Azure Data Explorer cluster via Azure Data Studio

Azure Data Studio Version: 1.46.1
OS Version: Windows_NT x64 10.0.19045

Steps to Reproduce:
Customer is registered under two different tenants.
Say tenant A and B.
The customer has an Azure Data Explorer cluster under tenant A.
The customer does not have permissions to access tenant B by the company policy.
Whenever the customer is trying to access the cluster via Azure Data Studio, he receives 401/403 Forbidden error. This, however, works on when accessing the cluster via the Azure Data Explorer Web UI.
We discovered that, even if the customer is selecting tenant A, Data Studio is forcing the customer to use the tenant B instead. From telemetry logs in Kusto, we see the customer is getting a forbidden error for the tenant B id instead of the tenant A, even when selecting the tenant A in Data Studio connection.

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

Captured error:
System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Forbidden (403-Forbidden): {
    "error": {
        "code": "Forbidden",
        "message": "Caller is not authorized to perform this action",
        "@type": "Kusto.Common.Svc.Exceptions.UnauthorizedOperationException",
        "@message": "Principal 'aaduser=<user-id>;<tenant-id>' is not authorized to perform operation 'SchemaShowCommand' on 'https://<clustername>.<region>.kusto.windows.net:443/'.",
        "@context": {
            "timestamp": "2023-11-03T21:51:39.4702982Z",
            "serviceAlias": "<clustername>",
            "machineName": "KEngine000000",
            "processName": "Kusto.WinSvc.Svc",
            "processId": 6040,
            "threadId": 1964,
            "clientRequestId": "#####",
            "activityId": "#####",
            "subActivityId": "#####",
            "activityType": "DN.FE.ExecuteControlCommand",
            "parentActivityId": "#####"
        },
        "@permanent": true
    }
}. This normally represents a permanent error, and retrying is unlikely to help.


API filter not working on instances type

Rancher Versions:
Server: 1.2.2
healthcheck: v0.1.0
ipsec: v0.7.5
network-services: v0.6.8
scheduler: v0.4.0
kubernetes (if applicable):
Docker Version: 1.10.3
OS and where are the hosts located? (cloud, bare metal, etc): self hosted
Setup Details: single node rancher
Environment Type: Cattle
Steps to Reproduce: Make an api request on instances type with an filter
Results: filter is not applicated
# curl -s -u "${ACCESS_KEY}:${ACCESS_SECRET}"   -X Get -H 'Accept: application/json' -H 'Content-Type: application/json'   "${RANCHER_API}/projects/1a5/hosts/1h54/instances?name_ne=int1_gearmand_1"  {   "type": "collection",   "resourceType": "instance",   "links": {     "self": "http://ranche:8080/v2-beta/projects/1a5/hosts/1h54/instances"   },   "data": [     {       "id": "1i151433",       "type": "container",       ...       "name": "int1_gearmand_1",       "state": "running",     }   ],   .....   "filters": {     "name": [       {         "modifier": "ne",         "value": "int1_gearmand_1"       }     ],   }, }

#5321


SIP username cant contain certain combinations

Hi again,
My SIP username is a combination of numbers + letters,
eg = 2142341e12
The config allows numbers + letters: 1234242wwer
But it does not allow numbers + letters + numbers = 4142341e12
Saving the config gives an error .Failed to save add-on configuration, not a valid value. .

Please try to put the username in quotes like "1234242wwer".

Sorted, thank you!

Nice, I'll add a note to the readme for that.


Puts all attributes on a new line

How can I prevent that this plugin puts every attribute of an element on a new line?

Having the same issue too, but cant find any proper documentation anywhere...